- 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)
![](https://blog.kakaocdn.net/dn/dRZpxg/btsKqtJXo9M/7DQhb5rQVCpkUpAjPkPWuk/img.jpg)
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)
![](https://blog.kakaocdn.net/dn/cIr24E/btsKqWfovKS/jheyZ9pZ0dNVdbtnhqkAn0/img.png)
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 지정
![](https://blog.kakaocdn.net/dn/cXqQdK/btsKsxrYvr3/xAVHroo2mrYA2nmNwz1OMK/img.png)
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
![](https://blog.kakaocdn.net/dn/bIStTh/btsKrzqsNoV/pbEYkYinVpk12PH2sLJ1o0/img.png)
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로 나뉜다.
![](https://blog.kakaocdn.net/dn/nuecg/btsKr5DmgxB/jrnMtehT9kHvYvkHGq2tVk/img.jpg)
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만 보장
![](https://blog.kakaocdn.net/dn/rI8Fx/btsKsZbf3uz/zpxBwKCKlkEhZtNfrKu811/img.png)
인터넷이 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 줄여줌
'네트워크 > 컴퓨터 네트워크 수업' 카테고리의 다른 글
4-3. IP(Internet Protocol)(1) (0) | 2024.11.13 |
---|---|
4-2. What's inside a router(1) (2) | 2024.11.12 |
2-3. Electronic mail(SMTP & POP3) (0) | 2024.11.12 |
3-5-1. Principles of congestion control (0) | 2024.11.05 |
3-4-2. TCP : Connection-oriented transport(3) (0) | 2024.10.21 |