CRC检验与ARP脚本

CRC(Cyclic Redundancy Cheek)循环冗余检验是目前在数据链路层广泛使用的检错技术
Mac帧形式
这里写图片描述
目前FCS多采用CRC
CRC原理
在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设要发送的信息用多项式C(X)表示,将C(x)左移R位(可表示成C(x)*2R),这样C(x)的右边就会空出R位,这就是校验码的位置。用 C(x)*2R 除以生成多项式G(x)得到的余数就是校验码。
校验码是由模二运算得到的
这里写图片描述
任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111

ARP数据报形式
这里写图片描述

第一次ARP请求是以太网目的地址为0xFFFFFFFFFFFF为广播路由所在以太网上所以主机都应答,Mac层根据第三个字段帧类型判断将数据交个上层的具体协议其中0x0800代表IP协议0x0806代表ARP协议0x0835代表RARP协议。其实后面的28字节才是真正ARP协议内容,前14个字节为Mac帧的首部。ARP协议的个字段代表的含义顾名思义其中OP代表是ARP请求还是ARP应答其中1代表ARP请求2代表ARP应答

Linux中用ping指令来测试网络的连通行
比如测试主机是否能连接到www.baidu.com
ping -c1 www.baidu.com
其中-c1选项是执行一次不然主机不停的执行ping指令
这里写图片描述

执行这个脚本检测当前主机所连接的路由器上连接的其他主机并且获得其Mac地址

#/bin/bash

i=1
count=0

while [ $i -le 254 ]
do  
     if [$count -gt  20 ];then
         count=0
         sleep 2
     fi  
     ping -c1 "192.168.58.$i" &
     let i++
     let count++
done

执行玩这个脚本后使用arp -a指令显示当前路由缓存的各个主机的Mac地址
这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值