linux网络编程之IP协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)和TCP、UDP协议头结构总结

133 阅读1分钟

首先声明,这篇博客是几篇博客转载然后总结在一起的,只当是学习笔记,不在意是什么原创和转载了,学到东西就好。

1、IP协议首部格式(IP协议处余网络层)

 

IP数据报首部图片格式:
最高位在左边,记为0 bit;最低位在右边,记为31 bit

 

头部代码结构如下

 

//定义IP首部

typedef struct _iphdr{

unsigned char h_lenver; //4 位IP版本号+4位首部长度

unsigned char tos; //8位服务类型TOS

unsigned short total_len; //16位IP包总长度(字节)

unsigned short ident; //1 6位标识, 用于辅助IP包的拆装

unsigned short frag_and_flags; //3位标志位+13位偏移位, 也是用于IP包的拆装

unsigned char ttl; //8位IP包生存时间 TTL

unsigned char proto; //8位协议 (TCP, UDP 或其他)

unsigned short checksum; //16位IP首部校验和,最初置零,等所有包头都填写正确后,计算并替换.

unsigned int sourceIP; //32位源IP地址

unsigned int de