计算机网络_05_运输层

本文详细解释了运输层的概念,包括端口号的作用,TCP和UDP的对比,TCP连接的建立与释放机制,以及拥塞控制、滑动窗口、确认报文等关键概念。特别关注了TCP的可靠传输、流量控制和拥塞控制策略,如慢开始、快重传和快恢复。
摘要由CSDN通过智能技术生成

运输层概述

运输层概述.jpg

端口号

端口号用于表示对不同应用进程的标识;
可以分为:熟知端口号、登记端口号、短暂端口号;
端口号.jpg

熟知端口号

常见协议所使用的运输层端口号;
熟知端口号.jpg

运输层的复用和分用

端口的复用和分用.jpg
2.3 习题
端口号应用举例.jpg

TCP和UDP的对比

UDP和TCP对比.jpg

  1. 连接方式

连接方式.jpg

  1. 数据的传播方式

传播方式.jpg

  1. 面向对象

面向对象.jpg

  1. 提供的传输服务

可靠服务.jpg

  1. 首部开销

协议首部.jpg

TCP

TCP报文段的首部格式

TCP报文端由首部和数据载荷组成,TCP的全部功能都体现在TCP报文段的首部中;

源端口和目的端口

TCP报文段源端口和目的端口.jpg

序号

序号.jpg

确认号

确认号字段只有在 ACK=1 时确认号字段才有效;
确认号.jpg
A端的报文段首部中的确认号和A端的发送数据的序号无关,与B端的发送数据序号有关;序号是各自进程自己的编号,只具有本地意义;
确认号示例.jpg

数据偏移

这里数据偏移描述的是报文段的首部长度
数据偏移.jpg
数据偏移示例.jpg

窗口

窗口.jpg

校验和

校验和.jpg

标志位

  1. UGR

紧急指针,TCP报文段中的数据载荷部分有紧急数据需要优先处理,紧急指针指出了紧急数据在数据载荷中的长度;
紧急指针.jpg

  1. PSH

PUSH标志位,表示接收方应该尽快交付该报文段;
PSH.jpg

  1. RST

RESET表示重新建立连接
RST.jpg

  1. SYH

用来标TCP的连接建立报文段;
SYN.jpg

  1. FIN

用来标记TCP的释放连接报文段;
FIN.jpg

扩展首部

当扩展首部的长度不能够被4整除,需要额外填充0比特凑够长度;
扩展首部.jpg

TCP连接管理

TCP运输连接管理是对TCP连接的建立和释放都能正常进行;
TCP连接管理.jpg

TCP的连接建立

连接建立称为“三次握手”:前两次握手,用于同步信息,并不发送真正数据;第三次握手用于再次确认,可以不携带数据;
tcp三报文握手.jpg

  • 为什么要进行第二次确认?(发送对TCP连接请求的确认的确认)

防止第一次连接请求在链路中滞留,当双方结束通信后又突然到达了,导致TCP服务器被动打开,但是TCP发送端已经在之前就关闭了,不会再主动发起连接,使得TCP接收端处于死等待的状况。
TCP连接资源浪费的情况.jpg
tcp第三次握手是否多余.jpg

TCP的连接释放

通过“四次挥手”来释放连接;

  1. 前两次挥手,是关闭从TCP客户进程到TCP服务端进程的数据连接,客户端发送连接释放,服务器端发送普通确认报文;
  2. 后两次挥手,是关闭从服务器端到客户端的数据连接,由于关闭需要TCP客户端主动发起,因此TCP服务器关闭称为被动关闭;TCP服务器端发送连接释放,TCP客户端发送普通确认报文;

FIN表示这是释放连接报的文段,ACK表示这是确认类型的报文
TCP四次挥手.jpg

  • 为什么TCP客户端发送完最后一个确认报文后,还要等待一段时间呢?

