第四讲:网络层协议

article/2025/8/19 13:36:38

文章目录

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

一、网络层功能

1、定义了基于IP协议的逻辑地址,就是IP地址

2、连接不同的媒介类型

3、选择数据通过网络的最佳路径,完成逻辑地址的寻址

二、IP数据包的格式

1、IP数据包格式

数据封装的时候再无网络层会封装IP地址的头部,形成IP数据包,那么IP数据包是怎么样的格式?里面包含哪些内容?

img

2、各字段说明

**●版本号(4bit):**指IP协议版本,并且通信双方使用的版本必须一致,目前我们使用的是IPV4,表示为0100。

●首部长度(4bit):IP数据包的报头长度。

●优先级与服务类型(8bit):该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级。用于实现Qos(服务质量)的要求。

●总长度(16bit):IP数据包的总长度,最长为2^16次方的字节,就是65535字节,包括报头和数据。

●标识符(16bit):该字段用于表示IP数据包的标识符,当IP对上层数据进行分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组,标识符字符用于标志一个数据包,以便接收节点可以重组被分片的数据包。分片的好处:可以提高传输速率。

●标志(3bit):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出。

●段偏移量(13bit):在一个分片序列中,如何将各个分片连接起来,按照什么下顺序连接起来。

●TTL生命周期(8bit):可以防止一个数据包在网络红无线循环的转发下去,每经过一台路由器进行-1,当TTL的值为0时,该数据白将会被丢弃。

●协议号(8bit):封装的上层哪些协议,(上层为传输层)

●首部校验和(16bit):只检验数据包的首部,不包括数据部分,这是因为数据每经过一次路由器,都要重新计算一下首部校验和(因为一些字段如生存时间,标志,偏移量等可能发生变化)

●源地址(32bit):源ip地址,表示发送端的IP地址

●目标地址(32bit):目标ip地址,表示接收端的ip地址

●可选项:可以输入创建该数据包的时间等(相当于备注这个数据包)

●数据:上层数据。

三、ICMP协议

●ICMP是一个“错误侦测与回馈机制”

●通过IP数据包封装的,用来发送错误和控制消息

●从 ICMP 的报文格式来说,ICMP 是 IP 的上层协议。但是 ICMP 是分担了 IP 的一部分功能。所以,他也被认为是与 IP 同层的协议。

1、ICMP封装与格式

image-20220419111835285

2、ping命令

●在检查网络连通性时,ping命令是用的最多的。

●当我们ping一台主机时,本地计算机发出的就是一个典型的ICMP数据包,用来测试两台主机是否能够顺利连通,ping命令能够检查两台设备之间的双向连通性,即数据包能够到达对端,并且能够返回。

格式:ping 各种命令 ip地址或计算机域名

2.1 ping命令的各种用法

●-t :在windows操作系统中,默认情况下发送4个ping包,如果在ping命令后加上参数“- t”,系统将会一直不停的ping下去,按ctrl+c结束运行。

image-20220419112806910

●-a :显示主机名

image-20220419113329691

●-l 字节数 :一般情况下,ping包自带为32字节,有时为了检测数据包的通过情况,可以使用参数改变ping包的大小。

image-20220419113602844

●-n 发送个数 :指定发送包的个数,就是指定ping多少次

image-20220419113802354

●-S ip地址1 要ping的地址 :指定计算机某个网卡的ip去ping,因为计算机中会存在多个ip地址。

image-20220419190357504

●tracert ip地址 :在命令行中输入“tracert”并在后面加上一个IP地址,可以查询从本地到该IP地址所在的电脑要经过的路由器及其IP地址。

image-20220419115323867

注:内部的*是因为数据包丢失,可能路由器屏蔽了tracert功能或者超时未反馈。

四、ARP协议

1、什么是ARP协议?

●ARP协议是地址解析协议(Address Resolution Protoccol)

●是通过解析IP地址的得到的MAC地址的,是一个在网络协议包中及其重要的网络传输协议,它与网卡有着及其密切的关系。

●在TCP/IP分层结构中,把ARP划分为网络层,为什么?

●因为在网络层看来,源主机与目标主机时通过IP地址进行识别的,而在以太网中使用MAC地址进行寻址,以标识不同的主机,那么久需要一个协议将IP地址转换为MAC地址,由此就出现了ARP协议,所有ARP协议在无网络层被应用,它是网络层与链路层连接的重要枢纽,每当一个数据要发送的时候都需要在通过ARP协议将IP地址转换成MAC地址,在IP层及其以上的层次来看,它们只标识IP地址,从不跟硬件打交道。

2、ARP协议是如何工作的?

●为了实现IP地址与MAC地址的查询与转换,ARP协议引入了ARP缓存表的概念。每台主机或路由器在维护这一个ARP缓存表(ARP table)这个表包含IP地址到MAC地址的映射关系,表中记录了<IP地址,MAC地址>对,我们称之ARP表项。

●它们是主机最近运行时获得关于其它主机的IP地址到MAC地址的映射,当需要发送数据的时候,户籍就会根据数据报中的目标IP地址信息,然后再ARP缓存表中性查找对应的MAC地址,最后通过网卡将数据发送出去,ARP缓存表包含了一个寿命值(TTL,也称作生存时间)它记录每个ARP表项的生存时间,生存时间到了就会从缓存表中删除,一个表项通常生存时间是120秒,这些时间也可设置,但一般默认即可。

3、ARP工作原理

两台局域网主机互相通信为例讲解原理(ARP解析过程)

