网络通信技术

(3) 2024-05-01 11:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说网络通信技术,希望能够帮助你!!!。

网络通信技术

  • 1. 基本概念
    • 1.1 接口
    • 1.2 表项查询方法
      • 1.2.1 内容寻址存储器
      • 1.2.2 三态内容寻址存储器
      • 1.2.3 哈希查找
    • 1.3 MAC地址
      • 1.3.1 概念
      • 1.3.2 MAC地址大全
        • 1.3.2.1 保留的MAC地址
        • 1.3.2.2 设备厂商MAC地址查询
    • 1.x学习之路
  • 2. 以太网技术
    • 2.1 二层协议
      • 2.1.1 STP/RSTP/MSTP
      • 2.1.2 ERPS
      • 2.1.3 LLDP
      • 2.1.4 GVRP/GMRP
      • 2.1.5 LACP
      • 2.1.6 CFD
      • 2.1.7 BFD
      • 2.1.8 NQA
      • 2.1.9 H3C track
      • 2.1.10 MPLS
    • 2.2 以太网OAM
      • 2.2.1 链路级以太网OAM
      • 2.2.2 网络级以太网OAM
    • 2.3 二层报文帧格式
      • 2.3.1 以太网帧格式
      • 2.3.2 802.3 MAC帧格式
  • 3.IP技术
    • 3.1 VRRP
    • 3.2 IGMP
    • 3.3 MLD
    • 3.4 PIM
    • 3.5 RIP路由
    • 3.6 OSPF路由
    • 3.7 BGP路由
  • 4. 无线技术
    • 4.1 WiFi
      • 4.1.1 帧
      • 4.1.2 WiFi 漫游
      • 4.1.3 WiFi Linux 工具
        • 4.1.3.1 wireless-tools
        • 4.1.3.2 wpa-supplicant
      • 4.1.4 WiFi标准
        • 4.1.4.1 最新WiFi标准划分
    • 4.2 Bluetooth
    • 4.3 Zigbee
  • 5. 无线通信技术
    • 5.1 GSM
    • 5.2 CDMA
    • 5.3 TDMA
    • 5.4 LTE
    • 5.5 5G
  • 6.网络安全
    • 6.1 802.1X
    • 6.2 MACsec
    • 6.3 IPsec
  • 7. 光模块
    • 7.1 基本原理
  • 8. 网络分析工具
    • 8.1 wireshark
      • 8.1.1 基于端口的协议转义解析

1. 基本概念

1.1 接口

1.2 表项查询方法

1.2.1 内容寻址存储器

内容寻址存储器(Content Addressable Memory)CAM,是在传统的存储技术的基础上实现的联想记忆存储器,主要有读、写、查询操作。
读操作:输入地址,返回该地址上的数据,读取速度与RAM相同;
写操作:输入地址和数据,将数据写到指定的地址上,写入速度与RAM相同;
查询操作:输入待查数据,返回该数据被存储的地址。它能够从巨大的数据库中进行快速查找,并且返回最佳的匹配地址。

1.2.2 三态内容寻址存储器

三态内容寻址存储器(Ternary Content Addressable Memory)TCAM,是在CAM的基本上引深而来的。一般的CAM存储器中每个bit位的状态只有两个,“0”或“1”,而TCAM中每个bit位有三种状态,除“0”和“1”外,还有一个“don’t care”状态,称为“三态”。它是通过掩码来实现的,正是TCAM的这个第三种状态特征使其既能进行精确匹配查找,又能进行模糊匹配查找,而CAM没有第三种状态,所以只能进行精确匹配查找。
典型应用有:
ATM Switching设备中的VCI/VPI转发和ATM-to-MPLS 等地址映射表项的存储和查找;
Ethernet Switching设备中的二层MAC地址、ARP/RARP解析和三层IP路由表项的存储和查找;

原来的MAC table查找都是使用哈希(Hash)查找法,虽然哈希表查找法相对来说比较快,但还是满足不了高速实时通信系统(如40G/100G POS)的极速查找需求。
基于硬件的TCAM查找法查找时,整个表项空间的所有数据在同一时刻被查询,查找速度不受表项空间数据大小影响,每个时钟周期完成一次查找,平均查找速度是基于SRAM算法查找的几倍几十倍。

1.2.3 哈希查找

哈希表(Hash table)是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。通过某种转换关系,使关键字适度的分散到指定大小的的顺序结构中,越分散,则以后查找的时间复杂度越小,空间复杂度越高。
示例 MAC table 查找
以下代码使用mac[5]作为关键值进行存储,所以pclHashTbl[256]定义为256,整个Table表的大小为1024。

