计算机网络自顶向下 —— 运输层(二)
前言
这一章,主要讲TCP协议
面向连接的运输:TCP
TCP协议对于前端而言,是十分重要的。也看到很多漫画,第三人视角写这方面的内容。
- TCP是因特网运输层的面向连接的可靠的运输协议。
- 为什么TCP被称为面向连接呢?一个应用进程可以开始向另一个应用进程发送之前,这两个进程必须要先相互握手。(三次握手)
- 三次握手,A进程给B进程发出握手信号(1次),B进程回应A进程告知收到信号了(2次),A进程正式向B进程发送数据给B进程(3次)
- 四次挥手,A进程发起关闭信号给B进程(1次),B进程收到该报文段后,就发送一个确认报文(2次),再发送自己的终止报文给A进程(3次)。A进程对B进程的报文进行确认(四次)
- TCP的生命周期,运行在每台主机中的TCP协议在各种TCP状态之间变迁
- 拥塞控制方法,一:端到端拥塞控制 网络层没有为运输层拥塞控制提供显式支持,端系统必须通过对网络行为的观察(分组 丢失与时延)来推断,增加的往返是时延值作为网络拥塞成都增加的指示。二:网络辅助的拥塞控制。路由器向发送方提供关于网络中拥塞状态的显式反馈信息。
- TCP拥塞控制。TCP必须使用端到端拥塞控制
- TCP采用的方法是让每一个发送法方所感知到的玩过拥塞程度来限制其能向连接发送流量的速率。
- 如果一个TCP发送方感知从它到目的地的路径上没有什么阻碍,则TCP发送方增加发送速率。有阻碍就减少发送速率
- 一个TCP发送方如何限制它向其连接发送流量的速率?
- 一个TCP发送方如何感知从它到目的地的路径上是否存在拥塞?
- 当发送方感知到端到端的拥塞时,采用的是什么算法来改改变其发送速率?
- TCP连接的每一端都是由一个接受缓存,一个发送缓存和几个变量组成
- 运行在发送方的TCP拥塞控制机制跟踪一个额外的变量,拥塞窗口(c w n d)。就是来控制发送速率的
- 通过调节cwnd,控制发送速率
- TCP发送的“丢包事件” 要么超时,要么收到接受方的冗余ACK .TCP连接通过(要么超时 或者收到三个冗余ACK)来是否拥塞
- TCP拥塞控制算法1⃣️慢启动2⃣️拥塞避免3⃣️快速恢复
- 慢启动和拥塞避免是TCP的强制部分
- 快速恢复是推荐部分
- 当一条CWND的只通常是初始值为MSS值 ,在慢启动状态下,CWND值以1个MSS开始并每当传输的报文被确认就增加1个MSS。TCP发送方对每个确认增加MSS值,发送速率就翻番
- TCP发送速率起始慢,在慢启动阶段以指数增长
- 如何结束指数增长,第一种:遇到超时 丢包事件,CWND设置为1并且重新开始慢启动
- 第二种:当CWND值等于SSTRESH值(慢启动阀值),TCP转移到拥塞避免模式
- 如果检测到3个冗余ACK ,这时TCP转移到快速重传阶段
- 公平性
- 1,公平性和UDP 2,公平性和并行TCP连接
- 明确拥塞通告:网络辅助拥塞控制
FannieGirl原创文章,想了解更多前端内容,关注我的博客园
https://www.cnblogs.com/ifannie/
转载务必声明出处哦~~~~更多操作,扣我