오늘날 사용 중인 IP는 IPv4, IPv6 두 가지 버전이 존재한다. 하나씩 알아보자. 참고로 IP는 비신뢰적인 서비스를 제공하는 네트워크 계층의 프로토콜이며 네트워크 계층의 데이터 단위는 패킷이다.
먼저 IPv4의 데이터 구조를 살펴보자.
13비트 단편화 오프셋 필드는 IPv4의 특징 중 하나인 단편화를 위한 필드이다. Time-to-live 필드는 데이터그램이 다른 라우터로 전송되지 않고 네트워크 상에서 무한히 순환하는 경우 제어하기 위한 필드이다. 나머지 다른 필드들은 대충 어떤 의미인지 알 것이다.
다음은 단편화에 대해서 알아보자. 단편화란 하나를 여러 개로 나누는 것을 의미한다.
데이터 링크 계층의 전달할 수 있는 최대 데이터양을 MTU(Maximum Transmission Unit)이라고 한다. 모든 데이터 링크 계층의 프로토콜은 MTU가 다르다.
만약 라우터 A가 한 링크에서 IP 데이터그램을 수신하여 다른 링크로 송신하려고 하는데 다른 링크들의 MTU가 수신한 IP 데이터그램의 길이보다 작다면 어떻게 해야 할까? IP 데이터그램을 두 개 이상의 더 작은 IP 데이터그램으로 분할하여 각각 송신한다면 가능할 것이다. 이것이 바로 단편화이다.
A 라우터에서 단편화를 통해 데이터를 분할하여 송신했다면 B 라우터가 이를 수신할 때는 분할된 상태가 아닌 원본 상태이어야 할 것이다. 이 과정을 재결합이라고 한다. 이를 위해 식별자, 플래그, 단편화 오프셋 필드를 포함하였다. 재결합은 라우터에서 수행되는 것이 아니라 종단 시스템에서 수행된다.
이번에는 IPv4의 주소 체계를 알아보자. IPv4의 주소는 32비트를 사용한다. 일반적으로 주소의 각 byte를 십진수로 표현하고 다른 byte와 점(.)으로 구분하는 십진 표기법(Dotted-Decimal Notation)을 사용한다.
IP 용어로 서브넷이라는 것이 존재하는데 이에 대한 정의는 다음과 같다.
한 서브넷의 구성요소들이 IP가 223.1.1.1, 223.1.1.2, 223.1.1.3으로 구성되어 있다면 서브넷에 223.1.1.0/24라는 주소를 할당한다. 여기서 /24는 서브넷 마스크라 부르는데 32비트 주소의 왼쪽 24비트가 서브넷 주소라는 것을 가리킨다. 만약 이 서브넷에 다른 요소가 추가된다면 그 요소의 IP는 223.1.1(서브넷 주소).4가 될 것이다.
IP 주소는 네트워크 부분의 길이에 따라 다음과 같이 5단계로 구성되어 있다.
IPv4는 32비트를 사용하기 때문에 오늘날의 네트워크를 표현하기에는 상당히 부족한 수치이다. 이를 개선하고자 나온 것이 바로 IPv6이다.
IPv6의 주소 체계는 IPv6는 16비트씩 8부분, 총 128비트를 사용한다. 각 부분을 16진수로 표현하고, 콜론(:)을 통해 구분한다. 또한 어떤 타깃과 통신하느냐에 따라 총 3가지로 구분된다.
IPv6의 데이터 구조는 다음과 같다.
IPv6는 IPv4보다 가용한 주소 범위를 늘인 것도 있지만 성능 개선 면에서도 많은 초점을 두었다. 성능 개선을 위해 IPv4에 비해 헤더에 포함되는 필드들이 단순해진 것을 확인할 수 있다. 대표적인 것들을 알아보자.
먼저 단편화/재결합 관련 필드이다. IPv6는 단편화와 재결합을 출발지와 목적지만 수행한다. 만약 라우터가 수신한 IP 데이터그램이 송신 링크보다 크다면 이를 폐기하고 ICMP 오류 메시지를 송신자에게 보낸다. 그렇다면 출발지인 송신자에서 단편화를 하여 재전송한다.
다음으로 헤더 체크섬 필드이다. 상위의 전송 계층, 하위의 데이터 링크 계층에서 어차피 체크섬을 수행하기 때문에 굳이 네트워크 계층에서 수행하지 않아도 된다는 생각으로 사라졌다.
마지막으로 옵션 필드이다. 필드는 사라졌지만 개념이 사라진 것은 아니다. IPv6에선 옵션 필드를 별도로 두는 대신 다음 헤더들 중 하나가 될 수 있다는 가정을 한다.
IPv6의 장점은 다음과 같다.
- 주소 부족 문제를 해결할 수 있으며, 자료 전송 속도가 빠른 장점이 있다.
- 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결할 수 있다.
- IPv4와 호환성이 뛰어나다
- 주소의 확장성, 융통성, 연동성이 뛰어나며, 실시간 흐름 제어로 향상된 멀티미디어 기능을 지원한다.
- Traffic Class, Flow Label을 이용하여 등급별, 서비스별로 패킷을 구분할 수 있어 품질 보장이 용이하다.
'Computer Science > 컴퓨터 네트워크' 카테고리의 다른 글
웹 브라우저에 URL을 입력했을 때 발생하는 일 (1) | 2021.07.09 |
---|---|
라우팅 알고리즘 (0) | 2021.07.09 |
TCP & UDP (0) | 2021.07.08 |
rdt3.0의 성능과 N부터 반복(Go-Back-N, GBN) & 선택적 반복(Selective Repeat, SR) (0) | 2021.07.08 |
신뢰적인 데이터 전달 프로토콜의 구축 (0) | 2021.07.08 |
댓글