Without a Break

Internet Protocol 본문

Network/네트워크보안과프로그래밍

Internet Protocol

와븨 2022. 9. 24. 23:28

IP 헤더

  • 20byte
  • 16비트 전체 길이(total length) : IP 데이터그램의 총 바이트 길이. 전체길이-헤더길이=데이터 부분의 실제 크기
  • 16비트 식별자(identification) : 한 호스트에 의해 보내지는 각 데이터그램을 식별하기 위해 사용. 데이터 그램을 보내는 순서에 따라 1씩 증가
  • 3비트 플래그 (flags)
  • 13비트 분할 오프셋 : fragment의 시작 위치를 표시
  • TTL(Time-to live: 8-bit) : 데이터그램의 수명을 제한(라우터 경유 시 1씩 감소) => 패킷이 라우팅 과정에서 루프에 빠지는 것을 방치하기 위한 것
  • 프로토콜(8-bit) : 어느 프로토콜이 IP로 데이터를 보냈는 가를 구분하기 위한 것 => Demultiplexing을 하기 위한 것
  • header checksum(16bit)
  • Source IP address, destination address : 각각 32비트
  • PAD (Option) : IP 헤더가 32비트의 배수가 되도록 하기 위하여 사용


빅 엔디안

  • 낮은 주소에 높은 바이트부터 저장 (Most Significant Bit, MSB)
  • 평소 사용하는 방식과 같음
  • 소켓 통신에 사용


리틀 엔디안

  • 낮은 주소에 데이터의 낮은 바이트부터 저장 (Least Significant Bit, LSB)
  • X86-64 CPU 계열
  • 소켓 사용을 위해서 데이터 배열을 변경


IP 헤더 필드

  • 프로토콜 버전(4bit) - IPv4
  • 헤더 길이 (4bit) : 60바이트까지 제한 (Option+Header length)
  • 서비스 유형 필드 (TOS: Type-of service) : 8bit선행필드(3bit), TOS(4bit), 비사용 비트(1bit)
8bit선행필드(3bit) 현재 무시
TOS(4bit) - 최소 지연, 최대 처리율, 최대 신뢰성, 최소 비용
- 하나만 선택 가능
- 4bit 모두 0일 시 표준 서비스 제공
비사용 비트(1bit) 사용하지 않는 비트


TOS example

  • minimum delay (빠른 응답 요구) : Telnet, rlogin
  • maximum throughput (최대 처리율 요구) : FTP
  • maximum reliability (최대 신뢰성 요구) : SNMP, routing protocol
  • minimize monetary cost (최소 비용 요구) : NNTP


Option
데이터그램에 대한 가변길이 정보

  • 보안과 제한 사항
  • 레코드 route : 각 router가 자신의 IP 주소 기록
  • time stamp : 각 router가 자신의 IP 주소와 time 기록
  • loose source routing : 데이터그램이 거쳐야 하는 IP 주소 기록
  • strict source routing : 데이터그램은 기록된 IP 주소를 따라 목적지까지 감

 

IP Routing

  • 호스트와 목적지가 직접 연결되어 있거나 공유된 네트워크일 경우, 목적지로 직접 전송
  • 호스트와 목적지가 직접 연결되어 있거나 공유된 네트워크가 아닐 경우, 데이터그램을 디폴트 라우터로 보낸 후, 라우터가 목적지로 직접 전송
  • IP layer가 상위 계층(TCP, UDP, ICMP, IGMP) 혹은 Network Interface로부터 datagram을 받았을 때, 메모리 내의 routing table 검사 후 전송


Routing table이 갖고 있는 정보

  • 목적지 IP 주소 : host or network address
  • next-hop router 혹은 직접 접속된 네트워크의 IP 주소
  • flags : 목적지 IP 주소가 네트워크인지 호스트인지 식별, next-hop router address가 실제 라우터인지 직접 접속된 인터페이스인지 식별
  • 전송을 위해 datagram을 넘겨 줄 network interface specification


