一、网络基本概念
- 网络组成:由若干结点(计算机、交换机、路由器等设备)和连接结点的链路组成
- 网络设备:交换机、路由器、集线器
- 传输介质:双绞线、同轴电缆、光纤
- 简单网络示例:交换机可连接多台主机

二、IP 地址

- 定义:给因特网上主机 / 路由器接口分配的全球唯一标识符,用于寻址
- 分类:
- IPv4:32 位,格式 "A.B.C.D",分 4 段(每段 8 位,0-255,十进制),示例:192.168.31.1
- IPv6:128 位,格式 "XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX",分 8 段(每段 16 位,4 位十六进制),示例:2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b
- 组成(IPv4 默认):由网络号 (同一物理网络主机共用)和主机号(单台主机标识)两部分构成,共 32 位
三、IP 地址分类(IPv4)

- 分类依据:按地址开头位和网络号 / 主机号的位数划分,共 5 类
- 各类结构与范围:
- A 类 :
- 开头位:以
0开头 - 结构:网络号 7 位 + 主机号 24 位
- 范围:0.0.0.0~127.255.255.255
- 开头位:以
- B 类 :
- 开头位:以
10开头 - 结构:网络号 14 位 + 主机号 16 位
- 范围:128.0.0.0~191.255.255.255
- 开头位:以
- C 类 :
- 开头位:以
110开头 - 结构:网络号 21 位 + 主机号 8 位
- 范围:192.0.0.0~223.255.255.255
- 开头位:以
- D 类 :
- 开头位:以
1110开头(无网络号 / 主机号划分,用于组播)
- 开头位:以
- E 类 :
- 开头位:以
11110开头(保留,用于科研实验)
- 开头位:以
- A 类 :
四、IP 地址和物理地址(MAC 地址)的核心区别
IP 地址和物理地址(MAC 地址)的核心区别可以从这几个维度区分:
1. 定义与作用
- IP 地址:网络层(OSI 模型)的逻辑地址,用于标识因特网上主机 / 设备的网络位置,实现跨网络的寻址与通信。
- 物理地址(MAC 地址):数据链路层的硬件地址,固化在网卡等网络设备中,用于同一局域网内设备间的直接通信(标识具体硬件)。
2. 分配与归属
- IP 地址:由网络管理员 / ISP(运营商)分配,可手动修改或通过 DHCP 自动获取,与网络环境关联。
- 物理地址(MAC 地址):由设备厂商在生产时写入硬件,全球唯一且通常不可修改(部分设备支持软件临时修改)。
3. 格式
- IP 地址(IPv4) :32 位,点分十进制格式(如
192.168.1.1)。 - 物理地址(MAC 地址) :48 位,十六进制格式(如
00:1A:2B:3C:4D:5E)。
4. 通信范围
- IP 地址:支持跨网络(不同局域网)通信,依赖路由器转发。
- 物理地址(MAC 地址):仅在同一局域网内有效,无法直接跨网络使用
五、端口
1. 端口的范围与分类
- 端口范围 :共 65536 个(0~65535),其中:
- 0~1023:知名端口(默认分配给常用服务,如 80=HTTP、443=HTTPS、22=SSH);
- 1024~49151:注册端口(需申请注册的服务端口);
- 49152~65535:动态 / 私有端口(临时分配给客户端进程)。
- 规则:同一主机上,一个端口同一时间只能被一个进程占用(避免冲突)。
2. 套接字(Socket)的实际作用
"IP+Port" 是套接字地址,而 ** 套接字(Socket)** 是网络编程的 "工具":
- 它是操作系统提供的编程接口,封装了 "IP+Port"、传输协议(如 TCP/UDP)等信息;
- 进程通过套接字,才能真正建立连接、发送 / 接收数据(是跨主机进程通信的 "桥梁")。
3. 传输层协议与进程通信的关联
"IP+Port" 需配合传输层协议(如 TCP、UDP)才能实现可靠通信:
- TCP:面向连接、可靠传输(适合文件传输、网页加载等),会通过 "三次握手" 建立进程间的可靠连接;
- UDP:无连接、不可靠但高效(适合视频通话、直播等),直接基于 "IP+Port" 发送数据。
4. 进程通信的 "跨网络" 逻辑
跨主机进程通信的流程:
- 发送方进程通过 "自身 IP + 端口" 和 "接收方 IP + 端口",封装数据;
- 数据通过网络(经路由器转发)到达目标主机;
- 目标主机根据 "接收方端口",将数据交付给对应进程。
六、常见网络协议
1. TCP:靠谱的 "顺丰快递"
- 定位 :传输层协议(负责 "把数据安全送到对方进程")
- 特点 :
- 先 "打电话确认":发数据前先和对方进程 "三次握手"(类似:"你在吗?""我在,你呢?""我也在,开始发!"),确保连接可靠;
- 丢件必补:数据发过去后,对方会回 "收到了",没收到就重发;
- 顺序不乱:哪怕数据分开发,也会按顺序拼好(比如寄 3 本书,哪怕快递分 2 次送,也会按 1、2、3 的顺序给你)。
- 场景:发文件、聊微信(消息不能丢)、网页加载(内容不能乱)。
2. UDP:快速的 "同城闪送"
- 定位 :传输层协议(负责 "快速把数据发出去")
- 特点 :
- 不打电话直接发:不用提前确认连接,拿起数据就发(类似:直接把快递扔到对方小区,不管对方在不在);
- 丢件不补:发完不管了,丢了也不重发;
- 速度快但不稳:适合 "不怕丢、要速度" 的场景。
- 场景:直播(卡 1 秒不影响,要实时)、打游戏(延迟比丢 1 个技能更致命)、视频通话(卡帧比等重发更能接受)。
3. HTTPS:"加密 + 上锁的包装规则"
- 定位 :应用层协议(基于 TCP,是 HTTP 的 "安全版")
- 特点 :
- 先 "加密钥匙交换":发数据前,先和对方交换 "加密钥匙"(类似:寄快递前,先给对方一把锁,自己留钥匙);
- 内容加密:打包的数据会用钥匙加密(类似:把手机装在带锁的箱子里,标签只写 "包裹 1 号",小偷不知道里面是啥);
- 防篡改、防偷看:中间被人截了,没钥匙打不开,改了内容也会被发现。
- 场景:现在的所有网页(浏览器地址栏的 "https://")、支付(输密码不能被偷)、登录账号(信息不能泄露)。
关系总结:
- TCP/UDP 是 "运输方式"(负责把东西送过去);
- HTTP/HTTPS 是 "包装规则"(负责东西要怎么包);
- HTTPS = HTTP + 加密锁(在 HTTP 的包装外,加了一层安全保护)。
七、网络分层
1.OSI模型

