基于Socket实现的主流网络协议汇总

基于Socket实现的主流网络协议汇总

前言:最近在学websocket,本来想了解一下除了websocket还有其他的没有,后面重新学了一下

一、核心概念澄清

首先需明确:Socket(套接字)并非一种协议,而是一套用于实现网络通信的编程接口(API)/编程规范,是应用层与传输层(TCP/UDP)之间的桥梁。所有基于 TCP/IP 协议簇的应用层协议,本质上都是通过 Socket 接口实现数据传输的。

WebSocket 仅是基于 Socket 实现的应用层协议之一,以下按传输层依赖分类,详细列举其他主流协议。

二、基于 TCP 协议的应用层协议(TCP Socket 实现)

TCP 是面向连接、可靠的传输层协议,适用于需保证数据完整性的业务场景,对应的应用层协议均基于 TCP + Socket 实现。

2.1 HTTP/HTTPS

  • 用途:网页浏览、后端接口请求、第三方开放平台交互等

  • 核心信息:HTTP 默认使用 80 端口,HTTPS(加密版)默认使用 443 端口;底层基于 TCP 协议,通过 TCP Socket 建立连接并传输数据(支持短连接/长连接)

  • 与 WebSocket 区别:HTTP 是"请求-响应"模式(半双工,仅客户端主动发起请求后服务端才响应),WebSocket 是全双工通信(TCP 连接建立后,双方可主动收发数据)

2.2 FTP(文件传输协议)

  • 用途:跨主机文件上传、下载,支持断点续传、权限验证

  • 核心信息:默认使用 21 端口(控制连接,传输指令)+ 20 端口(数据连接,传输文件数据),基于 TCP Socket 实现可靠传输

2.3 邮件相关协议(SMTP/POP3/IMAP)

  • 用途:邮件的发送与接收

  • 核心信息:

    • SMTP:发送邮件,默认 25 端口(明文)/ 465 端口(加密)

    • POP3:接收邮件,默认 110 端口(明文)/ 995 端口(加密)

    • IMAP:灵活管理邮件(如同步文件夹、标记已读),默认 143 端口(明文)/ 993 端口(加密)

  • 关联:三者均基于 TCP Socket 实现,保证邮件数据传输的完整性与顺序性

2.4 远程登录协议(Telnet/SSH)

  • 用途:远程控制服务器/网络设备

  • 核心信息:

    • Telnet:明文传输,默认 23 端口,安全性低,现已基本淘汰

    • SSH:加密传输,默认 22 端口,支持远程登录、执行命令、文件传输(scp/sftp 基于 SSH)

  • 关联:均通过 TCP Socket 建立稳定连接,实现客户端与远程主机的交互

2.5 数据库通信协议

  • 用途:应用程序与数据库的交互(执行 SQL 指令、获取查询结果)

  • 核心信息:

    • MySQL 协议:默认 3306 端口,基于 TCP Socket 建立长连接传输数据

    • PostgreSQL 协议:默认 5432 端口,TCP Socket 实现可靠交互

    • Oracle 协议:默认 1521 端口,依赖 TCP Socket 完成连接与数据传输

2.6 Redis 协议(RESP)

  • 用途:Redis 客户端与服务端的缓存操作(增删改查、事务等)

  • 核心信息:默认 6379 端口,基于 TCP Socket 实现长连接,RESP 是 Redis 自定义的轻量化应用层协议,底层依赖 TCP 保证数据可靠传输

2.7 MQTT(消息队列遥测传输)

  • 用途:物联网(IoT)、低带宽场景的消息推送(如智能设备通信、消息订阅发布)

  • 核心信息:默认 1883 端口(明文)/ 8883 端口(加密),主流基于 TCP Socket 实现,保证消息传输的可靠性

三、基于 UDP 协议的应用层协议(UDP Socket 实现)

UDP 是无连接、不可靠的传输层协议,适用于实时性要求高于可靠性的场景,对应的协议基于 UDP Socket 实现。

3.1 DNS(域名系统协议)

  • 用途:将域名(如 www.baidu.com)解析为 IP 地址,是互联网访问的基础

  • 核心信息:默认 53 端口,核心基于 UDP Socket 实现(解析请求数据量小,优先保证实时性);若解析失败或请求数据过大,会降级为 TCP 传输

3.2 DHCP(动态主机配置协议)

  • 用途:给局域网设备自动分配 IP 地址、子网掩码、网关、DNS 等网络参数

  • 核心信息:客户端使用 68 端口,服务端使用 67 端口,基于 UDP Socket 实现,无需建立连接,快速完成参数分配

