运输层(下)

简介: 笔记

2.2.3可靠传输的原理


理想的传输条件有以下两个特点:

  • (1) 传输信道不产生差错。
  • (2) 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。

然而实际的网络都不具备以上两个理想条件。必须使用一些可靠传输协议,在不可靠的传输信道实现可靠传输。

那么在TCP中就有两种方式来实现可靠传输了

  • 停止等待协议
  • 连续 ARQ 协议

2.2.3.1停止等待协议

“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。

停止等待协议有两种情况:

  • 无差错情况
  • 出现差错

10.jpg

在接收方 B 会出现两种情况:

  1. B 接收 M1 时检测出了差错,就丢弃 M1,其他什么也不做(不通知 A 收到有差错的分组)。
  2. M1 在传输过程中丢失了,这时 B 当然什么都不知道,也什么都不做。

解决:

  • A 为每一个已发送的分组都设置了一个超时计时器
  • A 只要在超时计时器到期之前收到了相应的确认,就撤销该超时计时器,继续发送下一个分组 M2 。

11.jpg

值得注意的是:

  • 在发送完一个分组后,必须暂时保留已发送的分组的副本,以备重发。
  • 分组和确认分组都必须进行编号。
  • 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些。

像上述的这种可靠传输协议常称为自动重传请求 ARQ  (Automatic Repeat reQuest)。意思是重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组。

为了提高传输效率,发送方可以不使用低效率的停止等待协议,而是采用流水线传输。

流水线传输就是发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。这样可使信道上一直有数据不间断地传送。

12.jpg

2.2.3.2连续 ARQ 协议

  • 发送方维持的发送窗口,它的意义是:位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。这样,信道利用率就提高了。
  • 连续 ARQ 协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。

即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了。

优点:容易实现,即使确认丢失也不必重传。

缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。

如果发送方发送了前 5 个分组,而中间的第 3 个分组丢失了。这时接收方只能对前两个分组发出确认。发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次。

这就叫做 Go-back-N(回退 N),表示需要再退回来重传已发送过的 N 个分组。

具体实现:

TCP 连接的每一端都必须设有两个窗口——一个发送窗口和一个接收窗口。

TCP 的可靠传输机制用字节的序号进行控制。TCP 所有的确认都是基于序号而不是基于报文段。

TCP 两端的四个窗口经常处于动态变化之中。

TCP连接的往返时间 RTT 也不是固定不变的。需要使用特定的算法估算较为合理的重传时间。

13.png


三、常用熟知的端口


14.jpg


四、TCP 的拥塞控制


出现拥塞的原因:

  • 对资源需求  > 可用资源

即使增大资源也不是能解决拥塞的问题的。不但不能解决拥塞问题,而且还可能使网络的性能更坏。

拥塞引起的重传并不会缓解网络的拥塞,反而会加剧网络的拥塞。因为会引起更多的分组流入网络和被网络中的路由器丢弃。


4.1拥塞控制的作用


15.jpg

为了提高我们的资源利用率,避免发生死锁问题。


4.2流量控制和拥塞控制的区别


拥塞控制:

  • 拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
  • 拥塞控制就是防止过多的数据注入到网络中,使网络中的路由器或链路不致过载。

流量控制:

  • 流量控制往往指点对点通信量的控制,是个端到端的问题(接收端控制发送端)。
  • 流量制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收


4.3TCP 的拥塞控制方法


开环控制方法就是在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞

闭环控制方法是基于反馈环路的概念。属于闭环控制的有以下几种措施:

  1. (1) 监测网络系统以便检测到拥塞在何时、何处发生。
  2. (2) 将拥塞发生的信息传送到可采取行动的地方
  3. (3) 调整网络系统的运行以解决出现的问题

TCP 采用基于窗口的方法进行拥塞控制。该方法属于闭环控制方法。

  • 只要网络没有出现拥塞,拥塞窗口就可以再增大一些,以便把更多的分组发送出去,这样就可以提高网络的利用率
  • 但只要网络出现拥塞或有可能出现拥塞,就必须把拥塞窗口减小一些,以减少注入到网络中的分组数,以便缓解网络出现的拥塞。

