• TCP协议总结


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

    面向连接

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

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

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

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

    可靠

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

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

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

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

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

  • 相关阅读:
    什么是MSI文件?
    学习window系统下的注册表
    AngularJS学习手册
    学习ajax 总结
    jquery基础教程读书总结
    overflow:hidden清除浮动原理解析及清除浮动常用方法总结
    javascript进阶-原型prototype
    javascript-函数进阶
    小技巧之a标签自动解析URL
    Myeclipse出现 java文件中文乱码问题
  • 原文地址:https://www.cnblogs.com/howo/p/7906411.html
Copyright © 2020-2023  润新知