Network layer
transport layer vs network layer
1. transport layer
end to end. 양 종단 간에 있는 신뢰성 있는 전달로 보내는 것이 transport layer이다.
2. network layer
network 계층은 각각 라우터에서 모두 참조한다. 각 라우터에서 network layer의 header를 까보는 것이다. 이 때 읽은 정보를 토대로 routing하는 등 이런 부분을 처리한다.
datagram
transport layer에서는 segment였던 것이 network layer에서는 datagram이라고 부른다. 그래서 보내는 쪽이 segment를 datagram으로 encaptulation하고, 받는 쪽에서 segment로 바꾸어줘서 transport layer로 전달한다.
network layer의 두가지 기능
1. Forwarding
복수개의 output이 연결되어 있는 router의 input에 패킷이 들어왔을 때, 어느 port로 보내줘야 할 것인가가 결정돼서 보내는 것.
2. Routing
Forwarding하기 전에 어디로 보낼 것인가 결정하는 것. routing 알고리즘에 의해 실행된다. 이 알고리즘은 나중에 배울 것이다.
여행으로 예를 들자면, 수원에서 강릉을 간다고 하자. 만약 영동고속도로를 탄다고 결정하면, 동수원 IC를 나가야 하는데 이 때 내보내는 과정이 forwarding이다. 차를 운전해서 차을 내보내는 것이다.
그런데 도로 상황에 따라 영동고속도로로 갈 수도 있고 국도로 가거나 할 수 있다. 이처럼 경로가 여러가지 있을 때 어느 경로로 갈 지 정하는 것이 바로 Routing이다. 바로 네비게이션의 역할인 것이다.
network layer : data plane, control plane
1. data plane
local 라우터마다 있는 기능이다. 어떤 datagram이 라우터의 input으로 들어왔을 때 어떻게 forwarding해줄 것인가(forwarding function) 이런 것을 data plane이라고 보면 된다. 즉 header에 있는 값(data)이 들어와서, 이 data마다 라우터에서 내보내주게 되는 것이 data plane이다.
2. control plane
network-wide logic이다. 모든 라우터가 공통으로 돌릴 수 있는 부분들이다. 예를 들어 routing protocol같이 어떤 라우터든 공통으로 돌아갈 수 있는 것이 control plane이다. 그래서 datagram을 보낼 path를 결정하는 routing에 대한 것이 control plane이다.
Control plane
1. Per-router control plane
control plane을 routing 알고리즘이라고 보자. 이 routing 알고리즘이 각각의 라우터에 들어가서 나와 붙어있는 라우터들에 대한 정보를 알아낸다. 내 이웃 라우터를 알아야 다음 일을 진행할 수 있다.
이것은 분산되어 있다는 것을 알고 있자.
2. Logically centralized control plane
각각의 라우터에 있는 controller들이 local control agent(CA)이다. 중앙에 있는 Remote Controller와 interaction하는 것이다. 중앙집중되어 있는 알고리즘이다.
Network service model
sender에서 receiver까지 datagram을 transporting하는 "channel"에 대해 어떤 service model을 network service model이라고 한다.
individual datagrams에 대한 예
1. guaranteed delivery : 전달을 보장하는 것.
2. guaranteed delivery with less than 40 msec delay : 40 msec 이내로 무조건 전달을 보장하는 것.
이런 형태가 service model의 종류라고 할 수 있다.
(datagram마다가 아니라) datagram의 연속적인 각 flow에 대한 예
1. in-order. 순서가 맞는 datagram을 전달해 주는 것
2. 이 flow에 대해서 최소한의 bandwidth를 보장해 주는 것.
3. 패킷들 간에 spacing에 대해 restriction을 주는 것.
이런 것들을 생각해 볼 수 있다.
network service model을 고려한 ATM이라고 하는 2000년대 초기의 network 스위치 장비가 있음. 그래서 Bandwidth, Loss, Order, Timing을 보장해줄 수 있다.
CBR (Constant Bit Rate) : 일정한 전송률을 갖는 서비스에 대해서 전부 게런티 보장해 줄 수 있다.
VBR (Variable Bit Rate) : 가변적인 전송률에서도 게런티 보장해 줄 수 있다
ABR. Bandwidth와 order정도만 service하는 모델.
UBR. order정도만 service해주는 모델.
ATM vs Router
ATM과 Router는 network layer에서 경쟁하던 관계였음. 지금은 ATM은 사라지고 Router만 사용한다. 그런데 Bandwidth, loss, order, timing의 게런티를 보장해 줄 수 있는 것은 ATM이고, Router는 아무것도 게런티를 보장해 주지 못한다. 어떻게 Router가 승자가 되었을까? 바로 ATM은 고가이고 Router는 저렴했기 때문이다.
당시 ATM은 네트워크 장비로써 보급되었지만 관리가 잘 되지도 않았다. 그래서 차라리 비싼 ATM보다 저렴한 Router를 쓰게 됨. 결국 2000년대까지 잠깐 사용되다가 사라지게 되었다.
[참고]
Computer Networking A Top-Down Approach 7-th Edition / Kurose, Ross / Pearson
'IT > 네트워크' 카테고리의 다른 글
[ 네트워크 ] Internet Protocol : IP (IPv4) (2) | 2020.05.20 |
---|---|
[ 네트워크 ] Router (0) | 2020.05.14 |
Wireshark 패킷 분석 (DNS, TCP) (2) | 2020.05.10 |
[ 네트워크 ] Electronic mail (E-mail) (0) | 2020.05.04 |
[ 네트워크 ] Web Caching (proxy server) (0) | 2020.05.04 |
댓글