两台计算机要如何建立通信?集线器 -> 交换机 -> 路由器
两台计算机要如何通信?
两两之间用网线直接连接:设备比较多时成本太高,需要 O(N^2) 根网线
集线器:将不同计算机的网线连接到一个中间节点,类似总线的方式,只需要 O(N) 根网线,但只能广播,并且容易冲突
交换机:引入 MAC 地址,通过 floading 自学习 MAC 地址,实现一对一消息传送。但 MAC 地址会随着网卡的变更而变更,我们需要一个更为抽象的地址,IP 地址。
路由器:如果使用交换机连接不同网络,由于交换器会全网 floading,效率就太感人了,并且此时 MAC 地址的条目也太多了。我们希望将不同的网络隔离开来,将网络分为不同的网段,交换机只会在当前网段 floading。引入 IP 地址和子网掩码,区分不同网段,通过 NAT 协议连接公网,通过 OSPF 和 BGP 自学习路由表的表项(下一跳)。 IP 地址可以手动管理也可以自动管理,例如 DHCP 协议。
端口:通过路由器我们只能将消息发送到某一计算机,为了区分一台计算机上不同的应用程序,引入端口号。