컴퓨터공학/컴퓨터망

[컴퓨터망] Internet Protocol Version4 (IPv4)

NIMHO 2022. 7. 2. 03:29
728x90
복습하기 위해 학부 수업 내용을 필기한 내용입니다.
이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다.
그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다.

Introduction

  • Internet Protocol(IP)은 네트워크 layer에서 TCP/IP procotol에 의해 사용되는 전송 메커니즘이다.
Position of IP in TCP/IP protocol suite

Datagrams

  • 네트워크(인터넷) layer의 packet을 'datagrams'이라고 한다.
  • Datagram은 header와 data의 두 부분으로 구성된 가변 길이 packet으로 구성된다.
  • header의 길이는 20 ~ 60 Byte이며 routing 및 전송에 필수적인 정보를 포함한다.
  • TCP/IP에서는 header를 4Byte 섹션으로 표시하는 것이 일반적이다.
IP datagram
Header : Control 정보 - 오류 나면 의미 없어진다.

VER (4bit) : 0~15까지 기능, 지금은 ver6까지 있다.
HLEN (4bit) : 단위는 word(4Byte), 최대 15*4 = 60Byte
Service type (8bit) : 뒤에 데이터가 어떤 데이터인지... (잘 안 쓰인다.)
Total length (16bit) : Header + Data 전체 길이

Identificatoin (16bit) : packet ID (flagmemtation 하고 관련)
Flags (3bit) : fragment 됐냐 안됐냐?
Fragmentation offset (13bit) : 상대적인 위치

Time to live (TTL / 8bit) : 생존 시간, packet이 얼마나 살아 있나? (단위 hop)
ex. 10 hop → router 10개 거칠 수 있다.
packet이 안 죽고 무제한 돌면 문제가 생기니까 제한을 둔다.
Service type
총길이 field는 header를 포함한 Datagram의 총길이를 정의한다.
→ header + data의 length
Encapsulation of a small datagram in an Ethernet frame
MTU (Maximum Transmission Unit)
Multiplexing (Protocol)

Fragmentation

  • Datagram은 다른 네트워크를 통해 이동할 수 있다.
  • 각 router는 수신한 frame에서 IP datagram의 캡슐화를 해제하고 처리한 다음 다른 frame에 캡슐화한다.
  • 수신된 frame의 형식과 크기는 frame이 방금 이동한 physical network에서 사용되는 protocol에 따라 달라진다.
  • 전송된 frame의 형식과 크기는 frame이 이동할 physical network에서 사용되는 protocol에 따라 달라진다.
MTU
datagram안에 data만 쪼갤 수 있다.
header는 쪼갤 수 없다.
Flags field
D (Do not fragment) : 쪼개지마 → 없애고 다시 요청
M (More fragments) : 쪼개졌다.
원래 3bit지만 실제로는 2bit만 쓴다.

00 : 쪼갤 수 있는데 쪼개지 않는다.
01 : 조갤 수 있는데 쪼갠다.
10 : 쪼갤 수 없다.
11 : 올 수 없다.
Fragmentation example
(header를 뺀)
flag 3bit를 쓰니까 8로 나눈다.
Detailed fragmentation example

Options

  • IP datagram의 header는 고정 부분과 가변 부분의 두 부분으로 구성된다.
  • 고정 부분은 20Byte 길이를 가진다.
  • 변수 부분은 최대 40Byte의 option으로 구성된다.
  • 이름에서 알 수 있듯이 datagram에는 option이 필요하지 않다.
  • 네트워크 테스트 및 디버깅에 사용할 수 있다.
  • Option이 IP header의 필수 부분은 아니지만 IP software의 option 처리가 필요하다.
Option format
Categories of options
Single-byte
No operation
End of option

Multiple-byte
Record route (111) : router 정볼르 채워 넣어라.
ex. max route 개수는? 40/4=10? No! type 1개 빼고 9개
Strict source route (1001) : (엄격하게) 없앤다.
Loose source route (11) : 그냥 보내라.
Timestamp (100) : 시간 잴 때

source route : 어디 어디 가라 경로를 미리 지정
No operation option
NO-OP : 4의 배수 채우려고 (padding)
Endo-of-option option
Record-route option
Record-route concept
Strict-source-route option
Strict-source-route option
마음대로!
routing rule 위반
Loose-source-route option
Time-stamp option
Use of flags in timestamp
시간 잴 때
Timestamp concept

Checksum (3번째 라인 16bit)

  • 대부분의 TCP/IP protocol에서 사용되는 오류 탐지 방법을 checksum이라고 한다.
  • checksum은 packet 전송 중에 발생할 수 있는 손상으로부터 보호한다.
  • packet에 추가된 중복 정보이다.
  • checksum은 보낸 사람에서 계산되고 얻은 값은 packet과 함께 전송한다.
  • 수신기는 checksum을 포함한 전체 packet에 대해 동일한 계산을 반복한다.
  • 결과가 만족스러우면(아래 참조) packet이 수락되고, 그렇지 않으면 거부한다.
Checksum concept
마지막에 result가 0 : 문제가 없다.
0이 아니면 문제가 발생
Checksum in one’s complement arithmetic
IP의 checksum은 data가 아닌 header만 포함한다.
728x90