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


    0

    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是目的端的硬件地址和协议地址。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    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协议详解

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

  • 相关阅读:
    Gitlab使用
    【k8s学习2】二进制文件方式安装 Kubernetes之kubernetesmaster部署
    2022年0701-Com.Java.Basis第五课《针对流程控制的语句练习题》
    [carla入门教程]-6 小项目:基于carla-ros-bridge构建一个小型比赛赛道
    win10如何取消文件夹分组
    使用 Sealos 在离线环境中光速安装 K8s 集群
    python3-GUI概述及应用
    git导出log日志记录到本地文件
    ASL和二叉排序树
    20220701
  • 原文地址:https://blog.csdn.net/weixin_62892290/article/details/133132012