网络协议学习——以太网协议

目录

​编辑

一,以太网简介

二,以太网通信的过程

为什么不用IP地址?

过程

MAC帧

MAC帧的字段介绍

ARP协议

传输过程的一些问题

RARP协议

提高效率

三,其他问题

ARP诈骗问题

URL解析过程


 

一,以太网简介

以太网不是一个真正的网络,而是一个局域网标准。并且,以太网是局域网通信当中应用最广的协议,其次还有令牌环网和无线LAN。

二,以太网通信的过程

以太网协议是局域网通信的协议,局域网通信的过程使用MAC地址来找到这台局域网内唯一的主机然后再进行两台主机的通信。

为什么不用IP地址?

在局域网内,主机的IP地址也是唯一的。但是,为什么还要用MAC地址来标识唯一的一台主机呢?因为IP地址是用于网络层的,而MAC地址则是在数据链路层使用的。

过程

 当我们的主机发起请求后,这个请求便会穿过应用层,传输层,网络层,然后到达数据链路层。然后在数据链路层便会封装两份报头ARP请求报头,MAC帧。封装完这两个报头以后,这个数据包才能被数据链路层发送到指定的主机上。

MAC帧

MAC帧是个啥?其实MAC帧是数据链路层的一个基本单位。MAC帧的图示如下:

通过这样一个MAC帧的封装我们便可以保证数据在共享的网络当中正确的进行传输。

MAC帧的字段介绍

  • 源地址和目的地址:这两个地址标识的是主机的硬件地址,也就是网卡地址,这是在计算机出厂时就被设定了的,并且是唯一的。

    •  类型字段:三种类型

      • 0800:IP协议

      • 0806:ARP协议

      • 8035:RARP协议

    • 数据:数据部分包含上层协议的报头+有效载荷(HTTP ,TCP,IP)

    • 协议末端校验码:CRC校验码

ARP协议

在数据链路层,ARP协议在MAC帧的上一层:

所以在封装MAC帧时,首先是要先封装一层ARP协议。ARP协议的协议字段如下:

字段详解

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

在知道ARP协议和MAC帧以后,便可以大致的知道数据链路层所做的事情。

1,首先,我们要先形成一个ARP应答报文,这个时候op的值是1表示一个请求报文。

2,构建报文时,我们知道目标主机的IP但是不知道MAC地址。所以这个在封装MAC帧时,以太网目的地址填的是FF:FF:FF:FF:FF:FF表示一个广播地址。

3,填入一个广播地址后,每一台主机便需要在链路层收到这个报文时先查看op的值。如果op的值是1,链路层便知道这是一个请求报文需要比对的是IP地址所以这个报文便会被向上交付。当我们的网络层收到这个报文时比对IP地址。如果是这台主机的那就留下向上交付,如果不是那就发往下一台主机。一直到找到目标主机为止。

--------------------------------------------------------------------------------------------------------------------------------

4,在接收端收到这个请求报文以后,接收端便会构建响应报文。这个时候op字段被设置为2。并且此时我是知道发送端的MAC地址的。所以也将接收端的MAC地址填入。

5,响应报文被发送后,其它主机收到后便会在链路层先查看报文的op值,在知道报文的op值是2时便会在数据链路层比对MAC地址。如果比对不上就会直接丢弃发送到下一个主机上继续比对。直到比对成功,向上交付报文。

传输过程的一些问题

1,吃瓜群众

网络是一个共享资源,在局域网中发送的报文其实是被很多主机收到的。只是其它的主机在接收到这个报文时丢弃了这段报文。只有目标主机才会向上交付这段报文。

2,抓包问题

在在网卡里面,有一个模式叫做混合模式。当一台主机的网卡被改为混合模式时,这台主机便可以将不属于自己的响应报文向上交付。这个便是抓包,这也是抓包软件的原理。

3,临界资源

在网络通信的过程中,如果多台主机同时通信便会造成数据碰撞的问题。造成网络的堵塞,所以当网络要通信时往往在一个时刻内只允许两台主机进行通信。所以,网络其实就是一个临界资源。如何实现这样的模式呢?

1,以太网:在以太网当中有一个碰撞检测算法,当发生数据碰撞时便会停止发送数据。

2,令牌环网:只有争夺到令牌的主机才有发送数据的权力。并且这个令牌是在局域网通信当中均匀的流动的。

