计算机网络——第四章网络层

一、网络层提供的服务

网络层只向上提供简单灵活,无连接的,尽最大努力交互的数据报服务。即网络层不提供服务质量的承诺。即网络层所传送的数据可能丢失,重复,或者缺少。因为数据在网络中传输,并不是端到端的,主要依靠的是多个路由器,因此路由器的设计会很简单。而通信之间的可靠性则交由上层运输层来负责,比如差错控制,流量检测,确认重传等。经过实践这样会极大的减低网络层的造价。

二、网际协议IP(IPv4)

与IP协议配套使用的有三个协议

  • 地址解析协议ARP
  • 网际控制报文协议ICMP
  • 网际组管理协议IGMP

在这里插入图片描述虚拟网络互联
现在我们知道,我们身边就有各种网络,电信,移动等。所以虚拟互联网络就可以看作是许多计算机网络使用相同的网际协议IP并由路由器连接起来所构成。使用IP协议便能使这些性能具有差异的网络看起来像是一个统一的网络

  1. 物理层使用的设备叫转发器(用转发器和网桥连接的网络,仅仅只能看作是将网络扩大,只能称之为网络,而不能称之为互联网)
  2. 数据链路层使用的设备叫网桥
  3. 网络层使用的设备叫路由器
  4. 网络层以上使用的设备叫网关

分类的IP地址
IP地址就是互联网上给每一台计算机或者接口(如路由器接口等)分配一个全世界唯一的32为标识符。使用IP地址可以是我们在互联网上很方便的寻址。
分类的IP地址即将IP地址划分为若干个固定的类,每一个类由固定的两个字段构成,前一个字段为网络号,标志主机或者路由器所连接的网络,在所有的网络中,这个字段必须唯一。后一个字段为主机号,即表示为该主机,在这个主机所处的网络中这个这个主机号也是唯一的。

常用的IP地址(由网络号的前1~3位类别位决定)

  • A类地址
    网络号为1个字节(8位),类别位为0,因此只有7位可用,由于全0表示的IP地址表示本网络,全1(00000001:即127)表示本机,以作为本地软件环回测试,所以可用的网络号为27-2。主机地址占三个字节,A类最大主机数为224-2。全0表示本主机所连接到的单个网络地址,全1表示该网络的所有主机。(网络号1~126)
  • B类地址:
    网络号为2个字节(16位),开始类别位为10,因此只有14位可用,由于B类相当于实在A类基础上衍生的,所以不可能出现全0或者全1的情况,但由于128.0.0.0一般不指配,所以可用的网络号为214-1。主机地址占2个字节,B类最大主机数为216-2。全0表示本主机所连接到的单个网络地址,全1表示该网络的所有主机。(网络号128.1~192.255)
  • C类地址:
    网络号为3个字节(24位),开始类别位为110,因此有21位可以分配,由于C类相当于实在A,B类基础上衍生的,所以也不可能出现全0或者全1的情况,但由于192.0.0.0一般不指配,所以可用的网络号为221-1。主机地址占2个字节,B类最大主机数为28-2。全0表示本主机所连接到的单个网络地址,全1表示该网络的所有主机。(网络号192.0.1~233.255.255)

IP地址与硬件地址
硬件地址又叫物理地址,物理地址是由数据链路层和物理层使用的地址,固话在网卡的ROM中。而IP地址是网络层和以上各层使用的地址是一种逻辑地址,由软件实现。
在发送数据时,网络层以上的层次将数据在首部加上IP地址后形成IP数据报交给数据链路层,数据链路层再添加首部和尾部构成MAC帧,MAC在传送时使用的源地址和目的地址都是写入MAC帧中,硬件地址存放于MAC帧的首部。当通信链路上的设备(主机或者路由器)收到MAC帧时,会根据MAC中的首部地址觉得是否收下此帧。
IP地址存放在IP数据包的首部,硬件地址存放在MAC帧的首部。
路由器转发数据时,IP地址一直没变直到网络层,而物理地址一直在变