OSI 七层模型可以理解成 "跨国快递的完整配送流程" ------ 从你把包裹交给快递员,到对方收件人拆开包裹,整个过程被拆成 7 个分工明确的环节,每个环节只做自己的事,互不干扰但又紧密配合。
核心原则:自上而下封装数据,自下而上解包数据(发送方从上到下打包,接收方从下到上拆包)。
第 7 层:应用层 ------ 收件人拆包裹(用户直接接触)
- 角色:最终的 "使用者",对应我们用的软件 / 程序。
- 通俗解释 :就像收件人打开包裹,拿出里面的衣服、零食 ------ 这一层是 用户能直接感知的层,负责处理 "有意义的实际数据"。
- 例子:浏览器(HTTP/HTTPS)、微信(聊天消息)、网盘(文件传输)。
- 关键动作:生成要发送的数据,或者解析收到的数据。
第 6 层:表示层 ------ 给包裹做 "标准化处理"
- 角色:数据的 "翻译官 + 化妆师"。
- 通俗解释 :比如你寄的是 "国际快递",要把中文的说明书翻译成英文;或者怕包裹受潮,给它套个防水袋 ------ 这一层负责 数据的格式转换、加密、压缩。
- 例子 :
- 加密:把你的密码变成乱码(防止中途被偷看);
- 压缩:把大文件压成压缩包(减少传输体积);
- 格式转换:把图片格式从 PNG 转成 JPG。
- 关键动作:确保发送方和接收方 "能看懂对方的数据"。
第 5 层:会话层 ------ 快递员打电话确认 "配送时间"
- 角色:通信的 "会话管理者"。
- 通俗解释 :就像快递员和收件人约定 "明天下午 3 点送货",还会确认 "送到门口还是快递柜" ------ 这一层负责 建立、管理、终止两个设备之间的 "对话连接"。
- 例子 :
- 你登录微信时,和服务器建立的 "登录会话";
- 视频通话时,维持的 "实时通话连接"(断线了会重连)。
- 关键动作:决定 "什么时候开始通信、什么时候结束",还能做 "断点续传"(比如下载文件断网了,下次接着传,不用重下)。
第 4 层:传输层 ------ 快递公司的 "运输调度"
- 角色 :进程的 "快递分配员",对应之前讲的 TCP/UDP。
- 通俗解释 :你寄了 2 个包裹,一个是 "重要文件"(选顺丰,靠谱),一个是 "同城零食"(选闪送,快) ------ 这一层负责 给数据选 "运输方式",并送到目标主机的具体进程。
- 核心功能 :
- 端口寻址 :通过
IP+端口定位到对方的具体程序(比如把网页数据送到浏览器,不是微信); - 选择传输协议 :
- 选 TCP(顺丰):可靠传输,丢件必补,适合重要数据;
- 选 UDP(闪送):快速传输,丢件不补,适合实时数据。
- 端口寻址 :通过
- 关键动作:给数据分段(大文件切成小包裹)、给小包裹编号(确保顺序)、丢件重发(TCP 专属)。
第 3 层:网络层 ------ 快递的 "路线规划师"
- 角色 :主机的 "导航员",核心协议是 IP 协议。
- 通俗解释 :你从北京寄包裹到上海,快递公司不会直接从北京送到上海,而是规划路线:北京→济南→南京→上海 ------ 这一层负责 给数据包选 "最佳传输路线",实现跨网络寻址。
- 核心功能 :
- IP 寻址:通过 IP 地址定位目标主机(比如 "192.168.1.1" 就是主机的 "快递地址");
- 路由选择:通过路由器,让数据包从一个网络跳到另一个网络(比如从你家 WiFi 跳到小区宽带,再跳到电信骨干网)。
- 关键动作:给数据包加 "IP 地址标签",指挥路由器转发。
第 2 层:数据链路层 ------ 小区里的 "快递员跑腿"
- 角色 :局域网内的 "跑腿员",核心是 MAC 地址(物理地址)。
- 通俗解释 :包裹到了上海的小区快递站,快递员不用看收件人的 "详细地址",只看 "楼栋号 + 门牌号"(MAC 地址),就能把包裹送到家门口 ------ 这一层负责 同一局域网内的设备通信。
- 核心功能 :
- MAC 寻址:用网卡的物理地址(全球唯一)识别局域网内的设备;
- 帧封装:把网络层的数据包打包成 "帧",还会做 "差错检测"(比如包裹坏了,直接丢弃)。
- 例子:你家电脑和路由器之间的通信,就是通过这一层完成的。
第 1 层:物理层 ------ 快递的 "运输管道"
- 角色 :数据的 "搬运工",负责 传输二进制电信号 / 光信号。
- 通俗解释:就像快递的 "货车、飞机、传送带" ------ 这一层不管数据是什么内容,只负责把 "0 和 1" 的信号从一个设备传到另一个设备。
- 例子:网线里的电信号、光纤里的光信号、WiFi 的无线电波,都属于物理层的传输介质。
- 关键动作:只传信号,不处理数据(哪怕信号错了,也不管,交给上层处理)。
通俗总结:完整的 "数据快递" 流程
假设你用浏览器打开一个网页(发送请求):
- 应用层:浏览器生成 "请求网页" 的指令;
- 表示层:把指令加密(如果是 HTTPS);
- 会话层:和网页服务器建立 "会话连接";
- 传输层:选择 TCP 协议,给数据加 "端口标签"(比如 80 端口);
- 网络层:加 IP 地址标签(服务器的 IP),规划传输路线;
- 数据链路层:加 MAC 地址标签,在局域网内传输到路由器;
- 物理层:通过网线 / 光纤把电信号 / 光信号发出去。
服务器收到后,从下到上反向拆包,最后把网页数据按同样的流程传回来 ------ 你就能看到网页了!
核心记忆要点
- 分层原则:每层只做一件事,上层依赖下层,下层不关心上层;
- 口诀 :应表会传网文物(应用、表示、会话、传输、网络、数据链路、物理);
- 高频考点 :
- 传输层:TCP/UDP + 端口;
- 网络层:IP 协议 + IP 地址;
- 数据链路层:MAC 地址 + 局域网通信。
2.tcp/ip协议模型

