【计算机网络】IP协议第二讲(Mac帧、IP地址、碰撞检测、ARP协议介绍)

news2024/11/27 20:38:08

0

IP协议第二讲

  • 1.IP和Mac帧
  • 2.碰撞检测
    • 2.1介绍
    • 2.2如何减少碰撞发生
    • 2.3MTU
    • 2.4一些补充
  • 3.ARP协议
    • 3.1协议介绍
    • 3.2报文格式分析

1.IP和Mac帧

IP(Internet Protocol)和MAC(Media Access Control)帧是计算机网络中两个不同层次的概念,它们在网络通信中扮演不同的角色。下面是它们的相似点和区别以及各自的功能:

相似点

  1. 都与网络通信相关:IP 和 MAC 均涉及到网络通信,但它们位于不同的网络层次。
  2. 用于唯一标识设备:IP 地址和 MAC 地址都用于唯一标识计算机或网络设备。

区别:

  1. 层次不同:
    IP:IP 地址属于网络层,主要用于在全球范围内唯一标识和定位设备。它是逻辑地址,用于路由和寻址。
    MAC:MAC 地址属于数据链路层(二层),用于在局域网范围内唯一标识网络适配器(通常是网卡)。它是物理地址,用于数据帧的目标和源地址。
  2. 作用不同:
    IP:IP 地址用于在不同网络之间路由数据,允许数据在全球范围内传输。它提供了一种逻辑地址,允许设备跨越不同网络进行通信。
    MAC:MAC 地址用于在同一局域网内的设备之间直接通信。它是数据链路层的地址,用于在局域网上定位特定的网络适配器。
  3. 封装不同:
    IP:IP 地址通常包含在网络数据包(如 IP 数据报)中,该数据包可以跨越不同网络传输。
    MAC:MAC 地址通常包含在数据帧(如以太网帧)中,该数据帧在局域网内传输。
  4. 范围不同:
    IP:IP 地址是全球唯一的,由互联网注册机构分配,用于标识全球互联网上的设备。
    MAC:MAC 地址在局域网内唯一,通常由网络适配器制造商分配。
  5. 双方的层次:
    IP:IP 属于网络层,负责在不同网络之间路由数据,提供全球唯一的逻辑地址。它位于 OSI 模型的网络层。
    MAC:MAC 属于数据链路层,用于在同一局域网内的设备之间直接通信。它位于 OSI 模型的数据链路层。
    联系:
    在局域网中,通常需要将全球唯一的 IP 地址映射到局域网内的唯一 MAC 地址,以便设备可以在局域网上找到彼此。ARP(Address Resolution Protocol)用于在局域网中查找 IP 地址与 MAC 地址之间的映射关系。
    各自的功能:
    IP:主要功能包括全球唯一的逻辑寻址、路由、分包和重新组装数据报、错误检测和错误报告等。IP 地址允许设备在全球范围内进行通信。
    MAC:主要功能包括在局域网上唯一标识网络适配器、数据帧的目标和源地址定位、帧同步、冲突检测和冲突解决。MAC 地址用于设备在同一局域网内的直接通信。
  • 总之,IP 和 MAC 在网络通信中扮演不同的角色,分别位于不同的网络层次。IP 用于在全球范围内唯一标识和路由设备,而 MAC 用于在局域网内唯一标识网络适配器。这两者通常需要协同工作,以实现数据的全球传输和局域网内的直接通信。

2.碰撞检测

2.1介绍

碰撞检测是一种网络通信中的冲突检测机制,它用于检测在以太网等共享介质网络中的数据包碰撞。在早期的以太网中,多台设备共享同一物理传输介质,当两个或更多设备尝试同时发送数据包时,数据包可能会在传输介质上发生碰撞,从而损坏数据包。为了检测这些碰撞并采取适当的措施,采用了碰撞检测机制。

碰撞域是一个物理或逻辑区域,在这个区域内的设备在发送数据包时可能会发生碰撞。通常,碰撞域与局域网的物理边界有关。设备在同一碰撞域内,它们之间的数据包冲突会导致碰撞。在以太网中,碰撞域通常由一组通过集线器(hub)连接到共享传输介质的设备组成。

