(1)TCP报文
//可以看到TCP报文头部是固定的,数据部分就不知道了。
1.两个端口号总和4个字节,
2.序列号4个字节
3.确认号4个字节
4.(4位首部长度+6位保留+6位报文类型) 2个字节+窗口大小两个字节 ==> 4个字节
5. 检验和2个字节+紧急指针2个字节 ==> 四个字节
6.选项部分,最多40字节
==> TCP首部大小范围 (20字节到60字节)
(2)UDP报文
1.原端口+目的端口=4个字节
2.长度+校验值=4个字节
==> UDP首部大小固定(8个字节)
(3)IP报文
1.(版本+首部长度+区分服务)2字节+总长度2字节=4字节
2. 标识2字节+(标志+片偏移)2字节=4字节
3.(生存时间+协议)2字节+首部检验和2字节=4字节
4. 原IP地址4字节
5. 目的地址4字节
6.可选字段可变。。。
==> IP首部大小(20字节以上)
(4)TCP出现大量close_wait或者time_wait
//看下四次挥手的图:
以主动断开方为客户端为例子(一般情况下都是)
1.服务端发现客户端要FIN分手了,反手ACK表示知道,就进入了CLOSE_WAIT. 但是还没读完所有的数据,且还没关闭输入输出流。然后发现程序员尽然没写,阻塞。(重发出现大量。。)
2.接上面,服务端关闭流后,也发现FI