TCP/IP 模型不追求理论完美,只关注实际数据传输的核心环节 ,4 层从上到下分别是:应用层 → 传输层 → 网际层 → 网络接口层
| TCP/IP 四层 | 对应 OSI 七层 | 通俗类比(快递流程) |
|---|---|---|
| 应用层 | 应用层 + 表示层 + 会话层 | 收件人拆包裹、用物品 |
| 传输层 | 传输层 | 选顺丰 / TCP 或闪送 / UDP |
| 网际层 | 网络层 | 规划快递路线、写 IP 地址 |
| 网络接口层 | 数据链路层 + 物理层 | 小区快递员跑腿 + 货车运输 |
1. 应用层 ------ 直接对接用户的 "包裹内容"
- 角色 :用户能直接接触的层,负责处理具体的业务逻辑
- 通俗解释:就像你寄的包裹里的 "衣服、零食、文件"------ 这些是真正有意义的东西,对应到网络里,就是你用的浏览器、微信、网盘这些应用。
- 核心功能 :
- 生成要传输的 "实际数据"(比如网页请求、聊天消息);
- 封装数据格式(比如 HTTP 规定网页数据怎么打包);
- 处理加密 / 压缩(比如 HTTPS 的加密,其实是把 OSI 表示层的功能整合进来了);
- 建立 / 管理会话(比如登录微信的连接,整合了 OSI 会话层的功能)。
- 常用协议:HTTP/HTTPS(网页)、FTP(文件传输)、SMTP(邮件)、DNS(域名解析)、SSH(远程登录)
- 关键特点 :程序员开发网络应用,主要就是和这一层打交道。
2. 传输层 ------ 选快递方式的 "调度员"
- 角色 :负责进程间的端到端传输,和 OSI 传输层完全一致
- 通俗解释 :你寄包裹时选 "顺丰(TCP)" 还是 "闪送(UDP)"------ 这一层决定数据的传输方式,并且通过端口号定位到目标主机的具体程序。
- 核心功能 :
- 端口寻址 :用
IP+端口标识 "哪个主机的哪个程序"(比如把网页数据送到浏览器的 80 端口,不是微信的端口); - 协议选择 :
- TCP 协议:靠谱的顺丰,三次握手建立连接,丢包重发,保证顺序;
- UDP 协议:快速的闪送,无连接直接发,丢包不补,速度优先。
- 端口寻址 :用
- 关键特点:只关心 "把数据从 A 程序送到 B 程序",不管中间经过哪些路由器。
3. 网际层 ------ 规划路线的 "导航员"
- 角色 :负责跨网络的路由和寻址 ,对应 OSI 的网络层,是 TCP/IP 模型的核心
- 通俗解释 :快递的 "全国物流调度中心"------ 从北京寄到上海,规划路线 "北京→济南→南京→上海",通过IP 地址定位目标主机。
- 核心协议 :IP 协议(IPv4/IPv6) ------ 给每台主机分配唯一的 "网络地址",就像快递的 "收件人省市区地址"。
- 辅助协议 :
- ICMP 协议:"网络报错提醒"------ 比如 ping 不通某台主机,就是 ICMP 返回的 "目标不可达";
- ARP 协议:"IP 地址转 MAC 地址"------ 知道了对方的 IP,就像知道了 "小区地址",ARP 帮你找到 "楼栋号(MAC 地址)"。
- 关键特点 :路由器的核心工作层,路由器只看 IP 地址,不管上层的应用和传输协议。
4. 网络接口层 ------ 最后一公里的 "跑腿 + 运输"
- 角色 :负责局域网内的传输和物理信号传递,整合了 OSI 的数据链路层 + 物理层
- 通俗解释:小区快递员的 "跑腿送货"+ 货车的 "运输管道"------ 把网际层的数据包,送到目标主机的门口。
- 核心功能 :
- 数据链路层部分 :用MAC 地址(网卡的物理地址)识别局域网内的设备,把 IP 数据包打包成 "帧",做差错检测(比如包裹坏了就丢弃);
- 物理层部分:通过网线、光纤、WiFi 等介质,传输二进制的电信号 / 光信号(不管数据内容,只负责传 0 和 1)。
- 常用技术:以太网协议、WiFi 协议、网线 / 光纤等传输介质。
- 关键特点 :只在局域网内有效,跨网络的话,要交给网际层的路由器转发。
八、TCP 固定头部结构:像 "快递面单" 的详细信息

