Network - 网络端口

网络端口是网络中的一个虚拟端点,用于将流量导向计算机或设备上的特定服务或应用程序。端口有助于区分系统上运行的不同服务,确保正确类型的网络流量到达正确的应用程序。每个端口都与一个 IP 地址和一个通信协议(通常为 TCP 或 UDP)相关联。
A network port is a virtual endpoint used in networking to direct traffic to a specific service or application on a computer or device. Ports help differentiate between different services running on a system, ensuring that the right type of network traffic reaches the right application. Each port is associated with an IP address and a communication protocol (usually TCP or UDP).
Key Concepts:
- Port Number: 
端口号是一个 16 位整数,范围从 0 到 65535。常见的端口包括
- HTTP: 80
- HTTPS: 443
- SSH: 22
- FTP: 21
A port number is a 16-bit integer that ranges from 0 to 65535. Common ports include:
- HTTP: 80
- HTTPS: 443
- SSH: 22
- FTP: 21
- Protocols:
- TCP(传输控制协议): 确保在客户端和服务器之间可靠、有序并经过错误检查地传输数据。
- UDP(用户数据报协议): 速度更快,但不可靠,用于对速度要求较高的应用,如视频流或 DNS。
- TCP (Transmission Control Protocol): Ensures reliable, ordered, and error-checked delivery of data between client and server.
- UDP (User Datagram Protocol): Faster but unreliable, used in applications where speed is crucial, like video streaming or DNS.
Server-Client Communication with Ports
在客户端-服务器模式中,服务器和客户端都使用端口建立通信。
In a client-server model, both the server and client use ports to establish communication.
1. Server-Side Port:
- 服务器在特定端口(称为 “监听端口”)上监听传入的连接。这个端口是固定的,客户端事先就知道。
- 例如 网络服务器通常监听 80 端口(HTTP)或 443 端口(HTTPS)。
- The server listens on a specific port (called a "listening port") for incoming connections. This port is fixed and known to the client in advance.
- Example: A web server typically listens on port 80 (HTTP) or 443 (HTTPS).
2. Client-Side Port:
- 客户端使用从一系列可用端口(通常为 49152 至 65535,称为 “短暂端口”)中随机分配的端口启动通信。
- 当客户端连接到服务器时,它知道服务器的 IP 地址和端口号,但它自己的端口号是由操作系统动态分配的。
- The client uses a randomly assigned port from a range of available ports (usually 49152 to 65535, called "ephemeral ports") to initiate communication.
- When a client connects to the server, it knows the server's IP address and port number, but its own port number is dynamically assigned by the operating system.
   Example Workflow:
- 客户希望浏览一个网站(HTTP):
1. 客户端向位于 `server_ip:80`(HTTP)的服务器发送请求。
2. 客户端使用一个短暂端口,例如 `client_ip:52000`。
3. 服务器响应客户端,向`client_ip:52000`发送数据。
4. 建立通信,直至会话关闭。
- A client wants to browse a website (HTTP):
1. The client sends a request to the server at `server_ip:80` (for HTTP).
2. The client uses an ephemeral port, say `client_ip:52000`.
3. The server responds back to the client, sending data to `client_ip:52000`.
4. Communication is established until the session is closed.
Example of Port Use in Client-Server Communication
Web Browser (Client) and Web Server
- Server:
- 网络服务器(如 Apache 或 Nginx)通过 80 端口(HTTP)或 443 端口(HTTPS)监听。
- A web server (e.g., Apache or Nginx) listens on port 80 (for HTTP) or 443 (for HTTPS).
- Client:
- 浏览器(客户端)通过选择一个短暂端口(如 50321)来启动连接。
- The browser (client) initiates a connection by choosing an ephemeral port, e.g., 50321.
 Example:
