网络层协议(6)

article/2025/8/19 13:43:29

文章目录

  • 一、网络层
  • 二、网络层的功能
  • 三、IP数据包格式
    • 1.版本
    • 2.头部长度
    • 3.服务类型
    • 4.包裹总长
    • 5.重组标识
    • 6.标志
    • 7.段偏移量
    • 8.生存时间(TTL)
    • 9.协议代码
    • 10.首部检验和
    • 11.源地址
    • 12.目的地址
    • 13.可选字段
    • 14.数据部分
  • 四、其他网络层协议
    • 1.ICMP协议
    • 2.ARP协议
    • 3.RARP协议

一、网络层

网络层是OSI参考模型中的第三层,介于传输层和数据链路层之间,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传送服务。主要内容有:虚电路分组交换和数据报分组交换、路由选择算法、阻塞控制方法、X.25协议、综合业务数据网(ISDN)、异步传输模式(ATM)及网际互连原理与实现。

二、网络层的功能

①定义了基于IP协议的逻辑地址

②链接不同的媒介类型

③选择数据通过网络的最佳路径

三、IP数据包格式

IP 是 互联网协议 ( internet protocol ) 的简称,是 TCP/IP 协议栈中的网络层协议。IP 协议在发展的过程中,衍生出 IPv4 和 IPv6 两个不同版本。其中,历史版本 IPv4 目前仍广泛使用;后继版本 IPv6 世界各地正在积极部署。

IP 协议的通信单元是 IP 包 ( packet ),同样分为 IPv4 和 IPv6 两个版本,本节重点研究 IPv4 包结构。虽然我们对 IPv4 包结构仍一无所知,但经过网络层的学习,我们可以大致猜测一下:它应该分为头部和数据两大部分;其中头部应该包含源地址、目的地址以及数据类型等字段。

1.版本

IP 头部第一个字段是 版本 ( version ),它占用 4 个比特,位于 IP 包的最前面,也就是第一个字节的高 4 位。采用 IP 协议通信的双方,使用的版本必须一致。对于 IPv4 ,该字段的值必须是 4 。

2.头部长度

由于 IP 头部可能包含数量不一的 可选选项 ,因此需要一个字段来记录头部大小,进而确定数据的偏移量,这就是 头部长度 ( internet header length , IHL )。

IHL 字段同样占用 4 个比特,它用来说明头部由多少个 32 位字组成。上述 IP 包结构图中,每一行就是一个 32 位字,由 32 个比特位构成,也就是 4 字节。

如果 IP 包不包含任何选项,头部大小为 5 个 32 位字(图中前 5 行),IHL 字段值则为 5 ( 二进制 0101 )。IHL 最大值为 15 ( 二进制 1111 ),因此 IP 头部最大为 60 字节,其中选项部分为 40 字节。

3.服务类型

占 8 位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998 年 IETF 把这个字段改名为区分服务(Differentiated Services,DS)。只有在使用区分服务时,这个字段才起作用。

4.包裹总长

全长 ( total length )字段占 16 位,它定义了 IP 包的总长度,包括头部和数据,单位为字节。这个字段最大值是65535,因此理论上最大的 IP 可以达到 65535 字节。当 IP 包长度大于下层数据链路协议 MTU 时,IP 包就必须被 分片 (拆分成多个包)。

5.重组标识

用来标识数据报,占 16 位。IP 协议在存储器中维持一个计数器。每产生一个数据报,计数器就加 1,并将此值赋给标识字段。当数据报的长度超过网络的 MTU,而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。具有相同的标识字段值的分片报文会被重组成原来的数据报。

6.标志

占 3 位。第一位未使用,其值为 0。第二位称为 DF(不分片),表示是否允许分片。取值为 0 时,表示允许分片;取值为 1 时,表示不允许分片。第三位称为 MF(更多分片),表示是否还有分片正在传输,设置为 0 时,表示没有更多分片需要发送,或数据报没有分片。

7.段偏移量

占 13 位。当报文被分片后,该字段标记该分片在原报文中的相对位置。片偏移以 8 个字节为偏移单位。所以,除了最后一个分片,其他分片的偏移值都是 8 字节(64 位)的整数倍。

8.生存时间(TTL)

表示数据报在网络中的寿命,占 8 位。该字段由发出数据报的源主机设置。其目的是防止无法交付的数据报无限制地在网络中传输,从而消耗网络资源。

路由器在转发数据报之前,先把 TTL 值减 1。若 TTL 值减少到 0,则丢弃这个数据报,不再转发。因此,TTL 指明数据报在网络中最多可经过多少个路由器。TTL 的最大数值为 255。若把 TTL 的初始值设为 1,则表示这个数据报只能在本局域网中传送。

9.协议代码

表示该数据报文所携带的数据所使用的协议类型,占 8 位。该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。

例如,TCP 的协议号为 6,UDP 的协议号为 17,ICMP 的协议号为 1。

10.首部检验和

