- TCP是面向连接的协议;
- TCP是面向字节流的协议;
- TCP的一个连接有两端 , 即点对点通信;
- TCP提供可靠的传输服务;
- TCP协议提供全双工通信(每条TCP连接只能一对一);
最大报文段长度:报文段中封装的应用层数据的最大长度 。
文章插图
TCP首部:
- 序号字段:TCP的序号是对每个应用层数据的每个字节进行编号
- 确认序号字段:期望从对方接收数据的字节序号 , 即该序号对应的字节尚未收到 。用ack_seq标识;
- TCP段的首部长度最短是20B , 最长为60字节 。但是长度必须为4B的整数倍
5.3 可靠传输的基本原理
基本原理:
- 不可靠传输信道在数据传输中可能发生的情况:比特差错、乱序、重传、丢失
- 基于不可靠信道实现可靠数据传输采取的措施:
差错检测:利用编码实现数据包传输过程中的比特差错检测 确认:接收方向发送方反馈接收状态 重传:发送方重新发送接收方没有正确接收的数据 序号:确保数据按序提交 计时器:解决数据丢失问题;停止等待协议:是最简单的可靠传输协议 , 但是该协议对信道的利用率不高 。
连续ARQ(Automatic Repeat reQuest:自动重传请求)协议:滑动窗口+累计确认 , 大幅提高了信道的利用率 。
5.3.1TCP协议的可靠传输
基于连续ARQ协议 , 在某些情况下 , 重传的效率并不高 , 会重复传输部分已经成功接收的字节 。
5.3.2 TCP协议的流量控制
流量控制:让发送方发送速率不要太快 , TCP协议使用滑动窗口实现流量控制 。
文章插图
5.4 TCP协议的拥塞控制
拥塞控制与流量控制的区别:流量控制考虑点对点的通信量的控制 , 而拥塞控制考虑整个网络 , 是全局性的考虑 。拥塞控制的方法:慢启动算法+拥塞避免算法 。
慢开始和拥塞避免:
- 【慢开始】拥塞窗口从1指数增长;
- 到达阈值时进入【拥塞避免】 , 变成+1增长;
- 【超时】 , 阈值变为当前cwnd的一半(不能<2);
- 再从【慢开始】 , 拥塞窗口从1指数增长 。
文章插图
快重传和快恢复:
- 发送方连续收到3个冗余ACK , 执行【快重传】 , 不必等计时器超时;
- 执行【快恢复】 , 阈值变为当前cwnd的一半(不能<2) , 并从此新的ssthresh点进入【拥塞避免】 。
文章插图
5.5 TCP连接的三次握手(重要)
TCP三次握手使用指令:
文章插图
面试常客:为什么需要三次握手?
- 第一次握手:客户发送请求 , 此时服务器知道客户能发;
- 第二次握手:服务器发送确认 , 此时客户知道服务器能发能收;
- 第三次握手:客户发送确认 , 此时服务器知道客户能收 。
推荐阅读
- 上瘾白洛因结局
- 赏雪的句子 赏雪的心情说说
- g是什么单位
- 中国古代南北朝时期都有那些国家
- 勤能补拙的励志句子 勤能补拙的名言警句
- 拼音平舌和翘舌发音技巧
- 小孩升学祝福语
- 八卦方位的风水口诀是什么
- 分别不舍的句子 家人分别的不舍的句子