计算机网络考试复习——第五章

news2025/1/17 4:47:12

本章考察范围为5.1 5.3 5.4这三部分。

该层传输的单位是报文段

5.1 运输层协议概述:

5.1.1 进程之间的通信:

运输层是向它上面的应用层提供通信服务。它属于面向通信部分的最高层,同时也是用户功能的最低层。

屏蔽作用:运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。

信道这里分为可靠的信道和不可靠的信道,考察范围主要是全双工可靠信道使用面向连接的协议TCP而不可靠的信道面向无连接的协议UDP这里不做考察。

5.1.2   运输层的两个主要协议

互联网的正式标准:

用户数据报协议 UDP

传输控制协议 TCP运输协议单位:两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU。

TCP 传送的数据单位协议是 TCP 报文段。

UDP 传送的数据单位协议是 UDP 报文或用户数据报。

UDP:传送数据之前不需要先建立连接。 收到 UDP 报后,不需要给出任何确认。 不提供可靠交付,但是一种最有效的工作方式。

TCP:提供可靠的、面向连接的运输服务。 不提供广播或多播服务。 开销较多。

5.1.3   运输层的端口

复用:应用进程都可以通过运输层再传送到 IP 层(网络层)。分用:运输层从 IP 层收到发送给应用进程的数据后,必须分别交付给指明的各应用进程。

在运输层使用协议端口号,或通常简称为端口。把端口设为通信的抽象终点。

软件端口:协议栈层间的抽象的协议端口。 是应用层的各种协议进程与运输实体进行层间交互的地点。 不同系统实现端口的方法可以不同。

硬件端口:不同硬件设备进行交互的接口。

TCP/IP 运输层端口的标志:端口用一个 16 位端口号进行标志,允许有 65,535 个不同的端口号。 端口号只具有本地意义,只是为了标志本计算机应用层中的各进程。 在互联网中,不同计算机的相同端口号没有联系。

端口分为两大类,三种类型:分别为客户端类型和服务器端类型。服务器端分为两类:熟知端口 (全球通用端口号) (IANA 负责分配)和登记端口 (在 IANA 登记)。客户端端口只有一类为:短暂端口 (通信结束后,被系统收回)

常用的熟知端口:

5.3 传输控制协议 TCP 概述 

5.3.1  TCP 最主要的特点

TCP 是面向连接的运输层协议,在无连接的、不可靠的 IP 网络服务基础之上提供可靠交付的服务。为此,在 IP 的数据报服务基础之上,增加了保证可靠性的一系列措施。

TCP最主要的特点:

1)TCP 是面向连接的运输层协议。

2)每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是点对点的(一对一)。

3)TCP 提供可靠交付的服务。

4)TCP 提供全双工通信。

5)面向字节流

5.1)TCP 中的“流”指的是流入或流出进程的字节序列。

5.2)面向字节流:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流。

TCP面向流的概念:TCP 不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系。 但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。

TCP 不关心应用进程一次把多长的报文发送到 TCP 缓存。 TCP 根据对方给出的窗口值和当前网络拥塞程度来决定一个报文段应包含多少个字节,形成 TCP 报文段。

TCP 把连接作为最基本的抽象。 TCP 连接的端点:套接字 (socket) 或插口。每一条TCP连接有两个端口。

 套接字 (socket):套接字 socket = (IP地址 : 端口号) 例如:(192.169.1.20 : 2028)

每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定:TCP 连接 ::= {socket1, socket2} = {(IP1: port1),(IP2: port2)}

TCP 连接,IP 地址,套接字三者的联系:TCP 连接就是由协议软件所提供的一种抽象。 TCP 连接的端点是抽象的套接字,即(IP 地址:端口号)。 同一个 IP 地址可以有多个不同的 TCP 连接。 同一个端口号也可以出现在多个不同的 TCP 连接中。

5.4 可靠传输的工作原理

IP 网络提供的是不可靠的传输

理想传输条件的特点:传输信道不产生差错。 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。

在理想传输条件下,不需要采取任何措施就能够实现可靠传输。 但实际网络都不具备理想传输条件。必须使用一些可靠传输协议,在不可靠的传输信道实现可靠传输。

5.4.1停止等待协议

每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。 全双工通信的双方既是发送方也是接收方。 假设仅考虑 A 发送数据,而 B 接收数据并发送确认。因此 A 叫做发送方,而 B 叫做接收方。

1. 无差错情况

2.出现差错分为两种情况:

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

在这两种情况下,B 都不会发送任何信息。

问题:A 如何知道 B 是否正确收到了 M1 呢?

