详解MAC帧、ARP、DNS、ICMP协议

这篇具有很好参考价值的文章主要介绍了详解MAC帧、ARP、DNS、ICMP协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

局域网通信原理

比如新建了一个内网,如果一台机器A找机器B,封FRAME时(OSI的第二层用的数据格式),要封装对方的MAC,开始时A不知道B的MAC,只知道IP,它就发一个ARP包,源IP是自己的,目的IP是B的,源MAC是自己的,目的MAC是广播的。然后这个请求包在内网内被广播,当其他机器接到这个包时,用目的IP和自己的IP比较,不是的话就丢弃。B接到时,发现IP与自己的一样,就答应这个包的请求,把自己的MAC送给A。如果B是其他子网的机器,那么路由器会判断出B是其他子网,然后路由器把自己的MAC返回给A,A以后再给B发包时,目的MAC封装的是路由器的。

局域网中任意时刻只能有一个主机发送消息,如果有多个消息被同时发送,会导致局域网的数据发生碰撞,发送无效,所以就有了以太网、令牌环网标准

令牌环网:局域网中持有令牌的人才可以放松消息

以太网:检测到发生碰撞,数据链路层协议就触发策略,暂时先不发送数据,等待一段时间,然后继续检测,这种策略称为:碰撞检测和碰撞避免算法

认识以太网

  • “以太网” 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等;
  • 例如以太网中的网线必须使用双绞线; 传输速率有10M, 100M, 1000M等;
  • 以太网是当前应用最广泛的局域网技术; 和以太网并列的还有令牌环网, 无线LAN等;

局域网通信的协议通常使用以太网协议

局域网不能太大,因为碰撞基数太大,发送碰撞的概率就增加了,那如果局域网就是很大该怎么办?我们可以使用交换机,

交换机:可以识别局部性碰撞,对碰撞数据不进行转发,划分碰撞域

以太网帧格式

详解MAC帧、ARP、DNS、ICMP协议,网络

目的地址和源地址是指网卡的硬件地址,也叫MAC地址,长度是48位,是在网卡出厂时固定的;
帧协议类型字段有三种值,分别对应IP、ARP、RARP;
帧末尾是CRC校验码

1.如何分离

由于以太网帧的首部与末尾的字段都是定长的,可以直接拿到以太网帧中的数据。

2.如何分用

根据报头中 类型 字段,将有效载荷交付给上层对应的协议。

在局域网当中,在任何时刻,只能有一个主机发送消息,如果多个消息被同时发送,会导致局域网中的数据发生碰撞,我们把一个局域网称为一个碰撞域

3.因为有碰撞域,一台主机发送数据的时候,是长了好还是短了好?

仔细看上图,规定为46-1500字节(MTU),如果小于46字节时,他会进行填充

MTU

MTU相当于发快递时对包裹尺寸的限制. 这个限制是不同的数据链路对应的物理层, 产生的限制.

以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;
最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;
如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation);
不同的数据链路层标准的MTU是不同的;

1.分片是只会在发送端分片吗?

并不是,在途中的路由器也可能会分片,不同的数据链路层标准的MTU是不同的

分片既然是不好的行为,那么我们该如何尽力避免分片呢?不知道大家还记不记得TCP的滑动窗口,滑动窗口为什么不一下把一大串数据全部发出去,而是分成很多段在发送出去,原因就在这里,一个数据包的最大长度称为MSS

MTU对于TCP/UDP协议的影响

UDP协议:

一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)), 那么就会在网络层分成多个IP数据报.
这多个IP数据报有任意一个丢失, 都会引起接收端网络层重组失败. 那么这就意味着, 如果UDP数据报在网络层被分片, 整个数据被丢失的概率就大大增加了.

TCP协议:

TCP的一个数据报也不能无限大, 还是受制于MTU. TCP的单个数据报的最大消息长度, 称为MSS(MaxSegment Size);
TCP在建立连接的过程中, 通信双方会进行MSS协商.
最理想的情况下, MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的MTU).
双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值.
然后双方得知对方的MSS值之后, 选择较小的作为最终MSS.
MSS的值就是在TCP首部的40字节变长选项中(kind=2)

