IPv4 주소 체계는 32비트로 총 42억개의 주소를 표현할 수 있다. 스마트폰과 IoT 제품, 전기차 등을 비롯한 다양한 전자제품이 인터넷을 사용하기 때문에 충분할 줄 알았던 IPv4가 부족하게 되어 128비트를 사용하는 IPv6 주소 체계가 고안되었다.

여기서는 IPv6에서 변경된 사항과 네트워크 프로그래밍시에 고려해야할 부분을 정리해 보겠다.

IPv6헤더 변경 사항

header
사진 출처

IPv6의 헤더는 위 그림과 같다. 가장 눈에 띄는 것은 Source Address와 Destination Address의 길이가 길어진 것이다. 32비트에서 128비트로 늘어났다. 체크섬과 플래그 등의 필드가 없어졌고 Flow Label이 추가되었다.

추가된 필드 : Flow Label

Flow Label필드가 추가되었다. Transport 계층에서 흐름을 파악하고 제어를 했지만 전송계층을 확인할 수 없는 경우가 생긴다. 두가지 경우가 있다.

  1. 암호화
  2. 파편화

대부분 전송계층이 TLS를 통해 암호화 되기 때문에 중간에서 세그먼트를 열어볼 수 없거나, 세그먼트를 쪼개서 보내는 경우 라우터에서 흐름제어를 사용할 수 없었다. 그래서 IPv6부터 IP 헤더에 흐름 제어를 위한 필드를 추가했다.

변경된 필드

TTL -> Hop Limit
Type of Service -> Traffic Class Total Length -> Payload Length Protocol -> Next Header

결론

IPv6부터 주소 길이가 길어지고, ip헤더가 달라지는 등 변경점이 생겼기 때문에 앞으로는 IPv6로의 확장성을 고려해서 프로그래밍을 해야한다.

태그:

카테고리:

업데이트:

댓글남기기