生活例子比喻:

  • 想象一下你参加了一个大型聚会,聚会的人数众多,人们围坐在一个共享的圆桌周围。每个人都想与其他人交谈,但只有一台麦克风可供使用,用于说话。在这种情况下,圆桌就是碰撞域,共享的麦克风代表传输介质。

  • 没有碰撞:当有人想说话时,他们举手示意,等待麦克风空闲,然后开始说话。这时没有碰撞发生,因为只有一个人在使用麦克风。

  • 碰撞发生:现在假设两个人同时举手示意,等待麦克风空闲。如果两个人同时开始说话,他们的声音会混合在一起,听起来会很混乱,这就是碰撞。在网络中,这意味着数据包会在传输介质上发生冲突,从而导致数据包损坏。

  • 解决碰撞:在人们发现发生碰撞时,他们会停止说话,等待一段随机的时间,然后再次尝试。这个随机等待的时间有助于减少再次发生碰撞的可能性。在网络中,也有类似的机制,例如以太网的CSMA/CD(Carrier Sense Multiple Access with Collision Detection)协议,用于检测碰撞并采取适当的措施来避免碰撞继续发生。

2.2如何减少碰撞发生

  1. 减少局域网的主机总数量
  2. 用交换机划分碰撞域

2.3MTU

MTU(Maximum Transmission Unit)是指网络中的数据包可以传输的最大大小。它表示在一个网络中可以传输的数据包的最大尺寸,通常以字节为单位。MTU的大小取决于网络技术和设备,不同类型的网络可能具有不同的MTU。

MTU的大小对网络性能和数据包传输有重要影响。如果数据包的大小超过了网络的MTU,那么这些数据包需要被分片(拆分成更小的片段)才能在网络上传输。分片会增加网络负载和延迟,因此在设计网络和应用时,通常需要考虑MTU的大小。

为了减少碰撞,网络中的MTU通常会根据网络类型和设备进行调整,以确保数据包不会太大而导致碰撞。同时,也需要考虑到网络设备的缓冲区大小,以避免数据包被截断或丢失。不同的网络技术和协议可能具有不同的MTU值,例如以太网的标准MTU通常为1500字节。

2.4一些补充

Q:局域网的其他主机是不是得一直去监听有没有数据包发过来?发过来才分析是不是给自己的,不是就丢弃?
A:
在一个以太网局域网中,每个主机确实会监听网络上的数据包,但并不是一直去监听所有的数据包。监听是以太网设备的基本行为,但它并不会一直处理所有数据包。以下是一些重要概念和工作原理:

  1. 数据包的监听:每台主机和网络设备都会监听传输在网络上的数据包。这是以太网的基本工作方式。

  2. MAC地址:每个以太网设备都有一个唯一的MAC地址,用于标识设备。当一个数据包到达网络时,它的目标MAC地址与接收设备的MAC地址进行比较。如果匹配,设备会接收并处理该数据包。

  3. 广播域:局域网通常被划分为广播域。在同一广播域内的设备会接收该广播域内的广播数据包。广播数据包的目标MAC地址是一个特殊的值,表示发送给本广播域内的所有设备。

  4. 数据包过滤:虽然每台设备都会监听网络上的数据包,但通常只有目标MAC地址匹配设备的数据包才会被上层协议栈进一步处理。这是通过底层硬件和操作系统的网卡驱动程序来完成的。

  5. 网络堆叠:在接收到数据包后,操作系统的网络协议栈会进行进一步的处理,包括检查目标IP地址、端口号等信息,以决定是否将数据包传递给上层应用程序。这是一个分层处理的过程,只有符合条件的数据包才会到达应用层。

所以,虽然每台主机会监听网络上的数据包,但它们不会一直分析所有的数据包。只有在以下情况下,主机会更进一步分析数据包:

  • 数据包的目标MAC地址与主机的MAC地址匹配,或者是广播数据包(所有设备都会收到广播)。
  • 数据包的目标IP地址与主机的IP地址匹配(如果主机具有IP地址)。
  • 数据包的端口号等传输层信息与主机正在监听的端口号匹配(如果主机有相关的服务在运行)。

