第四章 网络层
一、网络层提供的服务
图 1 H1沿不同路径向H2发送数据包
路由器作用:在不同网段发送数据
如图1,红色的是数据包,数据包传给路由器,路由器看数据包地址传输给下一个路由器,如果在传的时候,出现数据包太多,路由器处理不过来,那这个数据包就会丢失。传输不分顺序,数据包来了,路由器就传给下一个。因此网络层的作用只是在这里负责传输包,不管是否丢失,也不管顺序
总结:网路层负责在不同网络之间尽力转发数据包(即网络层提供的服务) 不负责丢失重传 也不负责顺序 基于数据包的IP地址转发
二、验证网络层功能
1.使用Cisco packet tracer软件模拟验证
(1)打开软件后,先放置几台计算机,两个交换机、一个集线器以及两个路由器,如图2所示连接起来,就这样构成了一个基本的网络连接,①和③是属于局域网,②是属于广域网
图 2 网络模拟环境
(2)连接完成后要给计算机和路由器配置IP地址、子网掩码地址和网关,如图3~图7
图 3 PC4的配置 图 4 PC0的配置
图 5 PC1的配置 图 6 PC2的配置
图 7 PC3的配置
(3)接下来配置路由器
路由器Router0的配置命令:
Router>enable
Router(config-if)#config t
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 10.0.0.1 255.0.0.0
Router(config-if)#exit
Router(config)#interface serial 2/0
Router(config-if)#no shutdown
Router(config-if)#clock rate 64000
Router(config-if)#ip address 11.0.0.1 255.0.0.0
路由器Router1的配置命令:
Router>enable
Router#config t
Router(config)#interface serial 3/0
Router(config-if)#ip address 11.0.0.2 255.0.0.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 12.0.0.1 255.255.0.0
Router(config-if)#no shutdown
(4)所有需要配置的计算机和路由器都配置完成后就试一下计算机之间能不能通信
首先先试一下PC4和PC1(即在局域网①之间通信)
图 8 PC4 ping PC1
如图8,有发送有接收,说明局域网之间可以通信了。现在试一下广域网之间能不能通信,比如PC4与PC2通信
图 9 PC4 ping PC2
如图9,出现了Request timed out.,这说明广域网之间还不能通信,那是因为没有添加相对应路径的路由表的原因,这个一般都是网络管理员自己设置的,如果网络管理员需要这样的路径,那他就可以配置这样的路径,现在我来配置一下。
首先先查看路由表,输入命令Router>show ip route,看得到图10下方没有到12.0.0.2的路由表。
图 10 查看路由表
所以此时需要先添加路由表,添加路由表
Router#config terminal
Router(config)#ip route 12.0.0.2 255.255.0.0 11.0.0.2
进入Router1添加路由表
Router#config t
Router(config)#ip route 10.0.0.0 255.0.0.0 11.0.0.1
图 11 PC4再次pingPC2
添加完成后再来试着通信。由图11可看出,现在就可以通信了。
(5)总结:
进入路由器一系列的配置
路由器0的配置
Router>enable
Router#config terminal
Router(config)#interface fastEthernet 0/0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface serial 2/0
Router(config-if)#no shutdown
Router(config-if)#clock rate 64000
Router(config-if)#ip address 11.0.0.1 255.0.0.0
路由器1的配置
Router>enable
Router#config t
Router(config)#interface serial 3/0
Router(config-if)#ip address 11.0.0.2 255.0.0.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 12.0.0.1 255.255.0.0
Router(config-if)#no shutdown
查看路由表
Router>show ip route
添加路由器0路由表
Router#config terminal
Router(config)#ip route 12.0.0.0 255.255.0.0 11.0.0.2
添加路由器1路由表
Router#config t
Router(config)#ip route 10.0.0.0 255.0.0.0 11.0.0.1
2.准备、发送数据的过程
准备:
发送端
(1)应用程序准备要传输的文件
(2)传输层 将文件分段 并并编号
(3)网络层 添加目标IP地址、源IP地址
(4)数据链路层 两种情况 使用自己的子网掩码 判断自己在哪个网段
使用自复制己的子网掩码 判断目标地址在哪个网段
如果是同一个网段 arp协议广播解析目标IP地址的MAC
如果不是同一个网段 则进入下面的准备过程(封装帧)
图 12 发送的前期准备
发送:
图 13 发送过程示意图
三、ARP协议
1. 作用:将IP地址通过广播 目标MAC地址是FF-FF-FF-FF-FF-FF 解析目标IP地址的的MAC地址
2.特点:只能在一个网段内广播,即会被路由器隔绝
3.arp –a命令
用命令arp -a获取局域网内同网段的IP地址的mac地址,如图14
图 14 查看IP地址MAC地址
4.arp欺骗
如图15,比如,PC4要跟PC0通信,PC4要向PC0发送数据,在发送之前会请求PC0的mac地址,在这个时候,PC0会将它的mac地址发给PC4,但是假设此时PC1有装了一个抓包工具,那PC1就会知道PC4和PC0在通信,然后PC1也将它的mac地址发给PC4,那此时PC4就会自动删掉之前PC0发来的mac地址,而是接收到了PC1的mac地址,因此在以后的通信中,当PC4想要发送数据给PC0时,实际上PC4都是发送到了PC1上了。这就是arp欺骗。
图 15 arp欺骗
,四、ICMP协议和ping命令
ICMP (Internet Control Message Protocol):网际控制报文协议。
ICMP协议是网络层上的协议,用来测试网络层是否有故障,通常用ping命令。
1.通过ping可以查看数据发送和接收的延迟时间TTL点
常见系统默认TTL,并不是绝对的,可以改的。
系统 默认TTL
Linux 64
Windows 128
Unix 255
2. ping命令的一些参数
ping -t 一直ping,方便我们看过程,Ctrl+C可结束ping
ping /? ping的手册
ping -l 200 www.baidu.com 发送大包(200个字节)给www.baidu.com
ping 8.8.8.8 -i 1 发数据包给8.8.8.8(谷歌)时指定TTL为1,一般ping国外网站都会请求超时,把TTL指定为1,那ping完就能马上返回请求超时。能够跟踪数据包途径的路由器。
3. 如何排除网络故障
(1)使用ping命令 估算网络是否畅通 从而排除网络故障出现在哪里。
(2)pathping命令(仅用于Windows) 跟踪数据包路径,计算丢包情况
(3)跟踪10.1.8.4途径的路由器
tracert 10.1.8.4(Windows上跟踪数据包路径的命令)
traceroute 10.1.8.4(在路由器上跟踪数据包的命令)
五、IGMP协议和多播组播
IGMP(Internet Group Management Protocol):网际组管理(组播)协议。
1. 点到点、广播和组播(多播)的理解
A向B通信,B向A通信,他们在0.8km处发生了碰撞,然后各自返回,两个信号加起来共用了2t的时间,这就是发生碰撞时,传播时延对载波监听的影响。即用了两倍的时间。
2.重要特性
点到点:一对一,中间没有设备。
广播:一对多,在教学中最常用,多媒体课室,教师控制学生的电脑。
组播=多播:更好第支持一对多,一个源点发送到许多个终点,省带宽。例如,实时信息的交付(如新闻、股市行情等),软件更新,交互式会议及其他多媒体通信。
六、抓包分析数据包首部
1. IP数据包
一个IP数据包由首部和数据两部分组成
·首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。
·在首部的固定部分的后面是一些可选字段,其长度是可变的。
如图16,首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
图 16 IP数据报的组成
版本:用来表示TCP/IP协议的版本 4代表IPv4 6代表IPv6。
首部长度:占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节),因此 IP 的首部长度的最大值是 60 字节。
区分服务:占 8 位,用来获得更好的服务。在旧标准中叫做服务类型,但实际上一直未被使用过。1998 年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段 。
总长度:占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。
//网络层——数据包 65535字节 //
//数据链路层——数据帧1500字节 最大传输单元MTU //
//数据包 如果不分片 数据包数据最大不超过1480字节//
/
标识:占 16 位,它是一个计数器,用来产生 IP 数据报的标识。
标志(flag) :占 3 位,目前只有前两位有意义。标志字段的最低位是 MF (More Fragment)。MF=1 表示后面“还有分片”。MF=0 表示最后一个分片。标志字段中间的一位是 DF (Don't Fragment)。只有当 DF=0 时才允许分片。
片偏移:占13 位,指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。偏移量=第某个字节/8
生存时间:占8 位,记为 TTL (Time To Live),指示数据报在网络中可通过的路由器数的最大值。TTL每过一个路由器就减1。可以防止网络又环路的情况下,网络一直在循环。
协议:占8 位,指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给那个处理过程。
常见协议的协议号
协议 协议号
ICMP 1
IGMP 2
TCP 6
UDP 17
IPv6 41
OSPF 89
首部检验和:占16 位,只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。
2. IP 数据报首部校验过程
图 17 IP校验过程
如图17,IP 数据报首部检验和的计算采用 16 位二进制反码求和算法
3. IP 数据报首部的可变部分
·IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。
·选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。
·增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。
·实际上这些选项很少被使用。
七、网络畅通的条件
如果在网络环境比较复杂的情况下,都要用IP协议,让它自动的学习路由表;如果在比较小的企业下,网络环境不负责则可以使用静态路由。
1. 网络畅通的条件:数据包有去有回,这是就是通
图 18 网络畅通条件解析图
假设现在PC0和PC1之间要通信,那么他们要通的条件即是:
(1)从左到右沿途所有的路由器必须有到达192.168.1.0/24网段的路由;
(2)从右到左沿途所有的路由器必须有到达192.168.0.0/24网段的路由;
(即是数据包有去有回)
所有的路由器必须得配网关。
八、静态路由
图 19 静态路由环境
路由器0的配置
配PC
Router>en
Router#config t
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 192.168.0.1 255.255.255.0
Router(config-if)#no shutdown
配广域网口
Router(config-if)#exit
Router(config)#interface serial 2/0
Router(config-if)#clock rate 64000
Router(config-if)#ip address 172.16.0.1 255.255.255.0
Router(config-if)#no shutdown
路由器1的配置
Router>en
Router#config terminal
Router(config)#interface serial 3/0
Router(config-if)#no shutdown
Router(config-if)#ip address 172.16.0.2 255.255.255.0
Router(config-if)#exit
Router(config)#interface serial 2/0
Router(config-if)#clock rate 64000
Router(config-if)#ip address 172.16.1.1 255.255.255.0
Router(config-if)#no shutdown
静态路由需要管理员告诉路由器所有没有直连的网络下一跳给谁。
静态路由缺点:只适合于小规模网络 不能够自动调整路由
九、动态路由
1.RIP协议 周期性广播路由表 选择最佳路径 每30秒更新一次路由表
RIP 是一种分布式的、基于距离向量的路由选择协议。
RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加1。最大跳数15跳
RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
RIP 允许一条路径最多只能包含 15 个路由器。“距离”的最大值为 16 时即相当于不可达。可见RIP 只适用于小型互联网。
RIP 不能在两个网络之间同时使用多条路由。
RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
2.RIP 协议的特点
(1) 仅和相邻路由器交换信息。
(2) 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
(3)按固定的时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
(4)RIP 协议特点:好消息传播得快,坏消息传播得慢。
(5)RIP 存在的一个问题:当网络出现故障时,要经过比较长的时间 (例如数分钟) 才能将此信息传送到所有的路由器。
(本文章仅为个人笔记,缺乏严谨性,未经允许请勿转载)