华为HCIA学习笔记:数据转发过程

目录

数据转发过程

前言

数据转发过程概述

TCP封装

IP封装

查找路由

ARP

以太网封装

数据帧转发过程

数据包转发过程

数据帧解封装

数据包解封装

数据段解封装

总结

HCIA 基础实验-MAC、ARP

传输介质实践介绍

环路

二层、三层网络的环路有什么特点和区别?


数据转发过程

前言

        TCP/IP协议簇和底层协议配合,保证了数据能够实现端到端的传输。数据传输过程是一个非常复杂的过程,例如数据在转发的过程中会进行一系列的封装和解封装。对于网络工程师来说,只有深入地理解了数据在各种不同设备上的转发过程,才能够对网络进行正确的分析和检测。

数据转发过程概述

        数据可以在同一网络内或者不同网络间传输,数据转发过程也分为本地转发和远程转发,但两者的数据转发原理是基本一样的,都是遵循TCP/IP协议簇。
本示例中,主机A需要访问服务器A的Web服务,并且假定两者之间已经建立了TCP连接。接下来会以此示例来讲解数据在不同网络间的传输过程。

TCP封装

        主机A会对待发送的应用数据首先执行加密和压缩等相关操作,之后进行传输层封装。Web应用是基于传输层的TCP协议传输数据的。主机A使用TCP进行报文封装时,必须填充源端口和目的端口字段,初始序列号和确认序列号字段,标识位,窗口字段以及校验和字段。此例中数据段的源端口号为主机A随机选择的1027号端口,目的端口号为服务器A的TCP知名端口80。

IP封装

        主机A完成传输层封装后,一般会进行网络层数据封装,在使用IP进行封装时,需要明确IP报文的源和目的地址。如果IP报文的大小大于网络的最大传输单元(MTU),则该报文有可能在传输过程中被分片。
        生存时间(TTL)字段用来减少网络环路造成的影响。ARG3系列路由器产生的数据包,默认TTL值为255。路由器转发一个数据包时,该值会被减1,如果路由器发现该值被减为0,就会丢弃该数据包。这样,即使网络中存在环路,数据包也不会在网络上一直被转发。
        协议字段标识了传输层所使用的协议。本例中,传输层使用的是TCP协议,所以该字段的填充值为0X06。

查找路由

        每个主机都会独自维护各自的路由表项。主机A在发送数据前需要先检查是否能够到达目的端,这个过程是通过查找路由来完成的。在此示例中,主机A拥有一条到达“任何网络”(在IP编址部分已经简要介绍过)的路由,它发往其他网络的数据都会通过IP地址为10.1.1.1的接口转发到下一跳,即网关10.1.1.254。

ARP

        接下来,由于数据包要被封装成数据帧,所以主机A需要获取下一跳的MAC地址,也就是网关的MAC地址。主机首先会查询ARP缓存表。本例中,主机A的ARP缓存表中存在网关MAC地址的表项。
        如果没有查找到网关的MAC地址表项,主机A会通过发送ARP请求来获取网关的MAC地址。

以太网封装

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

数据帧转发过程

        主机A工作在半双工状态下,所以会使用CSMA/CD来检测链路是否空闲。如果链路空闲,主机A会将一个前导码(Preamble)和一个帧首定界符(SFD)附加到帧头然后进行传输。前导码的作用是使接收设备进行同步并做好接收数据帧的准备。前导码是包括了7个字节的二进制“1”、“0”交替的代码,即1010…10共56位。帧首定界符是长度为1个字节的10101011二进制序列,它的作用是使接收端对帧的第一位进行定位。

        本例中,主机A发送数据帧到共享以太网,此网络中的所有网络设备都会收到该帧。设备收到帧之后,首先会进行FCS校验。如果FCS校验未能通过,则帧被立即丢弃。对于通过了FCS校验的帧,设备会检查帧中的目的MAC地址。如果帧中的目的MAC地址与自己的MAC地址不同,设备将丢弃帧,如果相同,则会继续处理。处理过程中,帧头帧尾会被剥去(也就是解封装),剩下的数据报文会被根据帧头中的类型字段的值来送到网络层中的对应协议模块去处理。

