ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • IP 구조, Fregmentation
    네트워크 2024. 5. 6. 23:49

    네트워크 레이어 프로토콜

    IP

    ICMP - 에러 리포팅, 라우터 시그널링

    Routing protocols(라우터끼리 데이터 교환할 때 사용): RIP, OSPF, BGF

     

    ** ICMP

    IP는 에러 신경 안씀, 신경써야 하면 ICMP 사용

     

    IP 구조

    ver head. len type of service length
    16-bit identifier flags fragment offset
    time to live upper layer header checksum
    32 bit source IP address
    32 bit destination IP address
    options (if any)
    data
    (variable length,
    typically a TCP or UDP segment)

    ver : IPv4, IPv6

    head. len : 헤더 길이 (최소 20바이트)

    type of srevice : 텍스트 등

    length : 전체 데이터그램 크기

    16-bit identifier

    flags

    fragment offset

    time to live : 지나칠 홉의 개수를 예측한 값, 하나 지날 때마다 하나씩 값을 내림

    ** 값이 0이 됐는데 도착을 안했다? -> 예정과 달리 도착을 안한 거니 폐기. 어차피 송신자가 재전송할 것

    upper layer : TCP, UDP

    header checksum : TCP/UDP에서 체크해서 사실 필요가 없음 -> IPv6에는 없음 ( 링크 레이어에서도 체크함

     

    IP Fragmentation

    길이 좁으면 데이터그램 쪼개기 가능( MTU, Max Transfer Size. 대역폭 )

    각각 헤더를 다시 달아주는데 이때 identifier, flags, fragment offset 사용

    쪼개진 데이터그램은 최종 도착지에서 재조립

     

    length = 4000 ID = x frag flag = 0 offset = 0

    MTU가 1500이라 하면 위 데이터그램은 지나갈 수 없음

     

    length = 1500 ID = x frag flag = 1 offset = 0
    length = 1500 ID = x frag flag = 1 offset = 185
    length = 1040 ID = x frag flag = 0 offset = 370

    이렇게 세 조각으로 나누면 지나갈 수 있음

    이때, IP 헤더 20바이트를 고려해서 length = 1480 + 20 이 되도록 해야 한다.

     

    ID는 같으면 원래 같은 패킷이었다는 것을 의미한다.

     

    flag는 1이면 뒤에 더 따라올 패킷이 있음을 의미한다.

     

    offset : 데이터가 조각화되면, 처음에서 얼마나 떨어져 있는 데이터인지 오프셋을 줘야 함

    1480 / 8 = 185, 1480 * 2 / 8 = 370

     

    왜 8로 나누는가? 그냥 단위가 8

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

    DHCP, NAT  (0) 2024.05.21
    IP addressing: Subnet Mask, CIDR  (0) 2024.05.21
    네트워크 스케줄링 메커니즘  (0) 2024.05.06
    라우터 내부, switching fabric  (0) 2024.05.06
    네트워크 레이어, 포워딩과 라우팅  (0) 2024.05.06
Designed by Tistory.