计算机网络

计算机网络

计算机网络的概念、功能、组成和分类

1.概念
计算机网络是将一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
在这里插入图片描述
2.计算机网络功能
数据通信,资源共享(硬件:打印机;软件:无需下载就能使用;数据:下载下来就能学习),分布式处理(多台计算机各自承担同一工作任务的不同部分),提高可靠性(A线路不正常,B线路可替代),负载均衡(工作均匀分配给各个计算机,使得各个计算机直接更亲密)
在这里插入图片描述
3.计算机网络的组成
1.组成部分:硬件、软件、协议
2.工作方式:边缘部分(用户直接使用–C/S方式(客户端/服务器端)–P2P方式(P2P对等方式)),核心部分
在这里插入图片描述
3.工作方式:边缘部分(用户直接使用–C/S方式(客户端/服务器端)–P2P方式(P2P对等方式)),核心部分
4.功能组成:资源子网对数据进行处理以后开始资源共享,需要实现资源共享就要用到通信子网来实现数据通信
在这里插入图片描述
4.计算机网络的分类
在这里插入图片描述

计算机网络的标准化工作

在这里插入图片描述

计算机网络的速率

1.TCP中的ARQ(超时重传)协议
通过确认和超时机制保证了数据的正确送达,ARQ 协议包含停止等待 ARQ 和连续 ARQ
(1)停止等待 ARQ
正常传输过程的情况如下
只要 A 向 B 发送一段报文,都要停止发送并启动一个定时器,等待对端回应,在定时器时间内接收到对端应答就取消定时器并发送下一段报文。
当报文丢失或出错
报文传输的过程中丢包: 这时候超过定时器设定的时间就会再次发送丢包的数据直到对端响应,所以需要每次都备份发送的数据。
传输过程中报文出错: 对端会抛弃该报文并等待 A 端重传。
PS:一般定时器设定的时间都会大于一个 RTT 的平均时间。
ACK超时或丢失
对端传输的应答也可能出现丢失或超时的情况。那么超过定时器时间 A 端照样会重传报文。这时候 B 端收到相同序号的报文会丢弃该报文并重传应答,直到 A 端发送下一个序号的报文。
这个协议的缺点就是传输效率低,在良好的网络环境下每次发送报文都得等待对端的 ACK 。
(2)连续的ARQ
在连续 ARQ 中,发送端拥有一个发送窗口,可以在没有收到应答的情况下持续发送窗口内的数据,这样相比停止等待 ARQ 协议来说减少了等待时间,提高了效率。
累计确认
连续 ARQ 中,接收端会持续不断收到报文。如果和停止等待 ARQ 中接收一个报文就发送一个应答一样,就太浪费资源了。通过累计确认,可以在收到多个报文以后统一回复一个应答报文。报文中的 ACK 可以用来告诉发送端这个序号之前的数据已经全部接收到了,下次请发送这个序号 + 1的数据。

但是累计确认也有一个弊端。在连续接收报文时,可能会遇到接收到序号 5 的报文后,并未接到序号 6 的报文,然而序号 7 以后的报文已经接收。遇到这种情况时,ACK 只能回复 6,这样会造成发送端重复发送数据,这种情况下可以通过 Sack 来解决。
SACK(Selective Acknowledgment, 选择性确认)技术,使TCP只重新发送丢失的包,不用发送后续所有的包,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据重发了,哪些数据已经提前收到等。
滑动窗口
上面讲到了发送窗口。在 TCP 中,两端都维护着窗口:分别为发送端窗口和接收端窗口。
发送端窗口包含已发送但未收到应答的数据和可以发送但是未发送的数据。
在这里插入图片描述
发送端窗口是由接收窗口剩余大小决定的。接收方会把当前接收窗口的剩余大小写入应答报文,发送端收到应答后根据该值和当前网络拥塞情况设置发送窗口的大小,所以发送窗口的大小是不断变化的。
当发送端接收到应答报文后,会随之将窗口进行滑动。
滑动窗口实现了流量控制。接收方通过报文告知发送方还可以发送多少数据,从而保证接收方能够来得及接收数据。
Zero 窗口
在发送报文的过程中,可能会遇到对端出现零窗口的情况。在该情况下,发送端会停止发送数据,并启动 persistent timer 。该定时器会定时发送请求给对端,让对端告知窗口大小。在重试次数超过一定次数后,可能会中断 TCP 链接。
2.TCP的拥塞控制
什么叫拥塞?
在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏。这种情况就叫做拥塞。
发送方维护一个叫做拥塞窗口cwnd的状态变量,其值取决于网络的拥塞程度,并且动态变化。
(1)拥塞窗口cwnd的维护原则:只要网络没有出现拥塞,拥塞窗口就再增大一些;但只要网络出现拥塞,拥塞窗口就减少一些。
(2)判断出现网络拥塞的依据:没有按时收到应当到达的确认报文(即发生重传)。
发送方将拥塞窗口作为发送窗口,即swnd=cwnd;
维护一个慢开始门限ssthresh状态变量:
当cwnd<ssthresh时,使用慢开始算法;
当cwnd>ssthresh时,停止使用慢开始算法而改用拥塞避免算法
当cwnd=ssthresh时,既可使用慢开始算法,也可使用拥塞避免算法。