数据包转发过程

        RTA收到此数据报文后,网络层会对该报文进行处理。RTA首先根据IP头部信息中的校验和字段,检查IP数据报文头部的完整性,然后根据目的IP地址查看路由表,确定是否能够将数据包转发到目的端。RTA还必须对TTL的值进行处理。另外,报文大小不能超过MTU值。如果报文大小超过MTU值,则报文将被分片。
        网络层处理完成后,报文将被送到数据链路层重新进行封装,成为一个新的数据帧,该帧的头部会封装新的源MAC地址和目的MAC地址。如果当前网络设备不知道下一跳的MAC地址,将会使用ARP来获得。

数据帧解封装

         该示例中,服务器A处于一个共享以太网中,两台服务器都会收到RTB发送的数据帧。该帧的目的MAC地址与服务器B的接口MAC地址不匹配,所以会被服务器B丢弃。
服务器A成功收到该帧,并通过FCS校验。服务器A将利用帧中的类型字段来识别在网络层处理该数据的协议。该示例中,服务器A会将解封装后的此数据交给网络层的IP协议来进行处理。

数据包解封装

        服务器A通过IP协议来处理该报文,首先会通过校验和字段来验证报文头的完整性,然后检查IP报文头中的目的IP地址是否与自己当前的IP地址匹配。
        如果在源与目的之间的数据传输期间数据发生了报文分片,则报文会被目的端重新组合。标识字段用于标识属于同一数据源的分片报文,偏移量表示该分片在原分组中的相对位置。标志字段目前只有两位有意义,标志字段最低位为1,表示后面还有分片,为0表示这已经是最后一个数据片;中间一位为1表示不能分片,为0表示允许分片。所有的分片报文必须被目的端全部接收到后才会进行重新组合。
        协议字段表示此数据包携带的上层数据是哪种协议的数据。需要注意的是,下一个报头并非总是传输层报头。例如,ICMP报文也是使用IP协议封装,协议字段值为0x01。

数据段解封装

        当IP报文头被处理完并剥离后,数据段会被发送到传输层进行处理。在此示例中,传输层协议使用的是TCP,且发送端和接收端已经通过三次握手建立了连接。传输层收到该数据段后,TCP协议会查看并处理该数据段头部信息,其中目的端口号为80,用于表示处理该数据的应用层协议为HTTP协议。TCP处理完头部信息后会将此数据段头部进行剥离,然后将剩下的应用数据发送到HTTP协议进行处理。

总结

1.主机在封装数据包之前,必须要知道目的端IP地址。在封装数据帧之前,必须要知道去往目的网络的路由以及下一跳的MAC地址。

2.如果主机接收到一个不是发往自己的数据帧,在检验帧头中的目的MAC地址之后会丢弃该帧。

3.传输层会检查TCP或UDP报文头中的目的端口号,以此来识别特定应用。

4.服务器可以只通过源IP地址识别两台主机的HTTP流量,另外TCP报文头中包含的源端口也可以被用来区分同一台主机通过不同的浏览器发起的不同的会话。例如,两个来自源IP为10.1.1.1的HTTP流量使用的目的端口号都是80,但源端口号为1028和1035。


HCIA 基础实验-MAC、ARP

        MAC地址表是交换机的一个核心组成部分,交换机主要根据MAC地址表来进行帧的转发的。
交换机对帧的转发操作行为一共3种:

        泛洪(Floadding),转发(Forwarding)和丢弃(Discarding).

        在不涉及VLAN的情况下,交换机的转发原理可以概括地描述为:
