> 운영 및 유지보수 > 리눅스 운영 및 유지 관리 > 리눅스에서 iphdr이란 무엇입니까?

리눅스에서 iphdr이란 무엇입니까?

WBOY
풀어 주다: 2022-07-15 15:35:07
원래의
2708명이 탐색했습니다.

Linux에서 iphdr은 ip 데이터 패킷의 설명 구조입니다. iphdr이 있는 헤더 파일은 "/usr/src/linux/include/linux/ip.h"이며 구조는 데이터 배치로 구성됩니다. 구조적 데이터, 구조화된 데이터를 구성하는 각 데이터 조각을 구조적 데이터의 구성원이라고 하며, 이는 메모리 간격의 크기와 해석 의미를 설명합니다.

리눅스에서 iphdr이란 무엇입니까?

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

Linux에서 iphdr은 무엇인가요?

iphdr은 컴퓨터 용어입니다. Linux에서의 IP 데이터 패킷의 설명 구조이다.

헤더 파일은 /usr/src/linux/include/linux/ip.h이며, 구조는 다음과 같습니다.

struct iphdr {
#if defined(__LITTLE_ENDIAN_BITFIELD) //小端模式下
    __u8 ihl:4,//首部长度(4位)
        version:4;//ip协议版本IPv4
#elif defined (__BIG_ENDIAN_BITFIELD) //大端模式下
    __u8 version:4,
        ihl:4;
#else
#error "Please fix <asm/byteorder.h>"
#endif
    __u8 tos;//服务类型字段(8位)
    __be16 tot_len;//16位IP数据报总长度
    __be16 id;//16位标识字段(唯一表示主机发送的每一分数据报)
    __be16 frag_off;//(3位分段标志+13位分段偏移数)
    __u8 ttl;//8位数据报生存时间
    __u8 protocol;//协议字段(8位)
    __be16 check;//16位首部校验
    __be32 saddr; //源IP地址
    __be32 daddr; //目的IP地址
};
로그인 후 복사

리눅스에서 iphdr이란 무엇입니까?

Extended Knowledge

iphdr->version

버전(4 숫자), 현재 프로토콜 버전 번호는 4이므로 IP를 IPv4라고도 합니다.

iphdr->ihl

헤더 길이(4비트): 헤더 길이는 IP 계층 헤더에 있는 32비트 단어의 수(즉, IP 계층에 4바이트~32비트가 몇 개 포함되는지를 나타냅니다) 헤더)(모든 옵션 포함). 4비트 필드이므로 헤더의 길이는 최대 60바이트일 수 있습니다. 일반 IP 데이터그램(옵션 없음) 필드의 값은 5 5 * 32 / 8 = 5 * 4 = 20바이트입니다.

iphdr->tos

서비스 유형 필드(8비트): 서비스 유형(TOS) 필드에는 3비트 우선 순위 하위 필드(현재 무시됨), 4비트 TOS 하위 필드 및 사용되지 않는 1비트가 포함됩니다. 비트이지만 0으로 설정되어야 합니다. 4비트 TOS 하위 필드는 최소 지연, 최대 처리량, 최대 신뢰성 및 최소 비용을 나타냅니다. 4비트 중 1비트만 설정할 수 있습니다. 4비트가 모두 0이면 정상적인 서비스를 의미한다.

iphdr->tot_len

전체 길이 필드(16비트)는 전체 IP 데이터그램의 길이(바이트)를 나타냅니다. 헤더 길이 필드와 전체 길이 필드를 사용하면 IP 데이터그램의 데이터 내용의 시작 위치와 길이를 알 수 있습니다. 이 필드는 16비트 길이이므로 IP 데이터그램의 길이는 최대 65535바이트일 수 있습니다. 일부 데이터 링크(예: 이더넷)는 최소 길이에 도달하기 위해 일부 데이터를 채워야 하기 때문에 전체 길이 필드는 IP 헤더에 필요한 내용입니다. 길이. 이더넷의 최소 프레임 길이는 46바이트이지만 IP 데이터는 더 짧을 수 있습니다. 전체 길이 필드가 없으면 IP 계층은 46바이트 중 IP 데이터그램의 내용이 얼마나 되는지 알 수 없습니다.

iphdr->id

식별 필드(16비트)는 호스트가 보낸 각 데이터그램을 고유하게 식별합니다. 일반적으로 해당 값은 메시지가 전송될 때마다 1씩 증가합니다.

추천 학습: Linux 비디오 튜토리얼

위 내용은 리눅스에서 iphdr이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