IP(토막글)

ksh98·2024년 6월 12일

네트워크

목록 보기
18/25

추후 더 자세한 내용을 다룰 예정입니다.

헤더

version

  • 4 비트
  • ip의 버전

헤더 길이

  • 옵션 때문에 총 헤더 길이를 명시

ttl

  • 몇번 홉 할 수 있는가
  • 네트워크에서 패킷이 길을 잃어 영원히 도는 것을 방지

프로토콜

  • 사용된 상위 프로토콜이 무엇인가
  • 터널링 등에서 ip를 ip로 감싸는 경우가 있어 이 자리에 ip가 들어갈 수도 있다.

length

  • 패킷의 총 길이
  • IP 패킷 = 헤더 + 페이로드
  • 옵션을 제외한 ip 헤더부는 20 바이트
  • ip 패킷은 1500 바이트를 넘을 일이 없다. 패킷 스위칭을 하며 여러 사람이 네트워크 자원을 공유하기 위해선 너무 길면 안 되기 때문이다.

둘째 줄

재조립 관련 헤더

  • 버전 6에서는 더 빠른 라우터를 위해 허용하지 않는다.

체크섬

  • 버전 6에는 더 빠른 라우터를 위해 사용하지 않는다.
  • 즉 라우터가 매번 체크섬을 다시 계산하는 것을 없애는 것이다.

옵션

  • 버전 6에는 없다.
  • 버전 6에서는 헤더 길이를 고정해 더 빠르게 포워딩 하려고 없앴다.
  • 대신 페이로드에 옵션이 들어가있다.

단편화와 조립

예를 들어 와이파이로 받은 패킷을 이더넷으로 옮길 때 와이파이의 mtu가 이더넷보다 크므로 분해가 일어난다. 이렇게 큰 패킷을 보내면 용량에 따라 쪼개고 이를 최종 목적지에서 재조립할 수 있다.

예시

  • 4000 바이트 패킷을 mtu가 1500이어서 3개로 쪼개면 1500/1500/1040으로 쪼개진다.
  • 원래 패킷에서 헤더부를 제외하고 데이터가 3980이다.
  • 처음 두 패킷에 데이터가 1480이 들어가고 따라서 마지막 패킷에는 데이터가 1020이 들어간다.
  • 데이터 1020에 헤더 20이 붙어서 마지막 패킷은 길이가 1040이다.

재조립을 위해 다음 세 헤더가 필요하다

id

  • 부모가 같은 패킷인지 구분하게 해준다.
  • 이 헤더의 값이 같으면 원래 같은 하나의 패킷이었다.

fragflag

  • 자신 뒤에 다른 형제 패킷이 더 남아있는지를 알려준다.

offset

  • 원래 패킷에서 위치가 어디인지를 알려준다.
  • 이전 조각의 offset에 이전 조각의 길이를 더하면 된다.
  • 단 이때 길이를 8로 나눈 것을 더한다.

서브넷

  • 네트워크를 쪼갠 것
  • x.x.x.x/y -> 앞 y 비트를 서브넷 마스크로 썼을때 ip 주소가 x.x.x.x이다.

CIDR

  • 원래는 ip주소 할당할 때 클래스가 있다.
  • 그런데 클래스 구분을 하지 않고 필요한 만큼 주겠다는 것이다.
  • x.x.x.x/y -> 이 주소는 y번 비트까지 네트워크 주소로 사용하겠다는 것이다.

IP를 얻는 법

  • 어떤 조직이 자신이 이용중인 ISP에게 IP를 달라고 하면 ISP는 자신의 아이피에서 서브넷을 이용해 네트워크를 쪼개서 준다.
  • ISP도 IP를 받아야 하는데 이는 ICANN이라는 조직이 관여한다.
  • ICANN에서는 ISP에게 IP를 준다.
  • 뿐만 아니라 유명한 DNS 루트 서버를 관리하고 도메인 명도 관리한다.
profile

0개의 댓글