深圳品牌设计公司排行/徐州网页关键词优化

深圳品牌设计公司排行,徐州网页关键词优化,wordpress写公式,眉山市做网站的公司文章目录 传输层协议概述为什么需要传输层?传输层功能网络层与传输层在实现 “端到端” 传输的异同两类服务:面向连接/无连接服务 传输控制协议 TCPTCP 协议数据单元格式TCP 的重传机制快重传和快恢复快重传举例快恢复算法 用户数据报协议 UDPUDP 概述UDP 基本工作过…

文章目录

  • 传输层协议概述
    • 为什么需要传输层?
    • 传输层功能
      • 网络层与传输层在实现 “端到端” 传输的异同
      • 两类服务:面向连接/无连接服务
  • 传输控制协议 TCP
    • TCP 协议数据单元格式
    • TCP 的重传机制
      • 快重传和快恢复
        • 快重传举例
        • 快恢复算法
  • 用户数据报协议 UDP
    • UDP 概述
    • UDP 基本工作过程
    • UDP 用户数据报的首部(Head)格式
  • TCP 与 UDP 的比较

传输层协议概述

在这里插入图片描述

为什么需要传输层?

  • OSI网络层是通过 “逐节点”(Hop-by-Hop)实现源主机到目的主机间网络协议数据单元(Internet 中的 IP)的 “端到端” 传输的。即使网络层在节点间提供服务确认,仍不能保障 “端到端” 可靠传输(如果中间节点对收到的数据确认后,在前传前出现节点故障)。
  • 网络层地址仅能标识网络设备或端系统的网络端口,不能作为标识系统内部的多个应用进程(用户平台的应用进程或信控管理平台的特殊应用进程)的标识符,因此需要应用进程传输层标识符(TSAP);在 Internet 中称为 “端口号”。
    在这里插入图片描述

传输层功能

  • 连接管理
  • 流量控制
  • 差错检测
  • 对用户请求的响应
  • 建立无连接或面向连接的通信
    — 面向连接:会话建立、数据传输、会话拆除
    — 无连接:不保证数据的有序到达

网络层与传输层在实现 “端到端” 传输的异同

  • 网络层(主机间):通过通信子网中中继系统逐级转发实现的 “源”、“目的” 主机间物理上的 “端到端” 的用户数据的传输。但网络层协议通常只定义节点间的转发过程,因此网络层协议执行过程不是 “端到端” 直接通信,而是 “逐级”(Hop-by-Hop)转发实现的物理上的端到端通信。
  • 传输层(应用进程间):由于用户数据在通信子网的用户数据平台上没有传输层实体,因此,应用进程利用传输层实现进程间的传输只是概念上/逻辑上的 “端到端” 的 “直接传输”。物理上仍然利用网络层逐级实现的端到端服务。

两类服务:面向连接/无连接服务

  • 提供面向连接服务的协议:TCP (Transmission Control Protocol) - RFC 973
  • 提供无连接服务的协议:UDP (UserDatagram Protocol) - RFC 768

传输控制协议 TCP

客户(主动请求) / 服务器(被动响应)工作模式:

建立连接:通过三次握手方式建立连接。
在这里插入图片描述
数据传输

  • 基本数据传输:能连续、双向传输字节流。
  • 提供敦促接收方迅速将收到的数据提交应用进程的功能(PUSH)。
  • 可靠性:数据损坏、丢失、重复和错序必须能恢复(机制:以字节为基础的序号、正确接收确认(ACK)、重传时钟、检错)。
  • 流量控制:窗口可变的 “滑动窗口” 流控方式,窗口大小以 “字节” 为基础。

连接拆除
请求拆除、两次拆除确认等待、请求方在确认的方式。
在这里插入图片描述

TCP 协议数据单元格式

在这里插入图片描述
源端口和目的端口字段
各占 2 字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现。

序号字段
占 4 字节。TCP 连接中传输的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。

确认号字段
占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。

数据偏移
占 4 bit,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移” 的单位不是字节而是 32 bit 字(4 字节为计算单位)。

保留字段
占 6 bit,保留为今后使用,但目前应置为 0。

紧急比特 URG
当 URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传输(相当于高优先级的数据)。

确认比特 ACK
只有当 ACK = 1 时确认号字段才有效。当 ACK = 0 时,确认号无效。

推送比特 PSH(PuSH)
接收 TCP 收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。

复位比特 RST(ReSeT)
当 RST = 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立传输连接。

同步比特 SYN
同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文。

终止比特 FIN(FINal)
用来释放一个连接。当 FIN = 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放传输连接。

窗口字段
占 2 字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。

检验和
占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。

紧急指针字段
占 16 bit。紧急指针指出:在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。

选项字段
长度可变。TCP 只规定了一种选项,即最大报文段长度 MSS(Maximum Segment Size)。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节”。MSS 是 TCP 报文段中的数据字段的最大长度。数据字段加上 TCP 首部才等于整个的 TCP 报文段。

填充字段
这是为了使整个首部长度是 4 字节的整数倍。