用于校验数据报的首部,占 16 位。数据报每经过一个路由器,首部的字段都可能发生变化(如TTL),所以需要重新校验。而数据部分不发生变化,所以不用重新生成校验值。

11.源地址

表示数据报的源 IP 地址,占 32 位。

12.目的地址

表示数据报的目的 IP 地址,占 32 位。该字段用于校验发送是否正确。

13.可选字段

该字段用于一些可选的报头设置,主要用于测试、调试和安全的目的。这些选项包括严格源路由(数据报必须经过指定的路由)、网际时间戳(经过每个路由器时的时间戳记录)和安全限制。

14.数据部分

表示传输层的数据,如保存 TCP、UDP、ICMP 或 IGMP 的数据。数据部分的长度不固定。

四、其他网络层协议

1.ICMP协议

ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。它属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

ICMP 是 TCP/IP 模型中网络层的重要成员,与 IP 协议、ARP 协议、RARP 协议及 IGMP 协议共同构成 TCP/IP 模型中的网络层。ping 和 tracert是两个常用网络管理命令,ping 用来测试网络可达性,tracert 用来显示到达目的主机的路径。ping和 tracert 都利用 ICMP 协议来实现网络功能,它们是把网络协议应用到日常网络管理的典型实例。

从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性。当路由器在处理一个数据包的过程中发生了意外,可以通过ICMP向数据包的源端报告有关事件。

其功能主要有:侦测远端主机是否存在,建立及维护路由资料,重导资料传送路径(ICMP重定向),资料流量控制。ICMP在沟通之中,主要是透过不同的类别(Type)与代码(Code) 让机器来识别不同的连线状况。

ICMP 是个非常有用的协议﹐尤其是当我们要对网路连接状况进行判断的时候。

2.ARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时,将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。

ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、ARP。NDP用于在IPv6中代替地址解析协议。

3.RARP协议

反向地址转换协议,即RARP(Reverse Address Resolution Protocol)。 反向地址转换协议(RARP)允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。网络管理员在局域网的网关路由器里创建一个表以映射物理地址(MAC)和与其对应的 IP 地址。当设置一台新的机器时,其 RARP 客户机程序需要向路由器上的 RARP 服务器请求相应的 IP 地址。假设在路由表中已经设置了一个记录,RARP 服务器将会返回 IP 地址给机器,此机器就会存储起来以便日后使用。 RARP 可以使用于以太网、光纤分布式数据接口及令牌环 LAN等。

RARP协议的产生原因

ARP(地址解析协议)是设备通过自己知道的IP地址来获得自己不知道的物理地址的协议。假如一个设备不知道它自己的IP地址,但是知道自己的物理地址,网络上的无盘工作站就是这种情况,设备知道的只是网络接口卡上的物理地址。这种情况下应该怎么办呢?RARP(逆地址解析协议)正是针对这种情况的一种协议。

RARP以与ARP相反的方式工作。RARP发出要反向解析的物理地址并希望返回其对应的IP地址,应答包括由能够提供所需信息的RARP服务器发出的IP地址。虽然发送方发出的是广播信息,RARP规定只有RARP服务器能产生应答。许多网络指定多个RARP服务器,这样做既是为了平衡负载也是为了作为出现问题时的备份。

RARP协议的工作原理

①源主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;

②本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;

③如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;

④如果不存在,RARP服务器对此不做任何的响应;

⑤源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。

END


http://chatgpt.dhexx.cn/article/YwKs8O5p.shtml

相关文章

网络层的各层协议

网络层的各层协议 目录 一、IP数据包格式 二、Icmp协议介绍 2.1 ICMP协议 2.2 ICMP协议的封装 三.ARP协议介绍 3.1 什么是ARP协议 3.2 ping命令 3.3 TRACERRT命令 3.4ARP协议工作原理 四、ARP攻击原理 一、IP数据包格式 协议字段 IP数据包格式&#xf…

网络层协议------IP协议

