2022. 2. 16. 15:56ㆍMajor`/컴퓨터 네트워크
네트워크 계층
- 송신 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
- 라우팅 기능이 강력하다
- Router는 모든 목적지의 경로를 전부 계산해서 Forwarding Table에 저장해놓는다
- 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로 내보낸다