TCP 固定头部是20 字节(5 行,每行 4 字节 = 32 位) ,可以理解成快递包裹的 "超级面单"------ 上面写满了 "谁发的、发给谁、怎么发、要注意啥" 的关键信息,保证数据能 "靠谱送达"。
先看整体结构:5 行固定内容(20 字节)
每行是 32 位(4 字节),共 5 行,下面逐行拆讲解:
第 1 行:发件人和收件人的 "窗口号"
| 左 16 位:16 位源端口号 | 右 16 位:16 位目的端口号 |
|---|---|
| 类比:寄件人的店铺窗口号 | 类比:收件人的店铺窗口号 |
| 作用:标识发送方的进程(比如你电脑上的浏览器用的端口) | 作用:标识接收方的进程(比如服务器的 80 端口对应网页服务) |
第 2 行:包裹的 "序号标签"
| 整行 32 位:32 位序号 |
|---|
| 类比:包裹的编号(比如 "第 1 个包裹""第 2 个包裹") |
| 作用:TCP 把大文件拆成多个 "小数据包",序号标记每个包的顺序(比如第 1 包序号是 100,第 2 包是 200),接收方靠序号把包按顺序拼好。 |
第 3 行:"收到包裹的回执号"
| 整行 32 位:32 位确认号 |
|---|
| 类比:收件人给的 "已收到" 回执(比如 "我已经收到序号≤100 的包裹了") |
| 作用:告诉发送方 "我已经收到你发的序号≤确认号 - 1的数据包了",如果发送方没收到这个回执,就会重发对应包。 |
第 4 行:"快递规则 + 收货能力"
这一行是混合信息,拆成 4 部分:
| 左 4 位:头部长度 | 中间 6 位:保留 | 中间 6 位:标志位(6 个开关) | 右 16 位:16 位窗口大小 |
|---|---|---|---|
| 类比:面单的长度 | 类比:预留的空白栏 | 类比:包裹的特殊要求开关 | 类比:收件人的收货筐大小 |
| 作用:告诉对方 "这个 TCP 头部一共有多少字节"(因为后面可能有 "选项",所以需要标长度) | 作用:暂时没用,留着以后扩展 | 作用:6 个 "开关" 控制 TCP 行为(比如SYN是 "请求建立连接",ACK是 "确认收到数据",FIN是 "请求断开连接") |
作用:告诉发送方 "我现在最多能收多少字节的数据"(防止发太快,收件人装不下) |
第 5 行:"包裹的安检 + 紧急电话"
| 左 16 位:16 位校验和 | 右 16 位:16 位紧急指针 |
|---|---|
| 类比:包裹的安检码 | 类比:包裹的紧急联系电话 |
| 作用:检查数据是否在传输中被篡改(如果安检码不对,就丢弃这个包) | 作用:如果打开了 "紧急开关(URG)",这个指针标记 "紧急数据在哪里结束"(比如传输中突然有紧急消息,优先送这部分) |
额外:可选的 "补充说明"(选项)
固定头部后面可以加选项(最多 40 字节),类比 "面单背面的补充说明"(比如 "易碎品,轻拿轻放"),用来传递额外信息(比如协商最大传输单元 MTU)。
总结:TCP 固定头的核心作用
就像一张信息齐全的快递面单,通过 "端口(找对人)、序号(排好序)、确认号(防丢件)、窗口(控速度)、标志位(控连接)" 这一堆信息,实现了 "可靠、有序、不丢包" 的传输 ------ 这就是 TCP "靠谱" 的原因!
九、IPv4头部结构

