网络协议学习笔记—01


底层网络知识详解从二层到三层

从物理层到MAC层

第一层(==物理层==)

第二层(==数据链路层==)

  • 问题

    1. 这个包是发给谁的?谁应该接收?
    2. 大家都在发,会不会产生混乱?有没有谁先发、谁后发的规则?
    3. 如果发送的时候出现了错误,怎么办?
  • 数据链路层(又称作MAC层)

    • MAC : Medium Access Control 媒体访问控制

媒体访问控制。控制什么呢?其实就是控制在往媒体上发数据的时候,谁先发、谁后发的问题。防止发生混乱。这解决的是第二个问题。这个问题中的规则,学名叫多路访问。

  • 多路访问
    • 信道划分
    • 轮流协议
    • 随机接入协议
  • 链路层地址(通常称为MAC地址)
    • 网格包格式
      • 对于以太网来说,第二层的最开始为目标的MAC地址和源的MAC地址
目标MAC 源MAC 类型 数据 CRC
6bytes 6bytes 2bytes (46-1500bytes) 4bytes
  • 类型

    • 类型0800:IP数据包
      • IP 里面包含 TCP、UDP,以及 HTTP 等,这都是里层封装的事情。
    • 类型0860:ARP请求,应答
  • CRC(循环冗余检测)

    • 通过 XOR 异或的算法,来计算整个包是否在发送的过程中出现了错误,主要解决第三个问题。
  • ARP协议

    • 概念:已知 IP 地址,求 MAC 地址的协议。

在一个局域网里,当知道了IP地址而不知道MAC地址该怎么做?靠吼

广而告之,发送一个数据包,谁是目标IP谁来回答

  • 具体请求回答报文格式如下
ARP报文

为了避免每次都用 ARP 请求,机器本地也会进行 ARP 缓存。当然机器会不断地上线下线,IP 也可能会变,所以 ARP 的 MAC 地址缓存过一段时间就会过期。

局域网

  • 交换机
    • 功能:知道目标 MAC 地址是连接某个口的电脑的 MAC 地址

一台 MAC1 电脑将一个包发送给另一台 MAC2 电脑,当这个包到达交换机的时候,一开始交换机也不知道 MAC2 的电脑在哪个口,

所以没办法,它只能将包转发给除了来的那个口之外的其他所有的口。就是交换机会记住,

MAC1 是来自一个明确的口。以后有包的目的地址是 MAC1 的,直接发送到这个口就可以了。

总结:我不知道你找谁,但是我知道你是谁,以后也知道怎么找到你

  • 转换表

当交换机作为一个关卡一样,过了一段时间之后,就有了整个网络的一个结构了,这个时候,基本上不用广播了,全部可以准确转发。当然,每个机器的 IP 地址会变,所在的口也会变,因而交换机上的学习的结果,我们称为转发表,是有一个过期时间的。

总结

  • MAC 层是用来解决多路访问的堵车问题的;
  • ARP 是通过吼的方式来寻找目标 MAC 地址的,吼完之后记住一段时间,这个叫作缓存;
  • 交换机是有 MAC 地址学习能力的,学完了它就知道谁在哪儿了,不用广播了。

问题:

1.在二层中我们讲了 ARP 协议,即已知 IP 地址求 MAC;还有一种 RARP 协议,即已知 MAC 求 IP 的,你知道它可以用来干什么吗?

2.如果一个局域网里面有多个交换机,ARP 广播的模式会出现什么问题呢?


文章作者: rudy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 rudy !
  目录