二、TCP HEAD
tcp的每次交互都会携带一个 head 头,了解TCP head 的组成可以加深对TCP协议的了解
在T C P首部中有 6个标志比特, 它们中的多个可同时被设置为 1
URG: 紧急指针( 这个值置为1时 , urgent pointer)有效。
ACK: 确认序号有效(这个值置为1时 ,Sequence number有效)。
PSH : 接收方应该尽快将这个报文段交给应用层。
RST : 重建连接。
SYN : 同步序号用来发起一个连接。
FIN : 发端完成发送任务。
序列号(Sequence number): 单位字节数 byte
确认号(ACKnowledgment number): 单位字节数 byte
窗口大小(Window Size)
校验和(Checksum):
紧急指针(urgent pointer):
三、UDP
往内核添加数据(hello)
memcpy(buffer, "hello", strlen("hello"))
1.sendto(buffer)
udp: ethdr(以太坊头) + iphdr(ip头)+ udphdr(udp头) +"hello"
udphdr(udp头) 包含: sport(源端口号), dport(目标端口号), length(长度), crc(校验值)
四、TCP状态迁移图
状态迁移流程:
总结