국민대학교에서 "Computer Networking: A Top-Down Approach"을 이용한
이상환 교수님의 교안을 활용하여 강의 내용을 정리하였습니다.
"chapter 4. Network Layer: Data Plane"의 첫번째 주제로 이 게시글에서는 Network Layerd의 개요를 다루며,
특히 data plane과 control plane의 개념에 대해 확실하게 알고 넘어가는 것이 중요할 거 같습니다👩🏻💻🍥
.╭◜◝ ͡ ◜◝
( ´ㅅ` )
╰◟◞ ͜ 둥실
Network-layer services and protocols
- sending host가 보낸 segment를 receving host에게 전송한다.
- sender: segment를 datagram으로 캡슐화하여(= segment에 헤더를 붙여서) link layer로 전달한다.
(datagram = segment에 헤더를 붙인 것) - receiver: transport layer protocol에 segment를 전달한다.
- sender: segment를 datagram으로 캡슐화하여(= segment에 헤더를 붙여서) link layer로 전달한다.
- network layer protocol은 모든 인터넷 디바이스(= host, router)에 존재한다.
- routers
- 통과하는 모든 IP datagram의 헤더 필드를 검사한다.
- datagram을 input port에서 output port로 이동하여 종단 경로를 따라 datagram을 전송한다.
Two key network-layer functions
- network-layer functions
- forwarding: packet을 라우터의 input link에서 적절한 라우터의 output link로 전달하는 것
ex) 여행을 갔을 때, 오른쪽으로 가세요~ 왼쪽으로 가세요~ 처럼 단일적인 교환의 과정 - routing: packet이 source로부터 어떤 router들을 거쳐서 destination으로 가는지 결정해주는 것 (routing algorithms)
ex) 여행을 갔을 때, 출발지부터 도착지까지 어떠한 경로로 가야할 지의 과정
- forwarding: packet을 라우터의 input link에서 적절한 라우터의 output link로 전달하는 것
Network layer: data plane control plane
- Data plane
- local ➡️ router에서 발생 (나 혼자 하는 것이 되)
- 라우터의 input port에 도착하는 데이터그램이 라우터의 output port로 전달되는 방법을 결정
- Control plane
- network-wide ➡️ network 전체에서 발생
- 데이터그램이 source host에서 destination host로의 종단 경로를 따라 라우터 간에 라우팅되는 방법을 결정
- 두개의 접근방식이 있다!
- traditional routing algorithms: 전통적인 방식으로, router에서 구현
- software-defined networking (SDN): 새로 나온 방식으로, server에서 구현 (전통적 방식보다 좀 더 상위에 구현을 하는 것임!)
Per-router control plane
모든 각 라우터의 개별 routing algorithm 컴포넌트는 control plane에서 상호 작용한다!

Software-Defined Networking(SDN) control plane
remote controller가 계산하고, 라우터에 forwarding table을 설치한다.
➡️ remote controller라는 서버는 모든 router와 연결되어 있다! 그래서 이 서버가 경로를 파악해서 table을 만든다. (위의 방식에서는 정보를 라우터들끼리 교환하였는데 얘는 controller랑만 교환을 하면되는 것입미다~)

Network service model
Q. 송신자에서 수신자로 데이터그램을 전송하는 "채널" 서비스 모델은 무엇인가?
- 개별적인 datagram을 위한 서비스의 예시
- 손실 없이 정확하게 전달하는 것을 보장해주는 것
- 40 msec보다 작은 delay로 전달하는 것을 보장해주는 것
- datagram의 flow를 위한 서비스의 예시
- datagram을 순서대로 전달해주는 것
- minimum bandwidth를 보장해주는 것
- packet 간의 간격 변경을 제한하는 것
Network-layer service model
인터넷은 위에서 이야기한 것들을 보장해줄 수 없다.. 즉 최선을 다하는 service model인 것이다..!
- Internet "best effort" service model
➡️ 인터넷의 아래에 적힌 것들을 다 보장해줄 수 없다!!!!- 목적지까지 datagram을 성공적으로 전달하는 것
- timing과 전달되는 것의 순서
- end-end flow에 사용가능한 대역폭

Reflections on best-effort service
- 인터넷은 메커니즘의 단순성으로 인해 널리 배포될 수 있었음!
- 대역폭의 충분한 프로비저닝*은 실시간 애플리케이션(예: 대화형 음성, 비디오)의 성능이 대부분의 시간 동안 충분히 향상될 수 있게 했음.
➡️ 즉, bandwidth를 그냥 돈으로 해결해버렸다는 것이다..💸 - 복제되고, application-layer로 분산된 서비스(datacenters, content distribution networks)를 통해 클라이언트의 네트워크에 가깝게 연결하고 여러 위치에서 서비스를 제공할 수 있음
- elastic 서비스의 congestion controldms 도움이 됨
➡️ 결론! best-effort service model의 성공에 대해 논쟁하기에는 어렵다!!
💡provisioning(프로비저닝)이란?
➡️ 사용자가 요청한 IT 자원을 사용할 수 있는 상태로 준비하는 것!
'Computer Network' 카테고리의 다른 글
| [컴퓨터네트워크] chapter 4-3. IP: the Internet Protocol (1) | 2024.05.16 |
|---|---|
| [컴퓨터네트워크] chapter 4-2. What's inside a router (0) | 2024.05.03 |
| [컴퓨터네트워크] chapter 1. Introduction (2) | 2024.04.25 |