본문 바로가기
네트워크

4.3 인터넷 프로토콜(IP): IPv4, 주소체계, IPv6

by 학식러 2023. 3. 29.

 

 

4.3.1 IPv4 데이터그램 포맷

 

네트워크 계층에서 PDU를 부르는 이름 = 데이터그램,

 

모든 PDU는 Header, Payload 두 부분으로 나누어져있다.

ex) 택배에서 주소(Header), 내용물(Payload)

 

 

options 6줄까지가 Header, 그 아래 payload

 

전송계층에서 PDU를 부르는 이름 = segment(TCP/UDP)

 

IP주소는 32비트, 한 줄이 4바이트

 

 

 

-버전 번호

 

4비트로 IP프로토콜 버전을 명시함,

 

라우터는 버전 번호를 확인하여 데이터그램의 나머지 부분을 어떻게 해석할지 결정함,

 

위 그림은 IPv4

 

 

-헤더 길이

 

옵션이 없으면 20바이트, 옵션이 있으면 24바이트,

 

4비트로 IP데이터그램에서 실제 페이로드가 시작하는 곳을 결정.

 

 

-서비스 타입

 

패킷이 라우터를 지나갈 때 어떻게 처리할지 결정하는 것

 

ex) DTR(Delay, Throughput, Reliability) : 이 데이터그램은 Delay가 중요하니 고려하라, 잃지 않는 것이 중요하니 Reliability를 고려하라, Throughput이 중요하니 고려하라

 

 

-데이터그램 길이

 

Header에서 payload 끝까지 길이

 

총 16비트를 차지하기 때문에 IP데이터그램의 최대 길이는 2^16 = 65K바이트 이지만 보통 1500바이트보다 작다.

 

어차피 길이는 다 알고 있는데 왜 명시 해주었는가?

=> 최소 사이즈 제한이 있는 링크가 있음

ex) 어떤 링크 계층에서 최소 사이즈를 못 맞췄을 때 패딩을 해줘야함, 그것 때문에 필요.

 

 

-식별자, 플래그, 단편화 오프셋

 

식별자 : 데이터그램을 지칭할 수 있는 정보를 ID를 붙임

 

플래그 , 단편화 오프셋 : 

데이터그램은 여러 링크를 거쳐간다.

 

그런데 어떤 링크에서는 데이터그램 하나가 너무 커서 쪼개서 보낸다.

 

인터넷 정책은 한번 쪼개지면 쪼개진 상태로 독립적으로 목적지에 도착하고,

목적지에 가면 그 쪼갠 데이터그램을 다시 합쳐준다.

 

이 때 같은 데이터그램이니까 하나로 합쳐줘야할지, 말지를 ID로 구분해준다.

 

이게 3개로 쪼개지면 첫번째, 두번째, 세번째 라는 것을 표현해주는 것이 단편화 오프셋

 

플래그 : 쪼개져서 마지막 부분이다. 아니면 더 뒤에도 계속 있다. 이 패킷은 쪼개지 말아라 이런 표시를 하는 것.

 

 

-TTL(time-to-live)

 

네트워크 계층을 하나 거칠때 마다 하나씩 줄어든다.

ex) TTL=10이면 라우터 10개 거치면 0이 되어서 버려지게 된다.

 

네트워크에서 데이터그램이 무한히 순환하지 않도록 한다.(라우팅 루프)

 

 

-프로토콜(upper layer)

 

전송계층은 TCP, UDP 두개가 있다.

 

전달될 목적지인 전송계층의 특정 프로토콜(TCP or UDP)을 명시해준다.

 

TCP에게 줄 것인가, UDP에게 줄 것인가 이것을 표현해준다.

 

 

-헤드 체크섬

 

헤더에 있는 정보만 전부 더한 값을 적은 것이다.

 

중간에 계산해서 체크섬이 안맞으면 헤더가 변화가 있었다는 것을 알게 해준다(오류).

 

라우터는 오류가 검출된 데이터그램을 폐기한다.

 

 

-출발지와 목적지 IP 주소

 

말 그대로 출발지, 목적지 IP주소

 

 

-옵션

있을 수도, 없을 수도

=> 모든 IP패킷에 있는 헤더는 5줄이 됨 => IP패킷의 헤더는 기본적으로 20바이트(4바이트x5줄) + 혹시 더 필요하면 24바이트가 된다.

 

 

-데이터(페이로드)

 

 

4.3.3 IPv4 주소체계

 

호스트와 물리적 링크 사이의 경계를 인터페이스(interface)라고 한다.

 

라우터는 한 링크로부터 데이터그램을 수신하여 다른 링크로 전달하는 것이므로 2개 이상의 연결된 링크가 필요하다.

 

라우터와 어떤 링크 사이의 경계 또한 인터페이스라고 하는데, 각 링크마다 하나의 인터페이스를 갖고 하나의 라우터는 여러 개의 인터페이스를 갖는다.

 

모든 호스트와 라우터는 IP데이터그램을 송수신할 수 있으므로 IP는 각 호스트와 라우터 인터페이스가 IP주소를 갖도록 요구한다.

 

따라서 기술 면에서 IP주소는 인터페이스를 포함하는 호스트 라우터보다는 인터페이스와 관련이 있다.

 

 

IP주소는 32비트 길이이다.

 

일반적으로 주소의 각 바이트를 십진수로 표현하고 주소의 다른 바이트와 점으로 구분하는 십진 표기법을 사용한다.

ex) 192.32.216.9

 

모든 호스트와 라우터의 각 인터페이스는 고유한 IP주소를 갖는다. 이러한 고유 IP주소는 마음대로 선택할 수 없다. 인터페이스의 IP주소 일부는 연결된 서브넷이 결정한다.

 

 

 