3.ARP协议

3.1协议介绍

  • ARP(Address Resolution Protocol)是一种用于将IP地址解析为物理MAC地址的协议,它通常用于局域网中。ARP协议的主要目的是帮助计算机确定要与其他计算机通信时的物理硬件地址。

以下是ARP协议的一些关键特点和工作原理:

  • IP到MAC地址解析:ARP用于将已知的IP地址映射到相应的MAC地址。当计算机需要与其他计算机通信时,它首先检查自己的ARP缓存(如果有的话),看看是否已经知道目标IP地址的MAC地址。如果没有,它将发送一个ARP请求。

ARP请求和响应:ARP工作方式如下:

  1. 发送ARP请求:计算机广播一个ARP请求,请求其他计算机告知它们的IP地址和MAC地址的映射关系。
  2. ARP响应:拥有被请求IP地址的计算机会响应ARP请求,将其IP地址和MAC地址的映射关系发送回请求计算机。
  3. ARP缓存:计算机通常会维护一个ARP缓存表,用于存储已知的IP地址和MAC地址映射关系。这些映射关系在通信过程中被建立,并在一段时间后过期。当计算机需要与某个IP地址通信时,它首先检查ARP缓存,以查看是否已经有相关信息。

ARP欺骗(ARP Spoofing):ARP协议的一个弱点是它没有对响应的来源进行验证,因此攻击者可以发送伪造的ARP响应,将合法IP地址映射到错误的MAC地址上。这种攻击被称为ARP欺骗,通常用于网络攻击,如中间人攻击。

ARP欺骗(ARP Spoofing)是一种网络攻击,攻击者通过欺骗目标计算机或网络设备来获取网络通信的控制权。这种攻击利用了ARP协议的弱点,即它没有对ARP响应的来源进行验证,因此攻击者可以发送伪造的ARP响应,欺骗其他设备将数据发送到攻击者指定的目标。

下面是有关ARP欺骗的详细介绍:

攻击原理

  1. ARP协议工作方式:在一个局域网中,计算机通常使用ARP协议来将IP地址解析为MAC地址。当计算机需要与其他设备通信时,它会广播一个ARP请求,询问某个IP地址对应的MAC地址是什么。拥有该IP地址的设备会回复ARP响应,包含其MAC地址。
  1. 攻击者的伪装:ARP欺骗攻击者通常位于目标计算机和网络路由器之间,使其能够拦截并修改通信数据。攻击者发送伪造的ARP响应,宣称自己是目标IP地址的合法所有者,并将其自己的MAC地址映射到该IP地址上。
  1. 目标受害:一旦攻击者成功发送伪造的ARP响应,局域网中的其他设备将开始将数据发送到攻击者的MAC地址,而不是真正的目标设备。这样,攻击者就能够捕获、修改或阻止通信数据。

攻击的目的

  • 数据嗅探:攻击者可以拦截网络通信并捕获敏感数据,例如登录凭据、密码等。
  • 中间人攻击:攻击者可以中间人攻击,将自己置于通信双方之间,窃取通信数据并可能修改或篡改数据。
  • 网络拒绝服务(DoS):攻击者可以将目标设备的通信路由到无效的位置,从而阻止目标设备与网络的正常通信。

防范措施
防范ARP欺骗攻击需要采取一些安全措施,包括但不限于:

  1. 使用静态ARP表项:将关键网络设备的ARP表项设置为静态,以避免被欺骗。
  2. 网络监控:实施网络监控和入侵检测系统,以检测异常的ARP活动。
  3. 网络隔离:将网络划分为不同的子网,以减小攻击面。
  4. ARP缓存超时:减少ARP缓存的超时时间,以减少攻击者的机会。
  5. 加密通信:使用加密通信协议,确保即使通信被拦截也无法轻易解密。

