유니 캐스팅, 브로드 캐스팅, 멀티 캐스팅
- 컴퓨터공학
- 2016. 2. 22. 14:16
유니 캐스팅이란?
TCP를 기반으로 하나의 송신자가 다른 하나의 송신자에게 데이터를 전송하는 방식을 유니 캐스팅 방식이라고 합니다. MAC 주소를 기반으로 상대측 IP주소를 목적지로 하는 일대일 통신 방식입니다. 일반적인 인터넷 응용프로그램이 모두 유니캐스팅 방식을 사용합니다.
이 방식은 목적지 주소가 아닌 다른 PC들의 CPU 성능을 저하시키지 않는 장점이 있습니다. 왜냐하면 자신의 MAC 주소가 아니라고 판단되면 랜카드가 프레임을 버리기 때문입니다. 하지만 그룹통신을 위하여 다중 수신자들에게 동일한 데이터를 전송하고자 할 경우 유니캐스팅 방식을 이용한다면 전송하고자 하는 데이터 패킷을 다수의 수신자에게 여러번 전송해야 하며, 동일한 패킷의 중복 전송으로 인해 네트워크 효율이 저하됩니다.
위 그림처럼 특정 수신자와 1대1 통신방식입니다.
브로드 캐스팅이란?
UDP를 기반으로 자신의 호스트가 속해 있는 네트워크 전체를 대상으로 패킷을 전송하는 일대다 통신방식입니다. 브로드 캐스팅은 로컬 랜상에 붙어있는 모든 네트워크 장비들에게 그들의 의사와 상관없이 모두 보내는 방식입니다. 여기서 로컬이란 라우터에 의해서 구분되어진 공간을 의미합니다.
브로드 캐스팅 주소는 미리 정해져 있는데 바로 FF:FF:FF:FF:FF:FF(MAC 주소로 했을 경우) 입니다. 이 주소가 오면 랜카드는 비록 자신의 맥 주소와 같지는 않지만 이 브로드 캐스팅 패킷을 CPU에게 보내게 됩니다.
브로드 캐스팅은 꼭 필요한 통신방식이지만, 데이터를 수신할 필요가 없는 호스트들에게도 데이터가 전송되기 때문에 불필요한 인터럽트가 발생되며, 전송영역이 자신이 속한 네트워크에만 한정되고, 라우터를 경유하지 못하는 단점이 있습니다.
브로드 캐스팅의 주소 선택에는 몇가지 종류가 있습니다.
- 네트워크-지정 브로드캐스트(Net-directed broadcast)
- 서브넷-지정 브로드캐스트(Subnet-directed broadcast)
- 제한된(지역적) 브로드캐스트(Limited broadcast)
3가지 종류는 IP 주소의 구조(네트워크 ID, 서브넷 ID, 호스트 ID)에 따라 구분됩니다.
1. 네트워크-지정 브로드캐스트
네트워크-지정 브로드캐스트 방식은 호스트ID의 비트가 모두 1로 된 주소를 말합니다. 예를 들면 A 클래스의 경우 Netid.255.255.255 가 해당됩니다. 이 경우 라우터를 거쳐야 하므로 라우터 설정에 따라 브로드 캐스팅이 불가능할 수도 있습니다. 따라서 실용적으로 브로드 캐스팅 주소로 사용하기는 어렵습니다.
2. 서브넷-지정 브로드캐스트
서브넷-지정 브로드캐스트 방식은 호스트ID의 비트가 모두 1이고, 서브넷 ID가 지정된 주소를 말합니다. 이 경우 역시 라우터를 통과하지 못 할 수 있으므로, 일반적으로 외부 서브넷에 대한 브로드캐스팅을 목적으로 사용하기는 어렵습니다. 하지만 송신자 자신이 속한 서브넷에 대한 브로드캐스팅은 가능합니다.
3. 제한된(지역적) 브로드캐스트
제한된 브로드캐스트 방식은 송신자 자신이 속한 네트워크에 대한 브로드캐스트를 의미합니다. 항상 브로드캐스팅이 가능하며, 브로드캐스트 데이터가 라우터를 넘어가지 않습니다. 제한된 브로드캐스트 방식은 255.255.255.255 값으로 정의되어 있습니다.
브로드 캐스팅과 유니캐스팅을 예를 들어보면,
A가 B,C,D 에게 브로드 캐스팅으로 메세지를 보냅니다. “C가 누구냐? 대답해!” 라고 말이죠.
B,C,D 모두가 이 메세지를 받았겠죠. 그러나 B,D는 자신이 C가 아니니깐 이 메세지를 읽고 무시합니다. 그러나 C는 A에게 “내가 C야!” 라고 답장을 합니다.
이때 A로 부터 브로드 캐스팅 받은 메세지에 A의 발신 주소가 적혀있으니 그 주소대로 A에게 답장을 한 것이죠. 그리고 이때 C도 자신의 발신 주소를 적어서 A에게 보낸 거구요.
이렇게 답장을 받은 A는 이제 C의 주소를 알게 되었고, C와 통신을 위해서는 더 이상 브로드 캐스팅이 아닌 ‘유니 캐스팅’을 사용하게 됩니다.
방금 예시는 ARP 상황으로 예를 든겁니다. ARP는 통신할 노드의 IP 주소는 알지만 맥 주소를 모를 때 사용하는 방식입니다.
멀티 캐스팅이란?
UDP를 기반으로 하나 이상의 송신자들이 특정한 하나 이상의 수신자들에게 데이터를 전송하는 방식입니다. 데이터를 수신 받기를 원하는 특정한 호스트들에게만 전송이 가능합니다. (스위치나 라우터가 이 기능을 지원해 주는 경우에 한정해서)
그런데 어떻게 특정 호스트들만 수신할 수 있는 걸까요?
이유는 멀티 캐스팅 전송을 위한 특별한 그룹 주소를 사용하기 때문입니다. 바로 D 클래스 IP 주소입니다.
우리가 알고 있는 A,B,C 클래스 IP 주소는 전 세계 실제 호스트들을 나타내는 주소이잖아요? 그렇지만 특별한 D 클래스는 실제 호스트를 나타내는 주소는 아닙니다.
D클래스는 32비트 주소체계에서 상위 4개의 비트가 ‘1110’ 으로 고정되어 있고, 하위 28비트가 그룹 ID로 사용되는 특별한 주소 형식을 가집니다.
비트로 표현하면 1110 0000.0000 0000.0000 0000.0000 0000 ~ 1110 1111.1111 1111.1111 1111.1111 1111 까지가 D클래스의 범위입니다.
10진수로 표현하면 224.0.0.0 ~239.255.255.255 라고 할 수 있습니다.
아니 D 클래스 IP 주소가 뭔지는 이제 알겠는데, 그걸로 어떻게 특정 호스트들만 수신하게 하는 거냐구요!
수신측이 D클래스를 사용하는 멀티 캐스팅 그룹에 가입을 하게 되면, 위에서 말한 ‘특정 호스트’가 되는 셈입니다.
여기서 멀티 캐스팅 그룹에 가입을 한다는 의미는 “나는 클래스 D의 239.234.218.234를 목적지로 하는 멀티 캐스팅 패킷에 관심이 있으니, 이 패킷은 수신하겠다!”라는 의미입니다.
이렇게 D클래스 그룹 주소를 사용해서, 멀티 캐스팅 그룹에 가입해 있는 모든 호스트들에게 단 한 번의 데이터 전송으로 데이터를 구석구석 전달할 수 있습니다.
그리고 패킷을 받은 수신자는 자신이 그룹에 속해있는 가를 판단해서 패킷의 수용여부를 결정하게 됩니다.
위 그림을 보면, 멀티 캐스팅 패킷을 전송할 때에는 멀티 캐스팅용 UDP 패킷 하나만 네트워크 상에 흘려 놓으면 라우터를 통해서, 먼 거리에 존재하는 그룹에 가입되어 있는 여러 호스트들에게도 데이터가 전달됩니다. 라우터를 통해 패킷은 여러 곳에 ‘복사’되어 전달되는데, 임의의 패킷을 받은 라우터는 그 패킷을 다른 라우터에도 복사해서 전달해 주고, 자신에게 연결되어 있는 호스트들 중에서 그 패킷을 수신하기 위해 멀티 캐스팅 그룹에 가입한 호스트가 있다면 패킷을 전달해 줍니다.
쉽게 말해서, 수신자 측에서 먼저 요청을 해야하고 송신자 측에서는 요청을 한 수신자들에게 보내는 방식입니다.
하지만 현재 인터넷에 연결되어 있는 대부분의 라우터는 멀티 캐스트를 지원하지 않고, 라우터가 멀티캐스트를 지원한다고 하더라도 네트워크의 불필요한 트래픽 문제를 고려해서 일부러 막아 놓은 경우가 많다. 멀티캐스트 패킷을 전송하기 위하여서는 멀티캐스트 라우터 사이에 터널링(tunneling)이라는 개념을 사용하여 캡슐화(encapsulation)된 패킷을 전송한다.
즉 멀티캐스트 주소를 가진 데이터 패킷 헤더 앞에 멀티캐스트 라우터간에 설정된 터널의 양 끝단의 IP 주소를 덧붙여 라우팅(routing)을 함으로써 멀티캐스트를 지원하지 않는 일반 라우터들을 거칠 때 기존의 유니캐스트 패킷과 같은 방법으로 라우팅되어 최종적으로 터널의 종착지로 전송될 수 있게 하는 것이다.
'컴퓨터공학' 카테고리의 다른 글
3.1 트랜스포트 계층 서비스 및 개요 (0) | 2016.03.17 |
---|---|
[트랜스포트 계층] Outline (0) | 2016.03.17 |
멀티 코어 프로세서란? (1) | 2016.02.15 |
하이퍼 스레딩이란? - (2) (2) | 2016.02.15 |
하이퍼 스레딩이란? - (1) (2) | 2016.02.15 |
이 글을 공유하기