数据链路层
Posted ych9527
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据链路层相关的知识,希望对你有一定的参考价值。
文章目录
1.数据链路层
网络层:
网络层的ip协议不负责数据的有序或者无序到达对方(数据的安全、可靠性是由TCP提供的)
网络层的ip协议只负责数据的源端、和数据的目的端,即只负责数据从哪里来,到哪里去
数据链路层:
数据链路,指OSI参考模型中的数据链路层,有时也指以太网、无线局域网等通信手段。
数据链路层的协议定义了通过通信媒介互连的设备之间传输的规范,负责相邻设备之间的传输,决定传输的因素是MAC地址
MAC地址:
6字节的整数,长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示
唯一标识一台设备(和网卡绑定的设备)
2.以太网协议
2.1是什么
“以太网” 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容
例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等
以太网是当前应用最广泛的局域网技术; 和以太网并列的还有令牌环网, 无线LAN等
2.2连接形式
一般都采用终端与交换机之间独占电缆的方式实现以太网通信
交换机的前身是集线器,使用集线器的局域网,进行数据交互的时候,需要进行检测,降低发生数据冲突的概率,因此进行数据交互的效率就比较的低
交换机则是通过端口,使进行数据交互的主机之间独享网络介质,因此不存在冲突问题,数据交互的速度也大大提高
2.3以太网协议格式
目标/源MAC地址:从哪里来/到哪里去
类型:标识网络层使用的是什么协议
数据:有效载荷,受MTU的限制
CRC校验:一种校验算法,检验数据链路层的数据帧是否出现错误
3.ARP协议
ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议
3.1ARP协议的作用
是一种解决地址问题的协议。以目标IP地址为线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址,通俗来讲就是获取相邻设备的MAC地址
如果目标主机不在同一个链路上时,可以通过ARP查找下一跳路由器的MAC地址。不过ARP只适用于IPv4,不能用于IPv6
3.2ARP协议格式
ARP报文不是直接在网络层上发送的,它还是需要向下传输到数据链路层,所以当ARP报文传输到数据链路层之后,需要再次进行封装。以以太网为例,ARP报文传输到以太网数据链路层后会形成ARP帧。ARP帧如下图所示,他就是在ARP报文前面加了一个以太网帧头
3.3ARP工作方式
ARP是广播发送的,子网当中的所有机器都会收到ARP请求,分析ARP请求之中的目的IP地址是否是自己机器持有的IP地址
如果是则回应ARP应答,在应答之中包含自己主机的MAC地址,如果不是,则丢弃
如图所示:主机A填写完自己的ARP协议,广播到子网之中,所以的主机都"拿起来"看一看,如果发现当中的IP是自己的IP,就拿起来,回复一个ARP请求,在这个ARP请求之中填写了自己的MAC地址,这样就建立起了映射关系
总之,从一个IP地址发送ARP请求包以了解其MAC地址(ARP请求包还有一个作用,那就是将自己的MAC地址告诉给对方。) ,目标地址将自己的MAC地址填入其中的ARP响应包返回到IP地址。由此,可以通过ARP从IP地址获得MAC地址,实现链路内的IP通信。
根据ARP可以动态地进行地址解析,因此,在TCP/IP的网络构造和网络通信中无需事先知道MAC地址究竟是什么,只要有IP地址即可
3.4ARP缓存机制
1.arp命令可以查看本地机器保存的arp缓存表,缓存表每隔一段时间(一般是20min)会进行更新
2.在数据的传输过程之中,IP地址和MAC地址两者缺一不可。于是就有将这两个地址相关联的ARP协议。
为了避免这两个阶段的通信带来过多的网络流量,ARP具有对IP地址和MAC地址的映射进行缓存的功能。有了这个缓存功能,发送IP包时就不必每次都发送ARP请求,从而防止性能下降
4.NAT协议
NAT协议特点:
1.NAT服务对于通信双方是无感知的
2.网络被划分为私网和公网,NAT网关通常架设在私网到公网路由的出口位置,双方的数据包都需要经过NAT网关
3.网络的访问只能从私网的一端发起,公网是无法访问到私网主机的
4.NAT网关对于请求而言,替换源IP地址,对于应答而言替换目的IP地址
5.NAT网关实现双向翻译的功能,所有需要在NAT网关中维护一张映射表,把替换信息一一记录下来
静态NAT:
1.在NAT网络转换的时候,私网IP唯一对应一个公网IP,是1对1的关系
2.从遏制IP地址枯竭的问题上来看,并没有解决实际的问题,因为还是1对1的关系,还是需要消耗公网IP
3.作用:可以隐藏自己的IP地址
动态NAT:
在NAT网关之中维护了多个公网IP,不是给一个私网ip映射一个公网ip,而是动态分配的,也没有很好的解决ip地址枯竭问题
5.NAPT(动态NAT重载)
静态NAT和动态NAT都是在修改网络层的的IP地址,NAPT不仅仅更改网络层的IP地址,还会修改传输层的端口
1.私网ip地址和公网ip地址变成了多对一的关系
2.NAPT也是动态NAT,也可以在NAT网关之中维护多个公网ip
3.NAPT很好的解决了ip地址不够用的问题,NAPT通常与DHCP协议搭配使用(动态主机分配协议)
6.DNS协议
6.1DNS的产生
IP是网络中通行的唯一标识,在进行网络通信的时候,需要输入长传的IP地址是非常麻烦的事情,因此TCP/IP之中有了一个主机识别码,为每台机器赋予唯一的主机名,在通信的时候直接输入主机名即可,为了实现这个功能,主机往往会主机往往会利用一个叫做hosts的数据库文件
起初,hosts文件由互联网信息中心统一管理,如果某一台主机需要更换IP或者接入网络之中,就需要更新hosts(用户也要更新),这样非常麻烦,于是产生了一个可以有效管理主机名和IP地址之间对应关系的系统,那就是DNS系统
DNS协议的作用就是,将域名转化为IP地址
6.2域名
域名的构成:
域名是指为了识别主机名称和组织机构名称的一种具有分层的名称
其实就是由 “ . ” 分割的字符串的集合,分割出来的字符串表示公司的名称或者性质的字符串
域名的分层:
顶级域名:
比如cn表示中国、jp表示日本,us表示美国(国别顶级域名)
com表示商业公司、edu表示教育(特定领域顶级域名)
二级领域域名:
比如baidu.com、taobao.com 表示不同组织机构的域名 比如 beijing.cn 表示地域的域名
三级领域域名:在使用组织属性域名或者地域域名的情况之下,还可以有第三层域名
比如 baike.baidu.com
6.3域名服务器
域名服务器是指管理域名的主机和相应的软件,它可以管理所在分层的域的相关信息。其所管理的分层叫做ZONE。每层都设有一个域名服务器。
域名服务器之中,保存着域名和ip的对应关系,比如输入www.baidu.com -> 返回的就是百度服务器的IP地址
处理请求是DNS请求,DNS对应的传输层协议是UDP,不需要建立连接,传输的速度也比较快
根域名服务器中注册着根以下第1层域名服务器的IP地址
类似地,在根域名服务器的下一层域名服务器中注册了再往下一层域名服务器的IP地址。根据每个域名服务器所管理的域名,如果下面再没有其他分层,就可以自由地指定主机名称或子网名称。不过,如果想修改该分层的域名或重新设置域名服务器的IP地址,还必须得在其上层的域名服务器中进行追加或修改。
所有的域名服务器都必须注册根域名服务器的IP地址。因为DNS根据IP地址进行检索时,需要从根域名服务器开始按顺序进行
解析器:
进行DNS查询的主机和软件叫做DNS解析器。用户所使用的工作站或个人电脑都属于解析器。一个解析器至少要注册一个以上域名服务器的IP地址。通常,它至少包括组织内部的域名服务器的IP地址
6.4域名解析流程
1.游览器的缓存当中缓存的域名和ip地址对应关系
2.本地的hosts文件当中也会缓存域名和ip地址的对应关系
3.一般小镇、社区都会架设本地的DNS服务器,如果前两种都没有找到对应的ip地址,就会去DNS服务器进行查询,DNS没有找到,就会去上一级服务器进行查询
查询方式分为递归查询和迭代查询:
递归查询:
游览器缓存 -> hosts文件 -> 本地DNS服务器 ->根域名服务器 -> 顶级域名服务器 -> 二级域名服务器 -> 三级域名服务器
查找不到会依次往下进行查询,找到之后,再将IP地址,一层层的返回
迭代查询:
迭代查询中,DNS服务器没找到,会去根域名服务器进行查找,如果没找到,根域名服务器不会继续往下查找,而是返回顶级域名服务器的IP地址给DNS服务器,告诉它,去顶级域名服务器进行查找,下面也是如此
以上是关于数据链路层的主要内容,如果未能解决你的问题,请参考以下文章