3.3 TFTP(简单文件传输协议)

  • 用途:小型设备、局域网内的简单文件传输(如路由器固件升级、嵌入式设备数据同步)

  • 核心信息:默认 69 端口,基于 UDP Socket 实现,协议简单、传输速度快;无权限验证,不可靠,适合小文件传输

3.4 SNMP(简单网络管理协议)

  • 用途:监控网络设备(路由器、交换机、服务器)的状态(如流量、负载、故障告警)

  • 核心信息:默认 161/162 端口,基于 UDP Socket 实现,轻量化、实时性高,适合频繁采集设备状态数据

3.5 NTP(网络时间协议)

  • 用途:实现网络设备/服务器的时间同步,保证系统时间一致性

  • 核心信息:默认 123 端口,基于 UDP Socket 实现,无需可靠传输,优先保证时间同步的实时性

3.6 QUIC(快速 UDP 互联网连接)

  • 用途:HTTP/3 的底层传输协议,替代 HTTP/2 的 TCP 传输

  • 核心信息:基于 UDP Socket 实现,融合 TCP 的可靠性(重传、有序)与 UDP 的实时性,解决 TCP 队头阻塞问题,适用于视频直播、低延迟接口请求等场景

四、基于 Raw Socket(原始套接字)的协议

Raw Socket 允许应用程序直接访问网络层(IP 协议),无需经过传输层(TCP/UDP),对应的协议多为网络层/数据链路层协议。

4.1 ICMP(互联网控制报文协议)

  • 用途:网络故障诊断(如 ping 命令)、错误通知(如目标不可达、超时)

  • 关联:通过 Raw Socket 实现,不依赖 TCP/UDP,直接封装在 IP 数据包中传输;ping 命令本质就是发送 ICMP 请求包并接收响应包

4.2 ARP(地址解析协议)

  • 用途:将 IP 地址解析为局域网内的 MAC 地址,实现局域网设备之间的直接通信

  • 关联:通过 Raw Socket 实现,属于数据链路层协议,无需 IP 协议封装,直接在局域网内广播传输

五、自定义协议

除标准协议外,很多业务场景会基于 TCP Socket/UDP Socket 自定义应用层协议,例如:

  • 游戏行业:游戏服务端与客户端的实时交互协议(如王者荣耀、和平精英的玩家操作同步、场景数据推送)

  • 即时通讯:即时通讯软件的点对点传输协议(如微信的部分点对点消息、文件传输)

  • 工业控制:工业设备的网络控制协议(如 PLC 设备的远程控制、数据采集)

六、总结

6.1 核心逻辑

Socket 是通信接口(工具),协议是通信规则(规范);各类网络协议通过 Socket 接口实现数据在网络中的传输,二者是"工具"与"使用规则"的关系。

6.2 主流协议分类汇总

Socket 类型(传输层依赖) 对应协议 核心特点
TCP Socket HTTP/HTTPS、FTP、SMTP/POP3/IMAP、SSH、数据库协议、Redis 协议、MQTT 可靠传输、面向连接,适合需保证数据完整性的场景
UDP Socket DNS、DHCP、TFTP、SNMP、NTP、QUIC 实时性高、无连接,适合对可靠性要求低但需快速传输的场景
Raw Socket ICMP、ARP 直接访问底层网络,适用于网络诊断、局域网通信等场景

6.3 与 WebSocket 的关联

WebSocket 是 TCP Socket 上的应用层协议,与 HTTP 同级;其核心优势是建立 TCP 连接后实现全双工通信,而其他 TCP 类协议(如 HTTP)多为半双工或单工通信。

相关推荐
tianyuanwo2 小时前
深入理解iptables:规则管理与匹配机制深度解析
网络·安全·web安全
TG:@yunlaoda360 云老大3 小时前
如何使用华为云国际站代理商WSA配置与架构交付中的安全策略?
网络·架构·华为云
打码人的日常分享3 小时前
企业数据资产管控和数据治理解决方案
大数据·运维·网络·人工智能·云计算
阿华hhh3 小时前
Linux系统编程(网络udp)
linux·服务器·c语言·网络·网络协议·udp
驱动探索者3 小时前
[缩略语大全]之[内存管理]篇
java·网络·算法·内存管理
鹿野素材屋3 小时前
技术闲聊:为什么网游会在固定时间点,刷出固定的道具?
前端·网络·unity
HansenPole8253 小时前
元编程笔记
笔记·网络协议·rpc
TG:@yunlaoda360 云老大4 小时前
华为云国际站代理商TaurusDB的读写分离可以应用于哪些场景?
服务器·网络·数据库·华为云
ICT技术最前线4 小时前
深信服交换机配置命令教程
网络·交换机·深信服·交换机配置教程