TCP 的重传机制

重传机制是 TCP 中最重要和最复杂的问题之一。

TCP 每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。

快重传和快恢复

快重传算法规定,发送端只要一连收到三个重复的 ACK 即可断定有分组丢失了,就应立即重传丢失的报文段而不必继续等待为该报文段设置的重传计时器的超时。

不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。

快重传举例

在这里插入图片描述

快恢复算法
  1. 当发送端收到连续三个重复的 ACK 时,就重新设置慢开始门限 ssthresh。
  2. 与慢开始不同之处是拥塞窗口 cwnd 不是设置为 1,而是设置为 ssthresh + 3 x MSS。
  3. 若收到的重复的 ACK 为 n 个(n>3),则将 cwnd 设置为 ssthresh + n x MSS。
  4. 若发送窗口值还容许发送报文段,就按拥塞避免算法继续发送报文段。
  5. 若收到了确认新的报文段的 ACK,就将 cwnd 缩小到 ssthresh。

用户数据报协议 UDP

UDP 概述

UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。

虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。

  • 发送数据之前不需要建立连接。
  • UDP 的主机不需要维持复杂的连接状态表。
  • UDP 用户数据报只有 8 个字节的首部开销。
  • 网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。

UDP 基本工作过程

UDP 数据报的发送和接收通过 UDP 端口实现
端口是一个可读写的结构,具有内部的报文缓冲区;

数据报发送
UDP 软件将用户数据封装在 UDP 数据报中;
转交给 IP 软件,进行 IP 封装和转发;

数据报的接收
IP 层接收到 UDP 数据报, 提交给 UDP 软件的各端口;
端口判断该报文的目的端口号是否与当前端口匹配;
若匹配成功,将该数据报保存到相应端口的接收队列中;(若队列已满,则丢弃该数据报)
若未匹配,则丢弃该数据报,同时向源端发送 “端口不可达” 的 ICMP 包。

在这里插入图片描述

UDP 用户数据报的首部(Head)格式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

TCP 与 UDP 的比较

  • TCP 提供可靠的,面向连接的传输服务
  • UDP 提供不可靠的,无连接的传输服务
  • TCP 是面向流的协议;UDP 是基于数据报的协议
  • TCP 适用于一次传送大批量的数据
  • UDP 适用于多次少量数据的传输,实时性要求高的业务
  • 使用 TCP 传输的应用程序和协议包括:
    FTP
    Telnet
    ΗΤΤΡ
  • 使用 UDP 传输的应用程序和协议包括:
    RIP
    TFTP
    SNMP

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

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

相关文章

Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档

Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档 本文将对七个流行的定时任务调度库:node-cron、rxjs、bull、node-schedule、agenda、bree、cron。这些库都可以用来处理定时任务,但它们的特点和适用场景有所不同。我们将从…

DeepSeek 开放平台无法充值 改用其他平台API调用DeepSeek-chat模型方法

近几天DeepSeek开放平台无法充值目前已经关闭状态,大家都是忙着接入DeepSeek模型 ,很多人想使用DeepSeek怎么办? 当然还有改用其他平台API调用方法,本文以本站的提供chatgpt系统为例,如何修改DeepSeek-chat模型API接口…

Linux(centos)系统安装部署MySQL8.0数据库(GLIBC版本)

安装前检查服务器glibc版本,下载对应版本包 rpm -qa | grep glibc mysql安装包及依赖包已整理好,下载地址:https://pan.quark.cn/s/3137acc814c0,下载即可安装 一、下载MySQL mysql安装包及依赖包已整理好,下载地址…

6.2.图的存储结构-邻接矩阵法

一.邻接矩阵法存储不带权图: 结点不带权值: 1.左图的无向图中,A到B直达的有一条路,所以A行B列的值为1; 左图的无向图中,A到F没有直达的路,所以A行F列的值为0; 结论:无…

【VB语言】EXCEL中VB宏的应用

【VB语言】EXCEL中VB宏的应用 文章目录 [TOC](文章目录) 前言一、EXCEL-VB1.实验过程2.代码 二、EXCEL-VB 生成.c.h文件1.实验过程2.代码 四、参考资料总结 前言 1.WPS-VB扩展包 提示:以下是本篇文章正文内容,下面案例可供参考 一、EXCEL-VB 1.实验过…

2025年02月17日Github流行趋势

项目名称:OmniParser 项目地址url:https://github.com/microsoft/OmniParser 项目语言:Jupyter Notebook 历史star数:8971 今日star数:969 项目维护者:yadong-lu, ThomasDh-C, aliencaocao, nmstoker, kris…

RocketMQ 5.0安装部署

0.前言 在微服务架构逐渐成为主流的今天,消息队列如同数字世界的快递员,承担着系统间高效通信的重要使命。 Apache RocketMQ 自诞生以来,因其架构简单、业务功能丰富、具备极强可扩展性等特点被众多企业开发者以及云厂商广泛采用。历经十余…

Ubuntu 22.04.5 LTS 安装企业微信,(2025-02-17安装可行)

