什么是端口号【图解TCP/IP(笔记十一)】

news2024/11/25 2:54:38

文章目录

    • 端口号
      • 端口号定义
      • 根据端口号识别应用
      • 通过IP地址、端口号、协议号进行通信识别
      • 端口号如何确定
      • 端口号与协议
    • TCP具有代表性的知名端口号
    • UDP具有代表性的知名端口号

端口号

端口号定义

数据链路和IP中的地址,分别指的是MAC地址和IP地址。前者用来识别同一链路中不同的计算机,后者用来识别TCP/IP网络中互连的主机和路由器。在传输层中也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。

根据端口号识别应用

一台计算机上同时可以运行多个程序。例如接受WWW服务的Web 浏览器、电邮客户端、远程登录用的ssh客户端等程序都可同时运行。传输层协议正是利用这些端口号识别本机中正在进行通信的应用程序,并准确地将数据传输。
请添加图片描述

通过IP地址、端口号、协议号进行通信识别

仅凭目标端口识别某一个通信是远远不够的。

如图所示,①和②的通信是在两台计算机上进行的。它们的目标端口号相同,都是80。例如打开两个Web浏览器,同时访问两个服务器上不同的页面,就会在这个浏览器跟服务器之间产生类似前面的两个通信。在这种情况下也必须严格区分这两个通信。因此可以根据源端口号加以区分。

下图中③跟①的目标端口号和源端口号完全相同,但是它们各自的源IP地址不同。此外,还有一种情况上图中并未列出,那就是IP地址和端口全都一样,只是协议号(表示上层是TCP或UDP的一种编号)不同。这种情况下,也会认为是两个不同的通信。

因此,TCP/IP或UDP/IP通信中通常采用5个信息来识别(这个信息可以在Unix或Windows系统中通过netstat -n 命令显示。) 一个通信。它们是“源IP地址”、“目标IP地址”、“协议号”、“源端口号”、“目标端口号”。只要其中某一项不同,则被认为是其他通信。
请添加图片描述

端口号如何确定

在实际进行通信时,要事先确定端口号。确定端口号的方法分为两种:

■ 标准既定的端口号

这种方法也叫静态方法。它是指每个应用程序都有其指定的端口号。但并不是说可以随意使用任何一个端口号。每个端口号都有其对应的使用目的(当然,这也不是说“绝对地只能有这样一个目的”。在更高级的网络应用中有时也会别作他用。) 。

例如,HTTP、TELNET、FTP等广为使用的应用协议中所使用的端口号就是固定的。这些端口号也被称之为知名端口号(Well-Known Port Number)。知名端口号一般由0到1023的数字分配而成。应用程序应该避免使用知名端口号进行既定目的之外的通信,以免产生冲突。

除知名端口号之外,还有一些端口号也被正式注册。它们分布在1024到49151的数字之间。不过,这些端口号可用于任何通信用途。关于知名端口号以及注册端口号的最新消息,请参考如下网址:

http://www.iana.org/assignments/port-numbers

■ 时序分配法

第二种方法也叫时序(或动态的)分配法。此时,服务端有必要确定监听端口号,但是接受服务的客户端没必要确定端口号。

在这种方法下,客户端应用程序可以完全不用自己设置端口号,而全权交给操作系统进行分配。操作系统可以为每个应用程序分配互不冲突的端口号。例如,每需要一个新的端口号时,就在之前分配号码的基础上加1。这样,操作系统就可以动态地管理端口号了。

根据这种动态分配端口号的机制,即使是同一个客户端程序发起的多个TCP连接,识别这些通信连接的5部分数字也不会全部相同。

动态分配的端口号取值范围在49152到65535之间(在较老的系统中有时会依次使用1024以上空闲的端口。) 。

端口号与协议

端口号由其使用的传输层协议决定。因此,不同的传输协议可以使用相同的端口号。例如,TCP与UDP使用同一个端口号,但使用目的各不相同。这是因为端口号上的处理是根据每个传输协议的不同而进行的。

