Computer Networking

4.2 What's inside a router

노예2 2018. 12. 14. 23:09

1. Router architecture overview


1) 입력 포트 : 라우터로 들어오는 입력 물리 링크의 종단, 검색(lookup) 함수 수행 (이는 입력 포트의 가장 우측 상자에서 발생), 도착한 패킷이 전달되기 위한 결정. 제어 패킷 전달


2) switching structure : 라우터의 입력 포트와 출력 포트를 연결. 


3) 출력 포트 : 외부 링크로 패킷을 전송. 


4) routing processor : 라우팅 프로토콜(4.6)을 수행, 라우팅 테이블과 연결 상태 정보 유지, 포워딩 테이블을 계산



 ○ 입력 처리


-  decentralized switching : queuing 지원, 최장 프리픽스 대응을 forwarding table에서 찾아 전송


최장 프리픽스 대응 ex) 11001000 00010111 00010*** ********* | 0  (forwarding table)



2. Switching



- 메모리를 통한 교환 : CPU가 직접 패킷을 제어. 입력 포트가 인터럽트 보내 메모리에 패킷 복사 -> 프로세서가 목적지 주소 찾아 출력 포트 버퍼에 패킷을 복사.


- 버스를 통한 교환 : 패킷 하나만 한 번에 버스를 건널 수 있음. 라우터 스위칭 속도는 버스 속도에 의해 제한


- 인터커넥션 네트워크를 통한 교환 : 단일 또는 공유 버스의 대역폭의 한계를 극복. 2N 개의 버스로 구성됨.



3. Input port queuing


- Head-of-the-Line (HOL) blocking : 두 패킷이 같은 출력 큐로 향할 때, 한 패킷은 블로킹되어 입력 큐에서 대기.


4. Output port queuing


- output line의 전송률 이상의 데이터가 도착할 때 큐잉된다.

- 큐잉(지연) 과 손실은 output port buffer 의 overflow에 의해 발생할 수 있다.


- scheduling mechanisms

link로 전송할 다음 패킷을 선택.

FIFO scheduling - 큐에 들어온 순서대로 전송

가득 찬 큐에 들어오려 할때 - 1) tail drop (도착한 패킷을 드랍) 2) priority (우선순위에 기반하여 드랍) 3) random


--> priority scheduling

output port에 도착하는 패킷들을 우선순위에 따라 high priority queue와 low priority queue에 나누어 저장

high priority queue 가 비었을 때만 low priority queue의 패킷을 전송.


--> RR (Round Robin) scheduling

여러 종류의 패킷을 번갈아가며 전송. 반복하면서 각 class 마다 하나의 완전한 패킷을 전송


--> Weighted Fair Queueing (WFQ)

정규화된 RR

패킷 flow 별로 다른 큐를 두어 트래픽을 조절

각 클래스는 가중치를 가져 같은 트래픽의 flow 사이에서도 차이를 둠