计算机网络-第5章运输层

5.1运输层协议概述

5.1.1进程之间的通信

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

通信的两端应当是两个主机中的应用进程。

运输层复用和分用:复用指在发送方不同的应用进程都可以使用同一个运输层协议传送数据,而分用是指接收方的运输层在剥去报文的首部后能够把这些数据正确交付目的应用进程。

运输层提供应用进程间的逻辑通信。从应用层看,好看这种通信就是沿水平方向直接传送数据,但事实上这两个运输层之间并没有一条水平方向的物理连接。

网络层为主机之间的通信提供服务,而远输层则在网络层的基础上,为应用进程之间的通信提供服务。运输层还要对收到的报文进行差错检测。

面向连接的TCP和无连接的UDP。运输层向高层用户屏蔽了下面网络核心的细节,它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。

当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道,但当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一条不可靠信道。

5.1.2运输层的两个主要协议

①用户数据报协议UDP。②传输控制协议TCP。

TCP报文段,UDP用户数据报。

UDP在传送数据之前不需要先建立连接。TCP则堤供面向连接的服务。

5.1.3运输层的端口

运输层的复用和分用功能,应用层所有的应用进程都可以通过运输层再传送到网终层,这是复用。运输层从IP层收到发送给各应用进程的数据后,必须分别交付指明的各应用进程,这就是分用。

应用层与运输层之间的界面上有端口,每一个端口用一个称为端口号的正整数来标记。

运输层端口号分类:

①服务器端使用的端口号,又分为熟知端口号,登记端口号。

②客户端使用的端口号,又称短暂端口号。

5.2用户数据报协议UDP

只在IP的数据报服务之上增加了很少一点功能,这就是复用和分用功能以及差错检测功能。

特点:①无连接的。②尽最大努力交付。③面向报文的。④没有拥塞控制。⑤支持一对一,一对多,多对一,多对多的交互通信。⑥首部开销小,只有8个字节,比TCP的20个字节的首部要短

5.2.2UDP的首部格式

每个字段是2字节:①源端口,②目的端口,③长度,④检验和。捡验和是把首部和数据部分一起都捡验。

5.3传输控制协议TCP概述

特点:①面向连接的运输层协议。②每一条TCP连接只能有两个端点。③TCP提供全双工通信。④面向字节流,流指的是流入到进程或从进程流出的字节序列。面向字节流的含义是:虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。

TCP根据对方给出的窗口值和当前网络的拥塞程度,决定一个报文段应包含多少字节。UDP发送报文长度是应用进程给出的。如果应用进程只发来一个字节,TCP也可以等待积累足够多的字节后再构成报文段发送出去。

TCP把连接作为最基本的抽象,TCP连接的端点叫作套接字或插口,端口号拼接到IP地址即构成了套接字。每一条TCP连接唯一地被通信两端的两个端点所确定。

5.4可靠传输的工作原理

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

5.4.1停止等待协议

①无差错情况:发送确认。

②出现差错:超时重传,超时计时器。在收到确认前必须暂时保留己发送的分组的副本。分组和确认分组都必须进行编号。超时计时器设置的重传时间应当比数据在分组传输的平均往返时间更长一些,因为分组会经过哪些网络以及产生多大的时延都是不确定因素。

③确认丢失和确认迟到,自动重传请求ARQ。两个行动:丢弃重复分组,向接收方向发送方发送确认。

④信道刮用率:停止等待协议优点是简单,缺点是信道刮用率低。U=TD/(TD+RTT+TA)。

流水线传输提高信道利用率。

5.4.2连续ARQ协议

发送方每收到一个确认,就把发送窗口向前滑动一个分组。

接牧方一般都是采用累积确认的方式。

优点容易实现,即使确认丢失也不必重传,缺点是不能向发送方及时反映接收方己经正确收到所有分组的信息。

5.5TCP报文段的首部格式

20字节是固定的,后面有4n字节按需可增:

①源端口和目的端口 各占2个字节。②序号 4字节。③确认号 4字节,期望收到对方下一个报文段的第一个数据字节的序号。④数据偏移 4位。⑤保留 6位 ⑥紧急URG ⑦确认ACK ⑧推送PSH ⑨复位RST ⑩同步SYN ⑩①终止FIN ⑩②窗口 2字节。⑩③检验和 ⑩④紧急指针⑩⑤选项

窗口值作为接收方让发送方设置其发送窗口的依据。窗口安段明确指出了现在允许对方发送的数据量。窗口值经常动态变化。

