小码哥《网络协议从入门到底层原理》笔记(一、二):基本概念、集线器、网桥、交换机、路由器

3,020 阅读4分钟

我的Github地址

小码哥《恋上数据结构与算法》笔记

极客时间《iOS开发高手课》笔记

iOS大厂面试高频算法题总结

iOS面试资料汇总

网络互连模型

  • 为了更好地促进互联网络的研究和发展,国际标准化组织ISO在1985年制定了网络互连模型
  • OSI 参考模型(Open System Interconnect Reference Model),具有7 层结构
  • 实际开发和学习中,主要使用4层的TCP/IP协议和5层的学习研究版

请求过程

  • 在网络请求客户端服务器发送数据过程中,每一层都负责拼接一部分数据。
  • 客户端接收服务器返回的数据时,每一层都负责拆除一部分数据。

计算机之间的通信基础

  • 需要得知对方的IP地址
  • 最终是根据MAC地址(网卡地址), 输送数据到网卡, 被网卡接收
    • 数据中包括源IP目标IP地址源MAC地址目标MAC地址
    • 如果网卡发现数据的目标MAC地址是自己, 就会将数据传递给上一层处理
    • 如果网卡发现数据的目标MAC地址 不是自己, 就会将数据丢弃, 不会传递给上一层进行处理

计算机之间的连接方式

网线直连

  • 需要用交叉线(不是直通线)
  • ping命令使用的是ICMP协议,前提是需要知道对方的ip地址,最终是根据MAC地址输送数据到网卡,被网卡接收。
  • 当不知道对方MAC地址时,使用ARP协议,进行广播
  • 广播只在同一个网段中传播,目的是获取MAC地址,给所有连接设备发广播,询问对应ip地址下的MAC地址
  • ARP协议的广播中,目标MAC地址FFFF.FFFF.FFFF。即16进制MAC地址,换算二进制全是1
  • 全是1的MAC地址,代表广播,表示在同一个网段的所有连接设备都能接收。
  • ARP协议是有缓存的,当下次在ping的时候,就不需要再去获取ip地址了,而是直接执行ICMP协议。

同轴电缆(Coaxial)

  • 多台设备连接方式
  • 半双工通信
    • 同一时间,单向通信
  • 容易冲突
    • 电缆两个方向同时有数据汇入时,会发生冲突。
  • 不安全
    • 数据不会单向走入对应的计算机,而是向所有设备发送数据。
  • 中间断了, 整个就瘫了
    • 失去了终止电阻

集线器(Hub)

  • 优点:
    • 某两条线路发生冲突,其他线路任可通信
  • 缺点:
    • 如果连接了1000台设备, ARP协议就会发送1000条数据。即使知道对方MAC地址,发送数据任然需要同时发送给1000台设备。
    • 半双工通信
    • 容易冲突
    • 不安全

网桥(Hub)

  • 能够通过自学习得知每个结构那侧的MAC地址,从而起到隔绝冲突域的作用。
    • 通过MAC地址表
    • 当数据通过网桥MAC地址表确定目标MAC地址不在另一侧时,就不会继续向另一侧发送数据了。
    • 如果左右两侧数据可以被网桥分隔,那么左右两侧可以同时进行通信。

交换机(Switch)

  • 相当于接口更多的网桥
    • 学习能力,能记住每个接口对应的MAC地址
  • 全双工通信,双向通信
  • 比集线器安全
  • 区域网最终方案

全球所有设备都用交换机连接会是什么情况?

  • 会接收到全球设备的广播
  • IP地址不够用

路由器(Router)

  • 可以在不同网段之间转发数据
  • 隔绝广播域
    • 不同网段之间的广播是发不过去的

不同网段如何通信

  • 主机发数据之前先判断目标IP地址与主机是否在相同网段
    • 在同一个网段,发送ARP,通过交换机集线器传递数据。
    • 不在同一个网段
      • 主机先发送ARP到路由器网关,确定网关MAC地址
      • 主机发送数据给网关网关再决定出口是哪个网关
      • 出口网关发送ARP,以确认接收方MAC地址
      • 最后出口网关将数据发送给接收方。

总结

  • 网线直连, 同轴电缆, 集线器, 网桥, 交换机
    • 连接的设备必须在同一网段
    • 连接的设备处在同一广播域
  • 路由器
    • 可以在不同网段之间转发数据
    • 隔绝广播域
      • 不同网段之间的广播是发不过去的
  • 主机发数据之前, 首先会判断目标主机的ip地址跟它是否在同一个网段
    • 在同一个网段: ARP
    • 不在同一个网段: 通过路由器转发数据