Linux网络基础
12.1 计算机网络发展模式简述
独立模式
各台计算机相互独立运行,不进行通信。
适用于早期的计算环境,每台机器各自完成任务,不具备资源共享能力。
网络互联
多台计算机通过一定的通信方式(如网线、无线)连接在一起,可以进行数据传输与资源共享。
典型设备:网卡、集线器(Hub)、交换机(Switch)等。
局域网 LAN
通常在一个建筑物或一个组织内部连接多台计算机。
使用交换机和路由器等网络设备实现高效通信。
速度较快,延迟低,适用于办公网络、学校、家庭等小范围环境。
广域网 WAN
将地理位置相距较远的多个局域网连接起来,例如跨城市、跨国家。
需要依赖运营商的网络基础设施(如光缆、卫星等)。
互联网(Internet)就是最大的广域网。
12.2 协议
为什么要有协议?
设想一个场景:
小明只会说中文,小美只会说英文,他们想通过对讲机交流,但听不懂对方说什么 —— 这时就需要一个共同的“交流规则”。 |
在计算机网络中,计算机之间本来不能自然“听懂”对方的语言,也就是说:
每台计算机硬件/操作系统不同
网络环境复杂
没有统一标准,通信就会混乱甚至失败
所以我们必须定义一套大家都遵守的通信规则——这就是网络协议(Protocol),协议的存在也可以降低成本,
协议的概念以及协议的本质?
什么是协议?
协议是计算机网络中通信双方必须共同遵守的规则集合。
这个规则包括:
通信的格式:数据怎么封装
通信的顺序:先谁说、后谁说,谁先发起、谁回应
错误处理:丢包了怎么办?重传机制如何做?
数据表示:比如字符编码、比特顺序等
常见的网络协议有:
HTTP:浏览器访问网页的协议
TCP/IP:互联网通信的核心协议
FTP:文件传输协议
DNS:域名解析协议
协议的本质是什么?
协议的本质是“约定俗成的规则”,让通信变得可理解、可预测。
协议为什么要分层?
协议分层的目的是降低复杂度、提高灵活性和可维护性。
网络通信是一个非常复杂的过程,包括数据打包、传输、路由、接收、解析等等 ——
如果所有功能都堆在一起,不仅难以设计,也难以维护和扩展。
所以,计算机科学家们借鉴了“模块化设计”的思想,把协议体系分为多层,每层各司其职,互不干扰
两种常见的协议分层模型:
OSI七层模型(理论模型)
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
TCP/IP四层模型(实际应用中更常用)
应用层、传输层、网络层、网络接口层
12.3 OSI七层模型
OSI开放系统互联模型由ISO制定,把网络通信划分为 7 层,每一层解决一类特定问题。
层级 |
名称 |
功能 |
常见协议 |
对应设备 |
7 |
应用层 |
提供网络服务给用户程序 |
HTTP、FTP、SMTP |
软件 |
6 |
表示层 |
数据格式转换、加解密、压缩 |
JPEG、MP3、SSL/TLS |
|
5 |
会话层 |
建立、管理和终止会话 |
NetBIOS、RPC |
|
4 |
传输层 |
提供端到端可靠传输或快速传输 |
TCP、UDP |
操作系统协议栈(逻辑功能) |
3 |
网络层 |
寻址和路由,选路径 |
IP、ICMP、IPSec |
路由器 |
2 |
数据链路层 |
局域网通信、MAC寻址、帧传输 |
Ethernet、PPP、ARP |
交换机、网卡 |
1 |
物理层 |
比特传输、电气信号、接口标准 |
RJ45、光纤、5类线标准等 |
集线器、中继器、网线、光纤 |
补充:
应用、表示、会话层:这三层多由操作系统和软件层面来完成,比如浏览器处理 HTTP、TLS 加密等,不靠物理设备。
传输层:虽然没有专门的硬件,但 TCP/UDP 运行在操作系统内核中,有时会配合防火墙、负载均衡器工作。
网络层:核心设备是 路由器,负责不同网络之间的数据转发(跨网段通信)。
数据链路层:交换机工作在这一层,实现局域网内的数据帧转发;网卡也在这一层负责帧的组装和识别。
物理层:是最底层,涉及传输媒介和物理信号,像网线、光纤、集线器、调制解调器(光猫)、接口标准都属于这里。
12.4 TCP/IP四层模型
TCP/IP 四层模型是我们今天互联网通信的实际基础模型,相比OSI七层,它更简洁实用。主要由应用层、传输层、网络层、链路层组成。
1.应用层
直接面向用户,提供各种 网络应用服务
常见协议:
协议 作用
HTTP / HTTPS 网页传输协议(浏览器访问)
FTP 文件传输协议
DNS 域名解析协议(网址 → IP)
SMTP / POP3 / IMAP 邮件发送与接收协议
SSH / Telnet 远程登录控制协议
举例:
你用浏览器访问一个网站
就会触发:
DNS:将域名转为 IP 地址
HTTP:发出网页请求并接收响应
2. 传输层
解决 “主机到主机” 的通信问题,数据怎么从一个程序发送到另一个程序
常见协议:
协议 特点 用途举例
TCP 面向连接、可靠(有确认、重传、顺序) 访问网页、登录账号、下载文件
UDP 无连接、不可靠但更快(无确认、无顺序) 视频直播、语音通话、游戏
浏览器访问网页时用 TCP,确保网页数据完整; 微信语音消息/直播时用 UDP,稍微丢一点包也无妨,但要快。
3. 网络层
让“两台设备之间”的通信成为可能,实现跨网段传输
作用:
IP寻址 + 路由转发
找到“哪一台设备”是目标
常见协议:
协议 作用
IP(IPv4 / IPv6) 提供逻辑地址(如 192.168.1.1)
ICMP 网络测试工具(如 ping)用它
ARP IP地址 ↔ MAC地址转换
举例:
访问某网站,数据要从你电脑走到目标服务器,必须经过路由器转发,这一切由 IP 层控制。
4. 链路层
负责局域网内设备通信,直接与网卡、交换机等打交道
作用:
将数据封装成帧,在物理介质上传输
使用 MAC地址 识别设备
协议 / 技术 说明
以太网 最常见的局域网通信协议
Wi-Fi(无线局域网) 无线连接协议
PPP 拨号上网协议
驱动程序 / 网卡 实现底层传输逻辑
四层之间的配合流程(打包发数据)
应用层:我要发 HTTP 请求(浏览器)
传输层:用 TCP 连接,拆成小段 + 加编号
网络层:附上目标 IP 地址,查路由表
链路层:查目标 MAC 地址,用网线/Wi-Fi 发送帧
对方收到后,每一层反过来解析,直到应用层显示网页
层 |
常见协议 |
关键概念 |
设备 |
应用层 |
HTTP, DNS, FTP |
服务内容 |
浏览器、邮件客户端等 |
传输层 |
TCP, UDP |
端口号、可靠性 |
操作系统内核 |
网络层 |
IP, ICMP, ARP |
IP地址、路由 |
路由器 |
链路层 |
Ethernet, Wi-Fi |
MAC地址、帧 |
网卡、交换机、集线器 |
12.5 网络传输基本流程
应用层(产生数据) 传输层(打包分段,加编号) 网络层(加上IP地址) 链路层(加上MAC地址,发送出去) 数据走网络(交换机、路由器等转发) 目标主机收到数据帧 链路层(读MAC) 网络层(查IP) 传输层(数据重组) 应用层(网页/聊天显示出来) |
12.6 数据包的封装与分用
什么是封装和分用?
封装
发送数据时,每一层都加上一层“头部信息(header)”来处理自己的任务。
应用层:产生数据(如网页请求内容)
传输层:加上TCP/UDP头(端口号、序号等)
网络层:加上IP头(源/目的IP地址)
链路层:加上MAC头(源/目的MAC地址)
[应用层] :数据(网页请求)(帧) ↓ [传输层] :TCP头 + 应用层数据 ↓ [网络层] :IP头 + TCP头 + 数据 ↓ [链路层] :MAC头 + IP头 + TCP头 + 数据 |
最终生成一个完整的数据帧送出。
分用
接收数据时,每一层根据头部内容判断怎么处理,然后把“外壳”一层层剥掉,还原出原始数据。
12.7 网络中的地址管理
IP地址
IP地址是网络中每台设备的唯一标识符,用于定位设备并进行数据传输。它分为两种类型:
IPv4(Internet Protocol version 4):由四个8位(即1字节)组成,总共32位,通常以四个十进制数表示,范围从0到255(如:192.168.1.1)。
IPv6(Internet Protocol version 6):由于IPv4地址空间有限,IPv6为每个设备提供了更多的地址,使用128位表示,通常以八组16进制数表示(如:2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
IP地址有两种类型:
公有IP:用于设备之间的全球通信。每个设备连接到互联网时,都有一个唯一的公有IP地址。
私有IP:用于局域网(LAN)内部设备之间的通信,不能直接在互联网中使用。例如,常见的私有IP地址范围包括:
10.0.0.0 到 10.255.255.255
172.16.0.0 到 172.31.255.255
192.168.0.0 到 192.168.255.255
MAC地址:
MAC地址是硬件设备的唯一标识符,通常被分配给网卡(NIC)。它用于局域网中识别设备,属于数据链路层地址。MAC地址通常由48位组成(6个字节),通常以16进制表示(如:00:1A:2B:3C:4D:5E)。
每个网络接口设备(例如Wi-Fi卡、以太网卡)都有唯一的MAC地址。MAC地址在设备启动时由制造商设置,通常无法修改。它在局域网内用于数据帧的发送与接收,设备通过MAC地址来进行直接通信。
关键区别:
IP地址用于在广域网(如互联网)中定位设备,类似于地址,用来引导数据包到达特定地点。
MAC地址用于局域网中设备的物理识别,类似于门牌号,它在本地网络中起作用,确保数据正确地发送到目标设备。