(1)如果进入交换机的是一个单播帧,则交换机会去MAC地址表中查找这个帧的目的MAC地址,如果查不到这个MAC地址,则交换机将对该帧执行泛洪操作;如果查到了这个MAC地址,则比较这个MAC地址在MAC地址表中对应的端口是不是这个帧进入交换机的那个端口,如果不是,则交换机将对该帧执行转发操作,如果是,则交换机将对该帧执行丢弃操作。
(2)如果进入交换机的是一个广播帧,则交换机不会去查MAC地址表,而是直接对该帧执行泛洪操作。
(3)如果是一个组播帧,则按组播的方式进行处理。

        交换机具有转发帧的能力,同时还具有MAC地址学习能力。当一个帧进入交换机后,交换机会检查这个帧的源MAC地址,并将该MAC地址与这个帧进入交换机的那个端口进行映射,然后将这个映射关系作为一个动态地址表项存放进MAC地址表。

        MAC地址表是一张动态的表,每个表项在创建或刷新时,都会设定并维护一个默认是 300s 的生存期(也称为老化周期)。一个MAC 地址表项如果超过了生存期,则该表项会立即被自动清除。

        ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写,是 IP地址到MAC地址对应列表.

        如果两台主机之间通过交换机相连,那么其中一台主机在向另一台主机发送数据帧的时候,会首先在自己的ARP缓存表中查找目标主机的MAC地址。如果ARP缓存表中不存在目标主机的MAC 地址,则源主机会以广播帧的形式发送ARP请求报文来获取目标主机的MAC地址,目标主机接收到该ARP 请求报文后,会以单播帧的形式回应一个ARP回复报文,告知自己的MAC地址。源主机在获取了目标主机的MAC 地址后,一方面可利用该MAC地址向目标主机发起通信,别一方面会将目标主机的IP 地址和MAC 地址建立一个映射关系,并将此映射关系作为一个条目存放在自己的ARP缓存表中。ARP缓存表也是一张动态的表。

        在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。
所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

==========

        MAC地址表中的表项分为:动态表项、静态表项和黑洞表项。
        动态表项:由接口通过报文中的源MAC地址学习获得,表项可老化。在系统复位、接口板 热插拔或接口板复位后,动态表项会丢失。可以通过查看动态MAC地址表项,可以判断两 台相连设备之间是否有数据转发;也可以通过查看指定动态MAC地址表项的个数,可以获 取接口下通信的用户数。

        静态表项:由用户手工配置,并下发到各接口板,表项不可老化。在系统复位、接口板热插 拔或接口板复位后,保存的表项不会丢失。一条静态MAC地址表项,只能绑定一个出接口。 一个接口和MAC地址静态绑定后,不会影响该接口动态MAC地址表项的学习。通过绑定静 态MAC地址表项,可以保证合法用户的使用,防止其他用户使用该MAC进行攻击。

        黑洞表项:由用户手工配置,并下发到各接口板,表项不可老化。在系统复位、接口板热插 拔或接口板复位后,保存的表项不会丢失。通过配置黑洞MAC地址表项,可以过滤掉非法 用户。

        黑洞mac
        mac-address blackhole 00aa-bbcc-ddee

配置3台PC 的MAC 地址

PC1 :00-01-00-01-00-01
PC2 :00-02-00-02-00-02
PC3 :00-03-00-03-00-03

然后ping 一下,测试相互间的连通性。

PC>ping 192.168.1.3 -c 6 ,默认是5个报,可以改一下

========
观察正常的MAC 地址表
<Huawei>display mac-address

清除MAC 地址表 :undo mac-address dynamic

修改老化周期时间,默认 300 s,便于后面实验的查看

查看修改效果 display mac-address aging-time

交换机只在接收数据帧的时候,才会使用所收到的数据帧的源MAC地址来创建相应的地址表项。
PC要ping 一下才有   ,PC 1 PC2之间ping一下

MAC地址表中,只有PC1 PC2 的,没有PC 3的,因为没有数据帧经过PC3
PC1 再去ping 一下PC3  
PC>ping 192.168.1.3

现在的MAC 地址表,才是全的。
查看PC1 的ARP缓存表  arp -a

 ARP缓存中的表项仅存储2分钟。一个ARP缓存表项在2分钟内被用到,则其期限再延长2分钟,直到最大生命期限10分钟为止。

 清空ARP 缓存表 arp -d

=========
动态表项、静态表项和黑洞表项
动态表项是交换自动学习的

静态表项,管理员手工添加
mac-address static 0011-2233-4455 GigabitEthernet 0/0/1 vlan 1

黑洞表项也是用户手工配置,用来过滤掉非法用户
mac-address blackhole 6677-8899-1111

静态和黑洞表项在一起显示,动态表项在下方显示

==========
修改双工模式和速率

默认g0/0/1 接口为自动协商模式 1000M ,全双工, 进行修改,
更改速率与双工必须先关闭自动协商

int g0/0/1
undo negotiation auto
speed 100
duplex half