地址解析协议ARP
ARP的作用就是当我们直到一个主机的IP地址时,能否找到其相应的硬件地址。因为在实际数据传输中实在数据链路层上的,所以必须知道对应的物理地址。
因为IP地址于物理地址格式不同没有具体的映射关系,所以地址解析协议ARP目的就是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且要时刻更新(因为网络中随时会有新的主机加进来)
过程
当一台主机A要向B发送数据时,就先在主机的ARP寻找有无主机B的IP地址。如果有就在ARP高数缓存中查出其对应物理地址,再把这个物理地址写入MAC帧中,再通过局域网发往此硬件地址。如果没有找到对应的IP地址(刚刚入网的主机)
(1)此时A会发送一个ARP请求分组(广播,即一对多),内容可以概括为:“我是A,硬件地址时a,我想知道B的硬件地址”。
(2)于是在本局域网上的所有主机运行的ARP都会收到此信息。其他的主机的IP地址与收到的不一致便丢弃。
(3)当B检测到与本机一致时,就收下这个请求,并向A发送ARP响应分组(单播,一对一即只给A发),内容可以概括为:”我是B,我的硬件地址是b“。
(4)此时A便接收到B的响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射

IP层转发分组的流程(路由器转发)
从上面的概述中,知道IP数据报中,只有源IP和目的IP,而没有中间经过的路由器的IP地址,如何转发到下一跳路由呢?所以当路由器收到一个要转发的数据报时,在从路由表得知下一跳路由器的IP地址后,不是将这个地址填入IP数据报中,而是送交给数据链路层的网络接口软件,将此IP地址转换成硬件地址(使用ARP协议),然后将此硬件地址放在链路层的MAC帧的首部,根据这个硬件地址找到下一跳。

划分子网
原因:

  1. IP地址不够用,从IP地址的划分可以看出IP地址空间是有限的。
  2. 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏
  3. 两级IP地址不够灵活:若一个单位要开辟一个新的网络,就要先申请才能加入到网络中。两级IP使无法做到的。
    划分子网即从网络的主机号中借用若干位作为子网号,因此主机号就相应的减少来同样的位数。于是IP地址的结构就为:{<网络号>,<子网号>,<主机号>}。凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据数据报的目的网络号找到本单位网络上的路由器。但此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付给目的主机。
    因为32位的IP地址本身以及数据报的首部都没有包含任何有关子网划分的信息,所以从IP数据报的首部无法看出源主机或目的主机所连接的网络是否进行了子网的划分,因此假如有数据(目的地址145.13.3.10)已经到达了一个路由器(网络号为(145.13),这个路由器如何将数据发到子网145.13.3.0呢?即如何找到目的子网呢?

子网掩码
为了得出网络地址(目的子网),就必须使用子网掩码,一般来说A类子网掩码为255.0.0.0,B类为255.255.0.00,C类为255.255.255.0,所以当知道一个IP地址时,将该IP地址与当前子网络的子网掩码相“与”,即可得出正确的子网号。

使用子网时分组的转发
从上面的叙述可以看出,一个路由器的路由表就至少应该有网络地址,子网掩码,下一跳地址。

  1. 从数据报中提取目的IP
  2. 先判断是否为直接交付。即对路由器直接连接的网络进行检测,用这个网络的子网掩码与目的IP相与,看结果是否有相应的网络地址对应,有就交付,没有,执行3.
  3. 若路由表中有目的地址与提取的IP地址对应就把数据交给路由表中指明的下一跳路由。没有则进行4。
  4. 对路由表中的的每一行(包含有目的网络地址,子网掩码,目的地址),用其中的子网掩码与目的IP进行想与,若该结果与目的网络地址相匹配,则转交给下一跳,否则执行5。
  5. 交给默认路由,若没有默认路由,则报错。
  6. 报错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值