码迷,mamicode.com
首页 > 其他好文 > 详细

TCP协议总结

时间:2017-11-27 23:38:21      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:拥塞避免   请求   连续   发送   导致   防止   三次握手   不同   tcp   

TCP协议是有连接且可靠的传输层协议。所以一切都是围绕面向连接和可靠展开的。

面向连接:

连接的建立:三次握手,标志位的变化,及状态变化。发送端状态变化SYN_SENT-->ESTABLISHED;接收端状态变化Listen-->SYN_RCVD-->ESTABLISHED。

引入的问题:SYN_FLOOD攻击,伪装IP地址向服务器端发送大量SYN,服务器端维护一个半连接队列,耗尽其资源(服务器端要等待1+2+4+8+16+32=63s才会将这个请求移出队列)。解决方法?

连接的保持:保活定时器。保持定时器(防止窗口更新报文丢失,窗口关闭时开启计时,超时后连续三次主动探测接收端的窗口大小)。

连接的关闭:四次挥手。发送端状态切换FIN_WAIT1-->FIN_WAIT_2(半关闭状态,为何要有半关闭)-->TIME_WAIT(2MSL);接收端状态切换CLOSE_WAIT-->LAST_ACK-->CLOSED

 

可靠:

ACK:确认报文保证不丢包。SACK

超时重传:超过RTO没有收到ACK就会重传。

校验和:其实UDP也有。检验和是一种比较弱的检验方法,其实二层已经做了CRC检测,TCP的检验和有点冗余。

流量控制:滑动窗口,但又带来了新的问题-网络中小数据包太多,导致有效载荷太小了,导致SWS,收发两端引入解决的方案,及Nagle算法。

拥塞控制:有四个算法分别在不同时期使用-慢开始(如何维护一个拥塞窗口cwnd),拥塞避免,快速重传和快速恢复。

TCP协议总结

标签:拥塞避免   请求   连续   发送   导致   防止   三次握手   不同   tcp   

原文地址:http://www.cnblogs.com/howo/p/7906411.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!