==========
以太网上使用两种标准帧格式。Ethernet II帧格式,IEEE 802.3格式

不同的Type字段值可以用来区别这两种帧的类型,当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE 802.3格式。当Type字段值大于等于1536 (或者十六进制的0x0600)时,帧使用的是Ethernet II格式。以太网中大多数的数据帧使用的是Ethernet II格式。
在交换机上数据抓包,PC 之间相互 ping 一下,一定是先抓包,再 ping

 

 ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写
类型字段(Type)用于标识数据字段中包含的高层协议,该字段长度为2个字节。
类型字段取值为0x0800的帧代表IP协议帧;
类型字段取值为0x0806的帧代表ARP协议帧。

ARP 是0x0806
IP     是0x0800

 

 


传输介质实践介绍

EIA/TIA的布线标准中规定了两种双绞线的线序568A与568B。

标准568A:绿白-1,绿-2,橙白-3,蓝-4,蓝白-5,橙-6,棕白-7,棕-8
标准568B:橙白-1,橙-2,绿白-3,蓝-4,蓝白-5,绿-6,棕白-7,棕-8

100M 实际只用到 1236 四根线
1000M 实际8根线全部使用

 

两端都是 568B,称为直通线, 一端为568A,另一端为568B,称为交叉线

同种设备相连,用 交叉线 。 异种设备相连,用 直通线

==========

非屏蔽双绞线

制作RJ-45网线插头是组建局域网的基础技能,制作方法并不复杂。究其实质就是把双绞线的4对8芯网线按一定的规则制作到RJ-45插头中。所需材料为双绞线和RJ-45插头,使用的工具为一把专用的网线钳 。以制作最常用的遵循T568B标准的直通线为例,

用双绞线网线钳把双绞线的一端剪齐然后把剪齐的一端插入到网线钳 用于剥线的缺口中。顶住网线钳 后面的挡位以后,稍微握紧网线钳慢慢旋转一圈,让刀口划开双绞线的保护胶皮并剥除外皮

剥除外包皮后会看到双绞线的4对芯线,用户可以看到每对芯线的颜色各不相同。将绞在一起的芯线分开,按照橙白、橙、绿白、蓝、蓝白、绿、棕白、棕的颜色一字排列,并用网线钳 将线的顶端剪齐,按照上述线序排列的每条芯线分别对应RJ-45插头的1、2、3、4、5、6、7、8针脚

 使RJ-45插头的弹簧卡朝下,然后将正确排列的双绞线插入RJ-45插头中。在插的时候一定要将各条芯线都插到底部。由于RJ-45插头是透明的,因此可以观察到每条芯线插入的位置
 

 将插入双绞线的RJ-45插头插入网线钳的压线插槽中,用力压下网线钳的手柄,使RJ-45插头的针脚都能接触到双绞线的芯线

 完成双绞线一端的制作工作后,按照相同的方法制作另一端即可。注意双绞线两端的芯线排列顺序要完全一致

在完成双绞线的制作后,建议使用网线测试仪对网线进行测试。将双绞线的两端分别插入网线测试仪的RJ-45接口,并接通测试仪电源。如果测试仪上的8个绿色指示灯都顺利闪过,说明制作成功。如果其中某个指示灯未闪烁,则说明插头中存在断路或者接触不良的现象。此时应再次对网线两端的RJ-45插头用力压一次并重新测试,如果依然不能通过测试,则只能重新制作

 

在目前的100Mbps带宽的局域网中,双绞线中的8条芯线并没有完全用上,而只有第1、2、3、6线有效,分别起着发送和接受数据的作用

==========
光纤
 
光纤,是光导纤维的简写,是一种利用光在玻璃或塑料制成的纤维中的全反射原理而达成的光传导工具。微细的光纤封装在塑料护套中,使得它能够弯曲而不至于断裂。通常,光纤的一端的发射装置使用发光二极管(light emitting diode,LED)或一束激光将光脉冲传送至光纤,光纤的另一端的接收装置使用光敏元件检测脉冲。在日常生活中,由于光在光导纤维的传导损耗比电在电线传导的损耗低得多,光纤被用作长距离的信息传递。

 

 

 

 

==========
串口电缆

