网络通信协议 第一部

1.认识协议

网络协议,通信双方对于发送/接受 数据格式的约定

网络通信中协议非常重要

进行一次网络通信,涉及到5个非常关键的信息五元组

源IP 目的IP

协议类型

源端口 目的端口

2.协议分层

网络通信非常复杂,如果我们设计一个协议,完成网络通信中方方面面的问题,势必会使这个协议非常的复杂

真实的互联网具体是怎么分层的?

OSI 七层网络模型

这种模型呢 主要出现在教材中 由于体系太复杂 真实应用中 是使用更简化的 TCP/IP五层(四层)模型

TCP/IP五层模型(由下及上结构)

1.应用层

职责:为用户应用程序提供网络服务接口处理与用户交互的具体协议(商家和用户进行实际的货物交易或信息交流)

数据单位:消息

相关协议/技术:HTTP,HTTPS,DNS,SMTP,FTP,SSH

2.传输层

职责:提供端到端的通信服务 负责数据分段 流量控制 可靠性保障(物流公司 负责把货物(应用数据)从你家 (某一个应用)可靠的(TCP)或快速的(UDP)送到对方家门口(另一个应用端口))

数据单位:数据段

相关协议/技术:TCP UDP 端口号

3.网络层

职责:负责跨网络的通信,主要功能是逻辑寻址和路由选择 (全球导航和邮局分拣 根据目标地址,规划从城市a到城市b的最佳路径 处理跨网络的寻址和转发)

数据单位:数据包/分组

核心协议/技术:IP ,路由器,ICMP,ARP

4.数据链路层

职责:在直接相连的节点间进行可靠的数据帧传输,负责帧同步,差错控制,流量控制(通俗比喻 交通规则和本地交警 保证在一条具体街道上(某段以太网)车辆有序 无差错的通行

数据单位:数据帧

核心协议/技术:以太网,wifi,ppp,交换机,MAC地址

5.物理层

职责:传输原始比特流,定义电气,机械,时序等物理特性(通俗比喻 公路和土地 提供车辆行驶的基础道路)

数据单位:比特

核心协议/技术:双绞线,光纤,无线电波,集线器

数据传输流程

发送方(你的电脑) - 封装过程:
  1. 应用层 :生成 HTTP 请求报文(GET /index.html ...)。

  2. 传输层 :添加 TCP 头部 (包含源端口、目标端口 80),形成 TCP 段,确保可靠传输。

  3. 网络层 :添加 IP 头部 (包含源 IP、目标 IP),形成 IP 数据包,准备跨网络路由。

  4. 数据链路层 :添加 以太网头部和尾部 (包含源 MAC 地址、下一跳的 MAC 地址),形成 以太网帧,准备在本地局域网发送。

  5. 物理层 :将帧转换为 比特流,通过网卡调制成电信号或光信号发送出去。

传输路径:

  • 信号经过交换机(数据链路层设备)转发,到达路由器。

  • 路由器(网络层设备)检查 IP 包头,选择最佳路径,然后重新封装成新的数据链路层帧(如从以太网帧变成 PPP 帧),发送给下一个网络。

    流程图如下所示:

    接收方(服务器) - 解封装过程:

  • 物理层:接收信号,还原为比特流。

  • 数据链路层:检查帧的 MAC 地址和完整性,去掉帧头帧尾,将数据包上传给网络层。

  • 网络层:检查 IP 地址,若为本机,则去掉 IP 头部,将 TCP 段上传给传输层。

  • 传输层:检查端口号,将数据按顺序重组,去掉 TCP 头部,将 HTTP 报文上传给相应的应用程序(如 Web 服务器软件)。

  • 应用层:Web 服务器处理 HTTP 请求,生成响应,然后反向执行封装过程,将网页数据发回给你的电脑。

    流程图如下反着图片而来

    根据数据进行解析 每一层包含着下一层所使用协议信息 进而完成数据的接收:

相关推荐
yxlalm5 小时前
Spring AI+RAG 01-项目背景与技术选型
java·人工智能·spring
程序员清风6 小时前
Java 后端高并发设计:线程池、限流、熔断与降级
java·数据库·oracle
隐擎fox6 小时前
深入理解网络传输层安全:TLS 指纹识别(JA3/JA4)原理与 Python 协议层检测实战
爬虫·python·网络协议·安全·网络安全·https
游戏开发爱好者86 小时前
网络连接排查指南,谁在电脑后台偷跑流量,哪些程序在联网
网络协议·计算机网络·网络安全·ios·adb·https·udp
Jeremy_WW6 小时前
QSFP/QSFP-DD/OSFP 通用管理接口规范(CMIS)解读:13 Page 9Fh
网络·网络协议·信息与通信·光模块·cmis
Seoyoneh6 小时前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
海南java第二人6 小时前
对外 API 如何保证幂等性?插入数据 / 上传表格场景全方案汇总
java·幂等性
tryxr6 小时前
Chat2Excel 文件服务模块上传文件功能开发
java·项目·oss·easyexcel·文件服务
Tangyuewei6 小时前
Java 写 Agent:模型只是组件
java·开发语言
彧azz7 小时前
Java学习语法篇:变量
java·学习