【网络】第六章-链路层协议及其他协议

链路层协议及其他协议

链路层功能

  负责相邻设备之间的数据帧传输。
  网络层负责主导数据传输方向,而链路层更加偏向底层,用来引导相邻主机间数据如何传输,之后由物理信号传输数据。

以太网协议

  以太网协议用于在链路层组织数据,主导相邻主机之间的数据传输方向。
  在以太网协议中有一个重要概念MAC地址:相邻设备定位的地址,也就是物理网卡的硬件地址,标识每一块网卡,在两块网卡之间的数据传输起到作用

协议构成

  6字节目的MAC地址:标志数据发向哪块网卡。
  6字节源MAC地址:标志数据从那块网卡发来。
  2字节上层协议类型:及ip协议等。
  46-1500字节数据:传输的数据。
  4字节以太帧尾:在其中包含校验和。

ARP协议

  要想在链路层进行传输我们得知道目的MAC地址,那么我们如何获得MAC地址?这里就要用到ARP协议。

协议作用

  ARP协议是介于网络层与链路层之间的协议,通过IP地址获取MAC地址。

协议原理

  通过发送一个ARP请求数据包,要求指定ip地址的设备将自己的MAC地址做一个应答响应回来,并且对ip地址和MAC地址的关系进行映射缓存,但是缓存时间很短,通常只有30分钟。

MTU

  之前在网络层有提到过MTU,最大传输单元,即以太头包裹的数据大小(不包括头大小),IP协议头及其包裹的UDP数据如果总大于MTU则会在网络层进行数据分片,然后再通过链路层进行传输,而组织和分片数据都是在网络层,这里要讲的是MTU对TCP和UDP协议分别的影响。

对TCP协议的影响

  tcp在传输层进行传输的时候因为可靠传输会自动进行数据分段传输,之前的TCP协议中的滑动窗口机制介绍也有提到过,分段大小即称为MSS。通信双方在三次握手的时候计算自身MSS = MTU - IP - TCP,双方取较小的MSS作为最大数据段传输大小。因为TCP在传输层会进行自动数据分段,所以在网络层不会进行数据分片。

对UDP协议的影响

  UDP数据报在网络层如果大小大于MTU但是小于IP最大传输大小即64k则需要在网络层进行数据分片,如果分片越多由于UDP的不可靠传输则丢包可能性越大,对端重组数据失败几率就越大,意思是说如果UDP分片越多则数据丢包可能性越大。一个UDP包中的数据最大默认情况下也就是MTU(默认1500字节) - IP头(20字节) - UDP头(8字节) = 1472字节

其他协议

DNS

DNS的诞生

  DNSDomain Name System是域名系统。我们的服务器的IP地址往往是点分十进制的,十分难于记忆,于是便产生了域名,方便我们记忆查找服务器,例如www.baidu.com就是一个域名。当我们访问这个域名时,会首先将域名转换为对应的IP地址,那么要进行转换那就必须要有一个服务器存储映射关系帮助我们进行转换,这些服务器叫做域名服务器
  首先产生的是跟域名服务器,根域名服务器是最高级域名服务器,但是为了分摊访问压力进行容灾处理全世界一共有13台根域名服务器,分布在世界各地。

DNS服务器的层级划分

  就算全世界有13台根域名服务器这也远远不够用,因此根域名服务器为了再次分摊压力它只向下授权,授权世界权威组织可以继续建立域名服务器,便于域名解析。
  根域名服务器向下的一级授权是顶级域名服务器。例如.com/.org/.gov/.edu/.cn/.jp/.us
  顶级域名服务器还可以继续向下授权,授权出二级域名服务器。例如.baidu.com/.qq.com。以此类推还有三级域名服务器.baike.baidu.com

域名的解析流程

  通过域名访问服务器需要进行域名解析,域名解析会经过以下步骤进行解析,会以此经过以下步骤查找映射。

1
2
3
4
5
浏览器 -> 浏览器缓存 -> 查看本机host文件 -> 本地域名服务器
本地域名服务器查找不到对应域名则会按照以下顺序依次请求上级域名服务器查询域名:
本地域名服务器 -> 根域名服务器
本地域名服务器 -> 顶级域名服务器
本地域名服务器 -> 二级域名服务器

  这种访问方式是迭代的请求方式,即当本地域名服务器查找不到对应域名则主动请求根域名服务器,如果根域名服务器找不到对应域名则返回顶级域名服务器地址让本地域名服务器自己去请求顶级域名服务器,同理顶级域名服务器找不到会返回二级域名服务器逐层往下。还有一种递归的请求方式,当本地域名服务器向根域名服务器发出请求时如果根域名服务器无法找到域名则会自己主动去访问顶级域名服务器查找,如果找不到就继续相下级查找,如果找到则返回。

当浏览器输入url回车后发生那些事情

  1、域名解析流程进行域名解析得到服务器IP地址。
  2、根据url组织http协议格式的请求数据。
  3、基于Socket流程搭建tcp客户端,向得到的服务器地址发送http请求数据

ICMP协议

  网络层协议,主要实现网络探测功能。ping就利用到了ICMP协议,注意ping只是用了网络层协议因此不使用端口。

NAT技术

NAT的作用

  网络地址转换服务。我们在向主机发送数据时举要通过网关设备,网关设备将数据发送给指定主机号还要求目标主机将返回数据依旧通过此网关返回,因此在网关中会替换IP投中的源IP地址为此网关地址,这样就能做到让数据怎么去,怎么回。但是一个网关设备上肯定有多条数据等待转发,又如何标记哪条数据属于哪个主机呢?这里利用了不同的端口向不同的目的主机发送数据,并且建立映射,不同的端口映射一个目的主机一个源主机,这样数据返回时根据端口也能找到要返回的主机。这种根据端口建立映射的技术也叫NAPT技术。
  NAT一般部署在网关上。

代理服务器

  乍一看NAT技术和代理服务器的功能十分相似,但实际上有着很多区别:
  1、NAT是网络基础设备之一,用于解决IP地址不足的问题。代理服务器则偏向于应用。
  2、NAT作用在网络层,直接替换IP地址,代理服务器作用在应用层。
  3、NAT一般在局域网的出口部署,而代理服务器可以部署在局域网,也可以在广域网,也可以跨网。
  4、NAT部署在防火墙,路由器等设备上,代理服务器是一个软件,部署在服务器上。

-------------本文结束感谢您的阅读!-------------
记录学习每一分,感谢您的赞助