유니캐스트/브로드캐스트/멀티캐스트
- 유니캐스트
1:1 통신방법.
보내고자하는 주소(MAC ADDRESS)를 프레임에 포함시켜 보내는 방식.
- 브로드캐스트
하나의 네트워크 전체의 통신방법. 같은 네트워크에 포함된 장비들에게 거부권은 없고 일단 무조건 수신하고 봐야하는 통신법
브로드캐스트의 대표적인 사용 예는 ARP이다. ARP란 자신과 데이터 오신을 하기위한 다른 노드의 맥어드레스를 알아내기 위한 프로토콜. 쉽게 말해 실질적인 통신은 IP주소가 아닌 맥어드레스로 이루어지는데,IP주소는 알고 있지만 맥어드레스를 모를때 사용하는방법
- 멀티캐스트
멀티캐스트의 원리는 멀티캐스트 전송을 위해서는 헤더에 수신자의 주소 대신 수신자들이 참여하고 있는 그룹주소를 표시하여 패킷을 전송. 멀티캐스트 전송을 위한 그룹 주소는 D-class IP 주소(224.0.0.0~239.255.255.255)로 전세계 개개의 인터넷 호스트를 나타내는 A, B,C-class IP주소와는 달리 실제의 호스트를 나타내는 주소가 아니며, 그룹 주소를 갖는 멀티캐스트 패킷을 전송받은 수신자는 자신이 패킷의 그룹에 속해 있는 가를 판단해 패킷의 수용여부를 결정한다. 그러나 현재 인터넷상의 라우터들이 대부분 유니캐스트만을 지원하기 때문에 멀티캐스트 패킷을 전송하기 위해서는 멀태캐스트 라우터 사이에 터널링(tunneling)이라는 개념을 사용하여 캡슐화(encapsulation)된 채킷을 전송. 즉 멀티캐스트 주소를 가진 데이터 패킷 헤더 앞에 멀티캐스트를 지원하지 않는 일반라우터들을 거칠 때 기존의 유니캐스트 패킷고 같은 방법으로 라우팅 되어 최종적으로 터널의 종착지로 전송될 수 있게 하는 것.
Multicast over TCP/IP HOWTO
- Multicast 주소
+-+-+-+-+----------------------+
|1 1 1 0| MULTICAST Address | 224.0.0.0 - 239.255.255.255
+-+-+-+-+----------------------+
Mulitcast 로 사용할 주소는 "D 클래스 주소"다. 목적지 주소가 "1110"으로 시작하는 IP 데이터그램은 멀티캐스트 데이터그램이다. 나머지 28비트는 송수신할 데이터 그램의 멀티캐스트 그룹으로 구불하는데 쓰인다.
예약된 멀티캐스트 그룹(well known multicast groups)이라 불리는 특별한 그룹들이 있는데 이러한 그룹은 다음과 같은 특수한 용도로 쓰이기 때문에 개인적인 프로그램 제작시 사용할 수 없다.
- 224.0.0.1 은 전체 호스트 그룹이다. 멀티캐스트 인터페이스는 시동시 이 그룹에 참여해야하므로 이 주소로 ping을 보내면 모든 멀티캐스트 호스트들이 응답할 것이다.
- 224.0.0.2 은 전체 라우터 그룹이다.
- 224.0.0.4 은 전체 DVMRP 라우터 그룹이다.
- 224.0.0.5 은 전체 OSPF 라우터 그룹이다.
- 224.0.013 은 전체 PIM 라우터 그룹이다.
- ...
이 특수 그룹들은 모두 RFC문서 "Assigned Numbers"에 정기적으로 등록된다.
어떠한 경우든지, 224.0.0.0에서 224.0.0.225의 범위는 지역적인 목적(관리나 유지/보수)을 위해 예약되어
있으며 멀티캐스트 라우터들도 이 범위 내의 주소로 목적지로 하는 데이터그램은 포워딩하지 않을 것이다. 이와 유사하게
239.0.0.0에서 239.255.255.255의 범위는"administrative scoping"을 위하여 예약되어 있다
- 실제 멀티캐스팅 응용을 위해 할당된 주소들은
- 224.0.1.0~238.255.255.255 : 실제 멀티캐스트 어플리케이션 용도
- 232.0.0.0~232.255.255.255 : SSM(Source Specific Multicast) 용도
- 233.0.0.0~233.255.255.255 : 하나의 AS 전체에 할당되는 주소
- 239.0.0.0~239.255.255.255 : 사설망에서 사용 (Private)(Administrative Scoping)
- 적응 단계(Levels of Conformance)
호스트가 만족해야하는 멀티캐스트 규격에는 세 가지 적응 단계가 있다.
Level 0 : the no support for IP Multicasting IPv4에서는 멀티캐스트가 의무적으로 구현해야하는 것이 아니기 때문에 인터넷에 있는 많은 호스트와 라우터들은 Level 0 상태에 있다. (하지만 IPv6에서는 의무적으로 멀티캐스트를 지원하도록 하고 있다.) 더 이상 설명은 필요 없다. 이 상태에 있는 호스트는 멀티캐스트 패킷을 보내거나 받을 수 없으며, 멀티캐스트 패킷을 완전히 무시한다.
Level 1 : the support for sending but not receiving multicast IP datagrams 따라서, 데이터그램을 보내기 위해서 멀티캐스트 그룹에 가입할 필요는 없다. Level 0 호스트를 Level 1 호환 상태로 만들기 위해서는 IP 모듈을 약간 변경해야 한다.
Level 2 : the full support for IP multicasting Level 2 호스트는 멀티캐스트 데이터그램 송신과 수신이 가능해야 한다. 또, 멀티캐스트 그룹에 참가하고 탈퇴할 수 있어야 하며 새로 갱신된 멀티캐스트 정보를 라우터에 알 릴 수 있어야 한다. 따라서, 호스트의 TCP/IP 스택에 인터넷 그룹관리 프로토콜 Internet Group Management Protocol (IGMP) 이 구현되어 있어야 한다.
- 멀티캐스트 데이터그램 전송
이상으로 미루어보아, 멀티캐스트 트래픽은 UDP로 트랜스포트 계층에서 처리하는 것이 분명하다. TCP는 점대점(point-to-point)연결을 제공하는 것이므로 멀티캐스트 트래픽에 적합하지 않다. 이론상, 응용프로그램에서 단지 UDP 소켓을 열고 class D 멀티캐스트 주소를 목적지로 하는 데이터그램을 부어넣기만 하면 된다. 그렇지만, 소신 프로세스가 통제권을 가지기 위해서 해주어야 할 작업이 있다.
- TTL.
IP 헤더의 TTL(Time To Live) 필드는 멀티캐스트에서 중요한 의미를 가진다. 이 필드는 라우팅 에러로 인하여 데이터그램이 네트웍을 영원히 떠돌아다니는 것을 방지한다. 라우터는 네트웍간을 이동하는 데이터그램의 TTL 필드를 감소시키며 TTL 필드가 0이 되는 데이터그램은 버린다(drop). IPv4 멀티캐스트에서 TTL은 문턱값(threshold)의 의미를 지닌다. . 다음 예를 보면 그 용도가 분명해진다.
우리 부서의 모든 호스트가 속하는 아주 길고 대역폭을 많이 차지하는 영상회의를 한다고 가정하자. 우리의 LAN에는 엄청난 용량의 트래픽이 발생할 것이며, 아마 우리 부서는 다양한 LAN이 존재하는 큰 네트웍일 것이다. 이 경우 우리는 LAN을 통하여 회의를 열기 원하지만, 우리의 멀티캐스트 트래픽 때문에 인터넷 전체가 붕괴되는 것을 원치 않을 것이다. 따라서, 멀티캐스트 트래픽이 라우터간을 얼마나 멀리이동할 수 있도록 할 것인지 제한할 필요가 있다. 이것이 TTL의 용도이다.
라우터는 각각의 인터페이스에 대해 TTL 문턱치(threshold)가 할당하고 있으며 이 문턱치보다 큰 TTL값을 가진 데이터그램만이 포워딩한다. 데이터그램이, 어떤 문턱치가 할당되어 있는 라우터를 지날 때, TTL값이 문턱치만큼 감소되는 것이 아니라는 점에 주의하라. 오직 비교만이 이루어진다.(앞에서 언급했듯이 TTL은 데이터그램이 라우터를 지날 때마다 1씩만 감소된다).
다음 리스트에 TTL문턱치와 그에 해당되는 범위가 표시되어 있다.
----------------------------------------------------------------------
TTL Scope
----------------------------------------------------------------------
0 호스트 내부로 제한. 인터페이스로 출력되지 않음.
1 동일 서브넷으로 제한. 라우터는 포워딩하지 않음.
<32 동일 사이트(site), 단체나 부서로 제한.
<64 동일 지역(region)으로 제한.
<128 동일 대륙으로 제한.
<255 무제한. 전세계.
----------------------------------------------------------------------
"사이트(site)" 나 "지역(region)" 에 대한 정확한 정의는 없다. 그것은 이 제한을 가할 관리자에게 달려있다.
이 TTL기법은 모든 요구에 부응할 만큼 유연성을 제공하지 못하며, 특히 겹쳐지는 지역(overlapping regions)을 다루거나 지리적(geographic)이거나 위상적(topologic)적인 그리고 대역폭 제한적인 연결에는 적합하지 않다. 이러한 문제를 해결하기 위하여 1994년 administratively scoped IPv4 multicast regions 이 제정되었다 (D. Meyer's "Administratively Scoped IP Multicast" Internet draft 참조). 이것은 TTL을 이용하지 않고 IP 주소를 이용하여 범위제한(scoping)을 가한다. 239.0.0.0 에서 239.255.255.255까지의 IP주소가 이 관리용 범위제한을 위해 예약되어 있다.