본문 바로가기

ComputerScience/Network

Network Layer - 1. overview

728x90

이제까지 살펴본 Transport layer는 process간의 logical communication을 담당하는 계층이였다.

이제부터 자세히 살펴볼 network layer는 hosts간의 logical communication을 담당하는 계층이다.

 

network layer는 segment를 encapsulate한 datagram을 전달한다. 모든 라우터는 network layer 계층까지 존재한다.

라우터는 ip datagram의 header field만 보고 패킷을 전달한다.

 

네트워크 계층의 가장 중요한 두가지 역할은 forwardingrouting이다. 

1. forwarding

router의 input link interface로 들어온 패킷을 올바른 output link interface로 내보내는 동작이다.

이를 위해 forwarding table을 만들어서 관리한다. (input port : output port)

ttl이 다 소진되었거나 혹은 table에 어디로 나가야 하는지 안 적혀 있다면 그냥 버릴 수도 있다.

이 부분을 network layer의 data plane이라고 한다.

fowarding은 매 라우터 마다 수행되며 hw차원에서 구현되어 있어서 매우매우 빠르다.

2. routing

routing은 패킷을 source에서 destination으로 전달하는 일을 말한다. 결국 라우팅의 최종 목적은 forwarding table을 만드는 것이다.

즉 라우팅은 패킷 전달 경로를 찾는 일을 말하고 각 라우터마다 알고리즘(ex. Dijkstra, Bellmanford)을 통해 경로를 찾아 forwarding table에 기록한다.(sw차원에서 구현)

네트워크를 구성하는 모든 라우터들이 협력해야 하기 때문에 network-wide process라고도 한다.

이 부분을 network layer의 control plane이라고 한다.

조금 다른 방식으로 routing이 구현 될 수도 있다.

분리된 remote controller가 라우터들로 부터 정보를 다 전달 받는다. 그 다음 알고리즘을 통해 자기가 알아서 경로를 짠다. 그렇게 만든 포워딩 테이블들을 각각 라우터들에게 전달한다.

3. Network service

TCP는 congestion control, reliable data transfer(loss, in order)등 많은 서비스를 제공해주었다.

네트워크 계층의 프로토콜도 얼마든지 이런 서비스를 제공할 수 있다. 

하지만 네트워크 계층의 대표적인 IP 프로토콜은 그 어느것도 지원하지 않는다. 어느것도 보장하지 않는 best effort를 따른다.

728x90
반응형