《趣谈网络协议》学习记录

93 阅读5分钟

1. 物理层到 MAC 层

MAC (Medium Access Control,媒体访问控制),控制在往媒体上发数据的时候,谁先发、谁后发的问题,防止发生混乱。 媒体接入控制,即多路访问的规则:

  • 信道划分:分多个车道,每个车一个车道,各走各的;
  • 轮流协议:今天单号出行,明天双号出行,轮着来;
  • 随机接入协议:不管三七二十一,有事儿先出门,发现特堵就回去,错过高峰再出。以太网使用这种方式。

链路层地址,因为第二层主要解决媒体接入控制的问题,所以它常被称为 MAC 地址。

ARP 协议,已知 IP 地址,求 MAC 地址的协议。为了避免每次都用 ARP 请求,机器本地也会进行 ARP 缓存,ARP 的 MAC 地址缓存过一段时间就会过期。

交换机,交换机上有转发表,转发表有过期时间。

RARP 协议,已知 MAC 求 IP。

2. 交换机与 VLAN

STP(Spanning Tree Protocol),解决交换机的环路问题,将有环路的图变成没有环路的树。主要元素如下:

  • Root Bridge 根交换机
  • Designated Bridges 指定交换机
  • Bridge Protocol Data Units(BPDU)网桥协议数据单元
  • Priority Vector 优先级向量

STP 的工作过程:

  • 交换机形成树的过程
  • 广播和安全问题:物理隔离、虚拟隔离(VLAN 虚拟局域网)
  • 交换机通过 VLAN 形成虚拟局域网,解决广播问题和安全问题

交换机:

  • 交换机之间通过 Trunk 口相互连接,Trunk 口可以转发属于任何 VLAN 的口。

3. ICMP 与 ping

ping 是基于 ICMP(Internet Control Message Protocol,互联网控制报文协议) 工作的

ICMP 报文封装在 IP 包中,ICMP 报文有很多种类型,不同的类型有不同的代码,最常用的类型是:

  • 8-主动请求,0-主动请求的应答

查询报文类型:

  • ping 就是查询报文,是一种主动请求,并且获得主动应答的 ICMP 协议。对 ping 的主动请求进行网络抓包,称为 ICMP ECHO REQUEST,同理主动请求的回复称为 ICMP ECHO REPLY。

差错报文类型:

  • 3-终点不可达:0-网络不可达,1-主机不可达,2-协议不可达,3-端口不可达,4-需要进行分片但设置了不分片位代码
  • 4-源抑制,让源站放慢发送速度
  • 11-超时,超过网络包的生存时间了还没到
  • 5-重定向,让下次发给另一个路由器

traceroute 是差错报文类型,Traceroute 的第一个作用就是故意设置特殊的 TTL,来追踪去往目的地时沿途经过的路由器;Traceroute 还有一个作用是故意设置不分片,从而确定路径的 MTU IP 层、MAC 层、ARP 映射表

4. 网关

如何判断是否在同一个网段?CIDR和子网掩码

网管往往就是一个路由器,是一个三层转发的设备,作用是将 MAC 头和 IP 头都取下来,然后根据里面的内容,看看接下来的包往哪里转发的设备。

很多情况下把网关叫做路由器,这种说法并不完全准确

静态路由:静态路由,其实就是在路由器上,配置一条一条规则。

MAC 地址、IP 地址的变与不变

  • MAC 地址是一个局域网内才有效的地址,因而,MAC 地址只要过网关,就必定会改变,因为已经换了局域网。
  • 不改变 IP 地址的网关,我们称为转发网关;改变 IP 地址的网关,我们称为NAT 网关。
  • IP 地址也会变,这个过程用英文说就是 Network Address Translation,简称 NAT

小结:

  • 如果离开本局域网,就需要经过网关,网关是路由器的一个网口。
  • 路由器是一个三层设备,里面有如何寻找下一跳的规则。

5. 路由协议

路由器就是一台网络设备,它有多张网卡。当一个入口的网络包送到路由器时,它会根据一个本地的转发信息库,来决定如何正确地转发流量,这个转发信息库通常被称为路由表。

一张路由表中有多个规则,每个规则至少包含三项信息:目标网络、出口设备、下一跳网关。

路由配置

  • 根据目的 IP 地址来配置路由
  • 策略路由,根据多个参数来配置路由

动态路由算法

  • 求最短路径算法:Bellman-Ford 算法、Dijkstra 算法
  • 距离矢量路由算法:基于 Bellman-Ford 算法,会限制网络规模
  • 链路状态路由算法:基于 Dijkstra 算法

动态路由协议

  • 基于链路状态路由算法的 OSPF(Open Shortest Path First,开放式最短路径优先),广泛应用在数据中心中的协议。由于主要用在数据中心内部用于路由决策,因而称为内部网关协议(Interior Gateway Protocol,简称 IGP)

    等价路由:OSPF 可以发现多个最短路径,可以在这多个路径中进行负载均衡。

  • 基于距离矢量路由算法的 BGP(Border Gateway Protocol,外网路由协议) 自治系统 AS(Autonomous System),自治系统分为几类:

    • Stub AS,对外只有一个连接,这类 AS 不会传输其他 AS 的包。例如个人或者小公司的网络
    • Multihomed AS,可能有多个连接连到其他的 AS,但是大多拒绝帮其他的 AS 传输包。例如一些大公司的网络
    • Transit AS,有多个连接连到其他的 AS,并且可以帮助其他的 AS 传输包。例如主干网

    BGP分为两类:eBGP、iBGP
    BGP 协议使用的算法是路径矢量路由协议(path-vector protocol),它是距离矢量路由协议的升级版。

小结:

  • 路由分静态路由和动态路由,静态路由可以配置复杂的策略路由,控制转发策略;
  • 动态路由主流算法有两种,距离矢量算法和链路状态算法。基于两种算法产生两种协议,BGP 协议和 OSPF 协议。