typedef struct mcl_hash_node_t{
    struct mcl_hash_node_t *next;
    unsigned char rsvd[2];
    unsigned char mac[6];
}MCL_HASH_NODE;
#define MAX_CLIENTS (1024)
MCL_HASH_NODE * pclHashTbl[256],*pclFreeNodeLst=NULL,pclNodesArr[MAX_CLIENTS];^M
static void pclHashInit(void)^M
{^M
        int i;^M
        ^M
        memset(pclHashTbl,0,sizeof(pclHashTbl));^M
        memset(pclNodesArr, 0, sizeof(pclNodesArr));^M
        ^M
        for(i=0;i<MAX_CLIENTS-1;i++)^M
                pclNodesArr[i].next = &pclNodesArr[i+1];^M
        ^M
        pclNodesArr[MAX_CLIENTS-1].next = NULL;^M
        pclFreeNodeLst = &pclNodesArr[0];^M
}^M
^M
static void pclHashAdd(unsigned char *mac)^M
{^M
    unsigned char idx;^M
    MCL_HASH_NODE * pNode;^M
^M
    // search hash^M
    idx = mac[5];^M
    pNode = pclHashTbl[idx];^M
    while(pNode)^M
    {^M
        if(memcmp(mac,pNode->mac,6) == 0) // already added, do nothing^M
            return;^M
        pNode = pNode->next;^M
    }^M
    // get a free node^M
    pNode = pclFreeNodeLst;^M
    if(!pNode)^M
    {^M
        OS_T_W("mclHashAdd: no free node");^M
        return;^M
    }^M
    pclFreeNodeLst = pNode->next;^M
    // add to hash^M
    memcpy(pNode->mac,mac,6);^M
    pNode->next = pclHashTbl[idx];^M
    pclHashTbl[idx] = pNode;^M
}^M

static void pclHashDel(unsigned char *mac)^M
{^M
    unsigned char idx;^M
    MCL_HASH_NODE * pNode, *ptmp;^M
^M
    // search hash^M
    idx = mac[5];^M
    pNode = pclHashTbl[idx];^M
    if(pNode)^M
    {^M
        if (memcmp(mac,pNode->mac,6) == 0) {^M
                // delete from hash^M
                pclHashTbl[idx] = pNode->next;^M
                // return to free list^M
                pNode->next = pclFreeNodeLst;^M
                pclFreeNodeLst = pNode;^M
                return;^M
        }^M
    }else^M
        return;^M
    ^M
    while(pNode->next)^M
    {^M
        if(memcmp(mac,pNode->next->mac,6) == 0) // found^M
        {^M
            // delete from hash^M
            ptmp = pNode->next;^M
            pNode->next = pNode->next->next;^M
            // return to free list^M
            ptmp->next = pclFreeNodeLst;^M
            pclFreeNodeLst = ptmp;^M
            return;^M
        }^M
        pNode = pNode->next;^M
    }^M
}^M

/*^M
mclHashSearch - search MCL hash for specific MAC^M
called by mac_ip_port_learn()^M
return: 0-not found, 1-found^M
*/^M
static int pclHashSearch(unsigned char *mac)^M
{^M
    unsigned char idx;^M
    MCL_HASH_NODE * pNode;^M
^M
    // search hash^M
    idx = mac[5];^M
    pNode = pclHashTbl[idx];^M
    while(pNode)^M
    {^M
        if(memcmp(mac,pNode->mac,6) == 0)^M
            return 1;^M
        pNode = pNode->next;^M
    }^M
    return 0;^M
}^M
^M
void pclHashPrint(void)^M
{^M
        int ix, jx=0;^M
//      unsigned char hashIndex;^M
        MCL_HASH_NODE *pNode;^M
        unsigned char mac[6];^M
^M
        printf("Show PCL tables:\n");^M
        for (ix = 0; ix < 256; ix++)^M
        {^M
                pNode = pclHashTbl[ix];^M
                while(pNode)^M
                {^M
                        memcpy(mac, &(pNode->mac[0]), 6);^M
                        //memcpy(swmac, &(pNode->node.swmac[0]), 6);^M
                        printf("mac[%d]:%02x-%02x-%02x-%02x-%02x-%02x.\n", jx++,^M
                                mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);^M
                        pNode = pNode->next;^M
                }^M
        }^M
^M
        return;^M
}^M

1.3 MAC地址

1.3.1 概念

MAC地址是以太网二层使用的一个48bit(6字节十六进制数)的地址,用来标识设备地址。MAC地址分成两部分,前24位是组织唯一标识符(OUI, Organizationally unique identifier),后24位由厂商自行分配。48bit的MAC地址一般用6字节的十六进制来表示。
MAC地址有单播、组播、广播之分。单播地址(unicast address)表示单一节点设备;多播地址或组播地址(multicast address、group address)表示一组设备节点;广播地址(broadcast address)是组播的特例,表示所有地址,用全F表示:FF-FF-FF-FF-FF-FF。
IEEE 802.3规定:以太网的第48bit(2012-04-11修改为The first bit) 用于表示这个地址是组播地址还是单播地址。如果这一位是0,表示此MAC地址是单播地址,如果这位是1,表示此MAC地址是多播地址。第47bit(2012-04-11修改为The second bit),这一位表示MAC地址是全球唯一地址还是本地地址,0表示全球唯一地址,1表示本地唯一地址。这一位也叫G/L位。
以太网线路上按“Big Endian”字节序传送报文(也就是最高字节先传送,关于字节序请参考相关文档),而比特序是”Little Endian”(也就是最低位先传送)。一个十六进制表示法表示的MAC地址01-80-C2-00-00-00,传送时的bit顺序就是:1000 0000 0000 0001 0100 0011 0000 0000 0000 0000 0000 0000(从左到右开始传输)。

1.3.2 MAC地址大全

1.3.2.1 保留的MAC地址

参考标准:https://standards.ieee.org/products-services/regauth/grpmac/public.html

1.3.2.2 设备厂商MAC地址查询

参考标准:https://cn.ieee.org/mac/

1.x学习之路

参考:https://www.sdnlab.com/19124.html

2. 以太网技术

2.1 二层协议

