计算机网络----网络层IP协议

概述

网络层计算机网络结构中最重要的一层,也是互联网的核心,多个网络通过路由器互连成一个互联网路,网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务,网络层中一个重要的协议就是IP协议,使用IP协议可以把异构的物理网络连接起来,使得网络层看起来像是一个统一的网络。
网际协议IP是TCP/IP协议中两个最主要的协议之一,也是最重要的因特网标准协议之一,与IP协议配套使用的还有四个协议:

  • 地址解析协议(ARP);
  • 逆地址解析协议(RARP);
  • 网际控制报文协议(ICMP);
  • 网际组管理协议(IGMP);
    在这里插入图片描述
    下面简单介绍这几个协议:

1. 地址解析协议ARP
网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变。
在这里插入图片描述ARP实现由IP地址到MAC地址
在这里插入图片描述
每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。如果主机 A 知道主机 B 的 IP 地址,但是 ARP 高速缓存中没有该 IP 地址到 MAC 地址的映射,此时主机 A 通过广播的方式发送 ARP 请求分组,主机 B 收到该请求后会发送 ARP 响应分组给主机 A 告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。

2. 逆地址解析协议
逆地址解析协议以前使用,现在DHCP协议已经包括了RARP协议,不在介绍。

3. 网络控制报文协议
ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会。它封装在 IP 数据报中,但是不属于高层协议。
在这里插入图片描述
ICMP 报文分为差错报告报文和询问报文。
在这里插图片描述

  • ping
    Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。
    Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率;
  • Traceroute
    Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。
    Traceroute 发送的 IP 数据报封装的是无法交付的 UDP 用户数据报,并由目的主机发送终点不可达差错报告报文。源主机向目的主机发送一连串的 IP 数据报。第一个数据报 P1 的生存时间 TTL 设置为 1,当 P1 到达路径上的第
    一个路由器 R1 时,R1 收下它并把 TTL 减 1,此时 TTL 等于 0,R1 就把 P1 丢弃,并向源主机发送一个 ICMP时间超过差错报告报文;
    源主机接着发送第二个数据报 P2,并把 TTL 设置为 2。P2 先到达 R1,R1 收下后把 TTL 减 1 再转发给 R2,R2收下后也把 TTL 减 1,由于此时 TTL 等于 0,R2 就丢弃 P2,并向源主机发送一个 ICMP 时间超过差错报文。不断执行这样的步骤,直到最后一个数据报刚刚到达目的主机,主机不转发数据报,也不把 TTL 值减 1。但是因为数据报封装的是无法交付的 UDP,因此目的主机要向源主机发送 ICMP 终点不可达差错报告报文。之后源主机知道了到达目的主机所经过的路由器 IP 地址以及到达每个路由器的往返时间。

4. 网际组管理协议IGMP
IGMP用于支持主机和路由器进行多播的网际组管理协议。IGMP使用IP数据报传递其报文(即IGMP报文加上IP首部构成IP数据报),但是他也向IP提供方服务;
IGMP工作可分为两个部分:
第一阶段:当某个主机加入新的多播组时,该主机向多播组的多播地址发送一个IGMP报文,声明自己要成为该组的成员,本地的多播路由器收到IGMP报文后,还要利用多播路由选择协议把这种组成员关系转发给因特网上的其他多播路由器;

第二阶段:组成员之间的关系是动态的,本地多播路由器要周期性的探寻本地局域网上的主机,以便知道这些主机是否还继续是组的成员,只要有一个主机对某个组响应,那么多播路由器就认为这个组是活跃的,但一个组在经过几次的探寻后仍然没有一个主机响应,多播路由器就认为本网络上的主机已经都离开了这个组,因此也就不再把这个组成员关系转发给其他多播路由器;
IGMP报文格式如下,
在这里插入图片描述

  • IGMP类型为1说明是由多播路由器发出的查询报文,为2说明是主机发出的报告报文。
  • IGMP的报告和查询
    (1)当第一个进程加入一个组时,主机就发送一个IGMP报告。如果一个主机的多个进程加入同一组,只发送一个IGMP报告。这个报告被发送到进程加入组所在的同一接口上。
    (2)进程离开一个组时,主机不发送IGMP报文
    多播路由器定时发送IGMP查询来了解是否还有任何主机包含有属于多播组的进程。
    主机通过发送IGMP报告来响应一个IGMP查询,对每个至少包含一个进程的组均要发回IGMP报告。

虚拟互联网络

将网路互联需要一些中间设备:

  • 物理层中间的设备叫做转发器;
  • 数据链路层中间设备叫做网桥;
  • 网络层中间设备叫做路由器;
  • 应用层以及应用层之上的设备叫做网关;

互联网由有多种异性网络结构组成。
用转发器或者网桥连接起来的若干个局域网仍然是一个网络,因为这些网络都是一份网络号,具有不同网络间的连接必须要用路由器;
路由器作用:路由器最主要的功能可以理解为实现信息的转送。因此,我们把这个过程称之为寻址过程。因为在路由器处在不同网络之间,但并不一定是信息的最终接收地址。所以在路由器中, 通常存在着一张路由表。根据传送网站传送的信息的最终地址,寻找下一转发地址,应该是哪个网络。