- Client: `192.168.1.10:50321` (source)
- Server: `93.184.216.34:80` (destination)
客户端请求一个网页,服务器使用相应的端口进行回复。
The client requests a webpage, and the server replies using the respective ports.
Why Use Specific Ports?
- Servers use fixed or well-known ports so that clients know where to connect. For example:
- 服务器使用固定或众所周知的端口,以便客户知道从哪里连接。例如:
- DNS: Port 53 (UDP)
- SMTP (Email): Port 25 (TCP)
- FTP: Port 21 (TCP)
- 客户端不需要固定的端口,因为它们会启动通信。它们的端口号为每个会话随机分配,确保多个应用程序或会话可以同时运行而不会发生冲突。
- Clients do not need fixed ports because they initiate the communication. Their port numbers are randomly assigned for each session, ensuring that multiple applications or sessions can run simultaneously without conflict.
Bi-Directional Communication
连接一旦建立:
- 服务器和客户端使用各自的端口进行双向通信。
- 服务器使用客户端发出请求的端口向客户端发回响应。
Once a connection is established:
- The server and client use both their respective ports for bi-directional communication.
- The server sends responses back to the client using the port from which the client made the request.
Summary:
- 服务器使用一个特定的、众所周知的端口来监听传入请求(如 HTTP 的 80 端口)。
- 客户端使用随机分配的短暂端口与服务器通信。
- 两者都使用这些端口来促进网络上的双向通信。
- The server uses a specific, well-known port to listen for incoming requests (e.g., port 80 for HTTP).
- The client uses a randomly assigned ephemeral port to communicate with the server.
- Both use these ports to facilitate two-way communication over the network.
端口可确保多个服务和应用程序在同一台机器上共存,并正确路由到各自的网络请求。
Ports ensure that multiple services and applications can coexist on the same machine and be correctly routed to their respective network requests.

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

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

相关文章

graphql--快速了解graphql特点

graphql--快速了解graphql特点 1.它的作用2.demo示例2.1依赖引入2.2定义schema2.3定义GrapQL端点2.4运行测试2.5一些坑 今天浏览博客时看到graphQL,之前在招聘网站上第一次接触,以为是图数据查询语言, 简单了解后,发现对graphQL的介绍主要是用作API的查询语言,不仅限于图数据查…

Meta 发布 Quest 3S 头显及 AR 眼镜原型:开启未来交互新视界

简介 在科技的浪潮中,Meta 始终站在创新的前沿,不断为我们带来令人惊叹的虚拟现实和增强现实体验。2024 年 10 月 6 日,让我们一同聚焦 Meta 最新发布的 Quest 3S 头显及 AR 眼镜原型(Orion),探索这两款产品…

自由学习记录(2)

