当前位置: 首页 > news >正文

计算机网络之运输层

本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》

04 传输层

在网上看到其他人做了相关笔记,就不再多余写了,直接参考着学习吧。  

王道考研 计算机网络笔记 第五章:传输层_王道计算机网络传输层_Baret-H的博客-CSDN博客

网络中的下三层只是将数据从一台主机发送到了另一台主机,到达目标主机后,通信过程并没有结束,因为数据最终是要发送到主机上的具体进程的,而具体发到哪个进程,就需要运输层来处理,运输层和应用层都是主机才有的层级,另外,运输层需要对传递的数据进行差错和流量控制等处理,运输层,可以说是负责在主机底层和上层应用之间负责运输的这么个层次。

传输层提供进程和进程之间的逻辑通信

网络层为主机间的通信提供服务,但是仅仅将数据传送到主机并没有通信结束,只有将数据送交到具体的进程或者进程中具体的线程才能实现通信的过程;因此网络层的通信并未完成,需要传输层实现进程与进程之间的逻辑通信;逻辑就是表示表面是进程之间的通信,但实际上是从上至下封装,再从下至上解封装的过程

运输层是下三层和上层之间的运输通道,位于“进程性通道”的第一层,TCP负责建立进程之间的逻辑通路,这里的建立连接指的是进程之间的逻辑连接,表示两个对端主机之间的相应进程建立了连接。

复用和分用

复用:发送方不同的应用进程,比如qq微信,都可以使用同一个传输层的协议来传送数据

分用:接收方在传输层解封装后,能将数据送交给对应正确的进程

传输层对收到的报文进行差错检测

网络层有首部校验和,但只是校验首部,没有校验数据部分,因此就需要传输层实现对数据的检错,而网络层的数据部分就是传输层的报文段,因此传输层对这个报文段进行了差错检测,网络层就不需要对数据部分进行差错检测,检测IP数据报的头部即可

传输层并不一定实现可靠传输,因为有两种协议TCP、UDP

网络层提供最大努力交付,是不可靠传输;因此需要上一层传输层担起可靠传输的职责;传输层有UDP、TCP两大协议;其中UDP不可靠,TCP可靠,因此网络层不能可靠传输的话,传输层就可以通过使用TCP协议保证可靠传输;如果传输层使用的UDP协议,就需要再最上一层应用层实现可靠传输。

TCP可靠性的一些机制

TCP三次握手建立连接,四次挥手释放连接。 

端口号(port)

端口号(port)是传输层协议的内容。

端口号是一个2字节、16比特位的整数。

端口号用来标识一个进程,告诉操作系统当前数据要交给哪一个进程来处理。

IP地址 + 端口号能够唯一标识网络上的某一台主机的某一个进程。

一个端口号只能被一个进程占用。

任何的网络服务或网络客户端,如果要进行正常的数据通信,必须要使用端口号来唯一标识自己。一个进程可以与一个端口号绑定,再加上主机IP地址该端口号就在网络层面上唯一标识一台主机上的唯一一个进程。

这种IP+port标识的方案叫做socket通信。

PID vs PORT

一台机器上会存在大量的进程,为了区分所有的进程,设计了PID来加以区分(系统的概念);但是只有部分进程需要进行网络数据请求,所以用port来标识这些需要进行网络数据请求的进程(网络的概念)。

这类似于身份证号可以唯一标识每一个人,但是在学校里又用学号来唯一标识每一个人。身份证号可以看做PID,学号可以看做port,它们之间并不冲突,都是在各自场景下最合适的管理方案。

注意,端口是传输层才有的概念。

传输层用一个 16 位端口号来标志一个端口。端口号只具有本地意义,它只是为了标志本计算机应用层中的各个进程在和传输层交互时的层间接口。在互联网的不同计算机中,相同的端口号是没有关联的。

TCP长连接和短连接-深入浅出(还在总说http长连接吗)_tcp长短连接-CSDN博客

UDP注意点

