数据链路层和TCP传输层的迷思

iperf3打流速率不准?一文搞懂TCP/UDP包开销对带宽测试的影响 本文深入解析了iperf3带宽测试中报告速率物理带宽存在差异的根本原因。通过剖析TCP/UDP数据包的协议头部开销,结合MTU限制,解释了为何测试结果会低于理论带宽。文章提供了从理论计算到实践校准的方法,帮助网络工程师运维人员正确解读iperf3结果,避免误判网络性能。 阅读详情

1. 传输层协议UDP,书上说不必事先建立连接,是无连接的不可靠的协议,只是尽最大努力交付,但UDP仅是传输层协议,下面还有数据链路层协议啊,该层中有超时重传,差错重传的ARQ协议,这样,原始的数据帧就能可靠通信了,上层数据也是通过下层数据表现的,不同样也能保证可靠通信吗?为什么说UDP是不可靠的? 
2. 再有如果有数据链路层的差错重传和超时重传,还要TCP的的重传机制干嘛? 
3. 数据链路层和传输层的TCP都有滑动窗口,这不重复了吗?为什么 
4. 其它层的首部我看都有长度字段,但TCP的首部中没有长度字段,那怎么知道该报文到哪里结束?

——来源:chinaunix论坛


1. 数据链路层可以实现无差错的数据帧的交付,但是并不一定一定要实现,这个实现是需要有代价的,比如HDLC协议等等,HDLC采用CRC校验,并且对所有的帧进行编号,通过序和确认机制,可以防止漏发和重发。事实上,HDLC是互联网初期的时候较常使用的数据链路层的协议,因为那个时候数据链路层的传输不是非常可靠。现在使用的大部分是PPP协议,ppp协议只提供差错检测但不提供纠错,他同样使用的也是CRC校验,只能够保证无差错接收,但是由于不适用序列号和确认机制,所以无法检测重发和漏发。

如果对于所有的数据帧都使用可靠的数据链路层协议来保证数据链路层的可靠传输的话,那么无疑会极大地增加网络的负担。事实上,网络中许多的数据并不一定都需要保证可靠传输,因此随着网络的发展,数据链路层将保证数据可靠传输交由上层的传输层来控制(UDP和TCP等等)。而数据链路层大部分使用不一定可靠的PPP协议等等。

最最重要的是:传输层是端到端的,数据链路层是点到点的,想要保证端到端的可靠传输就必须在传输层做文章,仅仅在保证数据链路层各个点之间的可靠传输也不能保证上层数据的可靠性,依然会出现丢包等情况的出现。

2. 数据链路层有差错重传和超时重传功能,但是不是所有的数据帧都需要可靠的传输。

3. 在数据链路层,由于收发双方是点到点的连接,其流量控制策略相对较为简单,接收窗口和发送窗口即为固定大小的缓冲区的个数,发送方的窗口调整,即缓冲区的覆盖依赖于确认帧的到达,由于信号传播延时和CPU的处理时间等都对相对较为稳定,所以发送方的数据帧和接收方的确认帧,其发送和接收时间是可估计的。
在TCP层,由于一个TSAP可同时与多个TSAP建立连接,每个连接都将协商建立一个窗口(即一对发送和接收缓冲区),所以窗口的管理较为复杂,其流量控制策略是通过窗口公告来实现的,当接收方收到数据后发送的确认中将通报剩余的接收缓冲区大小,发送方的发送窗口调整是根据接收方的窗口公告进行的,也就是即使收到接收方的确认也不一定就能对发送窗口进行调整,一旦发送方收到一个零窗口公告,必须暂停发送并等待接收方的下一个更新窗口公告,同时启动一个持续定时器。

4. 其它层的首部我看都有长度字段,但TCP的首部中没有长度字段,那怎么知道该报文到哪里结束?

TCP的报文封装在IP内部,在IP头部中,有两个字段,分别是IP头部长和IP总长,因此,总长减去头部长就可以得到数据部分的长度,也就是传输层封装的数据的长度,TCP的首部中包含有头部的长度,因此可以得到TCP报文的数据的部分的长度。

 


参考资料:http://blog.sina.com.cn/s/blog_78801cf70101ha3n.html

https://blog.csdn.net/baidu_35534327/article/details/53542020

 

 


 

Ping命令的5个常见误解:你以为它真的需要端口吗? 本文澄清了关于Ping命令的常见误解,明确指出Ping基于ICMP协议工作,位于网络层,因此不涉及端口概念。文章通过协议栈分析防火墙配置实例,解释了为何Ping连通性测试失败通常端口无关,并提供了正确的网络诊断工具方法。 阅读详情

相关推荐

计算机网络系统架构的深度思辨:从分层哲学到端到端重构

