- 네트워크 계층의 기능: https://www.notion.so/7-IP-1-abcea665708c4c1f8cb5df1ce7d1ee5a
- 라우팅: https://naon.me/posts/til85
- IP
학습목표
1) IP프로토콜의 기능과 헤더의 역할을 이해
-각 필드의 의믜
-IPv4 주소의 클래스
-패킷 분할의 필요성과 방법
IP프로토콜의 주요 특징
-비연결형 서비스 : 연결설정 과정이 없고, 매번 패킷마다 어디로 갈지 정함
-패킷 분할/병합 기능
-데이터 체크썸은 없고, 헤더 체크썸만 제공
-Best-effort방식으로 동작. '최선으로 노력은 하지만 보장은 못한다 라는 뜻'
IP헤더
-0~3, 즉 4비트 까진 version Number가 온다.
-4비트 짜리 Header length가 뒤에 옴.
-service Type이 1바이트 차지
-packet length가 2 바이트.
-service type에서 111이 가장 높은 우선순위를 나타냄.
-반대로 000은 가장 낮은 우선순위.
패킷 분할 관련 필드
-상위 계층에서 내려온 데이터가 하나의 패킷으로 전달하기에 너무 큰 경우 분할하여 전송
-Identification(식별자 혹은 구분자)
- 분할되지 않은 패킷: 값을 순차적으로 증가
- 분할된 패킷: 동일한 번호 부여(한덩어리임을 나타냄)
-DF(Don't Fragment): 패킷 분할 금지
-MF(more Fragment)
- 분할된 패킷의 처음과 중간:1 (뒤에 뭔가 올게 더 있습니다!)
- 분할된 패킷의 마지막: 0 (더 이상 없습니다)
-Fragment Offset (13bits)
- 분할되기 전 데이터에서의 상대적인 위치 정보
- 8바이트의 배수로 지정
주소 관련 필드
-Source Address: 송신 호스트의 IP 주소
-Destination Address: 수신 호스트의 IP 주소
-IP주소 체계
- Network: NIC에서 할당
- Host: 개별 망에서 관리
- 클래스 A: 0.0.0.0 ~ 127.255.255.255 (초창기 ip에 관여한 연구 기관들)
- 클래스 B: 128.0.0.0 ~ 191.255.255.255 (대부분의 주요 대학들)
- 클래스 C: 192.0.0.0 ~ 223.255.255.255
- 클래스 D: 224.0.0.0 ~ 239.255.255.255
- 클래스 E: 240.0.0.0 ~ 255.255.255.255
기타 필드
- version Number
- 일반적으로 4(IPv4)
- Header Length
- 헤더 길이를 32비트 단위로 표시
- IPv4의 경우 일반적으로 5
- Packet Length: 헤더를 포함한 패킷의 전체 길이
- Time To Live(TTL)
- 패킷의 생존 시간
- 라우터를 거칠 때마다 1씩 감소되며 0이 되면 네트워크에서 강제로 제거
-Transport Protocol
- 상위 계층 프로토콜(ICMP:1, TCP:6, UDP: 17)
-Header Checksum
- 우선 이 필드 값을 0으로 하고 값을 계산하여 채움
- 헤더 오류 검출
-Options
- 망 관리나 보안 목적으로 부여 가능
-Padding
패킷의 분할
분할의 필요성
- 각 네트워크에서 다루는 프레임의 크기가 다르다.
- x.25(128바이트), Ethernet(1200바이트)
- 여러 종류의 네트워크를 걸쳐 패킷 전달
-네트워크마다 프레임 크기가 다르기 때문에 분할이 필요하고, 이를 다시 병합하는 것도 필요하다.