应用层给UDP多长的报文,UDP就会照样发送一整个完整的报文给网络层;

因此当报文长度过大时,网络层就需要对其进行分片,又因为接下来要传给链路层有MTU的限制,降低了网络层的效率。

TCP注意点

面向连接:使用TCP前必须先建立连接,传送数据完毕后再释放连接;虚连接表示表面上看上去是两个进程之间直接通信,但实际物理线路上需要从上而下封装再从下而上解封装。

每一个TCP连接只有两个端点,也就是每一个TCP连接都是点对点、一对一的。所以TCP协议无法广播、多播。

TCP提供可靠交付的服务,不丢不重,按序到达。

TCP提供全双工通信。两方可以同时发数据也可以同时接收数据,所以TCP连接的两端都会设置发送缓存和接收缓存。

TCP面向字节流:流是流入进程或从进程中流出的字节序列,虽然应用进程和TCP的交互是一次发送一个数据块,但是TCP会把交下来的数据仅仅看成一连串的无结构字节流。 

TCP协议报文 

TCP协议详解

TCP协议详解 - 知乎 (zhihu.com)

TCP 实战抓包分析

TCP 实战抓包分析_tcp抓包分析-CSDN博客

TCP协议:报文基础+三次握手+四次挥手

TCP协议:报文基础+三次握手+四次挥手-腾讯云开发者社区-腾讯云 (tencent.com)

TCP/IP协议(2): 以太网(IEEE 802.3) 协议 —— 构成有线局域网的基本协议-CSDN博客

TCP/IP协议详解 - 知乎 (zhihu.com)

UDP协议 

参考:

UDP协议详解 - 知乎 (zhihu.com)

网络-UDP协议详解(代码、实战)_udp data[9] != 0x11-CSDN博客

相关文章:

计算机网络之运输层

本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》 04 传输层 在网上看到其他人做了相关笔记,就不再多余写了,直接参考着学习吧。 王道考研 计算机网络笔记 第五章:传输层_王道计算机网络传输层_Baret-H的博客-CSDN博…...

DeepSeekMoE:迈向混合专家语言模型的终极专业化

一、结论写在前面 论文提出了MoE语言模型的DeepSeekMoE架构,目的是实现终极的专家专业化(expert specialization)。通过细粒度的专家分割和共享专家隔离,DeepSeekMoE相比主流的MoE架构实现了显著更高的专家专业化和性能。从较小的2B参数规模开始&#x…...

知识库管理驱动企业知识流动与工作协同创新模式

内容概要 知识库管理在现代企业中扮演着至关重要的角色,其价值不仅体现在知识的积累,还在于通过优质的信息流动促进协作与创新。有效的知识库能够将分散的信息整合为有序、易于访问的资源,为员工提供实时支持,进而提升整体工作效…...

二叉树-堆(补充)

二叉树-堆 1.二叉树的基本特性2.堆2.1.堆的基本概念2.2.堆的实现2.2.1.基本结构2.2.2.堆的初始化2.2.3.堆的销毁2.2.4.堆的插入2.2.5.取出堆顶的数据2.2.6.堆的删除2.2.7.堆的判空2.2.8.堆的数据个数2.2.9.交换2.2.10.打印堆数据2.2.11.堆的创建2.2.12.堆排序2.2.13.完整代码 3…...

Java面试题2025-并发编程基础(多线程、锁、阻塞队列)

并发编程 一、线程的基础概念 一、基础概念 1.1 进程与线程A 什么是进程? 进程是指运行中的程序。 比如我们使用钉钉,浏览器,需要启动这个程序,操作系统会给这个程序分配一定的资源(占用内存资源)。 …...

【方法论】ChatGPT与DeepSeek的联合应用,提升工作效率的新解决方案

标题:ChatGPT与DeepSeek的联合应用,提升工作效率的新解决方案 【表格】ChatGPT与DeepSeek联合应用流程 阶段工具主要任务优势备注初稿生成ChatGPT基于用户输入生成初步内容高效、快速生成内容,适应多种主题适合生成长篇文章、报告、分析等验…...

