IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> CCNA-数据包在网络设备直接的通信流程 -> 正文阅读

[网络协议]CCNA-数据包在网络设备直接的通信流程

CCNA-数据包在网络设备直接的通信流程

工作以来,感触最深的就是很多人学完了网络,甚至做了几年项目,还没有搞明白数据包的走向问题以及设备的转发原理。导致工作过程中出现问题,在拍错的时候一头雾水,抓耳挠腮,今天我用这个图简单说说PC1 访问 PC2 的一个HTTPS的WEB网站的数据包走向问题(最后附带了TCP包头和IP包头的格式,基础不好的可以先看最后两个图得内容):

先看拓扑图:
在这里插入图片描述

大家可以瞅瞅我下面总结的流程,感觉不错的话可以记下来PC1 地址192.168.1.100/24,网关地址192.168.1.1----也就是路由器f0/0口的地址;

PC2地址172.16.1.100/24,网关地址172.16.1.1----也就是路由器f1/0口的地址。

下面从OSI七层模型对数据包进行封装,封装完毕通过物理线路发送出去,结合路由器交换机工作原理进行描述:

1、PC1在应用层发起个目标IP为172.16.1.100的Https请求。

2、传输层(TCP层)接到上层请求的数据,将数据分段并加上传输层报头(也就是TCP包头,目的端口号为443)。下传到网络层。

3、网络层接收来处上层的数据后,根据IP协议(三层)进行封装,添加PC1的IP为源IP为和PC2的IP为目标IP后封装成数据包,同时协议号位6(TCP的协议号,标识包头里面是TCP的内容)。下传到数据链路层(二层),因PC1 IP与PC2 IP不在同一网段,所以数据包将发往网关路由条目的下一跳,也就是路由器F0/0口。

4、数据链路层接收网络层封装好的数据包后,继续进行封装帧头,添加源MAC地址为PC1的MAC地址,目标MAC地址则查询自己的ARP缓存表以获取网关MAC地址(路由器F0/0口的MAC)。如果PC1 ARP缓存表中没有网关对应的MAC地址,则PC1发出一个ARP广播报文。ARP报文中源MAC地址为PC1 MAC地址,所要请求的是网关IP对应的MAC地址.

5、交换机SW1从F0/0接收到ARP广播帧后,检查自己ARP缓存表中是否有与F0/0口相对应PC1的MAC地址。没有,则将PC1MAC地址与F0/0接口对应起来,存储到交换机SW1的ARP缓存表中。然后将该ARP请求报文进行除F0/0口以外的其他所有端口进行泛洪。

6、Router收到ARP广播后,进行解封装,发现所要请求的MAC地址是自己的。则Router将PC1的MAC地址写入ARP缓存表中。然后向 PC1发送一个ARP单播回应。该单播消息包括目标IP为PC1 IP,目标MAC为PC1 MAC地址,源IP为Router的F0/0口IP,源MAC为 Router的F0/0的MAC。

7、交换机通过F0/1口收到ARP单播帧,交换机同样检查MAC表,然后将F0/1口与Router的F0/0(ARP单播包里面的源MAC)的MAC地址对应起来,存入MAC缓存表中,然后转发该帧。

8、PC1接收到Router的ARP应答帧后,将Router的F0/0的MAC地址存入ARP缓存中(缓存默认4个小时超时),并将Router的F0/0的MAC地址作为目标地址封装到数据帧中。发给下层(物理层)进行网络传输。

9、Router的F0/0接收这个帧后,看目标mac地址是否指向自己。是,PC2则将帧头去掉,然后检查目标IP地址,发现这个目标IP不是自己,刚不再进行解封装。

10、Router在自己的路由表中检查自己的是否有去往目标地址的路由,没有则丢弃该帧。有,路由器经检查发现是去往与F1/0口直连的网段。则路由器对数据包进行二层封装成帧,源IP为PC1的IP,源mac地址为Router F1/0口的MAC地址,目标IP为PC2的IP,目标MAC地址则检查自己的ARP缓存表获取。如果没有,则发送ARP请求报文(这里就不再描述ARP请求过程了)。

11.Router把二层帧封装完毕,完后把数据帧发给SW2,SW2查看MAC地址表,根据之前ARP的映射缓存表项通过F0/1口转发数据帧。

12.PC2收到数据帧拆开最外面的帧头,一看目的MAC是自己,他继续拆IP包头

15、PC2拆开IP包头,发现目标IP和自己匹配,则继续拆封装,发现IP里面协议号是6,代表是TCP的数据,将数据向上层传输。

16、传输层(TCP)接收来自下层的Https请求TCP报文,则去掉TCP报头,向应用层传送。

17、应用层收到Https请求后,发送一个Https回应报文给PC1

回包过程同理。

下面附IP包头,TCP包头格式图。
在这里插入图片描述
在这里插入图片描述
好的本次到这里就结束了,欢迎观看我的文章。我是CCIE-Yasuo,喜欢就关注我吧,下一期见。
欢迎新盟教育的同学一起来交流,我是41期的疾风剑豪
同时我也是一名18岁来自大专的学生在学校写的,如有写的不对或侵权请及时联系删除。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 19:06:09  更:2022-03-30 19:06:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:39:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码