网络协议
概述
定义
网络协议是计算机网络的核心,它定义了设备之间如何通信,确保数据能够正确、高效、安全地传输。无论是浏览网页、发送邮件还是视频通话,背后都离不开网络协议的支持
大白话:网络协议是设备间“交流的语言”
分层结构
网络协议通常按照分层模型组织,最常见的模型是 OSI七层模型 和 TCP/IP四层模型
OSI七层模型
- 物理层(Physical Layer): 负责传输原始比特流(如电缆、光纤、无线电波)
- 数据链路层(Data Link Layer): 负责将数据封装成帧,并在同一网络中传输(如以太网协议)
- 网络层(Network Layer): 负责数据包的路由和寻址(如IP协议)
- 传输层(Transport Layer): 负责端到端的可靠传输(如TCP、UDP协议)
- 会话层(Session Layer): 负责建立、管理和终止会话(如RPC协议)
- 表示层(Presentation Layer): 负责数据的格式化和加密(如SSL/TLS协议)
- 应用层(Application Layer): 负责提供用户接口和应用程序服务(如HTTP、FTP协议)
TCP/IP四层模型
- 网络接口层(Network Interface Layer): 对应OSI的物理层和数据链路层
- 网络层(Internet Layer): 对应OSI的网络层(如IP协议)
- 传输层(Transport Layer): 对应OSI的传输层(如TCP、UDP协议)
- 应用层(Application Layer): 对应OSI的应用层、表示层和会话层(如HTTP、DNS协议)
网络通信基础
数据包、帧、报文
在网络通信中,数据被分割成小块进行传输,这些小块被称为数据包、帧或报文,具体名称取决于所在的网络层次
- 数据包(Packet): 在网络层(如IP协议)中,数据被封装成数据包,包含源地址、目标地址和数据内容
- 帧(Frame): 在数据链路层(如以太网协议)中,数据包被进一步封装成帧,包含MAC地址和错误检测信息
- 报文(Message): 在应用层(如HTTP协议)中,数据以报文的形式传输,包含请求或响应的具体内容
网络地址
IP地址(Internet Protocol Address)
用于标识网络中的设备,分为IPv4(如 192.168.1.1
)和IPv6(如 2001:0db8:85a3::8a2e:0370:7334
)
MAC地址(Media Access Control Address)
用于标识网络接口卡(NIC),是一个唯一的硬件地址,格式为 00:1A:2B:3C:4D:5E
[!CAUTION]
IP地址相当于家庭住址(可变)
MAC地址相当于身份证号码(固定)
端口号与套接字
端口号(Port Number)
用于标识设备上的具体应用程序或服务,范围是 0 到 65535
常见端口号:
- HTTP: 80
- HTTPS: 443
- FTP: 21
- SSH: 22
- DNS: 53
套接字(Socket)
套接字是网络通信的端点,由IP地址和端口号组成(如 192.168.1.1:80)
套接字用于建立连接、发送和接收数据
大白话:Socket 是让两个程序通过网络“说话”的工具
网络设备
网络通信依赖于多种设备来实现数据的传输和路由
- 路由器(Router): 负责在不同网络之间转发数据包,基于IP地址进行路由选择
- 交换机(Switch): 负责在同一网络内转发数据帧,基于MAC地址进行数据交换
- 网关(Gateway): 连接不同协议或网络,实现数据格式的转换
- 调制解调器(Modem): 将数字信号转换为模拟信号(如通过电话线传输)
网络拓扑结构
网络拓扑结构描述了设备之间的连接方式
- 星型拓扑(Star Topology)
- 所有设备连接到一个中心节点(如交换机)
- 优点:易于管理和扩展
- 缺点:中心节点故障会导致整个网络瘫痪
- 总线型拓扑(Bus Topology)
- 所有设备连接到一条主干线
- 优点:成本低
- 缺点:主干线故障会影响整个网络
- 环型拓扑(Ring Topology)
- 设备连接成一个环形
- 优点:数据传输效率高
- 缺点:单点故障会影响整个网络
- 网状拓扑(Mesh Topology)
- 设备之间有多条连接路径
- 优点:可靠性高
- 缺点:成本高,管理复杂
数据传输方式
- 单播(Unicast): 数据从一台设备发送到另一台设备
- 广播(Broadcast): 数据发送到网络中的所有设备
- 组播(Multicast): 数据发送到一组特定的设备
网络通信基本流程
- 数据封装
- 应用层生成数据报文
- 传输层添加端口号(TCP/UDP)
- 网络层添加IP地址(IP)
- 数据链路层添加MAC地址(帧)
- 物理层将数据转换为比特流
- 数据传输
数据通过物理介质(如电缆、光纤)传输
- 数据解封装
接收设备逐层解析数据,最终将数据传递给目标应用程序
常见网络通信工具
- Ping: 测试设备之间的连通性
- Traceroute: 跟踪数据包的传输路径
- Wireshark: 抓取和分析网络数据包
- Netstat: 查看网络连接状态
[!IMPORTANT]
Netstat命令在Windows中应用为例
命令 说明 netstat -a
显示所有连接和监听端口 netstat -n
以数字方式显示地址和端口(不解析域名) netstat -o
(Windows)显示每个连接对应的 进程ID(PID) netstat -an
同时显示数字形式和全部连接 netstat -ano
(Windows)最常用!显示所有连接+端口+PID netstat -s
显示网络协议统计信息(如 TCP/UDP 收发统计) netstat -r
显示路由表(等价于 route print
)`netstat -an findstr ESTABLISHED ` `netstat -ano findstr :8080` `tasklist findstr 1234`
协议
FTP协议
FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上传输文件的协议,其允许用户从一台计算机(客户端)向另一台计算机(服务器)上传或下载文件
默认端口21
SSH协议
SSH(Secure Shell,安全外壳协议)是一种用于安全远程登录和其他网络服务的加密协议
SSH 通过加密通信来保护数据在传输过程中的安全性,广泛应用于系统管理、文件传输和远程命令执行等场景
默认端口22
Telnet协议
Telnet 是一种用于远程登录的网络协议,允许用户通过网络连接到远程计算机并在其上执行命令,其是SSH协议的前身
默认端口23
TCP协议
TCP(Transmission Control Protocol,传输控制协议)是互联网协议套件中的核心协议之一,位于传输层。它提供了一种可靠的、面向连接的、基于字节流的数据传输服务。TCP 的主要特点是确保数据在传输过程中不丢失、不重复,并且按顺序到达
SMTP协议
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是一种用于发送电子邮件的网络协议,负责将邮件从发送方传递到接收方的邮件服务器
默认端口25
DNS协议
DNS(Domain Name System,域名系统)是互联网中用于将域名(如 www.example.com
)转换为 IP 地址(如 93.184.216.34
)的分布式系统
DNS 相当于互联网的"电话簿",使得用户可以通过易记的域名访问网络资源,而无需记住复杂的 IP 地址
默认端口53
HTTP协议
HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最广泛的协议之一,用于在客户端(如浏览器)和服务器之间传输超文本(如网页)
HTTP 是万维网(WWW)的基础,支持网页浏览、文件下载、API 调用等应用场景
默认端口80
HTTPS协议
HTTPS(HyperText Transfer Protocol Secure,安全超文本传输协议)是 HTTP 的安全版本,通过在 HTTP 和传输层之间加入 TLS/SSL 加密层,保护数据传输的安全性和完整性
HTTPS 广泛用于保护敏感信息(如登录凭证、支付信息)的传输
默认端口443
POP3协议
POP3(Post Office Protocol version 3,邮局协议第3版)是一种用于从邮件服务器下载电子邮件的协议
POP3 允许用户通过客户端(如 Outlook、Thunderbird)从服务器获取邮件,并将邮件存储到本地设备
默认端口110
IMAP协议
IMAP(Internet Message Access Protocol,互联网邮件访问协议)是一种用于从邮件服务器访问和管理电子邮件的协议
与 POP3 不同,IMAP 允许用户在服务器上管理邮件,支持多设备同步和高级邮件操作
默认端口143
RDP协议
RDP(Remote Desktop Protocol,远程桌面协议)是由 Microsoft 开发的一种协议,用于远程访问和控制另一台计算机的桌面
RDP 允许用户通过网络在本地设备上操作远程计算机,就像坐在远程计算机前一样
默认端口3389
SFTP协议
SFTP(SSH File Transfer Protocol,SSH 文件传输协议)是一种基于 SSH(Secure Shell)的文件传输协议,用于在客户端和服务器之间安全地传输文件
默认的 SSH 端口22
UDP协议
UDP(User Datagram Protocol,用户数据报协议)是一种简单的、无连接的传输层协议,用于在网络中传输数据
与TCP不同的是,UDP不提供可靠性、顺序性和流量控制,但它具有低延迟和高效的特点,适合对实时性要求较高的应用
SSL协议
SSL(Secure Sockets Layer,安全套接层)是一种用于保护网络通信安全的协议,通过在传输层和应用层之间建立加密通道,防止数据被窃听、篡改和伪装
SSL 是 HTTPS、FTPS 等安全协议的基础,现已被更先进的 TLS(Transport Layer Security,传输层安全)协议所取代,但 SSL 仍然被广泛使用和提及
TLS协议
TLS(Transport Layer Security,传输层安全)是一种用于在网络中加密数据传输的协议,旨在保护数据的机密性、完整性和身份验证。
TLS 是 SSL(Secure Sockets Layer,安全套接层)的继任者,提供了更强的安全性和性能。TLS 是 HTTPS、SMTPS、FTPS 等安全协议的基础
ARP协议
ARP(Address Resolution Protocol,地址解析协议)是一种用于将网络层地址(如 IP 地址)解析为数据链路层地址(如 MAC 地址)的协议
RARP协议
RARP(Reverse Address Resolution Protocol,反向地址解析协议)是一种用于将数据链路层地址(如 MAC 地址)解析为网络层地址(如 IP 地址)的协议
RARP 是 ARP(Address Resolution Protocol,地址解析协议)的反向操作,主要用于无盘工作站等设备在启动时获取自己的 IP 地址
DHCP协议
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种用于自动分配 IP 地址和其他网络配置信息(如子网掩码、默认网关、DNS 服务器)的协议
DHCP 简化了网络管理,允许设备在加入网络时自动获取必要的配置,而无需手动设置
MTP协议
MTP(Media Transfer Protocol,媒体传输协议)是一种用于在设备和计算机之间传输媒体文件(如照片、视频、音乐)的协议
MTP 由 Microsoft 开发,主要用于连接 Android 设备、数码相机、MP3 播放器等媒体设备与计算机
NTP协议
NTP(Network Time Protocol,网络时间协议)是一种用于同步计算机系统时间的协议
NTP 通过分层的时间服务器架构,确保网络中所有设备的时间保持一致,精度可达毫秒甚至微秒级别
NTP 是互联网上最广泛使用的时间同步协议,广泛应用于计算机网络、金融交易、科学实验等领域。
PPP协议
PPP(Point-to-Point Protocol,点对点协议)是一种用于在点对点链路上传输数据的协议。
PPP 广泛应用于拨号连接、DSL、V*N 等场景,支持多种网络层协议(如 IP、IPX)的封装和传输
ICMP协议
ICMP(Internet Control Message Protocol,互联网控制消息协议)是 TCP/IP 协议族中的一种网络层协议,用于在 IP 网络中传递控制消息和错误报告
ICMP 主要用于诊断网络问题、检测网络可达性和报告错误条件
ICMP 是网络管理和故障排除的重要工具,常见的工具如 ping 和 traceroute 都依赖于 ICMP
IGMP协议
IGMP(Internet Group Management Protocol,互联网组管理协议)是一种用于管理 IP 组播组成员关系的协议
IGMP 运行在主机和与其直接相连的路由器之间,用于支持 IP 组播通信
GGP协议
GGP(Gateway-to-Gateway Protocol,网关到网关协议)是一种早期的路由协议,用于在互联网的核心路由器之间交换路由信息
GGP 是 ARPANET(现代互联网的前身)中最早使用的路由协议之一,主要用于在网关(即路由器)之间动态学习和传播路由信息
MCP协议
MCP(Model Context Protocol,模型上下文协议)是一种开放协议,旨在实现 大型语言模型(LLM) 应用与外部数据源、工具和服务之间的无缝集成,类似于网络中的 HTTP 协议或邮件中的 SMTP 协议
MCP 协议通过标准化模型与外部资源的交互方式,提升 LLM 应用的功能性、灵活性和可扩展性
参考: