TCP/IP为例,TCP为数据传输协议,IP为网络通信协议,传输和通信协议共同构建了数据通信;

(一)、通过IP确定是否同属于一个局域网
通过(IP&子网)做位运算,IP和子网掩码都是32位,去掉.,每8位一段,最大为255,如:IP:10.0.0.15,子网掩码:255.255.255.0,表示需要比较 10.0.0前面24位,如果相同,就判断是同一个局域网,如果不同,则表示不是同一个局域网,需要通过网线(或者运营商的基站进行通信):

(二)、同一个局域网的通信:
直接广播数据信息,如果IP相同,这找到对应的机器,进行3次握手通信,互相记录对方的MAC地址(每一个网卡都有一个唯一的MAC地址)。

(三)、不是一个局域网的通信:

1、主机发送数据包(数据,传输协议,域名,自己的子网IP,MAC地址,网关等);

2、路由器包装(把IP换成对外的IP);

3、DNS解析域名为具体的IP;

4、通信商查找对应的IP是否存在(不存在,往上面查找(跨通信商,国家等));

5、找到对应的服务器IP路由器;

6、对应的路由器找到对应的主机(每个路由器都有它自己子服务器的路由表),每个对外的端口只能指向一个子网IP,多个会报错;

不同主机容器通信_tcp/ip

7、根据对应的内网端口找到对应的程序;
8、根据传输协议开始建立连接,如:TCP的三次握手连接;
9、开始传输数据包;
10、原路返回,根据对应的子网IP找到对应的电脑;

中间发生了多次发送和接收IP变更;
每次查询寻址效率会比较低,而一般IP不会变动,所以每个地方都做了一定的缓存;
距离过远,及时通过一定的距离算法找到最优的基站通信,性能上也有一定的,所以阿里云等供应商会在不同的域部署服务器,这样可以一定程度的提高一点性能;