本文深入探讨了计算机网络系统架构的分层哲学端到端重构,从OSI七层模型到现代云计算边缘计算的实践应用。通过真实案例技术分析,揭示了软硬件协同、时延分解等核心问题,并提出了智能时代网络架构的进化方向。文章特别关注了计算机网络中的分层设计端到端原则的最新发展。

weixin_42656416的博客 287

五、传输层(三)TCP

TCP提供全双工通信,允许通信双方的应用进程在任何时候都能发送数据,为此TCP连接的两端都设有发送缓存接收缓存,用来临时存放双向通信的数据。 TCP是面向字节流的,虽然应用程序TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅视为一连串的无结构的字节流。 UDP报文长度由发送方应用进程决定,TCP报文段的长度则根据接收方给出的窗口值当前网络拥塞程度来决定。如果应用进程传送到TCP缓存的数据块太长,TCP就把它划分得短一些再传送;如果太短,TCP也可以等到积累足够多的字节后再构成

24考研人晴落的博客 993

四层交换机真的存在吗?

在网络技术的江湖里,我们听过太多关于“二层交换机”“三层交换机”的传说。甚至在很多网工的入门教科书里,都赫然写着:交换机工作在数据链路层(第二层)或网络层(第三层),而再往上的传输层(第四层),那是路由器、防火墙或负载均衡器的天下。于是,一个经典的网络迷思诞生了:“世界上到底有没有四层交换机?在探寻有没有“四层交换机”之前,我们得先复习一下那个让所有IT人又爱又恨的。那么,第四层是什么?是,也就是我们熟知的。到了这一层,数据包裹里不仅有目的地IP,还多了一样至关重要的东西——。

网络技术联盟站 53

计算机网络期末复习题

一、单项选择题 C1. OSI参考模型的物理层负责▁▁▁▁。 A.格式化报文 B.为数据选择通过网络的路由 C.定义连接到介质的特性 D.提供远程文件访问能力 C2.下列选项中,不属于网络体系结构中所描述的内容是▁▁▁▁▁。    A.网络的层次 B.每一层使用的协议   C.协议的内部实现细节    D.每一层必须完成的功能 A3. 在下图所表示的采用”存储-转发”方式分组的交换网络中所有的链路的数据传输速度为100Mbps,分组大小为10

weixin_41438423的博客 5170

TCP如何保证可靠传输,为什么应用层还需要确认机制

客户端服务器都各自维护一个发送窗口发送窗口,用来流水线模式的发送接收数据。发送窗口接收窗口的本质是在操作系统中开辟的一块循环利用的缓冲区,用于存储要发送接收数据。本质是一个循环数组的实现。利用若干指针来维护相关的区域。当数据写入超过缓冲区的最大地址后,就循环利用头部,覆盖头部的数据。发送窗口就是一个循环利用的缓冲区,应用层发送数据,就是往缓冲区中写入数据。收到ACK后,就相当于从缓冲区中移除数据,不过并不会真正移除数据,只需要后移对应的指针就可以了。发送缓冲区1、已经收到ack包的数据。

qq_37436172的博客 2161

数据链路层传输层提供的可靠传输的区别

我们知道数据链路层传输层都提供可靠传输服务,传输层是一定要提供的,比如TCP就是可靠传输协议,保证了端到端的可靠传输,确保每一个报文段都能按序送达对方,如果下层传输丢失,也能及时通过ARQ协议来重传,那么为什么会丢失呢? 1.可能是因为网络层的路由器负载过高,导致后来的数据报被丢弃,那么传输层就需要重传了; 2.因为有定时器的存在,一段时间没收到确认就重传; 3.还有一种丢失的可能就是数据链路层检测数据帧传输出错,被丢弃了,因为我们知道数据链路层是提供节点到节点之间的可靠交付,那么这时候传输层的报文

dwj_daiwenjie的博客 1万+

计算机网络之传输层

传输层是计算机网络体系结构中至关重要的一层,它负责在源端目的端之间提供端到端的数据传输服务。传输层具有可靠的数据传输、流量控制、多路复用解复用、差错控制会话管理等功能,为应用层提供了可靠的数据传输服务。常见的传输层协议包括TCPUDP等,它们各有优缺点,适用于不同的应用场景。随着互联网的快速发展新兴技术的不断涌现,传输层面临着许多新的挑战机遇。未来,传输层将继续发挥其在网络通信中的重要作用,为各种网络应用提供高效、可靠的数据传输服务。

一个老Java开发的自白 2065

关于数据链路层提供的可靠传输传输层提供的可靠传输的区别

原文地址: 数据链路层TCP传输层迷思 关于数据链路层传输层提供的可靠传输的疑问回答 传输层协议UDP,书上说不必事先建立连接,是无连接的不可靠的协议,只是尽最大努力交付,但UDP仅是传输层协议,下面还有数据链路层协议啊,该层中有超时重传,差错重传的ARQ协议,这样,原始的数据帧就能可靠通信了,上层数据也是通过下层数据表现的,不同样也能保证可靠通信吗?为什么说UDP是不可靠的? 数据链路层可以实现无差错的数据帧的交付,但是并不一定一定要实现,这个实现是需要有代价的,比如HDLC协议等等。