ARP表冲突:当两台计算机试图使用相同的IP地址时,可能会导致ARP表冲突。这种情况下,计算机可能会收到冲突通知,然后必须解决冲突以确保正确的IP到MAC地址映射。

  • 总之,ARP协议在局域网中起着关键作用,它通过将IP地址解析为物理MAC地址,使计算机能够在同一网络中直接通信。ARP是一个简单而重要的网络协议,但它也容易受到安全威胁,因此网络管理员需要采取措施来防止ARP欺骗等攻击

3.2报文格式分析

000

先要清楚,一般说以太网地址就是指MAC地址。

  字段1是ARP请求的目的以太网地址,全1时代表广播地址。

  字段2是发送ARP请求的以太网地址。

  字段3以太网帧类型表示的是后面的数据类型,ARP请求和ARP应答这个值为0x0806。

  字段4表示硬件地址的类型,硬件地址不只以太网一种,是以太网类型时此值为1。

  字段5表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800。

  字段67表示硬件地址长度和协议地址长度,MAC地址占6字节,IP地址占4字节。

  字段8是操作类型字段,值为1,表示进行ARP请求;值为2,表示进行ARP应答;值为3,表示进行RARP请求;值为4,表示进行RARP应答。

  字段9是发送端ARP请求或应答的硬件地址,这里是以太网地址,和字段2相同。

  字段10是发送ARP请求或应答的IP地址。

  字段1112是目的端的硬件地址和协议地址。

ARP工作过程
0001
假设主机A和B在同一个网段,主机A要向主机B发送信息,具体的地址解析过程如下:

(1) 主机A首先查看自己的ARP表,如果ARP表中含有主机B对应的ARP表项,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

