CS log

Network Layer : The data Plane 총정리 본문

CS/Computer Network

Network Layer : The data Plane 총정리

sj.cath 2023. 12. 6. 19:58

Prolog ; 컴퓨터 네트워크의 최종 학습목표

: 와이파이 연결 후 내 컴퓨터(end host)에서 어느 웹 페이지에 접속해서 웹 페이지가 딱 뜰 때, 서버가 있는 end host까지로 어떤 일이 있었는지 설명할 수 있는 것.

1) 각 end host와 중간의 network router 장비들이 최종의 목표를 이루기 위해 워낙 복잡한 일들을 하다 보니, layer로 moduling을 하게 됨.

2)

맨 위의 application layer(L5)에 developer가 만든 application을 support하는 protocol이 있고,

그 밑의 transport layer(L4)에서 application layer process를 찾아 process to process communication을 지원을 했고, 이제 3계층 network layer로 내려온 것.

3) 3계층의 network layer은 다섯 개의 layer 중 꽃, 인터넷을 설명하는 핵심 계층

4) 3계층의 network layer은 forwarding 과 routing 두 개의 function으로 나뉨

  - forwarding은 router안에서 local하게 한 hop을 지나가는 것 (input port → output port, one hop delivery),
  - routing은 여러 개의 router가 collaboration하여 source부터 dest까지의 경로를 찾아 routing table을 만드는 것

이 두 가지 function을 각각의 라우터(traditional)가 모두 가지고 있음

 

 

chapter goals
4장에서는 forwarding 하기 위해 router가 어떻게 동작 하는지 볼 것
5장에서는 routing 하기 위한 router의 동작을 볼 것 → forwarding 가능

- understand principles behind network layer services, focusing on data plane:
(data plane: end user가 보낸 data를 forwarding 하는 역할)
- network layer service models
- forwarding versus routing
- how a router works
- generalized forwarding (new paradigm: SDN) : 이전까지는 destination IP based forwarding, 새로운 paradigm의 router은 plus alpha를 봄 (generalized)

 

 


4.1 Overview of Network layer

1) data plane forwarding
: end user가 보낸 data를 forwarding (app. data at host), user가 처리
2) control plane routing
router를 운용하는 engineer가 사용하는 msgs
router에는 router engineer들이 사용하는 4, 5계층이 존재. (end user가 사용X). TCP, UDP를 사용


4.2 What’s inside a router

router의 내부구조와 실제 모습

 


4.3 IP: Internet Protocol

network layer의 가장 유명한 프로토콜, Internet Protocol (IP)
protocol ⇒ msg format, order, 주고 받을 때 action 정의

datagram format (3계층에서 사용하는 PDU = datagram. 데이터 통신 시 상위 계층이 붙이는 제어정보)
• fragmentation (IPv4에서만 fragmentation 기능, IPv6는 X)
• IPv4 addressing (datagram을 구분할 수 있는 방법, IPv4 주소)
• network address translation NAT (private IP = reusable 내부 네트워크만 다르면 자유롭게 사용가능 → public IP = routable)
• IPv6 (대부분의 NIC 카드엔 IPv4와 IPv6의 주소가 모두 있음)

 


4.4 Generalized Forward and SDN

새로운 패러다임의 router가 등장하면서 새로운 forwarding (dest IP + a)

match
action
OpenFlow examples of match-plus-action in action
network layer는 end host에도, router에도 존재. host의 network layer에서는 datagram만 만들면 됨. UDP가 내려왔을 땐 IP 계층에서 fragmentation을 하기도 함. (TCP 사용 시 TCP segmentation, UDP는 하지 않기 때문에 IP fragmentation) but routing protocol X

default router로 가는 forwarding 한 번은 하나 routing은 하진 않음.
network의 router가 진정한 routing과 forwarding을 한다. (host에 있는 것 X)

 

 

4.1 Overview of Network layer

data plane (forwarding) & control plane (routing)

인터넷 가입자 입장에서의 그림


→ end hosts(양쪽)와 routers(중앙).

router의 기능을 마찬가지로 세 계층으로 나누어 놨다.
최종 목표: client host가 server host와 메시지를 주고 받는 것

- NW의 traditional router에는 Network layer에 Data Plane과 Control Plane 모두 존재
- host의 router에는 forwarding을 위한 Data Plane만 존재 (forwarding table만 존재). routing protocol 돌리지 않아서 Control Plane은 없음

Datalink layer는 Ethernet, Wifi, fiber optic일 수도, 여러 가지가 있음

 


Network layer

network layer protocols in every host & router
host에도 있고, NW router에도 있지만 기능이 다르다 : host는 forwarding만 (Data Plane), router는 Data Plane + Control Plane