数据到达IP层后,会先检查IP首部中的协议号,再传给相应协议的模块。如果是TCP则传给TCP模块、如果是UDP则传给UDP模块去做端口号的处理。即使是同一个端口号,由于传输协议是各自独立地进行处理,因此相互之间不会受到影响。

此外,那些知名端口号与传输层协议并无关系,只要端口一致都将分配同一种程序进行处理。例如,53号端口在TCP与UDP中都用于DNS服务,而80端口用于HTTP通信。从目前来看,由于HTTP通信必须使用TCP,因此UDP的80端口并未投入使用。但是将来,如果HTTP协议的实现也开始应对UDP协议以及应用协议被相应扩展的情况下,就可以原样使用与TCP保持相同的80端口号了。

TCP具有代表性的知名端口号

请添加图片描述请添加图片描述

UDP具有代表性的知名端口号

请添加图片描述请添加图片描述

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

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

相关文章

【论文笔记】Guided Skill Learning and Abstraction for Long-Horizon Manipulation

【论文笔记】Guided Skill Learning and Abstraction for Long-Horizon Manipulation 更多笔记(在耕):这里 文章目录 【论文笔记】Guided Skill Learning and Abstraction for Long-Horizon ManipulationAbstractI. INTRODUCTIONII. RELATED…

flashFXP 提示: 数据 Socket 错误: 连接已超时 阿里云 安全组

flashFXP 提示: 数据 Socket 错误: 连接已超时的解决办法, 公司搬家后,ip换了.ftp进不去了.当然要查一下服务器防火墙,ftp软件上的端口是否开放.比如自定义的端口为21221,则需要在安全组中开放这个端口.但发现没问题. 同时重新修改了ftp用户的密码.发现也无效 网上有人说,传输模…

MySQL每日一练:多表查询——连接查询、子查询