2.1.1 STP/RSTP/MSTP

参考:https://support.huawei.com/enterprise/zh/doc/EDOC1000141467/709742de

STP(Spanning Tree Protocol)是生成树协议(802.1D),主要用来检查端口间环路状态处理。

RSTP (rapid spanning Tree Protocol) 快速生成树协议(802.1w)。
MSTP (Multiple Spanning Tree Protocol)多生成树协议(802.1s)。

STP端口状态:
网络通信技术_https://bianchenghao6.com/blog__第1张
交换芯片描述:
网络通信技术_https://bianchenghao6.com/blog__第2张
STP端口状态图
网络通信技术_https://bianchenghao6.com/blog__第3张
STP中相关配置参数:

  1. Hello Time
    运行STP协议的设备发送配置消息BPDU的时间间隔,用于设备检测链路是否存在故障。设备每隔Hello Time时间会向周围的设备发送BPDU报文,以确认链路是否存在故障。
    当网络拓扑稳定之后,该计时器的修改只有在根桥修改后才有效。新的根桥会在发出的BPDU报文中填充相应的字段以向其他非根桥传递该计时器修改的信息。但当拓扑变化之后,TCN BPDU的发送不受这个计时器的管理。
  2. Forward Delay
    设备状态迁移的延迟时间。链路故障会引发网络重新进行生成树的计算,生成树的结构将发生相应的变化。不过重新计算得到的新配置消息无法立刻传遍整个网络,如果新选出的根端口和指定端口立刻就开始数据转发的话,可能会造成临时环路。为此,STP采用了一种状态迁移机制,新选出的根端口和指定端口要经过2倍的Forward Delay延时后才能进入转发状态,这个延时保证了新的配置消息传遍整个网络,从而防止了临时环路的产生。
    Forward Delay Timer指一个端口处于Listening和Learning状态的各自持续时间,默认是15秒。即Listening状态持续15秒,随后Learning状态再持续15秒。这两个状态下的端口会处于Blocking状态,这正是STP用于避免临时环路的关键。
  3. Max Age
    端口的BPDU报文老化时间,可在根桥上通过命令人为改动老化时间。
    Max Age通过配置BPDU报文的传输,可保证Max Age在整网中一致。运行STP协议的网络中非根桥设备收到配置BPDU报文后,报文中的Message Age和Max Age会进行比较:
    如果Message Age小于等于Max Age,则该非根桥设备继续转发配置BPDU报文。
    如果Message Age大于Max Age,则该配置BPDU报文将被老化。该非根桥设备直接丢弃该配置BPDU,可认为网络直径过大,导致根桥连接失败。
    如果配置BPDU是根桥发出的,则Message Age为0。否则,Message Age是从根桥发送到当前桥接收到BPDU的总时间,包括传输延时等。实际实现中,配置BPDU报文经过一个桥,Message Age增加1。

STP 报文格式
BPDU报文被封装在以太网数据帧中,目的MAC是组播MAC:01-80-C2-00-00-00,Length字段指后续数据的字节长度,但不包括CRC字节,后面是LLC头,LLC之后是BPDU报文头。
网络通信技术_https://bianchenghao6.com/blog__第4张
BPDU内容Data格式
网络通信技术_https://bianchenghao6.com/blog__第5张
STP网络拓扑结构,可以对比配置参数含义。
网络通信技术_https://bianchenghao6.com/blog__第6张
STP协议的不足之处:

  1. STP算法是被动的算法,依赖定时器等待的方式判断拓扑变化,收敛速度慢;
  2. STP算法要求在稳定的拓扑中,根桥主动发出配置BPDU报文,而其他设备进行处理,传遍整个STP网络;
    RTSP对STP的改进之处:
  3. RSTP的状态规范把原来STP的5种状态缩减为3种:
    Discarding :如果不转发用户流量也不学习MAC地址;
    Learning:如果不转发用户流量但是学习MAC地址;
    Forwarding:如果既转发用户流量又学习MAC地址。
  4. 配置BPDU报文的发送方式改变
    STP根桥按照Hello Timer规定的时间间隔发送配置BPDU。其他非根桥设备在收到上游设备发送过来的配置BPDU后,才会触发发出配置BPDU。
    RSTP对此进行了改进,即在拓扑稳定后,无论非根桥设备是否接收到根桥传来的配置BPDU报文,非根桥设备仍然按照Hello Timer规定的时间间隔发送配置BPDU,该行为完全由每台设备自主进行。
  5. 更短的BPDU超时计时
    如果一个端口在超时时间(超时时间=Hello Time × 3 × Timer Factor)内没有收到上游设备发送过来的配置BPDU,那么该设备认为与此邻居之间的协商失败。而不像STP那样需要先等待一个Max Age。
    当一个端口收到上游的指定桥发来的RST BPDU报文时,该端口会将自身存储的RST BPDU与收到的RST BPDU进行比较。
    如果该端口存储的RST BPDU的优先级高于收到的RST BPDU,那么该端口会直接丢弃收到的RST BPDU,立即回应自身存储的RST BPDU。当上游设备收到下游设备回应的RST BPDU后,上游设备会根据收到的RST BPDU报文中相应的字段立即更新自己存储的RST BPDU。
    由此,RSTP处理次等BPDU报文不再依赖于任何定时器通过超时解决拓扑收敛,从而加快了拓扑收敛

2.1.2 ERPS

