计算机网络-运输层

运输层

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

概述

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

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

在这里插入图片描述

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

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

  • 面向连接的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日快乐

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Github上传大文件(>25MB)教程

0.在github中创建新的项目(已创建可忽略这一步) 如上图所示,点击New repository 进入如下页面: 1.下载Git LFS 下载git 2.打开gitbash 3.上传文件,代码如下: cd upload #进入名为upload的文件夹,提前…

k8s集群node节点状态为Not Ready

目录 一、Node节点Not Ready状态的可能原因 二、排查node节点状态为Not Ready的原因 一、Node节点Not Ready状态的可能原因 node节点状态为Not Ready可能的原因有: 1.网络插件出问题 有过安装经验的小伙伴应该很熟悉未安装网络插件的情况下node节点在集群中的状…

【MacOs】proxychains配置使用

一、开始 1. 安装proxychains 使用brew进行安装 brew install proxychains-ng没有homebrew的,可以使用该命令安装 /usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)"2. 配置代理配置文件 cd /opt/homeb…

AUTOSAR配置工具开发教程 - 开篇

简介 本系列的教程,主要讲述如何自己开发一套简单的AUTOSAR ECU配置工具。适用于有C# WPF基础的人员。 简易介绍见:如何打造AUTOSAR工具_autosar_mod_ecuconfigurationparameters-CSDN博客 实现版本 AUTOSAR 4.0.3AUTOSAR 4.2.2AUTOSAR 4.4.0 效果 …

麻雀优化算法(Sparrow Search Algorithm)

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 算法背景 麻雀算法(Sparrow Search Algorithm, SSA)是一种受自然界麻雀群体行为启发的优化算法。想象一下,一…

Linux学习-网络UDP

网络 数据传输,数据共享 网络协议模型 OSI协议模型 应用层 实际发送的数据 表示层 发送的数据是否加密 会话层 是否建立会话连接 传输层 数据传输的方式(数据报、流式&#…

esp32上PWM呼吸灯

1、什么是pwm PWM(Pulse Width Modulation)简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信、工控等方面。 1.1频率 单位时间内PWM方波重复的次数 1.2占空比 一个周期内…

HarmonyOS 应用开发-根据icon自适应背景颜色

介绍 本示例将介绍如何根据图片设置自适应的背景色。 效果图预览 使用说明 转换图片为PixelMap,取出所有像素值遍历所有像素值,查找到出现次数最多的像素,即为图片的主要颜色适当修改图片的主要颜色,作为自适应的背景色 实现思…

云岚到家项目

一.项目介绍 云岚到家项目是一个家政服务o2o平台,互联网家政是继打车、外卖后的又一个风口,创业者众多,比如:58到家,天鹅到家等,o2o(Online To Offline)是将线下商务的机会与互联网…

负荷预测 | Matlab基于TCN-BiGRU-Attention单输入单输出时间序列多步预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于TCN-BiGRU-Attention单输入单输出时间序列多步预测; 2.单变量时间序列数据集,采用前12个时刻预测未来96个时刻的数据; 3.excel数据方便替换,运行环境matlab…

高端大气自适应全屏酷炫渐变卡片html源码图片切换特效html5源码导航引导网站源码

源码特点: 1:手工书写DIVCSS、代码精简无冗余。 2:自适应结构,全球先进技术,高端视觉体验。 3:SEO框架布局,栏目及文章页均可独立设置标题/关键词/描述。 4:附带测试数据、安装教程、…

说说对WebSocket的理解?应用场景?

一、是什么 WebSocket,是一种网络传输协议,位于OSI模型的应用层。可在单个TCP连接上进行全双工通信,能更好的节省服务器资源和带宽并达到实时通迅 客户端和服务器只需要完成一次握手,两者之间就可以创建持久性的连接&#xff0c…

flutter组件_AlertDialog

官方说明:A Material Design alert dialog. 翻译:一个材料设计警告对话框。 作者释义:显示弹窗,类似于element ui中的Dialog组件。 AlertDialog的定义 const AlertDialog({super.key,this.icon,this.iconPadding,this.iconColor,t…

c++的学习之路:18、容器适配器与反向迭代器

摘要 本文有可能讲的不是特别清楚,我也是初学者有的理解可能有偏差欢迎指出,文章末附上导图。 目录 摘要 一、什么是适配器 二、STL标准库中stack和queue的底层结构 三、deque 1、deque的原理介绍 2、deque的缺陷 四、反向迭代器 五、思维导图…

政安晨:【Keras机器学习实践要点】(二十一)—— MobileViT:基于变换器的移动友好图像分类模型

目录 简介 导入 超参数 MobileViT 实用程序 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! …

kafka(四)——生产者流程分析(c++)

前言 kafka生产者负责将数据发布到kafka集群的主题;kafka生产者消息发送方式有两种: 同步发送异步回调发送 流程 流程说明: Kafka Producer整体可看作是一个异步处理操作;消息发送过程中涉及两个线程:main线程和se…

JetBrains IDE(IDEA/WebStorm)配置GitHub Copilot

关于 GitHub Copilot 和 JetBrains IDE GitHub Copilot 在编写代码时提供 AI 对程序员的自动完成样式的建议。 有关详细信息,请参阅“关于 GitHub Copilot Individual”。 如果使用 JetBrains IDE,可以直接在编辑器中查看并合并来自 GitHub Copilot 的…

DXP学习002-PCB编辑器的环境参数及电路板参数相关设置

目录 一,dxp的pcb编辑器环境 1,创建新的PCB设计文档 2,PCB编辑器界面 1)布线工具栏 2)公用工具栏 3)层标签栏 ​编辑 3,PCB设计面板 1)打开pcb设计面板 4,PCB观…

线程的666种状态

文章目录 在Java中,线程有以下六种状态: NEW:新建状态,表示线程对象已经被创建但还未启动。RUNNABLE:可运行状态,表示线程处于就绪状态,等待系统分配CPU资源执行。BLOCKED:阻塞状态…

抖音在线点赞任务发布接单运营平台PHP网站源码 多个支付通道+分级会员制度

源码介绍 1、三级代理裂变,静态返佣/动态返佣均可设置。(烧伤制度)。 2、邀请二维码接入防红跳转。 3、自动机器人做任务,任务时间可设置,机器人价格时间可设置。 4、后台可设置注册即送X天机器人。 5、不同级别会…