计算机网络:运输层 —— 运输层端口号

文章目录

      • 运输层端口号的分类
      • 端口号与应用程序的关联
      • 应用举例
      • 发送方的复用和接收方的分用

运输层端口号的分类

端口号只具有本地意义,即端口号只是为了标识本计算机网络协议栈应用层中的各应用进程。在因特网中不同计算机中的相同端口号是没有关系的,即相互独立。另外,TCP和UDP端口号之间也是没有关系的

![[运输层端口号的分类.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]]

  1. 用户在浏览器中输入网址:用户在 PC 上打开浏览器,并在地址栏中输入 www.porttest.net

  2. 发送DNS查询请求:用户的 PC(IP 地址为 192.168.0.1)向 DNS 服务器(IP地址为 192.168.0.2)发送 UDP 数据包。该数据包的源端口是 49152,目的端口是 53DNS 默认端口)。数据包中的内容是询问 www.porttest.net 对应的 IP 地址是什么?

  3. DNS服务器处理请求:DNS 服务器收到请求后,查找 www.porttest.net 对应的IP地址。

  4. DNS响应:DNS 服务器将找到的结果 www.porttest.net 对应的 IP 地址是192.168.0.3)封装成 UDP 数据包返回给用户的 PC。这个数据包的源端口是 53,目的端口是 49152

  5. 用户PC接收DNS响应:用户的 PC 接收到 DNS 响应,得知 www.porttest.net 对应的IP地址是 192.168.0.3

  6. 建立TCP连接:用户的 PC 使用 HTTP 协议与 Web 服务器(IP地址为 192.168.0.3)建立 TCP 连接。

  7. 获取网页内容:用户的 PC 从 Web 服务器下载网页内容并显示在浏览器中。

在这个过程中,涉及到的主要组件包括:

  • DNS服务器:用于将域名转换为IP地址。

  • Web服务器:提供网站内容的服务。

  • 交换机:负责在网络中转发数据包。

  • 用户PC:运行浏览器软件,发出请求并接收响应。

发送方的复用和接收方的分用

  • 复用: 在发送方,多个高层协议(如 UDPTCP)的数据被复用到同一个 IP 数据报中。

  • 分用: 在接收方,根据 IP 数据报的目的端口将数据分发到相应的高层协议(如 UDPTCP)。

![[发送方的复用和接收方的分用.png]]

  • 发送方

    1. 应用层: 应用程序生成应用报文。
    2. 传输层:
      • UDP: 将应用报文封装成 UDP 数据报,添加源端口和目的端口。
      • TCP: 将应用报文封装成 TCP 段,添加源端口和目的端口。
    3. 网络层: IP 协议将 UD P或 TCP 数据封装成IP数据报,添加源 IP 地址和目的 IP 地址。
    4. 链路层: 数据链路层将 IP 数据报封装成帧,进行物理传输。
  • 接收方

    1. 链路层: 接收帧并提取 IP 数据报。
    2. 网络层: 解析 IP 数据报,根据目的端口确定是 UDP 还是 TCP。
    3. 传输层:
      • UDP: 分离 UDP 数据报,传递给相应应用程序。
      • TCP: 分离 TCP 段,传递给相应应用程序。
    4. 应用层: 应用程序接收应用报文。

TCP/IP体系结构应用层常用协议,所使用的运输层协议和熟知端口号OSPF报文并不使用运输层的UDP或TCP进行封装,而是直接使用网际层的IP进行封装。

![[应用层常用协议.png]]

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

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

相关文章

STM32H503开发(1)----开发板测试

STM32H503开发----1.开发板测试 概述硬件准备视频教学样品申请源码下载产品特性参考程序生成STM32CUBEMX串口配置LED配置堆栈设置串口重定向主循环演示 概述 STM32H503 & SENSOR是一款基于STM32H5系列微控制器的评估套件。该微控制器采用了40nm工艺制造,具有更…

#Swift Automatic Initializer Inheritance

在Swift中,**自动初始化器继承(Automatic Initializer Inheritance)**是一种机制,用于简化类的初始化器继承规则。它决定了在什么条件下子类可以自动继承父类的初始化器,而无需手动实现或重写。自动继承初始化器的机制…

Nacos黑马笔记

1. Nacos安装(黑马教程安装材料) 1.1 Windows安装 开发阶段采用单机安装即可。 1.1.1 下载安装包 在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: GitHub主页:https://gith…

通过投毒Bingbot索引挖掘必应中的存储型XSS

简介 在本文中,我将讨论如何通过从外部网站对Bingbot进行投毒,来在Bing.com上实现持久性XSS攻击。 什么是存储型或持久性XSS?存储型攻击指的是将恶意脚本永久存储在目标服务器上,例如数据库、论坛、访问日志、评论栏等。受害者在…

【Pikachu】File Inclusion文件包含实战

永远也不要忘记能够笑的坚强,就算受伤,我也从不彷徨。 1.File Inclusion(文件包含漏洞)概述 File Inclusion(文件包含漏洞)概述 文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码…

Stored procedures in PostgreSQL

