-> 블로그 이전

[Network] 네트워크 계층 : 가상 회선 - 데이터그램

2022. 2. 16. 15:56Major`/컴퓨터 네트워크

네트워크 계층

- 송신 Host → 수신 Host로 Packet 전달을 담당하는 계층

  • ※ Transport Layer : 송신 Process → 수신 Process로 Packet 전달

- 모든 Host와 Router에 Network Layer Protocol에 내장되어 있다


송신 Host :: Network Layer

1. Transport Layer로부터 세그먼트를 받는다

2. 해당 세그먼트에 IP 헤더를 붙여서 데이터그램을 생성 >> 캡슐화

>> 송신측 Network Layer가 데이터그램을 송신 Host → 수신 Host로 보내준다

 

수신 Host :: Network Layer

1. 받은 데이터그램에서 IP헤더를 떼어내서 조사 >> 역캡슐화

2. 데이터그램에서 세그먼트를 추출해서 Transport Layer로 전달해준다


Host의 Network Layer Protocol

- 라우팅 기능이 매우 약하다

  • 무조건 게이트웨이 or First-hop Router로 전달한다

 

Router의 Network Layer Protocol

- 라우팅 기능이 강력하다

  1. Router는 모든 목적지의 경로를 전부 계산해서 Forwarding Table에 저장해놓는다
  2. IP 데이터그램의 IP 헤더를 조사하고, 목적지를 Forwarding Table에서 찾아서 라우팅해준다

Network Layer 주요 기능

라우팅 (Routing)

- 출발지 ~ 목적지까지의 경로를 결정 

  • 라우팅 알고리즘에 의해 결정된다

 

포워딩 (Forwarding)

- 결정된 경로를 어떤 Link로 이동할지를 결정

  • 라우팅 정보를 활용해서 결정한다


Transport 계층의 연결/비연결 서비스 

- 연결형 : TCP / 비연결형 : UDP

  • 호스트 - 호스트끼리 연결/비연결 서비스를 제공
  • Process → Process로 Packet 전송
  • User가 TCP/UDP를 선택할 수 있다

 

Network 계층의 연결/비연결 서비스

- 연결형 : VC (Virtual Circuit) / 비연결형 : DG (Datagram)

  • 호스트 + Network Core(Router)가 서로 협력해서 연결/비연결 서비스를 제공
  • Host → Host로 Packet 전송
  • User는 Network가 제공하는 서비스에 따라 강제된다 (VC vs DG)

Virtual Circuit

- Network Layer의 연결형 서비스

- Data를 보내기전에 반드시 Virtual Connection을 설립한다

  • "Virtual Connetion"을 통해서 경로가 설정된다 (경로 예약)
  • 경로는 Virtual Connection 이후 해당 Packet에 대해 1번만 설정된다

- Data를 Packet 단위로 나누어서 전송한다 :: Data의 Packet을 하나의 스트림으로 간주

  • VC를 통해서 Packet의 전송 경로가 모두 동일하다
  • Packet의 도착 순서 또한 일정하다 (출발 순서 == 도착 순서)
    • 목적지에서 Packet들을 재조립할 필요가 없다

- 각 Packet은 Unique한 VC번호를 포함해서 전달된다

  • 목적지 Host 주소가 아니라 VC번호를 통해서 전달

- 링크, Router 자원들이 VC에 할당된다

- 해당 경로상의 Router들은 현재 연결에 대한 상태를 유지한다

  • 상태 : VC번호 + 어떤 자원을 할당하였고, 해당 자원을 얼마나 사용했나

 

※ VC 구성요소

1. Data가 전달될 경로 (Link + Router)

2. 각 Link마다 부여되는 VC 번호

3. 각 Router의 Forwarding Table Entry (경로 + VC 번호 저장)

 

 

- VC 번호는 각 Link마다 변경이 가능하다

(1, 12, 3, 22)

  • Link 1에서 VC 번호 12를 달고 Link 3으로 들어가려는 Packet
    • Link 3에서 해당 Packet의 VC 번호를 22로 재설정해준다
  • (Link 1 : VC 12)를 통해서 들어오는 모든 Packet들에 대해서 Link 3에서 해당 Packet들의 VC 번호를 22로 재설정

(1, 97, 3, 87)

  • Link 1에서 VC 번호 97을 달고 Link 3으로 들어가려는 Packet
    • Link 3에서 해당 Packet의 VC 번호를 87로 재설정해준다
  • (Link 1 : VC 97)을 통해서 들어오는 모든 Packet들에 대해서 Link 3에서 해당 Packet들의 VC 번호를 87로 재설정

 

>> Link가 다르면 VC 번호는 동일해도 된다

>> VC 번호는 Link 내의 각 Packet들에 대해서 Unique 해야한다

 

 

※ VC 시그널링 프로토콜

- Virtual Connection/Cancellation + VC에 대한 정보 유지를 해주는 프로토콜

- 오늘날 인터넷에서 사용 X


Datagram

- Connetion 과정이 없다

- Packet의 목적지 Host 주소를 통해서 Forwarding한다

- Packet을 독립적으로 전송한다 

  • Packet이 서로 다른 경로를 통해서 전달될 수 있다
  • 이러면, 목적지에서는 Packet의 순서가 달라진다


Datagram Forwarding Table

- Datagram Forwarding Table에서는 목적지 주소의 범위를 통해서 다음 Link로 전달하게 한다

 

Ex) (앞에 16비트 생략)

  • 00010000 00000000 ~ 00010111 11111111 사이에 목적지 Host 주소가 존재하면 Link 0으로 전달
  • 00011000 00000000 ~ 00011000 11111111 사이에 목적지 Host 주소가 존재하면 Link 1으로 전달

 

▶ Longest Prefix Matching

- 목적지 Host 주소를 포워딩 테이블에서 찾을 때, 앞에서부터 주소와 일치하는 가장 긴 주소 접두사를 사용

11001000 00010111 00111000 11101000의 Link를 찾을 경우

  • Link2와 가장 많이 겹치기 때문에 해당 Data는 Link 2로 내보낸다