TCP首部:
- 序号字段:TCP的序号是对每个应用层数据的每个字节进行编号;
- 确认序号字段:期望从对方接收数据的字节序号,即该序号对应的字节尚未收到。用ack_seq标识;
- TCP段的首部长度最短是20B ,最长为60字节。但是长度必须为4B的整数倍。
TCP标记的作用:
3. 可靠传输的基本原理基本原理:
- 不可靠传输信道在数据传输中可能发生的情况:比特差错、乱序、重传、丢失;
- 基于不可靠信道实现可靠数据传输采取的措施。
差错检测:利用编码实现数据包传输过程中的比特差错检测。
确认:接收方向发送方反馈接收状态。
重传:发送方重新发送接收方没有正确接收的数据。
序号:确保数据按序提交。
计时器:解决数据丢失问题。
停止等待协议:是最简单的可靠传输协议,但是该协议对信道的利用率不高。
连续ARQ(Automatic Repeat reQuest:自动重传请求)协议:滑动窗口 累计确认,大幅提高了信道的利用率。
TCP协议的可靠传输:基于连续ARQ协议,在某些情况下,重传的效率并不高,会重复传输部分已经成功接收的字节。
TCP协议的流量控制:流量控制:让发送方发送速率不要太快,TCP协议使用滑动窗口实现流量控制。
4. TCP协议的拥塞控制拥塞控制与流量控制的区别:
流量控制考虑点对点的通信量的控制,而拥塞控制考虑整个网络,是全局性的考虑。拥塞控制的方法:慢启动算法 拥塞避免算法。
慢开始和拥塞避免:
- 【慢开始】拥塞窗口从1指数增长;
- 到达阈值时进入【拥塞避免】,变成 1增长;
- 【超时】,阈值变为当前cwnd的一半(不能<2);
- 再从【慢开始】,拥塞窗口从1指数增长。
快重传和快恢复:
- 发送方连续收到3个冗余ACK,执行【快重传】,不必等计时器超时;
- 执行【快恢复】,阈值变为当前cwnd的一半(不能<2),并从此新的ssthresh点进入【拥塞避免】。