参考:https://support.huawei.com/enterprise/zh/doc/EDOC1000141531/30705e2
http://www.h3c.com/cn/d_201906/1201412_30005_0.htm#_Toc11406059

ERPS(Ethernet Ring Protection Switching),即以太网多环保护技术,是ITU-T定义的一种二层破环协议标准,标准号为ITU-T G.8032/Y1344,因此又称为G.8032。它定义了RAPS(Ring Auto Protection Switching)协议报文和保护倒换机制。它以ERPS环为基本单位,包含若干个节点,通过阻塞RPL(Ring Protection Link) Owner端口,并控制其他普通端口,使得端口的状态在Forwarding和Discarding之间切换,达到消除环路的目的。同时我们利用控制VLAN、数据VLAN和保护实例等机制,以更好地实现ERPS的功能。

概念:
1.端口行为:
RPL owner端口:一个ERPS环只有一个RPL owner端口,由用户配置决定,通过阻塞RPL owner端口转发用户流量来防止ERPS环中产生环路。
RPL neighbour端口:指的是与RPL owner端口直接相连的端口。
普通端口:除RPL owner端口和RPL neighbour端口以外的端口都是普通端口。
2.端口状态:
Forwarding:在Forwarding状态下,端口既转发用户流量又接收/发送ERPS协议报文。
Discarding:在Discarding状态下,端口仅能发送和接收ERPS协议报文。
3.控制VLAN:
在ERPS环中,控制VLAN用来传递ERPS协议报文。
每个ERPS环必须配置控制VLAN。当端口加入已经配置控制VLAN的ERPS环后,端口将自动加入控制VLAN。不同ERPS环不能使用相同ID的控制VLAN。
4.数据VLAN:
与控制VLAN相对,数据VLAN用来传递数据报文。每个ERPS实例都有自己的数据VLAN,数据VLAN通过配置生成树实例来实现。
通过在同一个环网上配置多个ERPS实例,不同ERPS实例发送不同VLAN的流量,实现不同VLAN的数据流量在该环网中的拓扑不同,从而达到负载分担的目的。
5.保护实例:
对于运行ERPS协议的二层设备,传递ERPS协议报文和数据报文的VLAN必须映射到保护实例中,这样ERPS协议才会按照其阻塞原则对这些报文进行转发或阻塞。否则,VLAN报文可能会在成环的网络中产生广播风暴导致网络不可用。
6.报文类型
网络通信技术_https://bianchenghao6.com/blog__第7张

7.定时器:
Guard Timer (故障恢复后清除操作定时器)
链路故障或节点故障所涉及到的设备在故障恢复或执行清除操作后,向其他设备发送NR RAPS报文,并同时启动Guard Timer定时器,在该定时器超时前不处理NR RAPS报文,目的是防止收到过期的NR RAPS报文。如果定时器超时后还能收到其他端口发送的NR RAPS报文,则本端口的转发状态变为Forwarding状态。

WTR Timer (Wait to Restore)
RPL owner端口由于其他设备或链路故障而被放开后,当故障恢复时,有的端口可能还未由Down状态变为Up状态。为了防止立即阻塞RPL owner端口而引起网络震荡,当RPL owner端口收到某端口的NR RAPS报文后,会启动WTR Timer定时器。如果在定时器未超时前收到其他端口的SF RAPS报文,则关闭WTR Timer定时器。如果在WTR Timer定时器超时前始终没有收到其他端口的SF RAPS报文,则当WTR Timer定时器超时后,阻塞RPL owner端口,发送NRRB RAPS报文。其他端口在收到该报文后,再将自己端口的转发状态设置为Forwarding状态。

Holdoff Timer (故障自恢复判别时间)
对于运行ERPS的二层网络,保护倒换的顺序可能会有不同的要求,例如:多层业务的应用中,服务器出现故障后,用户可能会希望能有一段时间恢复服务器的故障,而客户端感知不到,即不会立即进行保护倒换。可设置合适的Holdoff Timer定时器,当发生故障时,故障并不会立即上报ERPS,而只有当Holdoff Timer定时器超时后,如果故障仍未能恢复才会上报。

WTB Timer (Wait to Block)
当清除端口的手工切换状态(强制切换或手工切换)时,启用WTB Timer定时器,因为ERPS环内可能存在多个手工切换阻塞节点,只有当定时器超时后,清除操作才起作用,这样可以防止立即阻塞RPL owner端口而引起阻塞点震荡。
WTB Timer定时器不支持配置,该定时器的值为Guard Timer定时器的值加5s,缺省值为7s。

8.ERPS协议状态
Init状态:环端口不完整时(非互联节点的端口数量小于2或互联节点的端口数量小于1),处于Init状态。
Idle状态:环初始化过后进入到稳定状态,当Owner节点进入Idle状态后,其它节点随之进入Idle状态。其中,Owner节点和Neighbor节点的RPL端口为阻塞状态,即RPL不通;Owner节点定时发送(NR, RB)报文。
Protection状态:当环网某段链路出现故障,环路经过保护倒换,最终稳定到的状态。Owner节点和Neighbor节点的RPL端口放开,即RPL放开,保证整个环网仍然是通的。当链路中某个节点进入Protection状态后,其它节点随之进入Protection状态。
MS状态:MS状态下可以手动倒换流量转发路径。当对链路中某个节点进行MS操作后,其它节点随之进入MS状态。
FS状态:FS状态下可以强制倒换流量转发路径。当对链路中某个节点进行FS操作后,其它节点随之进入FS状态。
Pending状态:Pending状态是一个不稳定的状态,是各状态在进行跳转时的一个过渡状态。
环路正常时,处于Idle状态;链路发生故障后,处于Proctection状态。

