网络通信与 TCP/IP 五层模型

本文介绍网络通信基础概念,包括通信标识(五元组、IP、端口、MAC)、网络范围(局域网、子网、网关)及网络设备。重点解析 TCP/IP 五层模型各层功能:物理层信号转换、数据链路层帧处理、网络层路由寻址、传输层连接管理及应用层协议交互。涵盖封装、解复用、校验等核心机制,帮助理解数据传输全过程。



源 IP、目的 IP、源端口、目的端口、协议类型 确定一次唯一的网络通信。
唯一性
每个 Socket 对应连接一个唯一的五元组:
new Socket(目的 IP, 目的端口),源 IP 为本地,源端口由操作系统空闲分配,创建 TCP 连接是一次唯一通信。
标识设备在网络中的唯一位置;IPv4格式由点分 4 个 8bit 位的十进制数组成。
区分应用,标识应用层占据的网络通信端点。
标识载荷由上层哪个协议遵守而成的数据包。
一次单类: 在传输层有无连接的传输方式分隔成两类通信中。
MAC 地址是网络硬件的唯一标识符。
IP 能本地访问的本地子网的网络地址 = IPv4 & 网络位与主机位。
采用IPv4 格式整体的 32 位呈先网络前缀的连续 1(对应划分 IP 的网络位)、后接口标识符的连续 0(对应划分 IP 的主机位)。
/网络位的位数划分 IP 的网络位与剩下的主机位。
默认网关访问的本地子网重合叠在 IP 设备的本地子网内,同地收发设备 IP,是用于帮转的接壤出口 IP。
两个 IP 出机的本地子网重合互通 —> 直接通信
两个 IP 出机的本地子网没有重合 —> 网关转发
IP 出机访问同地一发一接。
IP 设备访问跨网段本地通信驻内网关访他的跨网段地转发。
在物理层传输物理信号。
在物理层 + 数据链路层转化信号:
转化物理信号与二进制数据
| 1 | 0 |
|---|---|
| 高电平 | 低电平 |
| 高频光 | 低频光 |
| 高频电磁波 | 低频电磁波 |
在物理层 + 数据链路层二层转发:
物理层接收物理信号转化成帧 and 数据链路层解复用校验、封装填装设置的目标 MAC。
在物理层 + 数据链路层 + 网络层三层转发:
物理层接收物理信号转化成帧 and 数据链路层解复用校验 and 网络层解复用不拆读取目的 IP 路由下一跳 IP 解析下一站 MAC。
在传输层安全防护:
按规则过滤上传的某源端口访问、下传的某目的 IP 前往。
| 应用层 | HTTP 报文->贴说明书的货物 |
| 传输层 | 端口号->单类货物间的进入门号;协议类型->顺丰/中通 |
| 网络层 | IP 地址->发往的站点地址 |
| 数据链路层 | MAC 地址->与快递员的交接地点 |
| 物理层 | 物理信号->司机的运输传送 |
| 任务多位 | 单位轻捷 |
| 单位铺蚀,扔传交流 | 单位互独 |
数据包 = 头部 + 载荷,头部置理载荷,载荷装载现作数据
← 主数据流程并行辅助控制流程 →
网卡反序列化 物理信号 <—> 二进制数据 ⇌ 数据包参数 转化 序列化
数据包参数序列化成头部的二进制数据封装进二进制数组
头部的二进制数据反序列化成数据包参数解复用出二进制数组
参数多配,二进制数组还薄 参数装↓裹数据包 拆数据包↑参数卸 参数剩少,二进制数组已厚
转化物理信号与二进制数据
局域网内前访设备、损坏检测
以太网有线传输、802.11无线传输
| 帧 = 帧头 + 网络层数据包 + 帧尾 |
|---|
| 以太网帧头 |
| 802.11 帧头 |
| 网络层数据包 |
| 帧尾 |
按照以太网协议:
局域网内瞄选设备、网络诊断
IP标识主机、ARP解得 MAC、ICMP 网络诊断
| IP 包 = IP 包头 + 传输层数据包 |
|---|
| IP 包头 |
| 传输层数据包 |
| ARP 报文 = ARP 报头 + ARP 数据体 |
|---|
| ARP 报头 |
| ARP 数据体 |
按照 IP 协议 对 IP 报头填充传下来的源 IP,目的 IP、TTL、协议类型
解析出的目的 MAC、本机网卡的 MAC 为源 MAC****下传直到数据链路层
MTU 限制传输层数据包作载荷的长度会拆分 IP 分片
设备里照选应用、建立传输
TCP 面向连接的可靠传输、UDP无连接的不可靠传输
| TCP 段/UDP 报 = 包头 + 应用层报文 |
|---|
| TCP 包头 |
| UDP 包头 |
| 应用层报文 |
按照 TCP 协议 对 TCP 报头填充系统分配空闲端口的源端口、下传的目的端口、序列号、确认号
TCP 限制应用层报文作载荷在 MSS 最大段长度内拆分 TCP 分段以避免 IP 分片
(UDP 一次接收完整应用层报文付交给 IP 分片)
根据目的端口把载荷交给对应应用
应用里处置数据
| HTTP/HTTPS | 网页访问+接口调用 |
| DNS | 解析域名 |
| FTP | 文件传输 |
| SMTP/POP3 | 邮件发送 + 接收 |
| MySQL 协议 | 数据库连接 |
| 应用内部协议 | 构造结构化数据 |
应用层报文 = 处置报头 + 结构化数据 (载荷)
| HTTP 请求报文 = HTTP 请求头 (请求行 + 请求头部字段) + 空行分隔符 + HTTP 请求体 |
|---|
| HTTP 请求行 |
| HTTP 请求体 |
| HTTP 响应报文 = HTTP 响应头 (状态行 + 响应头部字段)+空行分隔符+HTTP 响应体 |
|---|
| HTTP 状态行 |
| HTTP 响应体 |


微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online