zoukankan      html  css  js  c++  java
  • 第17章TCP协议

    TCP协议

    TCP提供一种面向连接的、可靠的字节流服务。三个关键字:面向连接、可靠的(有超时重传、流量控制、拥塞控制等机制)、字节流(TCP对字节流的内容不做任何解释)。具体来讲可靠性的保证由以下机制保证:

    • 应用数据被TCP分割为最适合发送的数据块(主要是为了避免IP分片)(TCP数据段或者段segment),和UDP完全不同,应用程序产生的数据报长度将保持不变。
    • TCP发出一个段后,启动一个定时器,等待目的端确认收到这个段。
    • TCP的确认段不是立即发送出去的,通常会推迟几分之1秒(一般为200ms),这就是延迟确认或者捎带确认
    • TCP报文段会作为IP数据报来传输,IP数据报可能会失序到达,因此TCP报文段到达也会失序,TCP将对收到的数据进行重新排序。
    • IP数据报会生重复,TCP的接收端必须丢弃重复的数据。 TCP提供流量控制(TCP首部拥有窗口大小数据)
    • TCP拥塞控制(慢启动算法和拥塞避免算法

    TCP首部

    TCP首部有6个标志比特位。

    • URG
    • ACK
    • PSH
    • RST:重建连接
    • SYN:同步序号用来发起一个连接
    • FIN:发端完成发送任务

    TCP的流量控制由连接的每一端声明的端口大小来提供,这个窗口的大小最大是65535字节,可以动态的改变。

    TCP校验和

    校验的内容包含TCP首部和TCP数据;

    TCP可选字段:Option

    最长报文长度:MSS(Maximum Segment Size),每个连接的第一个报文段(包含SYN的那个报文段)中指定这个选项。

    小结

    • TCP提供了一种可靠的面向连接的字节流服务;
    • TCP将用户数据按照合适的长度分割为TCP报文段(Segment),发送完毕后启动一个定时器,另一端收到后进确认对失序的数据进行排序;
    • TCP提供端到端的流量控制,并计算和验证一个强制性的端到端的校验和;
    • 许多应用层协议都使用TCP:FTP、SMTP、Telnet、Rlogin;
  • 相关阅读:
    Redis学习手册(String数据类型)
    Redis学习手册(开篇)
    android判断当前应用程序处于前台还是后台
    android EditText输入变化事件详解
    Android. Scrolling 2 listviews together
    Android ListView快速定位(四)
    使用【百度云推送】第三方SDK实现推送功能具体解释
    SDN:软件定义网络
    MATLAB中导入数据:importdata函数
    JSP中Session的使用
  • 原文地址:https://www.cnblogs.com/Spground/p/9567872.html
Copyright © 2011-2022 走看看