network

[network] 혼자 공부하는 네트워크 03-1 IP(인터넷 프로토콜) (240806)

hail2y 2024. 8. 6. 19:57

네트워크 계층의 핵심, 인터넷 프로토콜(IP)

  • 물리 계층, 데이터 링크 계층의 한계를 극복하는 프로토콜
  • IP 버전 4(IPv4)와 IP 버전 6(IPv6)
    - 오늘날까지는 IPv4가 주로 사용

IP의 공식적인 두 기능

  • 주소 지정(IP addressing)
  • 단편화(IP fragmentation)

* RFC 791

https://datatracker.ietf.org/doc/html/rfc791

* RFC(Request for Comments)

- 네트워크/인터넷 관련 신기술 제안, 의견 등을 남긴 문서

- 일부 RFC는 오늘날까지 사용되는 인터넷 표준이 됨

- 이러한 RFC문서에는 위와 같이 번호가 부여됨

- 새 RFC 문서로 개정 출판이 될지언정, 폐지되거나 수정되지 않음

 

IP의 기능 1. 주소 지정

  • IP 주소(IPv4 주소)를 바탕으로 송수신 대상을 지정하는 것을 의미
  • 4바이트(32bit)로 하나의 주소를 표현
  • 숫자당 8비트로 표현: 0~255 범위 안에 있는 네 개의 10진수로 표기
  • 각 숫자는 점(.)으로 구분
    - 점으로 구분된 8비트(0~255 범위의 10진수)를 옥텟(octet)이라 함

https://velog.io/@satoshi25/IP-%EC%A3%BC%EC%86%8C

IP의 기능 2. 단편화

  • 전송하고자 하는 패킷의 크기를 MTU 이하의 복수의 패킷으로 나누는 것
  • MTU(Maximum Transmission Unit): 한 번에 전송 가능한 IP 패킷의 최대 크기
    - IP 패킷의 헤더도 MTU 크기에 포함
    - 일반적인 MTU 크기는 1500 바이트, MTU 크기 이하로 나누어진 패킷은 수신지에 도착하면 다시 재조합
    - 1500 바이트는 페이로드에 명시할 수 있는 '일반적인 데이터 크기'였음

https://velog.io/@moonblue/%EC%9D%B4%EB%8D%94%EB%84%B7-%ED%94%84%EB%A0%88%EC%9E%84-Ethernet-Frame

 

 

[network] 혼자 공부하는 네트워크 02-1 이더넷 프레임 (240710)

지난 글에 이어서... 1. 물리 계층 관련 이더넷 기술 (통신 매체, 케이블) 2. 데이터 링크 계층 관련 이더넷 기술 (이더넷 프레임 형식) -- 현재 글에서 다룰 내용 이더넷 프레임(데이터 링크 계층)

hail2y.tistory.com

https://hail2y.tistory.com/80 글에 올렸던 이더넷 프레임의 Data 부분을 확장하면 아래의 그림처럼 표현할 수 있다. 정확히 말하면, IPv4의 패킷 헤더와 IPv4의 패킷 페이로드로 구성된 형태로 여러 개의 필드로 이루어져 있다. 

http://www.ktword.co.kr/test/view/view.php?no=5236

IPv4 패킷의 핵심 필드

  1. 식별자(Identifier)
  2. 플래그(Flags)
  3. 단편화 오프셋(Fragment Offset)
  4. TTL(Time to Live)
  5. 프로토콜 (Protocol ID)
  6. 송신지 IP 주소(Source IP Address)
  7. 수신지 IP 주소(Destination IP Address)

단편화 관련 필드 ① 식별자 (Identifier)

  • 패킷에 할당된 번호
  • 쪼개져서 도착한 IPv4 패킷들이 어떤 메시지에서 쪼개졌는지를 알기 위해 사용
  • 각 조각이 동일한 데이터그램에 속하면 같은 일련번호를 공유함