拥塞处理包括了四个算法,分别为:慢开始,拥塞避免,快速重传,快速恢复。
(1).慢开始算法
慢开始算法,顾名思义,就是在传输开始时将发送窗口从1开始指数级扩大,从而避免一开始就传输大量数据导致网络拥塞。
慢开始算法步骤具体如下:
1.连接初始设置拥塞窗口(Congestion Window) 为 1 MSS(一个分段的最大数据量)。
2.每过一个 RTT (往返时延) 就将窗口大小乘二。
3.指数级增长肯定不能没有限制的,所以有一个阈值限制,当窗口大小大于阈值时就会启动拥塞避免算法。

(2).拥塞避免算法
在这里插入图片描述
拥塞避免算法相比简单点,每过一个 RTT 窗口大小只加一,这样能够避免指数级增长导致网络拥塞,慢慢将大小调整到最佳值。
在传输过程中可能定时器超时的情况,这时候 TCP 会认为网络拥塞了,会马上进行以下步骤:
1.将阈值设为当前拥塞窗口的一半
2.将拥塞窗口设为 1 MSS
3.启动拥塞避免算法
1990年又增加了两个新的拥塞控制算法(改进TCP的性能),这就是快重传和快恢复。
有时,个别报文段会在网络中丢失,但实际上网络并未发生拥塞。这将导致发送方超时重传(发送方在一定的时间内没有收到其确认信号,那么就会重新发送数据),并误认为网络发生了拥塞。
所以在这边就会用到快重传。
所谓快重传,就是使发送方尽快进行重传,而不是等超时重传计时器超时再重传。
1.要求接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认;
2.即使收到了失序的报文段也要立即发出对已收到的报文段的重复确认;
3.发送方一旦收到3个连续的重复确认,就将相应的报文段立即重传,而不是等该报文段的超时重传计时器超时再重传。
4.对于个别丢失的报文段,发送方不会出现超时重传,也就不会误认为出现了拥塞(进而降低拥塞窗口cwnd为1)。使用快重传可以使整个网络的吞吐量提高约20%。
在这里插入图片描述
发送方一旦收到3个重复确认,就知道现在只是丢失了个别的报文段。于是不启动慢开始算法,而是执行快恢复算法。
发送方将慢开始门限ssthresh值和拥塞窗口cwnd值调整为当前窗口的一半;开始执行拥塞避免算法。
也有的快恢复实现是把快恢复开始时的拥塞窗口cwnd值再增大一些,即等于新的ssthresh+3;
(1).既然发送方收到3个重复的确认,就表明有3个数据报文段已经离开了网络。
(2).这3个报文段不再消耗网络资源而是停留在接收方的接收缓存中。
(3).可见现在网络中不是堆积了报文段而是减少了3个报文段。因此可以适当把拥塞窗口扩大一些。
RTT与RTO
RTT(Round Trip Time):
一个连接的往返时间,即数据发送时刻到接收到确认的时刻的差值。
RTO(Retransmission Time Out):
重传超时时间,即从数据发送时刻算起,超过这个时间便执行重传。超过这个时间便执行重传。
RTT和RTO 的关系是:
由于网络波动的不确定性,每个RTT都是动态变化的,所以RTO也应随着RTT动态变化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值