【JavaEE】数据链路层-以太网协议-DNS

简介: JavaEE & 网络原理补充-数据链路层 & 以太网协议数据链路层更接触底层,也就离我们更远了,所以只需要了解即可,在本文章也不会涉及太深!1. 以太网数据帧 以太网数据帧就是对IP数据报进一步的包装的数据报 以太网协议,属于数据链路层也属于物理层 数据链路层和物理层之间还是有很多联系的,有很多重合

JavaEE & 网络原理补充-数据链路层 & 以太网协议


数据链路层更接触底层,也就离我们更远了,所以只需要了解即可,在本文章也不会涉及太深!


1. 以太网数据帧


   以太网数据帧就是对IP数据报进一步的包装的数据报

   以太网协议,属于数据链路层也属于物理层

       数据链路层和物理层之间还是有很多联系的,有很多重合


1.1 帧头帧尾



分析:


   校验和跟之前的类似,防止发生数据因为外界原因影响后,如磁暴,而错乱的数据被使用



   所以相对于IPV4地址不够用问题,mac地址目前是足够用的

   所以mac地址在一张网卡出厂的时候久被确定了,写死了


因此,mac地址就可以作为网络上身份识别的一种有效技术手段!


   如CCtalk,一个账号要绑定对应的mac地址,应该是两个,也就是通过这个手段,限制只有这两台设备才能登录,只能通过管理员去改绑。通过这种方式,保证一个账号不被多人使用


为什么ip和mac存在两套地址?


   这是一个历史遗留的问题

       数据链路层和网络层是被各自独立发明出来的~


   ip地址发明者与mac地址发明者互不相识,导致ip和mac地址同时被发明出来


   mac地址发明者显然更加有先见之明(mac地址6个字节)


1.2 类型



   ARP和RARP,是二层转发(数据链路层的转发)的必要辅助工具


       交换机里面的一个转发表,ARP就是用来构造转发表的机制~

       离我们太远了,这里就不多讲了~

           如果你是学校考试,那么你可以去网上搜罗资料去研究研究~


1.3 载荷


   对于普通的以太网数据帧,你也发现了一个细节


   硬件要求载荷(即IP数据报)最大为1500个字节


不同数据链路层协议,对于到不同的硬件物理设备,这种硬件限制也是不一样的~


   相当于,不同的运输工具:面包车小轿车,货车,火车…

   他们的载重量也是不一样的


   以太网数据帧通过网线这种硬件传输,网线就不能传输太大的数据报~


把这个数据链路层数据帧最大载荷长度称为MTU


   MTU的英文全称为Maximum Transmission Unit,中文是意思是最大传输单元


如果承载的数据,长度超过MTU,就会在IP层进行分包,使得分出来的结果,在MTU之内


2. IP数据报补充


对于IP数据报被分包后,如何保证数据联系和数据连贯的?


   涉及IP数据报的这些属性:


2.1 16位标识


一个大的IP数据报拆成多个小包之后,这些小包的表示都是相同的!


2.2 13位片偏移


表示每个小的数据报之间的先后顺序,以此用来组包


   数据报组包的原理与其他协议基本类似


TCP的整队,其实也可以借助IP整队来完成


2.3 3位标识



三位的作用如下:


   有一位没啥用

   有一位标识是否分包了

   有一位标识当前这个包儿是否是最后一个

       结束标识


   IP报头多份,是因为多份是为了组包


       但是UDP报头不需要多份,所以其实只有一个IP数据报包含UDP数据报报头


       FDDI是另一个数据链路层协议~


因此,即使有MTU的限制,IP仍然可以传输一个更大的数据~


注意:


如果别人问你MTU是几?


   答案不是1500,这样不严谨

   因为在不同的数据链路层现已,MTU不一样,只是以太网协议是1500!!!


2.4 首部长度



首部长度字段(4bit),它的值代表数据报报头的按此图看,有多少行


   易得,最少为5行(无可选字段),每一行为4个字节,所以IP数据报报头最短20个字节

       即首部长度字段=0101 => 5

   最多15行(可选字段达到最长),每一行为4个字节,所以IP数据报报头最长60个字节

       即首部长度字段=1111 => 15