这里写目录标题 IP协议基本概念协议头格式网段划分特殊的ip地址私网ip地址和公网ip地址ip地址的数量限制路由 IP协议 IP协议:其实就是TCP/IP协议中对于网络层的一个协议(注意IP协议是TCP/IP协议族中最为核心的协议,因为对于上层的数据&#…

网络协议层

1.osi七层模型以及每层的都是干什么的 七层模型分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。 数据链路层&…

网络协议:网络层传输层

目录 网络层 网络层首部 网络层首部--总长度 网络层首部--标识、标志 网络层首部--片偏移 网络层首部--生存时间 ping的几个用法 传输层 UDP UDP--数据格式 UDP--检验和(Checksum) 端口 网络层 网络层数据包(IP数据包,Pac…

第四讲:网络层协议

文章目录 一、网络层功能二、IP数据包的格式1、IP数据包格式2、各字段说明 三、ICMP协议1、ICMP封装与格式2、ping命令2.1 ping命令的各种用法 四、ARP协议1、什么是ARP协议?2、ARP协议是如何工作的?3、ARP工作原理4、windows当中如何查看ARP缓存表5、AR…

网络层协议的介绍

目录 ICMP协议(Internet控制报文协议) 网络层的功能 *定义了基于IP协议的逻辑地址 *连接不同的媒介类型 *选择数据通过网络的最佳路径 总体结构 IP数据包格式ICMP协议介绍ARP协议介绍ARP攻击原理 1,IP数据包格式 协议字段 版本&…

网络层协议

网络层有四个协议:ARP协议,IP协议,ICMP协议,IGMP协议。 ARP协议为IP协议提供服务,IP协议为ICMP协议提供服务,ICMP协议为IGMP协 议提供服务。 ARP协议:将IP地址通过广播,目标Mac地址是FF-FF-FF…解析目标IP地址的Mac 地址。(局域网中)通过arp -a可以查看Mac地址。…

详解网络层协议(ICMP,ARP)

目录 1、网络层功能: 2、IP数据包格式: 3、ICMP协议: 4、请求超时和目标主机不可达的区别: 5、ICMP协议的封装: 6、ping 命令的使用: 7、ARP协议: 8、ARP工作原理: 9、ARP欺骗&a…

网络层的协议介绍

文章目录 IP数据包格式ICMP协议(Internet控制报文协议)ARP协议概述ARP攻击原理本章总结 IP数据包格式 协议字段 IP数据包格式(分为20字节的固定部分,表示每个IP数据包必须包含的部分,和40字节的可变长部分&#xff…

4、网络层协议

目录 IP协议 IPV4 IPv6 ARP协议 IGMP协议 ICMP协议 路由协议 OSPF协议 RIP协议 BGP协议(边界网关) IP协议 网络层的IP协议是构成Internet的基础。网络上每一个节点都必须有一个独立的Internet地址(IP地址)。每个计算机…

【网络】网络层协议——IP

目录 网络层IP协议IP基础知识IP地址IP报头格式网段划分CIDR 特殊的IP地址IP地址的数量限制私有IP地址和公有IP地址 路由IP总结 网络层 在复杂的网络环境中确定一个合法的路径。 IP协议 IP协议作为整个TCP/IP中至关重要的协议,主要负责将数据包发送给最终的目标计…

网络层协议 IP

目录 IP协议 基本概念 协议头格式(重要) 分片了如何组装: 那么判断是否片偏移就是: 分片对UDP和TCP有影响吗? 总结 网段划分(重要) 下面有两个例子: 特殊的IP地址 …

网络层协议协议介绍

网络层协议协议介绍 文章目录 网络层协议协议介绍一、网络层的功能二、IP数据包的格式三、ICMP协议(internet控制报文协议)3.1icmp协议3.2ICMP协议的封装3.3 Ping命令的用法 四、ARP协议介绍4.1什么是ARP协议4.2ARP协议的作用4.3ARP工作原理 一、网络层的功能 1、定义了基于IP…

IP 协议(网络层协议)

IP协议 IP 协议作用地址管理动态分配 IP 地址NAT 机制IPv6IP 地址的组成 路由选择 IP 协议作用 主要有两点 : 地址管理 为每个上网的设备分配一个唯一地址. 路由选择 两台主机间的信息交互, 具体走哪条线路. 地址管理 先来看看 IP协议 报文格式 : IP 协议最主要就是 32 位的…

网络层协议总结

网络层,说简单点,就是在复杂的网络环境中确定一个合适的路径。 有四个协议:ARP协议,IP协议,ICMP协议,IGMP协议。 IP协议 1、概念(协议内容即设定ip地址,实现数据传输) I…

Java--三目运算符

文章目录 前言内容总结end 前言 在判断这方面我们经常用到的有if / if ... else / if ... else if / switch case之类的,有一种非常简单的,能将if原本需要几行代码才能总结出来的内容,只需要一行代码就能书写出来的,这就是今天我要介绍的三目运算符. 内容 先给出一个输入的例…

python和java中的三目运算符

前言: 作者:神的孩子在歌唱 大家好,我叫智 Python 三元运算符用于根据条件选择两个值之一。它是 if-else 语句的一个缩影,它将两个值之一分配给一个变量。Python 三元运算符的语法是: [statement_1] if [expression] …

java使用三目运算符来判断成绩

**题目:**利用条件运算符的嵌套来完成此题:学习成绩>90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 程序分析:(a>b)?a:b这是条件运算符的基本例子。 三目运算符: (判断式…

java运算符(算数运算符、三目运算符、位运算符)

java运算符 1 运算符:算术运算符%:求余运算符。/:除法运算符。自增运算符三目运算符 (条件表达式)?表达式1:表达式2;练习题位运算符 2 程序流程控制2.1 if-else结构2.2 switch-case结构2.3 循环结构之for循环2.4 循环…

js三目运算符

三木元算符样式: 条件判断 ? A(是) : B(否) 并返回值 判断条件是否成立,若成立返回A,若不成立返回B 三目运算符极大的简化了if语句,同时又可以直接对判断的值进行返回,基本等同于在if else …