数据链路层 --- ARP,NAT,DNS协议
数据链路层
- 以太网帧
- ARP 协议
- NAT协议
- NAPT(NAT重载)
- DNS协议
数据链路层
是OSI参考模型中的第二层,介乎于物理层和网络层
之间。
数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。
以太网帧
在以太网链路上的数据包称作以太帧
。
以太帧起始部分由前导码和帧开始符组成。后面紧跟着一个以太网报头,以MAC地址说明目的地址和源地址。帧的中部是该帧负载的包含其他协议报头的数据包(例如IP协议)。以太帧由一个32位冗余校验码结尾。它用于检验数据传输是否出现损坏。
- 协议格式
目的MAC地址(6字节)+ 源MAC地址(6字节)+ 类型(2字节) + 数据 + CRC校验
- 类型:标识着网络层中所使用的协议
- 数据:有效载荷
- CRC校验:检测数据链路层中的数据帧是否出错
ARP 协议
他的用途就是,可以通过ip地址获取相邻设备的MAC地址,他只在子网的内部有效
协议的格式
ARP协议格式 = 以太网首部
+ 28字节ARP请求或者应答首部
以太网首部:
- 6字节
以太网目的地址
:ARP请求的目的MAC地址。如果全为1,则表示为广播地址 - 6字节
以太网源地址
:ARP请求的主机的MAC地址 - 2字节
帧类型
:以太网数据帧类型,表名了上层使用的什么协议。(ARP协议是介于网络层 和 数据链路层之间的协议)
IP 协议: 0x0800ARP 请求或者应答: 0x0806
28字节ARP请求或者应答
- 2字节
硬件地址类型
:表示ARP网络的类型。以太网类型等等 - 2字节
协议类型
:表示使用什么协议。ip地址转换MAC地址 - 1字节
硬件地址长度
:MAC地址的长度 - 1字节
协议地址长度
:ip地址长度 op
:标识ARP请求和ARP应答。
1 --> 请求2 --> 应答
- 6字节
发送端以太网地址
:发送ARP请求或者应答主机的MAC地址 - 4字节
发送端ip地址
:发送ARP请求或者应答主机的ip地址 - 6字节
目的以太网地址
:表示接收方设备的硬件地址,在请求报文中该字段值全为0,即00-00-00-00-00-00,表示任意地址,因为现在不知道这个MAC地址。
ARP 请求 : 0x0000 0000 0000ARP 应答 : 所填充的内容是ARP请求中的 源MAC地址
- 4字节
目的ip地址
:目标主机的ip地址
使用arping 命令发送数据
arping -I [网卡类型,ens32,ens33] -c 2 192.168.75.128
进行抓包分析
sudo tcpdump -i any -s 0 -w 1.dat
ARP 缓存表
- 每台机器会定时获取相邻设备的
MAC地址
,时间为20Min
,20min
也是ARP缓存老化的时间 - 如果数据在数据链路层没有在缓存表中发现相邻设备的
MAC地址
时,则发送ARP请求
获取;
否则就会直接从缓存表中获取,组织数据链路层的以太网数据帧
ARP 请求是广播发送,如果目标主机收到则进行处理;不是目标主机收到就会丢弃
NAT协议
当我们需要用虚拟机访问外网时,首先得让虚拟机处于NAT模式
,因为桥接模式下我们的虚拟机是没有自己的ip地址的,使用NAT模式和主机共享一个私网ip地址。
NAT协议是一个地址转换协议
- 请求:将网络数据中的私网的源ip地址(私网ip)转换为 公网的ip地址
- 应答:将网络数据中的目的ip地址(公网ip)转换为 私网ip
NAT 模式的特点:
- 网络被划分为私网和公网,NAT网关设置在私网到公网的路由出口位置,双方的流量都是需要经过NAT网关的
- 网络通信只能存私网访问公网,公网是不能直接访问私网主机
- NAT网关对于请求而言,是替换源ip地址;对于应答而言,是替换目的ip地址
- NAT网关对于双方都是透明的,双方在网络传输的过程中是无感知的。(双方通信都是直接到位,感觉不到NAT的存在)
- NAT网关为了实现双向翻译功能,需要在NAT服务器中维护一张映射表,把对应ip替换的信息记录下来
静态NAT
在NAT网络转换的时候,私网ip唯一对应一个公网ip,两者是1对1的关系
一般用于想要隐藏自己的ip地址
动态NAT
动态NAT,在私网到公网进行映射的时候,不是给一个私网ip唯一映射一个公网ip,而是进行动态分配
NAT网关中维护的映射表中的ip地址之间是动态变化的,但是表的内部还是一个私网ip对应一个公网ip。
这对于ipv4地址枯竭的问题没有有效的解决
NAPT(NAT重载)
NAPT,当一个私网ip地址经过NAT网关后,在网关中映射的时候,给私网ip地址 加了一个端口号,这样就可以区分不同的私网ip地址了
再使用这个公网ip + 端口号,去访问对应的公网ip地址
这样使得,NAT网关中可以转换 2^16 个私网ip地址去访问公网
NAPT
- 私网和NAT中可以是多对一的关系,通过不同的端口进行标识
- NAPT中的公网ip,最多可以映射2^16个端口
- NAPT是一个动态NAT,可以维护多个公网ip
- NAPT很好的解决了ip地址不够用的问题
DNS协议
DNS协议,也就是域名解析协议
域名就相当于我们的ip地址,当我们使用baidu.com
去访问百度的时候可以访问的。同时,如果我们使用百度的ip地址去访问百度界面,也是可以的。
但是ip地址不容易进行记忆,所以说就有了用域名来表示ip地址
- 域名:域名就是由
.
进行分割的字符串的集合,所分割的字符串都是有着特殊的意义。比如:baidu.com,taobao.com
.com --》 商业公司
.cn --》 中国
.us --》 美国
.edu --》 教育
.gov --》 政府
作用:将域名转化为ip地址
域名服务器(DNS服务器):保存了域名和ip的对应关系,用来处理DNS请求,将域名对应的ip地址应答给请求的浏览器。
一般使用UDP协议来处理这样的请求,使用TCP协议的话在不停的连接过程中,时间上很浪费,还不安全域名服务器是一种层级管理的方式,不同的域名服务器所管理的域名都是不同的
- 域名解析流程
递归查询
递归查询,就是一级一级的向下查找,直到找到需要的数据才会返回,或者全部找完了没有找到也会返回。
迭代查询
迭代查询的都是从本地DNS服务器开始,依次查询其他域名服务器,只要没有找到数据,就返回信息给本地DNS服务器,然后本地DNS服务器再查找下一个级别的服务器
数据链路层 --- ARP,NAT,DNS协议相关推荐
- Linux:数据链路层——以太网协议、NAT协议、ARP协议和DNS协议
Linux:数据链路层--以太网协议.NAT协议.ARP协议和DNS协议 以太网协议 以太网帧格式 MTU以及MTU对IP协议的影响 ARP协议 NAT协议 NAT IP转换过程 静态NAT 动态NA ...
- 以太网协议、ARP协议、NAT协议、DNS协议
目录 1. 数据链路层的以太网协议 2. ARP协议 3. NAT协议 NAPT协议(动态NAT重载) 4. DNS协议 1. 数据链路层的以太网协议 数据链路层的以太网协议本质上其实就是相邻设备之间 ...
- Linux·DNS协议、ICMP协议、NAT技术
目录 DNS协议 DNS背景 编辑域名简介 域名解析过程 使用dig工具分析DNS过程 ICMP协议 ICMP功能 ICMP协议格式 编辑ping命令 一个值得注意的坑 traceroute命令 ...
- DNS协议、ICMP协议、NAT技术
文章目录 DNS协议 DNS背景 域名简介 域名解析过程 使用dig工具分析DNS过程 ICMP协议 ICMP功能 ICMP协议格式 ping命令 一个值得注意的坑 traceroute命令 NAT技 ...
- IP协议、ARP协议、DNS协议
文章目录 前提 一.IP Internet Protocol 协议 真实路由过程 路由器 路由表的规则 ARP Address Resolution Protocol ARP 表 (隐射关系) ARP ...
- TCP/IP协议基本概括+ARP协议详解+DNS协议详解---Linux学习笔记
TCP/IP协议的体系结构: TCP/IP协议族四层模型和OSI七层模型 上层协议使用下层协议的服务,下层协议给上层协议提供一个接口. 四层模型中各个层次的作用和特点 上图说明: 最底层是数据链路层, ...
- 网络 之 IP地址Mac地址与DNS,ARP,DHCP协议
目录: IP地址与Mac地址 IP地址划分 IP地址分类 DNS协议 ARP协议 DHCP协议 一.ip地址 1.1. 什么是IP地址 1.查看本机的 IP 和 MAC 地址 2.MAC地址 MAC地 ...
- ARP协议与DNS协议详解
文章目录 一.ARP协议 1.工作原理 2.以太网ARP请求/应答报文详解 3.ARP高速缓存的查看和修改 二.DNS协议 1.工作原理 2.DNS协议分析 一.ARP协议 1.工作原理 ARP协议能 ...
- 【计算机网络】TCP/IP协议(DNS协议、IP协议、TCP协议、UDP协议、三次握手、四次挥手)
TCP/IP协议 TCP/IP协议 TCP/IP各层作用与常见协议 各种协议与HTTP协议的关系 TCP/IP协议 本文参考<图解HTTP>--上野宣 TCP/IP是Internet上所有 ...
最新文章
- VMware Fusion指定虚拟机IP
- 使用New Relic免费服务器监控
- 笔记本输入法, u、i 等字母变成了数字
- 关于H3C iNode防代理功能会将pplive等软件检测为代理而下线问题的解决方法
- java防止undo空间撑爆_秒杀系统设计补坑篇(seata回顾)
- [AX]AX2012开发新特性-全文索引
- Microsoft向高性能计算市场推出了新的Azure产品
- matlab的三维数组(三维矩阵)
- Decorator模式设计模式
- 电商设计中的一些概念
- Spring-全面详解(学习总结)
- datax底层原理_Datax 任务分配原理
- 如何在家免费使用知网?
- 郸城二高2021年高考成绩查询,郸城几所高中高考成绩汇总!有你们村的没?
- 关于微信群的一个新玩法 (月末总结)
- web安全从基础术语、windows/linux基础到安全漏洞/病毒木马挖掘与分析利用(持续更新)
- python打包flask项目exe
- 解决错误:microsoft sharepoint designer does not support editing non-sharepoint sites 的方法
- 通过Guest账号共享XP上的打印机
- 清华博士生导师亲授:高考志愿计算机/AI专业填报指南
热门文章
- Packet Tracer 思科模拟器入门教程 之六 三层交换机基本配置
- 根据id不让数组push重复的数据
- 20个值得收藏的网页设计开放课件
- jquery获得当前元素父级元素_如何使用jQuery获取父元素
- linux开机dracut界面_centOS 7 频繁出现dracut解决方案
- c语言中 加法符号如何定义,【 c语言中无符号和有符号的加法运算】【深入理解】--【sky原创】...
- 电池续航已成智能手机用户抱怨头号问题
- docker wireguard
- 2019苏州大学计算机考研科目,2019心理学考研:苏州大学考试科目
- 【程序源代码】微信小程序求职招聘、兼职管理系统