【网络通信基础与实践第三讲】传输层协议概述包括UDP协议和TCP协议
一、进程间的通信
通信的两端应当是两个主机中的应用进程,也就是说,端到端的通信是应用进程之间的通信
运输层有一个很重要的功能就是复用和分用,复用是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据,分用是指接收方的运输层在剥去报文的首部后能够把这些数据正确交付给目的应用进程。

从上图可以知道,网络层为主机之间的通信提供服务,而运输层则在网络层的基础上,为应用进程之间的通信提供服务。
除此之外,运输层向高层用户屏蔽了下面网络的核心的细节,它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道,而当采用TCP协议时,这条信道是全双工的可靠信道,但是当采取UDP协议时,这条信道是一条不可靠信道。

二、运输层的两个主要协议
1、用户数据报协议UDP(User Datagram Protocol)
UDP协议在传输数据之前不需要先建立连接。远地主机的运输层在收到UDP报文后不需要给出任何的确认。虽然UDP不提供可靠的交付,但是UDP非常简单
2、传输控制协议TCP(Transmission Control Protocol)
TCP则提供面向连接的服务。在传输数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或者多播服务。
三、运输层的端口
1、端口的定义
在单个计算机中的进程是用进程标识符来标志的。但是由于计算机的操作系统的种类很多,而不同的操作系统又使用不同格式的进程标识符。为了使不同操作系统之间的进程可以进行通信,就不许采取一种统一的且与特定的操作系统无关的方法来对TCP/IP体系的应用进程来进行标志。

我们把这些门设置为通信的抽象终点,被命名为协议端口(protocol port)。TCP/IP的运输层用一个16位端口号来标志一个端口。但是请注意端口号只具有本地意义,不同的计算机中相同的端口号是没有关联的。
2、端口的分类
(1)服务器使用的端口号
一类是熟知端口号或者全球通用端口号,数值位0~1023;另一类是登记端口号,数值为1024~49151。
(2)客户端使用的端口号
数值为49152~65535。这类端口仅在客户端运行时才动态显示。通信结束之后,刚才已使用过的客户端口号就会被系统收回,以便给其他的客户进程使用。
四、实例分析
工程代码见
https://github.com/daviddou2023/page
demo网页见
https://daviddou2023.github.io/page





