③ 유니캐스트, 브로드캐스트, 멀티캐스트
유니캐스트, 브로드캐스트, 멀티캐스트는 네트워크에서 통신하는 방법을 구분 짓는 방법 입니다.
●유니캐스트 - 1:1통신 방법입니다. 데이터를 보내고자 하는 주소 (맥어드레스)를 프레임에 포함시켜 보내는 방식입니다. 그래서 그 맥 어드레스를 찾아 통신하게 되고 같은 네트워크에 있는 노드들은 자신의 맥 어드레스 아닌 경우엔 패킷이 CPU 까지 전송되지 않고 LAN카드에서 "맥 어드레스가 틀리네" 하면서 버리게 되는 것 입니다. 그래서 CPU까지 영향을 미치지 않고 원하는 노드랑 통신이 가능 한 방식 입니다.
●브로드캐스트 - 하나의 네트워크 전체의 통신방법 입니다. 같은 네트워크에 포함된 장비들에게 거부권은 없고 일단 무조건 수신하고 봐야하는 통신법 입니다. 예를 들어 동네이장님이 마이크로 마을 전체에 방송하는 것 과 같은 원리입니다. 일단 방송하면 싫어도 듣게 되겠죠? 그런 원리입니다. 유니캐스트 와는 다르게 무조건 받아들어야 하기 때문에 CPU까지 패킷이 올라가게 되고, 컴퓨터 자체에 부담이 증가하게 되는 것입니다.
브로드캐스트의 대표적인 사용 예는 ARP입니다. 맥어드레스 설명할때 잠깐 나온 ARP에 대해 설명 드리겠습니다. ARP 란 자신과 데이터 통신을 하기위한 다른 노드의 맥어드레스를 알아내기 위한 프로토콜입니다. 쉽게 말해 실직적인 통신은 IP주소가 아닌 맥어드레스로 이루어지는데, IP주소는 알고 잇지만 맥어드레스를 모를 때 사용하는 방법 입니다.
예를들어(ARP) ..
길동, 영수, 순이 , 철수란 이름을 가진 아이들이 있습니다. 영수는 순이라는 아이의 지갑을 주웠습니다.
영수가 아이들에게 "순이가 누구냐?" 하고 물었습니다.
그러자 순이가 "내가 순이야" 라고 대답을 했죠,
영수는 순이에게 지갑을 건 내 줬습니다.
이때 길동, 영수, 순이, 철수는 각각의 컴퓨터라고 생각 한다면,
영수가 순이라는 아이의 지갑을 주워서 돌려주기 위해서는 순이가 누구지를 알아야 합니다.
그래서 "순이가 누구냐?" 하고 물었죠?
이때, 영수의 질문은 불특정 다수에게 질문을 한 것이고, 이게바로 브로트 캐스트 입니다.
그리고 이 질문을 들은 아이들은 ARP를 동작 합니다. '내이름이 순이가 맞나?' 하고 생각을 하는 것이죠. 그리고 순이 가 아닌 다른 아이들은 순간 멈칫했지만, 자신이 아니므로 무시하고 하던 일을 계속합니다. 순이는 대답을 했겠죠 영수가 대답을 한 순이 에게 지갑을 돌려줍니다(이게 유니캐스트 입니다.)
만약, 철수가 순이라는 아이를 알고 있다고 하면, 브로드캐스트로 모두에게 물어봤을까요?
아닙니다. 알고 있다면 바로 순이에게 유니캐스트를 시도하게 되는것입니다.
●멀티캐스트 - 약 150여명의 사용자가 있는 한 네트워크에서 100명 에게 데이터를 전송 하기 위한 상황이라면 100명에게 일일이 유니캐스트로 보낼 수도 없고 100명을 위해 50명은 무시하고 브로트캐스트로 보낼 수도 없고, 이럴 때 사용 하는 게 멀티캐스트 입니다.
멀티캐스트의 원리는 멀티캐스트 전송을 위해서는 헤더에 수신자의 주소 대신 수신자들이 참여하고 있는 그룹주소를 표시하여 패킷을 전송 한다. 멀티캐스트 전송을 위한 그룹 주소는 D-class IP 주소(224.0.0.0~239.255.255.255)로 전세계 개개의 인터넷 호스트를 나타내는 A, B,C-class IP주소와는 달리 실제의 호스트를 나타내는 주소가 아니며, 그룹 주소를 갖는 멀티캐스트 패킷을 전송받은 수신자는 자신이 패킷의 그룹에 속해 있는 가를 판단해 패킷의 수용여부를 결정합니다. 그러나 현재 인터넷상의 라우터들이 대부분 유니캐스트만을 지원하기 때문에 멀티캐스트 패킷을 전송하기 위해서는 멀태캐스트 라우터 사이에 터널링(tunneling)이라는 개념을 사용하여 캡슐화(encapsulation)된 채킷을 전송 합니다. 즉 멀티캐스트 주소를 가진 데이터 패킷 헤더 앞에 멀티캐스트를 지원하지 않는 일반라우터들을 거칠 때 기존의 유니캐스트 패킷고 같은 방법으로 라우팅 되어 최종적으로 터널의 종착지로 전송될 수 있게 하는 것입니다.
출처 : http://bongsnet.tistory.com/15
___________________________________________________________________________________________
IP주소의 클래스
IP 주소는 그 활용도에 따라서 A, B, C, D, E 클래스로 구분되어 지고 A, B, C 클래스의 경우는 일반 사용자를 위한 클래스 이고 D클래스는 멀태캐스트를 위한 IP주소이고, E 클래스는 실험을 위한 테스트용 입니다.
● A 클래스
# Bits 1 7 24
첫번째 칸 : A 클래스라는 것을 알려주기 위한 비트
두번째 칸 : 네트워크 부분
세번째 칸 : 호스트 부분
으로 나눌 수 있습니다. 그러므로 A 클래스는 항상 '0' 으로 시작 되어야 하고, 네트워크 부분의 비트는 7개 호스트 부분의 비트는 24개 로 정해져 있습니다. 그래서 A 클래스의 호스트수는 다른 클래스 보다 가장 많으며, 네트워크 번호는 1~ 126 까지 입니다. 그렇다면 왜 126 까지 인가? 2진수로 따져보겠습니다.
A클래스의 가장작은 수는 0000 0000.0000 0000.0000 0000.0000 0000 ~10진수~> 0.0.0.0
A클래스의 가장큰 수는 0111 1111.1111 1111.1111 1111.1111 1111 ~10진수~> 127.255.255.255
가 됩니다. 그럼 1~127 까지 아닌가 라고 생각 하실텐데 127번 대역은 호스트 자신의 주소로 하라고 따로 정의가 되어 있습니다. 그래서 A 클래스의 네트워크 부분은 1~126 까지가 되는 것입니다.
● B 클래스
# Bits 1 1 14 16
첫번째, 두번째 칸 : B 클래스라는 것을 알려주기 위한 비트
세번째 칸 : 네트워크 부분
네번째 칸 : 호스트 부분
으로 나눌 수 있습니다. 그러므로 B클래스는 항상 '10'(10진수 128) 로 시작 되어야 하고 네트워크 부분의 비트는 14개 호스트 부분의 비트수는 16개로 A 클래스보다 적은 수의 호스트수를 가진 클래스 입니다. B클래스를 알리기 위한 비트수 이외에도 네트워크 부분을 나타내는 비트수가 14자리나 되어 있기 때문에 B클래스의 네트워크 번호는 128.1~191.254 까지 입니다.
B클래스의 가장작은 수는 1000 0000.0000 0000.0000 0000.0000 0000 ~10진수~> 128.0.0.0
B클래스의 가장큰 수는 1011 1111.1111 1111.1111 1111.1111 1111 ~10진수~> 191.255.255.255
여기서 128.0 은 네트워크 주소를 191.255 는 브로드 캐스트 주소이기 떄문에 제외한 128.1~191.254 를 네트워크 부분의 갖습니다.
● C 클래스
# Bits 1 1 1 21 8
첫번째, 두번째, 세번째 칸 : C 클래스라는 것을 알려주기 위한 비트
네번째 칸 : 네트워크 부분
다섯번째 칸 : 호스트 부분
으로 나눌수 있습니다. 가장 적은 호스트 수를 가지고 있는 클래스 이고 네트워크 부분은 192.0.1~223.255.254 까지 입니다.
C클래스의 가장작은 수는 1100 0000.0000 0000.0000 0000.0000 0000 ~10진수~> 192.0.0.0
C클래스의 가장큰 수는 1101 1111.1111 1111.1111 1111.1111 1111 ~10진수~> 223.255.255.255
출처 : http://bongsnet.tistory.com/15
___________________________________________________________________________________________
multicast ; 멀티캐스트
인터넷의 전송 방식은 전송에 참여하는 송신자와 수신자 관점에서 나누어 유니캐스트, 브로드캐스트, 멀티캐스트로 구분할 수 있다. 유니캐스트 전송 방식은 하나의 송신자가 다른 하나의 수신자로 데이터를 전송하는 방식으로 일반적인 인터넷 응용프로그램이 모두 유니캐스트 방식을 사용하고 있다. 브로드캐스트 전송방식은 하나의 송신자가 같은 서브네트웍 상의 모든 수신자에게 데이터를 전송하는 방식이다. 반면 멀티캐스트 전송방식은 하나 이상의 송신자들이 특정한 하나 이상의 수신자들에게 데이터를 전송하는 방식으로 인터넷 화상 회의 등의 응용에서 사용한다. |
|
그룹 통신을 위하여 다중 수신자들에게 동일한 데이터를 전송하고자 할 경우 유니캐스트 전송방식을 이용한다면 전송하고자 하는 데이터 패킷을 다수의 수신자에게 각각 여러 번 전송해야 하며, 이러한 동일한 패킷의 중복전송으로 인해 네트웍 효율이 저하된다. 또한 수신자 수가 증가할 경우 이러한 문제점은 더 커지게 된다.
반면 멀티캐스트 전송이 지원되면 송신자는 여러 수신자에게 한 번에 메시지가 전송되도록 하여, 데이터의 중복전송으로 인한 네트웍 자원 낭비를 최소화할 수 있게 된다.
멀티캐스트 전송이 일반적인 유니캐스트 인터넷 응용 분야와 다른 점은 우선 그 전송 패킷에 있다. 일반적으로 TCP/IP 상의 인터넷 응용 프로그램은 데이터의 송신자가 이를 수신할 수신자의 인터넷 주소를 전송 패킷의 헤더에 표시해 패킷을 전송한다. 그러나 멀티캐스트 전송을 위해서는 헤더에 수신자의 주소 대신 수신자들이 참여하고 있는 그룹 주소를 표시하여 패킷을 전송한다.
멀티캐스트 전송을 위한 그룹 주소는 D-class IP 주소 (224.0.0.0∼239.255.255.255)로 전세계 개개의 인터넷 호스트를 나타내는 A, B, C-class IP 주소와는 달리 실제의 호스트를 나타내는 주소가 아니며, 그룹 주소를 갖는 멀티캐스트 패킷을 전송받은 수신자는 자신이 패킷의 그룹에 속해있는 가를 판단해 패킷의 수용여부를 결정하게 된다.
그러나 현재 인터넷상의 라우터들이 대부분 유니캐스트만을 지원하기 때문에 멀티캐스트 패킷을 전송하기 위하여서는 멀티캐스트 라우터 사이에 터널링이라는 개념을 사용하여 캡슐화된 패킷을 전송한다. 즉 멀티캐스트 주소를 가진 데이터 패킷 헤더 앞에 멀티캐스트 라우터간에 설정된 터널의 양 끝단의 IP 주소를 덧붙여 라우팅을 함으로써 멀티캐스트를 지원하지 않는 일반 라우터들을 거칠 때 기존의 유니캐스트 패킷과 같은 방법으로 라우팅되어 최종적으로 터널의 종착지로 전송될 수 있게 하는 것이다.
출처 : http://terms.co.kr/multicast.htm
'학습자료(~2017) > 팁' 카테고리의 다른 글
비트연산 - 빠른 정수학 (0) | 2012.01.25 |
---|---|
배치 프로그래밍 참고자료 (0) | 2012.01.12 |
뮤텍스나 세마포 혹은 크리티컬섹션을 구현하여야 할때 (0) | 2011.11.10 |
Eclipse 이크립스 단축키 (0) | 2011.10.31 |
K&R c문법 (옛날 c 문법, 과거 c 문법, 생서한 c 문법) (0) | 2011.10.18 |