目录 1、首先创建员工表emp和部门表dept: dept表: emp表: 2、插入数据: dept表: emp表: 3、 按条件查找 1、首先创建员工表emp和部门表dept: dept表: create table dept (…

量子纠缠:超越时空的连接

亲爱的读者, 欢迎回到量子力学系列文章。在前几篇文章中,我们介绍了量子力学的起源、基本概念,以及叠加态和超级定位的奇特现象。今天,我们将探索量子力学中最为神奇和令人惊叹的现象之一:量子纠缠。 量子纠缠是一种特…

opencv读取图像数据并修改通道转变内存连续

opencv读取图像数据并修改通道转变内存连续

试题小结3

项目和项目之间的通信 两个java项目,他们之间进行信息的通信 前提:必须知道要通信的java项目(接收请求方)的服务器的IP地址和访问路径。 其实两个java项目之间的通信还是使用HTTP的请求。主要有两种方式: ①使用ap…

Flask+Echarts搭建全国疫情可视化大屏

FlaskEcharts搭建全国疫情可视化大屏 1、前言2、实现2.1 搭建flask应用2.2 编写html及其对应css代码2.3 可视化展示2.3.1 左上角板块2.3.2 中间上方板块2.3.3 右上角板块2.3.4 左下角板块2.3.5 中间下方板块2.3.6 右下角板块 2.4 完整代码&数据集获取 3、号外 1、前言 本项…

Git学习与使用

目录 版本控制、GIT以及SVN常见的版本控制方法本地版本控制集中式版本控制分布式版本控制 SVN与Git的区别 下载与安装Git安装: Git环境配置Git必要的配置 Git的基本理论(核心)Git项目搭建创建目录 git文件操作忽略文件 使用码云(gitee)辅助学…

CV常用注意力机制总结

本文总结了近几年CV领域常用的注意力机制,包括:SE(Squeeze and Excitation)、ECA(Efficient Channel Attention)、CBAM(Convolutional Block Attention Module)、CA(Coor…

DevOps基础服务2——Jenkins

文章目录 一、基本了解1.1 CI/CD介绍1.2 基于Docker的CI/CD 二、安装jenkins三、页面管理3.1 当前系统用户配置3.2 系统配置3.3 全局工具配置3.4 插件管理3.4.1 安装插件3.4.2 上传插件 3.5 用户设置3.6 查看日志3.7 汉化设置 一、基本了解 DEVOPS概念: DevOps是一种…

经典指针与数组笔试题——C语言

学习这片文章中的知识点,可以加深大家对指针应用的理解,让大家更能轻松知道指针在各种情况下指向那个内存地址。    文章开始之前 ,我们先来介绍一下一些必要的知识点 📢 : 以下代码都是在64位编译器下测试的 经典…

orcle报错:无监听程序,解决方法

orcle报错:无监听程序,解决方法 报错页面: 打开桌面侧边安装orcle的列表,找到Net Configuration Assistant,双击(这个可以重新配置监听) ![]](https://img-blog.csdnimg.cn/3ba6bd6bd0af413ca5…

nginx 开机自启

0x00 前言 简单的记录下 0x01 正文 cd /lib/systemd/system/ vim nginx.service [Unit] Descriptionnginx service Afternetwork.target [Service] Typeforking ExecStart/usr/local/nginx/sbin/nginx ExecReload/usr/local/nginx/sbin/nginx -s reload ExecStop/usr/lo…

pt18CSS

CSS 基础使用 CSS全称为: Cascading Style Sheets ,意为层叠样式表 ,与HTML相辅相成,实现网页的排版布局与样式美化 CSS使用方式 行内样式/内联样式 使用简单,但不推荐,大面积使用,很累 借…

ESP32(MicroPython) 网页显示温湿度+RGB点阵控制

本程序整合了RGB点阵可交互超声波云台网页显示温湿度程序和网页控制WS2812程序的功能,对一些参数进行了调整。去掉了图标以加快加载速度,去掉了超声波云台和按键控制以简化接线并实现RGB点阵更新周期可调,由于RGB点阵更新周期相对较长&#x…

vue3前端模拟https安全策略同局域网内测试方法-local-ssl-proxy

文章目录 前言建议全局安装运行安全策略模拟运行效果如果其他客户端不能访问 直接在cmd跑即可,不过我们应该先运行项目 前言 为什么要用https安全策略呢,因为http浏览器策略访问权限有限,不能使用navigator的激活“用户音频或视频”的方法&a…

windows上的mysql服务突然消失: 10061 Unkonwn error

问题描述 windows10 系统,今天早晨系统自己更新了下,也没啥问题,突然发现电脑上安装的mysql 服务没了… 原因分析: 我是安装的解压版的mysql 虽然服务没了,但是文件夹,包括数据啥的都在最重要的就是数据啦,还好都在 解决方案: 打开mysql 的bin所在目录…

Git撤销已合并提交的多种姿势

#Git撤销已合并提交的多种姿势 在Git中,合并分支是一个常见的操作,但有时候可能会意外地将错误的提交合并到了主分支。这时候需要撤销已合并的提交并恢复到正确的状态。本文将介绍的是如何在Git中撤销已合并的提交,无论这个提交记录是最新的还…

包管理工具:npm

安装Node的过程会自动安装npm工具 比如npm install dayjs后 const dayjsrequire("dayjs")console.log(dayjs()) 直接运行 生成package.json文件  方式一:手动从零创建项目,npm init –y  方式二:通过脚手架创建项目&#xf…

Sentinel服务器容错简介

spring gateway 详解 服务容错高并发带来的问题服务雪崩效应常见容错方案常见的容错思路1、隔离2、超时3、限流4、熔断5、降级 常见的容错组件 SentinelSentinel 具有以下特征:Sentinel概念和功能相关概念1、资源2、规则 重要功能 服务容错 高并发带来的问题 在微服务架构中&…