计算机网络-运输层

运输层

湖科大计算机网络
参考笔记,如有侵权联系删除

概述

运输层的任务:如何为运行在不同主机上的应用进程提供直接的通信服务

运输层协议又称端到端协议

在这里插入图片描述

运输层使应用进程看见的好像是在两个运输层实体之间有一条端到端的逻辑通信信道

运输层为应用层提供了两种不同的协议:

  • 面向连接的TCP
  • 无连接的UDP

端口号、复用与分用

TCP/IP体系的运输层使用端口号来区分应用层的不同应用进程(为了使运行不同操作系统的计算机应用进程能够实现网络通信):

  • 端口号用16比特表示,取值范围0-65535:
  • 熟知端口号:0-1023,IANA把这些端口号指派给了TCP/IP体系中最重要的一些应用协议,例如FTP使用21/20,HTTP使用80,DNS使用53
  • 登记端口号:1024-49151,为没有熟知端口号的应用程序使用。
  • 短暂端口号:49152-65535,留给客户进程暂时使用。
  • 端口号只具有本地意义,端口号只是为了标识本计算机应用层中各进程,不同计算机的相同端口号没有联系

在这里插入图片描述

在这里插入图片描述

UDP与TCP的对比

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意:实际网络中,两端都可发送接收;一个TCP包含上千个报文段是很常见的

在这里插入图片描述

在这里插入图片描述

TCP的流量控制

滑动窗口机制:

  • TCP接收方利用自己的接收窗口的大小来限制发送方发送窗口的大小
  • TCP发送方收到接收方的零窗口通知后,启动持续计时器。持续计时器超时后,向接收方发送零窗口探测报文

在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

TCP的拥塞控制

拥塞:对网络中某一资源的需求超过了所能提供的可用部分,网络性能变坏

若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降

屏幕截图 2024-04-06 174321

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

快重传:使发送方尽快进行重传,而不是等超时重传计时器超时再重传

  • 要求接收方不要等待自己发送数据才捎带确认,而是要立即发送确认
  • 收到了失序的报文段也要立即发送对已收到报文段的重复确认
  • 发送方一旦收到3个连续的重复确认,就将相应的报文段立即重传,而不是等该报文段的超时重传计时器超时再重传

在这里插入图片描述

发送方一旦收到3个重复确认,就知道只是丢失了个别报文段,于是执行快恢复算法

  • 发送方将慢开始门限ssthresh值和拥塞窗口cwnd值调整为当前窗口的一半,开始执行拥塞避免算法
  • 也有的快恢复门限ssthresh值和拥塞窗口cwnd值再增大一些,等于新的ssthresh+3

在这里插入图片描述

TCP超时重传时间的选择

不能直接利用某次测量得到的RTT样本来计算超时重传时间RTO

利用每次测量的RTT样本,计算加权平均往返时间RTTs(又称平滑的往返时间)

显然,超时重传时间RTO应略大于加权平均往返时间RTTs

在这里插入图片描述
在这里插入图片描述

Karn算法:在计算加权平均往返时间RTTs时,只要报文段重传了,就不采用其往返时间RTT样本。

问题:报文段时延突然增大很多,并且保存很长一段时间。根据算法导致重传时间无法更新。

修正:报文段每重传依次,就把超时重传时间RTO增大一些,典型做法取为旧的2倍

TCP可靠传输的实现

发送方的发送窗口并不总是和接收方的接收窗口一样大

TCP通常对不按序到达的数据是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程

TCP要求接收方必须有累积确认和捎带确认机制

  • 接收方不应该过分退迟发送确认
  • 捎带确认并不经常发生

TCP的通信是全双工通信

TCP基于以字节为单位的滑动窗口实现可靠传输

在这里插入图片描述

TCP连接建立

三次握手:
在这里插入图片描述

TCP连接释放

四次挥手:
在这里插入图片描述

是否需要时间等待?

如果没有,如果第四次挥手丢失,服务器会一直发送第三次挥手

在这里插入图片描述

TCP报文段的首部格式

TCP报文段等于首部加数据载荷

在这里插入图片描述

序号:占32比特,取值范围[0,2^32-1],序号增加到最后一个,下一个序号又回到0。

指出本TCP报文段数据载荷的第一个字节的序号··

确认号:占32比特,取值范围[0,2^32-1],序号增加到最后一个,下一个序号又回到0。

指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据的确认

若确认号=n,则表明到序号n-1为止的所有数据都已正确接收,期望接收序号为n的数据