RoboMaster- RDK X5能量机关实现案例(一)识别

作者:SkyXZ CSDN:https://blog.csdn.net/xiongqi123123 博客园:https://www.cnblogs.com/SkyXZ 在RoboMaster的25赛季,我主要负责了能量机关的视觉方案开发,目前整体算法已经搭建完成,实际方案上我使用的上…...

5分钟带你获取deepseek api并搭建简易问答应用

目录 1、获取api 2、获取base_url和chat_model 3、配置模型参数 方法一:终端中临时将加入 方法二:创建.env文件 4、 配置client 5、利用deepseek大模型实现简易问答 deepseek-v3是截止博文撰写之日,无论是国内还是国际上发布的大模型中…...

Ikigai是什么

Ikigai(生き甲斐) 是一个日语词语,意思是“生活的意义”或“生命的价值所在”。它是一种关于人生意义的哲学概念,源自日本文化,强调通过找到自己热爱、擅长、社会需要以及能带来经济回报的交集来实现幸福和满足感。 I…...

基于PyQt设计的智能停车管理系统

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】设计意义【4】国内外研究现状【6】摘要1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】VSCODE【2】python【3】ptqt【4】HyperLPR31.5 参考文献二、安装Python环境1.1 环境介绍**1.2 Python版本介…...

Flink (十二) :Table API SQL (一) 概览

Apache Flink 有两种关系型 API 来做流批统一处理:Table API 和 SQL。Table API 是用于 Scala 和 Java 语言的查询API,它可以用一种非常直观的方式来组合使用选取、过滤、join 等关系型算子。Flink SQL 是基于 Apache Calcite 来实现的标准 SQL。无论输入…...

MySQL知识点总结(十三)

执行逻辑备份要具备哪些条件,其优缺点在哪。 逻辑备份是温备,创建逻辑备份文件时,MySQL服务器必须处于运行状态,其他应用程序在逻辑备份期间不能修改但可以执行读取操作。逻辑备份会把表结构和数据转换为SQL语句保存。 逻辑备份…...

ACL-2024 | 具身智能空间理解能力几何?EmbSpatial-Bench:视觉语言大模型在具身任务中空间理解水平测试基准

作者:Mengfei Du, Binhao Wu, Zejun Li, Xuanjing Huang, Zhongyu Wei 单位:复旦大学数据科学学院,复旦大学计算机科学学院 论文标题:EmbSpatial-Bench: Benchmarking Spatial Understanding for Embodied Tasks with Large Vis…...

动手学图神经网络(6):利用图神经网络进行点云分类

利用图神经网络进行点云分类 引言 在本教程中,大家将学习使用图神经网络(Graph Neural Networks, GNN)进行点云分类的基本工具。给定一组对象或点集的数据集,将这些对象嵌入到一个特征空间中,使得它们在特定任务下能够分类。将原始点云作为神经网络的输入,让网络学习捕…...

Ollama+DeepSeek本地大模型部署

1、Ollama 官网:https://ollama.com/ Ollama可以干什么? 可以快速在本地部署和管理各种大语言模型,操作命令和dokcer类似。 mac安装ollama: # 安装ollama brew install ollama# 启动ollama服务(默认11434端口&#xf…...

docker安装Redis:docker离线安装Redis、docker在线安装Redis、Redis镜像下载、Redis配置、Redis命令

一、镜像下载 1、在线下载 在一台能连外网的linux上执行docker镜像拉取命令 docker pull redis:7.4.0 2、离线包下载 两种方式: 方式一: -)在一台能连外网的linux上安装docker执行第一步的命令下载镜像 -)导出 # 导出镜像…...

HTML 标题

HTML 标题 引言 HTML(超文本标记语言)是构建网页的基础,而标题则是网页中不可或缺的元素。标题不仅能够帮助用户快速了解网页内容,还能够对搜索引擎优化(SEO)产生重要影响。本文将详细介绍HTML标题的用法…...

