네트워크당

[네트워크] IPv4 구조와 패킷의 분리와 결합 원리

이히당 2023. 12. 4. 23:20

internet

  • host, router network layer functions:
  • transport layer- TCP, UDP 밑에 계층임
  • network-layer : 라우팅 프로토콜에는 라우팅 알고리즘이 짝지어져 있어. 즉, forwarding table을 계산해
    • SDN을 사용해 forwarding table 계산
    • IP protocol ; 데이터에 관한 것. 데이터 그램의 아이피 주소를 찍어 보내. 어떤 식으로 데이터그램을 다룰거냐
    • 동시에 여러 프로토콜이 존재: ICMP, routing, ip, SDN
    • ICMP 아이피의 시그널 오류를 보고하기 위해서 사용하는 프로토콜
      • 예) 받는 라우터가 다운되면 이걸 알리는 역할..
참고로, 네트워크 계층에서 사용되는 데이터 형식은 데이터그램 == 패킷이다.
차이는
TCP : packet
UCP : datagram 이라 생각하면 될듯하다.

ipv4 datagram format

ipv4 format

  • header
    • ver: 여러 아이피 버전이 있으니까 제일 앞에 나와
    • header length :헤더의 길이를 숫자로 표현 → 옵션필드가 가변길이기때문에 표시
      • (options필드 - timestamp자기 주소+지나간 시간, record route taken자기 주소, 어떤 경로를 지나가야할지에대한 정보가 담겨있음 )
    • 핑크색이 고정길이 헤더 : 20byte
    • tos(type of service): 잘 안쓰이는 필드였어. 근데 나중에 diffserv같은걸 해주려고 하면서 조금씩 쓰여
    • time to live : 데이터가 살아 돌아다닐 수 있는 시간을 표현한 필드. 이게 없으면 고스트처럼 계속 돌아다니는 애가 생길 수 있기 때문에. 소스 호스트가 내보낼때 먼저 세팅을 한다. 네트워크의 크기를 재서 적어준다.
    • upper layer protocol : udp tcp icmp, ospf 중 어떤거로 보내야 하는지를 써둔다.
    • header checksum : ip header만을 위한 체크섬. 다른 목적지로 배달하면 안되기 때문에 이를 방지하고자.
    • 16bit identifier + flags + fragment offset : 잘라 쓰기 위해서.. 32비트를 다 써: for fragmentation/ reassembly

IPv4 fragmentation. reassembly

  • ethernet는 1500 를 짊어질 수있어
  • widearea link는 인터넷 코어를 아울러
  • MTU(max translate unit)을 보내는데 감당이 안되면 잘라(fragment). 중간에 라우터는 자르기만 하고 재조립하지는 않아 왜냐면 재조립은 추가 과정이 수요되는 것이기 때문임. 재조립이 꼭 필요한 과정은 아니기에 목적지 호스트까지로 보내고, 호스트에서 재조립을 한다. 재조립이 이뤄지게 하려면 순서나 그런거를 표시를 해줘야해 그래서 ip header에 그런 정보들이 써있는거임 만약 합치려고하는데 하나의 프래그먼트가 드랍되었다는 걸 알면 그냥 드랍시켜. 그럼 tcp 같은 경우 tcp가 recover을 하게 됨.
  • fragment가 어떻게 일어나나?
    how to fragment?
     
    • fragflag:내 뒤에 누가 있는가를 표기. 0이면 내가 마지막이라는 소리
    • id는 fragment하기 전 원본이 뭔지에 대해 나타내기 때문에 잘린애들은 다 같은 값을 가지고 있다.
    • offset; 오리지날에서 내가 어디 부분이다.
    • 헤더길이 20포한되어 있는 거임
    • 1480을 8로 나는 185가 offset에 실리고 그 다음것도 비슷한 바익으로 offset을 설정해줄 수 있다.

 

728x90