数据在计算机之间传输分为两种情形:
- 源主机与目标主机在同一个局域网中(使用交换机基于MAC地址进行分发);
- 源主机与目标主机都有公网IP(使用路由器基于IP协议进行分发);
- 源主机与目标主机其中有一个只有私有IP(使用路由器基于IP协议进行分发)。
第一种情况,主机之间通过交换机连接,使用以太网协议进行通讯。交换机工作在链路层。
当交换机刚刚安装配置好之后:
- 交换机收到端口为A,MAC地址为X的计算机发送给MAC地址为Y的计算机的数据包,交换机会将X->A记录到端口映射表中;
- 此时交换机不知道MAC地址为Y的计算机在哪个端口,于是向除了A之外的所有端口发送数据包;
- MAC地址为Y的计算机收到数据包后向X发出确认包,交换机在端口B收到后,会将Y->B记录到端口映射表中;
- 交换机向MAC地址为X的计算机转发确认包。
- 经过一系列的学习过程后,交换机获得了局域网的 ”MAC地址->端口“ 映射表,之后的数据交换过程便是高效的定点转发。
第二种情形,主机之间都有公网IP地址,他们通过若干交换机和路由器相连。路由器工作在网络层,路由器看到的是IP协议能够知道数据传输的源IP和目标IP。路由器会解决最佳路由路径的问题以及异构网络封包转换的问题。
数据传输过程:
- 源主机发送的数据包到达本地局域网的路由器;
- 路由器发现目标主机是某个远程主机,对数据包进行拆包重组;
- 顺着路由表层层转发最后达到目标主机对应的路由器;
- 路由器发现是本局域网内的主机,将数据包重组;
- 数据包最终到达目标主机。
第三种情形,源主机与目标主机其中有一个只有私有IP,他们通过若干交换机和路由器相连。
私有IP
私有IP主要用于在局域网中进行分配,在 Internet上是无效的。这样可以很好地隔离局域网和 Internet。私有IP在公网上是不能被识别的,必须通过NAT(网络地址转换)将内部IP地址转换成公网上可用的IP地址,从而实现内部IP地址与外部公网的通信。
私有IP属于非注册地址,专门为组织机构内部使用。
A: 10.0.0.0~10.255.255.255 即10.0.0.0/8
B: 172.16.0.0~172.31.255.255即172.16.0.0/12
C: 192.168.0.0~192.168.255.255 即192.168.0.0/16
当NAT网关建立了双向的映射表:“源主机IP+端口->网关公网IP+随机分配的端口” 之后,“网关公网IP+随机分配的端口”就变成了“源主机IP+端口”的替身。源主机便能够与公网进行通信。