最大报文段长度MSS。

5.6TCP可靠传输的实现

①以字节为单位的滑动窗口。发送窗口位置由窗口前沿和后沿的位置共同确定。

缓存空间和序号空间都是有限的,并且都是循环使用的。

发送缓存存放:准备发送的,己发送未确认的。

接收缓存:按序到达但尚未被接牧,未按序到达的。

①A的发送窗口并不总是和B的接收窗口一样大。②未按序到达的数据,TCP并未规定如何处理,③接收方必须有累积确认的功能。

5.7TCP的流量控制

利用滑动窗口实现流量控制。

流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。TCP的窗口单位是字节,不是报文段。

解决死锁局面:TCP为每一个连接设有一个持续计时器,时间到了就发一个零窗口探测报文段,1字节。

5.8TCP的拥塞控制

网络中某一资源的需求超过了该资源所能提供的可用部分。会使性能变坏,吞吐量随输入负符的增大而下降。

引起因素:①某个节点缓存的容量太小。②处理机处理的速率太低。

拥塞控制是一个全局性过程。流量控制是个端到端问题。

闭环控制:监测网络系统。发送拥塞发生的信息到可采取行动的地方。调整网络系统的运行。

拥塞控制方法:慢开始,拥塞避免,快重传和快恢复。

5.9TCP的运输连接管理

连接建立:SYN=1,ACK=1。SYN报文段不能携带数据,但要消耗掉一个序号ACK报文段可以携带数据,如果不携带数据则不消耗序号。3报文握手。

85129ac8b0754b23a4359b6eaf37d480.jpg

连接释放:FIN=1,ACK=1。四报文握手。

1af7361fc7aa400896dfbf0ee09ce4c0.jpg

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下SUID提权学习 - 从原理到使用

目录 1. 文件权限介绍1.1 suid权限1.2 sgid权限1.3 sticky权限 2. SUID权限3. 设置SUID权限4. SUID提权原理5. SUID提权步骤6. 常用指令的提权方法6.1 nmap6.2 find6.3 vim6.4 bash6.5 less6.6 more6.7 其他命令的提权方法 1. 文件权限介绍 linux的文件有普通权限和特殊权限&a…

基于Python的自动化测试框架-Pytest总结-第一弹基础

Pytest总结第一弹基础 入门知识点安装pytest运行pytest测试用例发现规则执行方式命令行执行参数 配置发现规则 如何编写测试Case基础案例断言语句的使用pytest.fail() 和 Exceptions自定义断言函数异常测试测试类形式 pytest的Fixture使用Fixture入门案例使用fixture的Setup、T…

RabbitMQ 之 延迟队列

目录 ​编辑一、延迟队列概念 二、延迟队列使用场景 三、整合 SpringBoot 1、创建项目 2、添加依赖 3、修改配置文件 4、添加 Swagger 配置类 四、队列 TTL 1、代码架构图 2、配置文件代码类 3、生产者 4、消费者 5、结果展示 五、延时队列优化 1、代码架构图 …

CentOS中使用SSH远程登录

CentOS中使用SSH远程登录 准备工作SSH概述SSH服务的安装与启动建立SSH连接SSH配置文件修改SSH默认端口SSH文件传输 准备工作 两台安装CentOS系统的虚拟机 客户机(192.168.239.128) 服务器(192.168.239.129) SSH概述 Secure S…

叮!云原生虚拟数仓 PieCloudDB Database 动态包裹已送达

第一部分 PieCloudDB Database 最新动态 支持动态配置查询簇 PieCloudDB 最新内核版本 v2.14.0 新增动态配置查询簇功能。PieCloudDB 动态配置查询簇功能实现可伸缩的并行化查询,可提升单个查询并行使用底层资源的能力,同时加快查询响应速度。 动态配…

基于隐马尔可夫模型的股票预测【HMM】

基于机器学习方法的股票预测系列文章目录 一、基于强化学习DQN的股票预测【股票交易】 二、基于CNN的股票预测方法【卷积神经网络】 三、基于隐马尔可夫模型的股票预测【HMM】 文章目录 基于机器学习方法的股票预测系列文章目录一、HMM模型简介(1)前向后…

学生管理系统

一、登录 用户类:属性:用户名、密码、身份证号码、手机号码 1、欢迎页面 System.out.println("欢迎来到学生管理系统"); System.out.println("请选择操作1登录 2注册 3忘记密码"); 代码实现: //欢迎页面public static…

Rabbitmq部署

