数据链路层、物理层

文章目录

      • 理解MAC地址
      • 共享介质型网络
      • 非共享介质网络
      • 根据 MAC 地址转发
      • 以太网格式
      • 理解 ARP 协议
      • 理解 MTU
      • DNS
      • ICMP
      • NAT 技术
      • NAPT

数据链路层是在两个设备之间进行传输

以太网是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等;

以太网帧格式

理解MAC地址

用于识别数据链路中互连的结点
数据链路层、物理层_第1张图片
其中3-48位保证了MAC 地址在生产时候的唯一性;MAC 地址一般是用十六进制表示的,所以每 8 位比特会进行转换成对应的值,并且替换顺序。例:
数据链路层、物理层_第2张图片

共享介质型网络

从通信的介质使用方法来看,网络分为 共享介质 和 非共享介质;共享介质就是多个设备共享一个通信介质的一种网络;对共享介质网络中分为两种介质访问的控制方式。
数据链路层、物理层_第3张图片
争用方式的缺点:如果多个站同时发送帧会导致网络拥堵而造成性能下降。
但是令牌的传递方式弥补了这个缺点,不会发生网络拥堵,因为它的工作原理是:一个站只有在得到令牌的情况下才可以发送帧,当数据被发送到一个站点的时候会检测是不是发送给自己的,如果不是发给自己的就沿着环 转给下一个站,如果是发送给自己的数据包,则设置一个 “已接收数据的标志位” 沿着环再发给下一站。它的优点就是:不会发生网络的拥堵现象,每个站都有平等的获得令牌的机会,缺点是 如果一个站没有收到令牌就无法发送数据,那么利用率也就达不到100%,于是便引出了 一些技术,例,令牌早期释放,令牌追加 ,目的就是提高网络性能。

非共享介质网络

每个站直接连接交换机,由交换机负责转发数据帧,通过以太网交换机 构建网络,从而使计算机与交换机端口之间形成一对一的连接,实现全双工通信,使用起来效率很过,但是存在一个缺陷就是 一旦交换机出现故障,与之连接的计算机都将无法通信。

根据 MAC 地址转发

将集线器 或 集中器 等设备以星型连接 就变为 交换集线器 也叫以太网交换机 ,也可以把它看做持有多个端口的网桥。交换机会接收到 目标MAC地址 ,通过参考一张表,这张表叫做 转发表 来判断从哪个网络接口发送数据,这张表中记录中 目标 MAC 地址对应哪个接口,这一功能叫做 交换机的自学过程

以太网格式

数据链路层、物理层_第4张图片
前导码表示 一个以太网的帧的开始,也是对端网卡能够确保与其同步的标志,在前导码的末尾是一个 SFD域,其值是 11 ;接着后面表示以太网的 主体,在主体的前端是 以太网的首部(14字节)包含源MAC地址,存放构造以太网帧的发送端工作站的物理地址,还包含目标MAC地址,存放了目标工作站的物理地址,在首部的后面还有一个判断上层协议类型的2个字节,表明了以太网上一层网络协议类型。在帧的末尾是一个 FCS,检测帧是否损坏,如果损坏则不已发送

那它是如何检测的呢?https://blog.csdn.net/loveCC_orange/article/details/79127809

理解 ARP 协议

并不是单纯的数据链路层协议,介于数据链路层和网络层之间的协议,ARP协议建立了主机IP地址和Mac地址的映射,根据IP地址可以获取到物理地址,因为在网络通讯中,源主机应用程序知道目的主机的IP和端口号,却不知道目的主机的硬件地址

在通信之前必须知道目的主机的硬件地址,否则当数据包发送过去的时候发现数据包中的硬件地址和本机不符合,就直接丢弃了,只有硬件地址相同了,才会被网卡接收去处理上层协议.

ARP协议工作流程
源主机发出ARP请求,例如询问“IP地址是192.168.0.1的主机的硬件地址是多少”, 并将这个请求广播到本地网段,目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中;

为了避免流量浪费,每台主机都维护一个ARP缓存表,可以用 arp -a 命令查看,如果缓存下来后,下一次就没有必要一直发送ARP数据包,直接在缓存取出Mac地址,但是缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址,这是因为有了时间期限,这样即使Mac地址和IP地址对应关系发生了变化,依然可以将数据包正确发送给目标地址.否则一旦对应关系固定死,就无法通信了.

理解 MTU

这个技术名字叫 路径MTU发现,虽然我也不知道为什么名字起的这么古怪,这个技术就是避免数据包在路由器这一模块进行分片,因为它希望把分片这一功能交给TCP,目的就是提高路由器的传输效率,使自己的重担轻点

所以MTU就是路径中所有数据链路中最小能发送的包的大小,也就是这个如果把数据包设置为MTU这个值,就可以最大量的避免数据包在中途路由器进行分片处理

MTU工作原理
在发送IP数据包时,IP首部的标志位设为1,表示不进行分片,中途的路由器如果无法接收就会丢包,并把这个MTU消息通知发送主机,就会更新当前的MTU值,直到收不到消息最新MTU消息时,就可以确定当前MTU就是最合适的.

MTU对IP协议的影响
对于数据链路层MTU的限制,较大的IP数据包依然还是要分片处理的,会将大包分为多个小包并打上标签,到达对端时再将这些小包, 会按顺序重组, 拼装到一起返回给传输层;

一旦这些小包中任意一个小包丢失, 接收端的重组就会失败. IP层也不会负责重新传输数据

MTU对UDP的影响

DNS

ICMP

属于网络层协议,当一个网络被搭建好的时候会先进行测试一下,查看网络是否通畅,由于IP协议并不会提供可靠传输,如果丢包了,IP协议也是无法通知传输层

所以引入了ICMP,主要功能是 确认IP包到达目标地址,如果丢弃了则通知被丢弃的原因,虽然ICMP基于IP实现的,但是依然属于网络层协议

我们熟知的 ping 命令就是给目标服务器发送一个 ICMP 回应请求报文,如果网络通畅会返回一个 ICMP 回复报文

关于ping命令需要注意的是:没有端口号,属于网络层,而端口号是传输层内容.

数据报在传输层加源端口号和目的端口号;在网络层加上源 IP 和目的IP ;在数据链路层转化成数据桢进行校验,然后在物理层变成光电信号发送出去.

traceroute 命令 基于ICMP实现,可以查看出执行的主机到目的主机经历了多少路由器.

NAT 技术

解决IP地址不够用的主要手段,是路由器的一个重要功能

NAT 能够将私有 IP对外通信时转为全局 IP,也就是说只要保持全局IP是唯一的就行了,至于不同网络的私有IP无所谓,就算相同了也没关系,但是同一个网络下的私有IP也必须是唯一的.

很多学校, 家庭, 公司内部采用每个终端设置私有IP, 而在路由器或必要的服务器上设置全局IP

NAPT

网络端口地址的转换

你可能感兴趣的:(计算机网络,MAC地址,以太网帧格式,共享介质型网络,非共享介质型网络)