网络
Contents
网络是多台计算机之间的互联互通形成的信息交互通道。现在的网络世界看似复杂,却遵从着一些基本设计原则。
拓扑
网络是分层的,从上至下大致可以分成:应用层、传输层、网络层、链路层、物理层。
- 应用层 - 包括了具体我们使用的程序想要传输的内容。
- 传输层 - 主要是 TCP 和 UDP 协议,在应用层数据的外层封装了一层,把 源端口和目的端口信息 加入了传输层。端口是用来区分不同的应用程序。
- 网络层 - 这一层会将 源和目的IP地址 加入,目的是为了区分不同的计算机。
- 链路层 - 这一层会根据不同的链路层协议,如 固网、wifi、3G/4G/5G 等,进行封装。主要是加上 MAC地址信息。
- 物理层 - 在电缆、光纤或其他介质中传输数据。
路由器和交换机
路由器和交换机是网络组成的关键环节
- 交换机 主要的工作是局域网内机器的ip地址和mac的映射。
- 路由器 则是链接不同 ‘局域网’ 的桥梁。
值得注意的是,在 链路层 的MAC地址信息,只是下一跳的源MAC和目的MAC。
例如,A要向B传输数据,传输的过程是:A -> A的交换机 -> A的路由器 -> (若干路由器) -> B的路由器 -> B的交换机 -> B
。
在链路层的MAC地址变化为:A_MAC + A_交换机_MAC -> A_交换机_MAC + A_路由器_MAC -> ... -> B_路由器_MAC + B_交换机_MAC -> B_交换机_MAC + B_MAC
。
在网络层,路由器会判断IP地址是否是属于局域网的机器,如果是,则不向其他路由器查询,直接转发给局域网内的目的机器。如果不是,则将数据包转发。
非局域网上的IP,通过最后一跳的路由器上的IP映射进行转换。