IP routing

목적지 IP 주소 = IP 주소 일 경우 next-hop router나 직접 접속된 interface로 패킷을 전송
목적지 network ID = network ID 일 경우 next-hop router나 직접 접속된 interface로 패킷을 전송
Routing table에서 "default"를 찾은 경우 지시된 next-hop router로 패킷을 전송
위 3개에서 일치하는 것이 없을 경우 - datagram 폐기
- "host unreachable" or network unreachable" 메세지가 해당 application에게 return

bsdi(송신자)

  • routing table search. Host or network entry와 매치되지 않음. 따라서 default 사용
  • ARP 후 sun에게 전달

Sun(router)

  • 목적지 주소가 자신이 아니고 라우터의 기능을 갖고 있으므로 datagram을 forward
  • routing table search. Host or network entry와 매치되지 않음. 따라서 default 사용하여 netb에게 전달

Netb(router)

  • sun과 동일한 절차를 따르지만 default를 사용하여 gateway에게 전달하고자 할때 ARP를 사용하여 Enet.Address를 구함

Gateway(router)

  • Sun과 Netb와 동일한 절차를 따름. default를 사용하여 next-hop router인 140252.104.2에게 datagram을 forward

Key points

  • 모든 host와 router는 default를 사용
  • 목적지 IP 주소는 변겨오디지 않으며, 모든 routing의 기준이 됨
  • 각 link별로 다른 link header와 link address가 사용

 

Subnet Addressing

  • RFC 950
  • host ID 부분을 subnet ID와 host ID로 나누어 사용
  • Subnet 장점 : routing table의 크기를 줄일 수 있다

 

Subnet Mask

  • subnetID와 hostID에 몇 bit가 할당되는 지를 결정하기 위해 사용 (32-bit)
  • 일반적으로 IP 주소는 dotted-decimal notation으로 표기하나 subnet mask는 hexdecimal(16진수)로 표현
  • IP 주소와 subnet mask를 이용하면 같은 subnet인지, 같은 network의 다른 subnet인지, 다른 network인지를 알 수 있다.

 

ifconfig 명령어

  • 물리적 네트워크 인터페이스 및 할당된 인터페이스 주소에 대한 정보 제공 : 인터페이스 동작이 정상적인지, 패킷 수신이 준비 되었는지, 네트워크 인터페이스 소프트웨어가 정상적으로 설치되었는지
  • Option : -a (모든 인터페이스를 알려줌)

 

netstat 명령

시스템 인터페이스에 대한 정보 제공

  • MTU, 입력 패킷 개수, 입력 에러 개수, 출력 패킷 개수, 출력 에러 개수, 충돌 개수, 현재 출력 큐의 크기

Option

-i 인터페이스 정보 출력
-n 호스트 이름 대신 IP 주소 출력

 

IP의 미래

IP의 세 가지 문제점

  • 현재의 IP 할당 속도가 매우 빠름
  • 32비트 주소공간이 장기적으로 부적당
  • 현재의 라우팅 구조에서 라우팅 테이블의 크기 증가 문제 - CIDR에서 대안 제시


IPv4

  • 32bit 주소 사용
  • TCP, UDP, ICMP, IGMP를 위한 패킷 전송 서비스 제공
  • 멀티캐스팅 옵션으로 제공


IPv6

  • IPv4를 대신하기 위하여 1990년대 중반에 설계
  • 128bit 주소
  • TCP, UDP, ICMPv6를 위한 패킷 전송 서비스 제공
  • ICMPv6=ICMP+IGMP+ARP

'Network > 네트워크보안과프로그래밍' 카테고리의 다른 글

TCP: Transmission Control Protocol  (0) 2022.09.30
UDP: User Datagram Protocol  (0) 2022.09.30
Address Resolution Protocol, ARP  (0) 2022.09.27
Link Layer  (0) 2022.09.24
Introduction  (0) 2022.09.24