My Own Style

반응형

[유니캐스트]

TCP 를 기반으로 하나의 송신자가 하나의 수신자에게 데이터를 전송하는 방법.

mac 을 기반으로 ip 주소를 목적지로 하는 일대일 통신방식.


[브로드캐스트]

UDP 를 기반으로 자신의 호스트가 속해 있는 네트워크를 대상의 모든 수신자에게 패킷을 전송하는 방법.


브로드 캐스트에는 몇가지 종류가 있는데 

1. 지정된 broadcast 방식

2. 제한된 broadcast 방식


1. 지정된 broadcast 방식의 경우, 네트워크 지정 브로드캐스트와 서브넷 지정 브로드캐스트로 나뉘게 되는데 

두 방식 모두 다 host ID 를 1로 만들어서 보내도록 되어있음.

예를들어 네트워크 지정 브로드 캐스트의 경우, A클래스라 가정했을 때 Network-ID.255.255.255 의 주소로 브로드 캐스트를 해야하며

서브넷 지정 브로드 캐스트일 경우는 다음과 같은 방법으로 브로드 캐스트 IP 를 구하여 브로드 캐스팅을 진행함.


예) 내 PC 주소  : 192.168.101.35
    subnet mask: 255.255.252.0    

    이진수로 바꾸어 표현해보면
	11000000.10101000.01100101.00100011
	11111111.11111111.11111100.00000000
				
	11000000.10101000.01100100.00000000	-> 192.168.100.0 network 주소
	subnet mask 의 0 으로 된 bit 들을 모두 1 로 바꿔주면 broadcast 주소 192.168.100.255
C-like


지정된 broadcast 방식의 경우, 동일한 네트워크에 연결되어 있는 호스트들에게판 패킷을 전송할 수 있는  브로드 캐스트 방식의 특성상 라우터에서 대부분 거르게 되는 경우가 많음. 따라서 해당 방법은 잘 사용되지 않으며 필요할 경우, 라우터에 예약되어 있는 브로드 캐스트 주소를 사용하는 방법이 일반적임.


2. 제한된 broadcast 방식의 경우 송신자가 속해 있는 로컬망에 대한 브로드캐스트를 의미하며 항상 브로드 캐스팅이 가능함.

또한, 라우터를 넘어가지 않기 때문에 라우터에서 패킷을 걸러버리는 문제들은 발생하지 않는다. 또한 제한된 브로드캐스트 주소는 약속되어 있는데 255.255.255.255 (mac - ff:ff:ff:ff:ff:ff)  값이 바로 그 값임.


수신자들은 해당 약속된 주소로 패킷을 받았을 경우, 자신의 ehernet header 에 담겨있는 mac 주소가 자신의 mac 주소는 아니지만 CPU 에게 패킷을 전달하여 처리하도록 함.


ARP 패킷을 예로 들어보면 송신자는 수신자의 IP 는 알지만 IP 주소에 매칭되는 수신자 장비의 mac 주소는 모르기 때문에 로컬 네트워크 내부로 IP 에 매칭되는 mac 주소를 알려달라고 브로드캐스트하게됨 (mac - ff:ff:ff:ff:ff:ff).

해당 망에 연결되어 있는 수신자들은 IP 가 자신의 IP 주소가 매칭되는지 확인하게 되고 일치하는 수신자가 응답을 주게 되어 있음.

이렇듯 브로드 캐스트은 꼭 필요한 통신방식이지만, 수신할 필요없는 수신자들에게도 데이터가 전송되는 단점을 가지고 있음.


[멀티캐스트]

UDP 기반으로 하나 이상의 송신자들이 특정한 그룹에 속해있는 하나 이상의 수신자들에게 데이터를 전송하는 방식. 특정한 그룹을 선택하는 기준은 D클래스의 IP 주소를 이용함. 


D클래스는 32bit 주소체계에서 상위 4개의 비트가 "1110" 으로 고정되어 있으며 하위 28bit 가 그룹의 ID 로 사용되는 특별한 주소형식을 가지는데 리를 10진수로 표현하여 보면 224.000.000.000 ~ 239.255.255.255 로 표현할 수 있음.


이렇듯 D 클래스의 그룹 주소를 사용하여, 멀티 캐스팅 그룹에 가입해 있는 모든 호스트들에게 단 한번의 데이터 전송으로 그룹에 가입되어 있는 수신자들에게 데이터를 전송할 수 있게됨. 


패킷의 수신자들은 자신이 그 그룹에 가입되어 있는가를 판단하여 해당 패킷을 받을지 말지에 대해 결정하게 됨.


예를들어 어떤 장비를 판매하는 업체들이 자신들의 업체 장비를 검색할 수 있는 방법에 대한 SDK 문서를 배포했을 때, SDK 문서에 mulicast 주소와 port 주소가 적혀있다면 굳이 broad casting 을 통한 검색이 아니라 해당 multicast 그룹의 주소와 port 만을 이용하여 해당 장비들에 대한 검색을 진행할 수 있음. 그렇다면 내부 망에 연결되어 있는 장비들을 multicast 를 이용하여 검색하게 되면 불필요한 네트워크 트래픽을 줄일 수 있는 더 나은 방법이 될 수 있음.

예) onvif device discovery 링크 : https://support.videotec.com/hc/en-gb/articles/217116646-Discovery-methods-supported-by-ONVIF-devices

해당 프로코콜에도 장비 검색에 대한 mulicast 주소와 port 가 명시되어 있음.


네트워크와 네트워크를 통과하는 패킷에 대한 멀티캐스트는 대부분의 라우터가 멀티캐스트를 지원하지 않기 때문에 막히는 경우가 많음. 멀티캐스트 패킷을 전송하기 위하여서는 멀티캐스트 라우터 사이에 터널링(tunneling)이라는 개념을 사용하여 캡슐화(encapsulation)된 패킷을 전송함. 

(터널링에 개념에 대해서는 추가적으로 정리하여 업로드 계획)

반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band