Network Layer (네트워크 계층, 3계층)

 

- 송신 호스트에서 수신 호스트로 세그먼트를 전송한다.

 

- 송신 호스트에서 세그먼트를 데이터그램(datagram)으로 캡슐화한다.

 

- 수신 호스트에서 세그먼트를 전송 계층(4계층)으로 전송한다.

 

- 네트워크 계층이 모든 호스트와 라우터에서의 프로토콜을 지정한다.

 

- 라우터는 해당 라우터를 통과하는 모든 IP 데이터그램에 있는 헤더 필드를 검사한다.

 

 

 

Network Layer Functions and Plane

 

- 라우팅 (Routing) : 출발지에서 목적지까지의 모든 경로를 결정한다. 라우터에서 라우팅 알고리즘으로 포워딩 테이블을 만든다. 포워딩 테이블에는 목적지 IP 주소와 해당 포트번호가 저장되어 있다.

 

- 포워딩 (Forwarding) : 라우터 내부에 입력 버퍼와 출력버퍼가 있다. 입력버퍼로 들어온 패킷의 헤더에 있는 IP주소와 포워딩 테이블의 IP주소를 비교하여 적절한 포트번호를 가진 출력 버퍼로 패킷들을 옮긴다.

 

- 라우팅이 출발지에서 목적지까지 여행을 계획하는 과정이라면, 포워딩은 여행 중간의 하나의 지점을 지나가는 과정이다.

 

- Control plane

  • 넓은 네트워크의 논리적인 부분을 담당하는 뇌의 역할을 한다.

  • 데이터그램이 종단 사이에 라우터들에 의해 어떻게 라우팅되는지 결정한다.

  • 하드웨어 측면에서 라우터에 의해 구현되는 전통적인 라우팅 알고리즘 방식
  • 소프트웨어 측면에서 서버에 의해 구현되는 SDN(Software-Defined Networking) 방식
  • Per-Router Control plane : 각 라우터마다 있는 라우팅 알고리즘이 Control plane의 상호작용을 한다.

  • Logically Centralized Control plane : 별도로 중앙에 배치된 컨트롤러가 local control agents(CAS)로 각 라우터와 상호작용한다. 중앙에서 control plane이 이루어짐.

- Data plane

  • 각 라우터의 포워딩 함수들을 동작한다. , 다리가 동작하는 것과 유사하다.

  • 라우터 입력 버퍼에 도착한 데이터그램이 어떻게 출력 버퍼로 포워딩되는지 결정한다.

 


 

 

 

Network Service Model

 

- 송신자에서 수신자에게 데이터그램들을 전송하는 채널에 대한 서비스 모델은 두 가지가 있다.

 

- 각각의 데이터그램에 대한 서비스 : 지연 시간이 40ms 보다 적은 상태로 전달된다.

 

- 일련의 데이터그램들에 대한 서비스 : 순서가 중요한 데이터그램을 위한 서비스로, 전송을 위해 최소한의 대역폭이 보장된다. 또한 각 패킷간의 간격에서 변화(ex : Jitter)가 제한적이다.

ex) 영상코덱(MPEG)

 

 

 

라우터 입력 포트의 기능 (3계층)

 

- 패킷의 헤더 필드 값(목적지 IP주소)을 보고, 포워딩 테이블에 있는 출력 포트 번호를 찾는다.

 

- 포워딩 테이블에 있는 IP주소와 패킷의 목적지IP주소를 비교하는데 시간이 오래 걸린다.

 

- 큐잉(Queuing) : 데이터그램이 포워딩하는 속도보다 더 빨리 입력 포트에 도착하면, (입력 버퍼)에 저장된다.

 

- 목적지 기반의 포워딩 : 목적지 IP 주소만을 이용하여 포워딩한다. 전통적인 방식이다.

 

- 일반화된 포워딩 : 헤더 필드 값의 전체를 이용하여 포워딩한다.

 

 

 

목적지 기반의 포워딩

 

원래는 IP 주소를 범위로 정해 포트 번호를 구분한다. ]

 

- IP 주소가 32비트이다보니 전체 값을 저장하면 테이블이 너무 커진다. 따라서 IP 주소에서 앞부분에 정해진 비트까지만 보여주고 범위(range)를 정하여 포트번호를 구분한다. , 주소의 앞쪽만 매칭시켜서 해당 포트번호로 보낸다.

 

- Longest prefix matching : 패킷의 목적지 IP주소가 포워딩 테이블에서 둘 이상의 IP주소 범위에 포함될 경우, 그 중 비트가 가장 많이 공개된(가장 긴 prefix) IP 주소 범위의 포트번호로 포워딩한다.

 

[ 밑에 있는 예제의 정답은 위에서부터 01이다. ]


- TCAMs : Ternary Content Addressable Memories 의 약자로, 실제 라우터가 포워딩 테이블에서 IP 주소를 탐색하는데 시간이 많이 걸리므로 라우팅의 속도를 빠르게 하기 위해 IP 주소 검색을 위한 포워딩 테이블이 저장되는 메모리이다.

 

 

 

Switching fabrics

 

- 스위치 내부에서 각 입출력 포트를 가상의 회선으로 그물 또는 직물처럼 연결하여 구성되는 모양을 섬유(fabric)로 비유한 것이다. , 스위치 내부가 직물 또는 망처럼 보이는 모양

 

