一.IP数据包格式
版本号(4bit〉:指IP协议版本。并且通信双方使用的版本必须一致,目前我们使用的是IPv4,表示为0100 首部长度(4dit):IP数据包的包长度 优先级与服务类型(8dit):该字段用于表示数据包的优先级与服务类型。通过在数据包中划分一定的优先级,用于实现 Qos(服务质量)的要求。 总长度(16dit):IP数据包长度,最长为65535字节,包括包头和数据。 标识符(16dit):该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包 标志(3dit):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出。 段偏移量(13dit):在一个分片序列中如何将各分片连接起来,按什么顺序连接起来。 TTL生命周期(8dit)﹔可以防止一个数据包在网络中无限循环的转发下去,每经过一个路由器-1,当TTL的值为0时,该数据包将被丢弃 协议号(8dit):封装的上层哪个协议,ICMP:1 TCP:6 UDP:17 首部校验和(16dit):这个字段只检验数据报的首部,不包括数据部分。这是因为数据报没经过一次路由器,都要重新计算一下首部校验和(因为,一些字段如生存时间、标志、片偏移等可能发生变化) 源地址(32dit):源ip地址,表示发送端的IP地址 目标地址(32dit):目标ip地址,表示接收端的IP地址 可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。 在可选项之后,就是上层数据 数据:用户输入的数据?
二.ICMP协议介绍
1.ICMP协议的封装过程
2.ping命令的基本格式
c: \>ping [-t][-1字节数][-a][-i]IP_Address| target_name
3.ping命令的返回信息
错误
?
正确?
?
4.ping命令的用法
ping命令的用法:结合具体在什么场景使用什么选项 -t在Windows 操作系统中,默认情况下发送4个 ping 包,如果在 ping 命令后面加上参数"-t",系统将会一直不停地ping 下去 -a显示主机名 -l一般情况下,ping 包的大小为 32字节,有时为了检测大数据包的通过情况,可以使用参数改变 ping 包的大小 #在linux系统下为-s -n指定发送包的个数 -s指定源IP去ping
tracert命令: 在命令行中输入"tracert “并在后面加入一个IP地址,可以查询从本机到该IP地址所在的电脑要经过的路由器及其IP地址
三.ARP协议介绍
1.什么是ARP协议
ARP协议是地址解析协议(Address Resolution Protocol)是通过解析1地址得到NAc地址的,是一个在网络协议包中极其重要的网络传输协议,它与网卡有着极其密切的关系,在TCP/I1P分层结构中,把ARP划分为网络层为什么呢,因为在网络层看来,源主机与目标主机是通过ITP地址进行识别的,而所有的数据传输又依赖网卡底层硬件,即链路层,那么就需要将这些P地址转换为链路层可以识别的东西,在所有的链路中都有着自 己的一套寻址机制,如在以太网中使用Mac地址进行寻址,以标识不同的主机,那么就需要有一个协议将TP地址转换为AC地址,由此就出现了ARP协议,所有ARP协议在网络层被应用,它是网络层与链路层连接的重要枢纽,每当有一个数据要发送的时候都需要在通过ARP协议将TP地址转换成MAc地址,在I?层及其以上的层次看来,他们只标识IP地址,从不跟硬件打交道
2.ARP协议如何工作的
为了实现IP地址与MAc地址的查询与转换,ARP协议引入了ARP缓存表的概念,每台主机或路由器在维护着一个ARP缓存表(ARPtable),这个表包含TP地址到ac地址的映射关系,表中记录了<地址,uac地址>对,我称之为ARP表项,如我们前面那张图所展示的一样,他们是主机最近运行时获得关于共他主机的TP地址到NBC地址的映射,当需要发送数据的时候,主机就会根据数据报中的目标TQ地址信总,然后在ARP缓存表中进行查找对应的NAc地址,最后通过网卡将数据发送出去。ARP缓存表包含一个寿命值,它将记录每个ARP表项的生存时间,生存时间到了就会从缓存表中别除。从一个表项放置到ARP缓存表中开始,一个表项通常的生存时间一般是10分钟吗,当然,这些生存时间是可以任意设置的,我们一般使用默认即可。
3.ARP工作原理:
1. PC1想发送数据给PC2,会先检查自己的ARP缓存表。 2.如果发现要查找的MAc地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAc地址。 ARP请求消息中包括PCI的IP地址和MAc地址以及PC2的IP地址和目的MAc地址(此时为广播MaAc地址FE-FF-FE-FF-FF-EE)。 3.交换机收到广播后做泛洪处理,除Pc1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答, 并在自己的ARP表中缓存PC1的IP地址和MAc地址的对应关系,而其他主机则丢弃这个ARP请求消息。 4.PCl在自己的ARP表中添加eC2的IP地址和MAC地址的对应关系,以单播方式与PC2通信。
4.APR代码
windows当中如何查看arp缓存表(静态arp和动态arp) arp -a ##善查看arp缓存表 arp -d [IP] ###删除arp缓存表 arp -s IP MAC ###删除arp静态绑定 如提示ARP项添加失败,解决方案: a、用管理员模式:电脑左下角"开始"按钮右键,点击""indows Powershell 〈管理员)(A) "或者进入c盘windows \system32文件夹找到cmd.exe,右键"以管理员身份运行"再执行arp -s命令: 绑定arp (win10) cmd中输入 netsh -c i i show in查看网络连接准确名称,如:本地连接、无线网络连接 netsh -c "i i" add neighbors 19 "IP"“Mac",这里19是idx号。//绑定 netsh -c "i i" delete neighbors 19,这里19是idx号。//解绑 netsh interface ipv4 set neighbors<接口序号><IP><MAC> 动态A表项老化。在一段时间内(默认180s)如果表项中的A.#映射关系始终没有使用,则会被删除。通过及时删除不活跃表项,从而提升ARP响应效率
华为系统中的ARP命令 [Huawei]dis mac- address ###查看mac地址信息 [Huawei]arp static <IP><NAC> ###绑定ARP [Huawei] undo arp static <IP><MAC> ####解绑定 <Huawei>reset arp all ##清除mac地址表 ?
|