拥塞的判断:

  1. 重传定时器超时
  2. 收到三个相同(重复)的 ACK

TCP拥塞控制算法:

  • 慢开始 (slow-start)
  • 拥塞避免 (congestion avoidance)
  • 快重传 (fast retransmit)
  • 快恢复 (fast recovery)

16.jpg


五、TCP三次握手协议


  • TCP 建立连接的过程叫做握手。
  • 握手需要在客户和服务器之间交换三个 TCP 报文段。称之为三报文握手。
  • 采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误。

过程:

  1. A 的 TCP 向 B 发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = x,表明传送数据时的第一个数据字节的序号是 x。
  2. B 的 TCP 收到连接请求报文段后,如同意,则发回确认。B 在确认报文段中应使 SYN = 1,使 ACK = 1,其确认号ack = x+1,自己选择的序号 seq = y。
  3. A 收到此报文段后向 B 给出确认,其 ACK = 1,确认号 ack = y + 1。A 的 TCP 通知上层应用进程,连接已经建立。
  4. B 的 TCP 收到主机 A 的确认后,也通知其上层应用进程:TCP 连接已经建立。

17.jpg18.jpg


六、TCP释放连接


过程:

  1. 现在 A 的应用进程先向其 TCP 发出连接释放报文段,并停止再发送数据,主动关闭 TCP 连接。A 把连接释放报文段首部的 FIN = 1,其序号seq = u,等待 B 的确认。
  2. B 发出确认,确认号 ack = u + 1,而这个报文段自己的序号 seq = v。TCP 服务器进程通知高层应用进程。从 A 到 B 这个方向的连接就释放了,TCP 连接,处于半关闭状态。B 若发送数据,A 仍要接收。
  3. 若 B 已经没有要向 A 发送的数据,其应用进程就通知 TCP 释放连接。
  4. A 收到连接释放报文段后,必须发出确认。
  5. 在确认报文段中 ACK = 1,确认号 ack = w + 1,自己的序号 seq = u + 1。


19.jpg20.jpg

A 必须等待 2MSL 的时间:

  • 第一,为了保证 A 发送的最后一个 ACK 报文段能够到达 B。
  • 第二,防止 “已失效的连接请求报文段”出现在本连接中。A 在发送完最后一个 ACK 报文段后,再经过时间 2MSL,就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。


最后


如果大家有更好的理解方式或者文章有错误的地方还请大家不吝在评论区留言,大家互相学习交流~~~

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
7月前
|
网络协议 网络性能优化
【计算机网络】第3章 运输层(上)
【计算机网络】第3章 运输层
|
9月前
|
网络协议 算法 数据安全/隐私保护
网络层——IP协议(二)
网络层——IP协议
48 0
|
6月前
|
存储 缓存 网络协议
计算机网络-运输层
运输层概述 这里我们对运输层进行概述,之前文章所介绍的计算机网络体系结构中的物理层,数据链路层以及网络层,他们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信, 如图所示,局域网1上的主机与局域网2上的主机,通过互联的广域网进行通信,网络层的作用范围是主机到主机,但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程。 Ap是应用进程的英文缩写词,如何为运行在不同主机上的应用进程提供直接的通信服务,是运输层的任务,运输层协议又称为端到端协议,如图所示运输层的作用范围是应用进程到应用进程,也称为端到端。 接下来我们从计算机网络体系结构的角度来看运输层。
23 0
|
7月前
|
缓存 网络协议 算法
【计算机网络】第3章 运输层(下)
【计算机网络】第3章 运输层
|
8月前
|
网络协议 网络性能优化 计算机视觉
传输层Stu
传输层Stu
77 0
传输层Stu
|
9月前
|
网络协议 网络安全 网络架构
网络层——IP协议(一)
网络层——IP协议
69 0
|
网络协议 算法 网络性能优化
计算机网络运输层
计算机网络运输层
85 0
|
缓存 网络协议 网络性能优化
网络层协议
重点内容 IP数据包格式 ICMP协议介绍 ARP协议介绍 ARP攻击原理
网络层协议
|
缓存 监控 网络协议
传输层(一)
传输层(一)
201 0
|
缓存 网络协议 算法
传输层(二)
传输层(二)
215 0