一、依赖包(Ubuntu 20.04/Debian 11) 点击下载https://www.spark-app.store/download_dependencies_latest 1、 下载最新的依赖包。 请访问星火应用商店依赖包下载页面, 下载最新的依赖包。2、解压依赖包 </

Java高频面试之SE-22

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天又来了&#xff01;哈哈哈哈哈嗝&#x1f436; Java中的Optional了解多少&#xff1f; 在 Java 中&#xff0c;Optional 是 Java 8 引入的一个容器类&#xff0c;用于显式处理可能为 null 的…

使用OBS和nginx实现直播流

使用OBS和nginx实现直播流&#xff0c;如 1&#xff0c;下载OBS OBS用于视频录制和直播的免费开源软件。在 Windows、Mac 或 Linux 上快速轻松地下载并开始流式传输。官网下载 2&#xff0c;下载nginx 注意nginx需要下载带gryghon版本&#xff0c;这个才有rtmp模块&#xff0…

PyTorch 源码学习:阅读经验 代码结构

分享自己在学习 PyTorch 源码时阅读过的资料。本文重点关注阅读 PyTorch 源码的经验和 PyTorch 的代码结构。因为 PyTorch 不同版本的源码实现有所不同&#xff0c;所以笔者在整理资料时尽可能按版本号升序&#xff0c;版本号见标题前[]。最新版本的源码实现还请查看 PyTorch 仓…

小爱音箱控制手机和电视听歌的尝试

最近买了小爱音箱pro&#xff0c;老婆让我扔了&#xff0c;吃灰多年的旧音箱。当然舍不得&#xff0c;比小爱还贵&#xff0c;刚好还有一台红米手机&#xff0c;能插音箱&#xff0c;为了让音箱更加灵活&#xff0c;买了个2元的蓝牙接收模块Type-c供电3.5接口。这就是本次尝试起…

Pycharm+CodeGPT+Ollama+Deepseek

首先&#xff0c;体验截图&#xff1a; 接着&#xff1a; 1、下载Ollama&#xff1a; Download Ollama on macOS 2、下载模型 以1.5b为例&#xff0c;打开命令行&#xff0c;输入: ollama run deepseek-r1:1.5b 3、Pycharm安装Code GPT插件 打开PyCharm&#xff0c;找到文…

25/2/17 <嵌入式笔记> 桌宠代码解析

这个寒假跟着做了一个开源的桌宠&#xff0c;我们来解析下代码&#xff0c;加深理解。 代码中有开源作者的名字。可以去B站搜着跟着做。 首先看下main代码 #include "stm32f10x.h" // Device header #include "Delay.h" #include &quo…

Qt中基于开源库QRencode生成二维码(附工程源码链接)

目录 1.QRencode简介 2.编译qrencode 3.在Qt中直接使用QRencode源码 3.1.添加源码 3.2.用字符串生成二维码 3.3.用二进制数据生成二维码 3.4.界面设计 3.5.效果展示 4.注意事项 5.源码下载 1.QRencode简介 QRencode是一个开源的库&#xff0c;专门用于生成二维码&…

【Android开发】华为手机安装包安装失败“应用是非正式版发布版本,当前设备不支持安装”问题解决

问题描述 我们将Debug版本的安装包发送到手机上安装&#xff0c;会发现华为手机有如下情况 解决办法 在文件gradle.properties中粘贴代码&#xff1a; android.injected.testOnlyfalse 最后点击“Sync now”&#xff0c;等待重新加载gradle资源即可 后面我们重新编译Debug安装…

前端面试手写--虚拟列表

目录 一.问题背景 二.代码讲解 三.代码改装 四.代码发布 今天我们来学习如何手写一个虚拟列表,本文将把虚拟列表进行拆分并讲解,然后发布到npm网站上. 一.问题背景 为什么需要虚拟列表呢?这是因为在面对大量数据的时候,我们的浏览器会将所有数据都渲染到表格上面,但是渲…

vue项目本地svg图标使用

提前准备&#xff1a; 1、一个本地的svg图片 这个直接从网上找一个就行 2、文件整体目录 安装插件 npm i vite-plugin-svg-iconsvite.config.ts中配置插件 完整代码 import { fileURLToPath, URL } from node:url import { resolve } from path import { defineConfig } f…

Go: 使用VS Code配置Go项目支持Windows与Linux双系统调试

在现代软件开发中&#xff0c;越来越多的开发者开始使用VS Code等集成开发环境&#xff08;IDE&#xff09;来提高生产力&#xff0c;特别是在支持远程开发时。VS Code的远程SSH功能&#xff0c;使得开发者可以在本地Windows电脑上&#xff0c;通过远程SSH连接到Linux服务器&am…

python中使用数据库sqlite3

Python使用sqlite3数据库 python3.x标准库内置了SQLite3 查看sqlite的版本 import sqlite3 sqlite_version sqlite3.sqlite_version print(f"SQLite version: {sqlite_version}") 显示 导入模块连接sqlitte3 import sqlite3 consqlite3.connect("d:/fi…