Network 층 서비스와 성능

네트워크층 서비스

네트워크 층에서 다루는 서비스들을 알아보자.

패킷화

네트워크 층의 첫 번째 의무는 패킷화(packetizing)이다. 캡슐화한다고 해서 인캡슐레이션(Encapulation)한다고 하기도 한다. 네트워크층은 송신자로부터 수신자까지 안전하게 패킷을 전달하기 위해 우체국과 같은 운반 서비스를 수행한다.

  • 출발지 호스트는 상위 계층으로부터 페이로드(전송하고자하는 데이터)를 수신하고, 네트워크 층 프로토콜에 의해 요구되는 특정 정보를 포함하는 헤더를 추가하고, 패킷을 데이터링크 층에 전달한다. 패킷이 너무 커서 분할해야할 경우를 제외하고는 내용을 변경하지 않는다.
  • 목적지 호스트는 자신의 데이터링크층으로부터 네트워크 층 패킷을 수신하고, 패킷의 캡슐을 제거하고, 페이로드를 대응하는 상위계층 프로토콜에 전달한다. 만약 패킷이 분할되었다면, 모든 분할된 패킷이 도착할때까지 기다리고, 조립하고, 상위에 전달하는 것을 네트워크층이 모두 책임진다.

라우팅

네트워크층은 패킷이 근원지에서 목적지까지 갈 수 있도록 경로를 라우팅해야한다. 즉 두 호스트가 통신을 위한 길을 찾는 일을 가리킨다. 물리적인 네트워크는 네트워크와 길안내를 해주는 라우터의 조합이다. 네트워크 층은 가능한 모든 경로 중 가장 좋은 경로를 찾는 역할을 수행한다. 가장 좋은 경로를 정의하는 구체적인 규칙이 필요한데 그것이 라우팅 프로토콜이다.

포워딩

라우팅이 패킷을 옮기는 길을 찾는 일이라면, 패킷을 옮기는 일 자체를 포워딩이라고 한다. 즉 라우터에 패킷이 도착했을 때 라우터가 취하는 행동으로 정의할 수 있다. 라우터가 패킷을 어느 경로로 이동시켜야 할지를 결정하기 위해 의사결정 테이블을 사용하는데 그것이 포워딩 테이블(forwarding table) 혹은 라우팅 테이블(routing table)이라 불린다.

패킷 스위칭

데이터를 교환하는 방법은 2가지가 있다.

  • 회선 교환

  • 패킷 교환

    네트워크층에서는 패킷을 사용하므로 패킷 교환 방식이다.

회선 교환 방식은 통신을 위해 직접 물리적인 회로를 만들어 연결해 통신을 제어하지만,

패킷교환 방식은 데이터를 처리할 수 있는 크기의 패킷들로 단편화되고 각 단편은 네트워크를 통해 전송된다. 근원지에서 패킷을 차례차례 보내고 목적지에서 하나씩 수신한다.

그러기 위해 패킷 교환 네트워크의 연결 장치는 패킷을 최종 목적지로 어떻게 보낼지 결정해야한다. 어느 경로는 연결하고 다른 경로는 연결을 꺼야할 것이다. 이것을 패킷 스위칭이라 한다. 패킷 스위칭 방법이 2가지가 있다.

  • 데이터그램 방식(datagram approach)
  • 가상 회선 방식(virtual circuit approach)

데이터그램 방식: 비연결

사전에 연결을 정하지 않고 패킷을 보내버리는 방식. 인터넷을 처음 만들 때, 네트워크 층의 간소화를 위해 모든 패킷을 독립적으로 처리하도록 설계되었다. 이 방식은 패킷 하나마다 라우터가 경로를 정해주기때문에 패킷들이 다 다른 경로로 전달될 수 있다.

가상 회선 방식: 연결-지향형

미리 먼저 연결을 위한 신호를 목적지에게 보내 연결을 위한 길을 구축하면 데이터를 보내는 방식. 이를 위해 라우터마다 이 패킷은 어디로 갈지에 대한 정보를 저장해야하므로 테이블이 필요하다.

네트워크층 성능

네트워크층의 성능은 지연(delay), 처리량(throughput), 패킷 손실률(packet loss)로 측정 가능하다.

지연(delay)

데이터를 보내고 받는 것이 즉각적이면 좋겠지만, 보내고 받는데는 지연이 생길 수 밖에 없다. 네트워크층에서 생길 수 있는 지연의 종류는 전송 지연, 전파 지연, 처리 지연, 큐 내부의 지연으로 총 4가지로 나눠진다.

전송 지연

송신자가 패킷을 보낼 때 바로 보낼 수 없다. 송신자는 패킷의 비트를 하나씩 차례로 보내야한다. 패킷의 첫 비트의 시간이 t1이고 마지막 비트가 t2라면 전송지연은 t1 - t2가 된다. 따라서 패킷의 길이가 길수록 전송 지연도 길어진다.

전파 지연

A에서 B까지 1비트가 전달되는 데 걸리는 시간이다. 각 네트워크(WAN/LAN)의 전파 지연에 따라 결정된다.

처리 지연

라우터나 목적지 호스트가 입력 포트로 패킷을 받고, 헤더 제거하고, 오류 탐지를 수행한 뒤, 출력 포트로 패킷을 보내거나 상위 계층 프로토콜로 패킷을 전달하는 데 걸리는 시간

큐잉 지연

일반적으로 라우터에서 발생한다. 라우터가 한번에 여러 패킷을 받는다면 차례로 하나씩 처리하게 되는데 처리하는 동안 나머지 패킷은 버퍼 공간에서 대기하게 된다. 그 대기하는 시간을 큐잉 지연이라고 한다. 들어오는데 대기(입력 지연)할 수도 있고, 보내는데 대기(출력 지연)할 수도 있다.

처리량

초당 한 지점을 지나는 비트 수를 처리량이라고 한다. 해당 지점의 실질적인 전송률이다.

근원지부터 목적지까지 서로 다른 전송률을 가진 여러 링크들이 연결되어 있다면 그 연결의 평균 전송량은 병목 현상에 의해 가장 작은 전송량으로 결정된다.

공유된 링크에서의 처리량은 어떨까

600kbps 링크를 세 호스트가 공유하고 있다면 나눠져 각 200kbps 처리량밖에 되지 않는다.

패킷 손실

라우터는 한정된 버퍼를 가지고 있기 때문에 대기하고 있는 패킷이 너무 많은 경우 버퍼가 가득 차 수신하지 못하고 폐기하는 패킷이 생긴다. 이런 패킷 손실이 발생하면 해당 패킷을 재전송하는데 이 경우 더 많은 오버플로와 패킷 손실을 발생시킬 수 있다.

혼잡 제어

성능을 향상시키기 위한 메커니즘. 네트워크 층의 혼잡은 처리량과 지연, 2가지 사항과 관련이 있다.

부하에 따른 지연과 처리량

부하가 네트워크 용량에 도달하면 전체 지연에 큐 내부의 지연이 더해져 지연이 급격하게 높아진다. 용량을 넘어서면 지연은 무한대가 된다.

김땡땡's blog

김땡땡's blog

김땡땡