- Overview of Network Layer
- What's inside a router
- IP(Internet Protocol) : forwarding을 위해 사용
- Generalized Forwarding, SDN(Software-Defined Network)
- Middleboxes : 새롭게 생겨나는 기능들을 router의 핵심 계층으로 실을 수 없어 만드는 별도의 box
switch는 data plane의 역할만 수행하지만
router은 control plane과 data plane의 역할 모두 수행한다.
두 가지 plane의 역할을 수행하기 위해서 어떤 것을 가지고 있는지 알아보자.
1. Control plane
: in/out되는 packet 정보는 routing 정보
routing 정보를 통해 네트워크 전체의 상황 파악 => network logic이 적용돼야 하는 routing algorithm 통해서 RIB 계산
=> RIB로부터 FIB 구축해서 data plane에게 보내줌
2. Data plane
: in/out되는 packet 정보는 user의 정보
그럼 이제 구체적으로 어디서 무슨 작업이 발생하는지, 어떤 과정을 거치는지 알아보자.
- Control Module: routing protocol(사진에서는 OSPF process) 이용해 RIB table 구축(Control plane이 속함?)
- Switch Module: 들어온 line card로부터 나가야 할 line card로 switching 해줌()
- Line card: link들마다 각자의 line card 존재(Data plane이 속함?)
(참고)
* FIB table: output link로 내보냄
* ARP table: mac주소와 ip주소 매칭(output port로 내보내려면 link를 통해 내보내는데 이때 그 link가 해당하는 frame에 실려야 함. 그 frame에 실리려면 mac 주소가 들어가야해요)
* Physical Port: 하드웨어(Network Interface Card) => 여기에 link들이 물려있음
router 4가지 구성요소
- Routing processor
- Input port
- High-speed switching fabric
- Output port
1. (Control plane/Routing processor/Control Module) Routing protocol 수행해서 정보 모은 다음
routing algorithm 적용해 FIB 계산해 input port로 내려보내줌
2. (Data plane/Input ports/Line Card) Input port (phy layer->Link layer->NW layer)
3. (Data plane/High-speed switching fabric/Switch Module) Input port에서 어느 output port로 보낼지 결정 "switching"
4. (Data plane/Output ports/Line Card) Output port
Control plane(software)에서는 millisecond time frame
Data plane(hardware)에서는 forwarding이 빨리 일어나야 하기 때문에 nanosecond time frame
Input port의 구조
- Physical layer: bit단위로 line을 받음
- Link layer: link의 protocol 실행해서 처리, IP datagram을 벗겨내 NW layer로 보내줌
- NW layer: output port로 갈 수 있도록 switch fabric으로 밀어넣어줌
* NW layer에서 queueing은 나가는 속도보다 들어오는 속도가 빠를 때 일어남(output port의 queue와 비교)
=> input port processing은 "line speed"로 일어난다.
Switch fabrics의 구조
input buffer에서 output buffer로 packet 전송
- switching rate: input port에서 output port로 전송되는 속도(switching을 빨리 해주지 않으면 input port의 queue가 길어지므로 중요!!)
=> N개의 input port가 있고 line rate가 R이라면, switching rate=NR
** input/output port를 구분해서 표현하지만, 실제로 각 port는 input port 역할을 할 수도, output port 역할을 할 수도 있다.
그래서 연결된 line은 2R개가 아니라 R개!
- Memory 방식: input 들어오면 memory bus를 통해 들어와 memory에 저장됨
=> output port에서 memory bus를 통해 memory로부터 가져감
=> memory bus 2번 지나는 셈..
- Bus 방식: input port가 전용 bus에 밀어넣고 bus를 통해 output port로 전달됨
=> memory와 bus 방식은 output port가 같건 다르건 병렬적 진행이 불가
- Interconnection Network 방식: 한 번에 여러 개의 packet이 동시에 output port로 가도록 가능
=> 한 번에 한 쌍의 input-output port 만 전달 가능(여러 개면 충돌)
=> ex. Crossbar 형식: 서로 다른 input port가 각각 다른 output port로 연결될 때 병렬적 forwarding 가능(output port가 다르면 동시에 가능)
*속도: Memory < Bus < Interconnection Network
- multistage switch:
같은 output port로 나가는 서로 다른 input packet들이 병렬적으로 내보내질 수 있음(같은 output port로 나가는 packet들은 병렬적 처리가 안 된다는 interconnection network의 한계 보완)
"N개의 switching fabric에 연결"
다음과 같이 N개의 plane으로 나눔(datagram이 조각조각 나뉘어 정해진 크기의 plane들에 나눠 담김)
=> 나갈 때는 조각들을 다 합쳐
Cisco CRS router
- basic unit: 8 switching planes
- each plane: 3-stage interconnection network
- 100 Tbps까지 용량 지원 가능
HOL blocking
switching fabric 안에서의 속도 < input port의 속도
=> input queue가 발생 => HOL blocking
빨간색 패킷은 빨간색 output port로, 파란색 패킷은 파란색 port로, 초록색 패킷은 초록색 port로 간다고 할 때
첫 번째 전송에서 파란색 패킷은 한 개이므로 문제 없지만..
빨간색 패킷은 두 개이므로 충돌이 일어나 밑의 빨간색이 blocked됨
그러면 다음 패킷인 초록색은 초록색 port 열려있어도 한 packet time 밀려나게 됨
Output port 구조
input port와 반대로 구성된다고 보면 된다.
Input port가 Phy layer->Link layer->NW layer 순서로 구성된다면,
Output port는 NW layer->Link layer->Phy layer 순서로 구성된다.
Q: Input port에서 이미 목적지가 정해졌는데 왜 output port의 NW layer에도 queue가 존재할까?
A: Output port에 들어오는 switching rate는 NR, 나가는 속도는 R이기 때문에
즉, 들어오는 속도가 나가는 속도보다 빠르기 때문에 나가기를 기다릴 곳이 필요하다.
Input port | Output port | |
queue 존재 이유 | ingoing link와 switching fabric 속도 차이 때문에 | switching fabric과 outgoing link 속도 차이 때문에 |
하지만 queue가 존재한다면 buffer overflow로 인한 delay와 loss는 필연적으로 존재한다.
그래서 drop policy와 scheduling discipline이 필요하다.
- drop policy: queue가 꽉 차있는 상태에서 또 다른 packet이 들어올 경우 어느 것을 drop시킬 것인가 기준 정의
- scheduling discipline: scheduling의 우선순위 정의 => 어떤 packet이 우선적으로 outgoing link를 사용할 수 있게 해줄건지 정의
ex. 더 많은 비용을 지불한 사용자가 보낸 packet을 먼저 처리하도록 해줌
<-> 최근에 미국에서는 network neutrality
RFC 3439 rule of thumb
경험적인 기준을 통해 buffering의 크기 결정
1. link가 두꺼울수록, 길수록 더 큰 크기의 buffer 지정해준다. => buffer가 꽉 차도록 최대한 밀어넣음
결국 두껍고 큰 core부분의 link에 큰 buffer를 할당해주는 것.
Buffer의 capacity = C*R (C: link capacity, R: RTT)
2. 여러 source-destination pair가 공유할수록 multiplixing 때문에 traffic이 drop될 확률 있음
1과 2를 고려하여 다음과 같은 공식
Buffer Management
drop: 패킷 만석일 때,, 뭘 버릴 건지 정함
1. tail drop: 선착순으로 들어와 꽉 찼을 때 들어오는 packet drop
2. priority: 우선순위가 적은 packet drop
marking: drop 되기 전에(queue가 꽉 차기 전에) 미리 congestion detection해서 알려줌
지나가는 packet의 ip header의 특정 비트(TCP의 ECN 매커니즘의 경우 ToS field)를 검사
-> TCP 계층에 ToS 값 알려줌
-> sender쪽 TCP segment header에 적어 보냄
-> sender가 drop되기 전에 congestion 알게됨
-> 보내는 속도 줄임
-> loss 방지
* ECN: congestion notify
* RED(Random Early Detection): congestion level에 비례해 random
Packet Scheduling
packet scheduling: queue에 들어와있는 packet들 중 어떤 것을 link로 내보낼 것인가 결정
- first come, first served: 선착순
- priority: header field 사용해 우선순위 식별해 classify
* 높은 priority class가 모두 끝나면 그 다음 priority class 시작
* 다음과 같이 high priority queue와 low priority queue가 나뉘어 있고 high priority queue가 비어있다면 low priority queue 처리
=> arrivial 순서와 시점이 다음과 같을 때 deparature은 1->3->2->4->5
* low priority queue의 packet이 처리 중일 때 들어온다면 하던 거 마저 하고 high 처리
- round robin(RR): priority처럼 header 참고해 traffic을 classify하되, 각 class들이 동일한 기회를 가질 수 있도록 함
class들 순차적으로 돌아가며 기회 제공
- weighted fair queueing: round robin을 일반화
RR 처럼 모든 class에 동일한 기회 제공하는 것이 아니라,,, 각 class의 weight별로 차등 제공
R * w1/(w1+w2+w3)
(R=link의 service rate)
=> 자신의 무게만큼 service rate 할당받음
Network Neutrality
위와 같이 Packet scheduling을 할 때 차등 분배를 하지 말고 똑같은 기회를 부여하자는 것
ISP들이 사용자, 내용, 웹사이트, 플랫폼, 앱 등등의 이유로 요금을 다르게 하는 것을 불법으로 여긴다.
(막거나 느리게 하거나 지불한 비용에 따른 차등 지불xxx)
- no blocking
- no throttling
- no paid prioritization
'네트워크 > 컴퓨터 네트워크 수업' 카테고리의 다른 글
4-3. IP(Internet Protocol)(2) (6) | 2024.11.15 |
---|---|
4-3. IP(Internet Protocol)(1) (0) | 2024.11.13 |
4-1. Overview of Network Layer (0) | 2024.11.12 |
2-3. Electronic mail(SMTP & POP3) (0) | 2024.11.12 |
3-5-1. Principles of congestion control (0) | 2024.11.05 |