1、网络传输流程图:
2、两台计算机通过 TCP/IP 协议通讯的过程如下所示:
2、数据包的封装分用:
3、不同网络环境中,网络数据传输流程
(1)网络互联:
① ARP 缓存表中 可以找到 目的主机MAC
- 1、主机1查找本机ARP缓存表,根据ARP协议,找到MAC
- 2、数据报由主机1,发送到集线器(数据报中:源MAC(主机1),目的MAC(主机3))(真实的数据报)
- 3、集线器 直接转发 数据到除主机1的其他所有相连主机(主机2,主机3)
- 4、主机2接收:数据报中,目的MAC不是我,丢弃
主机3接收:数据报中,目的MAC是我,接收。 目的IP是我,交给对应端口进程处理
② ARP 缓存表中 找不到 目的主机MAC
- 1、主机1查找本机ARP缓存表,发现找不到目的主机MAC
- 2、主机1发送广播数据报(非真实数据,只是要求对应主机返回MAC数据)
- 3、广播数据报通过集线器转发到主机2、主机3
- 4、主机2接收:要求的IP不是,丢弃
主机3接收:要求的IP是我,返回我的MAC
- 5、主机1收到主机3的返回数据(IP、MAC),更新自己的ARP缓存表
- 6、主机1发送真实的数据到主机3
(真实的数据 ,源MAC/源IP:主机1的MAC/IP , 目的MAC/目的IP :主机3的MAC/IP)
③ 使用集线器的缺陷: 网络冲突
(比如,你想知道张三的qq号,你开群聊发消息,就会对群聊里其他成员造成不必要的麻烦)
(2)局域网:
① 局域网 交换机 组网方式:(路由器(方式2)和它一样)
- 1、主机1查找本机ARP缓存表,如果找不到,发送广播数据报,让IP为主机3的告诉我它的MAC
- 2、交换机转发到其他所有端口(广播)
- 3、主机2丢弃,主机3返回自己的MAC
- 4、交换机知道主机3的MAC,然后主机1也就知道了主机3的MAC(更新ARP缓存表)
- 5、主机1发真实的数据给交换机(源MAC:主机1 , 目的MAC:主机3)
- 6、交换机查找自己的MAC地址转化表,通过MAC找端口,发送到对应端口
- 7、主机3接收:目的MAC是我,目的IP也是我
局域网 与 网络互联 数据传输的区别在于:局域网方式是定向传输,而网络互联是广播式传输
(先问张三手机号,在打电话给张三,不影响李四)
② 局域网 交换机 + 路由器 的方式:
-
1、通过目的 IP+子网掩码,计算出是否目的主机和本机在同一网段(IP和子网掩码位与操作,得到网络号)
-
2、如果是,和之前交换机组局域网流程一致
-
3、如果不是,表示我主机1处理不了,要发给网关转发(路由器)
-
4、数据报发给路由器
(源IP:192.168.1.x 源MAC:主机1的)
(目的IP:192.168.2.y 目的MAC:路由器网卡1的MAC)
-
5、路由器接收到数据报,分用:物理层到网络层,所以可以获取到目的IP
-
6、路由器查找自己的ARP缓存表(IP找MAC)
-
7、找不到,路由器发广播,主机2你在哪?告诉我你的MAC
-
8、有了MAC,直接发送到主机2
局域网方式是只使用 LAN 口,而广域网 LAN口和WAN都使用
(3)广域网:
主机1:发送 http://www.baidu.com 网络数据报
-
1、DNS协议:域名 转 IP
源IP:主机1的IP 源MAC:主机1的MAC
目的IP:百度服务器的IP 目的MAC:
-
2、根据目的IP计算是否和主机1在同一网段
-
3、不是同一个网段:发送数据报到网关(路由器)
-
4、交换机转发(没有封装分用):在MAC地址转换表,通过目的MAC找端口
-
5、路由器接收、分用、修改数据报
-
6、路途中的设备:
-
7、百度服务器:(接收数据并响应)
-
8、路由器1接收 百度服务器的响应数据(分用、修改、封装)
-
9、主机接收数据报(分用)