OAM报文格式
网络通信技术_https://bianchenghao6.com/blog__第8张

ERPS协议报文格式
ERPS协议的报文只有一种,即RAPS PDU报文,RAPS PDU报文包含ERPS环信息,在ERPS环上传递以实现各设备端口信息的互通。是一种封装在Ethernet OAM消息。
网络通信技术_https://bianchenghao6.com/blog__第9张
字段解析:
网络通信技术_https://bianchenghao6.com/blog__第10张
ERPSv1版本RAPS Specific Information格式:
网络通信技术_https://bianchenghao6.com/blog__第11张
ERPSv2版本RAPS Specific Information格式:
网络通信技术_https://bianchenghao6.com/blog__第12张
字段解析:
网络通信技术_https://bianchenghao6.com/blog__第13张
ERPS功能原理
ERPS环,就是由一组配置了相同的控制VLAN且互连的二层交换设备构成,是ERPS协议的基本单位。分控制VLAN与数据VLAN。
ERPS支持单环,多环,相交环等。有主环,子环等。
ERPS环网示意图,环网中的阻塞端口(红色点)为RPL owner端口,对应的直连端口(紫色点)为RPL neighbour。
网络通信技术_https://bianchenghao6.com/blog__第14张

主环与子环网络拓扑图:
ERPS环分为主环和子环。缺省情况下,ERPS环都是主环。主环是封闭的环,子环是非封闭的环,需要通过命令进行配置。
ABDC为主环,CEFD为子环。
网络通信技术_https://bianchenghao6.com/blog__第15张
虚拟通道与非虚拟通道相交环拓扑图
网络通信技术_https://bianchenghao6.com/blog__第16张
双主环被子环相交拓扑图
网络通信技术_https://bianchenghao6.com/blog__第17张
ERPS单环原理

ERPS多环原理

2.1.3 LLDP

参考:https://blog.csdn.net/gulansheng/article/details/46619401
LLDP(Link Layer Discovery Protocol)是IEEE 802.1ab中定义的链路层发现协议。
LLDP是一种标准的二层发现方式,可以将本端设备的管理地址、设备标识、接口标识等信息组织起来,并发布给自己的邻居设备,邻居设备收到这些信息后将其以标准的管理信息库MIB的形式保存起来,以供网络管理系统查询及判断链路的通信状况。LLDP协议又称为邻居发现协议、邻居链路状态协议。LLDP就是一个信息发现与通告协议,LLDP的实体主要维护了两个MIB库,一个 local system MIB,一个remote system MIB。

帧格式(以太网帧格式)
网络通信技术_https://bianchenghao6.com/blog__第18张
DA:目的 MAC地址,为固定的组播 MAC地址 0x0180-C200-000E
SA:源MAC地址,为端口MAC地址或设备MAC地址
Type:帧类型,为 0x88CC,如果是SNAP(Subnetwork Access Protocol)帧格式,此值为8字节= 0xAAAA-0300-0000-88CC
Data:数据,为 LLDPDU数据报文
FCS:帧检验序列

组播地址处理:
01-80-C2-00-00-0E,也被称为Nearest Bridge组地址:无论是Two-Port MAC Relay (TPMR)组件还是S-VLAN组件还是C-VLAN组件,还是802.1D网桥都不能转发目地为该地址的帧。简单的说任何类型的网桥都不能转发目地为该地址的帧,目地为该地址的帧被限制在连接两个网桥接口的连接上传输。(即不会被广播到下一跳设备上,在此设备上终止)

LLDPDU报文
网络通信技术_https://bianchenghao6.com/blog__第19张
TLV帧格式:注意type是7位,Length是9位。
网络通信技术_https://bianchenghao6.com/blog__第20张

TLV类型描述
网络通信技术_https://bianchenghao6.com/blog__第21张
type0-8属于基本的TLV集合。对于其中的Mandatory的TLV,它是必须包含在LLDP中的。
组织扩展的TLV信息为:
网络通信技术_https://bianchenghao6.com/blog__第22张
具体的TLV描述见协议描述。
工作原理见参考。

2.1.4 GVRP/GMRP

参考:https://support.huawei.com/enterprise/zh/doc/EDOC1000141467/5865a907
GARP(Generic Attribute Registration Protocol)协议主要用于建立一种属性传递扩散的机制,以保证协议实体能够注册和注销该属性。GARP作为一个属性注册协议的载体,可以用来传播属性。将GARP协议报文的内容映射成不同的属性即可支持不同上层协议应用。
GVRP(GARP VLAN Registration Protocol)是GARP的一种应用,用于注册和注销VLAN属性。主要用于维护设备动态VLAN属性。通过GVRP协议,一台设备上的VLAN信息会迅速传播到整个交换网。GVRP实现动态分发、注册和传播VLAN属性,从而达到减少网络管理员的手工配置量及保证VLAN配置正确的目的。
GARP协议通过目的MAC地址区分不同的应用。在IEEE Std 802.1Q中将01-80-C2-00-00-21分配给VLAN应用,即GVRP。

GVRP帧格式
网络通信技术_https://bianchenghao6.com/blog__第23张
网络通信技术_https://bianchenghao6.com/blog__第24张

