数据结构
typedef struct tcp_hdr{
u_short sport:16; // 源端口号
u_short dport:16; // 目标端口号
u_int seq:32; // 序列值
u_int ack:32; // 确认
u_char head_len:4; // 头部长度
u_char reserved:4; // 保留字段
u_char flags:8;
u_short wind_size:16; // 窗口大小
u_short check_sum:16; // 校验和
u_short urg_ptr:16; // 紧急指针
}__attribute__((packed)) tcp_hdr;
tcp_hdr *tcp;
最大段大小选项
MSS 是指TCP协议所允许的从对方接收到的最大报文段。
最大段大小只记录TCP数据的字节数而不包括TCP和IP的头部。
通信双方在SYN数据段中指明该大小,默认值是536字节(20+20+536=576)。
通常最大段的数值都是1460,因为1500是以太网中的最大传输单元,减去IP头部20字节、TCP头部20字节。
总结:最大段大小是一个限定的数值,表示不愿意在整个连接中接收任何大于该尺寸的报文段。
选择确认选项
作用:数据传输的过程中会发生丢包,接收方需要告诉发送方乱序的数据。SACK信息