一、基本概念
1.网络互联:多台计算机连接在一起, 完成数据共享;
2.局域网(LAN):多台计算机通过交换机和路由器连接在一起
3.广域网(WAN):将远隔千里的计算机都连接在一起。
注:所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域网.。
4.IP:IP地址是在IP协议中, 用来标识网络中不同主机的地址。
5.PORT:端口号(Port)标识了一个主机上进行通信的不同的应用程序,通过端口能找到运行的进程,比如QQ,腾讯视频
6.ARP:ARP协议建立了主机 IP地址和 MAC地址的映射关系,通过IP能找到MAC地址,工作在主机和路由器。
7.MAC:MAC地址用来识别数据链路层中相连的节点,在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).
8.DNS:DNS是一整套从域名映射到IP的系统,能将域名转换为IP地址,工作在主机、路由器、DNS服务器。
9.NAT:NAT能够将私有IP对外通信时转为全局IP. 也就是就是一种将私有IP和全局IP相互转化的技术方法,全局IP要求唯一, 但是私有IP不需要; 在不同的局域网中出现相同的私有IP是完全不影响的;工作在路由器。
10.NAPT:进行IP转换的同时进行PORT的互换,由于私有IP不具有唯一性,所以在同一局域网中可以出现相同的IP,所以必须有NATP通过IP+PORT来确认局域网中具体哪一台主机,工作在路由器。
11.交换机:交换机根据所传递数据包的IP地址,将每一条数据包(包括请求MAC的数据包)发送到目的端口。
12.路由器:当IP数据包, 到达路由器时, 路由器会先查看目的IP;路由器决定这个数据包是能直接发送给目标主机, 还是需要发送给下一个路由器;依次反复, 一直到达目标IP地址;
二、网络互连的流程
主机A访问主机C。
前提:已知目的主机IP和PORT,和本机IP+PORT
步骤:
1.查询本机ARP,根据IP找到MAC地址
2.如果找不到MAC,就将请求(请求MAC地址的数据包))发送到公网(局域网所有节点),主机C收到请求,会核对自己的IP地址,发现是自己的IP,就返回自己的MAC地址给主机A,主机B也会收到请求,核对后发现不是自己的IP,就无视请求,将数据包丢掉。
3.如果找到MAC,直接发送数据包(封装了的真实数据包)到主机C
三、局域网数据传输流程
主机A访问主机C
前提:已知目的主机IP和PORT,和本机IP+PORT
步骤:
1.主机A查看本机ARP,通过IP找到MAC地址
2.如果找不到,就将请求(请求MAC地址的数据包)交给交换机,交换机将请求发送到公网,主机C收到请求,会核对自己的IP地址,发现是自己的IP,就将自己的MAC发送给交换机,交换机转发给主机A。主机B也会收到请求,核对后发现不是自己的IP,就无视请求,将数据包丢掉。
3.如果找得到,就将数据发送给交换机,交换机转发给主机C
四、广域网的数据传输流程
主机A访问https://www.baidu.com/
1.主机A通过DNS找到www.baidu.com域名对应的IP和端口(PORT)
2.通过子网掩码进行位与操作,判断是否是本局域网
3.发现是非本局域网,找到网关IP和MAC(ARP,路由器的IP和MAC),发送请求数据包到路由器
4.路由器通过NAT将数据包私有IP转换为公网IP
5.路由器使用 路由表,查找目的IP最短路径上的MAC,并将数据包发送到下一站
6.到达百度服务器,比较目的IP是否和本机一致,如果是就处理数据,因为有目的端口号可以定位到具体哪个进程
目的IP(百度服务器)、目的端口(百度服务器进程端口)
源IP(客户端路由器IP) 源端口(客户端主机进程端口)这里的客户端是主机A
7.处理好请求后,调换目的IP、目的端口和源IP、源端口,往回发
8.路由器接收到返回数据,能够根据NAPT定位到局域网里的哪台主机。