GMRP(garp multicast registration protocol,garp组播注册协议)是基于garp的一个组播注册协议,用于维护交换机中的组播注册信息。所有支持gmrp的交换机都能够接收来自其他交换机的组播注册信息,并动态更新本地的组播注册信息,同时也能将本地的组播注册信息向其他交换机传播。这种信息交换机制,确保了同一交换网内所有支持gmrp的设备维护的组播信息的一致性。

2.1.5 LACP

参考:https://support.huawei.com/enterprise/zh/doc/EDOC1100086517
LACP(Link Aggregation Control Protocol)链路聚合控制协议,是基于IEEE802.3ad标准的一种实现链路动态聚合与解聚合的协议,以供设备根据自身配置自动形成聚合链路并启动聚合链路收发数据,LACP模式就是采用LACP的一种链路聚合模式。聚合链路形成以后,LACP负责维护链路状态,在聚合条件发生变化时,自动调整链路聚合。

LACP通过链路聚合控制协议数据单元LACPDU(Link Aggregation Control Protocol Data Unit)与对端交互信息,LACPDU报文中包含设备的系统优先级、MAC地址、接口优先级、接口号和操作Key等信息

2.1.6 CFD

参考:http://www.h3c.com/cn/d_201906/1201409_30005_0.htm
CFD(Connectivity Fault Detection,连通错误检测)遵循IEEE 802.1ag的CFM(Connectivity Fault Management,连通错误管理)协议,是一种二层网络中基于VLAN的端到端OAM(Operation, Administration, and Maintenance,操作、管理和维护)机制,主要用于在二层网络中检测链路连通性,以及在故障发生时确认故障并定位。(配合REPS完成链路检测)

2.1.7 BFD

BFD(Bidirectional Forwarding Detection,双向转发检测)

2.1.8 NQA

NQA(Network Quality Analyzer,网络质量分析)

2.1.9 H3C track

参考:http://www.h3c.com/cn/d_201906/1201417_30005_0.htm

2.1.10 MPLS

MPLS(Multiprotocol Label Switching,多协议标签交换),MPLS技术集二层的快速交换和三层的路由转发于一体,可以满足各种新应用对网络的要求。参考RFC 3031(Multiprotocol Label Switching Architecture)。
参考:https://www.h3c.com/cn/d_200805/606207_30003_0.htm#_Toc227661954

数据帧封装格式:
Label:标签,Frame mode:帧模式,Cell mode:信元模式
网络通信技术_https://bianchenghao6.com/blog__第25张
标签是一个长度固定,仅具有本地意义的短标识符,用于唯一标识一个分组所属的FEC。一个标签只能代表一个FEC。
MPLS作为一种分类转发技术,将具有相同转发处理方式的分组归为一类,称为FEC(Forwarding Equivalence Class,转发等价类)。相同FEC的分组在MPLS网络中将获得完全相同的处理。
FEC的划分方式非常灵活,可以是以源地址、目的地址、源端口、目的端口、协议类型或VPN等为划分依据的任意组合。例如,在传统的采用最长匹配算法的IP转发中,到同一个目的地址的所有报文就是一个FEC。
lable格式:
网络通信技术_https://bianchenghao6.com/blog__第26张
标签共有4个域:
Label:标签值字段,长度为20bits,用来标识一个FEC。
Exp:3bits,保留,协议中没有明确规定,通常用作CoS。
S:1bit,MPLS支持多重标签。值为1时表示为最底层标签。
TTL:8bits,和IP分组中的TTL意义相同,可以用来防止环路。

2.2 以太网OAM

2.2.1 链路级以太网OAM

多应用于网络的PE设备-CE设备-用户设备之间(也叫最后一公里)的以太网物理链路,用于监测用户网络与运营商网络之间的链路状态,保证用户网络与运行商网络的可靠性,典型协议为EFM OAM协议。用户通过在两个点到点连接的设备上启用以太网OAM功能,可以监控这两台设备之间的链路状态。Ethernet OAM遵循IEEE 802.3ah协议,如EPON技术。
主要作用:802.3ah的以太网OAM主要是链路方面的监测和维护,是一种偏物理层的OAM,它主要应用在网络的边缘设备上(接入层),且OAMPDU报文只能转发一跳,主要用来监测链路质量、收集链路告警等。

2.2.2 网络级以太网OAM

多应用于网络的接入汇聚层,用于监测整个网络的连通性、定位网络的连通性故障,典型协议为CFD协议。CFM遵循IEEE 802.1ag协议。
参考:https://wenku.baidu.com/view/c4f7d23d0740be1e640e9a33.html
主要作用:802.1ag的以太网OAM是偏网络和应用的OAM,主要用在汇聚层和核心层上,它的OAMPDU报文能够传输多跳。它不仅能够监测链路质量、收集告警,还能够实现电信级快速倒换以及traceroute、ping等功能。

2.3 二层报文帧格式

整体的报文头格式为:
网络通信技术_https://bianchenghao6.com/blog__第27张
DMAC:6字节的目的MAC地址。
SMAC:6字节的源MAC地址。
EtherType:根据不同的参数值代表不同的意思。
Payload:二层报文载荷数据部分。
EtherType类型定义如下:
描述

