网略协议梳理(二)

从物理层到MAC层

物理层

集线器,具有多个口,与交换机不同,集线器完全在物理层工作,他会将自己收到的每一个字节,都复制到其他端口上去。

采取的模式是广播

数据链路层

解决的问题

  • 1、决定包发给谁,谁接受
  • 2、决定发包的顺序
  • 3、如果发送出错,应该如何处理

交换机

可以把数据包的MAC头拿下来检查MAC地址,然后根据策略对数据进行转发。

当交换机收到一个数据包时,会记录该数据包发送端的MAC地址,然后将包转发给除了发送端之外的其他机器。如此,对于以后收到的数据,如果数据包目标端的MAC地址在交换机中有记录,则直接发送到记录的位置,从而减少广播带来的浪费。用于记录MAC地址和机器之间的对应关系的表——转发表(该表有有效期)

链路层地址——MAC地址——决定发给谁,谁接受

包格式

MAC(Medium Access Control)——媒体访问控制

控制发送数据的顺序,控制的规则叫多路访问。有以下三种多路访问的方式:

  • 信道划分——多个通路,每个数据一个通路,互不干扰
  • 轮流协议——类似于起床的按号限行
  • 随机接入协议——有路有走,独自就等。

CRC——循环冗余检测——通过XOR异或算法,来计算整包在发送过程中是否出现错误。

arp协议

可以根据IP地址获取目标机器的MAC地址(同一局域网内)。通过广播来询问目标机器的MAC地址。

为了尽量少用ARP请求,机器本地会进行ARP缓存,该缓存有有效期。

广播风暴——局域网中存在多个交换机时,ARP广播容易出现的问题

ARP广播时,交换机会将一个端口收到的包转发到其它所有的端口上。比如数据包经过交换机A到达交换机B,交换机B又将包复制为多份广播出去。如果整个局域网存在一个环路,使得数据包又重新回到了最开始的交换机A,这个包又会被A再次复制多份广播出去。如此循环,数据包会不停得转发,而且越来越多,最终占满带宽,或者使解析协议的硬件过载,行成广播风暴。

RARP协议

之前有无盘工作站,即没有硬盘的机器,无法持久化ip地址到本地,但有网卡,所以可以用RARP协议来获取IP地址。

RARP可以用于局域网管理员想指定机器IP(与机器绑定,不可变),又不想每台机器去设置静态IP的情况,可以在RARP服务器上配置MAC和IP对应的ARP表。

交换机与VLAN

拓扑结构与环路问题

 

拓扑结构——多台交换机链接起来的结构。环路问题如下图:

由于交换机依靠广播发送数据,因此,如果配置不当,就会出现环路问题。即使交换机有转发表,环路问题会导致交换机不断的修改转发表中的数据。

STP协议——解决环路问题

在计算机网络中,生成树的算法叫做STP(Spanning Tree Protocol)。

STP协议中的一些概念

  • Root Bridge——根交换机
  • Designated Bridges——指定交换机——指定的意思是指定该节点的父节点是谁——指定交换机不是节点,节点都是主机
  • Bridge Protocol Data Units——网桥协议数据单元——当两个交换机相连,BPDU只能由其中一方发送,另一方只能传递
  • Priority Vector——优先级向量

 

ICMP与ping

ping基于ICMP协议工作。ICMP是互联网控制报文协议,用于检测网络出现故障的原因。

ICMP报文封装在IP包里,ICMP报文有很多类型,最常用的类型是主动请求为8,主动请求应答为0

ICMP报文分类

  • 查询报文类型——ping就是一种查询报文,是一种主动请求,并且获得主动应答的ICMP协议。
  • 差错报文类型——(终点不可达为3、源抑制为4、超时为11、重定向为5)

ping:查询报文类型

ping命令执行时,源主机首先会构建一个ICMP请求数据包,ICMP数据包内包含多个字段。最重要的是两个,一个是类型字段,对于请求数据包而言该字段为8。另一个是顺序号,主要用于区分连续ping的时候发出去的多个数据包。每发出一个请求数据包,顺序号自动加1。为了能够计算往返时间RTT,他会在报文的数据部分插入发送时间。

然后由ICMP协议将该数据包连同目标IP地址一起交给IP层。IP层构建为数据包添加IP头,数据链路层为数据包添加MAC头,如果本地ARP映射表中不存在目标机器的MAC地址,协议通过ARP协议查询MAC地址。拼凑完整之后,数据包会被发送出去。

目标机器收到数据帧后,先检验MAC地址是否与本机相同,如果符合,则接收,否则丢弃。接收后检验数据帧,将IP数据包从帧中提取出来,交给本机的IP层。IP层检验之后,将有用的信息提取出来交给ICMP协议。

主机会构建一个ICMP应答包,应答包的数据字段为0,顺序号为接收到请求数据包中的顺序号,在返回给发送端。

在规定的时间内,源主机如果没有收到ICMP应答包,则认为目标主机不可达,反之,则说明可达。此时,源主机会检查,用当时时刻减去该数据包被发出的时刻,获取ICMP数据包的时间延迟

补充:很多时候,很多中间设备不允许ping操作。因此ping不同不代表网络不同。此时需要使用telnet,通过其他方式测试网络是否联通。

Traceroute:差错报文类型

Traceroute第一个作用——设置特殊的TTL,来追踪去往某个目的端时沿途经过的路由器

Traceroute的参数指向某IP地址,通过发送UDP包,通过不断的调节TTL,获取到的目标地址经过的所有路由器的IP。如果路由不回复ICMP数据包,则Traceroute对于该节点的测试就是失败的。

Traceroute的另一个作用是通过不设置分片来确定路径的MTU。

猜你喜欢

转载自blog.csdn.net/qq_29996285/article/details/87975456