解决方法:超时重传

1.A 为每一个已发送的分组设置一个超时计时器。

2.A 只要在超时计时器到期之前收到了相应的确认,就撤销该超时计时器,继续发送下一个分组 M2 。

3.若 A 在超时计时器规定时间内没有收到 B 的确认,就认为分组错误或丢失,就重发该分组。确认丢失和确认迟到 

确认丢失:若 B 所发送的对 M1 的确认丢失了,那么 A 在设定的超时重传时间内将不会收到确认,因此 A 在超时计时器到期后重传 M1。 假定 B 正确收到了 A 重传的分组 M1。

这时 B 应采取两个行动: (1) 丢弃这个重复的分组 M1,不向上层交付。 (2) 向 A 发送确认。 

确认迟到: B 对分组 M1 的确认迟到了,因此 A 在超时计时器到期后重传 M1。 B 会收到重复的 M1,丢弃重复的 M1,并重传确认分组。 A 会收到重复的确认。对重复的确认的处理:丢弃停止等待协议要点总结:

停止等待:发送方每次只发送一个分组。在收到确认后再发送下一个分组。 暂存:在发送完一个分组后,发送方必须暂存已发送的分组的副本,以备重发。 编号:对发送的每个分组和确认都进行编号。 超时重传:发送方为发送的每个分组设置一个超时计时器。若超时计时器超时位收到确认,发送方会自动超时重传分组。 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些,防止不必要的重传。 简单,但信道利用率太低。

为了提高传输效率:流水线传输。流水线传输:在收到确认之前,发送方连续发出多个分组。5.4.2   连续 ARQ 协议

发送窗口:发送方维持一个发送窗口,位于发送窗口内的分组都可被连续发送出去,而不需要等待对方的确认。

发送窗口滑动:发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。 累积确认:接收方对按序到达的最后一个分组发送确认,表示:到这个分组为止的所有分组都已正确收到了。累计确认的优缺点:

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

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/435334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flutter系列之:如何自定义动画路由

文章目录 简介自定义跳转使用flutter动画基础实现一个自定义的route总结 简介 flutter中有默认的Route组件,叫做MaterialPageRoute,一般情况下我们在flutter中进行跳转的话,只需要向Navigator中传入一个MaterialPageRoute就可以了。 但是Ma…

让你的three.js动起来

让你的three.js动起来 简介 本节主要是给实例添加动画效果,以及加了一些小插件用以实现帧率检测、gui可视化配置、动态监听屏幕大小变化刷新和鼠标操控功能。 引入的插件js: three.jsdat.gui.jsStats.jsTrackballControls.js 实际效果: …

Java 线程状态有哪些?

