计算机网络之数据链路层协议总结
Posted _BitterSweet
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络之数据链路层协议总结相关的知识,希望对你有一定的参考价值。
数据链路层
1.数据链路层介绍
- 数据链路层
主要负责相邻设备之间
的传输,决定传输的因素是MAC地址
MAC地址:6字节的整数,uint_8 addr[6];
MAC地址可以唯一标识一台设备和网卡设备绑定的
- 以太网协议:目的MAC地址(6字节) + 源MAC地址(6字节) + 类型(2字节)+数据(来源于网络层)+ CRC校验
类型:标识网络层使用什么协议
数据:有效载荷,受MTU的限制
CRC校验:检验数据链路层的数据帧是否出错
2.ARP协议
- ARP不是一个单纯的数据链路层协议,而是一个介于数据链路层和网络层的协议
2.1 ARP的工作流程
- ARP协议建立了主机IP地址和MAC地址的映射关系,获取相邻设备的MAC地址,目的IP—>对应的MAC地址
- ARP是广播发送,子网当中的所有机器都会收到ARP请求,分析ARP请求当中的目的IP地址是否是自己机器所持有的IP地址,如果是则回复ARP应答,在应答当中包含自己主机的MAC地址;如果不是,则不处理
主机会通过广播发送ARP请求,这个包中包含了想要知道的MAC地址的主机IP地址
当同个链路中的所有设备收到ARP请求时,会去拆开ARP请求包里的内容,如果ARP请求包中的目标IP与自己一样,那么这个设备就将自己的MAC地址塞入ARP响应包返回给主机
每台主机会维护一个ARP缓存表,缓存表中的表项有过期时间(每隔20分钟进行更新一次),如果20分钟内没有再次使用某个表项,该表项就会失效,下次还要发ARP请求来获得目的主机的硬件地址
2.2 ARP数据报格式
目的MAC地址:ARP请求当中,目的MAC地址全部填充为1,表示在当前子网中广播
源MAC地址:ARP请求主机的MAC地址
帧类型:以太网数据帧类型,表示上层在使用什么协议(0x0800:IP协议,0x0806:ARP请求或者应答)
2字节的硬件类型:定义运行ARP网络的类型,一般都是以太网
2字节的协议类型:表示使用什么协议,标识当前是IP地址转换MAC地址
1字节的硬件地址长度:表示MAC地址的长度(6字节)
1字节的协议地址长度:表示IP地址的长度(4字节)
op:表示当前是ARP请求还是ARP应答,1表示请求,2表示应答
发送端MAC地址:发送ARP请求主机还是ARP应答主机的MAC地址
发送端IP地址:发送ARP请求主机还是ARP应答主机的IP地址
目的MAC地址:当如果是ARP请求,填充0x000000000000;如果是ARP应答,填充ARP请求主机的MAC地址
目的IP地址:目标主机的IP地址
3.NAT技术
3.1 NAT转换过程
- ipv4中,地址不充足,所以NAT技术解决IP地址不够用的主要手段,是路由器的一个重要功能
- NAT可以将私有IP对外通信时转换为公网IP
- 公网IP要求唯一,但是私有IP不需要
- 简单的来说 NAT 就是同个公司、家庭、教室内的主机对外部通信时,把私有 IP 地址转换成公有 IP 地址
- NAT服务对于通信双方是无感知的
- 网络被划分为私网和公网,NAT网关通常架设在私网到公网路由出口的位置,双方的数据包都需要经过NAT网关
- 网络的访问只能从私网一端发起,公网是无法访问到私网的主机的
- NAT网关对于请求而言,替换源IP地址;对于应答而言,替换目的IP地址
- NAT网关实现了双向翻译的功能,所以需要在NAT网关中维护一张映射表,把替换的信息记下来
3.2 NAPT技术(动态NAT重载)
1.N个私有IP地址,难道必须要有N个公有IP地址?这如何缓解地址紧缺的问题呢?
2.绝大多数的网络应用都是使用TCP/UDP来传输数据的,所以可以把IP地址 + 端口号 一起转换,这样一个公有IP地址就够了
3.这种转换技术就叫做NAPT
- NAPT理论上可以:一个公网IP可以替换2^16个私网IP(取决于端口号uint16_8)
- 私网IP地址和公网IP地址变成了多对一的关系
- NAPT也是动态NAT,也可以在NAT网关当中维护多个公网IP
- NAPT很好的解决了IP地址不够用的问题,NAPT的好搭档是DHCP协议(动态主机分配协议)
4.DNS技术
- 我们在上网的时候,通常使用的是方式是域名,而不是IP地址,因为域名方便人类记忆
- 实现这一技术的就是DNS域名解析,DNS可以将域名网址自动转换为具体的IP地址
4.1 域名层级关系
- 域名其实就是由" . " 分割的字符串的集合,分割出来的字符串表示公司的名称或者性质对额字符串
com:商业公司
cn:中国
gov:政府
edu:教育
- 域名中越靠右的位置表示层级越高,层级关系类似一个树形结构
4.2 域名解析流程
- 浏览器的缓存当中缓存域名和IP地址对应关系
- 本地的hosts文件当中也会缓存域名和ip地址对应关系
浏览器首先查看一下自己的缓存里有没有,如果没有就向操作系统的缓存要,还没有就检查本机域名解析文件hosts,如果还是没有,就回DNS服务器进行查询,有两种查询方式:一种是递归查询;一种是迭代查询
5. ICMP协议
- ICMP叫做
互联网控制报文协议
5.1 ICMP功能
- 主要功能包括:确认 IP 包
是否成功送达⽬标地址
、报告发送过程中 IP 包被废弃的原因
和改善⽹络设置
等 - 在IP通信中如果某个IP包因为某种原因未能达到目的地址,那么这个具体的原因将由ICMP负责通知
5.2 ICMP类型
第一种是用于诊断的查询消息,是查询报文类型
第二种是通知出错原因的错误消息,是差错报文类型
以上是关于计算机网络之数据链路层协议总结的主要内容,如果未能解决你的问题,请参考以下文章