传输层——传输控制协议TCP

概述

TCP特点

TCP的主要特点

  • 面向连接
  • 每条连接只能有两个端点,每一条都是点对点连接。是一条虚连接
  • 提供可靠交付
  • 提供全双工通信
  • 面向字节流
    根据对方给的窗口值和网络拥塞的程度来决定一个报文应包含多少个字节

可靠传输的工作原理

停止等待协议(停等协议)

  1. 无差错情况和出现差错
    在这里插入图片描述
  2. 确认丢失和确认迟到
    在这里插入图片描述
    总之就是没有收到M1的确认包,就不会发送下一个包的确认
    缺点:信道利用率低

连续ARQ协议

-自动重传请求(Automatic Repeat Request)
在这里插入图片描述
连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组位置。接收方一般采用累计确认的方式,且不用对每一个收到的分组都逐个确认,对按序到达的最后一个分组发送确认。如果中途有分组发送失败,采用回退N步的方法,表示需要再退回来重传已发送过的N个分组.

如下例题:需要重发的帧数是6号帧以后的7、8、9、10.
在这里插入图片描述

TCP报文段的首部格式

TCP是面向字节流的,但是TCP传送的数据单元是报文段。一个TCP的报文段分为首部和数据两个部分。
在这里插入图片描述
== 在首部字段里,我认为最需要理解并记住的是序号和确认号的工作机制,为后面的TCP流量控制的学习奠定基础。==
在这里插入图片描述
在这里插入图片描述

TCP的流量控制

利用滑动窗口实现流量控制

所谓流量控制,就是让发送方的发送速率不要太快,要让接收方来得及接收。
在这里插入图片描述
上图中,ACK是确认字符,ACK=1时确认号字段才有效。ack是确认号,ack=N,表示到序号N-1为止的所有数据都已正确收到。rwnd是接收窗口大小。
在这里插入图片描述

TCP的拥塞控制

拥塞:当网络中多资源的需求大于可用资源

TCP拥塞控制的方法

TCP进行拥塞控制的算法有四种,慢开始、拥塞避免、快重传、快恢复。

1. 慢开始和拥塞避免

慢开始的算法思路:当主机开始发送数据时,由于并不清楚网络的负荷情 况,所以如果立即把大量数据字节注入到网络,那么就有可能引起网络发生拥塞。经验证明,较好的方法是先探测一下,即由小到大逐渐增大发送窗口,也就是说,由小到大逐渐增大拥塞窗口数值
但是为了防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢开始门限ssthresh状态变量:
在这里插入图片描述
拥塞避免的算法思路:拥塞避免算法的思路是让拥塞窗口cwnd 缓慢地增大,即每经过一个往返时间RTT就 把发送方的拥塞窗口cwnd加10,而不是像慢开始阶段那样加倍增长。因此在拥塞避免阶段 就有“加法增大”AI (Additive Increase)的特点。这表明在拥塞避免阶段,拥塞窗口cwnd按 线性规律缓慢增长,比慢开始算法的拥塞窗口增长速率缓慢得多。
在这里插入图片描述
如下例题,阈值ssthresh的初始值为12(单位为报文段),假设当拥塞窗口上升到16时网络发生了超时,根据拥塞窗口的变化可推出14次的窗口值分别为:1、2、4、8、12(初始ssthresh值,启动拥塞避免)、13、14、15、16(超时,启动慢开始)、1、2、4、8(新的ssthresh值,启动拥塞避免)、9
新ssthresh等于慢开始门限减半 本题是16/2=8
在这里插入图片描述

2. 快重传和快恢复

在这里插入图片描述
在这里插入图片描述

TCP的运输连接管理

TCP运输的建立和释放是每次面向连接的通信中必不可少的过程.
运输连接有三个阶段,连接建立 传输数据 释放连接

TCP的连接建立

TCP建立连接的过程叫握手,握手需要在客户和服务器之间交换三个TCP报文。
在这里插入图片描述

TCP的连接释放

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sanjun_done/article/details/106473658