- 입력 버퍼로부터 적절한 출력 버퍼로 패킷을 전송한다.

 

- Switching rate : 입력 포트에서 출력 포트로 패킷을 전송할 수 있는 속도로, 종종 다수의 입출력 라인 속도에서 측정되어진다. n개의 입력이 있을 때, 스위칭 속도는 입력 라인 속도의 N배가 요구된다.

 

[ 스위칭 구조 분류  ]


- Switching via Memory

  • CPU의 직접적인 제어 아래에 스위칭하는 전통적인 컴퓨팅 방식으로, 첫 세대 라우터들의 스위칭 구조이다.

  • 패킷이 시스템 메모리로 복사된다.

  • 속도가 메모리 대역폭에 의해 제한된다.

  • 메모리에 접근하는 시간도 많이 걸린다.

 

- Switching via a Bus

  • 버스 구조는 2 이상의 신호선들을 모아놓은 것으로, 디지털 시스템에서 디지털 요소들을 상호 연결하는데 필요한 데이터 신호 통로들의 구조화된 그룹이다.

  • 입력 포트 메모리로부터 출력 포트 메모리까지 하나의 공유된 버스를 통해 데이터그램을 스위칭한다.

  • Bus contention : 스위칭 하는 속도는 버스의 대역폭에 의해 제한된다.

  • ex) Cisco 5600 제품이 32Gbps의 속도를 가진 버스 구조로 접근성에 있어서 충분한 속도를 가진다.

 

- Switching via Crossbar

  • 제한적인 버스 대역폭을 해결한다.

  • 다수의 프로세서들을 연결하기위해 개발된 interconnection nets, banyan networks, crossbar 망이다.

  • 진보된 구성으로는, 데이터그램을 고정된 길이의 셀들로 분할하여 단편화한다.

  • ex) Cisco 12000 제품이 interconnection network를 통해 60Gbps의 속도로 스위칭한다.

 

 

 

입력 포트 큐잉(Queuing)

 

- 큐잉은 입력 큐(버퍼)에서 패킷이 저장되는 것을 의미한다.

 

- 입력 큐(버퍼)가 꽉 차면 오버플로우(Overflow)가 발생했다고 한다.


- 큐잉 지연(Queuing delay) : 큐에서 패킷들이 대기하는 시간이다.

 

- 오버플로우가 발생하면 큐잉 지연(Queuing delay)이 일어나고 전송 속도가 저하된다. 또한 큐에 들어오지 못한 패킷들은 손실된다.

 

- HOL blocking : Head-of-the-Line blocking 의 약자로, 큐에서 저장된 패킷들 중 앞에 있는 패킷이 속도가 느려 뒤에 있는 패킷이 못가는 상황을 말한다. , 둘 이상의 다른 입력 버퍼에서 같은 출력 버퍼로 이동하는 패킷들이 있을 때, 하나가 이동하면 다른 입력 버퍼의 맨 앞의 패킷은 이동할 수 없다. 그러면 대기하는 패킷의 뒤에 있는 패킷들도 덩달아 대기해야하는 상황을 말한다.

 

 

 

라우터 출력 포트의 기능 (3계층)

 

- 버퍼링(Buffering)

  • 더 빠른 속도의 구조(fabric)로 인해 발생한다. 혼잡 제어나 버퍼공간의 부족으로 데이터그램(패킷들)이 손실될 수 있다.

  • 스위치를 통해 도착하는 속도가 출력 라인 속도보다 크면, 버퍼링이 발생한다.

  • 출력 버퍼에서 오버플로우가 발생하게 되면 큐잉 지연 및 패킷의 손실이 발생한다.

- 스케줄링(Scheduling) : 최고의 성능을 내기 위해 전송할 패킷의 우선순위를 조정하는 기능이다. 기본적으로 FIFO(First-In-First-Out)방식이다.

 

 

 

출력 포트 스케줄링(Scheduling)

 

- 스케줄링이란 링크로 보낼 다음 패킷을 결정하는 것이다.

 

- FIFO 스케줄링 : 기본적인 방식으로 처음 큐에 도착하는 패킷이 먼저 전송된다. 즉 순서에 맞게 전송한다.

 

- 오버플로우 발생 시 패킷을 버리는 방법

  • tail drop : 꼬리 자르듯이 도착하는 패킷들을 버린다.

  • priority : 우선순위를 기반으로 낮은 순위의 패킷들을 버린다.

  • random : 무작위로 패킷을 뽑아 버린다.

 

- Priority Scheduling : 가장 높은 우선순위를 가진 큐에 담긴 패킷들을 먼저 링크로 보낸다. 즉 순위가 낮은 큐는 순위가 높은 큐가 비어 있어야 패킷들을 전송할 수 있다.

 

- Round Robin(RR) Scheduling : 다수의 큐들이 돌아가면서(Cyclically) 각각의 패킷들을 전송한다.

 

- Weighted Fair Queuing (WFQ) : 라운드 로빈(RR) 스케줄링과 유사하나, 각 큐마다 대기 시간이 있다는 점에서 차이가 있다. , 각 큐는 돌아가면서 패킷을 전송하지만 전송되는 시간간격이 정해져 있다.

 

 

 

 

 

 

+ Recent posts