“网络技术(广东轻工学院)”实验报告

网络层其它协议

作业: 1.查看ARP缓存,并截图 自己虚拟机Ubuntu上的ARP缓存

image.png

2.使用带选项的 ping 命令记录到github.com途径的路由,并与 traceroute 命令的结果做比较。截图。 (1)带选项的ping命令记录github.com途径的路由 ping -R www.github.com

image.png

实验楼里执行的ping命令,查找不到匹配的内容 (2)用traceroute命令记录github.com途径的路由 traceroute -n www.github.com

image.png

实验楼里用traceroute命令追踪github的路由,显示30条记录,但未追踪到其路由 课堂笔记: 网络层其它协议 网络层的其它协议:ARP、ICMP、IGMP、RARP

image.png

  1. ARP(Address Resolution Protocol)地址解析协议
  2. 1功能:在链路层把帧中数据取出并上交给网络层时,通过主机的IP地址,查询目标主机的MAC地址。
  3. 2 原理:存在ARP缓存表,保存的是近期(20分钟)与自己有过通信的主机IP地址与MAC地址的对应关系。 ARP缓存表使用过程: 首先查询,当主机要发送一个IP数据报时; 发送数据帧,找到对应的MAC地址,将IP数据报封装为数据帧,把MAC地址放在帧首部,并发送; ARP请求数据帧,查询的IP-MAC值不存在,主机就向网络中广播发送一个ARP请求数据帧,请求中包含待查询IP地址; ARP应答数据帧,网络内所有收到ARP请求的主机查询自己的IP地址,符合条件,就回复一个ARP应答数据帧,其中包含自己的MAC地址; ARP缓存,收到ARP应答后,主机将其IP-MAC对应信息存入自己的ARP缓存,再据此封装IP数据报,然后发送数据帧。 命令arp –a查看ARP缓存表(表项记录20分钟超时) 命令 描述

-a 显示ARP高速缓存中的所以内容 -d 从ARP缓冲区中删除指定主机的ARP条目 -s 设置指定的主机的IP地址与MAC地址的静态映射 -v 显示详细的arp缓冲区条目,包括缓冲区条目的统计信息 1.3 ARP代理 代理ARP:ARP请求是从一个网络上的主机发往另一个网络上的主机,连接这两个网络的路由器就可以回答该ARP请求。 1.4 ARP欺骗 IP-MAC的对应信息很容易被伪造,可以伪造ARP应答数据帧而欺骗ARP请求者,从而达到截获数据的目的。 2. RARP(Reverse Address Resolution Protocol)逆向地址解析协议 与ARP是相反关系,用于将MAC地址转换为IP地址,对应于ARP,RARP请求以广播方式传送,而RARP应答一般是单播传送的。 无盘机等设备,在启动时可能不知道自己的IP地址,可以将自己的MAC地址使用RARP请求广播出去,RARP服务器就会响应并回复无盘机的IP地址。 3. ICMP(Internet Control Message Protocol)控制报文协议 通信过程中发生各种问题时,ICMP将问题反馈,通过这些信息,管理者可以对所发生的问题作出诊断,然后采取适当的措施去解决它。 ICMP报文由8位错误类型、8位条件代码和16位校验和组成,被封装在一个IP数据报中:

image.png

报文的类型字段:大约有10多种,每种数据类型都被封装在一个IP数据包中。 主要类型: 响应请求 目标不可到达、源抑制和超时报文 时间戳 全部消息类型:

image.png

出现差错而不产生ICMP报文的情况: ICMP差错报文 目的地址是广播或多播地址 作为链路层广播的数据报 不是IP分片的第一片 源地址不是单个主机的数据报(源不能为零地址、环回地址、广播多播地址) 4. ping程序 ping程序和traceroute程序是两个常见的基于ICMP协议的工具。 4.1 简介: 是对两台主机之间连通性进行测试的基本工具,只是利用ICMP回显请求和回显应答报文,而不用经过传输层(TCP/UDP)。 通过在ICMP报文数据中存放发送请求的时间值来计算往返时间,当应答返回时,用当前时间减去存放在ICMP报文中的时间值,即往返时间。 使用方法为ping IP 地址,ping命令还可以加上参数,实现更多的功能: -n :只输出数值 -q :不显示任何传送封包的信息,只显示最后的结果 -r :忽略普通的Routing Table,直接将数据包送到远端主机上,通常是查看本机的网络接口是否有问题 -R :记录路由过程 -v :详细显示指令的执行过程 -c数目 :在发送指定数目的包后停止 -i秒数 :设定间隔几秒传送一个网络封包给一台机器,预设值是一秒送一次 -t存活数值 :设置存活数值TTL的大小 使用ping向mirrors.cloud.aliyuncs.com发送3个数据包: -c 3 mirrors.cloud.aliyuncs.com 使用tcpdump命令查看ping命令包结构: sudo tcpdump –nnvXSs 0 –c2 icmp ping –c1 mirrors.cloud.aliyuncs.com

image.png

第一个数据报:ICMP回显请求报文,主机192.168.42.4发送给100.100.2.148 第二个数据报:ICMP回显应答报文,100.100.2.148发送给主机192.168.42.4 4.2 TTL值 Time To Live,该字段指定IP包被路由器丢弃之前允许之前允许通过的最大网段数量。 是IPv4包头的一个8bit字段,作用是限制IP数据包在计算机网络中的存在时间,即IP数据包在计算机网络中可以转发的最大条数。 没有TTL字段,网络中的IP包将造成网络阻塞,TTL避免IP包在网络中的无限循环和收发,节省了网络资源,并能使IP包的发送者能收到告警消息。 4.3 ping命令判断操作系统 ping 命令会返回一个TTL值,可以使用它来判断目标的操作系统类型。 常见操作系统缺省TTL值: UNIX TTL :255 Linux TTL :64 WINDOWS 95/98 TTL :32 Windows NT 4.0/2000/XP/2003/7/8/10 TTL :128 ping 127.0.0.1查看自己的TLL值:

image.png

虚拟机ubuntu,其TTL为64,是Linux操作系统,结果相符。 5. traceroute程序 5.1 traceroute 是用来侦测主机到目的主机之间所经路由情况的重要工具。可以填补ping不能完全的记录下所经过的路由器的遗憾(IP数据报头的长度限制最多能保存9个IP地址)。 #####5.2 traceroute工作原理

发送一份TTL为1的IP数据报给目的主机,经过第一个路由器时,TTL值被减为0,则第一个路由器丢弃该数据报,并返回一份超时ICMP报文,由此得到了路径中第一个路由器的地址; 再发送一份TTL值为2的数据报,便可得到第二个路由器的地址; 以此类推,一直到到达目的主机为止,便记录下了路径上所有的路由IP。 6. IGMP(Internet Group Management Protocol)组管理协议 用于管理多播组成员的一种协议,作用在于:让其它所有需要知道自己处于哪个多播组的主机和路由器知道自己的状态。 多播路由器需要定时的发送IGMP查询以知道多播组的信息,各个多播组里面的主机要根据查询来回复自己的状态。路由器决定有几个多播组,要对某一个多播组发送什么样的数据。

最新评论
暂无评论~