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

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.mzph.cn/news/87242.shtml

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

相关文章

Swift SwiftUI 隐藏键盘

如果仅支持 iOS 15 及更高版本,则可以通过聚焦和取消聚焦来激活和关闭文本字段的键盘。 在最简单的形式中,这是使用 FocusState 属性包装器和 focusable() 修饰符完成的-第一个存储一个布尔值,用于跟踪第二个当前是否被聚焦。 Code struct C…

视频直播美颜sdk与计算机视觉的奇妙结合

在数字时代,视频直播已经成为了人们分享生活、娱乐互动的重要方式之一。而随着社交媒体和在线直播平台的不断发展,用户们对于直播质量和体验提出了越来越高的要求。其中之一就是美颜效果。美颜不仅仅是为了矫正自身缺陷,它更是一种增强直播吸…

牛客练习赛116

(0条未读通知) 牛客练习赛116_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com) A.等差数列 对于此题可以分为两类: 1.当k 0,此时A1,A2...值都为a 2.当k ! 0,此时又分为两大类: 1.平局(发现A1,A2,A3等连…

Automation Anywhere推出新的生成式AI自动化平台,加速提高企业生产力

在9 月 19 日的Imagine 2023 大会上,智能自动化领域的领导者 Automation Anywhere 宣布对其自动化平台进行扩展。推出了新的 Responsible AI Layer,并宣布了四项关键产品更新,包括全新的 Autopilot,它可以利用生成式 AI &#xff…

堆的介绍与堆的实现和调整

个人主页:Lei宝啊 愿所有美好如期而遇 目录 ​​堆的介绍: 关于堆的实现及相关的其他问题: 堆的初始化: 堆的销毁: 插入建堆: 堆向上调整: 交换两个节点的值: 堆向下调整&a…

邓俊辉《数据结构》→ “2.6.5 二分查找(版本A)”之“成功查找长度”递推式推导

【问题描述】 邓俊辉的《数据结构(C语言版)(第3版)》(ISBN:9787302330646)中,开始于第48页的“2.6.5 二分查找(版本A)”内容在第50页详述了“成功查找长度”的…

【数据结构】排序合集(万字详解)

文章目录 前言插入排序希尔排序选择排序堆排序快速排序hoare原生版本挖坑法前后指针法三数取中优化随机数取key优化三路划分版非递归 归并排序递归非递归调整边界单次归并单次拷贝 总结 前言 排序,以字面意思来说就是通过特定的算法将一组或多组无序或者接近有序的…

02Redis的命令行客户端和桌面客户端的下载和安装

Redis桌面客户端 安装完成Redis服务,我们就可以在Redis的客户端操作Redis的数据库实现数据的CRUD了,客户端分为三类命令行客户端, 图形化桌面客户端,编程客户端 命令行客户端 Redis安装完成后就自带了命令行客户端: redis-cli [options] [commonds] -h选项:指定…

矢量图形编辑软件illustrator 2023 mac软件特点

illustrator 2023 mac是一款矢量图形编辑软件,用于创建和编辑排版、图标、标志、插图和其他类型的矢量图形。 illustrator mac软件特点 矢量图形:illustrator创建的图形是矢量图形,可以无限放大而不失真,这与像素图形编辑软件&am…

计算机网络 实验二 交换机的基本配置

实验二 交换机的基本配置 实验目的 • 掌握交换机的配置方式及切换命令; • 掌握交换机端口的基本配置; • 掌握交换机mac地址的查看与管理方法。 实验设备 以太网交换机一台服务器一台PC机五台配置电缆、网线若干 网络拓扑及IP地址分配 给计算…

Docker部署ActiveMQ消息中间件

1、准备工作 docker pull webcenter/activemq:5.14.3 Pwd"/data/software/activemq" mkdir ${Pwd}/data -p2、运行容器 docker run -d --name activemq \-p 61616:61616 \-p 8161:8161 \-v ${Pwd}/data:/opt/activemq/data \-v /etc/localtime:/etc/localtime \--r…

服务器补丁管理软件

随着漏洞的不断上升,服务器修补是增强企业网络安全的典型特征。作为业务关键型机器,计划服务器维护的停机时间无疑是一件麻烦事。但是,借助高效的服务器补丁管理软件(如 Patch Manager Plus),管理员可以利用…

UE5读取json文件

一、下载插件 在工程中启用 二、定义读取外部json文件的函数,参考我之前的文章 ue5读取外部文件_艺菲的博客-CSDN博客 三、读取文件并解析为json对象 这里Load Text就是自己定义的函数,ResourceBundle为一个字符串常量,通常是读取的文件夹…

UML活动图

在UML中,活动图本质上就是流程图,它描述系统的活动、判定点和分支等,因此它对开发人员来说是一种重要工具。 活动图 活动是某件事情正在进行的状态,既可以是现实生活中正在进行的某一项工作,也可以是软件系统中某个类…

Ubuntu上通过源码方式安装Redis

上一篇文章Ubuntu上安装、使用Redis的详细教程已经介绍了再Ubuntu操作系统上安装Redis的详细过程,但是因为安装的Redis只有最主要的配置文件和redis-server,为了更深入地学习Redis和进行更复杂的操作,需要安装一个完整的Redis服务。 这篇文章…

SEO方案尝试--Nuxtjs项目基础配置

Nuxtjs 最新版 Nuxt3 项目配置 安装nuxtjs 最新版 Nuxt3 参考官网安装安装插件安装ElementPlus页面怎么跳转,路由怎么实现404页面该怎么配置配置 网页的title 安装nuxtjs 最新版 Nuxt3 参考官网安装 安装插件 安装ElementPlus 安装 Element Plus 和图标库 # 首先&…

EasyWindow - Android 悬浮窗框架

官网 https://github.com/getActivity/EasyWindow 项目介绍 本框架意在解决一些极端需求,如果是普通的 Toast 封装推荐使用 Toaster 集成步骤 如果你的项目 Gradle 配置是在 7.0 以下,需要在 build.gradle 文件中加入 allprojects {repositories {/…

【C++面向对象侯捷】8.栈,堆和内存管理

文章目录 栈,堆stack object的生命周期static local object的生命周期global object的生命周期heap objects 的生命期new:先分配memory,再调用构造函数delete: 先调用析构函数,再释放 memory动态分配所得的内存块,in V…

腾讯mini项目-【指标监控服务重构】2023-08-25

今日已办 traefik proxy jaeger Prometheus prometheus | Prometheus 配置完依然无法实现 web-url的前缀访问【待解决】 Set span storage type : elasticsearch services:elasticsearch:image: elasticsearch:7.17.12container_name: elasticsearchnetworks:- backend # …

超好用的接口自动化框架,lemon-easytest内测版发布,赶紧用起来~

easytest easytest 是一个接口自动化框架。 功能特点: 支持 http 接口测试 支持 json,html,xml 格式的响应断言 支持数据库断言 支持用例标记筛选 支持用例失败重运行 支持多线程 安装 pip install lemon_easytest 快速使用 不需要写任何代码…