记录 | MaxKB创建本地AI智能问答系统

目录 前言一、重建MaxKBStep1 复制路径Step2 删除MaxKBStep3 创建数据存储文件夹Step4 重建 二、创建知识库Step1 新建知识库Step2 下载测试所用的txtStep3 上传本地文档Step4 选择模型补充智谱的API Key如何获取 Step5 查看是否成功 三、创建应用Step1 新建应用Step2 配置AI助…...

Linux 非阻塞IO

Linux 非阻塞IO 1. fcntl() 在Linux操作系统中,fcntl() 是一个用于操作文件描述符的系统调用。它提供了多种功能,包括控制文件描述符的属性、管理文件锁定、设置文件的非阻塞模式等。 本文只截取了用于IO模型的 fcntl() 部分内容, fcntl() …...

美国本科申请文书PS写作中的注意事项

在完成了introduction之后,便可进入到main body的写作之中。美国本科申请文书PS的写作不同于学术论文写作,要求你提出论点进行论证之类。PS更多的注重对你自己的经历或者motivation的介绍和描述。而这一描述过程只能通过对你自己的过往的经历的展现才能体…...

Qt文件操作

目录 一、文件操作相关类 1.QFile 2.QFileInfo 3.QTextStream 4.QDataStream 5.QDir 6.QFileSystemWatcher 7.QTemporaryFile 二、文件操作示例 1.文本文件操作 2.目录操作 3.二进制文件操作 一、文件操作相关类 1.QFile QFile类用于文件的创建、读写、复制、删除…...

赚钱的究极认识

1、赚钱的本质是提供了价值或者价值想象 价值: 比如小米手机靠什么?“性价比”,什么饥饿营销,创新,用户参与,生态供应链,品牌这些不能说不重要,但是加在一起都没有“性价比”这3字重…...

【项目】基于Qt开发的音乐播放软件

目录 项目介绍 项目概述 界面开发 界面分析 创建工程 主界面布局设计 窗口主框架设计 界面美化 主窗口设定 添加图片资源 head处理 播放控制区处理 自定义控件 BtForm 推荐页面 自定义CommonPage 自定义ListItemBox 自定义MusicSlider 自定义VolumeTool 音…...

week08_文本匹配任务

1、文本匹配任务概述 狭义: 给定一组文本,判断其是否语义相似 今天天气不错 match 今儿个天不错呀 √ 今天天气不错 match 你的代码有bug 以分值形式给出相似度 今天天气不错 match 今儿个天不错呀 0.9 今天天气不错 match…...

01-01 五元组

