TCP
-
传输控制协议
-
4个 512字节的segment以独立的IP报文发送,
接收方将2048字节的数据在 1次read 调用中传递给应用程序。
即使这些数据以1K的大小发送, 接收方也按自己的方式读取,都 以字节为单位。 (发送与接收速率大小不同步——类比:蓄水池)
1、 TCP连接是字节流 (UDP是数据报message模式)。
2、TCP对传输的每个字节(32位)编号——这32位用确认号和滑动窗口机制
-
3、段长限制因素:
-
适合IP协议的65515的有效载荷
每个网络都有一个 最大传传输单元(MTU,maximum transfer unit),才能以单个不分段的数据包发送和接收(MTU通常为1500B) 。
TCP Segment Header
1、TCP 段起始是一个固定格式的20B头。
2、数据最多为65535-20-20=65495个字节
3、第一个20是IP头,第二个20是TCP头
4、没有任何数据的TCP段也是合法的,用作确认与控制消息
TCP建立连接
TCP连接释放
1、任一方都可发送FIN=1的TCP字段 ——表示它不再发出数据了。
当这个FIN被确认后,这个方向的连接就关闭了。但另一个方向的通信不受影响。
当两个方向都关闭后,该连接才释放。
2、通常释放连接需要4个TCP字段,
每个方向一个FIN、一个ACK。
被动方可以将ACK与FIN包含在同一个字段中(3个TCP字段)。