计算机网络(第六版)复习提纲28

网络拥塞的判定:

1 超时重传计时器启动 2 重复确认3次

1 慢开始

目的:探测网络当前的负载情况

思路:由小到大逐渐增大拥塞窗口数值(每个RTT加倍增长)

2 拥塞避免

目的:让拥塞窗口cwnd缓慢增大

思路:拥塞窗口cwnd按线性规律缓慢增长(每个RTT加法增长)

3 快重传

目的:让发送方尽早知道发生了个别报文段的丢失并重传

思路:要求接收方立即对数据发送确认,收到了失序的报文段要立即对已收到的报文段重复确认,发送方一连收到3个重复确认就知道目前并未网络拥堵,因而立即重传丢失的报文以恢复次序

4 快恢复,两种执行方法:

①调整门限ssthresh=cwnd/2,然后cwnd=ssthresh(书上的方法)

②cwnd=ssthresh+3,即增大窗口+3个MSS(报文段)(书上提到的另一种方法,不建议真的使用)

AIMD算法:拥塞避免阶段,拥塞窗口按照线性规律增大,即加法增大AI,而一旦超时或出现三个重复确认,就把门限设置为当前拥塞窗口的一半,并大大减小拥塞窗口的数值,即乘法减小MD,二者合在一起就是所谓的AIMD算法

TCP拥塞控制流程

接收方窗口rwnd:又称为通知窗口,发送方的发送窗口一定不能超过对方给出的接收方窗口大小

9 TCP的运输连接管理

运输建立三阶段:连接建立、数据传送、连接释放

TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫客户,被动等待连接建立的应用进程叫服务器

A TCP连接建立(三报文握手)

1 服务器B进程处于LISTEN(监听)状态,等待客户连接请求

2 客户A 向B发送连接请求报文(SYN=1, 初始序号seq = x, )=》TCP客户进程进入SYN-SENT(同步已发送)状态

TCP规定,SYN报文不能携带数据,但要消耗一个序号。

3 服务器B收到连接请求报文段后,同意连接,向A发送确认报文段(SYN=1, ACK=1, 确认号ack=x+1, 初始序号seq=y)=》TCP服务器进程进入SYN-RCVD(同步收到)状态

4 TCP客户进程收到B的确认后,还要向B给出确认报文段(ACK=1, ack=y+1, seq=x+1)=》TCP连接已经建立,进入ESTABLISHED状态

第3步中,B发给A的报文段可以分两次发,第一次发一个确认报文段(ACK=1,ack=x+1),第二次发一个同步报文段(SYN=1,seq=y),由此变成了四报文握手,与三报文效果一样

为什么A最后还要进行一次确认?:为了防止已经失效的连接请求报文段突然又传送给了B

B TCP连接的释放(四报文握手)249

1 A和B都处于ESTABLISHED状态,A发出连接释放报文(FIN=1, seq=u【u即为前面已经传送过的数据的最后一个字节的序号+1】),并停止发送数据,主动关闭TCP连接=》进入FIN-WAIT-1状态,等待B 的确认

TCP规定:FIN即使不携带数据也要消耗一个序号

2 B收到连接释放报文,发出确认报文(确认号ACK=1, ack=u+1,seq=v【v即为前面已经传送过的数据的最后一个字节的序号+1】)=》B进入CLOSE-WAIT状态

此时TCP处于半关闭状态,A已经没有数据要发了,B到A方向的连接还未关闭

3 A收到来自B的确认=》进入FIN-WAIT-2状态,等待B发出连接释放报文段

4 B已经没有要向A发送的数据,应用进程通知释放TCP连接,B发送释放报文段(FIN=1,ack=u+1, seq=w【半关闭状态B可能还发了一些数据】,ACK=1)=》B进入LAST-ACK状态,等待A的确认

5 A收到B的连接释放报文段,发送确认报文(ACK=1, ack=w+1,seq=u+1)=》A进入TIME-WAIT状态(B收到确认后进入CLOSED状态),此时TCP连接还未完全释放,必须经过时间等待计时器设置的时间2MSL后,A才进入CLOSED状态

MSL:最长报文段寿命

等待2MSL才进入CLOSED状态的原因:

1 保证A发送最后一个ACK报文段能够到达B(若在2MSL时间里,再次接收B的FIN+ACK报文,则表明ACK报文丢失,需要重传)

2 防止已经失效的连接请求报文段出现在本连接中(A等2MSL后再彻底关闭,能让下一次连接时,网络上已经没有任何关于上次连接的内容)

保活计时器:服务器每收到一次客户的消息,就重新设置保活计时器,若两个小时未收到客户数据,就发送一个探测报文,以后每隔75s发送一次,如果连续十次未响应,则认为客户端出现故障,断开连接

相关推荐
go_to_hacker10 分钟前
AI进行全自动渗透
网络·web安全·网络安全·渗透测试·代码审计
斯~内克1 小时前
鸿蒙网络通信全解析:从网络状态订阅到高效请求实践
网络·php·harmonyos
傻啦嘿哟1 小时前
HTTP代理:网页加速的隐形引擎
网络·网络协议·http
傻啦嘿哟1 小时前
开发者视角:应用程序中HTTP代理的集成指南
网络·网络协议·http
爱写代码的小朋友2 小时前
IP 地址规划中的子网划分:/18 网络容纳 64 个 C 段(/24)的原理与应用解析
网络·网络协议·tcp/ip
十五年专注C++开发2 小时前
WebSocket原理详解(二)
网络·websocket·网络协议
蜗牛沐雨3 小时前
MCP协议的Streamable HTTP:革新数据传输的未来
网络·网络协议·http
最美不过下雨天啊3 小时前
记一个很简单的错误
php·phpstudy·pdo扩展
北极象4 小时前
用C实现一个最简单的正则表达式引擎
c语言·正则表达式·php
春生黎至10054 小时前
GZ073网络系统管理赛项赛题第1套模块A:网络构建解题笔记
运维·网络