단편화 관련 필드 ②  플래그 (flags) - 세 개의 비트로 구성

  • 첫 번째 비트는 항상 0: 현재 사용되지 않음
  • DF 비트 (Don't fragment) - IP 단편화를 수행하지 말라는 표시
    if 1, IP 단편화를 수행하지 말라는 뜻 -- 목적지 컴퓨터가 조각들을 다시 모을 능력이 없기 때문에 중간 라우터들에게 의사 전달
    if 0, IP 단편화 가능함
  • MF 비트 (More fragment) - 단편화된 패킷이 더 있다는 표시
    if 1, 쪼개진 패킷이 아직 더 있다는 뜻
    if 0, 이 패킷이 마지막 패킷이다

단편화 관련 필드 단편화 오프셋 (fragment offset)

  • 초기 데이터에서 몇 번째로 떨어진 패킷인지를 나타냄
  • 단편화되어 전송되는 패킷들은 수신지에 순서대로 도착하지 않을 수 있음
  • 수신지가 패킷들을 순서대로 재조합하려면 단편화된 패킷이 초기 데이터에서 몇 번째에 해당하는 패킷인지 알아야 함

TTL (Time to Live)

  • 패킷의 수명
  • 무의미한 패킷이 네트워크 상에 지속적으로 남아있는 것을 방지하기 위해 존재
  • 패킷이 하나의 라우터를 거칠 때마다 TTL이 1씩 감소, TTL 값이 0이 되면 폐기
  • 홉(hop): 패킷이 호스트 또는 라우터에 한 번 전달되는 것
    = TTL 필드의 값이 홉마다 1씩 감소

https://www.scylladb.com/glossary/ttl-value/

프로토콜 (Protocol ID)

  • 상위 계층의 프로토콜이 무엇인지를 나타내는 필드
  • 상위 계층의 어떤 프로토콜을 캡슐화했는지를 나타냄
  • 이더넷 프레임의 '타입/길이' 필드와 비슷함
  • ex. 전송 계층의 대표적인 프로토콜인 TCP는 6번, UDP는 17번

주소 관련 필드 ➅ 송신지 IP 주소

주소 관련 필드 신지 IP 주소

  • IPv4(32bit)의 경우 할당 가능한 주소의 개수는 2^32개로 약 43억 개
  • 이 숫자는 전 세계 인구를 대상으로 했을 때 부족한 숫자이므로 다른 대안이 필요

아래의 사진은 와이어샤크에서 이러한 IPv4 패킷 헤더 필드들이 어떻게 표시되는지를 보여준다. 

https://networklessons.com/cisco/ccna-routing-switching-icnd1-100-105/ipv4-packet-header

IPv6

    • 16바이트(128bit)로 주소 표현 가능
    • 콜론으로 구분된 8개의 그룹의 16진수로 표기
    • 이론적으로 할당 가능한 주소의 개수는 2^128개로 사실상 무한에 가까운 수

http://www.ktword.co.kr/test/view/view.php?no=3251

패킷 헤더를 전체적으로 비교해 보면 아래와 같다. 

https://www.networkacademy.io/ccna/ipv6/ipv4-vs-ipv6

 

IPv6 패킷의 핵심 필드

  1. 다음 헤더
  2. 홉 제한
  3. 송신지 IP 주소
  4. 수신지 IP 주소

다음 헤더 (next header)

  • 상위 계층의 프로토콜 또는 확장 헤더를 가리키는 필드
  • 확장 헤더 (extension header)
    - IPv6는 기본 헤더와 더불어 확장 헤더라는 추가 헤더를 가질 수 있음
    - 확장 헤더는 기본 헤더와 페이로드 데이터 사이에 위치
    - 마치 꼬리에 꼬리를 물 듯 또 다른 확장 헤더를 가질 수도 있음
    - IPv6는 확장 헤더의 유형 중 '단편화 확장 헤더'를 통해 단편화가 이루어짐

http://www.ktword.co.kr/test/view/view.php?m_temp1=3252&id=1065
https://www.youtube.com/watch?v=bI8woqPQFWg&t=30s

홉 제한 (hop limit)

  • IPv4 패킷의 TTL 필드와 비슷
  • 패킷의 수명을 나타내는 필드

송신지 IP 주소

수신지 IP 주소

 

https://terms.tta.or.kr/dictionary/dictionaryView.do?subject=IP+%EB%B2%84%EC%A0%84+4