IP数据报文

IP数据报文格式在这里插入图片描述
  • 版本:有4(IPV4)和6(IPV6)两个值
  • 首部长度:占4位,因此最大值为15,值1表示的是一个32位字的长度,也就是4字节。因为固定部分长度为20字节,因此该值最小值为5,如果可选字段的长度不是4字节的整数倍,就用尾部的填充部分来填充;
  • 区分服务:用来获得更好的服务,一般情况下使用;
  • 总长度:包括首部长度和数据部分长度;
  • 生存时间:TTL,他的存在时为了防止无法交付的数据报在互联网中不断兜圈子,以路由器条数为单位,当TTL为0时就丢弃数据报;
  • 协议:指出携带的数据应该上交给哪个协议进行处理,例如ICMP,TCP,UDP等;
  • 首部检验和:因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包括数据部分可以减少的计算的工作量;
  • 标识:在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符;
  • 片偏移:和标识符一起,用于发生分片的情况,片偏移的单位为8字节;
路由器工作流程:路由选择和分组转发
IP数据报文分组转发过程:
  • 从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N;
  • 若N就是于此路由器直接相连的某个网络地址,则直接进行交付,不需要在经过其他的路由器,直接把数据报交付给目的主机(这里包括把目的地址D转换成具体的硬件地址,用ARP协议,把数据报封装成MAC地址,再发送此帧,)否则就是间接交付,执行下面的;
  • 若路由表中有目的地址为D的特定主机路由,则把数据报发送给路由表中所表明的下一跳路由器,否则,执行下面的;
  • 若路由标志中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器,否则,执行下面的操作;
  • 若路由器有一个默认路由,则把数据报传送给路由表中所指明的默认路由器,否则,执行下面的;
  • 报告转发分组出错;
路由选择协议

路由选择协议都是自适应的,能随着网络通信量和拓扑结构的变化而自适应地进行调整。互联网可以划分为许多较小的自治系统 AS,一个 AS 可以使用一种和别的 AS 不同的路由选择协议。
可以把路由选择协议划分为两大类:

  • 自治系统内部的路由选择:RIP 和 OSPF
  • 自治系统间的路由选择:BGP
1. 内部网关协议 RIP
  • RIP 是一种基于距离向量的路由选择协议。距离是指跳数,直接相连的路由器跳数为 1。跳数最多为 15,超过 15 表示不可达。RIP 按固定的时间间隔仅和相邻路由器交换自己的路由表,经过若干次交换之后,所有路由器最终会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器地址。
    距离向量算法:
  • 对地址为 X 的相邻路由器发来的 RIP 报文,先修改报文中的所有项目,把下一跳字段中的地址改为 X,并把所有的距离字段加 1;
    对修改后的 RIP 报文中的每一个项目,进行以下步骤:
    若原来的路由表中没有目的网络 N,则把该项目添加到路由表中;
    否则:若下一跳路由器地址是 X,则把收到的项目替换原来路由表中的项目;否则:若收到的项目中的距离 d小于路由表中的距离,则进行更新(例如原始路由表项为 Net2, 5, P,新表项为 Net2, 4, X,则更新);否则什么也不做。若 3 分钟还没有收到相邻路由器的更新路由表,则把该相邻路由器标为不可达,即把距离置为 16。
  • RIP 协议实现简单,开销小。但是 RIP 能使用的最大距离为 15,限制了网络的规模。并且当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器。
2. 内部网关协议 OSPF

开放最短路径优先 OSPF,是为了克服 RIP 的缺点而开发出来的。
开放表示 OSPF 不受某一家厂商控制,而是公开发表的;最短路径优先表示使用了 Dijkstra 提出的最短路径算法SPF。
OSPF 具有以下特点:

  • 向本自治系统中的所有路由器发送信息,这种方法是洪泛法。
  • 发送的信息就是与相邻路由器的链路状态,链路状态包括与哪些路由器相连以及链路的度量,度量用费用、距离、时延、带宽等来表示。
  • 只有当链路状态发生变化时,路由器才会发送信息。
    所有路由器都具有全网的拓扑结构图,并且是一致的。相比于 RIP,OSPF 的更新过程收敛的很快。
3. 外部网关协议 BGP

BGP(Border Gateway Protocol,边界网关协议)AS 之间的路由选择很困难,主要是由于:互联网规模很大;各个 AS 内部使用不同的路由选择协议,无法准确定义路径的度量;AS 之间的路由选择必须考虑有关的策略,比如有些 AS 不愿意让其它 AS 经过。BGP 只能寻找一条比较好的路由,而不是最佳路由。每个 AS 都必须配置 BGP 发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息。
参考文献:计算机网络第五版谢希仁

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值