IP数据包的首部
Version(版本号) //如IPV4,IPV6
IHL (Inernet Header Length, IP包头的长度) 4字节为1个单位来记录
Type of Service(服务类型)
//D:若为0表示一般延迟,若为1表示为低延迟,
//T:若为0表示一般传输量,若为1表示高传输量;
//R:若为0表示一般可靠度,若为1表示高可靠度
//UU:保留尚未被使用
//PPP:表示此IP数据包的优先级,目前很少使用
Total Length(总长度)
//指这个IP数据包的总容量,包括报头与数据DATA部分,最大可达65535bytes
Identification(识别码)
//每个小IP分段是否来自同一个IP资料,那就是这个标示符的作用
Flages(特殊标志)
//这个地方的内容为“0DM”,其意义为:
D:若为0表示可以分段,若为1表示不可分段。
M:若为0表示此IP最后分段,若为1表示非最后分段、、
Fragment Offset(分段偏移)
//有点像是序号,有这个序号才能将所有的小IP分段组合成为原本的IP数据包大小。
Time To Live (TTL,生存时间)
//当这个IP数据包通过一个路由器时,TTL就会减1,当TTL为0时,这个数据包将会被直接丢弃。
Protocol Number(协议代码)
//来自传输层与网络层本身的其他数据都是放置在IP数据包中,序号对应相关的协议,如6代表TCP协议
Header Checksum(报头校验码)
//用于检查这个IP报头是否存在错误
Sourse Address(来源的IP地址)
//从这里我们也知道IP是32位的
Destination Address
//目标IP地址
Options(其他参数)
//提供包括安全处理机制、路由记录、时间戳、严格与宽松的来源路由等。
Padding(补齐项目)
//若Options的数据不足32bits时,则由Padding自动补齐
TCP数据包的首部
Source Port (源端口)
Destination Port(目标端口)
Sequence Number(数据包序列号)
//TCP太大分段时,这个记录每段的序列号,便于组合。
Acknowledge Number(回应序号)
//为了确定主机确实收到我们所发出的数据包,
Data Offset(数据补偿)
//由于Options字段是非固定的们为了要确认整个TCP数据包的大小,就需要这个标志来说明整个数据包字段的起始位置。
Reserver(保留)
//未使用的字段
Code (Control Flag,控制标志码)
//当我们进行网络连接的时候,必须要说明这个连接的状态,好让接受端了解这个数据包的主要动作。共有6个bits,分别代表6个句柄,若为1则为启动:
URG(Urgent)
//若为1则代表该数据包为紧急数据包,接受端应该紧急处理,此时Urgent Pointer会被启用
ACK(Acknowledge)
//若为1则代表这个数据包为响应数据包,则与Acknowledge Number有关
PSH(Push function)
//若为1,代表要求对方立即传送缓冲区内的其他对应数据包,而无需等待缓冲区满了才发送
RST(Reset)
//若为1时,代表连接马上结束,而无需等待终止确认手续,
SYN(Synchronous)
//若为1,代表发送端希望双方建立同步处理,也就是要求建立连接,通常带有SYN的数据包表示“主动”要连接到对方的意思
FIN(Finish)
/若为1,代表传送结束,所以通知对方数据传送完毕,是否同意断线,知识发送者还在等待对方的响应而已。
Window(滑动窗口)
//控制数据包的流量,可以告诉对方目前本机的缓冲器还可以接收的数据包,当其为0时表示缓冲器已满,所以应该要暂停传送数据
Checksum(确认校验码)
//当数据送出前,会进行一个校验动作,并将该动作标注在字段上,接收者接收到后,会再次验证,相符就接收。
Urgent Pointer(紧急数据)
//同URG
Options(其他参数)
//提供包括安全处理机制、路由记录、时间戳、严格与宽松的来源路由等。
Padding(补齐项目)
//若Options的数据不足32bits时,则由Padding自动补齐