1 분 소요

ipheader

excalidraw

IP 헤더

버전
  • IP 버전 나타내는 4비트 필드.
  • IPv4에선 4가 들어간다.
헤더길이
  • 헤더길이 나타내는 4비트 필드
  • Internet Header Length(IHL)라고 부르기도 함
  • 단말은 이를 보고 어디까지가 헤더인지 알 수 있음
  • 헤더길이는 IPv4 헤더의 길이를 4바이트 단위로 환산한 값이 들어감
  • IPv4 헤더 길이는 기본적으로 20바이트 이므로 5가 들어감
ToS
  • Type of Service는 IPv4 패킷 우선도(priority) 나타내는 1바이트 필드
  • 제어나 대역제어 등 QoS(Quality of Service) 에 사용됨
  • 앞 6비트 DSCP 필드
    • 우선 제어, 대역 제어에 사용
  • 남은 2비트 ECN 필드로 구성
    • 혼잡 알릴 때 사용
패킷 길이
  • IPv4 헤더와 페이로드 합친 패킷 전체의 길이 2바이트이다.
식별자(Identification)
  • 패킷마다 부여되는 고유 번호, 2바이트로 구성
  • 패킷교환 통신은 송수신하기 쉽도록 작게 나누어 송신
  • IP 프래그멘테이션(IPfragmentation)
    • IP를 작게 나누는 처리
  • 3계층의 MTU(Maximum Transmission Unit)에 따라 해당 크기만큼 프래그멘테이션로 나눔
  • 나중에 식별자를 이용해 재조립한다.
플래그
  • 3비트로 구성
  • 1번째 비트 사용X, 2번째 비트 DF(Don’t Frangment)비트라 부름
    • 프래그멘테이션 0 == true 1 == false
    • 최근에는 성능 문제로 DF를 1로 설정해 상위 계층서 크기 조절함
  • 3번째 비트 MF(More Fragment)
    • 프래그멘테이션된 패킷이 뒤에 더 있는가
    • 0 == false 1 == true
프래그먼트 오프셋
  • 프래그멘테이션 한 뒤 해당 패킷이 기존 패킷 앞쪽부터 어느 위치에 있는지 나타내는 13비트 필드
  • 이것을 보고 원래 위치로 재조립 됨
TTL(Time To Live)
  • 패킷 수명 나타내는 1바이트 필드
  • 경유하는 라우터의 수(hop) 나타냄
  • 라우터 지날 때 마다 1씩 줄어 0되면 삭제
  • 패킷파기하면 라우터는 Time-tolive exceed 반환하고 패킷 파기한걸 송신지 단말에 전달
프로토콜 번호
  • IPv4 페이로드가 어떤 프로토콜로 구성되있는지 나타내는 1바이트 필드
헤더 체크섬(header checksum)
  • 헤더의 오류 체크에 쓰는 2바이트 필드
  • RFC1071 에 정의되있으며 1의 보수 연산 이라는 계산 방법 채용
송신지/수신지 IPv4 주소
  • 4바이트 식별 아이디
  • 기기종류에 따라 여러 IP 가질 수 있음
  • 네트워크 필드 및 호스트 주소에 따라 a,b,c, 클래스로 나뉨
    • 사설ip, 공인ip
      • 로컬이 외부 공용 네트워크와 통신하려면 공인ip 주소 사용해야함
  •  D 및 클래스 E 주소가 있지만, 이는 각각 멀티캐스트 주소와 예약된 주소
    • 네트워킹 장치나 호스트에 할당 못함
옵션
  • IPv4 송신에 대한 확장 기능 저장한 가변 길이 필드
  • 실무에서 쓰인걸 보지 못했다함
패딩(padding)
  • IPv4 헤더의 비트 수 정렬 위해 사용되는 필드
  • IPv4는 4바이트 단위여야 함
  • 아니면 0을 추가해 4바이트 정수배가 되도록 함

Mac주소와 IP 주소 모두 필요한 이유

MAC Address는 NIC에 할당 된 물리적 주소 - 어떤 기기에 프레임 전달하지?
IP주소는 OS에 할당된 논리적 주소 - 어디에 패킷 전달하지?
이 두 주소를 연결하는 다리가 ARP

데이터 링크 계층- 이더넷
네트워크 계층 - IP 이기 때문에 양쪽 주소가 필요함
데이터링크 계층에서 PPP사용하면 MAC은 필요없음

댓글남기기