江阴企业网站制作,学校网站开发工程师,网站字体怎么修改,旅游网站的制作一 TCP
1. 简介 首先#xff0c;TCP是一个传输层协议#xff0c;提供进程到进程之间的可靠性数据传输服务#xff0c;还提供流量控制和差错控制等机制。 其次#xff0c;TCP是面向连接的#xff0c;其通信模式是全双工的#xff1b;面向连接是指#xff1a;
在发送数…一 TCP
1. 简介 首先TCP是一个传输层协议提供进程到进程之间的可靠性数据传输服务还提供流量控制和差错控制等机制。 其次TCP是面向连接的其通信模式是全双工的面向连接是指
在发送数据之前必须建立连接 连接状态只在两端维护沿途节点不维护
连接建立需要进行三次握手关闭连接需要进行四次挥手 接下来面试官会问可靠性数据传输的原理、流量控制、差错控制、三次握手和四次挥手等
二 TCP的可靠性传输
1. TCP的可靠性传输原理
流水线机制累计确认TCP使用单一重传定时器当超时或收到重复的ACK会触发重传事件其它的还有使用序列号对TCP报文段进行排序和丢掉重复的报文段使用校验和检查错误的报文段
2. 流水线机制 流水线机制允许发送方在收到ACK之前可以连续的发送多个分组发送方和接收方需要更大的存储空间以缓存分组。 3. 累计确认 接收方收到序列号1、2、3、4和5的包不必每个都确认只需确认第5个就行当发送方收到接收方对5的确认ACK后就明白接收方前5个都已经正确接收。 4. 超时重传和快速重传 超时重传发送端发送报文后由于长时间没有收到ACK该分组还在路上或者丢失所以会重传当前分组同时定时器RTORetransmission Timeout会加倍。如果再次超时定时器会再次加倍。 快速重传如果发生超时TCP的定时器的时间会设置到很大重发丢失分组之前要等很长时间。因此需要通过重复的ACK检测分组丢失如果发送方收到同一个数据的3个ACK则会假定该分组已经丢失会立即重传。
三 流量控制和拥塞控制
流量控制是接收方和发送方的问题而拥塞控制是整个网络的问题。 1. 流量控制 在TCP的报头中有一个receive window的字段接收方会通过设置该字段存储自己缓冲区的可用空间。这样发送方将会限制自己已发送但还未收到ACK的数据不超过接收方的可用空间。当RecvWindow为0时为了避免死锁发送方还是会发送很小的数据段。 2. 拥塞控制 通过限制发送发的发送速率来进行拥塞控制
LastByteSent-LastByteAcked CongWin
CongWin(congest window)被称作拥塞窗口最后一个发送的字节减去最后一个被确认过的字节序列号要小于等于CongWin。发送速率
rate≈CongWin/RTT (Bytes/sec)
动态调整CongWin以改变发送速率。 注在早期版本当发生拥塞后直接将CongWin置为1现在是将其置为原来的一半 如何动态调整发送速率可以总结为 **加性增-乘性减 慢启动** 慢启动并不是指增长速度慢而是指初始速率低初始速率为1然后每收到一个ACK就将CongWin翻倍直到达到阈值的一半 加性增是指到达阈值的一半后每次让CongWin增加1而乘性减是当发生loss事件后将CongWin减为原来的一半也可能置为1 lose事件收到3个重复的ACK或者超时 总结 当CongWin低于阈值的时候发送者处于慢启动阶段CongWin指数增长 当CongWin高于阈值发送者处于拥塞避免阶段CongWin线性增长 当收到3个重复的ACK阈值设置为CongWin的一半CongWin设置为阈值然后进行线性增长 当超时发生阈值设置为CongWin的一半CongWin设置为1然后进行指数增长
最后三次握手和四次挥手请参考https://blog.csdn.net/qq_38038480/article/details/80569651