5. 网络原理 - 初识
1. 网络发展史
1.1 独立模式
(单机时代):计算机之间互不相连,各自持有数据,无法共享。就像三个人各自玩各自的电脑,互不干扰也无法协作。
1.2 网络互连
局域网时代):随着发展,需要将多台计算机连接在一起共享软硬件和数据。这就产生了局域网(LAN)和广域网(WAN)。
1.3 局域网LAN组件方式
- 基于网线直连:最原始的方式,计算机直接用网线点对点连接。适合设备极少的情况。
- 基于集线器组建:引入集线器(Hub),所有电脑连到一个中心设备上。但集线器是“傻”设备,不管谁发数据都广播给所有人,效率低且不安全。
- 基于交换机组建:升级版的中心设备。交换机比集线器聪明,它能识别目标地址,只把数据发给特定的电脑,大大提高了安全性。
- 基于交换机和路由器组建:最标准的组网方式。交换机负责内部数据交换,路由器负责连接外网(互联网),实现内网与外网的通信。
1.4 广域网WAN
- 广域网(WAN)就是把多个分散在不同地理位置的局域网通过路由器等设备连接起来,形成一个覆盖范围更广的网络。
- 我们日常说的互联网(Internet),其实就是全球最大的广域网。
2. 网络通信基础
2.1 IP地址
P地址(定位主机):
- 作用:在网络中唯一标识一台计算机(类似于快递的收货地址)。
- 格式:32位二进制数,通常用点分十进制表示(如
192.168.1.1),由4个0-255的数字组成。
2.2 端口号
- 作用:在一台计算机上,区分不同的应用程序或服务(类似于快递包裹的具体门牌号,指定交给家里的哪个人)。
- 格式:范围是
0-65535。
2.3 认识协议
2.3.1为什么需要协议(也就是规则
- 核心概念:协议就是计算机之间通信的“约定”或“暗号”。
- 生活类比:就像图中所说,为了避免“尴尬”或“无效沟通”(比如你发了一封信,对方不知道怎么拆),必须事先规定好信件的格式、语言等。如果没有协议,不同厂商、不同系统的电脑就无法正常交流。
2.4 五元组:网络通信的身份证
在TCP/IP协议中,⽤五元组来标识⼀个⽹络通信:
- 源 IP:发送方的网络地址。
- 源端口:发送方应用程序的代号(比如你的微信)。
- 目的 IP:接收方的网络地址。
- 目的端口:接收方应用程序的代号(比如对方的微信)。
- 协议号:使用的是 TCP 还是 UDP。
2.5 协议分层
分层的好处
- 封装,上层协议不用关心下层协议的细节
- 解耦合,通信协议的每一层都可以灵活替换
OSI七层网络模型(理论模型)
- 物理层 -> 数据链路层 -> 网络层 -> 传输层 -> 会话层 -> 表示层 -> 应用层
- 特点:虽然划分得最细致,但过于复杂,在实际工程中很少直接套用。
TCP/IP五层网络模型(实际应用模型)
第一层:物理层(Physical Layer)
- 核心职责:负责比特流的传输,也就是最原始的 0 和 1。
- 比喻:“高速公路、铁路”。
- 通俗理解:这一层只关心“路”修好了没有,电线拉通了没有。至于路上跑的是什么车,拉的什么货,它完全不管。这通常由通信专业或硬件厂商(如造网卡、光纤的)负责。
第二层:数据链路层(Data Link Layer)
- 核心职责:负责两个相邻节点之间的具体传输过程。
- 比喻:“快递公司的具体员工(快递小哥)”。
- 通俗理解:快递小哥只关心从上海到南京这一段路怎么走,怎么交接。他不需要知道包裹最终是要去西安还是北京。这一层会把数据打包成“帧”,并进行差错检测。
第三层:网络层(Network Layer)
- 核心职责:负责寻址和路由选择,决定数据包从起点到终点的最佳路径。
- 比喻:“快递公司的调度中心”。
- 通俗理解:调度中心会规划路线:从上海 -> 南京 -> 西安,还是走上海 -> 无锡 -> 西安?这一层的核心设备是路由器,它决定了数据包的走向。
第四层:传输层(Transport Layer)
- 核心职责:负责端到端的通信,确保数据完整、准确地到达。
- 比喻:“寄件人和收件人填写的地址和电话”。
- 通俗理解:这一层(如 TCP/UDP 协议)就像是包裹的“面单”。
- 源端口/目的端口:相当于具体的门牌号,告诉系统数据要发给哪个应用程序(比如微信还是浏览器)。
- 可靠性:TCP 协议就像“保价+签收”,确保包裹完好无损地送达;而 UDP 则是“只管发,不管收”。
第五层:应用层(Application Layer)
核心职责:直接为用户应用程序提供服务,定义了数据如何被处理和使用。
比喻:“包裹里的具体内容(如床刷子)”。
通俗理解:这是程序员最常打交道的一层。
- 你写了一个网页(HTTP协议),或者发了一条微信消息,这些都是应用层数据。
- 关键点:商家(开发者)只关心床刷子怎么用,不关心快递是怎么送过来的。也就是说,应用层不关心底层是怎么传输的,它只定义数据格式和用途。
总结记忆口诀
如果把网络通信比作寄快递:
- 物理层:路和车(基础设施)
- 数据链路层:跑单号的快递员(点对点运输)
- 网络层:规划路线的调度员(选路)
- 传输层:包裹上的详细地址(端到端定位)
- 应用层:包裹里的商品(实际内容)
2.6 封装和分用(网络数据的基本流程
以qq发送hello为例子
一:发送方(封装过程)
在键盘输入 "Hello" 并按下发送键后,数据就像寄快递一样,被一层层“打包”:
应用层(加头):
- 你的聊天软件(QQ)把文字“Hello”构造成一个“应用层数据包”。
- 打包内容:加上发送时间、发送人账号、接收人账号等信息。
传输层(加头):
- 这里选用了UDP 协议(特点是快,但不保证送达)。
- 打包内容:在数据前面加上源端口 和目的端口。
- 作用:就像在信封上写上“寄件人门牌号”和“收件人门牌号”,确保数据能交给正确的应用程序。
网络层(加头):
- 这里选用了IP 协议。
- 打包内容:加上源 IP 和目的 IP。
- 作用:就像在快递箱上写上“发货城市”和“收货城市”,路由器根据这个地址决定数据包该往哪走。
数据链路层(加头加尾):
- 这里选用了以太网协议。
- 打包内容:加上源 MAC 地址 和目的 MAC 地址。
- 作用:这是数据包的“身份证”,用于在同一个局域网(比如同一个路由器下的WiFi)内识别具体的物理设备。
物理层(变身):
- 网卡把这一切都转换成二进制 0/1,变成电信号或光信号,扔进网线里。
二:传输过程(路由转发)
数据包在互联网的“高速公路”上传输。
交换机 只看MAC 地址,负责在小区内部(局域网)分发。
交换机收到数据解析物理层和数据链路层即可(也叫二层转发),之后继续封装重新拼接上以太数据帧,再重新转成光电信号,路由器 只看IP 地址,负责指引方向,决定数据包是去南京还是去西安。
路由器收到数据解析物理层和数据链路层和网络层即可(也叫三层转发),之后继续封装重新拼接上以太数据帧,再重新转成光电信号,
三:接收方(解包过程)
对方电脑收到信号后,做的工作正好相反:
- 物理层:把光/电信号还原成二进制数据。
- 数据链路层:拆掉 MAC 地址头,检查是不是发给自己的。
对帧头和帧尾做解析,把在和部分交给网络层 - 网络层:拆掉 IP 地址头,确认目的地正确。
IP协议对这个数据包进行解析,对IP报头进行解析,把在和进一步交给传输层 - 传输层:拆掉 UDP 端口头,发现数据是要给“QQ软件”(比如端口号 65432)。
UDP协议对这个数据进行解析,把UDP报头进行解析,把载荷交给应用层 - 应用层:QQ 软件拿到纯正的“Hello”文本,弹窗显示在屏幕上。
qq应用层序,对数据解析,拿到发送时间发送人正文消息
协议类型
数据链路层(以太网帧头 · EtherType)
- 告诉网卡:帧里包的是哪位上层协议
- 典型值:
0x0800IPv4、0x0806ARP、0x86DDIPv6
网络层(IP 头 · Protocol 字段)
- 告诉系统:IP 包里包的是哪种传输层协议
- 典型值:
6TCP、17UDP、1ICMP
传输层(TCP / UDP 头 · 端口号)
- 这一层没有"协议类型"字段了,靠「源端口 + 目的端口」区分交给哪个应用
- 典型端口:
80HTTP、443HTTPS、53DNS
应用层
- 协议类型就是具体的"应用协议",由端口 + 数据格式决定
- 典型:
HTTP、FTP、SMTP、DNS