目录
一:网络层的功能
定义了基于IP协议的逻辑地址,就是IP地址
链接不同媒介的类型
选择数据通过网络的最佳路径,完成逻辑地址寻址
二:IP数据包格式
版本(4) | 首部长度(4) | 优先级和服务类型(8) | 总长度(16) | |
标识符(16) | 标志(3) | 段偏移量(13) | ||
TTL生命周期(8) | 协议号(8) | 首部校验和(16) | ||
源地址(32) | ||||
目标地址(32) | ||||
可选项 | ||||
数据 |
IP数据包格式(分为20字节的固定部分,表示每个ip数据包必须包含的部分,和40字节的可变长部分)(bit是二进制单元)
版本号(4bit):指IP协议的版本号。通信双方的版本必须一致,目前我们使用的是IPv4,表示为0100
首部长度(4):IP数据包的长度
优先级和服务类型(8):该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,用于实现Qos(服务质量)的要求。注:定义IP数据包是否优先传送
总长度(16):定义IP数据包的总长度,最长字节为65535,包括包头和数据
注:ip头部 和数据段 可能20字节 也可能多 总长度加上数据段长度最多为65535字节
标识符(16):用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片分配一段字符,将这些字符加入标识符字段中,保证分片不会被错误重组。标识符字段用于标志一个数据包,一便节点接收可以重组被分片的数据包。
标志(3):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出
段偏移量(13):在一个分片序列中如何将各个分片连接起来,按什么顺序连接起来
TTL生命周期(8):可以防止一个数据包在网络中无限循环转发下去,每经过一个路由器-1,当TTL=0时,数据包将被丢弃
协议号(8):封装的上层那个协议,TCMP:1 TCP:6 UDP:17
首部校验和(16):这个字段只校验数据报的首部,不包括数据部分。这是因为数据报每经过一次路由器,都要重新计算一下首部校验和(因为一些字段如生存时间,标志,片偏移等可能发生变化)
源地址(32):源IP地址,指发送端的ip地址
目的地址(32):目标ip地址,指接收端的ip地址
可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等,可选项之后就是上层数据
注:根据实际情况可变长,例如创建时间 上层数据
数据:指上层数据
三:ICMP协议
3.1 什么是ICMP协议
ICMP协议是一个“错误侦测和回馈机制”,是通过IP数据包封装的,用来发送错误和控制消息
ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。
ICMP报文有两种类型:差错报告报文和查询报文。
3.2 ICMP协议的封装
ICMP协议属于网络层协议
ICMP的封装过程
ICMP头部 | ICMP数据 | |||
IP头部 | 上层数据(ICMP报文) | |||
帧头部 | 上层数据 | 帧尾部 |
数据在传输层被分成数据段,并被加上TCP头部传输到网络层,在网络层要加上IP头部,而且网络层的作用是进行IP地址寻址,将数据封装成数据包并加上IP头部,其中网络层的协议有ICMP,IP ARP,其中ICMP 协议就是在数据传输中进行差错校验查询数据,以及侦测两个主机之间的信息交互能力,所以要加入ICMP头部。
3.3 ping命令
哪里可以使用ICMP协议------ping命令和traceroute/tracet(windows使用)命令,在检查网络时最常用的是ping命令。
当我们ping一台主机时本地计算机发出的就是一个典型的ICMP数据包,用来测试两台主机是否能够顺利联通。ping命令能够检测两台设备之间的双向连通性,即数据包能够到达对端,并能够返回扩展。
ping命令不同的几种情况
1.当主句有一个默认网关时,如果它ping其他的网段地址,到不了大的话,显示的是request timeout(此时它把icmp包发给网关,至于后面的事它就不管了,如果没有包回应,就显示request timeout)。
2.当一个主机没有默认网关时或者配置网关但不同时,它ping其它的网段地址,显示的是Destination host unreachable(此时它发送ARP请求包请求网关的mac地址)
3.当一个路由器ping它路由表中没有的地址时,没有回应,则显示的是request timeout(此时不发任何包)
4.当路由器ping一个路由表中存在的地址,没有回应,显示的也是request timeout(此时发送ARP请求包,请求目标的mac地址)
3.4 ping命令的用法
ping命令的基本格式为
C: />ping 【-t】【-l字节数】【-a】【-i】IP_Address| target_name
ping命令的返回信息
在规定的时间内可以收到应答消息
3.5 ping命令的参数
-t参数会一直不停的执行ping
作用:调试故障或需进行持续连通性测试时使用
Ctrl+C可以终段命令
-a参数可以显示主机名称
-l参数可以设定ping命令包的大小
单位为字节;
可用于简单的测试通信质量
常用的ping命令参数
小结:1.IP数据包格式
2.ICMP的作用
3.ping命令的使用方法
四:ARP协议
4.1 ARP协议概括
ARP协议是地址解析协议(Address Resolution Protocol)
是通过解析IP地址得到MAC地址的,是在一个网络协议包中及其重要的网络传输协议,它与网卡有者极其密切的关系,在TCP/IP分层结构中,把ARP划分为网络层,在网络层看来,源主机和目标主机是通过IP地址进行识别的,而所有的数据 传输又依赖网卡底层硬件,即链路层。就需要将IP地址转换为链路层可以识别的东西,所有的链路层都有一套寻址机制,如在以太网中使用MAC地址寻址,标识不同的主机,那么就需要一个协议将IP地址转换成MAC地址,由此出现了ARP协议。所有的ARP协议在网络层被应用,它是网络层与链路层链接的重要枢纽,每当有一个数据要发送时都需要通过ARP协议将IP地址解析成MAC地址,在IP层及其以上的层次看来,它们只标识IP地址从不跟硬件打交道。
为了实现IP地址与MAC地址的转换,ARP协议引入了ARP缓存表的概念,每台主机或路由器都维护一个缓存表,这个表包含了IP地址MAC地址的映射关系,表中记录了<IP地址和MAC地址>对,成为ARP表项。当需要发送数据的时候,主机就会根据数据报中的IP地址信息在ARP缓存表中找到相对应的MAC地址,最后通过网卡将数据发送出去。ARP缓存表中存在者一个生存时间(TTL),它将记录每个ARP表项的生存时间,生存时间到了就会从缓存表中删除。从一个表项放置到ARP缓存表中开始,一个表项的生存时间一般时10分钟(120秒),生存时间是任意设置的,一般我们都是默认即可。
4.2 ARP协议的工作原理
ARP协议的工作原理(结合交换机的工作原理)
ARP解析过程:以两台局域网互相通信为例讲解
1.当pc1想要发送数据给pc2,首先在自己的ARP缓存表中查看是否有pc2的MAC 地址
2.如果pc1没有找到pc2的MAC地址,它将询问pc2的MAC地址,从而将ARP请求帧广播到本地所有的主机。该帧包含pc1的IP地址和MAC 地址,本地所有主机都会收到ARP 请求,都会查卡ARP请求中的IP地址与自身的IP地址是否相符合,如果不符合则会丢弃该请求。
3.pc2收到ARP请求,确定与自身的IP地址匹配,就会将pc1的IP地址和MAC地址记录本地的ARP缓存表中
4.pc2将包含自身MAC地址的ARP回复消息发送给pc1(数据帧为单播)
5.pc1收到pc2回复的ARP消息,则会将pc2的IP地址,MAC地址加入到本地的ARP 缓存表中。本机缓存是存在生存周期的,默认ARP缓存表的有效期为120秒,当超过这个有效期则会重复上面的过程。pc2的MAC 地址一旦确定,pc1就能向pc2发送IP信息。
4.3 如何查看ARP缓存表
ARP缓存表(静态arp和动态arp)
arp -a ###查看arp缓存表
arp -d【IP] ###删除arp缓存表
arp -s IP MAC ###删除arp静态绑定
如提示ARP项添加失败,解决方案:
用管理员模式:电脑左下角“开始”按钮右键,点击"windows powershell(管理员)(A)“或者进入C盘windows /system32文件找到cmd.exe,右键”以管理员身份运行“再执行arp -s命令
绑定arp:cmd中输入
netsh -c i i show in 查看网络链接准确名称(本地链接,无线网络链接)
netsh -c "i i" add neighbors 19 "ip”“mac”,这里19是ids号,//绑定
netsh -c "i i" delete neighbors 19 这里19是ids号,//解绑
netsh interface ipv4 set neighbors <接口序号><IP><MAC>
动态ARP表项老化:在一段时间内(180s)如果表项中的ARP映射关系始终没有使用,则会被删除。通过及时删除老化表项,从而提升ARP响应效率
Cisco系统中的ARP命令
Router#show arp 查看ARP缓存表
Router#clear arp-cache 清除ARP缓存
Router(config)#arp ip-dssress mac-address arpa ARP绑定
4.4 ARP攻击原理和欺骗原理
ARP攻击原理:
欺骗其他所有的计算机;
欺骗被攻击计算机;
ARP攻击发送的是ARP应答,但是ARP应答中的MAC地址为虚假地址,所以其他主机想要进行通信时,会将目的MAC地址设置成虚假的MAC 地址,从而导致无法进行正常通信。
例如:如果希望被攻击的主机无法访问互联网,就需要对网关发送或被攻击主机发送虚假的ARP应答。当网关接收到虚假的ARP应答更新ARP条目后,如果网关再发送数据给主机时,就会发送到虚假的MAC地址,导致通信故障。
ARP欺骗原理
ARP欺骗网关
欺骗网关就是把别的主机发送给网关的数据通过欺骗网关的形式使得这些数据通过网关发送给攻击者。这种攻击目标选择的不是个人主机而是局域网的网关,这样就会攻击者源源不断的获取局域网内其他用户数据,造成数据的泄露。
ARP欺骗主机
攻击者通过 ARP 欺骗使得局域网内被攻击主机发送给网关的流量信息实际上都发送给攻击者。主机刷新自己的 ARP 使得在自己的ARP 缓存表中对应的 MAC 为攻击者的 MAC,这样一来其他用户要通过网关发送出去的数据流就会发往主机这里,这样就会造成用户的数据外泄。
利用ARP欺骗管理网络
通过长角牛网络监控机软件管理网络
设置监控范围
进行网络管理
验证效果
ARP欺骗原理和ARP攻击原理基本相同,但是效果不一样。ARP攻击最终结果会导致网络中断,而ARP欺骗最终结果是使得流量通过自身达到监控和控制的目的。
五 、总结
1.网络层的功能
2.IP数据包格式
3.ICMP协议的功能作用以及ping命令的使用方法
4.ARP协议的作用和工作原理