delivers segment from sending to receiving host

  • router의 핵심. Core Network는 빨리 deliver 하는 게 목적이라 복잡한 일은 그 윗단에서 end host가 처리하도록 함 (Ex. 호스트의 도메인 네임을 호스트의 주소로 바꾸는 DNS resolution을 host가)
    Network layer의 핵심은 host-to-host delivery

    • on sending host ) encapsulates segments(L4) into datagrams
    • on intermediate routers ) forwards datagram(user data in end host), router examines header fields in all IP datagrams (패킷 단위로 delivery 되기 때문에 각 패킷에 있는 헤더를 다 보고 forwarding)
    • on receiving host ) decapsulates datagram into segments
  • NW layer implements the host-to-host communication service.
  • NW layer is the most complex layers in the protocol stack.


Network service model

: sender에서 receiver까지 datagram을 transporting하는 "channel"에 대해 어떤 service model을 network service model이라고 한다. end host에서 출발한 user의 data를 어떻게 처리하는가?에 중점


What service does the network layer provide to the transport layer?


네트워크 계층의 목적은 host-to-host delivery. 호스트를 찾아가는 전달 하는 일


최종 고객인 application이 어떤 delivery를 요구?
- loss에 민감 : docs를 받거나 저장된 영상을 불러오는 app 

- delay와 throughput에 민감 : 실시간으로 streaming되는 콘서트나 스포츠 중계하는 app

  • example services for individual datagrams: 하나의 message를 deliver하는데 요구될 수 있는 것들
    - guaranteed delivery ⇒ no loss
    - guaranteed delivery with bounded e2e delay ⇒ delay limit ; loss가 없지만 최소한 언제까진 도착하도록 요구
  • example services for a flow of datagrams: 일련의 message들을 deliver하는데 요구될 수 있는 것들
    - in-order datagram delivery : IP가 하지 못 함. TCP가 함
    - guaranteed minimum bandwidth to flow ⇒ throughput  ; throughput-sensitive apps 들이 요구할 수 있음
    초당 몇 개는 보낼 수 있도록 요구
    - restrictions on changes in inter-packet spacing
    늦어도 상관 없지만 패킷 간 간격이 일정한 속도론 오도록 요구, delay variation(delay jitter)가 적어야 함

 

Core network 의 핵심 delivery 두 가지

1) CS (Circuit-switched networks)
2) PS (Packet-switched networks)

  • VC NW (Virtual Circuit) (ATM)
    - 하나의 link를 논리적으로 나누어 virtual circuit을 설계
    - Packet switching에 Circuit switching의 장점을 혼합; 실패
    - Resource reservation: buffer, bandwidth, CPU
    - Fixed same path for pkts belongs to the same msg  -> 이거 보고 뭔지 떠올리깅
    - complexity inside network
  • Datagram NW (Internet) !!!
    - smart end systems & simple inside network, complexity at "edge"
    - 복잡한 건 end host가 다 함 (DNS 까지)
    "elastic" → no guaranteed band/delay (IP protocol)
    = minimal service guarantees 즉 QoS 아무것도 못함
    makes it easier to interconnect networks that use very heterogeneous(Ex. Ethernet, Wifi, fiber optic ..) link-layer technologies
    (4계층은 동일한 IP프로토콜을 사용하는 3계층들을 지나지만, 3계층은 지나는 hop마다 2계층이 모두 다름. 아무것도 안 해서 다양한 성능을 가진 2계층들을 지나기에 좋음)

 


Internet protocol (Datagram packet-switching) 은 패킷들 사이의 관계를 모름 (한 메시지를 구성하고 있는 패킷인지 알 수 없음) ⇒ connectionless (이전 패킷과 무슨 관계인지 신경 x)

best effort : 아무것도 보장 해주지 않음

router에선 congestion에 대한 feedback도 주지 않음 (TCP가 Timeout이나 3 dup-ack으로 congestion을 control)

 

Datagram networks (no in-order)

  • no call setup at network layer
    transport 계층에서 내려온 segment를 바로 encapsulation
  • routers: no state about end-to-end connection
    한 메시지 안의 여러 패킷 간의 관계에 대해 알고 있지 않음
    → 라우터는 패킷들을 개별적이고(individually), 독립적으로(independently) forwarding
  • packets forwarded using dest host(IP) address in datagram header, and forwarding table(FIB) at each router
    FIB를 보고 패킷들을 개별적이고 독립적으로 forwarding. 
    • packet 헤더의 destination addr를 보고, router의 forwarding table(FIB: Forwarding Information Base)를 매치해 output port를 찾아 forwarding (switching). router의 ingress buffer → output buffer
      패킷들 사이의 관계 정보를 보관하지 않아 in-order delivery가 보장되지 않는 모습

 

Router (logical)

  • 여기서 Packet은 user의 application에서 생성된 data
  • Forwarding Table (FIB)에는 user(가입자)의 data가 지나다님 ⇒ forwarding

