네트워크 계층 1

윤상준·2022년 4월 4일
0

네트워크

목록 보기
9/19
post-thumbnail

Network Layer

네트워크 계층은

  • 세그먼트를 전송자 호스트에서 수신자 호스트로 전송한다.
  • 전송자 측에서는 세그먼트를 데이터그램 안에 압축해서 집어넣는다. (캡슐화)
  • 수신자 측에서는 전달받은 세그먼트를 전송 계층으로 올려보낸다.
  • 네트워크 계층의 프로토콜은 모든 호스트와 라우터 안에 내장되어있다.
  • 라우터는 자기 자신의 입력 링크에 도착한 모든 IP 데이터그램의 헤더 필드를 해석하여 출력 링크로 전달한다.

Two key network-layer functions

네트워크 계층은 2가지의 핵심적인 역할을 수행한다.

포워딩 (Forwarding)

라우터의 입력 링크에서 적절한 출력 링크로 패킷을 이동시킨다.

라우팅 (Routing)

전송자로부터 받은 패킷을 목적지로 보내기 위해서 어떤 라우터로 내보낼지 결정한다.
즉, 출발지부터 목적지까지의 경로 (Path)를 결정한다.

라우팅은 출발지부터 목적지까지 여행 경로를 계획하는 과정이며, 포워딩은 한 교차로를 통과하는 과정으로 비유할 수 있다.

Interplay between routing and forwarding

라우터의 핵심적인 역할은 패킷이 들어오면 그 패킷을 목적지까지 전달해주는 것이다.
패킷이 들어오면 그 패킷의 헤더에 적혀있는 목적지를 보고, 목적지로 가는 길을 정한 후, 그 길로 내보낸다.
이때 목적지로 가는 길을 정하는 과정을 라우팅 알고리즘 (Routing Algorithm) 이라고 한다.

라우터 안에는 Forwarding Table이 존재하며, 라우터는 포워딩 테이블에 기반해서 경로를 설정한다.
포워딩 테이블 안에는 어떤 목적지로 가기 위해서 어떤 출력 링크로 나가야하는지가 적혀있다.

포워딩 테이블은 라우팅 알고리즘에 의해 생성된다.

다시 말해,
라우팅이란 라우터에 패킷이 들어오면 어디로 가야할지 경로를 정해주는 과정이다. 포워딩 테이블을 참조해서 경로를 결정하며, 포워딩 테이블은 라우팅 알고리즘에 의해 생성된다.

포워딩이란 라우터로 들어온 패킷을 적절한 출력 포트로 전달해주는 과정이다. 패킷의 헤더에 적혀있는 목적지 주소와 포워딩 테이블의 엔드리를 매칭시켜서, 그 엔트리에 해당하는 링크로 내보낸다.

라우팅 알고리즘에 의해 생성된 포워딩 테이블은 각 라우터의 입력 링크에 저장된다. 이후 입력 링크에 패킷이 들어오면 포워딩 테이블과 매칭되는데, 만약 매칭 속도보다 패킷이 들어오는 속도가 더 빠르다면 패킷은 큐에 임시로 저장되었다가 실행된다. 이로 인해 Delay 혹은 Loss가 발생하게 된다.

하지만 라우터의 개수는 무궁무진하기 때문에 자칫하면 포워딩 테이블의 크기가 기하급수적으로 커질 수 있다. 따라서 포워딩 테이블은 주소의 범위 별로 아웃풋 링크가 정해져있다.
이때 목적지 주소는 비트로 작성된다.

Longest prefix matching

포워딩 테이블에서 패킷의 목적지 주소와 맞는 범위를 탐색할 때, 가장 길게 매칭되는 범위를 선택하여 포워딩한다. 이를 Longest prefix matching 이라고 한다.

그림에서 예시대로 11001000 00010111 00011000 01111111 주소를 가진 패킷이 들어왔다.

포워딩 테이블에서 1번 링크와 2번 링크 둘다 매칭이 된다.

1번 링크 : 11001000 00010111 00011000 ********
2번 링크 : 11001000 00010111 00011*** ********

하지만 더 구체적으로 매칭되는 링크는 1번이므로, 1번 링크로 내보낸다.

profile
하고싶은건 많은데 시간이 없다!

0개의 댓글