본문 바로가기

컴퓨터 네트워크/Computer Networking 정리

CH4 : Network Layer (4)

* 이 글에 관련된 모든 내용은 Computer Networking A Top-Down Approach 7th에서 가져온 내용이다. *

 

 

IPv6


IPv6가 나오게된 배경은 그동안 말했듯이 IPv4의 주소부족현상 때문이다.

때문에 주소의 bit수를 늘려서 더 많은 주소를 처리할 수 있게끔 한다.

 

또한 IPv4에 비해 헤더도 바뀌었는데, 목적은 더 빠른 프로세싱과 QoS를 지원하기 위해서다.

헤더의 변화는 다음과 같다.

한눈에 보기 편한 그림이 있어서 가져왔다.

 

일단 헤더의 길이는 기존 IPv4에서는 가변이었다. (20~60) 그러나 IPv6에서는 헤더의 크기가 40으로 고정이기 때문에 헤더의 길이에 대한 부분과 옵션에 대한 부분이 없어졌다.

또한 IPv6는 fragmentation을 지원하지 않는다. 때문에 이에 대한 부분들도 다 없어졌다. (ID, Flag, Offset)

체크섬도 없어졌다.

 

이름이 바뀐 것도 있다.

ToS => Traffic Class

Total Length => Payload Length (헤더의 길이가 고정으로 바뀌었기 때문에 페이로드의 길이만 필요하다.)

Protocol => Next header (다음에 올 헤더가 어떤 부분에 대한 헤더인지를 나타낸다. 뒤에서 다시 설명)

Time to Live => Hop Limit (실제로 시간을 재기에는 무리가 있으므로 몇번 라우터를 거쳤는지 측정한다.)

(새로 추가) Flow Lable => 뒤에서 설명

 

Next Header

따라오는 헤더의 정보의 타입을 알려줌으로써 처리시간을 단축시킬 수 있다.

 

Fragmentation

IPv6에서는 기본적으로 fragmentation을 지원하지 않는다.

 

이말은 end-to-end, 즉 src와 dst에서만 fragmentation과 reassemble을 하고 중간의 라우터에서는 fragmentation을 하지 않는다는 것이다.

그렇다면 필요한 정보는 무엇일까? 당연히 Path MTU이다.

때문에 src에서 fragmentation을 하기 전, path MTU를 찾는 과정이 필요하다.

 

그러나 상황에 따라 Path MTU를 찾을 수 없을때도 있고, 중간에 전송루트가 바뀌어 버리면 의미가 없어지기 때문에 옵션으로 fragmentation을 지원해주기는 한다.

IPv4에서 하던거랑 똑같당.

 

Address Notation

주소가 너무길기 때문에 조금 더 효율적으로 표기하는 법이 필요했다.

IPv6 (128 bit)는 기본적으로 콜론을 통해 16비트씩 쪼갠다.

너무 길다.

128bit나 되는 주소의 특성상 0이 반복되는 부분이 많을 수 있는 가능성이 다분한데, 이를 줄여주기 위해 하나의 one sequence of zero를 skip할 수 있는 특징을 가지고 있다.

예를 들어 위의 주소에서 반복되는 0을 skip한다면

위와 같이 가장 길었던 0000:0000:0000을 ::로 줄여 표기할 수 있다.

뒤에 0000:0000과 같이 또 반복되는 부분이 있는데 이미 12번 나타나는 sequence를 줄였기 때문에 다른 길이에는 쓸 수 없다. (구분이 안됨)

 

또한 0074와 같이 앞의 0이 의미가 없을 땐 그것도 skip할 수 있다.

그러나 5600과 같은 숫자는 56과 다르므로 뒤의 0을 생략하면 안된다.

 

마지막 32bit는 dot-decimal로 남겨놀 수 있다. (IPv4로 구현된 라우터에서도 처리가능하기 위해)

 

Address Type

 

IPv6에서는 Unicast와 Multicastr 그리고 Anycast로 구분된다.

IPv4에서와 달리 broadcast가 없어진 것이 특징이다.

 

Unicast = 1:1통신

Multicast = 1:N통신

Anycast = 가장 가까운 이웃에 링크처럼 연결해주는 건데 중요하지 않다고 하셨다.

 

예를 들어 Link Local은 앞 10bit까지 FE80을 무조건 붙여줘야 하는데, subnet을 표현할 때 사용한다.

 

Loopback의 경우 128bit까지 1을 채워줘야 하며 자기 자신을 나타낸다.

 

Transistion

IPv4에서 IPv6로 넘어오기 위한 과도기는 분명 존재한다.

거의 대부분의 라우터들이 IPv4에 맞춰서 구현되어있기 때문에 한번에 바꾸기는 쉽지 않다.

 

때문에 두가지 아이디어가 나왔다.

1. Dual stack : IPv4와 IPv6모두 처리가 가능하도록 시스템을 구현하는 것이다.

 

2. Tunneling : IPv4를 쓰는 구간을 따로 저장해놓고 그 부분에서 IPv4의 헤더를 붙여 IPv6의 헤더와 그 페이로드를 묶어 하나의 페이로드로 간주하는 것이다. 그리고 tunnel이 끝나면 IPv4의 헤더를 떼어내고 전송한다.

 

'컴퓨터 네트워크 > Computer Networking 정리' 카테고리의 다른 글

CH5 : Network Layer Control Plane (2)  (0) 2021.11.19
CH5 : Network Layer Control Plane (1)  (0) 2021.11.17
CH4 : Network Layer (3)  (0) 2021.11.11
CH4 : Network Layer (2)  (0) 2021.11.07
CH4 : Network Layer (1)  (0) 2021.11.04