Transport Layer가 한 host의 특정한 process가 다른 host의 특정한 process에 데이터를 전달할 수 있도록 하는 것.
이였다면 !
Network Layer는 Transport Layer가 저런 기능을 할 수 있도록, 인터넷같은 네트워크로 연결되어 있는 host들 간에 실제 데이터를 전달할 수 있게 해주는 것. Sender Host -> Receiver Host 를 가능하게 해준다.
- encapsulate를 통해 Segments -> datagrams로 만듬
- Receiving side(받는쪽이라면)에서는 전달된 segments를 transport layer로 전달
주요 기능
1. forwarding
패킷을 라우터의 input에서 적절한 라우터의 output으로 이동시킴
ex) 예를들면 좌회전, 우회전, 직진 지시 등과 같다.
inputLink -> rounter -> 적절한 output Link
2. routing
source -> destination의 route를 결정한다.
ex) 경로찾기, 최단경로 찾기 등으로 이해
Data plane과 Control plane
Data plane
- local, per-router function
- 라우터로 들어온 datagram이 어떤 router output port로 나갈 것인지 결정해줌
Control plane
- network-wide logic 전체 네트워크 관정
- end-end path의 source host와 destination host까지의 라우터들이 있으면 그 라우터들을 어떻게 선택하고 경로를 설정할 것인지 결정하는 것
아래는 Data plane의 전반적인 내용이 시작된다.
Router architecture overview
일반적인 라우터의 구조
여기서의 port는 TCP의 논리적인 port와 구별되는 진짜 물리적인 port이다.
아래의 공유기에 꼽는 port처럼 이 port도 라우터와 연결되는 물리적인 link로 이해하면 된다.
decentralized switching 방법은 2가지
1) destination-based forwarding 방법
전통적인 방법, destination IP address를 기반으로 한다.
2) generalized forwarding 방법
set of header field values를 기반으로 한다.
1)방법에는 Longest prefix matching이 대표적인 방법인데
이는 도착지 IP주소가 주어진 상황에서 forwarding table을 찾을 때 도착지 주소와 일치하는 Longest address prefix를 활용하는 것을 의미한다.
prefix는 접두사 혹은 앞부분을 의미하는 단어인데, 즉 prefix와 IP주소의 앞부분이 가장 일치하는 Interface를 찾아전달됨.
Longest prefix matching예제
router가 longest-prefix matching을 활용하고 있고, forwarding table이 다음과 같다고 가정.
문제1
대상 주소가 10111010인 데이터그램이 라우터에 도착. 이 데이터그램은 Longest-prefix matching을 사용하여 어떤 인터페이스로 전달이 됩니까?
문제2
문제1과 환경은 같다. 대상 주소가 11010100 때는?
문제3
문제1과 환경은 같다. 대상 주소가 10010000 때는?
답
1. 6
101, 10 등의 prefix가 없으므로 otherwise를 선택하여 인터페이스 6이 매칭된다.
2. 1
3. 5
다음 포스트에서는
위의 라우터구조의 참조자료에 등장한 switching fabric과 Queuing과 Scheduling을 공부해보자.