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

헤더
version
헤더 길이
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 루트 서버를 관리하고 도메인 명도 관리한다.