input port로 들어온 data를 output port로 보내는 과정을 Data Plane이라고 함.

Forwarding table (FIB)은 router의 routing protocol들이 만들어 줌.

  • 위는 Control plane(5장). end user는 몰라도 됨, router 운용자가 관심

Control plane에서 지나다니는 routing msg는 SW 엔지니어가 만들어낸 것.

Control plane에서 routing msg를 처리.

Routing Protocol로 Routing Table (RIB)를 만들어 루트 중 Best of best만 FIB로 보냄.

 

 

Network layer: data plane, control plane

Data plane (forwarding)

  • local, per-router function
  • 한 라우터의 input port에 있는 ingress buffer에서 output port에 있는 output buffer로 이동
  • forwarding function

Control plane (routing)

    • network-wide logic
    • 여러 개의 router들을 거쳐 가야 하는 nation wide view
    • 라우터들이 메시지를 주고 받으며 source부터 dest까지의 end-to-end path를 결정
    • two control-plane approaches:
      • traditional routing algorithms = destination IP addr based forwarding
      • sw-defined nw (SDN) = generalized forwarding
  •  

 

Interplay between routing and forwarding

  • 위 : routing algorithm으로 control plane에서 해주는 것
  • 밑 : user data가 왔을 때 data-plane에서 해주는 것.

이 차이는 RIB에서 FIB로 경로 중 best of best만 보내줌

FIB는 host에도 있음 (default router=gateway rtr= 1st hop rtr로 한 hop은 보내야 하니까), routing table은 없음

FIB에는 destination IP address로 가는 output port 번호가 적혀있음

Forwarding table은 static하게 만들 수 있음 (editing이 가능)

RIB가 경로를 계속 바꿔 FIB에게 전달할 수 있음. but, FIB만 있다면 static하게 고정

 

 

Per-router control plane

  • 같은 machine 안에 control plane과 data plane이 모두 있다는 것을 나타낸 그림
  • control plane은 모든 라우터에 다 들어있다. 라우터들끼리 메시지를 주고 받으며 FIB로 내려보냄
    즉, control plane은 라우터들 간의 통신을 통해 라우팅 테이블을 업데이트 -> 이를 기반으로 FIB는 실제 데이터전송 수행
  • forwarding은 destination ip 주소만 보고 forwarding Destination-based forwarding (traditional)

 

 

Logically centralized control plane

  • control plane과 data plane이 분리 되어 있음.
  • user의 data가 지나가는 data plane들은 physically 모여 있음.
  • control plane은 remote하게 멀리서 제어 (한 라우터에 있지 x)
  • control plane이 data plane을 제어하고, data plane은 forwarding만 해줌 ⇒ generallized forwarding

4.2 inside a router

  • Cisco는 유명한 router 개발 업체. 여러 개의 보드로 이루어짐.
  • 주황색은 switch module, 여기서 input port to output port switching을 해줌
  • 빨간색은 control module, 이게 control-plane.
  • switching speed가 매우 빨라 ingress buffer에서의 delay는 거의 없음.
  • Queueing delay와 output link의 Band Width 제약이 TI를 높임


Router architecture overview (per-router)

router의 구조는 크게 input port(나오면 output port가 될 수도 있음), output portswitching, routing protocol이 돌아가는 routing processor

control plane은 SW를 처리하기 때문에 속도가 느림

data plane은 hardware 상으로 user data를 지나가게 하므로 거의 속도가 빠름
(ingress buffer에서 패킷 열어 보는 건 software적으로 처리하고 따로 모듈 있음)


 

Keywords

  • Network service model (requirements): no loss, min. e2e delay, min. BW (pkt/sec), in-order delivery, Delay jitter
  • VC NW (ATM) v.s. Datagram NW (Internet)
  • Datagram packet switching provides best-effort service (no service at all) and thus it can interconnect well networks that use heterogeneous L2 protocols.
  • Local 1-hop forwarding using FIB in each input port (Chap.4)

v.s. NW-wide e2e path using routing protocol (Chap.5)

  • Traditional router includes control plane and data plane both in the same device. v.s. In SDN, a control plane is implemented in a general PC that remotely locates from a packet switch which includes data plane.
  • Why each port has a FIB? -- In order to implement line speed forwarding
  • Decentralized switching means FIB lookup is done using FIB stored in input port memory.
  • Router architecture includes control plane (routing protocol), switching fabric and input/output ports.

 

'CS > Computer Network' 카테고리의 다른 글

Network layer ; DHCP Protocol  (0) 2023.12.08
Network Layer : Internet Protocol  (0) 2023.12.07
ch4 73~끝, ch5 1~7  (1) 2023.12.05
ch4 47~72  (2) 2023.12.04
ch4 33~46  (0) 2023.12.02