数据链路层

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协议搭配使用(动态主机分配协议)

流程:
一层层的跳转,每一层的跳转,都会替换掉原来的ip地址和端口号,并且会在路由器之中记录下相对应的映射关系,以此来达到私网ip地址访问公网的目的

缺陷:
1.无法从NAT外部向NAT内部建立链接,因为需要建立起对应的映射关系才可以进行访问,如果直接从外部进行访问是没有建立起对应的映射关系的
2.存储转换表需要一定的消耗
3.通信过程之中,一旦NAT设备出现异常,此时就没有对应的转换表了,所有的TCP链接都会失效

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服务器,告诉它,去顶级域名服务器进行查找,下面也是如此

在这里插入图片描述
在这里插入图片描述

7.ICMP协议

ICMP是网络层协议,提供网络诊断功能。
一个搭建好的网络,并不清楚是否通畅,由于IP协议是不可靠的,如果丢包了,ip协议并不能通知传输层是否丢包,以及丢包的原因。ICMP协议正是提供这种功能的协议,ICMP主要包括以下几种功能:

1.确认IP是否成功到达目的地址
2.通知发送过程中IP包被丢弃的原因
3.只能搭配IPv4进行使用

8.ping命令

ping的是一个域名,域名通过DNS解析成IP地址
ping不光可以验证网络是否连通,还以统计响应时间和TTL
ping命令会先发送一个ICMP echo request
对方收到之后,会返回一个ICMP echo reply

注意:ping命令基于ICMP,是网络层的,因此不关注端口号

9.traceroute

也是基于ICMP实现的,能够打印出可执行程序主机,一直到目标主机之前经历过多少路由器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值