왼쪽 3개의 호스트와 라우터 인터페이스는 모두 223.1.1.xxx 형식의 IP 주소를 갖는다. 또, 4개의 인터페이스가 중계하는 라우터 없이 하나의 네트워크에 서로 연결되어 있다.

 

이 네트워크는 이더넷 LAN으로 상호연결되고 이 경우 인터페이스는 이더넷 허브나 이더넷 스위치 또는 무선 AP로 상호연결된다.

 

IP 용어로 세 호스트 들의 인터페이스들과 하나의 라우터 인터페이스로 연결된 네트워크는 서브넷(subnet)을 구성한다고 말한다.

 

IP 주소체계는 이 서브넷에 223.1.1.0/24 라는 주소를 할당한다. 여기서 /24서브넷 마스크라 부르는데, 왼쪽 24비트가 서브넷 주소라는 것을 가리킨다.

 

 

서브넷 6개

 

 

-CIDR : Classless InterDomain Routing 

 

a.b.c.d/x 형식 주소에서 최상위 비트(Most significant bit)를 의미하는 x는 IP 주소의 네트워크 부분을 구성한다.

이를 해당 주소의 프리픽스 또는 네트워크 프리픽스라고 부른다.

 

한 기관은 통상 연속적인 주소의 블록(공통 프리픽스를 갖는 주소 범위)을 할당 받고 기관 장비들의 IP 주소는 공통 프리픽스를 공유한다.

 

외부 기관의 라우터는 목적지 주소가 내부 기관인 데이터그램을 전달할 때, 단지 앞의 x 비트들만 고려한다.

 

a.b.c.d/x 형태의 한 엔트리만으로 기관 목적지로 패킷을 전달하는 데 충분하므로, 이런 라우터들에서 포워딩 테이블의 크기를 상당히 줄여준다.

 

주소의 나머지 32-x 비트들은 기관 내부에 같은 네트워크 프리픽스를 갖는 모든 장비를 구별한다.

이 비트들은 기관 내부의 라우터에서 패킷을 전달할 때 사용되며 이 하위 비트들은 추가적으로 서브넷 구조를 가질 수도 있다.

 

클래스 주소 체계에 비해 호스트 낭비가 적다.

 

 

-클래스 주소 체계

 

CIDR이 채택되기 전에는 IP주소의 네트워크 부분을 8, 16, 24 비트로 제한했고 각각의 비트를 서브넷 주소로 갖는 서브넷을 각각 A, B, C 클래스 네트워크로 분류했기 때문에 이러한 주소체계는 클래스 주소체계라고 알려졌다.

 

그러나 서브넷 부분이 정확히 1, 2, 3 바이트여야 하는 요구사항은 중소형 크기의 네트워크로 급속히 증가하는 기관의 수를 지원하기엔 문제가 있었다.

 

예를 들어 클래스(/24) 서브넷은 254개의 호스트만을 제공하므로 많은 조직을 위해서는 턱없이 부족하고, 클래스(/16) 서브넷은 65634개의 호스트를 제공하여 너무 크다.

 

 

-호스트 주소 획득: 동적 호스트 구성 프로토콜 (DHCP) : Dynamic Host Configuration Protocol

 

호스트에 IP 주소를 할당하는 것은 수동으로 구성이 가능하지만 일반적으로 동적 호스트 구성 프로토콜(DHCP)을 많이 사용한다.

 

DHCP는 호스트가 IP 주소를 자동으로 얻을 수 있게 한다.

 

 

-DHCP 서버 발견

 

먼저 새롭게 도착한 호스트는 상호작용할 DHCP를 발견한다. 이것은 DHCP 발견 메시지를 사용하여 수행되며, 클라이언트는 포트 67번으로 UDP 패킷을 보낸다.

 

DHCP 클라이언트는 DHCP 발견 메시지를 포함하는 IP 데이터 그램을 생성하는데, 이 메시지 내의 목적지 IP 주소를 브로드캐스트 IP 주소 255.255.255.255로 설정하고 출발지 IP 주소는 0.0.0.0으로 설정한다.

 

링크 계층으로 IP 데이터그램을 보내며 이 프레임은 서브넷에 연결된 모든 노드로 브로드캐스트된다.

 

 

-DHCP 서버 제공

 

DHCP 발견 메시지를 받은 DHCP 서버는 DHCP 제공 메시지를 클라이언트로 응답한다.

 

이때에도 IP 브로드캐스트 주소를 사용하여 서브넷의 모든 노드로 이 메시지를 브로드캐스트한다.

 

서브넷에는 여러 DHCP 서버가 존재하기 때문에, 클라이언트는 여러 DHCP 제공 메시지로부터 가장 최적의 위치에 있는 DHCP 서버를 선택한다.

 

각각의 서버 제공 메시지는 수신된 발견 메시지의 트랜잭션 ID, 클라이언트에 제공된 IP 주소, 네트워크 마스크, IP 주소 임대 기간을 포함한다.

 

 

-DHCP 요청

 

새롭게 도착한 클라이언트는 하나 또는 그 이상의 서버 제공자 중에서 선택할 것이고 선택된 제공자에게 파라미터 설정으로 되돌아오는 DHCP 요청 메시지로 응답한다.

 

 

-DHCP ACK

 

서버는 DHCP 요청 메시지에 대해 요청된 파라미터를 확인하는 DHCP ACK 메시지로 응답한다.

 

'네트워크' 카테고리의 다른 글

4.3.4 IPv6  (0) 2023.03.30
4.3.3 네트워크 주소 변환(NAT)  (0) 2023.03.30
4.2.5 패킷 스케줄링  (0) 2023.03.26
4.2 라우터 내부  (0) 2023.03.26
4.1 네트워크 계층 개요  (0) 2023.03.26

댓글