环境 操作系统CentOS7 安装 准备安装包 # rabbitmq基于erlang语言开发,需先安装erlang语言解释器 [rootnode2 ~]# ls erlang-21.3-1.el7.x86_64.rpm rabbitmq-server-3.8.8-1.el7.noarch.rpm [rootnode2 ~]# rpm -ivh erlang-21.3-1.el7.x86_64.rpm #安装soca…

【嵌入式】探索嵌入式世界:在ARM上构建俄罗斯方块游戏的奇妙之旅

文章目录 前言:1. 简介2. 总体设计思路及功能描述2.1 设计思路2.2 功能描述2.3 程序流程图 3. 各部分程序功能及详细说明3.1 游戏界面函数3.1.1 游戏界面中的图片显示3.1.2 游戏开始界面3.1.3 游戏主界面3.1.4 游戏结束广告界面3.1.5 游戏界面中的触摸反馈3.1.6 游戏…

全球首款搭载Google Gemini和GPT-4o的智能眼镜发布

智能眼镜仍然是一个尚未完全成熟的未来概念,但生成式人工智能的到来显著提升了这些设备的能力。Meta 的 Ray-Ban 智能眼镜被许多人视为当今最好的选择之一,而现在 Solos AirGo Vision 正在为其带来竞争,这款眼镜还集成了 Google Gemini 支持。…

python代码报错

1.报错信息: asyncio.WindowsSelectorEventLoopPolicy()^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: module asyncio has no attribute WindowsSelectorEventLoopPolicy 2.解决办法: if __name__ "__main__": # 移除或注…

❤ Gitee平台的使用

Gitee平台的使用 文章目录 Gitee平台的使用一、Gitee的注册1、注册2、添加邮箱 二、仓库的创建 和 团队成员的添加1、单击右上角的 **+** 号 、创建仓库2、如下填写即可 三、仓库克隆到本地1、安装好git 和 小乌龟(TortoiseGit)2、打开仓库 复…

(超详细)数据结构——“队列”的深度解析

目录 前言: 1.队列的概念 2.队列的实现 3.代码实现队列 3.1 队列的初始化 3.2 插入 3.3 删除 3.4 队列的队头,队尾和大小 3.5 判空 3.6 销毁 3.7 测试 前言: 队列与栈都是线性表,它们的结构也非常类似&#…

“论单元测试方法及应用”写作框架,软考高级论文,系统架构设计师论文

论文真题 1、概要叙述你参与管理和开发的软件项目,以吸你所担的主要工作。 2、结给你参与管理和开发的软件项目,简要叙述单元测试中静态测试和动态测试方法的基本内容。 3、结给你惨与管理和研发的软件项目,体阐述在玩测试过程中,如何确定白盒测试的覆盖标准,及如…

Three.js机器人与星系动态场景:实现3D渲染与交互式控制

内容摘要:使用Three.js库构建了一个交互式的3D场景。组件中创建了一个机器人模型,包括头部、眼睛、触角、身体和四肢,以及两个相同的机器人实例以实现动态效果。场景中还加入了粒子效果,模拟星系环境,增强了视觉效果。…

设备调试上位机GUI

C Fast Qt C 前端 原来真的不需要在 design 上画来画去,有chat-gpt 那里不知道问哪里 全是组件拼起来的,不需要画,最后发现其实也是定式模式,跟着AI 学套路

JavaScript将参数传递给事件处理程序

本篇文件我们将实现导航栏中,选中时候,会将您选中的进行高亮显示; ● 首先我们来获取我们想要的HTML元素 const nav document.querySelector(.nav);● 接着我们来写选中的高亮显示 nav.addEventListener(mouseover, function (e) { //鼠…

Python系统教程01

Python 是一门解释性语言,相对更简单、易学,它可以用于解决数学问题、获取与分 析数据、爬虫爬取网络数据、实现复制数学算法等等。 1、print()函数: print()书写时注意所有的符号都是英文符号。print()输出内容时,若要输出字符…

安卓实现微信聊天气泡

一搜没一个能用的&#xff0c;我来&#xff1a; 布局文件&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xml…

【MySQL】数据库事务详解

文章目录 前言1. 事务的定义2. 事务的四个特性2.1 原子性2.2 一致性2.3 隔离性2.4 持久性 3. 事务的并发问题3.1 脏读3.2 不可重复读3.3 幻读3.4 更新丢失 4. 事务的隔离级别5. 事务的使用结语 前言 假设我们现在需要操作数据库进行转账&#xff0c;A 给 B 转账 100 块钱&…