본문 바로가기
네트워크/컴퓨터 네트워크 수업

4-1. Overview of Network Layer

by dustnn 2024. 11. 12.

 
- Overview of Network Layer
- What's inside a router
- IP(Internet Protocol) : forwarding을 위해 사용
- Generalized Forwarding, SDN(Software-Defined Network)
- Middleboxes : 새롭게 생겨나는 기능들을 router의 핵심 계층으로 실을 수 없어 만드는 별도의 box
 
network 계층에는 어떤 service model들이 있는지, forwarding과 routing이라는 두 가지 주요 기능에 대해 다룰 것이다.


 
오늘은 첫 번째 주제 "Overview of Network Layer"
network 계층은
- transport 계층의 segment를 sending host에서 receiving host로 전달하는 역할을 한다.
- host, router 모두에 존재
sender의 network계층: IP 계층의 header 붙여서(encapsulate) datagram 만듦
receiver의 network계층: header 떼고(decapsulate) transport 계층으로 올려보냄
router의 network 계층: IP datagram의 header 분석하여 forwarding 할 곳 결정 -> forwarding(input port->output port)

Forwarding & Routing

 
Network 계층의 주요 가능이 forwarding과 routing이라고 한 바 있다.
- Forwarding: packet들을 input link에서 output link로 이동시키는 것
- Routing: packet의 경로 결정
* routing protocol: router들이 정보를 주고 받을 때 따르는 규칙
* routing algorithm: routing protocol을 통해 모은 정보들 가지고 알고리즘 적용해 route 계산
 
Data plane에서 forwarding을, Control plane에서 routing을 담당한다.
 

Data plane & Control plane

 
- Data plane: forwarding 담당
: router 혼자 수행 -> input port로부터 datagram이 들어오면 어느 output port로 내보낼 것인지
* destination based forwarding: destination field만 관찰(-> 기능: 오직 forwarding)
* generalized based forwarding: 다양한 field 관찰(-> 기능: forwarding+α)
 
- Control plane: routing 담당
: 전체 네트워크 상황에 따라 결정 -> datagram이 end-to-end path를 통해 지나가기 위해 어떻게 route를 계산해야 하는가
* traditional routing algorithms : 각 라우터가 계산해서 라우터끼리 정보 주고받음
* Software-Defined Networking(SDN) : 별도의 서버가 계산
 
=> destination based forwarding은 traditional routing algorithm에, 
generalized based forwarding은 software-defined networking에 대응됨
 
(!!주의!!)
traditional routing algorithm이 per-routing이라고 해서 data plane 처럼 각 router가 독단적으로 결정하는 건 아님. 전체 네트워크 상황에 따른다.
 
 
위에서 destination based forwarding은 traditional routing algorithm에,
generalized based forwarding은 software-defined networking에 대응된다고 했다.
그러면 두 가지 형태를 자세히 살펴보자.
 

Control plane: traditional routing algorithms
Data plane: Destination-based forwarding

 
server가 없기 때문에 router가 control plane, data plane 역할을 모두 한다.
 
1. Control plane에서 forwarding table 작성해서 data plane으로 내려보내주면,
 
* per-router control plane은 network based logic이므로 router끼리의 네트워크가 형성돼있음
-> routing protocol을 통해 서로 정보를 주고받음
-> 서로 주고받은 정보가 같다면 local forwarding table 작성
-> 계산 결과 data plane에게 알려줌
 
* router들이 계산은 각자 하지만 map, 알고리즘은 공유
 
2. Data plane은 local한 per-router function이므로 forwarding table만 보고 packet forwarding 결정(destination-based forwarding)
 

 
forwarding과 routing의 자세한 interplay를 알아보자.
 
control plane이 routing protocol로 네트워크의 router 정보를 끌어모아 routing algorithm 적용해 routing information base 구축
=> routing information base로부터 forwarding information base를 계산해 local forwarding table 형성
=> data plane이 forwarding table을 참조해 각 header value에 맞는 output link 지정

 

Control plane: Software-Defined Networking(SDN)
Data plane: Generalized forwarding

 
Remote Controller라는 server 존재
=> remote controller가 네트워크의 모든 router들로부터 정보 끌어모아 전체 이미지 저장하고 있음.
=> *(용어) 따라서 data plane의 router들을 switch라고 부름.
 
