Lawguancong / Daily-Charging-Learning

0 stars 0 forks source link

TCP #68

Open Lawguancong opened 3 years ago

Lawguancong commented 3 years ago

tcp传输全过程(三次握手、请求、数据传输、四次挥手)

https://blog.csdn.net/sinat_21455985/article/details/53508115 https://juejin.cn/post/6844903510119546887

重要字段 状态

https://www.cnblogs.com/azraelly/archive/2012/12/25/2832393.html

总结

TCP UPD 区别

UDP

相当于发信息,不需要对方同意就可以发,也不知道对方看了短信没有。

TCP

相当于打电话,需要对方同意了接听电话,可靠,知道对方接了电话

区别

TCP 的 Keepalive 和 HTTP 的 Keep-Alive

https://mp.weixin.qq.com/s/25atTs4b-vORIx525ur_aw 在http早期,每个http请求都要求打开一个tcp socket连接,并且使用一次之后就断开这个tcp连接。 使用keep-alive可以改善这种状态,即在一次TCP连接中可以持续发送多份数据而不会断开连接。通过使用keep-alive机制,可以减少tcp连接建立次数,也意味着可以减少TIME_WAIT状态连接,以此提高性能和提高httpd服务器的吞吐率(更少的tcp连接意味着更少的系统内核调用,socket的accept()和close()调用)。 但是,keep-alive并不是免费的午餐,长时间的tcp连接容易导致系统资源无效占用。配置不当的keep-alive,有时比重复利用连接带来的损失还更大。所以,正确地设置keep-alive timeout时间非常重要。

HTTP 的 Keep-Alive 也叫 HTTP 长连接,该功能是由「应用程序」实现的,可以使得用同一个 TCP 连接来发送和接收多个 HTTP 请求/应答,减少了 HTTP 短连接带来的多次 TCP 连接建立和释放的开销。

TCP 的 Keepalive 也叫 TCP 保活机制,该功能是由「内核」实现的,当客户端和服务端长达一定时间没有进行数据交互时,内核为了确保该连接是否还有效,就会发送探测报文,来检测对方是否还在线,然后来决定是否要关闭该连接。

参考链接 https://juejin.cn/book/6844733788681928712/section/6844733788795174920 https://packetlife.net/blog/2010/jun/7/understanding-tcp-sequence-acknowledgment-numbers/