ARP协议

虽然我们在这里介绍ARP协议, 但是需要强调, ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议;

ARP协议的作用

ARP协议建立了主机 IP地址 和 MAC地址 的映射关系.

  • 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址
  • 数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;
  • 因此在通讯前必须获得目的主机的硬件地址;

ARP数据报格式

详解MAC帧、ARP、DNS、ICMP协议,网络

  • 注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。
  • 帧类型是0806(ARP协议下)
  • 硬件类型指链路层网络类型,1为以太网;
  • 协议类型指要转换的地址类型,0x0800为IP地址;
  • 硬件地址长度对于以太网地址为6字节;
  • 协议地址长度对于和IP地址为4字节;
  • op字段为1表示ARP请求,op字段为2表示ARP应答。

下面这张图,展现了为什么说ARP协议是工作在网络层和数据链路层之间的协议

详解MAC帧、ARP、DNS、ICMP协议,网络

如果帧类型是IP类型则会直接向上分用,但如果是ARP请求,则不会继续向上了

ARP欺诈

详解MAC帧、ARP、DNS、ICMP协议,网络

这样的话很容易被中间人窃取,但是有了CA证书等,中间人拿到了以后也无法解密

DNS

DNS:域名解析系统

DNS是一整套从域名映射到IP的系统,TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序. 但是IP地址不方便记忆.于是人们发明了一种叫主机名的东西, 是一个字符串, 并且使用hosts文件来描述主机名和IP地址的关系

DNS使用的是UDP协议

递归查询和迭代查询

这个视频讲解的很好https://www.bilibili.com/video/BV1JZ4y1f7tU/?spm_id_from=333.337.search-card.all.click&vd_source=21f3027af56b85726fe87ebf679e81d1

ICMP协议

ICMP协议是一个 网络层协议
一个新搭建好的网络, 往往需要先进行一个简单的测试, 来验证网络是否畅通; 但是IP协议并不提供可靠传输. 如果丢包了, IP协议并不能通知传输层是否丢包以及丢包的原因

ICMP功能

ICMP正是提供这种功能的协议; ICMP主要功能包括:

确认IP包是否成功到达目标地址.
通知在发送过程中IP包被丢弃的原因.
ICMP也是基于IP协议工作的. 但是它并不是传输层的功能, 因此人们仍然把它归结为网络层协议;
ICMP只能搭配IPv4使用. 如果是IPv6的情况下, 需要是用ICMPv6;

详解MAC帧、ARP、DNS、ICMP协议,网络

ICMP报文格式

详解MAC帧、ARP、DNS、ICMP协议,网络

ICMP大概分为两类报文:

一类是通知出错原因
一类是用于诊断查询

1.有些面试官可能会问: telnet是23端口, ssh是22端口, 那么ping是什么端口?

ping命令基于ICMP, 是在网络层. 而端口号, 是传输层的内容. 在ICMP中根本就不关注端口号这样的信息.文章来源地址https://www.toymoban.com/news/detail-688064.html