文章目录 Java 线程状态有哪些?初始状态(NEW)可运行状态(RUNNABLE)就绪状态运行状态 阻塞状态(BLOCKED)等待状态(WAITING)超时等待(TIMED_WAITING&#xff09…

一次打靶场记录

题目提示 1、目录爆破 在对靶场进行信息收集、目录扫描之后发现结果存在www.zip,data.zp 两个备份文件 下载回来解压之后发现www.zip是网站备份文件,data.zip是数据库文件,存在一个maccms的数据库 苹果cms的数据库,导入本地数据库。 admin…

【并发编程Python】为什么Python这么慢

Python速度慢的所有原因 Python作为一门非常优秀的计算机语言,其速度慢给Python减了很多分,也是其一直被诟病的主要原因之一,通常情况下,Python比Java/C慢约5-10倍,在一些特殊的情况下Python甚至比C慢100~200倍&#x…

数据结构——B树和B+树

数据结构——B树和B树 一、B树1.B树的特征2.B树的插入操作3.B树的删除操作4.B树的缺点 二、B树B树的特征 平衡二叉树或红黑树的查找效率最高,时间复杂度是O(nlogn)。但不适合用来做数据库的索引树。 因为磁盘和内存读写速度有明显的差距,磁盘中存储的数…

玩转肺癌目标检测数据集Lung-PET-CT-Dx ——③整理、验证数据,建立Dataset对象

文章目录 数据整理整理出所有的dcm文件整理出所有的xml标注文件整理数据①——舍弃错误的标注文件整理数据②——两个标注文件指向同一个目标图片的情况封装函数,传入xml文件,显示标注效果 整理数据③——将PETCT的三通道图像转成平扫CT的单通道图像格式…

企业费控,驶向「一体化」

在数字化于企业内部各个环节实现平权、成为标配的当下,财务,这个被称为“控制企业生命力”的核心环节,是否应该拥有新的价值? 作者| 皮爷 出品|产业家 2022年年中,施伟和分贝通的团队接到一项“特殊需求”。 这个…

在职读研专业——劳动经济学

研究方向:劳动经济学主要研究劳动力市场现象及其所引起的劳动力资源配置等相关问题,包括劳动力供给、劳动力需求、就业、工资、人力资本投资、收入分配等。例如:劳动力市场失衡背后各种因素的变化,如何通过资源的配置使劳动资源配…

MySQL innobackupex 备份工具使用总结

前言 在MySQL备份以及搭建从库的过程中,我们针对比较小的库大多采用的是mysqldump,简单,方便。但是在大库进行搭建从库的时候,且数据库主机没有一个很好的存储来满足备份,这个时候就需要使用innobackupex来协助你来做一…

Pocsuite3框架POC/EXP编写练习:Flask(Jinja2) 服务端模板注入漏洞

Pocsuite3 是由知道创宇 404 实验室打造的一款基于 GPLv2 许可证开源的远程漏洞测试框架。可以用来编写POC/EXP,今天借助Flask框架下的SSTI漏洞练习记录一下Pocsuite3框架的配置和编写过程。 官方文档:Pocsuite3 是什么? | Pocsuite3 安装 …

小黑继续跟着沛奇老师学携程:携程基础3

3.异步编程 3.1事件循环 理解成一个死循环,去检测并执行某些代码 # 伪代码任务列表 [任务1,任务2,任务3,...] while True:可执行的任务列表,已完成的任务列表 去任务列表中检查所有任务,将可执行和已完…

安装、启动和登陆doccano

一、安装 1、使用的Pycharm安装的doccano 2、初始化数据库 doccano init 3、创建用户名和密码 # admin是用户名,pass是密码,都可以自定义 doccano createuser --username admin --password pass 二、启动 1、在一个Terminal终端启动webserver服务 …

自适应控制专栏目录及介绍

目录 自适应控制专栏目录及介绍第一篇:[具有不确定参数系统的自适应跟踪控制设计_ADi_hhh的博客-CSDN博客](https://blog.csdn.net/qq_45830323/article/details/129713051)第二篇:[(SISO)单输入单输出系统的模型参考自适应控制_A…

cdh Hue集成sentry的权限管理详细步骤

hue登录hue的第一个用户要用hue用户创建,默认hue为超级用户,hue用户页面的权限可以管理很多用户操作,比如查看hdfs目录,使用其他组件,授权功能等等 一.hive的配置 1.关闭模拟,开启sentry 2.添加配置(注意配置的位置) <property> <name>sentry.hive.tes…

【C++11】lambda表达式

目录 lambda表达式 1.1 lambda表达式出现的原因 1.2 lambda表达式语法 1.3 函数对象与lambda表达式 lambda表达式 1.1 lambda表达式出现的原因 在C98中&#xff0c;如果想要对一个数据集合中的元素进行排序&#xff0c;可以使用 std::sort 方法 测试代码 #include <…

苹果撤离中国市场?中国市场太重要,印度制造是备胎

苹果在中国之行后&#xff0c;却计划进一步扩大印度制造iPhone的比例&#xff0c;甚至将iPhone15全数交给印度制造&#xff0c;业界因此认为苹果正在离开中国市场&#xff0c;然而这完全是臆想&#xff0c;中国市场对苹果来说仍然非常重要&#xff0c;它不会轻易舍弃这个市场。…

【Unity VR开发】结合VRTK4.0:添加碰撞忽略器

语录&#xff1a; 最远的旅行&#xff0c;是从自己的身体到自己的心&#xff0c;是从一个人的心到另一个人的心。坚强不是面对悲伤不流一滴泪&#xff0c;而是擦干眼泪后微笑面对以后的生活。 前言&#xff1a; 模块化提供了一种允许两个或者多个对象忽略彼此碰撞的方法&#x…

Logstash:多管道配置

我们大多数人已经熟悉 Elastic 产品。 在此博客中&#xff0c;我们将逐步介绍配置 Logstash 以使用多个管道摄取和处理数据的步骤。 Logstash 是一种开源数据处理管道&#xff0c;可让你摄取、转换和输出数据。 它是从各种来源收集和处理大量数据的强大工具&#xff0c;可用于管…

IP协议头

IP 4位版本号&#xff08;version&#xff09;4位头部长度&#xff08;header length&#xff09;8位服务类型&#xff08;Type Of Service&#xff09;16位总长度&#xff08;total length&#xff09;16位标识&#xff08;id&#xff09;3位标志字段13位分片偏移&#xff08;…