56. 协议及端口号

协议及端口号

        在计算机网络中,协议和端口号是两个重要的概念。它们共同确保了不同计算机和网络设备之间可以正确、有效地进行通信。

  • 协议(Protocol)
    • 协议是网络通信的一组规则或标准,它定义了如何在计算机网络中发送、接收和解释信息。这些规则涵盖了如何寻址、如何建立连接、如何发送数据、如何接收数据以及如何关闭连接等方面。
    • 常见的网络协议包括:
      • TCP(传输控制协议):一种面向连接的、可靠的、基于字节流的传输层通信协议。
      • UDP(用户数据报协议):一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
      • IP(互联网协议):一种面向无连接的协议,用于数据包的分片和路由。
      • HTTP(超文本传输协议):用于Web浏览器和Web服务器之间的通信。
      • HTTPS(安全超文本传输协议):HTTP的安全版本,使用SSL/TLS进行加密。
      • FTP(文件传输协议):用于在网络上传输文件。
      • SMTP(简单邮件传输协议):用于电子邮件的传输。
      • POP3(邮局协议版本3):用于接收电子邮件。
      • IMAP(Internet邮件访问协议):用于在邮件客户端和邮件服务器之间访问电子邮件。
      • ...等等。
  • 端口号(Port Number)
    • 端口号是网络通信中的一个重要概念,用于标识一个进程或应用程序在主机上的地址。它类似于一个建筑物的门牌号,用于区分不同的通信会话。
    • 在TCP/IP协议中,端口号是一个16位的无符号整数,取值范围是0到65535。其中,一些端口号被系统或特定的应用程序所保留,称为“知名端口号”或“系统端口号”。例如,HTTP协议通常使用80端口,HTTPS协议通常使用443端口,SSH协议通常使用22端口等。
    • 端口号可以分为以下几类:
      • 知名端口号(Well-Known Ports):取值范围是0到1023。这些端口号由IANA(Internet Assigned Numbers Authority)分配,并绑定到一些特定的服务上。
      • 注册端口号(Registered Ports):取值范围是1024到49151。这些端口号可以被用户或应用程序所使用,但需要向IANA进行注册。
      • 动态端口号(Dynamic Ports):取值范围是49152到65535。这些端口号通常用于临时目的,并在需要时由系统动态分配。

        通过协议和端口号的组合,可以确保网络中的不同进程或应用程序能够正确地发送和接收数据。

        在计算机网络中,协议和端口号的组合确实是确保不同计算机和网络设备之间正确、有效通信的关键。以下是一些常见协议及其对应的端口号:

TCP/IP 协议簇

  • TCP (传输控制协议)
    • HTTP: 通常使用 80 端口,但也可以配置为其他端口(如8080、8000等)。
    • HTTPS: 通常使用 443 端口。
    • SMTP (简单邮件传输协议): 通常使用 25 端口,但也可以配置为其他端口,如587(用于提交邮件)。
    • POP3 (邮局协议版本3): 通常使用 110 端口。
    • IMAP (Internet邮件访问协议): 通常使用 143 端口(非加密)或 993 端口(使用SSL/TLS加密)。
    • FTP (文件传输协议): 控制连接通常使用 21 端口,数据连接使用 20 端口(主动模式)或随机高端口(被动模式)。
    • SSH (安全外壳协议): 通常使用 22 端口。
    • Telnet: 通常使用 23 端口。
  • UDP (用户数据报协议)
    • DNS (域名系统): 通常使用 53 端口。
    • SNMP (简单网络管理协议): 通常使用 161 (只读) 和 162 (陷阱/通知) 端口。
    • TFTP (简单文件传输协议): 通常使用 69 端口。

其他协议

  • IP (互联网协议)
    • ICMP (Internet控制消息协议): 通常与IP一起使用,没有特定的端口号概念。
    • IGMP (Internet组管理协议): 与多播相关,通常与IP一起使用,没有特定的端口号概念。
  • HTTP (超文本传输协议)
    • 如前所述,通常使用 80 端口(非加密)或 443 端口(HTTPS,使用SSL/TLS加密)。

端口号分类

  • 知名端口号 (Well-Known Ports): 0-1023。这些端口号由IANA分配,并绑定到一些特定的服务上。例如,HTTP的80端口,HTTPS的443端口等。
  • 注册端口号 (Registered Ports): 1024-49151。这些端口号可以被用户或应用程序所使用,但需要向IANA进行注册。
  • 动态端口号 (Dynamic Ports): 49152-65535。这些端口号通常用于临时目的,并在需要时由系统动态分配。

        请注意,这些端口号并不是绝对的,可以根据需要进行配置和更改。但在大多数情况下,使用默认的端口号可以确保服务的最大兼容性和易用性。

WebSocket 是一种在单个TCP连接上进行全双工通信的应用层协议,它允许浏览器与服务器之间建立持久性的、双向的通信。如果要通过 IP 地址 `192.168.23.56` 和端口号 `56` 创建一个 WebSocket 连接,通常会经历以下步骤: 1. **初始化连接**:首先,前端 JavaScript 库(如socket.io或WebSocket API)会实例化一个 WebSocket 对象,并提供服务器的 URL,形式为 `ws://192.168.23.56:56` 或者 `wss://` 如果需要加密(HTTPS)。 2. **打开连接**:调用 WebSocket 对象的 `open()` 方法开始尝试连接到服务器。如果连接成功,`open()` 事件会被触发;如果连接失败,则会捕获错误。 3. **发送消息**:一旦连接建立,就可以使用 `send()` 方法向服务器发送数据。这可以是文本字符串或二进制数据。 4. **接收消息**:服务器会通过相同的 WebSocket 连接发送响应。前端可以通过监听 `message` 事件处理收到的数据。 5. **关闭连接**:当不再需要通信时,可以在前端调用 `close()` 方法主动断开连接,也可以让其因为超时或其他原因自动关闭。 示例代码片段: ```javascript var socket = new WebSocket('ws://192.168.23.56:56'); socket.onopen = function(event) { console.log('WebSocket connected!'); }; socket.onmessage = function(event) { console.log('Received:', event.data); }; socket.onerror = function(error) { console.error('Error:', error); }; socket.onclose = function(event) { if (event.wasClean) { console.log('Connection closed cleanly'); } else { console.error('Connection died', event.code, 'reason:', event.reason); } }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MineGi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值