이 글은 이화여자대학교 이미정 교수님의 2014년 2학기 컴퓨터 네트워크 강의를 기반으로 재구성한 것입니다. 삽화는 링크를 출처로, 저작권은 J.F Kurose and K.W. Ross에게 있다는 것을 밝힙니다.
- network layer principles
- virtual circuit, datagram network
- router의 내부
- IP
- datagram format
- IPv4 addressing
- ICMP
- IPv6
- routing algorithm
- link state
- distance vector
- hierarchical routing
- routing in the internet
- RIP
- OSPF
- BGP
- broadcast, multicast
broadcast와 multicast는 간단하게 개념만 짚고 넘어간다.
Broadcast와 Multicast
broadcast는 source host가 내보낸 data가 network의 모든 host에게 알리는 것이다.
multicast는 source host가 내보낸 data가 network의 특정 host들에게 알리는 것이다.
Unicast로 구현했을 때 문제점
broadcast와 multicast는 기존 방식인 unicast로 구현할 수 있지만 문제가 있다. 이렇게 만들 경우 unicast에서 보내는 packet의 사본을 만드는 방식이기 때문에 source에 가까운 link의 부하가 심해진다.
때문에, network의 모든 router가 broadcast/multicast를 위한 route 정보를 별도로 가지고 있는 경우, source router가 packet을 복사하는 것이 아니라 route 내에 있는 router들이 packet을 복사하는 방법으로 부하를 줄일 수 있다.
그러나 multicast의 경우 주소가 여기저기에 흩어져 있고, source host가 destination host의 주소를 모두 알아야 하는데, 이는 매우 어렵다. 따라서 multicast/broadcast를 위한 전용 protocol을 만들어야 한다.
Multicast/Broadcast 전용 Protocol
- flooding : broadcast는 router의 모든 port로 packet을 복사해 내보내면 되며, 이를 flooding이라 한다.
- 이 방법의 경우, route cycle 등으로 인해 복사해 내보낸 packet이 다시 자신에게 돌아올 수 있다. 그러면 이미 보냈던 broadcast packet을 또 보내고, 이 과정이 반복된다. 이를 broadcast storm이라 한다.
- controlled flooding : broadcast storm을 막기 위한 방법이다. 특정 port로 들어온 packet만 flooding하거나, 내보낸 packet을 기억해서 아직 내보내지 않은 broadcast packet만 보내는 방식이다.
- spanning tree : network에서 spanning tree를 만들면 중복이 생기지 않고 broadcast를 만들 수 있다.
Multicast Spanning Tree
unicast의 경우 graph topology(graph가 어떻게 생겼는지)만 알면 되지만, multicast의 경우 graph topology 뿐만 아니라 destination host가 어디에 있는지도 알아야 한다.
- source based tree : source에서 모든 multicast group member host에 도착하는 shortest path tree를 만들면 된다. 이 방법은 전송에는 효과적이지만, multicast group member가 n명이라면 총 n개의 tree가 필요하다.
- group shared tree : group에 1개의 tree를 쓰는 방식이다. optimal한 방법은 steiner tree - 모든 source vertex를 포함하는 miminum spanning tree 중 제일 작은 것을 쓰면 되지만, 이는 NP hard 문제이므로 시간 내에 계산할 수 없다. 따라서 적당히 계산하는 central based tree를 쓴다.
Central Based Tree
group shared tree를 적당히 계산하는 방법이다. 방법은 아래와 같다.
- 임의의 router를 center로 두고 multicast group member에게 알린다.
- center를 root로 두고 모든 group member가 center로 가는 shorted path를 그린다.
이 경우, tree가 optimal은 아니지만 router는 적은 양의 정보만 사용할 수 있고, group shared tree로 쓸 수 있다.
steiner tree는 계산 시간도 길고 정보량도 많아야 하므로 유지하기 힘들다.
central based tree를 쓸 때 multicast를 하면 source host - center router - destination으로 packet이 거쳐간다.
잘못된 내용이나 오탈자에 대한 지적, 질문 등은 언제나 환영합니다.
'CS > Network' 카테고리의 다른 글
[Network] 하향식 접근 네트워크 - 6. Mobile Networks (0) | 2023.07.31 |
---|---|
[Network] 하향식 접근 네트워크 - 5. Link Layer (1) | 2023.07.31 |
[Network] 하향식 접근 네트워크 - 4. Network Layer - (5) Routing in the Internet (0) | 2023.07.30 |
[Network] 하향식 접근 네트워크 - 4. Network Layer - (4) Routing Protocol (0) | 2023.07.30 |
[Network] 하향식 접근 네트워크 - 4. Network Layer - (3) Internet Protocol (0) | 2023.07.30 |