网络基础 (Network Fundamentals)
1. 简介 (Introduction)
网络是设备相互连接的集合。
- 核心术语:指相互连接的设备。
- 网络概念:网络是连接在一起的事物,例如,因共同兴趣而连接的朋友圈。
1.1 网络设备识别 (Identifying Devices on a Network)
网络上的设备主要通过以下两种地址识别:
- IP 地址 (Internet Protocol Address):用于在特定时间内识别网络上的主机。
- MAC 地址 (Media Access Control Address):类似于设备的序列号,是唯一的物理地址。
1.2 IP 地址 (Internet Protocol)
IP 地址是用于在网络上识别主机的数字集合,分为四个八位字节。每个八位字节的值汇总构成了设备在网络上的 IP 地址。IP 地址可以随设备改变,但在同一网络中不能同时被多个设备激活。
1.2.1 公共 IP (Public IP)
- 定义:全球唯一的 IP 地址,由互联网管理机构(如 ICANN)统一分配,可直接访问互联网。
- 特点:
- 全球唯一性,不会重复。
- 可被互联网上的其他设备直接访问(如访问网站、远程连接)。
- 通常由互联网服务提供商(ISP)分配给用户或企业。
- 用途:
- 服务器、网站托管、云服务等需要对外提供服务的场景。
- 家庭或企业网络的出口(如路由器的 WAN 口地址)。
- 示例:
203.0.113.45
(IPv4)、2001:0db8:85a3::8a2e:0370:7334
(IPv6)。
1.2.2 私有 IP (Private IP)
- 定义:在本地网络内部使用的 IP 地址,不可直接访问互联网,需通过 NAT(网络地址转换)转换为公共 IP。
- 特点:
- 非全球唯一,同一地址可在不同局域网中重复使用。
- 仅在局域网内可见,无法被互联网直接访问。
- 节省公共 IP 资源,提高网络安全性。
- IPv4 私有地址范围:
10.0.0.0/8
(10.0.0.0 到 10.255.255.255)172.16.0.0/12
(172.16.0.0 到 172.31.255.255)192.168.0.0/16
(192.168.0.0 到 192.168.255.255)
- IPv6 私有地址:ULA(Unique Local Address),如
fc00::/7
。
1.2.3 核心区别 (Core Differences: Public vs. Private IP)
对比项 | 公共 IP | 私有 IP |
---|---|---|
唯一性 | 全球唯一 | 局域网内唯一 |
可访问性 | 直接访问互联网 | 需通过 NAT 转换 |
分配方式 | ISP 或 ICANN 分配 | 本地路由器自动分配(如 DHCP) |
用途 | 对外服务、互联网连接 | 内部设备通信 |
安全性 | 直接暴露于互联网 | 隐藏在 NAT 后,相对安全 |
1.2.4 如何查看 IP 地址? (How to Check IP Addresses?)
- 公共 IP:访问网站(如
whatismyip.com
)或路由器管理界面。 - 私有 IP:在设备的网络设置中查看(如 Windows 的“IP 配置”、手机的“Wi-Fi 详情”)。
总结:公共 IP 是互联网的“门牌号码”,用于全球通信;私有 IP 是家庭/企业内部的“房间号”,通过 NAT 技术共享一个公共 IP 上网。两者协同工作,既保证了互联网的正常运行,又解决了 IP 地址短缺和网络安全问题。
1.2.5 IPv6
IPv6 是互联网协议寻址方案的新版本,旨在解决 IPv4 地址耗尽问题,并提供多项优势:
- 支持高达 2^128 个 IP 地址(超过 340 万亿),解决了 IPv4 面临的问题。
- 由于采用新方法而效率更高。 [Image: IPv4 and IPv6 comparison with octets/hexadecimal representation]
1.3 MAC 地址 (Media Access Control Address)
网络上的设备都具有物理网络接口,即设备主板上的微芯片板。该网络接口在工厂生产时被分配了一个唯一的地址,称为 MAC (Media Access Control) 地址。
- 格式:MAC 地址是一个由冒号分隔的十二个字符的十六进制数(例如
a4:c3:f0:85:ac:2d
)。 - 组成:前六个字符表示制造网络接口的公司,后六个字符是唯一编号。 [Image: MAC address breakdown]
2. Ping (ICMP)
Ping 是最基本的网络工具之一,使用 ICMP (Internet Control Message Protocol) 数据包来确定设备之间连接的性能,例如连接是否存在或是否可靠。
ICMP(Internet Control Message Protocol)是互联网控制消息协议,属于 TCP/IP 协议栈的核心协议之一,主要用于在 IP 网络中传递控制和错误消息。
2.1 主要功能 (Main Functions)
- 错误报告:当 IP 数据包无法到达目标时,发送错误消息(如目标不可达、超时等)。
- 诊断功能:
- Ping:通过 ICMP 回显请求(类型 8)和应答(类型 0)测试网络连通性。
- Traceroute:利用 ICMP 超时消息(类型 11)跟踪数据包路径。
- 网络信息查询:提供主机或路由器的状态信息(如地址掩码请求、时间戳请求)。
2.2 常见 ICMP 消息类型 (Common ICMP Message Types)
类型代码 | 消息类型 | 用途描述 |
---|---|---|
0 | 回显应答(Echo Reply) | 响应 Ping 请求 |
8 | 回显请求(Echo Request) | 发起 Ping 测试 |
3 | 目标不可达(Destination Unreachable) | 数据包无法到达目标 |
11 | 超时(Time Exceeded) | 数据包生存时间(TTL)耗尽 |
2.3 典型应用场景 (Typical Application Scenarios)
- 网络诊断:使用
ping
命令验证主机是否可达;使用traceroute
或tracert
追踪网络路径。 - 故障排查:通过目标不可达消息(类型 3)定位路由或防火墙问题。
- 监控网络状态:检测网络延迟、丢包率等指标。
2.4 如何测试 ICMP? (How to Test ICMP?)
- Ping 命令:bash
ping example.com # 发送 ICMP 回显请求
- Traceroute 命令:bash
traceroute example.com # 在 Linux/macOS 中使用 tracert example.com # 在 Windows 中使用
2.5 注意事项 (Notes)
- 可靠性:ICMP 不保证消息的可靠传输,可能因网络拥塞或防火墙规则被丢弃。
- 安全性:某些网络环境会禁用 ICMP(如限制 Ping),导致诊断工具失效。
- 替代方案:若 ICMP 被屏蔽,可尝试使用 TCP/UDP 端口探测(如
telnet
或nmap
)。
3. 局域网 (LAN - Local Area Network)
LAN (Local Area Network) 是一种覆盖范围较小的计算机网络,通常局限于家庭、办公室、学校或园区内。
3.1 核心特点 (Core Characteristics)
- 覆盖范围:通常在几公里以内(如家庭、一栋楼或一个园区)。
- 高传输速率:支持 10Mbps 至 10Gbps 甚至更高的传输速度(如光纤网络)。
- 低延迟:数据传输延迟较低,适合实时应用(如视频会议、在线游戏)。
- 私有性:多为私有网络,通过路由器或防火墙与外部网络(如互联网)隔离。
3.2 优势 (Advantages)
- 成本效益:使用共享资源(如打印机、存储设备)降低成本。
- 易于管理:集中化管理设备和用户权限。
- 高安全性:通过防火墙和访问控制列表(ACL)保护内部网络。
3.3 LAN 的组成 (Components of LAN)
- 硬件设备:
- 交换机/集线器:连接多台设备,实现数据交换。
- 路由器:连接 LAN 与外部网络(如互联网),分配 IP 地址。
- 网线/无线接入点(AP):提供有线或无线连接。
- 终端设备:计算机、手机、打印机、智能家居设备等。
- 协议与技术:
- 以太网:主流有线 LAN 技术(如 IEEE 802.3)。
- Wi-Fi:无线 LAN 技术(如 IEEE 802.11a/b/g/n/ac/ax)。
- TCP/IP:基础通信协议,负责 IP 地址分配和数据传输。
3.4 常见 LAN 类型 (Common LAN Types)
- 家庭 LAN:由无线路由器、电脑、手机、智能家电等组成,通过 DHCP 自动分配 IP 地址。
- 企业 LAN:采用分层架构(核心层、汇聚层、接入层),支持 VLAN 划分、QoS(服务质量)管理。
- 无线 LAN (WLAN):通过无线 AP 覆盖区域,适合移动办公或临时网络搭建。
3.5 典型应用场景 (Typical Application Scenarios)
- 资源共享:文件共享、打印机共享、存储设备共享。
- 内部通信:局域网内的即时通讯、视频会议。
- 监控与控制:智能家居设备控制、企业安防监控系统。
- 高带宽应用:流媒体传输、在线协作、云计算服务。
3.6 LAN 配置示例 (LAN Configuration Examples)
- 家庭 LAN 设置:
- 连接路由器,通过管理界面(如
192.168.1.1
)配置 Wi-Fi 名称和密码。 - 启用 DHCP 功能,自动分配 IP 地址(如
192.168.1.x
)。
- 连接路由器,通过管理界面(如
- 企业 LAN 配置:
- 使用交换机划分 VLAN 隔离不同部门(如财务、研发)。
- 部署防火墙或 VPN 设备保障网络安全。
3.7 常见问题与解决 (Common Issues & Solutions)
- IP 地址冲突:手动分配静态 IP 或重启 DHCP 服务器。
- 无线信号弱:调整 AP 位置、更换高增益天线或添加信号放大器。
- 网络延迟高:检查带宽占用、优化路由策略或升级网络设备。
3.8 限制 (Limitations)
- 覆盖范围有限:仅适用于小范围区域,扩展到广域网(WAN)需要额外设备。
- 依赖性高:中心设备(如路由器或交换机)故障可能导致整个网络中断。
3.9 相关工具与命令 (Related Tools & Commands)
- Windows:
ipconfig
:查看 IP 地址和网络配置。ping
:测试设备连通性(如ping 192.168.1.1
)。arp -a
:查看局域网内的 MAC 地址与 IP 映射。
- Linux/macOS:
ifconfig
或ip addr
:查看网络接口信息。traceroute
:追踪数据包路径。nmap
:扫描局域网内的活动设备(如nmap -sn 192.168.1.0/24
)。
3.10 LAN 拓扑 (LAN Topology)
常见的 LAN 拓扑类型包括:
- 环形拓扑 (Ring Topology)
- 总线拓扑 (Bus Topology)
- 星形拓扑 (Star Topology)
3.10.1 交换机 (Switch) 和 路由器 (Router)
交换机 (Switch):
- 定义:网络中用于聚合多个设备(如计算机、打印机)的专用设备,通过以太网连接。
- 端口:通常有 4, 8, 16, 24, 32, 64 等多种端口数量,适用于大型网络。
- 效率:比集线器(Hubs/Repeaters)更高效,交换机记录连接到哪个端口的设备,收到数据包后直接发送给目标设备,从而减少网络流量。 [Image: Switch and Router comparison diagram]
路由器 (Router):
- 定义:连接不同网络并在它们之间传递数据的设备,通过“路由”实现。
- 路由 (Routing):数据在网络间传输的过程,涉及在网络之间创建路径以成功传递数据。
- 职责:创建网络间的路径,使数据能够成功传输。
3.10.2 交换机 (Switch) 和 路由器 (Router) 区别
路由器和交换机是网络中常见的设备,但功能和用途有明显区别:
对比项 | 路由器 (Router) | 交换机 (Switch) |
---|---|---|
功能 | 连接不同网络(如局域网到互联网);分配 IP 地址(DHCP);支持 NAT;具备防火墙、VPN、QoS 等高级功能。 | 连接同一局域网内的多台设备;快速转发数据帧;扩展网络端口数量,提升局域网内数据传输效率。 |
工作层次 | 网络层(OSI 第三层),基于 IP 地址转发数据。 | 数据链路层(OSI 第二层),基于 MAC 地址转发数据。 |
应用场景 | 家庭/企业网络接入互联网;跨网络通信;需要网络安全或高级管理功能时。 | 扩展局域网内设备连接;需要高速内网传输;无需连接外网的场景。 |
连接方式 | 通常连接广域网(如光纤、ADSL)和局域网。 | 直接连接同一局域网内的设备,或级联到路由器扩展端口。 |
安全性 | 可设置防火墙、访问控制列表(ACL),保护内网安全。 | 默认无安全功能,需配合路由器或单独配置。 |
总结选择建议:
- 家庭用户:通常只需路由器(带交换功能)即可满足上网和设备连接需求。
- 企业/大型网络:路由器负责连接外网和核心管理,交换机负责扩展内网端口和高速传输。
- 特殊需求:如高速内网传输、视频监控等,可额外添加交换机。
3.11 子网划分 (Subnetting)
子网划分是将一个网络划分为更小的、内部的微型网络的过程。这类似于将一个蛋糕切片分给朋友,决定谁获得哪一片并预留该片。
- 实现方式:通过划分网络中可容纳的主机数量来完成,由“子网掩码”表示。
- 子网掩码:也由四个字节(32 位)组成,范围从 0 到 255。 [Image: IP address and subnet mask example]
子网使用 IP 地址的方式有三种:
类型 | 目的 | 解释 | 示例 |
---|---|---|---|
网络地址 | 识别实际网络的起始点,用于标识网络的物理存在。 | 例如,IP 地址为 192.168.1.100 的设备将位于 192.168.1.0 标识的网络上。 | 192.168.1.0 |
主机地址 | 用于识别子网上的设备。 | 例如,一个设备的网络地址可能是 192.168.1.1 。 | 192.168.1.100 |
默认网关 | 分配给网络上能够将信息发送到另一个网络的设备的特殊地址。 | 任何需要发送到不在同一网络(例如不在 192.168.1.0 )的设备的数据都将发送到此设备。这些设备可以使用任何主机地址,但通常使用网络中的第一个或最后一个主机地址(.1 或 .254 )。 | 192.168.1.254 |
3.12 地址解析协议 (ARP - Address Resolution Protocol)
地址解析协议(ARP)负责查找与特定 IP 地址相关的 MAC(硬件)地址。
- 功能:允许设备在网络上识别自身,将 MAC 地址与 IP 地址关联。
- 工作原理:
- 设备维护一个 ARP 缓存,存储网络上其他设备的 MAC 地址与 IP 地址的映射。
- 通过发送两种类型的消息:
- ARP 请求 (ARP Request):向网络广播消息,询问“哪个 MAC 地址拥有此 IP 地址?”
- ARP 响应 (ARP Reply):拥有该 IP 地址的设备会回应其 MAC 地址。
- 请求设备会将此映射存储在 ARP 缓存中以备将来使用。 [Image: ARP process diagram]
3.13 动态主机配置协议 (DHCP - Dynamic Host Configuration Protocol)
IP 地址可以通过手动输入或自动分配(最常见的是通过 DHCP 服务器)进行配置。
- 工作流程 (DORA Process):
- DHCP Discover (发现):当设备连接到网络时,如果尚未手动分配 IP 地址,它会发送请求以查看网络上是否有 DHCP 服务器。
- DHCP Offer (提供):DHCP 服务器回复一个设备可以使用的 IP 地址。
- DHCP Request (请求):设备发送回复,确认它想要提供的 IP 地址。
- DHCP ACK (确认):DHCP 服务器发送回复,确认此过程已完成,设备可以开始使用该 IP 地址。 [Image: DHCP DORA process diagram]
4. OSI 模型 (OSI Model - Open Systems Interconnection Model)
OSI 模型(Open Systems Interconnection Model)是一个重要的网络模型,它提供了一个框架,规定了所有联网设备如何发送、接收和解释数据。
- 主要优势:设备可以在网络上拥有不同的功能和设计,同时与其他设备通信,确保数据遵循 OSI 模型的一致性,从而被其他设备理解。
- 封装 (Encapsulation):数据在每一层传输时,都会发生特定的处理,并向数据添加信息。 [Image: OSI 7-layer model diagram] [Image: OSI model layers with descriptions]
OSI 模型是一个分层的网络架构模型,用于描述计算机网络通信的各个阶段。它分为七个层级,每一层都有特定的功能,从而使网络设备和系统之间能够标准化通信。这七层从上到下是:
4.1 物理层 (Physical Layer - Layer 1)
- 定义:处理设备之间的物理连接,包括介质(如电缆)以及二进制数字 0 和 1 的定义。
- 数据传输:可以通过电气、光学或无线信号传输。需要数据线缆或天线。
- 示例介质:以太网电缆、光纤电缆、Wi-Fi 无线频段(2.4 GHz, 5 GHz, 6 GHz)。 [Image: Ethernet cable connection]
4.2 数据链路层 (Data Link Layer - Layer 2)
- 定义:在同一网络段上实现节点之间数据传输的协议。描述了同一网络段上不同系统之间如何通信的约定。
- 网络段 (Network Segment):指一组使用共享介质或信道进行信息传输的联网设备(例如,连接到网络交换机的十台计算机)。
- 协议示例:以太网(IEEE 802.3)、Wi-Fi(IEEE 802.11)。
- 地址:使用六字节的 MAC (Media Access Control) 地址。通常以十六进制格式表示,每两字节由冒号分隔。最左边的三字节标识厂商。 [Image: Data Link Layer concept]
- 帧结构:在真实的以太网或 Wi-Fi 网络通信中,每个帧中包含两个 MAC 地址:
- 目标数据链路地址 (MAC 地址)
- 源数据链路地址 (MAC 地址)
- 其余部分是传输的数据。 [Image: Packet at Layer 2 showing MAC addresses]
- 物理寻址:数据链路层关注传输的物理寻址。它从网络层接收数据包(包括远程计算机的 IP 地址),并添加接收端点的物理 MAC 地址。
- 网卡 (NIC):每台启用网络的计算机都有一张网络接口卡 (NIC),它带有一个唯一的 MAC 地址来标识自身。MAC 地址由制造商设定并烧录到卡中,无法更改(但可以被欺骗)。
- 数据格式:数据链路层还负责将数据以适合传输的格式呈现。
4.3 网络层 (Network Layer - Layer 3)
- 定义:处理不同网络之间的数据传输,负责逻辑寻址和路由(即找到在不同网络之间传输网络数据包的路径)。
- 协议示例:互联网协议 (IP)、互联网控制消息协议 (ICMP)、VPN 协议(如 IPSec 和 SSL/TLS VPN)。
- 路由:确定数据块应发送的最优路径。影响路径选择的因素包括:
- 最短路径:数据包需要跨越的设备数量最少。
- 最可靠路径:该路径之前是否发生过数据包丢失。
- 更快物理连接:路径使用铜缆连接(较慢)还是光纤连接(更快)。
- IP 地址:在此层,所有通信都通过 IP 地址处理,例如
192.168.1.100
。 - Layer 3 设备:能够使用 IP 地址传递数据包的设备(如路由器)被称为 Layer 3 设备。 [Image: Network Layer concept]
4.4 传输层 (Transport Layer - Layer 4)
- 定义:实现不同主机上运行的应用程序之间的端到端通信。支持流量控制、分段和纠错等功能。
- 主要协议:TCP (Transmission Control Protocol) 和 UDP (User Datagram Protocol)。
4.4.1 TCP (Transmission Control Protocol)
- 特点:面向连接的协议,需要 TCP 三次握手来建立连接。提供可靠的数据传输、流量控制和拥塞控制。
- 可靠性:保证数据能够被接收,并通过错误检查确保数据以正确的顺序被接收和重组。
- 优点:
- 保证数据的准确性。
- 能够同步两个设备,防止彼此被数据淹没。
- 执行更多过程以提高可靠性。
- 缺点:
- 需要在两个设备之间建立可靠连接。如果一小块数据未被接收,则整个数据块无法使用。
- 慢速连接可能成为另一个设备的瓶颈,因为连接会一直保留在接收计算机上。
- 比 UDP 慢得多,因为使用此协议的设备需要做更多工作。
- 用途:文件共享、互联网浏览、发送电子邮件等需要数据准确和完整的场景。 [Image: TCP data reconstruction example]
4.4.2 UDP (User Datagram Protocol)
- 特点:无连接协议,不需要建立连接。不提供错误检查和可靠性保证。
- 特性:任何通过 UDP 发送的数据都会被发送到计算机,无论其是否到达。没有同步或保证。
- 优点:
- 比 TCP 快得多。
- 将如何控制数据包发送速度的决定权留给应用层(用户软件),灵活性高。
- 不像 TCP 那样在设备上保留持续连接。
- 缺点:
- 不关心数据是否被接收。
- 不稳定连接会导致用户体验极差。
- 用途:用于传输小块数据(如设备发现协议 ARP 和 DHCP),或可容忍数据丢失的大文件(如视频流,部分像素丢失可接受)。 [Image: UDP data loss example]
4.5 会话层 (Session Layer - Layer 5)
- 定义:负责建立、维护和同步运行在不同主机上的应用程序之间的通信会话。
- 会话创建:建立连接意味着启动应用程序之间的通信并协商会话的必要参数。
- 数据同步:确保数据以正确的顺序传输,并提供传输失败时的恢复机制。
- 功能:创建和维护与其他计算机的连接。连接活跃时,会话也活跃。
- 关闭连接:负责在连接长时间未使用或丢失时关闭连接。
- 检查点 (Checkpoints):会话可以包含“检查点”,如果数据丢失,只需重新发送最新的数据块,从而节省带宽。
- 唯一性:会话是唯一的,数据只能在各自的会话中传输。
- 协议示例:网络文件系统 (NFS) 和远程过程调用 (RPC)。
4.6 表示层 (Presentation Layer - Layer 6)
- 定义:确保数据以应用层可以理解的形式传输。处理数据编码、压缩和加密。
- 标准化:作为应用层数据的翻译器。接收计算机将理解以一种格式发送但最终目标是另一种格式的数据。
- 编码示例:字符编码(如 ASCII 或 Unicode)。
- 标准示例:JPEG、GIF、PNG 用于图像保存;MIME (Multipurpose Internet Mail Extensions) 用于在电子邮件中附加文件,它使用 7 位 ASCII 字符编码二进制文件。
- 安全性:数据加密(如访问安全站点时的 HTTPS)发生在此层。
4.7 应用层 (Application Layer - Layer 7)
- 定义:直接为终端用户应用程序提供网络服务。
- 熟悉度:这是用户最熟悉的层,因为它包含确定用户如何与发送或接收的数据交互的协议和规则。
- 用户界面:电子邮件客户端、浏览器或文件服务器浏览软件(如 FileZilla)等日常应用程序提供友好的图形用户界面(GUI)供用户与数据交互。
- 协议示例:HTTP, FTP, DNS, POP3, SMTP, IMAP。其中 DNS (Domain Name System) 将网站地址转换为 IP 地址。
5. 数据包 (Packets) 与 帧 (Frames)
5.1 简介 (Introduction)
数据包(Packets)和帧(Frames)都是小块数据,它们组合起来形成更大的信息或消息,但在 OSI 模型中代表不同的事物。
- 帧 (Frame):位于 OSI 模型第 2 层(数据链路层),不包含 IP 地址信息。
- 数据包 (Packet):包含 IP 地址信息,位于网络层(第 3 层)。
- 封装 (Encapsulation):数据在 OSI 模型中从上层向下层传输时,每层都会添加自己的控制信息(如头部),这个过程称为封装。剥离这些封装信息的过程称为解封装。
- 效率:数据以小块形式交换,减少网络拥塞的可能性,提高效率。例如,从网站加载图像时,图像被分割成小块,在计算机上重建。 [Image: Image loading via packets]
- 标准化:数据包具有不同的结构,取决于所发送的数据包类型。网络中充满了协议和标准,它们是设备如何处理数据包的一套规则,确保了互联网上数十亿设备间的兼容性。
5.2 常见数据包头部 (Common Packet Headers)
以 IP 协议数据包为例,其头部包含以下关键信息:
头部 | 描述 |
---|---|
生存时间 (Time to Live - TTL) | 设置数据包的过期计时器,防止数据包无法到达主机或逃逸而阻塞网络。 |
校验和 (Checksum) | 为 TCP/IP 等协议提供完整性检查。如果数据发生任何更改,此值将与预期值不同,从而表明数据已损坏。 |
源地址 (Source Address) | 发送数据包的设备的 IP 地址,以便数据知道返回何处。 |
目标地址 (Destination Address) | 数据包要发送到的设备的 IP 地址,以便数据知道下一步要传输到何处。 |
5.3 TCP (Transmission Control Protocol)
TCP(传输控制协议)是网络中使用的另一套规则。
- TCP/IP 协议栈:由四层组成,可视为 OSI 模型的简化版:
- 应用层 (Application)
- 传输层 (Transport)
- 互联网层 (Internet)
- 网络接口层 (Network Interface)
- 封装/解封装:信息在 TCP 模型的每一层都会被添加到数据包中,这个过程是封装;反之是解封装。
- 面向连接:TCP 是面向连接的协议,数据发送前必须在客户端和服务器之间建立连接。
- 数据保证:TCP 保证任何发送的数据都会在另一端被接收。
- 优势与劣势:
TCP 优点 | TCP 缺点 |
---|---|
保证数据准确性。 | 需要设备间可靠连接。若小块数据未收到,则整个数据块无法使用。 |
能够同步两设备,防止数据泛滥。 | 慢速连接可能导致瓶颈,因连接会持续保留在接收计算机上。 |
为可靠性执行更多处理。 | 比 UDP 慢得多,因使用此协议的设备需要做更多工作。 |
5.3.1 TCP 数据包头部 (TCP Packet Headers)
TCP 数据包包含各种信息段,称为头部:
头部 | 描述 |
---|---|
源端口 (Source Port) | 发送方打开的端口值,用于发送 TCP 数据包。该值是随机选择的(从 0-65535 中未被占用的端口)。 |
目标端口 (Destination Port) | 远程主机上运行的应用程序或服务的端口号(例如,Web 服务器运行在 80 端口)。与源端口不同,此值并非随机选择。 |
源 IP (Source IP) | 发送数据包的设备的 IP 地址。 |
目标 IP (Destination IP) | 数据包要发送到的设备的 IP 地址。 |
序列号 (Sequence Number) | 连接发生时,传输的第一块数据会获得一个随机数。 |
确认号 (Acknowledgement Number) | 在一块数据获得序列号后,下一块数据的编号将是序列号 + 1。 |
校验和 (Checksum) | 赋予 TCP 完整性的值。进行数学计算并记住输出。如果接收设备执行计算后输出与发送值不同,则数据可能已损坏。 |
数据 (Data) | 存储被传输文件的字节数据。 |
标志 (Flag) | 决定握手过程中数据包应如何被设备处理。特定的标志将决定特定的行为。 |
5.3.2 三次握手 (The Three-way Handshake)
三次握手是建立两个设备之间连接的过程。它使用几个特殊消息:
步骤 | 消息 | 描述 |
---|---|---|
1 | SYN | 客户端在握手期间发送的初始数据包,用于启动连接并同步两个设备。 |
2 | SYN/ACK | 接收设备(服务器)发送此数据包以确认客户端的同步尝试。 |
3 | ACK | 客户端或服务器均可使用此确认数据包,以确认一系列消息/数据包已成功接收。 |
4 | DATA | 一旦建立连接,数据(如文件的字节)通过“DATA”消息发送。 |
5 | FIN | 此数据包用于在连接完成后“干净地”关闭连接。 |
# | RST | 此数据包突然终止所有通信。这是最后的手段,表明过程中存在问题。例如,服务或应用程序无法正常工作,或系统存在资源不足等故障。 |
[Image: Three-way handshake diagram] |
任何发送的数据都会获得一个随机序列号,并使用此序列号和递增 1 来重建。两台计算机必须就相同的序列号达成一致,数据才能以正确的顺序发送。此顺序在三个步骤中达成一致:
- SYN - 客户端:这是我的初始序列号 (ISN) 用于同步 (0)。
- SYN/ACK - 服务器:这是我的初始序列号 (ISN) 用于同步 (5,000),我确认你的初始序列号 (0)。
- ACK - 客户端:我确认你的初始序列号 (ISN) 为 (5,000),这是我的 ISN+1 (0 + 1) 的一些数据。
设备 | 初始序列号 (ISN) | 最终序列号 |
---|---|---|
客户端 (Sender) | 0 | 0 + 1 = 1 |
客户端 (Sender) | 1 | 1 + 1 = 2 |
客户端 (Sender) | 2 | 2 + 1 = 3 |
5.3.3 TCP 连接关闭 (TCP Closing a Connection)
一旦设备确定对方设备已成功接收所有数据,TCP 将关闭连接。由于 TCP 会占用设备上的系统资源,因此最佳实践是尽快关闭 TCP 连接。
- 关闭流程:
- 设备向另一设备发送一个“FIN”数据包,以启动 TCP 连接的关闭。
- 另一设备必须确认此数据包。 [Image: TCP closing connection diagram]
5.4 UDP (User Datagram Protocol)
UDP(用户数据报协议)是另一种用于设备之间通信数据的协议。
- 特点:无状态协议,不需要在两个设备之间保持持续连接才能发送数据。不进行三次握手,也没有设备间的同步。
- 用途:适用于应用程序可以容忍数据丢失的情况(如视频流或语音聊天),或不稳定连接不是最终问题的情况。
- 优势与劣势:
UDP 优点 | UDP 缺点 |
---|---|
比 TCP 快得多。 | 不关心数据是否被接收。 |
将数据包发送速度的控制权留给应用程序。 | 灵活性高,但稳定性差。 |
不像 TCP 那样在设备上保留持续连接。 | 不稳定连接会导致用户体验极差。 |
- 无保障:在建立两个设备之间的连接时,不进行任何处理。这意味着不考虑数据是否被接收,也没有 TCP 提供的数据完整性等保障措施。
5.4.1 UDP 数据包头部 (UDP Packet Headers)
UDP 数据包比 TCP 数据包简单得多,头部更少。然而,两者共享一些标准头部:
头部 | 描述 |
---|---|
生存时间 (Time to Live - TTL) | 设置数据包的过期计时器,防止数据包无法到达主机或逃逸而阻塞网络。 |
源地址 (Source Address) | 发送数据包的设备的 IP 地址,以便数据知道返回何处。 |
目标地址 (Destination Address) | 数据包要发送到的设备的 IP 地址,以便数据知道下一步要传输到何处。 |
源端口 (Source Port) | 发送方打开的端口值,用于发送 UDP 数据包。该值是随机选择的(从 0-65535 中未被占用的端口)。 |
目标端口 (Destination Port) | 远程主机上运行的应用程序或服务的端口号(例如,Web 服务器运行在 80 端口)。与源端口不同,此值并非随机选择。 |
数据 (Data) | 存储被传输文件的字节数据。 |
5.4.2 UDP 连接 (UDP Connection)
UDP 是无状态的,连接期间不发送确认。 [Image: UDP connection diagram]
5.5 端口 101 (Ports 101)
端口是数据交换的重要点。它们是介于 0 和 65535 之间的数值。
- 作用:强制执行通信规则,确保应用程序通过标准化的方式接收和发送数据。
- 标准化:应用程序、软件和行为通常与一套标准规则相关联。例如,所有 Web 浏览器数据都通过 80 端口发送,使软件开发人员能够以相同的方式解释数据。
- 常用端口 (Common Ports):0 到 1024 之间的任何端口被称为常用端口。
协议 | 端口号 | 描述 |
---|---|---|
文件传输协议 (FTP) | 21 | 用于基于客户端-服务器模型的文件共享应用程序,可以从中央位置下载文件。 |
安全外壳协议 (SSH) | 22 | 用于通过基于文本的界面安全登录系统进行管理。 |
超文本传输协议 (HTTP) | 80 | 支持万维网 (WWW)!浏览器使用它下载网页的文本、图像和视频。 |
安全超文本传输协议 (HTTPS) | 443 | 功能与 HTTP 相同,但通过加密提供安全传输。 |
服务器消息块 (SMB) | 445 | 类似于 FTP,但除了文件外,SMB 还允许共享打印机等设备。 |
远程桌面协议 (RDP) | 3389 | 一种安全登录系统的方式,使用可视化桌面界面(与 SSH 的文本限制相对)。 |
- 注意事项:这些协议仅遵循标准。可以配置应用程序在非标准端口上运行(例如在 8080 端口而不是 80 端口运行 Web 服务器)。但应用程序会假定遵循标准,因此需要提供**冒号(:)**以及端口号。
6. 扩展网络 (Extending Your Network)
6.1 端口转发简介 (Introduction to Port Forwarding)
端口转发是将应用程序和服务连接到互联网的重要组成部分。如果没有端口转发,应用程序和服务(如 Web 服务器)只能供同一直接网络中的设备访问。
- 局域网访问 (Intranet):例如,IP 地址为“192.168.1.10”的服务器在 80 端口上运行 Web 服务器,只有同一网络中的其他两台计算机才能访问它(这被称为内部网)。 [Image: Intranet example]
- 互联网访问 (Internet):如果管理员希望网站对公众(使用互联网)可访问,他们必须实施端口转发。 [Image: Port forwarding example]
- 配置:端口转发在网络的路由器上配置。
- 与防火墙的区别:端口转发是开放特定端口;防火墙则决定流量是否可以通过这些端口(即使端口已通过端口转发开放)。
6.2 防火墙 101 (Firewalls 101)
防火墙是网络中的设备,负责确定允许哪些流量进入和退出。防火墙是网络的边界安全。管理员可以根据多种因素配置防火墙以允许 (permit) 或拒绝 (deny) 流量进入或退出网络,例如:
- 流量来自哪里?(防火墙是否被告知接受/拒绝来自特定网络的流量?)
- 流量去往哪里?(防火墙是否被告知接受/拒绝发送到特定网络的流量?)
- 流量的端口是什么?(防火墙是否被告知只接受/拒绝发送到 80 端口的流量?)
- 流量使用的协议是什么?(防火墙是否被告知接受/拒绝 UDP、TCP 或两者兼有的流量?)
防火墙通过执行数据包检查来确定这些问题的答案。
- 类型:防火墙形式多样,从专用硬件到住宅路由器或软件(如 Snort),可分为 2 到 5 类。
6.2.1 防火墙类别 (Firewall Categories)
防火墙类别 | 描述 |
---|---|
有状态防火墙 (Stateful) | 使用连接的全部信息;不检查单个数据包,而是根据整个连接确定设备行为。 消耗的资源比无状态防火墙多,因为决策是动态的。例如,防火墙可能允许 TCP 握手的初始部分,但后来失败。 如果来自主机的连接不良,它将阻止整个设备。 |
无状态防火墙 (Stateless) | 使用一组静态规则来确定单个数据包是否可接受。例如,设备发送一个不良数据包并不一定意味着整个设备都被阻止。 虽然这些防火墙比替代品消耗的资源少得多,但它们更“笨”。例如,这些防火墙的有效性仅取决于其中定义的规则。如果规则不完全匹配,它就基本无用。 然而,当从一组主机接收大量流量(例如分布式拒绝服务攻击)时,这些防火墙非常有用。 |
6.3 VPN 基础 (VPN Basics - Virtual Private Network)
虚拟专用网络 (VPN) 是一种在两个网络之间创建安全“隧道”的方式。它允许位于不同网络的设备通过互联网安全地通信,创建一个专用路径。
- 隧道:连接到此隧道内的设备形成自己的专用网络。 [Image: VPN basics diagram]
- 优势:
优势 | 描述 |
---|---|
连接地理位置不同的网络。 | 例如,拥有多个办公室的企业会发现 VPN 很有用,因为这意味着可以从另一个办公室访问服务器/基础设施等资源。 |
提供隐私。 | VPN 技术使用加密来保护数据。这意味着数据只能在发送方和接收方设备之间理解,从而使数据不易被嗅探。 这在没有加密的公共 Wi-Fi 场所非常有用,可以使用 VPN 保护流量不被他人查看。 |
提供匿名性。 | 记者和活动家依赖 VPN 在言论自由受控的国家安全地报道全球问题。 通常,您的流量可以被 ISP 和其他中介查看,因此可以被跟踪。 VPN 提供的匿名程度仅取决于网络上其他设备如何尊重隐私。例如,记录所有数据/历史记录的 VPN 在这方面与不使用 VPN 基本相同。 |
TryHackMe 使用 VPN 将您连接到其脆弱的机器,而无需直接在互联网上访问它们!这意味着:
- 您可以安全地与机器交互。
- 服务提供商(如 ISP)不会认为您正在攻击互联网上的另一台机器(这可能违反服务条款)。
- VPN 为 TryHackMe 提供安全性,因为脆弱的机器无法通过互联网访问。
6.3.1 VPN 技术 (VPN Technologies)
VPN 技术 | 描述 |
---|---|
PPP | PPTP 使用此技术进行身份验证并提供数据加密。VPN 通过使用私钥和公钥证书工作(类似于 SSH)。私钥和证书必须匹配才能连接。 此技术本身无法离开网络(不可路由)。 |
PPTP | 点对点隧道协议 (Point-to-Point Tunneling Protocol) 是一种允许 PPP 数据传输并离开网络的技术。 PPTP 设置非常简单,并且受大多数设备支持。然而,与替代方案相比,它的加密强度较弱。 |
IPSec | 互联网协议安全 (Internet Protocol Security) 使用现有的互联网协议 (IP) 框架加密数据。 IPSec 设置难度较大;但如果成功,它具有强大的加密功能,并且也支持许多设备。 |
6.4 局域网网络设备 (LAN Networking Devices)
6.4.1 什么是路由器? (What is a Router?)
- 职责:路由器的职责是连接网络并在它们之间传递数据,通过路由实现。
- 路由:是数据在网络间传输过程的标签。 路由涉及在网络之间创建路径,以便数据能够成功传输。
- 工作层次:路由器在 OSI 模型的第 3 层运行。
- 功能:通常具有交互式界面(如网站或控制台),允许管理员配置各种规则,如端口转发或防火墙。
- 最优路径:当设备通过多条路径连接时,路由非常有用,它会选择最优路径。影响最优路径的因素包括:
- 最短路径?
- 最可靠路径?
- 哪个路径的介质更快(例如铜缆或光纤)?
- 注意:路由器是专用设备,不执行与交换机相同的功能。 [Image: Router routing example]
6.4.2 什么是交换机? (What is a Switch?)
- 职责:交换机是专用的网络设备,负责提供连接多个设备的方式。可以通过以太网电缆连接许多设备(从 3 到 63 个)。
- 工作层次:交换机可以在 OSI 模型的第 2 层和第 3 层运行。
- Layer 2 交换机:将帧(已剥离 IP 协议,不再是数据包)转发到使用 MAC 地址连接的设备。它们仅负责将帧发送到正确的设备。 [Image: Layer 2 switch example]
- Layer 3 交换机:比 Layer 2 交换机更复杂,可以执行路由器的一些职责。它们不仅将帧发送到设备(如 Layer 2),还使用 IP 协议将数据包路由到其他设备。
- VLAN (Virtual Local Area Network):一种技术,允许网络中的特定设备进行虚拟分割。这意味着它们都可以受益于互联网连接等功能,但被视为独立的网络。这种网络隔离提供了安全性,因为它意味着可以设置规则来确定特定设备之间如何通信。 [Image: VLAN example with departments]
- 在图中,销售部门和会计部门可以访问互联网,但无法相互通信(尽管它们连接到同一个交换机)。
常见问题 (FAQ)
网络基础
什么是网络? 网络是相互连接的设备或事物,例如,由于共同兴趣而连接的朋友圈。
设备在网络上如何识别? 设备通过 IP 地址(用于在特定时间内识别主机)和 MAC 地址(类似于设备的序列号,是唯一的物理地址)进行识别。
公共 IP 和私有 IP 有什么区别? 公共 IP 是全球唯一的,可直接访问互联网;私有 IP 仅在本地网络内部使用,不可直接访问互联网,需通过 NAT 转换为公共 IP。
如何查看我的 IP 地址? 公共 IP 可以访问
whatismyip.com
或查看路由器管理界面;私有 IP 可以在设备的网络设置中查看(如 Windows 的“IP 配置”、手机的“Wi-Fi 详情”)。IPv6 相对于 IPv4 有哪些优势? IPv6 支持更多 IP 地址(高达 2^128),并由于采用了新方法而效率更高,解决了 IPv4 地址耗尽的问题。
MAC 地址的格式是什么? MAC 地址是十二个字符的十六进制数,由冒号分隔,例如
a4:c3:f0:85:ac:2d
。前六个字符表示制造商,后六个是唯一编号。
ICMP 和网络诊断
Ping 工具的作用是什么? Ping 使用 ICMP 数据包来确定设备之间连接的性能,例如连接是否存在或是否可靠。
ICMP 的主要功能有哪些? ICMP 的主要功能包括错误报告(如目标不可达)、诊断功能(如 Ping 和 Traceroute)以及网络信息查询。
ICMP 在网络诊断中如何应用? ICMP 用于验证主机是否可达(
ping
命令)、追踪网络路径(traceroute
或tracert
命令)以及定位故障(如通过目标不可达消息)。
局域网 (LAN)
什么是 LAN? LAN(Local Area Network)是覆盖范围较小的计算机网络,通常局限于家庭、办公室、学校或园区内。
LAN 的核心特点有哪些? LAN 具有覆盖范围小、高传输速率、低延迟和私有性等特点。
家庭 LAN 通常由哪些设备组成? 家庭 LAN 通常由无线路由器、电脑、手机、智能家电等组成,并通过 DHCP 自动分配 IP 地址。
交换机和路由器的主要区别是什么? 路由器连接不同网络并进行数据转发,工作在网络层(OSI 第 3 层);交换机连接同一局域网内的多台设备,进行数据帧转发,工作在数据链路层(OSI 第 2 层)。
子网划分的目的是什么? 子网划分的目的是将一个大型网络分割成更小的、可管理的子网络,从而更有效地分配 IP 地址和管理网络流量。
ARP (地址解析协议) 的作用是什么? ARP 负责查找与特定 IP 地址相关的 MAC 地址,允许设备在网络上将 MAC 地址与其 IP 地址关联起来。
DHCP (动态主机配置协议) 的工作流程是怎样的? DHCP 通过 DORA (Discover, Offer, Request, ACK) 过程自动为设备分配 IP 地址,简化了网络配置。
OSI 模型和协议
OSI 模型有哪七层? OSI 模型从上到下分为:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。
TCP 和 UDP 的主要区别是什么? TCP 是面向连接的、可靠的协议,保证数据准确性和顺序,但速度较慢;UDP 是无连接的、不可靠的协议,速度快但可能丢包。
TCP 三次握手的作用是什么? TCP 三次握手是建立客户端和服务器之间可靠连接的过程,确保双方都准备好进行数据传输。
端口 (Port) 在网络中有什么作用? 端口是数据交换的重要点,通常是 0 到 65535 之间的数值。它们标准化了应用程序如何发送和接收数据,例如 HTTP 使用 80 端口,HTTPS 使用 443 端口。
网络扩展与安全
什么是端口转发? 端口转发允许外部网络(互联网)访问内部网络中的特定应用程序或服务,通过将公共 IP 地址和端口映射到内部设备的私有 IP 地址和端口实现。
防火墙的主要作用是什么? 防火墙是网络中的设备,负责根据预设规则(如来源、目的地、端口、协议)决定允许或拒绝哪些流量进入和退出网络。
有状态防火墙和无状态防火墙有什么不同? 有状态防火墙根据整个连接的信息进行决策,消耗资源多但更智能;无状态防火墙根据单个数据包的静态规则进行决策,资源消耗少但灵活性差。
什么是 VPN?它有什么主要优势? VPN(虚拟专用网络)是一种在两个网络之间创建安全“隧道”的技术。其主要优势包括连接地理位置不同的网络、提供数据隐私(通过加密)和一定程度的匿名性。
VLAN 的作用是什么? VLAN(虚拟局域网)技术允许在同一个物理交换机上将设备逻辑地分割成不同的虚拟网络,从而提供网络隔离和安全性,即使它们连接到同一物理设备。