IP Protocol [네트워크]

SnowCat·2022년 12월 23일
0

CS - Network

목록 보기
6/11
post-thumbnail

IP Protocol?

  • 지정한 ip 주소에 데이터를 전달하기 워한 프로토콜
  • 패킷이 정확하게 전달됬는지를 보장하진 않으며, 이는 상위 프로토콜인 TCP 프로토콜에서 수행

IP Protocol의 구조

  • Version: IP프로토콜의 버전을 의미 but IPv6은 구조가 달라지기 때문에 항상 004의 값을 가짐
  • Header Length: 헤더의 바이트/4의 값을 작성
  • Type of Service
  • Total Length: IP패킷 전체길이
  • Identification: 패킷을 조각화할 때 어떤 패킷인지를 구분해주는 식별자
  • Flags: 데이터 조각화에 관한 정보들, 첫자리는 거의하지 않고, 두번째 자리는 데이터를 fragmentation하지 않고 보내겠다는 표기, 마지막 자리는 조각화 시에 자신보다 뒤의 패킷이 있는지를 확인해주는 표기
  • Fragment Offset: 현재 패킷 데이터의 시작 위치를 표시해주는 부분, 단위는 8바이트
  • Time To Live: 패킷이 추가로 전송될 수 있는 횟수, 패킷이 전송될떄마다 값이 1씩 줄어들고, 값이 0이되면 패킷을 버리게 됨
  • Protocol: 상위 프로토콜을 지정하는 값, ICMP 프로토콜이 오면 1, TCP 프로토콜이 오면 7, UDP 프로토콜이 오면 10진수로 17에 해당하는 값이 들어감
  • Header Checksum: 헤더가 올바르게 전달됬는지 확인하는 부분
  • Source Adress/ Destination Adress: 발신/ 수신지의 ip주소
  • IP Option: 추가적인 정보가 필요한 경우 4바이트 단위로 사용함, 최대 10개까지 사용가능

ICMP Protocol

  • 특정 대상과 자신이 통신이 잘 되는지 확인할 수 있게 해주는 3계층 프로토콜
  • Type에 기본적인 응답코드를 보내고, Code에 세부사항을 표기함
    주요 Type값)
    0 : 메시지 응답
    8 : 메세지 확인 요청
    3 : 패킷이 목적지에 도달하지 못함
    11 : 패킷이 상대에게 도달했지만, 요청시간 만료로 인해 응답을 받지 못한 상태
    5 : 상대방의 라우팅테이블을 원격으로 수정하는 경우

라우팅 테이블

  • 패킷을 특정 IP주소로 전달하고자 할 때 네트워크 내에서 어느 부분으로 패킷을 전송해야하는지를 작성해둔 테이블
  • 라우팅 테이블에 없는 주소로는 데이터 전달 불가능 -> 게이트웨이를 설정해 라우팅 테이블에 명시되지 않은 IP주소값이 나올 때 게이트웨이 주소로 넘김

IP Fragmentation

  • 패킷을 MTU(Maximum Transmission Unit)보다 작은값으로 분할하는 것
  • 패킷의 MTU값은 IP Protocol을 포함하는 값이기 때문에 실제 데이터로 들어갈 수 있는 부분은 IP Protocol을 제외한 부분
    만약 MTU = 1500byte이고, IP Protocol이 20byte로 이루어져 있으면 데이터가 들어갈 수 있는 부분은 1480byte

출처:
https://www.youtube.com/watch?v=JaBCIUsFE74&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=10
https://luckyking.tistory.com/entry/IPIPv4-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C%EC%9D%98-%EA%B5%AC%EC%A1%B0-%EC%9D%B4%ED%95%B4
https://limjunho.github.io/2021/04/19/IP-Fragmentation.html

profile
냐아아아아아아아아앙

0개의 댓글