weixin_43762820的博客 9834

计算机网络5层结构深度解析:从理论到实践的思维导图指南(王道考研版)

本文深度解析计算机网络5层结构,从物理层到应用层,结合王道考研教材中英术语对照表,提供理论到实践的思维导图指南。涵盖物理层的信号传输、数据链路层的帧管理、网络层的IP设计、传输层TCP/UDP协议以及应用层的HTTP/DNS服务,帮助读者系统掌握网络核心知识。

weixin_29264201的博客 382

彻底击穿网络底层迷雾:从电路交换延迟到PDU/SDU本质,构建你的OSI七层模型认知护城河

计算机网络的学习,始于对基本概念的理解,终于对复杂系统的驾驭。电路交换的延迟优势及其适用场景。OSI七层模型的严格层级“网络接口层”的归属问题。服务协议的垂直水平辩证关系。PDUSDU的本质区别,彻底纠正了“层间即PDU”的错误认知。各层数据单元的精准定义。希望这篇万字长文能成为你计算机网络学习路上的坚实阶梯。在未来的学习工作中,当你遇到任何网络问题时,不妨回到这些基础概念上来思考。万变不离其宗,基础不牢,地动山摇。愿你能透过纷繁复杂的协议报文,看到网络世界最本质的逻辑之美。

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 151

网络工程师学习路径:从理论到实战,掌握数据流动的工程思维

计算机网络是支撑现代信息社会的关键基础设施,其核心在于实现设备间的可靠通信数据高效传输。理解网络协议栈(如TCP/IP)的工作原理,是掌握网络工程的基础。从数据封装解封装、IP寻址子网划分,到路由交换机制,这些原理共同构成了网络通信的基石。掌握这些技术,能够帮助工程师构建稳定、可扩展的企业网络,并有效支撑云计算、物联网等新兴应用场景。本文聚焦于网络工程师的核心能力培养,通过构建从基础连通到智能选路、安全优化、运维排错的四层能力金字塔,并结合软考网络工程师认证的实践导向,为学习者提供一条清晰的成长路径,强

weixin_33966095的博客 469

链路层传输层可靠传输及流量控制机制对比

数据链路层传输层可靠传输及流量控制机制对比

longlong0412的博客 1313

滑动窗口

滑动窗口概念不仅存在于数据链路层,也存在于传输层,两者有不同的协议,但基本原理是相近的。其中一个重要区别是,一个是针对于帧的传送,另一个是字节数据的传送 概念 滑动窗口(Sliding window)是一种流量控制技术。早期的网络通信中,通信双方不会考虑网络的拥挤情况直接发送数据。由于大家不知道网络拥塞状况,同时发送数据,导致中间节点阻塞掉包,谁也发不了数据,所以就

Fate_Dream的博客 1802

滑动窗口:数据链路层传输层

文章目录1 数据链路层的滑动窗口1.1 连续ARQ协议1.2 SR协议(选择重传)1.3 GBN(回退N帧)2 TCP滑动窗口TCP滑动窗口定义TCP滑动窗口的大小TCP滑动窗口工作过程模拟TCP滑动过程 滑动窗口既用于数据链路层,又用于传输层。 1 数据链路层的滑动窗口 老师的计算机网络课程 数据链路层滑动窗口协议 1.1 连续ARQ协议 什么是连续ARQ协议 发送方维持着一个一定大小的发送窗...

weixin_40775703的博客 7183

tcp数据链路层滑动窗口的区别_TCP流量控制

TCP传输通过好几种方式控制数据流量,如果你不了解TCP,请点击TCP协议的三次握手四次挥手MTU物理链路层最大能发送接收的数据量,物理接口提供给IP层最大一次的传输数据的大小,是以太网接口对IP层的约束。以太网缺省MTU = 1500 byte,IP包大于1500 byte,IP层需要分片后发送,这些分片IP Header ID相同详情请点击MTUMSSTCP提交给IP层的最大分段...

weixin_28607671的博客 1434

数据链路层传输层协议的区别

数据链路层传输层协议的区别

gongkeguo的博客 478

传输层数据链路层滑动窗口协议的异同

斜阳雨陌 6312

TCP连续ARQ协议滑动窗口协议

TCP协议通过使用连续ARQ协议滑动窗口协议,来保证数据传输的正确性,从而提供可靠的传输。 一、ARQ协议 ARQ协议,即自动重传请求(Automatic Repeat-reQuest),是OSI模型中数据链路层传输层的错误纠正协议之一。它通过使用确认超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送

渴望,就奋力追寻... 4万+
上一篇: 数据链路层和TCP传输层的流量控制有什么区别
下一篇: Embedding Temporal Network via Neighborhood Formation
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值