3. DNS


电子监听、全国断网,棱镜门背后,中国如何从末路狂奔到世界之巅_哔哩哔哩_bilibili


   墙裂建议观看!很有帮助!


你可能不知道,我们可以通过IP地址,去访问百度



   当然很多情况下,是这样的


我们一般是通过域名访问


   因为IP地址太难记了~


3.1 DNS原理


例子:


小马有一百个朋友,他习惯通过手机电话交流,而每一个朋友的手机号又不同,甚至一个普通有两个手机号,那么小马需要背下朋友们的手机号吗?


答:没必要,因为手机的通讯录,很好的解决这个问题了,我们只需要将手机号的朋友的名字绑定起来,我们记住姓名,点击姓名拨号即可~



我们能通过域名就能访问服务器,则是因为我们电脑里有一个类似于通讯录的文件,去记录域名和IP的对应关系


   这个文件就是Hosts文件


下面是纵多hosts文件中的一个:





动图解释:


图片.png

来源:【硬件科普】能上QQ但是打不开网页?详解DNS服务,DNS解析,DNS劫持和污染_哔哩哔哩_bilibili


   讲的很好!


显然,hosts文件是有限的,我们可以记录一些常见的域名对应的IP,但是你绝对不可能记录下全世界所有域名对应的IP!


所以就单独独立出来了一个服务器,这个服务器就是DNS服务器


   让这台服务器,专门去存储这个世界上绝大多数域名和IP的映射表


动图解释:

图片.png


当然,DNS服务器不是唯一的,选择不同的DNS服务器处理相同的网址速度是不同的,对于不同地区的设备选择相同的DNS服务器访问速度也是不同的~


   没有好坏之分~

   我嫌麻烦,自动获取运营商提供的DNS就行了


如果你打不开一些网址,但是可以登录QQ之类的


   这也是DNS配置错误的问题


动图解释:


3.2 DNS劫持或者污染


如果有人对你配置的DNS服务器,进行一些不为人知的操作,你输入的域名会被解析为另一个IP,而这个IP如果外观与原网页一致,那后果让人后怕!


动图解释:



   轻则给你看点广告

   重则获得个人信息,盗号,甚至涉及钱!


动图解释:



但是你没背IP呀,单看域名是对的呀~


DNS劫持或者污染已经算得上是犯罪了!


   破坏计算机信息系统罪


相关文章
|
1月前
|
存储 传感器 安全
【串口通信】使用C++和Qt设计和实现串口协议解析器(二)
【串口通信】使用C++和Qt设计和实现串口协议解析器
52 0
|
1月前
|
存储 开发框架 算法
【串口通信】使用C++和Qt设计和实现串口协议解析器(一)
【串口通信】使用C++和Qt设计和实现串口协议解析器
99 0
|
3月前
|
域名解析 网络协议
IP协议, TCP协议 和DNS 服务分别是干什么的?
IP协议, TCP协议 和DNS 服务分别是干什么的?
233 0
|
3月前
|
缓存 网络协议 安全
【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
【1月更文挑战第27天】【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
|
10天前
|
域名解析 网络协议 Linux
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
|
1月前
|
编解码 移动开发 C++
RTMP协议深度解析:从原理到实践,掌握实时流媒体传输技术
RTMP协议深度解析:从原理到实践,掌握实时流媒体传输技术
100 0
RTMP协议深度解析:从原理到实践,掌握实时流媒体传输技术
|
1月前
|
网络协议 数据格式
|
2月前
|
存储 缓存 网络协议
计算机网络:思科实验【2-MAC地址、IP地址、ARP协议及总线型以太网的特性】
计算机网络:思科实验【2-MAC地址、IP地址、ARP协议及总线型以太网的特性】
|
2月前
|
域名解析 缓存 网络协议
|
2月前
|
网络协议 安全 Java
【JavaEE初阶】 TCP协议详细解析
【JavaEE初阶】 TCP协议详细解析

相关产品

  • 云解析DNS
  • 推荐镜像

    更多