确认标志位ACK:=1确认号字段有效;=0确认号字段无效

TCP规定,在连接建立后所有传送的TCP报文都必须把ACK置1。

数据偏移:占4比特,并以4字节为单位。

指出TCP报文段的数据载荷部分的起始处距离TCP报文段的起始处有多远(实际上指出了TCP报文段的首部长度)

首部固定长度20字节,因此数据偏移字段最小值为(0101)(二进制)

首部最大长度60字节,因此数据偏移字段最大值为(1111)(二进制)

保留:占6比特,保留为今后使用,目前应置为0。

窗口:占16比特,以字节为单位。

指出发送本报文段的一方的接收窗口

流量控制

校验和:占16比特,检查TCP报文段的首部和数据载荷。计算时,加上伪首部。

同步标志位SYN:在TCP连接建立时同步序号。

终止标志位FIN:用来释放TCP连接。

复位标志位RST:用来复位TCP连接。=1表明出现了异常,需要重新建立连接。

推送标志位PSH:=1尽快上交应用进程。

紧急标志位URG:=1紧急指针有效,=0无效。

紧急指针:占16比特,以字节为单位,用来指明紧急数据长度。

当发送方有紧急数据时,可将紧急数据插队到发送缓存的最前面,并立刻封装到一个TCP报文段中进行发送

选项:

  • 最大报文长度MSS选项:TCP报文段数据载荷部分最大长度
  • 窗口扩大选项:提高吞吐率
  • 时间戳选项:计算往返时间RTT;防止序号绕回PAWS
  • 选择确认选项

填充:确保报文段首部被4整除
指明紧急数据长度。

当发送方有紧急数据时,可将紧急数据插队到发送缓存的最前面,并立刻封装到一个TCP报文段中进行发送

选项:

  • 最大报文长度MSS选项:TCP报文段数据载荷部分最大长度
  • 窗口扩大选项:提高吞吐率
  • 时间戳选项:计算往返时间RTT;防止序号绕回PAWS
  • 选择确认选项

填充:确保报文段首部被4整除


408日快乐

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

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

相关文章

鸿蒙原生应用已超4000个!

鸿蒙原生应用已超4000个! 来自 HarmonyOS 微博近期消息,#鸿蒙千帆起# 重大里程碑!目前已有超4000个应用加入鸿蒙生态。从今年1月18日华为宣布首批200多家应用厂商正在加速开发鸿蒙原生应用,到3月底超4000个应用,短短…

【算法详解】二分查找

1. 二分查找算法介绍 「二分查找算法(Binary Search Algorithm)」:也叫做 「折半查找算法」、「对数查找算法」。是一种在有序数组中查找某一特定元素的搜索算法。 基本算法思想:先确定待查找元素所在的区间范围,在逐步…

k8s_入门_命令详解

命令详解 kubectl是官方的CLI命令行工具,用于与 apiserver进行通信,将用户在命令行输入的命令,组织并转化为 apiserver能识别的信息,进而实现管理k8s各种资源的一种有效途径 1. 帮助 2. 查看版本信息 3. 查看资源对象等 查看No…

C语言——文件管理

文件:即磁盘上的文件,使用文件可以将数据直接存放在电脑的硬盘上,做到数据持久化。 在程序设计中,按文件的功能划分,将文件分为程序文件与数据文件 程序文件 程序文件包括源文件(.c)&#xff0…

MySQL - 基础三

11、事务管理 CURD不加控制,会有什么问题? 当客户端A检查还有一张票时,将票卖掉,还没有执行更新数据库时,客户端B检查了票数,发现大于0,于是又卖了一次票。然后A将票数更新回数据库。这是就出现…

C语言从入门到实战————文件操作

目录 前言 1. 为什么使用文件? 2. 什么是文件? 2.1 程序文件 2.2 数据文件 2.3 文件名 3. ⼆进制文件和文本文件? 4. 文件的打开和关闭 4.1 流和标准流 4.1.1 流 4.1.2 标准流 4.2 文件指针 4.3 文件的打开和关闭 5. 文…

javaWeb车辆管理系统设计与实现

摘 要 随着经济的日益增长,车辆作为最重要的交通工具,在企事业单位中得以普及,单位的车辆数目已经远远不止简单的几辆,与此同时就产生了车辆资源的合理分配使用问题。 企业车辆管理系统运用现代化的计算机管理手段,不但可以对车辆的使用进行合理的管理,…

基于ssm的充电桩综合管理系统(java项目+文档+源码)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的充电桩综合管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 充电桩综合管理系统的主要使…

