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

转自:http://www.kuqin.com/article/30networ_technology/449635.html
下面挑一些个人认为比较好理解的答案:

其实大家讨论来讨论去,我觉得还应该补充一个问题!就是大家还要考虑3层的问题即IP协议层(internet protocol 互联网络层)。TCP/IP不光是解决相同网络(2层以内)的互联还要解决异构网络的互联。比如一个以太网络的数据帧能传输的数据包的大小能和X.25或者其他的传输网络的数据帧一样大吗?
        这样,出在第3.4层的网络协议必将有个进行拆包组包的过程…或者一些对应用流量控制的机制.如果没有机制保障这种传输的可靠性,那数据链路层就是一直传下去对应用来说也是垃圾数据…因为在传输的过程中,特别到了不同网络接口转换处,协议转换时不能保障IP包在拆包组包时的准确不丢失(为什么路由器数据传输率一般是安装xx包/s算的而第二层设备可以使用xxx/bps)
        路由器,打个比方就像"america 圣骑士"比喻那样,比方运输沙子一样,可以这样比喻搬运工只是解决了他的本质任务在他的搬运范围不丢一粒沙子。但是我没办法控制他搬运到某个中转站不丢沙子。因为在中转站不是搬运工能控制的范围(及点到点的传输)。而中转站靠什么来控制他的时间和效率以及不丢失沙子呢?那就要对中转站施加控制机制保障他在重新包装后不丢沙子,以及按照我的要求时间到达不行重新要求搬运工重搬(传输层协议)。UDP就是中转站因为忙或者其他原因可以随便丢失某包沙子,然而运输工是没办法丢失一粒沙子的了。。。

为了解释清楚还有一个实际的例子就是:

比如一个用户的一个数据大小是 1MB 在传输过程中(从中国某公司到英国某公司),如果使用 TCP 协议他会把 1MB 的数据拆成 N 份编 0-(N-1) 的序号根据 IP 地址( IP 协议)在网络中发送可能一部分。

一部分从
北京的出口-to-美国-to–瑞典–to–英国某公司
另一部分从
广州–to-美国–荷兰–英国

当然这是比方两部分数据的如何走由 IP 层和支撑其传输的一些路由协议关心。如果数据都顺利到达了英国某公司, TCP 协议务必将这些顺序有可能在不同类型网络中传输过后以及序号打乱的 IP 包按 0-(N-1) 的序列编排,再组织进行  TCP 层的校验,完成 1MB 数据的传输。

数据链路层只是解决一段一段路程之间的可靠传输,他不能保障在北京或在广州因为路由器忙或者其他原因导致其中的一个或者某个数据包丢失。同时也不能保证所有的数据包到达后的重新编排组合问题,也不能保证如果其中某些数据包丢失以后如何通知发送方重新发送等一系列问题.。
UDP协议是如果丢失了一个数据包这1MB的数据就作废。也不会通知发生方重新发送这就是有时E-mail不能收到其中可能的原因。

专业一点的讲就楼上某位高手说的:
数据链路层是解决: 点到点的传输问题 。
传输层是解决:端到端的传输问题 。

在下这样理解的请各位网友批评补充.

