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文件中的一个:
动图解释:
来源:【硬件科普】能上QQ但是打不开网页?详解DNS服务,DNS解析,DNS劫持和污染_哔哩哔哩_bilibili
讲的很好!
显然,hosts文件是有限的,我们可以记录一些常见的域名对应的IP,但是你绝对不可能记录下全世界所有域名对应的IP!
所以就单独独立出来了一个服务器,这个服务器就是DNS服务器
让这台服务器,专门去存储这个世界上绝大多数域名和IP的映射表
动图解释:
当然,DNS服务器不是唯一的,选择不同的DNS服务器处理相同的网址速度是不同的,对于不同地区的设备选择相同的DNS服务器访问速度也是不同的~
没有好坏之分~
我嫌麻烦,自动获取运营商提供的DNS就行了
如果你打不开一些网址,但是可以登录QQ之类的
这也是DNS配置错误的问题
动图解释:
3.2 DNS劫持或者污染
如果有人对你配置的DNS服务器,进行一些不为人知的操作,你输入的域名会被解析为另一个IP,而这个IP如果外观与原网页一致,那后果让人后怕!
动图解释:
轻则给你看点广告
重则获得个人信息,盗号,甚至涉及钱!
动图解释:
但是你没背IP呀,单看域名是对的呀~
DNS劫持或者污染已经算得上是犯罪了!
破坏计算机信息系统罪