IP 헤더
끊어진 부분 넘기고 실시간 : UDP -> 일반우편
끊어져도 이어서 : TCP -> 등기우편
OSI 7 Layer TCP/IP 4 Layer
7 응용
6 표현 응용 4
5 세션
4 전송 전송 3
3 네트워크 인터넷 2
2 데이터링크 네트워크 엑세스 1
1 물리
Ethernet
UTP 케이블 100BaseTx
Network Access : Ethernet, TokenBus, TokenRing - LAN
PPP, HDLC, Frame-Relay - WAN
IP
신뢰성이 없다.(TCP가 신뢰성을 채워줌)
비연결성 데이터그램 방식
패킷의 완전한 전달(소실,중복,지연,순서바뀜) 을 보장하지 않음
조각나는 행위 자체 : 단편화
각 4계층 TCP Segmentation 분할(체계)
3계층 IP Flagmentation 조각(예상외)
IPv4 32bit 43억개 IP주소 고갈문제
IPv6 128bit 43억 X 43억 X 43억 X 43억
IP공유기(NAT)
IPv4
Header Length(HLEN) (4 bits) 가변적
- 헤더의 길이
32비트(4 바이트) 워드 단위로 헤더 길이를 표시
- 길이 값 표현
최소 5 (4 x 5 = 20 바이트)부터 15(4 x 15 = 60 바이트,옵션 포함된 경우)까지의 값
2번째 4비트 부터 읽어서 TPC가 어디에 위치한지 알 수 있다.
0100 0101
0100 1111
DSCP는 우선순위, 드롭순위
3bit 2bit
000 0 00 0
111 7 11 3
0~7 0~3
IP packet 최대 MTU 65535Byte 입니다.
Ethernet 환경에서 MTU 1500Byte 제한
ping 168.126.63.1 L3 ICMP
<--- 20Byte --> <-----8Byte------> <-1472Byte->
(IP 168.126.63.1 (ICMP Echo-Request (Padding)))
ABCDABCDABCD......
A B C D
1010 1011 1100 1101
(IP, 20 (ICMP, 8 (Pad, 1472))) 1Packet
(IP, 20 (ICMP, 8 (Pad, 1473)))
-> (IP, 20 (ICMP, 8 (Pad, 1472))) 2Packet
(IP, 20 (Pad, 1)))
identifier 조각이 났을경우 재 조립을 위해 같은 값으로 생김
- flags : 잘라졌을경우 그뒤에 더 있는지 표시해줌
- fragment offset : 잘라졌을때 어느위치에 잘라진걸 넣는지 표시해줌
TTL time to live (8비트) : 라우터를 하나 거칠때마다 1씩 까짐
-> 무한이 도는 패킷을 방지함(루핑방지)
윈도우는 128시작
리눅스 64시작
(IP, 6 (TCP, 80 (HTTP)))
(IP, 17 (UDP, 53 (DNS)))
(IP, 1 (ICMP, ... (....)))
Protocol ID
IP 헤더뒤 있는 데이터가 어떤 종류의 데이터
하위계층 이어지는 상위계층 프로토콜 정보
4bit 0 ~ 15
8bit 0 ~ 255
16bit 0 ~ 65535
24bit 0 ~ 1600만
32bit 0 ~ 43억
Protocol Identifier (8bits)
/etc/protocols -> (IP뒤에 어떤 프로토콜이 있는지)
/etc/services -> (IP, 6 (TCP, ? (????)))
Header Checksum