Unity打包图集相关 Draw Call 实验设置: 我们将创建两个场景,一个场景有高 Draw Call,另一个场景通过优化减少 Draw Call。然后对比它们的帧率(FPS)。 场景 1:高 Draw Call 场景(无优化&…

【数据结构与算法-高阶】并查集

【数据结构与算法-高阶】并查集 🥕个人主页:开敲🍉 🔥所属专栏:数据结构与算法🍅 🌼文章目录🌼 1. 并查集原理 2. 并查集实现 3. 并查集应用 1. 并查集原理 在一些应用问题中&…

了解HTTPS

目录 1.HTTP认识 2.HTTP请求 3.HTTP响应 4.URL 5.HTTP方法 面试题:POST 和 GET区别? 网上关于 GET 与 POST的差别 有待商议 关于请求报头 和 响应报头 6..Host : 7..USer-Agent(简称UA) 8.状态码 9.HTTPS 是…

读懂MySQL事务隔离

什么是事务 事务就是一组原子性的SQL查询,或者说一个独立的工作单元。事务内的语句,要么全部执行成功,要么全部执行失败。 关于事务银行系统的应用是解释事务必要性的一个经典例子。 假设一个银行的数据库有两张表:支票表&#x…

【Windows】开始菜单关键错误以及系统应用闪退问题记录

一 开始菜单关键错误 Windows长时间没有重启,重启之后开始菜单点不进去,报错“关键错误”。 查询网上有两种解决方案: 【1】更新系统版本; 【2】通过powershell执行一次性恢复所有应用的指令; 我这边采用第二种方法&am…

如何使用pymysql和psycopg2执行SQL语句

在Python中,pymysql和psycopg2是两个非常流行的库,用于与MySQL和PostgreSQL数据库进行交互。本文将详细介绍如何使用这两个库来执行SQL查询、插入、更新和删除操作。 1. 准备工作 首先,确保已经安装了pymysql和psycopg2库。如果尚未安装&a…

指针函数C++

指针函数概念 指针函数在C中是一种特殊类型的函数。从本质上讲,它是一个函数,不过其返回值是一个指针类型的数据。例如,像int* plusfunction(int a, int b);这样的函数声明,plusfunction就是一个指针函数,它接受两个i…

CentOS7.9 下安装 Docker

第一步: sudo yum install -y yum-utils \ > device-mapper-persistent-data \ > lvm2 第二步:安装 sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo yum -y install…

IT监控可视化:运维团队的智慧之眼

在当今这个数字化时代,IT系统已成为企业运营的核心支柱。随着业务的不断扩展和IT架构的日益复杂,运维团队面临着前所未有的挑战。如何高效、准确地监控和管理IT资源,确保系统的稳定性和可用性,成为了运维工作的重中之重。而IT监控…

CSS3--美若天仙!?

免责声明:本文仅做分享~ 目录 CSS引入方式 选择器 盒子尺寸和背景色 文字控制属性 单行文字 垂直居中 字体族 font复合属性 文本对齐方式 文本修饰线 color 文字颜色 ----- 复合选择器 伪类选择器 超链接伪类 CSS特性 继承性 层叠性 优先级 Emmet …

Linux驱动---光电开关、火焰传感器、人体红外传感器

文章目录 一、电路连接二、设备树三、驱动代码 一、电路连接 人体红外 – PF12 检测到人体时会产生一个上升沿 光电开关 – PE15 有遮挡物时会产生一个上升沿 火焰传感器 – PF5 有火焰时会产生一个上升沿 二、设备树 /{ //人体红外PF12human{ compatible "zyx,huma…

数据驱动投资:AI在股票市场的应用

当ChatGPT首次亮相时,其卓越的语言处理能力立刻引起了许多行业的广泛关注,投资界也不例外。关于ChatGPT是否能应用于投资决策的问题,迅速成为热门讨论的焦点。 近期,加拿大多伦多大学和印度孟买理工学院的研究人员联合开展了一项…

[论文阅读] DVQA: Understanding Data Visualizations via Question Answering

原文链接:http://arxiv.org/abs/1801.08163 启发:没太读懂这篇论文,暂时能理解的就是本文提出了一个专门针对条形图问答的数据集DVQA以及一个端到端模型SANDY,模型有两个版本,Oracle和OCR。主要解决的问题是固定词表无…

C++ —— 优先级队列(priority queue)的模拟实现

目录 杂谈 vector和list的区别 1. 优先级队列的定义 2. 优先级队列的模拟实现 3. 仿函数 链接: priority_queue - C Reference (cplusplus.com)https://legacy.cplusplus.com/reference/queue/priority_queue/?kwpriority_queue 杂谈 vector和list的区别 在…

UPDATE 和 DELETE数据库表的多行

文章目录 说明程序测试结果 说明 程序 *&---------------------------------------------------------------------* *& Report Z_TEST_1008 *&---------------------------------------------------------------------* *& *&--------------------------…

手机怎样改网络ip地址?内容详尽实用

随着网络技术的发展,更改手机IP地址已成为一种常见需求。本文将详细介绍如何在不同网络环境下更改手机IP地址,包括移动网络和WiFi网络,以及同时适用于两种网络的方法,内容详尽实用,干货满满。 一、适用于移动网络&…

vue3 vue2

vue3.0是如何变快的? diff算法优化 vue2的虚拟dom是进行全局的对比。vue3 新增了静态标记(patchFlag) 在与上次虚拟节点进行比较的时候,只对比带有patch Flag的节点,并且可以通过flag的信息得知当前节点要对比的具体内…

10.9 Qt事件处理机制

键盘按键调整label移动 #include "widget.h" #include "ui_widget.h" #include <QDebug> #include <QKeyEvent>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);}Widget::~Widget() {delete ui;…