-
4.3 IP: Internet ProtocolComputer Networking 2018. 12. 15. 00:52
1. Internet network layer
1) routing protocols (<-> forwarding table) - path selection, RIP, OSPF, BGP
2) IP protocol - addressing conventions, datagram format, packet handling conventions
3) ICMP protocol - error reporting, router signaling
2. IP datagram format
- ver : 4bit로 IP 프로토콜의 버전을 명시
- head len : 실제 데이터 시작하는 곳
- type of service
- length : 헤더 + 데이터 길이
- 인식자, 플래그, fragment offset : fragmentation / reassembly
- TTL(time-to-live) : 네트워크에서 무한히 순환하지 않음을 보장한다.
- upper layer protocol : 트랜스포트 계츠의 프로토콜을 명시 ex) TCP, UDP
- 헤더 체크섬 : 2byte의 1의 보수를 합산
- source, destination IP address
- option
3. IP fragmentation, reassemble
- MTU : 링크 계층 패킷이 전달할 수 있는 최대 양
- MTU 보다 큰 IP 데이터 그램의 경우 여러 개의 작은 데이터그램으로 나누어 전송 후 목적지 Transport layer에 도달하기 전에 재결합
- 헤더의 인식자를 이용해서 동일 데이터그램인지 확인, fragflag의 경우 마지막 데이터그램만 0이고 나머지는 모두 1, offset 이용해 분실 확인 및 재결합
4. IPv4 addressing
- IP address: 32-bit의 host 구분 위한 identifier, router interface(연결 및 physical link)
1) subnet part - IP 주소의 앞부분
2) host part - IP 주소의 뒷부분
ex) 223.1.3.0/24 --> /24(subnet mask) = 앞의 24 bit 가 subnet을 의미함
* Classful Addressing
Class A 0******* ******** ******** ******** | Unicast App (현재 사용)
Class B 10****** ******** ******** ******** | Unicast
Class C 110***** ******** ******** ******** | Unicast
Class D 1110**** ******** ******** ******** | Multicast
Class E 1111**** ******** ******** ******** | Reserved (미래를 위해 남겨둠)
- CIDR : Classless InterDomain Routing
▶ a.b.c.d/x --> IP 주소를 두 부분으로 나누고, 이는 다시 십진수 형태의 a,b,c,d 값을 가짐
- IP 주소 획득
▶ 기본적으로는 ISP에 접촉하여 큰 블록을 받아옴
▶ ISP와 다른 조직은 ICANN으로부터 주소 블록을 할당받음
- DHCP: Dynamic Host Configuration Protocol
▶ plug-and-play
▶ DHCP client-server scenario
1) DHCP server discovery
새로 도착한 host가 상호 동작될 DHCP 를 발견. client가 67번 포트로 UDP 패킷(0.0.0.0->255.255.255.255)을 전송하면 모든 노드로 브로드캐스팅됨.
2) DHCP server offer
메시지 받은 DHCP 서버가 DHCP 제공 메시지를 클라이언트에 응답. 이때도 모든 노드로 브로드캐스트. 클라이언트는 여러 DHCP중 최적의 DHCP를 선택. 각 서버의 제공 메시지는 제공 IP주소, IP주소 임대 기간 등을 포함.
3) DHCP request
4) DHCP ACK
- Hierarchical addressing
▶ ISP 는 주기적으로 상위 계층에 자신이 갖는 IP 주소로 향하는 패킷들을 보내달라고 요청
- NAT (Network Address Translation)
▶ 보안, IP 변경, ISP 변경 등의 이유로 local network의 장치의 IP 주소가 외부와 맞지 않을 수 있음 / IP 주소의 부족
▶ NAT 가능 라우터는 NAT translation table을 가지고 해당 table에 IP 주소와 포트 번호를 포함시켜 저장. 해당 라우터는 외부로부터 보기에는 하나의 장치로 동작.
▶ NAT 반대 근거 : 라우터가 3계층 까지만 처리한다는 가정. IPv6로 주소 부족을 해결. 종단간 논의를 해침(중간 노드 주소 없이 통신 가능해야 함). P2P와의 충돌 - 해당 host가 NAT 뒤에 있는 경우 서버로서의 연결이 불가능.
- IPv6
▶ priority : 해당 data flow의 우선순위
▶ flow label : 실시간 서비스 같은 특저 흐름에 속하는 패킷의 라벨링
▶ next header : 트랜스포트 계층의 프로토콜 종류
▶ 주소 크기 128 bits로 증가
○ IPv4 에서 IPv6 로의 번역
tunneling: IPv6 데이터그램은 IPv4의 내부 요소로 IPv4 라우터를 지나게 됨
'Computer Networking' 카테고리의 다른 글
5.3 intra-AS protocol (0) 2018.12.17 5.2 Routing protocols (0) 2018.12.17 4.2 What's inside a router (0) 2018.12.14 4.1 Network Layer 개요 (0) 2018.12.14 3.7 TCP congestion control (0) 2018.12.14