到了这里,关于详解MAC帧、ARP、DNS、ICMP协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux云计算之网络基础4——ICMP协议和ARP协议

    目录 一、ICMP协议 ICMP报文被封装在IP数据报中发送 ICMP报文的种类 ICMP差错报告报文 ICMP询问报文 ICMP的典型应用 1.分组网间探测PING: 2.跟踪路由traceroute: ICMP报文结果统计 ping命令的使用 二、ARP地址解析协议 ARP:地址解析协议 ARP缓存表    ARP报文 ARP攻击与欺骗 ARP攻击 如何

    2024年04月14日
    浏览(58)
  • 计算机网络——Wireshark软件使用与协议分析(ARP协议、IP与ICMP分析)

            一、实验目的   学习 Wireshark 的基本操作,抓取和分析有线局域网的数据包;掌握以太网 MAC帧的基本结构,掌握 ARP 协议的特点及工作过程。  二、实验内容 使用 Wireshark 抓取局域网的数据包并进行分析: 1. 学习 Wireshark 基本操作:重点掌握捕获过滤器和显示过滤器

    2024年02月05日
    浏览(44)
  • 网络协议分析(一)(C语言实现---ethernet、arp、ip、icmp、udp、tcp)

    以太网协议是一种局域网通信协议,它通过物理层和数据链路层的协同工作,使用媒体访问控制地址和载波监听/冲突检测协议来实现计算机之间的稳定数据传输。在数据传输过程中,以太网会将数据封装成数据帧,并根据目标MAC地址来识别需要接收数据的计算机。通过这种方

    2024年02月06日
    浏览(50)
  • 计算机网络 day6 arp病毒 - ICMP协议 - ping命令 - Linux手工配置IP地址

    目录 arp协议 arp病毒欺骗 arp病毒的运行原理 arp病毒产生的后果: 解决方法: ICMP协议 ICMP用在哪里?     ICMP协议数据的封装过程 ​编辑 为什么icmp协议封装好数据后,还要加一个ip包头,再使用ip协议再次进行封装,也就是在网络层封装了2次?  2种类型的ICMP数据包 1、ec

    2024年02月16日
    浏览(49)
  • 基于Wireshark的ARP协议分析和IP报文、ICMP报文的分析|网络数据抓包|课程设计|traceroute|ping|

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 https://blog.csdn.net/yu_cblog/category_12379430.html?spm=1001.2014.3001.5482 目录 ​编辑前言 Wireshark软

    2024年02月10日
    浏览(45)
  • 【网络】数据链路层——MAC帧协议 | ARP协议

    🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言: 你只管努力,剩下的交给时间! 来到数据链路层后,完整的数据被叫做 数据帧 ,习惯上称之为MAC帧。 网络层的IP协议并不是将数据报直接发到了网络中,而是将数据报继续向下交付,给到了数据链路层。 如上图所示,

    2024年02月11日
    浏览(39)
  • IP数据包格式(ICMP协议与ARP协议)

    定义了基于IP协议的逻辑地址,就是IP地址 连接不同的媒介类型 选择数据通过网络的最佳路径,完成逻辑地址寻址 数据封装的时候在网络层会封装ip地址的头部,形成ip数据包 IP数据包格式 IP数据包格式:分为20字节的固定部分,表示每个IP数据包的部分,和40字节的可变长部

    2024年02月02日
    浏览(47)
  • 【数据链路层】网络基础 -- MAC帧协议与ARP协议

    用于两个设备(同一种数据链路节点)之间进行传递 在同一个局域网的主机,能不能直接通信?可以的,比如: 假如你正在上课,你的老师在课堂上问小明你昨天的作业怎么没做?这时候小明回答说他做了只不过交过去比较晚老师可能没看到。老师和小明交流的过程班级里面的

    2024年02月08日
    浏览(40)
  • 第四天 ICMP、ARP、TCP、UDP协议

    ICMP用来传递差错、控制、查询等信息。 ICMP是TCP/IP协议簇的核心协议之一,它用于在IP网络设备之间发送控制报文,传递差错、控制、查询等信息。 ICMP Echo Request和ICMP Echo Reply分别用来查询和响应某些信息,进行差错检测。 ICMP Echo消息常用于诊断源和目的地之间的网络连通性

    2024年04月16日
    浏览(35)
  • 网络ICMP 协议详解

    ICMP 协议 什么是 ICMP ICMP 的主要功能 ICMP 在 IPv4 和 IPv6 的封装 ICMP 的主要消息 ICMP 目标不可达(类型 3) ICMP 重定向消息(类型 5) ICMP 超时消息(类型 11) ICMP 回送消息(类型 0 和 类型 8) 其他 ICMP 消息 ICMP 原点抑制消息(类型 4) ICMP 路由器探索消息(类型 9、10) ICMP 地址掩码消息(类型

    2024年02月04日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包