护眼台灯品牌哪个品牌好用?护眼台灯品牌排行推荐

在光照不足的环境中,护眼台灯还能提升阅读和学习的视觉舒适度,减轻眼疲劳和视觉疲劳的可能性。鉴于当今儿童和青少年的学习用眼时间较长,而且他们处于视力发展的关键阶段,眼瞳更为敏感,容易发生近视,因此&a…

【产品】ADW300 无线计量仪表 用于计量低压网络的三相有功电能

1 概述 ADW300 无线计量仪表主要用于计量低压网络的三相有功电能,具有体积小、精度高、功能丰富等优点,并且可选通讯方式多,可支持 RS485 通讯和 Lora、2G、NB、4G 等无线通讯方式,增加了外置互感器的电流采样模式,从…

App加固:不同类型和费用对比

文章目录 [TOC]引言应用程序加固是什么不同类型[App加固](https://www.ipaguard.com/)的费用对比基础加固高级加固云加固 白嫖的混淆加密工具](https://www.ipaguard.com/)-[ipaguard总结参考资料 引言 在当前移动应用市场中,安全性已经成为一个非常重要的话题。为…

心灵鸡汤之励志正能量文案,积极向上热爱生活短句

1、在一切变好之前,我们总要经历一些不开心的日子,这段日子也许很长,也许只是一觉醒来。有时候,选择快乐,更需要勇气。 2、靠自己,才能无惧艰难,靠他人,永远害怕风霜,别…

跨云迁移实操:AWS RDS for mysql 迁移至腾讯云mysql --DTS方式

实操场景:从AWS RDS for mysql 迁移至腾讯云云数据库Mysql,通过腾讯云数据传输服务DTS,进行实时全量增量迁移. 下面九河云给大家带来具体实践介绍 购买迁移数据库--目的端机器(腾讯云MYSQL) 可以源端为5.7所以新建一个参数模版 其…

nginx 配置访问地址和解决跨域问题(反向代理)

1、配置访问地址(通过ip访问) //配置ip访问地址 location ^~/auditApp{alias /usr/local/front-apps/cbd/auditApp;index index.html;if (!-e $request_filename) {rewrite ^/(.*) /auditApp/index.html last;break;}} 2、解决跨域问题&…

Ceph学习 -4.Ceph组件介绍

文章目录 1.Ceph组件介绍1.1 组件介绍1.2 流程解读1.2.1 综合效果图1.2.2 数据存储逻辑 1.3 小结 1.Ceph组件介绍 学习目标:这一节,我们从组件介绍、流程解读、小结三个方面来学习。 1.1 组件介绍 无论是想向云平台提供 Ceph 对象存储和 Ceph 块设备服务…

Qt快速入门到熟练(3.程序运行发布与设置图标)

程序运行发布 当我们执行过qt过后,将会在项目目录里面生成出一个debug构建目录,点击进去选择debug文件夹,就可以看到我们生成出来的可执行文件。 很显然我们的项目就叫做MyFirstWidget,所以生成的可执行文件在没有人为设置的情…

什么是国密SSL证书,和其他SSL证书的区别?

我们要了解什么是SSL证书。SSL(Secure Sockets Layer,安全套接层)是一种安全协议,主要用于在互联网上对通信双方进行身份验证以及保障数据的安全传输。而SSL证书则是由权威的数字证书认证机构签发的,用于证明网站身份的…

Spring事务简介,事务角色,事务属性

1.Spring事务简介 事务作用:在数据层保障一系列的数据库操作同成功同失败Spring事务作用:在数据层或业务层保障一系列的数据操作同成功同失败 public interface PlatformTransactionManager{void commit(TransactionStatus status) throws TransactionE…

武汉星起航:跨境电商新航标,打造卓越卖家孵化平台!

在全球经济一体化的浪潮下,跨境电商行业蓬勃发展,成为推动国际贸易增长的新引擎。在这个充满挑战与机遇的舞台上,武汉星起航电子商务有限公司以其深厚的自营经验和专业的卖家孵化服务,成为跨境电商领域的璀璨明星。 武汉星起航电…

ESP32cam 摄像头 AIcam 全球远程视频监控的实现方法

AIcam远程视频监控 ​ 在学习应用各种物联网创客场景时我们时常会用到远程视频监控,当然我们可以通过发送图片的方式的来远程查看,但如果能视频查看将会更加的生动,比如在公司查看家里宠物的动态,鱼儿的活动情况。。。。。。 这个…