RARP协议

  • RARP协议

    • 协议:反向转换协议

    • 作用:再某些情况下只知道MAC地址,便可以通过RARP协议来推导IP地址。

    • 使用过程:在不知道IP地址的情况下,我们可以发送一个RARP广播报文到网络当中请求对方告知。

    • 形势:这种方式请求IP报文有安全性问题,现在已经逐渐减少使用并被DHCP等协议逐渐替代。

提高效率

在网络通信时,要找到对方的MAC地址第一步首先是去查找ARP缓存表。只有在这个缓存表内没有对方的MAC地址时,才会在MAC地址处填上全F的字段。

ARP缓存表

查看:arp -a

有了这个缓存表便可以快速的找到目标主机的MAC地址,不必再一个一个主机的尝试比对。当然,这个ARP缓存表的有效时长一般是20分钟

三,其他问题

ARP诈骗问题

问题描述:利用局域网通信过程中的发送主机不知道接收端主机的MAC地址需要发送报文去获取目标主机的MAC地址的漏洞,在这个请求报文在网络当中发送的过程截取并修改,让发送主机的ARP缓存表内填入错误的MAC地址。从而在后续的发送消息的过程中让发送端主机的消息发送到我的这台主机上,从而实现监听和窃取数据。

URL解析过程

1,DNS解析

在网络通信的过程中,虽然是通过ip地址和端口号来找到全网唯一的一台主机上的唯一的一个进程来实现网络通信的。但是,在大部分情况下我们使用浏览器时我们使用的都是域名。比如:

www.baidu.com
www.jd.com

但是,我们本质还是在使用ip地址+端口号来实现网络通信的。所以,我们需要将域名解析变成对应的ip地址的形式。这个解析的过程便是使用DNS解析来实现的。

2,DNS解析过程

在浏览器上输入一个域名以后,便会开始域名解析的过程。

1,先查看本地的DNS缓存表,查看是否有对应域名的ip地址。

2,如果没有便会向DNS服务器发送一个递归的DNS查询请求,开始不断地查询直到查找到对应域名的IP地址并返回。

3,当然,这个查询的过程是有结束的,一直会查询到根DNS服务器。

3,URL解析过程

 在浏览器输入一个URL以后,首先会进行DNS解析。然后,便会开始构建http/https报文。然后这个报文会向下传输到传输层。在传输层选择TCP或者UDP协议,添加相应的报头。然后再往下传输进入到网络层添加ip报头,再经过数据链路层添加数据链路层的协议。然后这个报文才能够发送到对应的主机上。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【优选算法专栏】专题十:哈希表(一)

本专栏内容为:算法学习专栏,分为优选算法专栏,贪心算法专栏,动态规划专栏以及递归,搜索与回溯算法专栏四部分。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小…

【线段树 有序映射】715. Range 模块

算法可以发掘本质,如: 一,若干师傅和徒弟互有好感,有好感的师徒可以结对学习。师傅和徒弟都只能参加一个对子。如何让对子最多。 二,有无限多1X2和2X1的骨牌,某个棋盘若干格子坏了,如何在没有坏…

谷歌pixel6/7pro等手机WiFi不能上网,显示网络连接受限

