IP

EN·2023년 6월 22일
0

Network

목록 보기
6/9

DATAGRAM

네트워크 계층에서의 패킷을 데이터그램 이라고 한다고 했었지
이건 IP Datagram의 사진

VER : IPv4인지 v6인지
HLEN : 헤더 길이
Service type : 서비스 질의 유형
Total length : 헤더를 포함한 데이터그램의 크기. 간접적으로 패딩의 유무를 유추할 수 있음. 바이트 단위임. 데이터 필드의 길이는 TOTALLENGTH - HLEN * 4
Identification : 보내는 데이터에 단편화가 일어났을 경우 이걸 통해서 분할된 패킷을 식별할 수 있게 함.
Flags : D, M 비트로 fragment를 할지말지, 한다면 이게 마지막 프래그먼트인지 아닌지를 표시함.
Fragmentation offset : 조각에 저장된 원래 데이터의 바이트 범위

이건 User Datagram의 사진

Encapsulation of a small datagram in an Ethernet frame


K라는 글자를 어플리케이션에서 보낸다고 가정할 때,
TCP는 20바이트의 헤어 붙이고, IP도 20바이트 헤더 붙임.
그럼 20 + 20 + 1 이니까 41바이트지?
그리고 프레임을 앞 뒤로 붙임.

근데 무조건 46을 최소로 두기로 했음!
그래서 5 크기의 패딩을 추가함.

어쨌든 46보다 작으면 이전의 헤더 그림에서 Total length를 보고 padding여부를 알 수 있음.

Fragmentation

MTU
Maximum length of data that can be encapsulated in a frame
이전 사전에서 IP datagram이 Frame안에 들어가는걸 봤었지
MTU는 미니멈이 46으로 같음!!

그리고 우리가 할건 이제 단편화임!
단편화를 왜할까? 네트워크마다 MTU가 조금씩 다르기 때문임!
그럼 단편화는 헤더도 단편화가 될까? NO! 오직 데이터만 가능함!


아까 3비트짜리 Flags에 D와 M이 있었지
D : 1로 되어있으면 분할해야 되는 상황에서 분할을 하지 말라는것. 안되면 그냥 버림
M : 분할이 되고 있는 상황에서 이게 마지막 조각인지 아닌지를 나타내는 것!


우린 저 그림을 보고, MTU가 1420이라는 것을 알 수 있다!

OPTIONS

IP헤더의 옵션들에 대해서 배울 것임.

이것도 TCP와 마찬가지로 Single byte랑 Multiple byte옵션이 있음.

Single byte
NOP랑 EOP가 있는데, 이건 TCP랑 똑같으니 pass

Multiple byte

  • Record-route option

  • Strict-source-route option


    얘는 정해진 길로 안가면 삔또가 상해서 바로패킷을 버림.
    라우터의 왼쪽 주소를 기록하는것을 유의깊게 볼것!

  • Loose-source-route option

    얘는 좀 플렉서블하게, 정해진 길로만 안가도 됨!

-Time-stamp option

Flag를 뭘 쓰냐에 따라서 0번은 그냥 시간만 쓰는것, 1번은 IP주소와 시간까지 같이, 3번은 주소가 주어지면, 시간만 입력하는 방식임

CHECKSUM


IP는 헤더!만 체크섬한다. 헤더만 검사하고 데이터의 오류는 TCP에 의해서 한다.

IP components


From upper-layer protocol : TCP/UDP

자 이제, IP의 과정을 설명할 것임.
Header adding module에서 데이터그램 헤더를 추가함.
그리고 나서 Processing module에서 Forwarding module로 전달을 함.
Routing table을 참고해서 Fragmentation module로 전달함.
그럼 이제, IP데이터그램이 네트워크마다 다른 MTU를 맞추기 위해 단편화를 할지 말지를 결정.

자 이제 반대로 하위 레이어에서 들어올 경우,
Processing module에서 Reassembly module로 들어감. 이제 재조합 모듈에서 프래그먼트들을 재조합하고 Identification번호가 일치하는 것들을 모은다.

Reassembly table


패킷 로스의 가능성을 보여주는 것.
IP는 신뢰성 보장을 잘 안함. 그래서 IP단에서 fragmentation못하고 전체를 버리게 되면, 사실 TCP단에서 패킷 로스가 일어나게 된것이다.
이를 detect하기 위해 3 dup ACK이 일어날 때 까지 시간이 걸림.

profile
iOS/JUJITSU

0개의 댓글