EtherType值(hex) 含义
0x0000-0x05DC IEEE 802.3 长度
0x0101-0x01FF 实验
0x0800 IP
0x0806 ARP
0x8035 DARP/RARP
0x8100 VLAN
0x8137 IPX
0x86DD IPv6
0x880B PPP
0x8847 MPLS单播
0x8848 MPLS组播
0x8863 PPPoE
0x8864 PPPoE
0x88CC LLDP
0x8E88 EAPOL
0x9000 loopback
0x9100 VLAN
0x9200 VLAN
0xFFFF 保留

2.3.1 以太网帧格式

网络通信技术_https://bianchenghao6.com/blog__第28张

2.3.2 802.3 MAC帧格式

网络通信技术_https://bianchenghao6.com/blog__第29张

3.IP技术

3.1 VRRP

3.2 IGMP

3.3 MLD

3.4 PIM

PIM是Protocol Independent Multicast(协议无关组播)的简称,表示可以利用静态路由或者任意单播路由协议(包括RIP、OSPF、IS-IS、BGP等)所生成的单播路由表为IP组播提供路由。
组播路由与所采用的单播路由协议无关,只要能够通过单播路由协议产生相应的组播路由表项即可。PIM借助RPF(Reverse Path Forwarding,逆向路径转发)机制实现对组播报文的转发。当组播报文到达本地设备时,首先对其进行RPF检查:若RPF检查通过,则创建相应的组播路由表项,从而进行组播报文的转发;若RPF检查失败,则丢弃该报文。
原文链接:https://blog.csdn.net/daydring/article/details/23454469

根据实现机制的不同,PIM分为以下两种模式:
PIM-DM(Protocol Independent Multicast-Dense Mode,协议无关组播—密集模式)。
PIM-SM(Protocol Independent Multicast-Sparse Mode,协议无关组播—稀疏模式)。

3.5 RIP路由

3.6 OSPF路由

3.7 BGP路由

4. 无线技术

4.1 WiFi

参考:https://www.cnblogs.com/diligenceday/p/7070821.html
PPT参考:https://max.book118.com/html/2018/0216/153461405.shtm

4.1.1 帧

1.帧分类:
管理帧(Management Frame):例如Beacon帧、Association帧)。
控制帧(Control Frame):例如RTS(请求发送)帧、CTS(允许发送)帧、ACK帧)。
数据帧(Data Frame):承载数据的载体,其中的DS字段用来标识方向很重要)。

4.1.2 WiFi 漫游

参考:https://blog.csdn.net/crazyman2010/article/details/50472179

4.1.3 WiFi Linux 工具

参考:https://www.cnblogs.com/tkid/p/3998721.html
https://blog.csdn.net/zm19930923zm/article/details/88743533
wireless-tools,wpa-supplicant工具下载路径:http://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireless_tools.html

4.1.3.1 wireless-tools
4.1.3.2 wpa-supplicant

4.1.4 WiFi标准

802委员会下第11组负责开发无线局域网标准
IEEE 802.1 1 The Original WLAN Standard- 1 Mbit/s and 2 Mbit/w,2.4GHz RF andIR
IEEE 802.11 a 54 Mbit/s,5 GHz
IEEE 802.11 b 802.11 Enhancements to Support 5.5 Mbit/s and 11 Mbit/s
IEEE 802.11 c Bridge Operation Procedure
IEEE 802.11 d International (Country to Country) Roaming Extensions
IEEE 802.11 e Quality of Service (Qos),Including Packet Bursting
IEEE 802.11 F Inter -Access Point Protocol
IEEE 802.11 g 54 Mbit/s,2.4 GHz
IEEE 802.11 h Spectrum Managed 802.11 a (5 GHz) for European Compatibility
IEEE 802.11 i Enhanced Security
IEEE 802.11 j Extensions for Japan
IEEE 802.11 k Radio Resource Measurement Enhancements
IEEE 802.11 n Higher Throughput Using Multiple Input,Multiple Ouput(MIMO) Antennas
IEEE 802.11 p Wireless Access for the Vehicular Environment (WAVE)
IEEE 802.11 r Fast BSS Transition (FT)
IEEE 802.11 s Mesh Networking,Extended Service Set (ESS)
IEEE 802.11 T Wireless Performance Prediction (WPP)
IEEE 802.11 u Internetworking with Non -802 Networks (i.e.:Cellular)
IEEE 802.11 v wrieless Network Management
IEEE 802.11 w Protected Management Frames
IEEE 802.11 y 3650 - 3700 MHz Operation in the US
IEEE 802.11 z Direct Link Setup (DLS) Extensions
IEEE 802.11 zm Maintenance of the Standard
IEEE 802.11 aa Robust Streatming of Audio Video Transport Streams
IEEE 802.11 ac Very High Troughput < 6 GHz
IEEE 802.11 ad Very High Troughput, 60 GHz
IEEE 802.11 ae Qos Management
IEEE 802.11 af TV Whitespace
IEEE 802.11 ah SUb 1 GHz
IEEE 802.11 ai Fast Initial Link Setip
IEEE 802.11 ax

4.1.4.1 最新WiFi标准划分

WiFi 1 IEEE 802.11b
WiFi 2 IEEE 802.11a
WiFi 3 IEEE 802.11g
WiFi 4 IEEE 802.11n
WiFi 5 IEEE 802.11ac
WiFi 6 IEEE 802.11ax
WiFi 7 IEEE 802.11be

4.2 Bluetooth

4.3 Zigbee

参考:https://blog.csdn.net/weixin_41890971/article/details/88614696