(2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

(3) 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。

(4) 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。

相关博客推荐:ARP协议详解

----------- 创作不易,点赞支持一下啦,祝君早日进大厂,冲冲冲 --------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1028697.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端Vue3+element-plus表单输入框实现Cron表达式校验

页面如下: 本来想手写正则表达式校验,结果发现很麻烦,cron表达式组成如下: 开发使用框架为vue3element-plus,于是选择cron-validator依赖。使用步骤如下: 1、通过npm install cron-validator命令安装&…

如何在Ubuntu系统部署RabbitMQ服务器并公网访问【内网穿透】

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…

Linux 中的make/makefile

一:背景 make是一个命令工具,是一个解释makefifile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C的nmake,Linux下GNU的make。可见,mak…

Doxygen在vs code配置

找到这个 就在这里面配置,如果要在原有的下面添加别忘了后面加个逗号,我在他前面加的所以我在上面加了个 //基础设置 “doxdocgen.c.triggerSequence”: “/", “doxdocgen.c.firstLine”: "/", “doxdocgen.c.commentPrefix”: &quo…

瑞芯微:基于RK3568的ocr识别

光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。亦即将图像中的文字进行识别,并以文本的形式返回。OCR的应用场景 卡片证件识别类:大陆、港澳…

软件测试进大厂,拿高薪,怎么做?看这里!

有些同学大学专业不对口,但有想进大厂想拿高薪心,只要你有想法,那就一定有实现的方法。 俗话说:“世间无难事,只怕有心人”。仔细思索一下,哪家大厂能缺软件测试这一重要职位。相对大学所学专业而言&#…

两数之和 三数之和【基础算法精讲 01】

灵神算法基础算法精讲[01] : 两数之和 三数之和【基础算法精讲 01】_哔哩哔哩_bilibili 167.两数之和 II - 输入有序数组 链接 : 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 思路 : 采用双指针的思想,因为给出的数组是有序的&…

Delft3D水动力与泥沙运动模拟实践技术应用

水体中泥沙运动是关系到防洪,调水等方面的重要问题,也是水利和水环境领域科研热点之一。水利数值模型,在环境影响评价、防洪规划等方面也有着广泛的应用。荷兰Delft研究所开发的Delft3D模型是世界上最先进的水动力之一,能够运用于…

5款精挑细选的软件,助你事半功倍

​ 在工作的时候,大家都喜欢通过一些好用有效率的工具,来让工作更加快速地完成,今天给大家带来的这5款软件,更是一款比一款还要惊喜! 1.在线文件转换——Aconvert ​ Aconvert 是一款在线文件转换服务,它…

AVR 单片机 调试环境 JTAG MKII

注意 驱动 的厂家: 如果驱动备改变为其他厂家的驱动 就与 AVR Studio7不兼容 保证驱动选择正确是 能够使用硬件调试的关键 如果驱动不对,使用 USB驱动修改工具 修改 比如 UsbDriverTool.exe

“三高”论文完美复现!基于PSO-VMD-MCKD方法的风机轴承微弱故障诊断,实现早期微弱故障诊断,MATLAB代码实现...

声明:对于作者的原创代码,禁止转售倒卖,违者必究! 本期文章思路来自振动测试与诊断期刊的一篇三高论文,点击链接可跳转。https://mp.weixin.qq.com/s/hmmDj5IwpaozeL4F0iI-2g 文章摘要如下: 针对风机滚动轴…

alist windows 命令行版本下载、使用

下载 下载地址 https://github.com/alist-org/alist/releases 文件下载链接 ,直接点击就能下载https://github.com/alist-org/alist/releases/download/v3.27.0/alist-windows-arm64.zip 安装 输入cmd,按enter键,会调出cmd命令行 输入 alis…

内存管理之虚拟内存

本篇遵循内存管理->地址空间->虚拟内存的顺序描述了内存管理、地址空间与虚拟内存见的递进关系,较为详细的介绍了作为在校大学生对于虚拟内存的理解。 内存管理 引入 RAM(内存)是计算机中非常重要的资源,由于造价的昂贵&…

前端对接阿里oss保姆级教程(第二章使用武器)

1.在前端项目下载ali-oss yarn add ali-oss 2.编写上传方法 const OSS require(ali-oss)const client new OSS({// 填写Bucket所在地域。我的杭州的,Region填写为oss-cn-hangzhou。region: oss-cn-hangzhou,//填写组件的密钥accessKeyId: ,accessKeySecret: ,/…

小试GraphQL

之前做的需求,基本都是REST风格,以github提供的api为例,比较二者差异。试用GraphQL,找寻其独到之处 REST REST[1] 一个URI代表一种资源 通过HTTP动词对资源进行操作 以创建一个仓库[2]为例 GET[3], PATCH[4]和 DELETE[5]类似 Gra…

〔023〕Stable Diffusion 之 界面主题 篇

✨ 目录 🎈 系统内置主题🎈 kitchen Theme 主题🎈 Catppuccin Theme 主题🎈 Cozy Nest 主题🎈 系统内置主题 可以通过命令行修改主题,在 webui-user.bat 文件中 set COMMANDLINE_ARGS 参数后面添加 --theme dark 来设置深色主题当然,系统设置里面也自带了很多的主题…

VS2015 设置工程目录不保存 .sdf或.db 文件、 Ipch 文件夹

VS2015 设置工程目录不保存 .sdf或.db 文件、 Ipch 文件夹 sdf或db文件、Ipch文件夹均较大,编译几次就可以达到几十兆。 为了便于工程保持,可以设置这些文件保存于工程之外,但又不影响工程的正常运行。 (PS:这些文件不…

家族小程序开发方案

家族小程序的开发需要考虑到家族成员之间的沟通和互动需求,以及家族文化传承和传承方式等因素。以下是一些开发家族小程序时需要考虑的方面: 家族文化传承:家族小程序需要考虑到家族文化传承的需求,包括家族历史、家族文化、家…

C++真的是 C加加

📝个人主页:夏目浅石. 📌博客专栏:C的故事 🏠学习社区:夏目友人帐. 文章目录 前言Ⅰ. 函数重载0x00 重载规则0x01 函数重载的原理名字修饰 Ⅱ. 引用0x00 引用的概念0x01 引用和指针区分0x03 引用的本质0x04…

【lesson8】冯诺依曼体系的介绍

文章目录 冯诺依曼体系是什么?为什么要有存储器?怎么实现数据传输的? 冯诺依曼体系是什么? 冯诺依曼体系是一种计算机体系结构,是现代计算机的基础被广泛应用。 如图所示: 输入设备:键盘&…