①当pc1主机发送数据给pc2时,首先在自己本地ARP缓存表中检查主机PC2匹配的MAC地址。

image-20220419182743938

②如果pc1主机的缓存表中没有找到响应的条目,它将询问pc2主机的MAC地址,然后将ARP请求帧广播到本地网络的所有主机上,该帧中包括源主机pc1的IP和MAC地址加上pc2主机的ip地址和未知的MAC地址(FF-FF-FF-FF-FF-FF)。

image-20220419183537732

③本地网络中所有主机都接收到ARP请求,并且检查是否与主机的IP地址想匹配,如果发现请求这种的IP地址与自己IP不匹配则丢弃ARP请求。如果相匹配,则将pc1主机的地址和MAC地址添加到本地缓存表中,然后这回应广播,向pc1主机发送自己的MAC地址(数据帧为单播)。

image-20220419183654110

④主机pc1收到主机pc2发回的ARP消息,将pc2的IP地址与MAC地址,添加到自己ARP缓存表中,然后两台主机即可进行单播通信。

image-20220419184114027

4、windows当中如何查看ARP缓存表

arp -a            ####查看arp缓存表(a表示为:all)arp -d[ip]        ####删除指定的arp缓存表(d表示为:delete)arp -s IP MAC     ##### 删除arp静态绑定(s表示为:static)

5、ARP攻击欺骗原理

●欺骗其它所有计算机

●欺骗被攻击计算机

5.1 ARP攻击

●ARP攻击发送的是ARP应答,也是ARP应答的MAC地址为虚假地址,所以在其他主机想要进行通信时,会将目的的MAC地址设置成此虚假MAC地址,导致其无法正常通信。

●例如:当主机pc1(被攻击主机)想访问外网时,会发送数据到达网关,此时数据会被主机pc2(攻击主机)获取,主机pc2将发送虚假的MAC地址到达网关,当网关收到虚假的ARP应答更新ARP条目后,下次再发送数据到pc1,就会发送到虚假的MAC地址中,也就是主机pc2中,到最后通信故障。

5.2 ARP欺骗

●ARP欺骗原理与ARP攻击原理类似,但是效果不一样,ARP攻击是导致网络中断,而ARP欺骗的最终结果是流量通过自身达到监控或控制的目的。

假的ARP应答更新ARP条目后,下次再发送数据到pc1,就会发送到虚假的MAC地址中,也就是主机pc2中,到最后通信故障。


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

相关文章

网络层协议的介绍

目录 ICMP协议&#xff08;Internet控制报文协议&#xff09; 网络层的功能 *定义了基于IP协议的逻辑地址 *连接不同的媒介类型 *选择数据通过网络的最佳路径 总体结构 IP数据包格式ICMP协议介绍ARP协议介绍ARP攻击原理 1&#xff0c;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、网络层功能&#xff1a; 2、IP数据包格式&#xff1a; 3、ICMP协议&#xff1a; 4、请求超时和目标主机不可达的区别&#xff1a; 5、ICMP协议的封装&#xff1a; 6、ping 命令的使用&#xff1a; 7、ARP协议&#xff1a; 8、ARP工作原理&#xff1a; 9、ARP欺骗&a…

网络层的协议介绍

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

4、网络层协议

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

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

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

网络层协议 IP

目录 IP协议 基本概念 协议头格式&#xff08;重要&#xff09; 分片了如何组装&#xff1a; 那么判断是否片偏移就是&#xff1a; 分片对UDP和TCP有影响吗&#xff1f; 总结 网段划分&#xff08;重要&#xff09; 下面有两个例子&#xff1a; 特殊的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 位的…

网络层协议总结

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

Java--三目运算符

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

python和java中的三目运算符

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

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

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

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

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

js三目运算符

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

Java三目运算符易错题

先看一道题&#xff0c;下述代码的输出是什么&#xff1f; public static void main(String[] args) {char alpha A;int foo 65;boolean trueExp false;System.out.println(trueExp ? alpha : 0);System.out.println(trueExp ? alpha : foo);}答案如下&#xff1a; A 65 …

Java中三目运算符不为人知的坑

一、思考题 以下代码可能有什么错误&#xff1f;为什么&#xff1f; import java.util.HashMap; import java.util.Map;public class OneMoreStudy {public static void main(String[] args) {Map<String, Integer> map new HashMap<>();map.put("heihaozi…

JavaScript:三目运算符

HELLO 大家好&#xff01; 三目运算符是一个非常简单且使用的运算符。 是由两个运算符连接的三个操作数据或者表达式 条件表达式?表达式1:表达式0 当条件表达式为true则选择表达式1,反之false则选择表达式0 举个栗子 var age15; console.log(age<18?未成年:成年);结果为…

什么是三目运算符?三目运算符怎么使用?

1. 什么是三目运算符? 三目运算符又称为“三元运算符”和“条件运算符”&#xff0c;在java、C、C、python、JavaScript、PHP等编程语言中都有三目运算符。三目运算符的作用就是判断&#xff0c;可以理解为if条件判断的简化版。 2. 三目运算符的运算规则 三目运算符语法 布…

Java中的三目运算符

Java中的三目运算符 Java中的三目运算符关于三目运算符的面试题注意事项 Java中的三目运算符 1、三目运算符&#xff1a;又称之为三元运算符 2、格式&#xff1a;(关系表达式)?表达式1:表达式2; 3、如果关系表达式的结果为true&#xff0c;运算后的结果是表达式1&#xff1…