网络协议

概述

定义

网络协议是计算机网络的核心,它定义了设备之间如何通信,确保数据能够正确、高效、安全地传输。无论是浏览网页、发送邮件还是视频通话,背后都离不开网络协议的支持

大白话:网络协议是设备间“交流的语言”

分层结构

网络协议通常按照分层模型组织,最常见的模型是 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协议)

img

网络通信基础

数据包、帧、报文

在网络通信中,数据被分割成小块进行传输,这些小块被称为数据包、帧或报文,具体名称取决于所在的网络层次

  • 数据包(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): 数据发送到一组特定的设备

网络通信基本流程

  1. 数据封装
  • 应用层生成数据报文
  • 传输层添加端口号(TCP/UDP)
  • 网络层添加IP地址(IP)
  • 数据链路层添加MAC地址(帧)
  • 物理层将数据转换为比特流
  1. 数据传输

​ 数据通过物理介质(如电缆、光纤)传输

  1. 数据解封装

​ 接收设备逐层解析数据,最终将数据传递给目标应用程序

常见网络通信工具

  1. Ping: 测试设备之间的连通性
  2. Traceroute: 跟踪数据包的传输路径
  3. Wireshark: 抓取和分析网络数据包
  4. 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 应用的功能性、灵活性和可扩展性

参考:

菜鸟教程–网络协议


猫猫🐱



© 2025 子非鲲 使用 Stellar 创建
共发表 44 篇 Blog · 总计 109.6k 字