串口叫做串行接口,串行口不同于并行口之处在于它的数据和控制信息是一位接一位地传送出去的。虽然这样速度会慢一些,但传送距离较并行口更长,因此若要进行较长距离的通信时,应使用串行口。

 

载波侦听多路访问/冲突检测技术(Carrier Sense Multiple Access/Collision Detection)
CSMA/CD的基本工作过程如下:

1.终端设备不停地检测共享线路的状态。如果线路空闲,则可以发送数据;如果线路不空闲,则等待一段时间后继续检测(延时时间由退避算法决定)。
2.如果有另外一个设备同时发送数据,两个设备发送的数据会产生冲突。
3.终端设备检测到冲突之后,马上停止发送自己的数据,并发送特殊阻塞信息,以强化冲突信号,使线路上其他站点能够尽早检测到冲突。
4.终端设备检测到冲突后,等待一段时间之后再进行数据发送(延时时间由退避算法决定)。

CSMA/CD的工作原理可简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发。


环路

二层、三层网络的环路有什么特点和区别?

追问1:ttl的英文是什么?最大值是多少?为什么是255,而不是300?
追问2:导致二层环路的原因?导致三层环路的原因?
追问3:二层网络对广播帧、未知单播帧的处理方式?三层网络对无路由的数据包的处理方式?
追问4:二层环路导致什么后果?链路带宽占满、网络拥塞、mac表项翻动、设备性能受影响

网络环路也分为第二层环路和第三层环路,所有环路的形成都是由于目的路径不明确导致混乱而造成的,例如第二层,一个广播信息经过两个交换机的时候会不断恶性循环的产生广播,造成环路,而第三层环路则是原路由意外不能工作,造成路由通告错误,形成一个恶性循环

STP 协议是一个二层的链路管理协议,它在提供链路冗余的同时防止网络产生环路.
IP 网络中,使用各种路由协议来传递路由信息。每种路由协议都有自己的防止环路的方法。
二层网络如果不启用 STP,在出现冗余路径的时候会导致环路.

IP 报文中有 TTL 字段,当 IP 网络出现环路的时候,数据包每经过一台路由器,它的 TTL 值就会减 1.当 TTL 为 0 的时候,这个数据包就会被丢弃。数据帧中没有类似 TTL 的字段, 如果二层网络出现环路,数据帧会一直在网络中转发. 三层使用ttl能loop preventation, 但ethernet 帧上没有像ttl字域的放环机制。而且交换机处理数据帧方法决定洪泛相对比较多(交换机未知单播,组播,广播,都是洪泛,路由器默认组播,广播,都无法跨跳,目标地址未知的单播丢弃),更容易造成数据包环路和广播风暴.  
 


IP 数据报头部

 

版本:
占 4 位,指 IP 协议的版本目前的 IP 协议版本号为 4 (即 IPv4)

首部长度:
占4位,可表示的最大数值是15个单位(一个单位为 4 字节)因此IP 的首部长度的最大值是 60 字节

区分服务:
占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过.1998 年这个字段改名为区分服务.只有在使用区分服务(DiffServ)时,这个字段才起作用.一般的情况下都不使用这个字段

总长度:
占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节.总长度必须不超过最大传送单元 MTU

标识:

占16位,它是一个计数器,用来产生数据报的标识

标志(flag):
占3位,目前只有前两位有意义
MF
标志字段的最低位是 MF (More Fragment)
MF=1 表示后面“还有分片”。MF=0 表示最后一个分片

DF
标志字段中间的一位是 DF (Don't Fragment)
只有当 DF=0 时才允许分片

片偏移:
占12位,指较长的分组在分片后某片在原分组中的相对位置.片偏移以 8 个字节为偏移单位

生存时间:
占8位,记为TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值,TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64.发送 ICMP 回显应答时经常把 TTL 设为最大值 255

协议:
占8位,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程, 1表示为 ICMP 协议, 2表示为 IGMP 协议, 6表示为 TCP 协议, 17表示为 UDP 协议


首部检验和:
占16位,只检验数据报的首部不检验数据部分.这里不采用 CRC 检验码而采用简单的计算方法

源地址和目的地址:
都各占 4 字节,分别记录源地址和目的地址

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你可知这世上再难遇我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值