计算机网络: 网络层
网络层
网络层是OSI参考模型中的第三层,介于传输层和数据链路层之间,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传送服务。主要内容有:虚电路分组交换和数据报分组交换、路由选择算法、阻塞控制方法、X.25协议、综合业务数据网(ISDN)、异步传输模式(ATM)及网际互连原理与实现。
网际协议 IP:
网际协议 IP 是TCP/IP 体系中最主要的协议之一。
与 IP 协议配套的还有四个协议:
- ARP(Address Resolution Protocol)地址解析协议
- RARP(Reverse Address Resolution Protocol)
- ICMP (Internet Control Message Protocol) 网际控制报文协议
- IGMP (Internet Group Management Protocol)网际组管理协议
虚拟互连网络
- 网络互联的一些中间设备
- 网络层以上的中继系统:网关(gateway)。
- 网桥和路由器的混合物:桥路器(brouter)。
- 网络层中继系统:路由器(router)。
- 数据链路层中继系统:网桥或桥接器(bridge)。
- 物理层中继系统:转发器(repeater)。
IP 数据报的格式
地址解析协议 ARP 与逆地址解析协议RARP
地址解析协议 ARP
ARP 实现由 IP 地址获得MAC 地址
每个主机都有一个 ARP 高速缓存,
里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。
例如在局域网中有很多主机,主机A想和局域网中的主机B通信,
但是只知道对方的ip地址,所以他就通过发广播,
给局域网中所有的主机,问这个ip地址是谁,
主机B收到了这个信息,通过网络适配器(网卡)就发现自己是这个ip地址,
然后就把自己的mac地址发给A主机,
这样A就知道了B的MAC地址,就能够通信了。
逆地址解析协议 RARP
知道自己MAC地址的主机能够知道其 IP 地址。
这种主机往往是无盘工作站。
因此 RARP协议目前已很少使用。
ICMP协议
ICMP(Internet Control Message Protocol)Internet控制报文协议。
它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息.
这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。
ICMP差错报告报文
传输数据的过程中,发生错误会通过该协议给源主机返回一个带有错误信息报告的数据包。此外还有终点不可达,源点抑制,超时等。
- ICMP 差错报告报文
- 终点不可达
- 源点抑制(Source quench)
- 时间超过
- 参数问题
- 改变路由(重定向)(Redirect)
ICMP询问报文
回送请求和回答
:主机向特定目标发出询问,收到此报文必须返回一个ICMP回送回答报文。测试目的站是否可达。
时间戳请求和回答
:请某个路由器或主机回答当前的日期和时间,用于进行时钟的同步和测量时间。
- ICMP 询问报文
- 回送请求和回答报文
- 时间戳请求和回答报文
ICMP 的应用:
- Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。
Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。 - Traceroute
Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。
IGMP (Internet组管理协议)
Internet 组管理协议称为IGMP协议(Internet Group Management Protocol),是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。IGMP协议共有三个版本,即IGMPv1、v2 和v3。
有 3 个版本的 IGMP,这些版本向后兼容,以下是 IGMP 的版本:
- IGMPv1 :
IGMP通信协议的版本允许所有支持主机使用成员资格请求加入多播组,并包含一些基本功能。但是,主持人不能自行离开组,并且必须等待超时才能离开组。
IGMPv1 中的消息数据包格式:
图片源自:https://www.geeksforgeeks.org/whatisigmpinternetgroupmanagementprotocol/
-
版本 :IGMPv1。
-
Type:1 表示"主机成员身份查询"和"主机成员身份报告"。
-
Unused: 8 位零位,它们没有用处。
-
校验和 checksume:它是 IGMP 消息总和的一个补集的补集。
-
组地址 GroupAddress :组地址字段在发送时为零,在成员资格查询消息中接收时忽略。在成员身份报告消息中,组地址字段采用所报告组的 IP 主机组地址。
-
IGMPv2 :
IGMPv2 是 IGMPv1 通信协议的修订版。它添加了使用组成员身份离开多播组的功能。
类型 :
0x11 for Membership Query
0x12 for IGMPv1 Membership Report
0x16 for IGMPv2 Membership Report
0x22 for IGMPv3 Membership Report
0x17 for Leave Group
最长响应时间 –
对于成员资格查询以外的消息类型,将忽略此字段。对于成员资格查询类型,它是发送响应报告之前允许的最长时间。该值以 0.1 秒为单位。
校验和 –
它是 IGMP 消息总和的一个补集的补集。
组地址 –
发送常规查询时设置为 0。否则,为特定于组或特定于源的查询提供多播地址。
- IGMPv3 :
IGMPv2 已修订为 IGMPv3,并添加了特定于源的多播和成员身份报告聚合。这些报告将发送到 224.0.0.22。
IGMPv3 中的消息数据包格式:
最长响应时间 –
对于成员资格查询以外的消息类型,将忽略此字段。对于成员资格查询类型,它是发送响应报告之前允许的最长时间。该值以 0.1 秒为单位。
校验和 –
它是 IGMP 消息总和的一个补集的补集。
组地址 –
发送常规查询时设置为 0。否则,为特定于组或特定于源的查询提供多播地址。
Resv –
它被设置为零发送,并在接收时被忽略。
S 标志 –
它表示禁止路由器端处理标志。设置该标志后,它指示禁止多播路由器在收到任何查询时执行的计时器更新。
QRV –
它表示 Querier 的鲁棒性变量。路由器会不断从最近收到的查询中检索 QRV 值作为其自己的值,直到最近收到的 QRV 为零。
QQIC –
它表示 Querier 的查询间隔代码。
源数 –
它表示查询中存在的源地址数。对于常规查询或特定于组的查询,此字段为零,对于特定于组和源的查询,此字段不为零。
源地址[i] –
它表示 N 个字段的 IP 单播地址。
工作:
IGMP 适用于能够处理多播组和动态多播的设备。这些设备允许主机加入或离开多播组中的成员身份。这些设备还允许在组中添加和删除客户端。此通信协议在主机和本地多播路由器之间运行。创建多播组时,多播组地址位于 D 类 (224-239) IP 地址范围内,并作为数据包中的目标 IP 地址转发。
L2 或 2 级设备(如交换机)用于主机和多播路由器之间的 IGMP 监听。IGMP 监听是一个以受控方式侦听 IGMP 网络流量的过程。交换机从主机接收消息,并将成员身份报告转发到本地多播路由器。使用 PIM(独立于协议的多播)将多播流量从本地多播路由器进一步转发到远程路由器,以便客户端可以接收消息/数据包。希望加入网络的客户端在查询中发送加入消息,交换机截获消息并将客户端的端口添加到其多播路由表中。
优势:
IGMP通信协议有效地将多播数据传输到接收方,因此,不会将垃圾数据包传输到主机,从而显示出优化的性能。
带宽被完全消耗,因为所有共享链接都已连接。
主持人可以离开一个多播组并加入另一个组。
缺点:
它在过滤和安全性方面不能提供良好的效率。
由于缺乏 TCP,可能会发生网络拥塞。
IGMP 容易受到某些攻击,例如 DOS 攻击(拒绝服务)。
posted on 2022-04-16 09:48 Michael_chemic 阅读(123) 评论(0) 编辑 收藏 举报