select 存储过程,在现了解的情况,还是没有mysql,sqlserver等好写好用。 --postgreSQL 11.0 以下版本 create or replace FUNCTION procInsertSchool (pSchoolId Char(5),pSchoolName VarChar(100),pSchoolTelNo VarChar(8) ) RETURNS void language plp…

Java:JVM

1.JVM内存区域的划分 一个Java写的程序跑起来,就得到了一个Java进程 JVM 上面运行的字节码指令; 进程:操作系统资源分配的基本单位; 内存区域的划分: 1.程序计数器 在内存空间里(比较小的空间),保存了下一个要执行的指令的内存地址(元数据区的地址); 这里的"下一条…

Overleaf数学符号乱码等问题

Overleaf使用XeLatex编译时,公式中数学符号非法显示,如下图,属于∈符号显示错误: 原因:一般是文内中文引起的,警惕是否有中文标点等。 XeLatex编译图片标题是中文 原因:用了UTF-8编码&#x…

【MySQL 保姆级教学】事务的隔离级别(详细)--下(13)

事务的隔离级别 1. 如何理解事务的隔离性2. 事务隔离级别的分类3. 查看和设置事务隔离级别3.1 全局和会话隔离级别3.2 查看和设置隔离级别 4. 事务隔离级别的演示4.1 读未提交(Read Uncommitted)4.2 读已提交(Read Committed)4.3 …

响应式网页设计--html

一&#xff0c;HTML 文档的基本结构 一个典型的 HTML 文档包含了几个主要部分&#xff0c;基本结构如下(本文以下出现的所有代码都可以套入下面示例进行测试)&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8&q…

ANDROIDWORLD: A Dynamic Benchmarking Environment for Autonomous Agents论文学习

这个任务是基于androidenv的。这个环境之前学过&#xff0c;是一个用来进行强化学习的线上环境。而这篇文章的工作就是要给一些任务加上中间的奖励信号。这种训练环境的优点就是动态&#xff0c;与静态的数据集&#xff08;比如说我自己的工作&#xff09;不同&#xff0c;因此…

从0开始学习机器学习--Day24--核函数

核函数(Kernelsl function) 非线性数据的决策边界 对于非线性问题来说&#xff0c;决策边界在很多时候都是曲线&#xff0c;需要我们在假设函数中加入高阶多项式来拟合原始数据&#xff0c;这对于算法来说需要很长的运行时间去计算这些高阶多项式&#xff0c;那么有没有更高效…

charles简单使用

一、安装&配置 1、安装 通过官网下载稳定版的charles。 说明&#xff1a;官网下载也可以免费使用&#xff0c;不用到处找破解版&#xff0c;还不安全。官网下载的也能用半小时&#xff0c;然后重启一下还能继续用。如果有钱就买个服务&#xff0c;如果不原因花钱就动一动…

VMware和CentOS 7.6 Linux操作系统的安装使用

1. 安装VMware 安装VMware之前&#xff0c;有些电脑是需要去BIOS里修改设置开启cpu虚拟化设备支持才能安装。如果运气不好在安装过程中安装不了的话就自行百度吧。 打开 VMware 的官网: https://www.vmware.com/ 点击 product&#xff0c;往下滑找到 see desktop hypeerviso…

OCP证书如何下载?

访问Oracle CertView网站&#xff1a; 打开网址 https://certview.oracle.com/ &#xff0c;这是Oracle官方提供的证书查询平台 。 登录账号&#xff1a; 使用您的Oracle账号和密码登录CertView。如果您不记得密码&#xff0c;可以通过注册账号时预留的邮箱重置密码 。 查看成…

将vscode的终端改为cygwin terminal

现在终端是默认的power shell&#xff0c;没有显示cygwin 接下来选择默认配置文件 找到cygwin的选项即可 然后提示可能不安全什么的&#xff0c;点是&#xff0c;就有了

html+js+css实现拖拽式便签留言

前些日子在网上冲浪时&#xff0c;看到一个便签式留言墙&#xff0c;让人耳目一新。心想这个看着不错&#xff0c;额想要。于是便开始搜寻是否有相应开源插件&#xff0c;想将其引入自己的博客中。但是搜寻了一圈&#xff0c;都没有符合预期的,要么功能不符合。有的功能符合&am…

C++入门基础知识147—【关于C++ 一元运算符重载】

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于C 一元运算符重载的相关内容&#xff0…

2022年蓝桥杯JavaB组 省赛 题目解析(含AC_Code)

目录 前言&#xff08;必读&#xff09;第一题&#xff1a;星期计算 &#xff08;简单&#xff09;问题描述思路AC代码总结 第二题 山 &#xff08;简单&#xff09;问题描述题目分析山形数定义解题思路代码实现解析代码详解回文和“山形”判断函数主函数 AC代码复杂度分析 总结…

NLP论文速读(微软出品)|使用GPT-4进行指令微调(Instruction Tuning with GPT-4)

论文速读|Instruction Tuning with GPT-4 论文信息&#xff1a; 简介&#xff1a; 这篇论文试图解决的问题是如何通过指令调优&#xff08;instruction-tuning&#xff09;提升大型语言模型&#xff08;LLMs&#xff09;在执行新任务时的零样本&#xff08;zero-shot&#xff0…