IPv4 头部是网络层的 "身份凭证" ,默认 20 字节(可加最多 40 字节选项),可以理解成快递的 "物流面单"------ 写清 "发件地址、收件地址、包裹规格、运输规则",让路由器能把数据包准确送到目标主机。
整体结构:5 行固定内容(20 字节)
每行 32 位(4 字节),共 5 行,逐行拆解:
第 1 行:包裹的 "基础信息"
| 左 4 位:版本号 | 中间 4 位:头部长度 | 中间 8 位:服务类型(TOS) | 右 16 位:总长度 |
|---|---|---|---|
| 类比:快递类型(比如 "国内快递") | 类比:面单本身的长度 | 类比:包裹优先级(比如 "加急件") | 类比:包裹总重量(含面单) |
作用:固定为4(代表 IPv4) |
作用:标识 IPv4 头部的总长度(默认 20 字节,对应值为5) |
作用:告诉路由器 "这个包的优先级"(比如语音包设为高优先级) | 作用:标识整个 IP 数据包的总字节数(头部 + 数据) |
第 2 行:包裹的 "拆分与标识"
| 左 16 位:标识 | 中间 3 位:标志 | 右 13 位:片偏移 |
|---|---|---|
| 类比:包裹的唯一编号 | 类比:包裹拆分规则(比如 "不可拆") | 类比:拆分后包裹的顺序 |
| 作用:给大数据包的拆分片段分配 "同一编号"(比如一个大文件拆成 3 个包,标识相同) | 作用:控制数据包拆分:DF=1 表示 "不可拆",MF=1 表示 "不是最后一个片段" |
作用:标记片段在原数据包中的位置(比如第 2 个片段的偏移是 "100 字节") |
第 3 行:包裹的 "运输规则"
| 左 8 位:生存时间(TTL) | 中间 8 位:协议 | 右 16 位:头部校验和 |
|---|---|---|
| 类比:包裹最大运输次数(防止绕路) | 类比:包裹里的物品类型(比如 "文件") | 类比:面单的防伪码 |
| 作用:限制数据包的转发次数(每过一个路由器减 1,减到 0 就丢弃,防止死循环) | 作用:标识上层协议(比如6代表 TCP,17代表 UDP) |
作用:检查头部是否被篡改(若校验失败,路由器会丢弃包) |
第 4 行:发件人的 "地址"
| 整行 32 位:源 IP 地址 |
|---|
| 类比:寄件人的详细地址 |
| 作用:标识发送方主机的 IP 地址(比如你的电脑 IP:192.168.1.1) |
第 5 行:收件人的 "地址"
| 整行 32 位:目的 IP 地址 |
|---|
| 类比:收件人的详细地址 |
| 作用:标识接收方主机的 IP 地址(比如服务器 IP:123.45.67.89) |
额外:可选的 "补充说明"(选项)
固定头部后可加选项(最多 40 字节),类比 "面单背面的特殊要求"(比如 "指定运输路线"),用来传递额外信息(比如记录路由路径)。
总结:IPv4 头部的核心作用
像物流面单的核心信息,通过 "源 IP / 目的 IP(找对主机)、TTL(防死循环)、协议(告诉上层怎么处理)",让数据包能跨网络、准确地被路由器转发到目标主机 ------ 这是网络层 "寻址 + 路由" 的关键载体。
十、跨主机进程通信的 "数据封装→传输→解包" 全流程

