TCP与UDP

UDP

UDP是无连接的传输层协议。包内容就是IP头+UDP协议+端口号。内容简单。

TCP


源端口号和目的端口号都是16位最大65535。
序列号和ACK序列号都是随机生成,后续序列号以首包中的随机数为基数加偏移量。wireshark自动帮你转化成相对偏移量。
TCP包头长(即有效载荷在TCP包中的偏移量)一般都是20字节。如果“选项”有数据时,该值会增加。
窗口大小是TCP发送的窗口
校验和用来校验包在传输过程中是否发生错误。

累计确认。

TCP是有链接的传输层协议,所谓有连接,就是有状态,状态体现在TCP包和OS的TCP协议栈中。


1处,在wireshark的角度,少抓了个一个包seq 5337,len 1280.可能是真的未收到包,也可能是wireshark没抓到。
2处,收到乱序的包。因为该包应该在seq 6657,len 588之前收到。
3处,发送连发三个ack4097,说明触发了快速重传机制,后序又发送ack7425,说明1处是收到包了,只是wireshark没抓到而已。

三次握手

为什么会有三次握手?基于一个事实是假如C→S能来一次,那么就能再来一次。但C→S能来一次,S→C不一定能来一次。所以在S→C的ACK+SYN以后,还需要C→S一个ACK,让S知道S→C是可以的。

四次挥手

为什么挥手比握手多一次,因为建立连接时一个隐含的条件是,C、S都已经准备好了。挥手时候,只有发起方准备好了,所以被动方要等一个合适的机会跟发起方回复消息。

posted on 2021-06-23 14:18  yangras  阅读(60)  评论(0编辑  收藏  举报

导航