基于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)多为半双工或单工通信。

相关推荐
Da Da 泓17 分钟前
[项目] --- 基于websocket的网页五子棋(可多用户)
网络·websocket·网络协议·多线程·项目
lazy H24 分钟前
【计算机网络】第 2 篇:一条数据如何穿过网络?彻底理解数据封装与解封装
网络·经验分享·后端·学习·计算机网络
一木 之林39 分钟前
微信小程序开发全攻略·文章版|05 路由·交互·网络与音乐播放器实战
网络·微信小程序·小程序·交互
yunlaodacom2 小时前
华为云国际站服务代理商:BMS数据库延迟突然升高?磁盘I/O、网络与CPU排查方法
网络·数据库·华为云
张宇Joaquin2 小时前
自研SP600系列网卡驱动跟麒麟V10 SP3 2403配套关系
linux·运维·网络
睡一觉就好了。2 小时前
Cookie与Session
网络
步行cgn2 小时前
HTTP 常用请求方法详解
网络·网络协议·http
mengge.cloud2 小时前
1019Namespace ,Contexts ,Kubernetes Pod
运维·服务器·网络·云原生·容器·kubernetes·云计算
艾iYYY2 小时前
【无标题】
linux·开发语言·网络·操作系统
QZ166560951593 小时前
可视化易用·低误报率·跨区域部署:知源-AI数据分类分级系统在金融行业的落地实践
大数据·网络·安全·网络安全