*(용어) data plane이 generalized based algorithm을 쓰기 때문에 forwarding보다 넓은 의미로 match&action이라는 용어 사용.
=> 'switch들은 forwarding을 한다': traditional routing algorithm이나 다를 바 없음 !
'switch들은 match & action을 한다': one or more field를 match한 다음 맞는 action취함(drop/forwarding/controller에게 전송/ packet의 header 정보를 바꿈)
 
 
1. switch들이 자신의 정보를 control plane의 remote controller에게 알려줌
2. remote controller은 그 정보들을 모아둠
3. 그 정보들을 토대로 각 source destination 별로 route 계산
4. 계산 결과를 다시 data plane의 router들에게 내려보내줌
5. data plane의 router들은 그 packet의 header(여러 개의 field)를 보고 forwarding

 

Network layer service model

 
network layer가 transport layer에 제공해주는 서비스는 어떤 모델일까?
 
기본적으로 process-to-process 구조를 가진 네트워크에 reliability를 더해주기 위해 p2p 이외에 별도의 connection을 구축해준다.
이 별도의 connection을 사용해 congestion control, timing guarantee, bandwidth guarantee 등등 필요하다 판단되는 기능들을 수행할 수 있다. service model에는 다음 두 가지 종류가 있다.
 
1. individual datagrams을 위한 services
- guaranteed delivery: 절대, 무슨 일이 있어도 drop하지 않고 sender에서 receiver까지 전달해주겠다.
- guaranteed delivery with bounded delay: 배달 속도를 보장해주겠다.(적어도 이 속도보다 느려지지 않도록 하겠다.)
 
2. a flow of datagrams을 위한 services
- in-order datagram delivery: 순서 지켜서 deliver해주겠다.(우선 순위도 지정했다면 지켜서 deliver해주겠다)
- guaranteed minimum bandwidth to flow: 최소 bandwidth 설정해 보장해주겠다.
- restrictions on changes in inter-packet spacing: 패킷 간 delivery 시간 간격이 너무 차이나지 않게 해주겠다.
 
 
앞서 packet switching 방식과 circuit switching 방식이 존재한다고 했었고 internet은 packet switching 에 해당한다.
packet switching은 기본적으로 best effort(call setup 안 하기 때문) 방식으로 운영되는데
best effort 이외에 다른 기능을 추가적으로 제공해주냐에 따라 Datagram network와 VC network로 나뉜다.
 

 
 
Internet(Datagram Network 사용)
 
Internet은 best effort 이외에 다른 기능을 제공하지 않는다.
 
즉,,,
그렇다면 우리가 살펴보는 internet은 어떤 service model을 guarantee해줄까? -> Nothing. 이라는 것
위에서 언급된 guarnteed delivery ~ restrictions on changes in inter-packet spacing 중 하나도 보장해주지 않는다. 단지 최선을 다할 뿐....
 
ATM(Virtual-Circuit Network 사용)
 
ATM은 추가적인 기능들을 제공한다. 종류에 따라 제공하는 기능이 다르다.
- CBR(Constant Bit Rate): full guarantee(bandwidth/loss/order/timing 모두 보장)
- ABR(Available BIt Rate): bandwidth, order만 보장
 

 
인터넷이 best effort으로만 운영될 수 있을 만큼 best-effort은 강력하다. 왜?
- 단순함 => deploy가 쉬움
- sufficient provisioning
 * 많은 변수가 존재해도 포용 가능(몰리는 상황 등..) 
 * 목적지 같으면 그냥 같은 길로 보냄 => out-of-order delivery 발생 x => delay 문제 그렇게 심각 x
- replicated, application-layer distributed services 
 * 나라별 netflix 목록 달라지는 것처럼 replicated, application-layer distributed service가 뒷받침해주면서 overprovisioning 해주지 않아도 end host 상에서 application이 만족할 만한 service 제공해줌
- elastic service들에 의한 congestion control 
 * elastic service: bandwidth guarantee가 필요 없는 service(ex. file transfer) => 본래 congestion control 담당하는 TCP의 load 줄여줌