计算机网络:运输层 —— 运输层端口号
文章目录
- 运输层端口号的分类
 - 端口号与应用程序的关联
 - 应用举例
 - 发送方的复用和接收方的分用
 
运输层端口号的分类
端口号只具有本地意义,即端口号只是为了标识本计算机网络协议栈应用层中的各应用进程。在因特网中不同计算机中的相同端口号是没有关系的,即相互独立。另外,TCP和UDP端口号之间也是没有关系的。
![![[运输层端口号的分类.png]]](https://i-blog.csdnimg.cn/direct/b3b87ed924994532a37f7cd80a8c5278.png)
-  
熟知端口号(0 - 1023)
-  
这些端口号被分配给一些最常用的网络服务和应用程序。它们是由互联网号码分配机构(IANA)预先分配和定义的。
 -  
例如,
HTTP协议使用端口号 80,HTTPS协议使用端口号 443,FTP协议使用端口号 21(控制连接)和 20(数据连接),SSH协议使用端口号 22,SMTP(简单邮件传输协议)使用端口号 25 等。这些熟知端口号使得不同的网络服务在全球范围内能够被统一识别和使用。 
 -  
 -  
登记端口号(1024 - 49151)
- 这些端口号通常用于不太常见的网络服务或者用户自定义的应用程序。如果一个应用程序想要使用这个范围内的端口号,一般需要向 
IANA进行登记。不过在实际应用中,很多应用程序在这个范围内使用端口号时并没有严格地进行登记。 - 例如,一些企业内部开发的特定业务应用程序可能会使用这个范围内的端口号来进行通信。
 
 - 这些端口号通常用于不太常见的网络服务或者用户自定义的应用程序。如果一个应用程序想要使用这个范围内的端口号,一般需要向 
 -  
客户端口号(49152 - 65535)
- 这些端口号主要是由客户端程序在发起通信时随机选择使用的。当客户端与服务器进行通信时,客户端会从这个范围内选择一个端口号来标识自己的应用程序进程。
 - 例如,当使用客户端软件(如即时通讯软件)与服务器进行通信时,客户端软件会随机从这个范围内选择一个端口号,用于接收服务器发送过来的消息。
 
 
端口号与应用程序的关联
应用程序在开发过程中或者安装配置时会指定使用特定的端口号来进行通信。对于服务器端应用程序,通常会绑定到一个固定的端口号(如将 Web 服务器绑定到 80 或 443 端口),这样客户端就可以通过这个已知的端口号来访问服务器。
对于客户端应用程序,在与服务器通信时,会动态地从客户端口号范围中选择一个端口号。当服务器发送数据返回给客户端时,就根据这个端口号来找到对应的客户端应用程序。例如,在一个网络通信场景中,服务器通过 IP 地址找到客户端主机,然后通过客户端选择的端口号找到对应的客户端应用程序来交付数据。
应用举例
![![[应用举例1.png]]
![[应用举例2.png]]](https://i-blog.csdnimg.cn/direct/7bd8685994d74b53889b6cd1f449827c.png)
-  
用户在浏览器中输入网址:用户在 PC 上打开浏览器,并在地址栏中输入
www.porttest.net。 -  
发送DNS查询请求:用户的 PC(IP 地址为
192.168.0.1)向DNS服务器(IP地址为192.168.0.2)发送UDP数据包。该数据包的源端口是49152,目的端口是53(DNS默认端口)。数据包中的内容是询问www.porttest.net对应的 IP 地址是什么? -  
DNS服务器处理请求:DNS 服务器收到请求后,查找
www.porttest.net对应的IP地址。 -  
DNS响应:DNS 服务器将找到的结果
www.porttest.net对应的 IP 地址是192.168.0.3)封装成 UDP 数据包返回给用户的 PC。这个数据包的源端口是53,目的端口是49152。 -  
用户PC接收DNS响应:用户的 PC 接收到 DNS 响应,得知
www.porttest.net对应的IP地址是192.168.0.3。 -  
建立TCP连接:用户的 PC 使用 HTTP 协议与 Web 服务器(IP地址为
192.168.0.3)建立 TCP 连接。 -  
获取网页内容:用户的 PC 从 Web 服务器下载网页内容并显示在浏览器中。
 
在这个过程中,涉及到的主要组件包括:
-  
DNS服务器:用于将域名转换为IP地址。
 -  
Web服务器:提供网站内容的服务。
 -  
交换机:负责在网络中转发数据包。
 -  
用户PC:运行浏览器软件,发出请求并接收响应。
 
发送方的复用和接收方的分用
-  
复用: 在发送方,多个高层协议(如
UDP、TCP)的数据被复用到同一个 IP 数据报中。 -  
分用: 在接收方,根据 IP 数据报的目的端口将数据分发到相应的高层协议(如
UDP、TCP)。 
![![[发送方的复用和接收方的分用.png]]](https://i-blog.csdnimg.cn/direct/6ecbed84ffcd4681b8d276cf5f664ad5.png)
-  
发送方:
- 应用层: 应用程序生成应用报文。
 - 传输层: 
UDP: 将应用报文封装成 UDP 数据报,添加源端口和目的端口。TCP: 将应用报文封装成 TCP 段,添加源端口和目的端口。
 - 网络层: IP 协议将 UD P或 TCP 数据封装成IP数据报,添加源 IP 地址和目的 IP 地址。
 - 链路层: 数据链路层将 IP 数据报封装成帧,进行物理传输。
 
 -  
接收方:
- 链路层: 接收帧并提取 IP 数据报。
 - 网络层: 解析 IP 数据报,根据目的端口确定是 UDP 还是 TCP。
 - 传输层: 
UDP: 分离 UDP 数据报,传递给相应应用程序。TCP: 分离 TCP 段,传递给相应应用程序。
 - 应用层: 应用程序接收应用报文。
 
 
TCP/IP体系结构应用层常用协议,所使用的运输层协议和熟知端口号。OSPF报文并不使用运输层的UDP或TCP进行封装,而是直接使用网际层的IP进行封装。
![![[应用层常用协议.png]]](https://i-blog.csdnimg.cn/direct/f5c0b9eeef9347c8a936ce49e4572d84.png)
相关文章:
计算机网络:运输层 —— 运输层端口号
文章目录 运输层端口号的分类端口号与应用程序的关联应用举例发送方的复用和接收方的分用 运输层端口号的分类 端口号只具有本地意义,即端口号只是为了标识本计算机网络协议栈应用层中的各应用进程。在因特网中不同计算机中的相同端口号是没有关系的,即…...
linux下编译安装memcached
一、安装依赖库 Memcached依赖于一些系统库,在大多数Linux发行版中,需要安装libevent库。 Debian/Ubuntu系统 使用以下命令安装依赖库: sudo apt -y update sudo apt -y install libevent - devCentOS/RHEL系统 可以通过以下命令安装&am…...
最短路径生成树的数量-黑暗城堡
信息学奥赛一本通T1486-黑暗城堡 时间限制: 2s 内存限制: 192MB 提交: 18 解决: 9 题目描述 知道黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度。 城堡是树形的并且满足下面的条件: 设 Di为如果所有的通道都被修建…...
将已有的MySQL8.0单机架构变成主从复制架构
过程: 把数据库做一个完全备份, 恢复到从节点上, 恢复后从备份的那个点开始往后复制,从而保证后续数据的一致性。 步骤: 修改 master 主节点 的配置( server-id log-bin )master 主节点 完全备份( mysqldump )master 主节点 创建…...
JSON.stringify的应用说明
前言 JSON.stringify() 方法将 JavaScript 对象转换为字符串,在日常开发中较常用,但JSON.stringify其实有三个参数,后两个参数,使用较少,今天来介绍一下后两个参数的使用场景和示例。 语法及参数说明 JSON.stringify()…...
pyflink datastream数据流ds经过一系列转换后转为table,t_env.from_data_stream(ds)
在 pyflink 处理数据流过程中,有时候需要将data_stream转为table,下面是正确的方式,即每一个算子(map,reduce, window)操作之后需要指定输出数据类型。 from pyflink.common.typeinfo import Types from pyflink.datastream import StreamEx…...
vxe-grid table 校验指定行单元格的字段,只校验某个列的字段
Vxe UI vue vxe-table 中校验表格行是非常简单的,只需要配置好校验规则,然后调用 validate 方法就可以自动完成校验,但是由于项目淡色特殊需求,在某个单元格的值修改后需要对另一个列的值就行校验,这个时候又不需要全部…...
【Java多线程】单例模式(饿汉模式和懒汉模式)
目录 单例模式的定义: 饿汉式--单例模式 定义: 案例: 优缺点: 懒汉式--单例模式: 定义: 1)懒汉式单例模式(非线程安全) 2)线程安全的懒汉式单例模…...
python 异步编程之协程
最近在学习python的异步编程,这里就简单记录一下,免得日后忘记。 首先,python异步实现大概有三种方式,多进程,多线程和协程;多线程和多进程就不用多说了,基本上每种语言都会有多进行和多线程的…...
现代密码学|古典密码学例题讲解|AES数学基础(GF(2^8)有限域上的运算问题)| AES加密算法
文章目录 古典密码凯撒密码和移位变换仿射变换例题多表代换例题 AES数学基础(GF(2^8)有限域上的运算问题)多项式表示法 | 加法 | 乘法X乘法模x的四次方1的乘法 AES加密算法初始变换字节代换行移位列混合轮密钥加子密钥(…...
算法沉淀一:双指针
目录 前言: 双指针介绍 对撞指针 快慢指针 题目练习 1.移动零 2.复写零 3.快乐数 4.盛水最多的容器 5.有效三角形的个数 6.和为s的两个数 7.三数之和 8.四数之和 前言: 此章节介绍一些算法,主要从leetcode上的题来讲解ÿ…...
Word_小问题解决_1
1.第二页是空白的,但是删不掉 将鼠标弄到第二页最开始的地方打开段落设置行距为固定值0.7磅 2.表格中有文字进入了表格中怎么办 打开段落,将缩进改为0即可...
基于opencv制作GUI界面
可以基于cvui头文件实现一些控件操作,头文件及demo实例 这是一个demo main.cpp #include <opencv2/opencv.hpp> #define CVUI_IMPLEMENTATION #include "cvui.h"#define WINDOW_NAME "CVUI Hello World!"int main(void) {cv::Mat frame…...
微服务即时通讯系统的实现(客户端)----(2)
目录 1. 将protobuf引入项目当中2. 前后端交互接口定义2.1 核心PB类2.2 HTTP接口定义2.3 websocket接口定义 3. 核心数据结构和PB之间的转换4. 设计数据中心DataCenter类5. 网络通信5.1 定义NetClient类5.2 引入HTTP5.3 引入websocket 6. 小结7. 搭建测试服务器7.1 创建项目7.2…...
QT使用libssh2库实现sftp文件传输
本篇文章通过用户名和密码来连接服务器端,通过密匙连接服务器端可以参考另外一篇文章: https://blog.csdn.net/u012372584/article/details/143826199?sharetype=blogdetail&sharerId=143826199&sharerefer=PC&sharesource=u012372584&spm=1011.2480.3001.…...
【Linux】进程的优先级
进程的优先级 一.概念二.修改优先级的方法三.进程切换的大致原理:四.上下文数据的保存位置: 一.概念 cpu资源分配的先后顺序,就是指进程的优先权(priority)。 优先权高的进程有优先执行权利。配置进程优先权对多任务环…...
python实现十进制转换二进制,tkinter界面
目录 需求 效果 代码实现 代码解释 需求 python实现十进制转换二进制 效果 代码实现 import tkinter as tk from tkinter import messageboxdef convert_to_binary():try:# 获取输入框中的十进制数decimal_number int(entry.get())# 转换为二进制binary_number bin(de…...
电子应用设计方案-12:智能窗帘系统方案设计
一、系统概述 本设计方案旨在打造便捷、高效的全自动智能窗帘系统。 二、硬件选择 1. 电机:选用低噪音、扭矩合适的智能电机,根据窗帘尺寸和重量确定电机功率,确保能平稳拉动窗帘。 2. 轨道:选择坚固、顺滑的铝合金轨道&…...
力扣 回文链表-234
回文链表-234 const int N 1e55; int a[N];//定义一个整形的全局数组作为辅助数组存储链表反转前的值 class Solution { /*本题的解题思路是先将链表中每个值存储到辅助数组a中,然后反转链表, 最后,反转后链表的值和没反转之前的值…...
采样率22050,那么CHUNK_SIZE 一次传输的音频数据大小设置多少合适?unity接收后出现卡顿的问题的思路
在采样率为22050的情况下,选择合适的 CHUNK_SIZE 主要取决于 Unity 接收和处理音频数据的效率。以下是设置 CHUNK_SIZE 的一些建议: 计算 CHUNK_SIZE:音频的传输数据量可以通过公式 CHUNK_SIZE 采样率 * 传输间隔秒数 * 每样本字节数 * 声道…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
