(4.1 과 4.2 퀴즈 대비)
host는 routing/forwarding 기능을 모두 수행하는가 ? (F)
network 계층에서는 routing/forwarding 기능을 모두 수행하는가 ? (T)
IP 계층에서 in-order과 loss를 support 하는가? (F, TCP가 4계층에서 수행)
PS는 CS와 다르게 layer2 계층을 interconnect 하는데에 더 유리하다. (T)
Router에는 end host에서 출발한 app msg가 포함된 pkt만 전송한다. (F, router에는 router끼리 주고 받는 msg도 돌아다닌다.)
Head of the Line Blocking은 output buffer에서 일어나는가? (F, input buffer에서 일어난다.)
network layer protocol은 모든 host(data plane에만) 와 router(data,control plane 둘 다)에 있다
sending host는 segment를 datagram으로 encapsulation한다.
중간 router는 모든 datagram의 header field를 까보고, 어디로 보낼지 결정한다.
(router는 복잡한 일을 하지 않는다. 오로지 빨리 보내는 것에 집중, dns resolution이 host에서 하는 것 기억)
receiving host는 datagram을 decapsulation해서 segment를 확인한다.
network service model은 host 사이의 e2e transport 특성을 정의해둔다.
ex1) - datagram에 해당되는 issue) 패킷의 loss가 있어서는 안되는 것, delay 수준이 bdd 되어있으면 하는 것 등
ex2) – datagram의 flow에 해당되는 issue) in-order delivery를 원하는 것, bandwidth가 최소였으면 하는 것, packet간의 간격이 일정하게 도착했으면 하는 것
단말의 rate와 path가 고정되어 있어 속도가 높다.
VC NW (ATM) 과 Datagram NW로 나뉜다.
특히 datagram network에 대해 더 알아보자 (VC는 도태되어서 이게 더 중요)
layer2계층에서 call-setup 과정이 없음, 즉 call-setup delay도 없다는 의미이다.
router는 e2e 정보에 대해서 아는 것이 없고 주어진 일만 한다.
router는 특히 패킷들의 관계에 대해서 전혀 알지 못함.
packet들은 datagram의 header의 dst IP와 FIB(forwarding table)을 이용해서 forward 된다.
이때 패킷들은 각각 개별적이기에 패킷의 전송 순서는 in-order가 아니다.
packet들을 input buffer에서 output buffer로 전달시킨다.
Switching Rate : 패킷을 input에서 output으로 이동시키는 속도
switching module 개발자는 보통 line card의 n배를 R값, 즉 switching rate의 값으로 정함. 스위칭 속도는 매우 빠르므로 큰 문제가 되지 않는다.
interconnection network(crossbar networks) 구조, 즉 여러 개의 packet을 동시에 switching 할 수 있다.
단, 각각 다른 input port에서 각각 다른 output port로 가는 것에만 해당된다. 이때 forwarding은 당연히 FIB를 보고 이루어진다.
Example)
1번 패킷과 2번 패킷이 있다고 하자.
이 두 패킷이 같은 output port로 가게 될 때, 다른 하나의 패킷은 input buffer에서 대기를 해야한다. 이때 대기하는 시간을 Head Of Line Blocking 이라고 한다.
앞에 있는 패킷 때문에 일어나는 blocking 현상.
일 때
위의 빨강이와 아래 빨강이는 같은 output port로 간다. 동시에 switching 될 수 없으므로, 하나는 대기해야한다.
이때 아래 빨강이가 대기하게 된다면 아래 초록이는 forwarding 시간이 한 타임 밀린다.
일 때
아래 빨강이가 switching 된다. 아래 초록이는 한 타임을 기다렸다. 이것을 HOL blocking 이라고 한다.
HOL blocking은 그림에서 봤듯이 input port에서 일어난다.
burffering은 TCP 연결 수와 RTT값의 영향을 받는다.
RTT 값이 크다는 것은 많은 router와 큰 network 영역을 가지고 있다는 의미이다. 즉 output buffer에 패킷이 머무는 시간도 크다는 것이다.
따라서 buffer size에는 RTT값이 반영되어야 한다.
의 식을 최근에는 이용한다. (N값은 TCP 연결 수, C값은 link의 용량)
TCP 연결 수가 많다는 것은 output buffer packet을 관리하는 end node가 많아진다는 의미이다. TCP는 똑똑하기 때문에 알아서 loss가 생기지 않게 관리한다. 따라서 TCP 연결 수가 많을수록, buffer size는 그에 반비례하게 된다.