[外链图片转存中…(img-8JR8fhPZ-1737855365022)] 01-01 五元组 网络中的五元组(5-Tuple) 是用于唯一标识一个网络连接或数据流的五个关键参数组合。这五个参数共同定义了数据包的来源、目的地以及传输方式,是网络设备(如防火墙…...

5.2 软件需求分析

文章目录 需求分析的意义软件需求的组成需求分析的5个方面需求分析方法 需求分析的意义 需求分析解决软件“做什么”的问题。由于开发人员比较熟悉计算机而不熟悉领域业务,用户比较熟悉领域业务而不熟悉计算机,双方需要通过交流,制定出完整、…...

OpenCV:在图像中添加噪声(瑞利、伽马、脉冲、泊松)

目录 简述 1. 瑞利噪声 2. 伽马噪声 3. 脉冲噪声 4. 泊松噪声 总结 相关阅读 OpenCV:在图像中添加高斯噪声、胡椒噪声-CSDN博客 OpenCV:高通滤波之索贝尔、沙尔和拉普拉斯-CSDN博客 OpenCV:图像处理中的低通滤波-CSDN博客 OpenCV&…...

进程池的制作(linux进程间通信,匿名管道... ...)

目录 一、进程间通信的理解 1.为什么进程间要通信 2.如何进行通信 二、匿名管道 1.管道的理解 2.匿名管道的使用 3.管道的五种特性 4.管道的四种通信情况 5.管道缓冲区容量 三、进程池 1.进程池的理解 2.进程池的制作 四、源码 1.ProcessPool.hpp 2.Task.hpp 3…...

C++:多继承习题3

题目内容: 声明一个时间类Time,时间类中有3个私有数据成员(Hour,Minute,Second)和两个公有成员函数(SetTime和PrintTime)。要求: (1) SetTime根据传递的3个参数为对象设置时间; &a…...

数论问题75

命题,证明:存在K∈N,使得对于每个n∈N,Kx2^n1都是合数。 证明:设n2^m,当m0,1,2,3,4时,a(m)2^(2^m)1都是素数。 a(0)213,a(1)2^215,a(2)2^4117&…...

Baklib引领数字化内容管理转型提升企业运营效率

内容概要 在数字化迅速发展的背景下,企业正面临着前所未有的内容管理挑战。传统的内容管理方式已难以适应如今的信息爆炸,企业需要更加高效、智能的解决方案以应对复杂的数据处理需求。Baklib作为行业的先锋,以其创新技术对数字化内容管理进…...

2025年AI手机集中上市,三星Galaxy S25系列上市

2025年被认为是AI手机集中爆发的一年,各大厂商都会推出搭载人工智能的智能手机。三星Galaxy S25系列全球上市了。 三星Galaxy S25系列包含S25、S25和S25 Ultra三款机型,起售价为800美元(约合人民币5800元)。全系搭载骁龙8 Elite芯…...

Vue2官网教程查漏补缺学习笔记 - 3Vue实例4模板语法5计算属性监听器

3 Vue实例 3.1 创建一个 Vue 实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的: var vm new Vue({// 选项 })虽然没有完全遵循 MVVM 模型,但是 Vue 的设计也受到了它的启发。因此在文档中经常会使用 vm (ViewModel 的缩写) 这个变…...

2025年数学建模美赛:A题分析(1)Testing Time: The Constant Wear On Stairs

2025年数学建模美赛 A题分析(1)Testing Time: The Constant Wear On Stairs 2025年数学建模美赛 A题分析(2)楼梯磨损分析模型 2025年数学建模美赛 A题分析(3)楼梯使用方向偏好模型 2025年数学建模美赛 A题分…...

WPS数据分析000007

目录 一、分列 智能分列 出生日期 数值转换 公式不运算 二、数据对比 离职员工 新入职员工 都在职的员工 三、合并计算 四、拆分表格 合并表格 一、分列 智能分列 出生日期 数据求和 文本型数字左对齐;数值型数字右对齐 数值转换 方式一: 方…...

oracle 19C RAC打补丁到19.26

oracle 19CRAC打补丁到19.26 本文只保留简介命令和每个命令大概的用时,方便大家直接copy使用,并了解每个命令的预期时间,减少命令执行期的等待焦虑。 1.本次所需的补丁如下 p6880880_190000_Linux-x86-64.zip (.43的opatch&…...

动手学图神经网络(8):在消息传递中定制聚合操作

在消息传递中定制聚合操作 安装Pytorch和PyG # 安装所需的包 import os import torch os.environ[TORCH] = torch.__version__# 以下是安装命令,实际运行时可取消注释 #!pip install -q torch-scatter -f https://data.pyg.org/whl/torch-${TORCH}.html #!pip install -q to…...

MySQL安装教程

一、下载 点开下面的链接:下载地址 点击Download 就可以下载对应的安装包了, 安装包如下: 二、解压 下载完成后我们得到的是一个压缩包,将其解压,我们就可以得到MySQL 8.0.34 的软件本体了(就是一个文件夹),我们可以把它放在你想…...

信息学奥赛一本通 1390:食物链【NOI2001】| 洛谷 P2024 [NOI2001] 食物链

【题目链接】 ybt 1390:食物链【NOI2001】 洛谷 P2024 [NOI2001] 食物链 【题目考点】 1. 种类并查集 2. 带权并查集 【解题思路】 解法1:种类并查集 已知有三类动物A、B、C。A吃B,B吃C,C吃A。 对于B类动物来说&#xff0c…...

Linux网络之序列化和反序列化

目录 序列化和反序列化 上期我们学习了基于TCP的socket套接字编程接口,并实现了一个TCP网络小程序,本期我们将在此基础上进一步延伸学习,实现一个网络版简单计算器。 序列化和反序列化 在生活中肯定有这样一个情景。 上图大家肯定不陌生&a…...

【Django教程】用户管理系统

Get Started With Django User Management 开始使用Django用户管理 By the end of this tutorial, you’ll understand that: 在本教程结束时,您将了解: Django’s user authentication is a built-in authentication system that comes with pre-conf…...

万字长文总结前端开发知识---JavaScriptVue3Axios

JavaScript学习目录 一、JavaScript1. 引入方式1.1 内部脚本 (Inline Script)1.2 外部脚本 (External Script) 2. 基础语法2.1 声明变量2.2 声明常量2.3 输出信息 3. 数据类型3.1 基本数据类型3.2 模板字符串 4. 函数4.1 具名函数 (Named Function)4.2 匿名函数 (Anonymous Fun…...

React基础

前言 (2021年笔记)补充记录 React基础 前言React讲义一、create-react-app二、关于React1、React的起源和发展2、React与传统MVC的关系3、React高性能的体现:虚拟DOM4、React的特点和优势 三、编写第一个react应用程序四、元素与组件1、函数…...

读书笔记:《华为突围ERP封锁全纪实》

文章背景: 2019年5月,华为被美国制裁,其ERP系统面临断供风险。ERP系统是企业核心管理软件,一旦中断,华为的全球业务将陷入瘫痪。面对这一生死存亡的危机,华为启动了“突围”计划,历经数年艰苦奋…...

Linux的udev详解、安装和使用(dev下的设备每次开机的名称不固定怎么办?)

前言(问题与需求): 在传统的devfs 1:设备映射的不确定:一个设备多次加载设备的设备文件可能不同,比如一个hub有可能是ttyUSB0或ttyUSB2或ttyUSB3 2:devfs没有足够的主辅设备号,当设…...

单向循环链表的概念+单向循环链表的结点插入+单向循环链表的结点删除+程序设计与笔试题分析

单向循环链表的原理与应用 思考:对于单向链表而言,想要遍历链表,则必须从链表的首结点开始进行遍历,请问有没有更简单的方案实现链表中的数据的增删改查? 回答:是有的,可以使用单向循环的链表…...

【蓝桥杯嵌入式入门与进阶】2.与开发板之间破冰:初始开发板和原理图2

个人主页:Icomi 专栏地址:蓝桥杯嵌入式组入门与进阶 大家好,我是一颗米,本篇专栏旨在帮助大家从0开始入门蓝桥杯并且进阶,若对本系列文章感兴趣,欢迎订阅我的专栏,我将持续更新,祝你…...

Jetson Xavier NX 安装 CUDA 支持的 PyTorch 指南

本指南将帮助开发者完成在 Jetson Xavier NX 上安装 CUDA 支持的 PyTorch。 安装方法 在 Jetson 上安装 Pytorch 只有两种方法。 一种是直接安装他人已经编译好的 PyTorch 轮子;一种是自己从头开始开始构建 PyTorch 轮子并且安装。 使用轮子安装 可以从我的 Gi…...

“harmony”整合不同平台的单细胞数据之旅

其实在Seurat v3官方网站的Vignettes中就曾见过该算法,但并没有太多关注,直到看了北大张泽民团队在2019年10月31日发表于Cell的《Landscap and Dynamics of Single Immune Cells in Hepatocellular Carcinoma》,为了同时整合两类数据&#xf…...

[权限提升] 操作系统权限介绍

关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客 权限提升简称提权,顾名思义就是提升自己在目标系统中的权限。现在的操作系统都是多用户操作系统,用户之间都有权限控制,我们通过 Web 漏洞拿到的 Web 进程的…...