一、核心场景
应用程序 A(比如你电脑上的微信)要给另一台主机的应用程序 B(比如好友的微信)发送数据 "hello",整个过程需要各层协议配合,给数据 "逐层打包",传到目标后再 "逐层拆包"。
二、发送方(应用程序 A)的 "封装流程"(自上而下)
数据从上层(应用层)到下层(数据链路层),每一层都会给数据加 "本层协议头 / 尾",最终变成 "数据帧" 在网络中传输:
- 应用层:生成原始数据 "hello"(这是应用程序 A 要发的内容)。
- 传输层 :给 "hello" 前面加 TCP/UDP 头部(比如加 TCP 头,包含源端口、目的端口,用来标识 "应用 A" 和 "应用 B")。
- 网络层 :给 "TCP 头 + hello" 前面加 IP 头部(包含源 IP、目的 IP,用来标识 "应用 A 的主机" 和 "应用 B 的主机")。
- 数据链路层 :给 "IP 头 + TCP 头 + hello" 前后加 帧头、帧尾(包含源 MAC、目的 MAC,用来在局域网内传输),最终形成 "数据帧"。
三、网络传输
封装好的 "数据帧" 通过物理层(网线 / WiFi)发送到网络,经路由器基于IP 地址转发,最终传到应用程序 B 所在的主机。
四、接收方(应用程序 B)的 "解包流程"(自下而上)
数据从下层(数据链路层)到上层(应用层),每一层都会剥离 "本层的协议头 / 尾",最终拿到原始数据:
- 数据链路层:收到数据帧,剥离 "帧头、帧尾",得到 "IP 头 + TCP 头 + hello"。
- 网络层:剥离 "IP 头部",得到 "TCP 头 + hello"。
- 传输层:剥离 "TCP/UDP 头部",得到原始数据 "hello"。
- 应用层:把 "hello" 交给应用程序 B,应用 B 就收到了数据。
图中核心知识点总结
- 分层封装 / 解包原则:发送方 "自上而下加头",接收方 "自下而上拆头"------ 每一层只处理自己的协议头,不干扰上层数据。
- 各层协议的作用 :
- 应用层:提供实际数据;
- 传输层(TCP/UDP):定位 "进程"(通过端口);
- 网络层(IP):定位 "主机"(通过 IP 地址);
- 数据链路层:定位 "局域网设备"(通过 MAC 地址)。
- 数据单元名称 :
- 应用层:数据;
- 传输层:段(TCP)/ 数据报(UDP);
- 网络层:IP 数据报;
- 数据链路层:帧。