相关文章:
【网络通信基础与实践第三讲】传输层协议概述包括UDP协议和TCP协议
一、进程间的通信 通信的两端应当是两个主机中的应用进程,也就是说,端到端的通信是应用进程之间的通信 运输层有一个很重要的功能就是复用和分用,复用是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据,分用是指接…...
centos更改静态ip
点击网络和internet设置 点击更改适配器 、点击属性...
YOLOv5/v8 + 双目相机测距
yolov5/v8双目相机测距的代码,需要相机标定 可以训练自己的模型并检测测距,都是python代码 已多次实验,代码无报错。 非常适合做类似的双目课题! 相机用的是汇博视捷的双目相机,具体型号见下图。 用的yolov5是6.1版本的…...
双三次插值及MATLAB实现
一、双三次插值的概念 双三次插值(Bicubic interpolation),又叫双立方插值。在数值分析这个数学分支中,双三次插值是二维空间中最常用的插值方法。在这种方法中,函数f在点 (x0 ,y0) 的值不仅考虑其直接邻接点对其的影响…...
Kubernetes 持续集成与交付(CI/CD)
Kubernetes 持续集成与交付(CI/CD)详解 Kubernetes 是目前主流的容器编排平台,而在 DevOps 的实践中,持续集成与持续交付(CI/CD)是自动化软件开发与运维的核心环节。Kubernetes 与 CI/CD 的结合࿰…...
【Rust练习】14.流程控制
练习题来自:https://practice-zh.course.rs/flow-control.html 1 // 填空 fn main() {let n 5;if n < 0 {println!("{} is negative", n);} __ n > 0 {println!("{} is positive", n);} __ {println!("{} is zero", n);} } …...
React-Hooks-Form 集成 Zod 校验库
React-Hooks-Form 集成 Zod 校验库 首先需要安装 react hooks form 官方提交的解析器 npm install hookform/resolvers再安装校验库 npm install zod它不仅支持 Zod 校验库同时还支持目前各种主流的校验库比如:Yup、Zod、Joi、Ajv、Vest、Custom 具体查看官方文…...
kettle从入门到精通 第八十五课 ETL之kettle kettle中javascript步骤调用外部javascript/js文件
场景:交流学习群里面有小伙伴咨询kettle中的javascript代码步骤如何调用外部js文件中的函数,觉得有点意思的,于是就抽时间整理了一下。 1、外部js文件为test.js,代码如下: function test(param){return "接收到了…...
比传统机器学习更先进的深度学习神经网络的二分类建模全流程教程
比传统机器学习更先进的深度学习神经网络的二分类建模全流程分析教程 深度学习介绍和与传统机器学习的区别 深度学习(Deep Learning)是一种机器学习的分支,基于多层神经网络模型,能够自动从大量数据中学习特征并进行预测。深度学…...
TeamTalk梳理概括
文章目录 即时通讯重点概括展开聊聊单聊消息流转流程展开聊聊群聊消息流转流程群成员管理数据库MySQL连接池设计redis连接池设计文件传输原理实时性并发能力 db_proxy_server reactor响应处理流程单聊消息消息如何封装?如何保证对端完整解析一帧消息?协议…...
构建“零工市场小程序”,服务灵活就业“大民生”
如今,灵活就业已成为现代劳动力市场的重要组成部分。然而,这一就业形态也面临着信息不对称、匹配效率低下等一系列挑战。为有效解决这些问题,构建一个高效、便捷的“零工市场小程序”显得尤为重要。 二、零工市场现状与挑战 市场规模与增长趋…...
【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 苹果格式
【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 Heic2any: Client-side conversion of HEIC/HEIF image files to JPEG,PNG, or GIF in the browser.https://alexcorvi.github.io/heic2any/#demo GitHub - alexcorvi/heic2any: Converting HEIF/HEIF image formats to PN…...
Vue3中slot插槽的几种使用实践
【1】默认插槽 父组件 <Category title"今日美食城市"><img :src"imgUrl" alt""> </Category>子组件 <div class"category"><h2>{{title}}</h2><slot>默认内容</slot> </div&g…...
SSH工具 MobaXterm的使用与快捷配置
软件下载/安装与链接服务器/本地虚拟机 文章目录 软件下载/安装与链接服务器/本地虚拟机软件下载软件安装使用软件链接非本地机器并设置用户密码我不想有确定密码的弹窗 其余便捷配置配置右键粘贴SSH链接设置 软件下载 如果你访问不了这个网址,可以评论区找博主或者…...
git 远程分支同步本地落后的有冲突的分支
如果你的本地分支已经修改了很多代码,但同时也已经落后于远程分支。这个时候你需要在主分支上拉最新的代码,然后切换到你的分支。 如主分支是 main ,从分支是xing。 首先切换到子分支 $ git checkout xing 然后请求merge主分支main的代码 …...
如何基于Java解析国密数字证书
一、说明 随着信息安全的重要性日益凸显,数字证书在各种安全通信场景中扮演着至关重要的角色。国密算法,作为我国自主研发的加密算法标准,其应用也愈发广泛。然而,在Java环境中解析使用国密算法的数字证书时,我们可能…...
java实现系统文件管理
java实现系统文件管理 环境:jdk17springbootVueElementUI 背景:公司所做的项目需要别的系统向我们服务器上传文件,当我们需要查看这些文件什么时候上传的、文件数据是怎样的,只能去机房,排查问题效率较低,…...
pytorch快速入门(一)—— 基本工具及平台介绍
前言 该pytorch学习笔记应该配合b站小土堆的《pytorch深度学习快速入门教程》使用 环境配置:Anaconda Python编译器:pycharm、jupyter 两大法宝函数 dir():知道包中有什么东西(函数 / 属性..…...
『功能项目』怪物的有限状态机【42】
本章项目成果展示 我们打开上一篇41项目优化 - 框架加载资源的项目, 本章要做的事情是按照框架的思想构建项目并完成怪物的自动巡逻状态,当主角靠近怪物时,怪物会朝向主角释放技能 首先新建脚本:BossCtrl.cs (通常把xxxCtrl.cs脚…...
【C++】模板进阶:深入解析模板特化
C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与Queue 本章将…...
如何用Mermaid Live Editor高效创建专业图表:从技术文档到项目管理的全流程指南
如何用Mermaid Live Editor高效创建专业图表:从技术文档到项目管理的全流程指南 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trendin…...
突破系统休眠限制:MouseJiggler让Windows保持持续活跃的全方位指南
突破系统休眠限制:MouseJiggler让Windows保持持续活跃的全方位指南 【免费下载链接】mousejiggler Mouse Jiggler is a very simple piece of software whose sole function is to "fake" mouse input to Windows, and jiggle the mouse pointer back and…...
tao-8k Embedding模型惊艳案例:工业设备维修手册语义检索实战
tao-8k Embedding模型惊艳案例:工业设备维修手册语义检索实战 1. 项目背景与需求 在工业设备维修领域,技术人员经常需要从厚厚的维修手册中快速找到相关故障的解决方案。传统的关键词搜索方式存在明显局限:如果维修手册中使用的是"泵体…...
高质量建站引领数字化转型 ——2026 上海网站建设行业现状与标杆服务商盘点
2026年上海网站建设行业发展现状与高质量建站核心诉求据中国信通院《2026年中国GEO优化行业发展白皮书》、上海市商务委员会2026年一季度数据联合统计,上海企业数字化转型渗透率已达78%,国内GEO市场规模突破286亿元,年增长率125%;…...
终极字体合并方案:如何一键解决游戏字体兼容性难题
终极字体合并方案:如何一键解决游戏字体兼容性难题 【免费下载链接】Warcraft-Font-Merger Warcraft Font Merger,魔兽世界字体合并/补全工具。 项目地址: https://gitcode.com/gh_mirrors/wa/Warcraft-Font-Merger 还在为游戏中文字显示不全而烦…...
重构学术文档翻译:PDFMathTranslate如何突破格式保留与公式处理技术瓶颈
重构学术文档翻译:PDFMathTranslate如何突破格式保留与公式处理技术瓶颈 【免费下载链接】PDFMathTranslate PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI…...
LLM 算法岗 | 八股问答()· 多模态与主流模型架构
本文能帮你解决什么? 1. 搞懂FastAPI异步(async/await)到底在什么场景下能真正提升性能。 2. 掌握在FastAPI中正确使用多线程处理CPU密集型任务的方法。 3. 避开常见的坑(比如阻塞操作、数据库连接池耗尽、GIL限制)。 …...
javaweb学习资料资源分享共享平台的研究和实现
目录同行可拿货,招校园代理 ,本人源头供货商功能需求分析核心技术实现特色功能设计扩展性考虑项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能需求分析 JavaWeb学习资料共享平台的…...
5步搭建你的私人云游戏服务器:Sunshine开源串流方案详解
5步搭建你的私人云游戏服务器:Sunshine开源串流方案详解 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款开源的游戏串流服务器软件,专为Moon…...
面向 LLM 的程序设计 3:LLM-Friendly 的响应结构:扁平键、稳定字段与类型标注
在满足能力端点与确定性契约之后,响应长什么样仍会直接影响模型能不能「读对结果、少误解、少编造字段」。本系列继续围绕「让 AI 更好理解、更好调用」,讨论如何把 JSON 响应设计成对模型和后续工具链都更友好:键名稳定、层次尽量扁平、数组…...
