IP
인터넷(Internet)의 구조 user’s view real structure Internet as a universal network Internet Virtual, uniform one network router physical net host host user’s view real structure
인터넷 주소(IP 주소) IP 주소는 32 bits 두 부분으로 구성: net-id and host-id. 32 bits Denote a specific physical network In the Internet Denote a connection in a specific physical network
주소의 표현
IP 주소의 유형(1)
IP 주소의 유형(2)
네트워크와 주소 할당 예
Special IP addresses all 0s This host1 all 0s host Host on this net1 Directed broadcast for net2 127 anything (often 1) Loopback3
Classless Interdomain Routing(CIDR) Net-id의 길이는 임의의 길이를 갖는다. 주소는 a.b.c.d/x와 같이 표현하며 여기서 x는 net-id의 길이(bit의 수)를 나타낸다. 11001000 00010111 00010000 00000000 subnet part host 200.23.16.0/23
205.16.37.32/28의 주소 블록
다음과 같은 16개 주소 블록의 표현은?
Private address private addresses는 글로벌 인터넷에서 인식되지 않는 주소 블록이다. IP private address는 로컬 망에서는 사용한다. IP private address의 블록 10.0.0.0 ~ 10.255.255.255 172.16.0.0 ~ 172.31.255.255 192.168.0.0 ~ 192.168.255.255 Private 주소를 사용하여 글로벌 인터넷에 연결할 때는 NAT를 사용한다.
Network Address Translation(NAT)
TCP/IP 프로토콜
Link layer과 network layer 링크 계층은 노드와 노드 사이에서 프레임의 전달을 담당한다. 네트워크 계층은 목적지까지 패킷을 전송하기 위해서 경로를 결정(routing)하고 다음 노드(next hop)로 패킷을 전달한다(forwarding).
라우터에서의 패킷 처리
IPv4 packet format
헤더(1) Type of service 전체 길이 현재 사용되고 있지 않으며 앞으로 서비스 품질을 보장하기 위한 목적으로 사용할 예정이다. 전체 길이 헤더를 포함한 패킷(데이터그램)의 전체 길이 Time-to-live (8 bits) 패킷의 수명을 나타내며 실제 값은 패킷이 거쳐갈 수 있는 최대 홉수(the max. # of hops 혹은 routers)로 표시한다. 패킷이 지나갈 때 마다 라우터는 이 값을 1씩 감소시키며 만약 그 값이 0이 되면 패킷을 폐기한다.
헤더(2) Protocol 패킷 안에 전달하는 정보가 상위 계층의 어떤 프로토콜에 속한 것인지를 나타낸다.
헤더(3) Fragmentation offset Flag(3bits) Identification (16 bits) 패킷의 고유 번호로 일련 번호를 이 값으로 사용한다. 소스 노드는 패킷을 전송하며 1씩 증가시킨다. Fragmentation offset Flag(3bits)
Fragmentation과 MTU 인터넷을 구성하는 각 네트워크는 허용하는 패킷(혹은 프레임)의 최대 길이(MTU)가 정해져 있다. 만약 패킷의 길이가 MTU보다 길다면 이 네트워크를 통과하기 위해서는 MTU에 맞게 쪼개야 한다.(fragmentation)
Fragmentation 예(1)
Fragmentation 예(2)
헤더(4) Checksum
Option Options(variable) It is used for testing and debugging. The following fields are defined. Record route loose source routing strict source routing timestamp
IPv6 원래 IPv4의 주소 공간이 부족해서 주소 공간을 확장할 필요성 때문에 IPv6를 만들게 되었다. 주소를 32bits에서 128bits로 확장 주소를 확장하면서 기존의 IPv4의 문제점을 개선하기 위하여 다른 필드의 수정도 같이 이루어졌다.
IPv6 헤더와 페이로드
IPv6 헤더
IPv6의 extension headers
IPv4와 IPv6 헤더 비교 IPv4 IPv6 Version (4bits) Flow Label(20bits) (4) HLEN (4) Type of Service (8) Total Length(16) Identification(16) Flags(3) Fragment Offset(13) TTL (8) Protocol(8) Header Checksum(16) Source IP Address(32) Version (4bits) Traffic Class (8bits) Flow Label(20bits) Destination IP Address(32) Payload Length (16 bits) Next Header (8bits) Hop Limit (8bits) Source Address(128bits) Destination Address (128bits) IPv6
ARP, ICMP, IGMP
ARP(Address Resolution Protocol) 링크 계층 주소(물리 주소)와 네트워크 계층 주소(논리 주소) 간의 매핑 Ethernet은 Ethernet 주소를 갖고 프레임을 전달하고 IP는 IP 주소로 패킷을 전달한다. 따라서 IP 패킷의 IP 주소는 Ethernet으로 전달하기 위해서는 IP 주소에 해당하는 Ethernet 주소를 알아야 한다.
ARP 동작
Proxy ARP
IP 주소 설정 호스트는 네트워크에 연결되었을 때 자신의 IP 주소를 어떻게 알 수 있는가? 고정적인 주소 할당 혹은 네트워크 서버가 호스트의 고정 IP 주소를 보관하고 호스트가 주소를 물어오면 알려줄 수 있다.(BOOTP) 동적으로 주소 할당 네트워크 서버가 네트워크에 접속된 호스트가 IP 주소를 물어 왔을 때 주소를 할당해 주는 방법이 있다.(DHCP)
BOOTP에 의한 IP주소 할당
Internet Control Message Protocol(ICMP) ICMP는 IP 패킷 전달하는 과정에서 발생한 에러를 소스 노드에게 알려주거나 정보를 요청할 경우에 사용한다. Error-reporting messages Query messages
Error-reporting messages
Redirection message
Query messages
ICMP 사용 예: ping
ICMP 사용 예: tracert
Internet Group Management Protocol (IGMP) 세 가지 종류의 패킷 전달 방법 unicast multicast broadcast IGMP는 멀티캐스트 전송을 위해서 멀티캐스트 그룹 멤버들을 관리하기 위한 프로토콜이다.
ICMPv6