华为 HCIA 基础

华为 HCIA 数据传输过程

学习TCP/IP协议簇和底层协议配,保证数据能实现端到端的传输数据。数据传输过程是一个非常复杂的过程,传输数据是从封装和解封装。
数据可以在同一网络内或者是不同网络间传输,数据转发过程也分远程转发和本地转发,但两者的工作原理是基本易一旦,都是遵循着TCP/IP协议簇。
华为 HCIA 基础_第1张图片
如图,当PC1要传数据给PC2时,假设两者之间已经建立好了TCP连接,现在看如何传输数据,PC1会对要发送的数据进行加密和压缩等相关的操作。之后进入传输层封装,当PC1使用TCP报文封装时,必须填充源端口和目标端口字段,初始序列号和确认序列号字段,标识位,窗口字段以及校验和字段,此例中数据段的源端口是3355(随机选择),目标端口的端口号是23(telnet)。
在这里插入图片描述
PC1 完成传输层封装后,
华为 HCIA 基础_第2张图片
在这里插入图片描述一般会进行网络层数据封装,在使用IP进行封装时,需要明确IP报文的源和目的地址。如果IP报文的大小于网络的最大传输单元(MTU),则该报文有可能会被分片。
TTL(生存时间):是来减少网络环路造成的影响,再每经过一个三次设备,TTL值就会减一,默认值是255,如果路由器发现该值被减为0就会丢弃该书卷包,这样,就算网络中存在有环路,数据包也不会在网络上一直被转发。
每一个主机都会有独自维护自的路由表,PC1再送数据前需要检查是否能够达目的端,这个过程通过查找路由器完成,此图,pc1拥有一条达到任何网络的路由,它会通过E0/0/1接口发送给AR1G0/0/0接口,也为网关接口。
IP包封装后,由于数据包要被封装成数据,所以呢PC1需要获取下一跳的MAC地址,也就是网关地址(AR1 G0/0/0接口的IP地址),PC1首先会查询ARP缓存表。假设PC1中存有网关的MAC地址,若没有查到网关的MAC地址表项就会用ARP请求获取网关的MAC地址。\f在这里插入图片描述

PC1在链路层封装数据帧,会遵循IEEE 802.3或Ethernet_II帧头中的类型字段填充为0x0800,以表示网络层使用的是IP协议。源MAC是PC1的MAC地址,目的MAC地址为网关路由器的G0/0/0接口达到MAC地址。

PC1工作在半双工或者是全双工,如果是半双工就会使用CSMA/CD来检测链路是否空闲,如果链路空闲,PC1会将严格Preamle(前导码)和SFD附加到帧头然后进行传输。Preamble的作用就是使接受设备进行同步进行并做好准备接收数据帧的准备。
PC1发送数据帧到共享以太网,此网络中的所有网络设备都会收到该帧。设备收到帧之后,首先会进行FCS校验。如果FCS校验未能通过,则帧被立即丢弃。对于通过了FCS校验的帧,设备会检查帧中的目的MAC地址。如果帧中的目的MAC地址与自己的MAC地址不同,设备将丢弃帧,如果相同,则会继续处理。处理过程中,帧头帧尾会被剥去(也就是解封装),剩下的数据报文会被根据帧头中的类型字段的值来送到网络层中的对应协议模块去处理。
AR1收到此数据报文后,网络层会对该报文进行处理。AR1首先根据IP头部信息中的校验和字段,检查IP数据报文头部的完整性,然后根据目的IP地址查看路由表,确定是否能够将数据包转发到目的端。AR1还必须对TTL的值进行处理。另外,报文大小不能超过MTU值。如果报文大小超过MTU值,则报文将被分片。
网络层处理完成后,报文将被送到数据链路层重新进行封装,成为一个新的数据帧,该帧的头部会封装新的源MAC地址和目的MAC地址。如果当前网络设备不知道下一跳的MAC地址,将会使用ARP来获得。以此内推。

完!!!!!

你可能感兴趣的:(华为 HCIA 基础)