5. 无线通信技术

5.1 GSM

5.2 CDMA

5.3 TDMA

5.4 LTE

5.5 5G

6.网络安全

6.1 802.1X

参考:http://www.h3c.com/cn/d_201309/922103_30005_0.htm
802.1x协议作为局域网端口的一个普通接入控制机制应用于以太网中,主要解决以太网内认证和安全方面的问题。
802.1x协议是一种基于端口的网络接入控制(Port Based Network Access Control)协议。“基于端口的网络接入控制”是指在局域网接入设备的端口这一级对所接入的设备进行认证和控制。连接在端口上的用户设备如果能通过认证,就可以访问局域网中的资源;如果不能通过认证,则无法访问局域网中的资源。

使用802.1x的系统为典型的Client/Server体系结构,包括三个实体,如图1-1所示分别为:Supplicant System(客户端)、Authenticator System(设备端)以及Authentication Server System(认证服务器)。
网络通信技术_https://bianchenghao6.com/blog__第30张
客户端是位于局域网段一端的一个实体,由该链路另一端的设备端对其进行认证。客户端一般为用户终端设备,用户通过启动客户端软件发起802.1x认证。客户端软件必须支持EAPOL(Extensible Authentication Protocol over LAN,局域网上的可扩展认证协议)协议。

设备端是位于局域网段一端的另一个实体,用于对所连接的客户端进行认证。设备端通常为支持802.1x协议的网络设备,它为客户端提供接入局域网的端口,该端口可以是物理端口,也可以是逻辑端口。

认证服务器是为设备端提供认证服务的实体。认证服务器用于实现用户的认证、授权和计费,通常为RADIUS服务器。该服务器可以存储用户的相关信息,例如用户的账号、密码以及用户所属的VLAN、优先级、用户的访问控制列表等。

EAPOL帧格式:
网络通信技术_https://bianchenghao6.com/blog__第31张
EAP报文格式

6.2 MACsec

6.3 IPsec

7. 光模块

7.1 基本原理

光收发一体模块由光电子器件、功能电路和光接口等组成,光电子器件包括发射和接收两部分。
发射部分是:输入一定码率的电信号经内部的驱动芯片处理后驱动半导体激光器(LD)或发光二极管 (LED)发射出相应速率的调制光信号,其内部带有光功率自动控制电路,使输出的光信号功率保持稳定。
接收部分是:一定码率的光信号输入模块后由光探测二极管转换为电信号。经前置放大器后输出相应码率的电信号,输出的信号一般为PECL电平。同时在输入光功率小于一定值后会输出一个告警信号。

参数:

  1. 波长:单位,纳米nm
    850nm
    1310nm
    1490nm
    1550nm

  2. 传输速率
    155Mbps
    1.25Gbps
    2.5Gbps
    10Gbps
    40Gbps

  3. 传输距离
    500M
    20KM
    40KM
    80KM
    120KM

  4. 发射功率和接收灵敏度
    发射光功率指光模块发送端光源的输出光功率,接收灵敏度指在一定速率、误码率情况下光模块的最小接收光功率。这两个参数的单位都是dBm(意为分贝毫瓦,功率单位mw的对数形式,计算公式为10lg,1mw折算为0dBm),主要用来界定产品的传输距离,不同波长、传输速率和传输距离的光模块光发射功率和接收灵敏度都会不同,只要能确保传输距离就行。

光纤接口类型:
LC:材质为塑料,用于连接SFP光模块,接口可以卡在光模块上,常用于交换机
SC:材质为塑料,推拉式连接,接口可以卡在光模块上,常用于PON
FC:全名叫Ferrule Connector,最早应用于存储局域网络。外壳材质为金属,接口处有螺纹,和光模块连接时可以固定的很好。
ST:材质为金属,接口处为卡扣式,常用于光纤配线架

封装类型:
1*9封装——焊接型光模块,一般速度不高于千兆,多采用SC接口
SFF封装-——焊接小封装光模块,一般速度不高于千兆,多采用LC接口
GBIC封装——热插拔千兆接口光模块,采用SC接口
SFP封装——热插拔小封装模块,目前最高数率可达4G,多采用LC接口
XENPAK封装——应用在万兆以太网,采用SC接口
XFP封装——10G光模块,可用在万兆以太网,SONET等多种系统,多采用LC接口

生产厂家:元创、绍兴中科

8. 网络分析工具

8.1 wireshark

8.1.1 基于端口的协议转义解析

网络通信中的各种协议都有对应的TCP/UDP知名端口,但是很多时候开发过程中将TCP/UDP的知名端口修改为私有端口,此时wireshark无法通过TCP/UDP端口号来判断协议类型,需要增加协议decode解析来使wireshark分析对应的协议。
示例:MQTT协议的知名端口是1883,目前使用10801端口作为MQTT通讯端口,这样wireshark就无法解析10801端口为MQTT协议,这样需要在wireshark中配置10801端口为MQTT协议端口,使wireshark在解析的时候将10801端口解析为MQTT协议报文格式进行分析。
如下配置:在wireshark->分析()->解码为(Decode as)点击进入,如下增加TCP port = 10801的整数值为MQTT协议即可。

网络通信技术_https://bianchenghao6.com/blog__第32张
完成以上操作后,wireshark自动会将TCP port=10801端口的报文解析成MQTT报文,此时就可以清晰的分析该报文MQTT格式了。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复