IP 주소 - IPv4, IPv6

IP 주소는 IPv4, IPv6 로 나뉘어진다.

1. IPv4

  • 32비트로 총 2^32개의 주소를 표현할 수 있다. = 약 41억 9천만개

  • 32비트를 8비트 단위로 점을 찍어서 4개로 구분한다. = 4개의 옥텟

  • 8비트를 10진수로 표현한다.

  • 부족하기 때문에 NAT, 서브네팅 등 부가적인 기술이 필요하다.

2. IPv6

  • 128비트, 2^128 개의 주소를 표현할 수 있다.

    • 많은 주소를 처리할 수 있기 떄문에 NAT, 서브네팅이 굳이 필요하지 않다.

  • 16비트씩 8개로 구분된다. 이때 16비트는 16진수로 표현되며, 콜론으로 구분하여 표시

  • 앞의 연속되는 0은 생략가능

  • IPSec 이라는 데이터 패킷을 암호화하는 보안 네트워크 프로토콜 제품군이 내장되어있어서 보안성이 뛰어나다.

3. IPv4 vs. IPv6

3-1. 단순해진 헤더

  • IPv4 에서 사용되던 불필요한 헤더 필드들을 제거하여 훨씬 단순해졌고, 빨라졌다.

  • IPv4 는 헤더가 가변길이이지만, IPv6 는 40바이트로 고정되어있어서 인터넷 헤더에 대한 정보도 삭제되어있다.

    • 그밖에 여러가지 불필요한 필드들이 삭제됨

3-2. Checksum

  • IPv4에서는 header checksum 이 존재해서 데이터의 오류를 검사했었는데, IPv6 에서는 그것이 빠졌다.

  • 대신 internet layer 보다 상위 단계인 trasport layer 에서 TCP 나 UDP 가 체크섬을 가지고 있기 때문에 그곳에서 처리된 데이터를 믿는 것으로 한다.

  • 참고로 UDP 에서는 체크섬이 필수가 아니기 때문에 선택사항이다. 따라서 UDP + IPv6 인 경우, 반드시 체크섬 필드를 사용한다고 설정해야한다.

  • CRC

    • 순환중복검사로 네트워크 상에서 데이터에 오류가 있는지 확인하기 위한 체크값을 결정하는 방식이다.

    • 데이터 전송하기 전에 데이터 값에 맞춰 CRC 를 계산하고, 데이터에 붙여서 전송한다.

    • 데이터를 수신하고 나면, 다시 CRC 값을 계산한 뒤, 붙여진 이전의 CRC 와 비교한다.

    • 만약 두 값이 다르다면 전송 과정에서 오류가 덧붙여 전송된 것임을 알 수 있다.

3-3. TTL -> HOP limit

  • TTL은 패킷이 네트워크에서 무한순환하지 않도록 하는 변수이다.

  • 패킷이 네트워크에서 라우터를 거칠때마다 TTL 값은 1씩 감소한다. 값이 0이되면 패킷은 폐기된다.

  • IPv6 에서는 이러한 값이 장치를 거치는 최대 대수를 제한한다는 의미로 hop limit 으로 대체된 것이다.

3-4. 속도

  • 비록 IPv6 는 IPv4 에 비해서 헤더도 단순해지고 불필요한 필드도 삭제되어 기본적으로 빠르고 IPSec 이라는 네트워크 보안제품군이 내장되어 보안성도 훨씬 우수하다.

  • 하지만 항상 그런 것은 아니고, 가끔 더 느린 경우도 있다고 한다.

Last updated