首页 > 其他分享 >【计算机网络】数据链路层——流量控制&可靠传输机制

【计算机网络】数据链路层——流量控制&可靠传输机制

时间:2024-03-01 22:24:59浏览次数:25  
标签:发送 协议 确认 流量 计算机网络 传输 信道 链路层

数据链路层的流量控制

较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。

数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。

数据链路层流量控制手段:接收方收不下就不回复确认。

传输层流量控制手段:接收端给发送端一个窗口公告,高速发送端还能发多少

流量控制的方法

  • 停止-等待协议:每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。

  • 滑动窗口协议:发送窗口内的帧可以逐个发送,但是只有受到对应接受窗口的确认帧,发送窗口才会后移

    image-20240229162614022

    所以停等协议可以理解为发送窗口只有一位的滑动窗口

    • 后退N帧协议(GBN)
    • 选择重传协议

image-20240229162743850

可靠传输、滑动窗口、流量控制区别

可靠传输:发送端发啥,接收端收啥。

流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧。

滑动窗口解决1、可靠传输(发送方自动重传) 2、流量控制(收不下就不给确认,想发也发不了)

1、停等协议

停等协议究竟放在哪一层?因为技术进步,链路层很靠谱了,所以可以放到传输层里。

为什么要有停等协议

除了比特出差错,底层信道还会出现丢包问题。为了实现流量控制。

丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。

研究停等协议的前提

  • 虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)

  • 因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。(究竟是在哪一层?)

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

停等协议——无差错情况

image-20240229163337419

确认帧:ACK

停等协议——有差错情况

1、数据帧丢失或检测到帧出错——超时自动重传

超时计时器:每次发送一个帧就启动一个计时器。设置的时间应该比往返传播时延RTT更长一些

image-20240229163531500

为了重传顺利:

  • 发完一个帧后,必须保留它的副本。
  • 数据帧和确认帧必须编号。

2、确认帧(ACK)丢失——超时重传,接收方丢弃重复帧

image-20240229163732082

3、确认帧(ACK)迟到——丢弃重复的ACK

第一个ACK0,收下就丢弃。因为已经收到过一个ACK0了!!!

image-20240229224146011

性能分析

简单!

但是信道利用率太低!

利用率计算

信道利用率

什么是信道利用率?

发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。

image-20240229225112159

image-20240229224836005

发送时延

往返时延

确认时延

信道利用率:

image-20240229224915372

信道吞吐率

信道吞吐率=信道利用率*发送方的发送速率

例题:一个信道的数据传输率为4kb/s ,单向传播时延为30ms ,如果使停止-等待协议的信道最大利用率达到80%,要求的数据帧长度至少为

设数据帧的长度为L比特,则发送方发送全部的数据需要时间:L/4。再除以总时长:发送时间+往返时间(2*30)

image-20240229225228754

标签:发送,协议,确认,流量,计算机网络,传输,信道,链路层
From: https://www.cnblogs.com/nekodream/p/18048072

相关文章

  • 【计算机网络】数据链路层概述
    数据链路层功能概述研究思想基本概念术语结点:主机、路由器链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。帧:......
  • 【计算机网络】数据链路层——差错控制
    差错控制(检错)差错从何而来?概括来说,传输中的差错都是由于噪声引起的。全局性由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。解决办法:提高信噪比来减少或避免干扰。(对传感器下手)局部性外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原......
  • C# NamedPipe传输测试
    CancellationTokenSourcects=newCancellationTokenSource();CancellationTokentoken=cts.Token;Tasktserver=Task.Run(()=>{ NamedPipeServerserver=newNamedPipeServer(); server.dowork(token); });Tasktclient=Task.Run(()=>{ Named......
  • 详解海量日志传输框架 Flume
    什么是Flume本次我们来聊一聊Flume,它是Cloudera提供的一个高可用、高可靠、分布式的日志收集框架,用于海量日志的采集、聚合以及传输。Flume在生产上使用最多的场景就是,实时读取服务器本地磁盘的数据,然后将数据写入到HDFS。Flume基础架构再来看看Flume的基础架构:Ag......
  • hdfs文件传输到ods层的脚本
     #!/usr/bin/python3#coding=utf-8importsysfrombaseimportget_yesterday,APPimportsubprocessdate=get_yesterday()tables=['ods_log_inc','ods_activity_info_full','ods_activity_rule_full','ods_base_categ......
  • 【计算机网络】物理层-编码与调制
    基带信号&宽带信号信道:信号的传输媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道。基带信号:将数字信号1和0直接用两种不同的电压表示,再送到数字信道上去传输(基带传输)。来自信源的信号,像计算机输出的代表各种......
  • 【计算机网络】物理层传输介质&设备.
    物理层传输介质传输介质也称传输媒体/传输媒介,它就是数据传输系统中在发送设备和接收设备之间的物理通路。传输媒体并不是物理层。传输媒体在物理层的下面,因为物理层是体系结构的第一层,因此有时称传输媒体为0层。在传输媒体中传输的是信号,但传输媒体并不知道所传输的信号代表什......
  • 【计算机网络】物理层-数据交换方式
    为什么要数据交换:减少链路电路交换原理:在数据传输期间,源结点与目的结点之间有一条由中间结点构成的专用物理连接线路,在数据传输结束之前,这条线路一直保持。交换的阶段:建立连接(呼叫/设备间逐个地电路建立)通信(数据传输)释放连接(拆除电路)特点:独占资源,用户始终占用端到......
  • 2024-02-29-Linux高级网络编程(1-计算机网络概述)
    1.计算机网络概述1.1计算机发展简史最早的广域网:在通信双方或多方之间,通过电路交换建立电路连接的网络。1.1.1电路交换特点建立链接->使用链接->释放链接物理通路被通信双方独占1.1.2电路交换适用于电话网​计算机数据是突发式出现在数据链路上的,而电路交......
  • 北斗同步时钟服务器(NTP网络时间服务器)应用于计算机网络系统
    北斗同步时钟服务器(NTP网络时间服务器)应用于计算机网络系统北斗同步时钟服务器(NTP网络时间服务器)应用于计算机网络系统京准电子科技官微——ahjzsz前言近几年来,随着计算机自动化系统水平的提高,在各大计算机监控系统、微机保护装置、微机故障录波装置以及各类数据管理机得......