若当TCP客户端对服务端的释放连接报文的确认报文丢失了,而客户端又因为发送完最后一个确认报文直接关闭,这将会导致服务器端的超时重传报文一直得不到相应,使得服务器一直处于等待状态,造成了资源的浪费;
(也就是说TCP客户端不能保证自己只发送一次确认报文,就一定能被对方正确接收,所以需要多等待一会,做好丢失重传的准备)
TCP释放连接中等待时间的原因.jpg

  • 保活计时器

为了TCP服务端可以识别出TCP客户端的突发故障情形,使得TCP服务器可以提前中断连接,因此再TCP服务器进程中设置一个保活计时器;
TCP保活计时器.jpg

TCP可靠传输

可以理解为后退N帧协议和选择重传协议的结合:按序接收,累计确认、接收缓存;
TCP可靠传输.jpg

  • 滑动窗口

TCP滑动窗口.jpg

  • 确认报文

TCP中接收方发送给发送方的确认报文,表示已接收到序号x之前所有的数据,期望发送方下一次发送从x开始的数据;
tcp可靠传输中的确认报文.jpg

TCP的流量控制

TCP连接中的接收方,利用滑动窗口机制限制发送方的发送速率,使得接收方能够来得及接收处理接收到的数据;
tcp流量控制 发送窗口减小.jpg

  • 零窗口探测报文

当发送窗口为0时,发送方等待接收方的窗口调整报文;但接受方发送窗口大小调整报文却在传输过程中丢失,这就会造成双方相互等待的局面。
tcp流量控制死锁.jpg 当发送窗口被调控成零窗口时,便启动零窗口持续计时器,当计时器超时就重新向接收方发送零窗口探测报文,询问发送窗口的实际大小,若接收方回答仍是零窗口,持续计时器便重新开始计时;
tcp流量控制 接触死锁.jpg

TCP拥塞控制

tcp的拥塞控制.jpg
拥塞控制假设.jpg

  • 慢开始门限值ssthresh(slow start threshold)

拥塞窗口.jpg

TCP的四种拥塞控制算法,都是针对拥塞窗口cwnd和慢开始门限ssthresh这两个数值进行调控;

慢开始和拥塞控制

当拥塞窗口cwnd还没达到ssthresh时,执行慢开始算法,cwnd进行指数级增长,每轮都会加上自身原有的值;直至cwnd=ssthresh;
当cwnd>ssthresh时,执行拥塞控制算法,cwnd开始线性增加,每个轮次(RTT)只增加1;
拥塞避免.jpg
当发生超时重传时,就判断发生了拥塞,于是对cnwd和ssthresh进行相关调整;
拥塞避免时发生超时.jpg

快重传和快恢复

当个别报文段在网络中丢失,但实际网络并未发生拥塞时,这会让发送方进行超时重传,误认为发生了拥塞,减小发送窗口的大小,导致传输效率降低;
因此需要采用快速的重传机制,使得发送方在超时重传之前就能够及时发送相应的丢失报文段,尽早收到对应的确认报文,避免进入超时重传;
快重传和快恢复在TCP拥塞控制中是用于当个别报文丢失时的应对措施;
报文段丢失导致的慢开始.jpg

  • 快重传

发送方接收到3个重复确认报文后,就将相应的报文段立即进行重传。
快重传.jpg

  • 快恢复

当发生个别报文段丢失后,发送方虽然不启动慢开始算法,但也要对流量进行相应控制,于是发送方使用快恢复算法;
慢开始门限值sstresh和拥塞窗口cwnd都调整为当前窗口的一半,使得发送方开始执行拥塞避免算法;快恢复.jpg

  • 习题

当发生超时重传时,有两个调整动作:

  1. 拥塞窗口cwnd调整为1;
  2. ssthresh调整为发生超时重传时的cwnd的一半;

自己只注意到cwnd调整为1,并没有注意到ssthresh也被调整缩小了,导致没有意识到拥塞避免的开始时刻;
tcp拥塞控制习题.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值