数据链路层和传输层可靠传输是否重复多余相关推荐

  1. 传输层 可靠传输 重传与确认 停止等待协议工作原理

    谈谈你对停止等待协议的理解? 停止等待协议是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认,在收到确认后再发下一个分组. 在停止等待协议中,若接收方收到重复分组,就丢弃该分 ...

  2. 网络工程师课程---5、传输层(传输层常用协议有哪些)

    网络工程师课程---5.传输层(传输层常用协议有哪些) 一.总结 一句话总结: TCP/IP协议:端口80:传输控制协议:Transmission Control Protocol-TCP UDP协议 ...

  3. 计算机网络-传输层(传输层概述,TCP,UDP协议概述)

    文章目录 1. 传输层概述 2. TCP,UDP协议概述 3. 传输层的寻址与端口 1. 传输层概述 传输层是只有主机才有的层次. 传输层功能: 传输层提供进程和进程之间的逻辑通信. 网络层提供主机到 ...

  4. 1-2:网络初识之了解OSI和TCP/IP及网络分层(物理层,数据链路层,网路层,传输层,应用层)

    文章目录 一:生活中的协议分层 (1)生活中的分层1--汉堡包 (2)生活中的分层2--打电话 二:网络分层 (1)OSI七层模型 (2)TCP/IP分层模型 一:生活中的协议分层 (1)生活中的分层 ...

  5. 5.1 计算机网络之传输层(传输层提供的服务及功能概述、端口、套接字--Socket、无连接UDP和面向连接TCP服务)

    文章目录 1.传输层提供的服务及功能概述 2.传输层的寻址与端口 (1)端口的作用 (2)端口号的分类 (3)套接字 3.无连接UDP和面向连接TCP服务 1.传输层提供的服务及功能概述 传输层的功能 ...

  6. 传输层2 --- 传输层复用和分用

    传输层复用和分用 一.传输层基本服务 二.如何进行复用和分用 三.套接字标识与端口号 四.UDP分用的方法 五.TCP服务器使用的套接字 六.小结 一.传输层基本服务 将主机间交付扩展到进程间交付,通 ...

  7. 计算机网络—数据链路层的流量控制与可靠传输机制(思维导图)

    建议将思维导图保存下来观看,或者点击这里在线观看

  8. 【计算机网络】数据链路层 : 流量控制 ( “流量控制“ 机制 | 停止-等待协议 | 滑动窗口协议 | 后退 N 帧协议 GBN | 选择重传协议 SR | 滑动窗口 与 流量控制、可靠传输 )

    文章目录 一. 数据链路层 流量控制 二. 数据链路层 与 传输层 流量控制 机制 三. 数据链路层 流量控制 四. 数据链路层 流量控制 方法分类 五.停止等待协议 六.滑动窗口协议 七.滑动窗口协 ...

  9. 计算机网络之传输层:5、TCP可靠传输

    传输层:5.TCP可靠传输 TCP可靠传输: 伪首部校验: 实现可靠传输的过程: 实现可靠传输的工作原理: 实现流量控制的工作原理: TCP可靠传输: 伪首部校验: 与UDP校验一样,增加伪首部进行校 ...

最新文章

  1. JAVE EE 企业级开发之从零开始学JAVA【51CTO技术论坛】
  2. Bzoj3509 [CodeChef] COUNTARI
  3. 语音合成(文字转语音)工具大全
  4. springboot thymeleaf 生成静态html
  5. Spark详解(四):Spark组件以及消息通信原理
  6. java类型比较_java 基本数据类型 ==和equals()比较
  7. 掌握这个分析方法,数据分析就学会了一半
  8. redis 配置文件配置
  9. 电力行业知识竞赛现场部分照片及用PPT模板制作的电力行业安全知识竞赛题目界面部分展示
  10. 【40周年系列活动】中国干细胞第十届年会(2020·贵阳)第二轮通知
  11. access日期如何增加年数_ACCESS 时间日期操作大全
  12. 浏览器提示网站链接不安全,证书过期了
  13. 新一届信息奥赛国家队出炉:3/4来自浙江,北大英才班成最大赢家
  14. 汇总15位身份证号和18位身份证号的区别
  15. [iOS]ARC下循环引用的问题
  16. Ubuntu如何通过简单的几步操作来配置系统的软件源、找不到软件和更新怎么办?(带动态图文介绍)
  17. open连接MySQL超时_mysql5 超时链接
  18. 计算机音乐数字谱抖音,抖音计算器音乐乐谱
  19. nginx 每秒万级并发优化
  20. 【专升本计算机】甘肃省专升本考试公共课计算机填空题考点汇总

热门文章

  1. 深度对抗学习在图像分割和超分辨率中的应用
  2. java1.8 类库_Commons Configuration 1.8发布 配置管理Java类库
  3. html制作第二页,订单第二页.html
  4. linux sftp没有读写权限,sftp服务器上的Linux权限问题
  5. python语言程序设计基础答案第四章_《Python语言程序设计基础》第四章笔记
  6. php数组如何写入txt文件中_php将数组写入到文件的三种方法
  7. php addslashes 数组,用递归addslashes函数转义数组
  8. MySQL下载与配置
  9. java ee s2sh复习题_JavaEESSH框架答案试题题目及答案,期末考试题库,章节测验答案...
  10. mysql auto_increment建表_在mysql表中创建一个ID auto_increment(在事实之后)