[Network] IPv4 Header
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 주소 사용해야함
- 사설ip, 공인ip
- D 및 클래스 E 주소가 있지만, 이는 각각 멀티캐스트 주소와 예약된 주소
- 네트워킹 장치나 호스트에 할당 못함
옵션
- IPv4 송신에 대한 확장 기능 저장한 가변 길이 필드
- 실무에서 쓰인걸 보지 못했다함
패딩(padding)
- IPv4 헤더의 비트 수 정렬 위해 사용되는 필드
- IPv4는 4바이트 단위여야 함
- 아니면 0을 추가해 4바이트 정수배가 되도록 함
Mac주소와 IP 주소 모두 필요한 이유
MAC Address는 NIC에 할당 된 물리적 주소 - 어떤 기기에 프레임 전달하지?
IP주소는 OS에 할당된 논리적 주소 - 어디에 패킷 전달하지?
이 두 주소를 연결하는 다리가 ARP데이터 링크 계층- 이더넷
네트워크 계층 - IP 이기 때문에 양쪽 주소가 필요함
데이터링크 계층에서 PPP사용하면 MAC은 필요없음
댓글남기기