近期在项目中遇到一个机型出现的问题,先对项目代码进行排查,发现别的设备都能正常运行,就开始来排查机型的问题,特意写出来方便后续查看,也方便其它开发者来自查。 设备机型:Pixel 6a 设备安卓版本:13 该方法无需root,只需要电脑设备安装adb(即Android Debug Bridge…

计算机网络---第九天

以太网交换机的工作原理 以太网定义: 定义:输出标准Ethernet2类型帧的网络 以太网特征: 特征:多路访问,广播式的网络 mac地址: 每台设备都有一个唯一的物理地址,全球唯一 48位长度,16禁止…

数显IC/点阵数显驱动芯片/抗干扰数显驱动-VK1Q60 QFN16L 8×4点阵

产品品牌:永嘉微电/VINKA 产品型号:VK1Q60 封装形式:QFN16L 概述 VK1Q60是一种带键盘扫描电路接口的 LED 驱动控制专用芯片,内部集成有数据锁存 器、LED 驱动、键盘扫描等电路。SEG脚接LED阳极,GRID脚接LED阴极&…

GPT-4 Turbo with Vision 提高‮写了‬作、数学、逻‮推辑‬理和编码能力

新版 GPT-4 Turbo 今‮开天‬始现‮向已‬所有付费 ChatGPT 用‮开户‬放。GPT-4 Turbo提高‮写了‬作、数学、逻‮推辑‬理和编码能力。具有128k上下文窗口,可以处理超过300页的文本,输出‮度速‬更快。 现‮已在‬经开始‮续陆‬推送,如果…

「seata」分布式事务seata部署及应用

「seata」分布式事务seata部署及应用 seata 版本一、部署seata服务1、配置config.txt文件中的属性值2、为seata服务单独创建一个nacos命名空间3、利用脚本上传配置文件到nacos4、配置seata服务的application.yml6、执行数据库脚本5、使用脚本启动seata服务 二、配置并启动微服务…

品牌发言稿怎么写?媒介盒子分享

品牌发言稿的重要性不言而喻,它不仅代表着品牌形象,更是沟通品牌与消费者、合作伙伴的桥梁。如何撰写一篇高质量的品牌发言稿,成为许多品牌关注的焦点。今天媒介盒子来和大家聊聊:品牌发言稿怎么写。 一、 发言稿写作技巧 1.结构…

MQTT的学习

近期构建物联网平台,学习到MQTT,这里使用的是uniapp作为连接MQTT broker的,这里使用的是国产的EMQX。 MQTT的认识 MQTT 协议入门:基础知识和快速教程 | EMQ(简单的认识) 创建 MQTT 连接时如何设置参数&am…

UI自动化测试案例

备注:本文为博主原创文章,未经博主允许禁止转载。如有问题,欢迎指正。 个人笔记(整理不易,有帮助,收藏+点赞+评论,爱你们!!!你的支持是我写作的动力) 笔记目录:笔记本~笔记目录_airtest和selenium那个好用-CSDN博客 个人随笔:工作总结随笔_8、以前工作中都接触过哪…

如何应对app应用程序或者网站常见的几种攻击类型

大家好,我是咕噜铁蛋!今天,我想和大家聊聊一个我们日常生活中经常遇到的问题——如何应对app或者网站常见的几种攻击类型。随着互联网的普及,app和网站已经成为我们获取信息、交流互动的重要平台。然而,这些平台也时常…

Vue.js组件精讲 第2章 基础:Vue.js组件的三个API:prop、event、slot

如果您已经对 Vue.js 组件的基础用法了如指掌,可以跳过本小节,不过当做复习稍读一下也无妨。 组件的构成 一个再复杂的组件,都是由三部分组成的:prop、event、slot,它们构成了 Vue.js 组件的 API。如果你开发的是一个…

360AI搜索爆火,位居三月全球AI新品增速榜榜首

近日,独立AI产品榜单“AI产品榜(aicpb.com)”发布最新全球AI新品增速榜单,该榜单数据显示,360AI搜索位居三月新品增速榜榜首,3月访问量环比增加1798.76%。360集团另一款AI产品360苏打办公也同时上榜&#x…

【2024年认证杯】A题详细思路+数据(来源)+成品论文+模型代码(matlab+python)

2024年认证杯A题 解题思路 ⭐⭐第一问题分析第二问题分析第三问题分析 数据与数据来源🎉🎉指标解释数据来源 成品参考论文😊😊python/ matlab 代码🚀🚀 解题思路 ⭐⭐ 这个题目要求我们围绕人造保暖纤维的…

Excel表格中的10000元变成1万元

程序代码园发文地址:Excel表格中的10000元变成1万元-程序代码园小说,Java,HTML,Java小工具,程序代码园,http://www.byqws.com/ ,Excel表格中的10000元变成1万元http://www.byqws.com/blog/3149.html?sourcecsdn 今天早上有同事问我,在Excel表格里面怎么…

Vue项目中,使用高级表格vxe-table中的【vxe-grid】动态列之动态插槽

1、首先项目当中得安装了vxe-table // 没有安装的话,可以使用一下命令安装 npm install vxe-table 或 yarn add vxe-table使用示例: import Vue from vue import VXETable from vxe-table import vxe-table/lib/style.cssVue.use(VXETable)2、动态列中动…

直播预告:告诉你最真实的网优行业内幕!

很多小伙伴在后台私信小编,说想学网优但是从来没接触过这一行,或者是接触过但是了解不多,零基础真的可以学吗?免费试学时间是多久?学完后有多少薪资?上课的方式是什么?需不需要出差?…

MySQL高可用搭建方案MHA

MHA架构介绍 MHA是Master High Availability的缩写,它是目前MySQL高可用方面的一个相对成熟的解决方案,其核心是使用perl语言编写的一组脚本,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中&am…

Python实现BOA蝴蝶优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

React之基础项目搭建

前言 React的生态系统非常庞大,拥有大量的第三方库和工具,如React Native(用于构建原生移动应用)、Next.js(用于构建服务器渲染应用)、Create React App(用于快速搭建React应用的脚手架&#x…