目录
计算机网络-基本概念
互联网
Java的跨平台原理
编辑 C\C++的跨平台原理
解释性语言的跨平台原理(python,js等)
客户端 vs 服务器
什么是协议?
网络互连模型
请求过程
计算机之间的通信基础
计算机之间的连接方式-网线直连(需要用交叉线,而不是直通线)
计算机之间的连接方式-同轴电缆(Coaxial)
计算机之间的连接方式-集线器(Hub)
计算机之间的连接方式-网桥
计算机之间的连接方式-交换机
计算机之间的连接方式-路由器
计算机网络-基本概念
互联网
Java的跨平台原理
C\C++的跨平台原理
解释性语言的跨平台原理(python,js等)
客户端 vs 服务器
阶段1:
阶段2:
整体图:
请求url地址解析:
什么是协议?
网络互连模型
(1) 如果多个生产商生产出多个服务器系统,对于多个服务器系统不同的生产商规定不同的协议标准,那么客户端和服务器进行数据交互的成本就会大幅度增加,因此国际标准化组织站了出来。
(2)
ISO组织规定了理论上的一套协议:OSI(分为七层)
实战中总结出的一套协议为:TCP/IP(分为四层)
高校学习研究的一套协议:分为五层
请求过程
过程:
(1)客户端请求服务器数据这一过程需要通过国际标准所规定的协议,学习研究时视其为五层。
(2) 客户端的请求会经过这五层不断的进行包装,包装之后传递到服务器。
(3) 服务器对于这一包装后的数据再一层层的进行解包,最终得到客户端最原始的请求。
(4)这一原始请求会通过应用层给到服务器软件(Tomcat),然后进行解析。
(5)当服务器进行响应数据给客户端时,同样遵循(1)-(4)的步骤。先一层层封装,传递给客户端,再一层层解包,客户端应用层最后得到的数据为服务器最原始的响应数据。
计算机之间的通信基础
两个计算机传输数据的交互过程:
(1) 两个计算机进行传输数据需要:源ip地址,目标ip地址,源MAC地址,目标MAC地址。
(2) 源计算机得知目标ip地址才可以通过ICMP协议进行传输数据给对方的(比如:互相ping)。
但是在传输数据之前需要通过ARP协议进行广播获取到目标计算机的MAC地址,通过MAC地址才可以找到目标计算机对应的端口,最终找到目标计算机对应的网卡进行传输数据。
注释:一个计算机可以有多个网卡,所以MAC地址不是唯一的,一个MAC地址对应一个网卡
补充:通过ARP协议获取到的MAC地址是有缓存的。当进行一次新的传输数据过程时,可能就无需进行ARP广播啦!
计算机之间的连接方式-网线直连(需要用交叉线,而不是直通线)
计算机之间的连接方式-同轴电缆(Coaxial)
分析:
(1) 半双工通信:计算机1传输数据给计算机2时,计算机2不可以传输给计算机1
(2) 容易冲突,不安全:同轴电缆是随机发送数据传输给任意计算机的
计算机之间的连接方式-集线器(Hub)
分析:
集线器相对于同轴电缆的好处:
一个计算机连接集线器的线断了,不会影响其它计算机的正常运行
集线器的问题:
当集线器上连接的计算机达到1000台时,任意一个计算机给另外一个计算机发送数据时,集线器会广播传输数据,会发送给1000台设备。这样会很长时间占用带宽(通过ICMP协议传输数据占用的时间+通过ARP协议获取MAC地址占用的时间)。后面引入网桥解决这个问题!
计算机之间的连接方式-网桥
(1)网桥通过自学习得知每一个计算机接口的MAC地址,可以分清左右两边分别有哪些计算机
(2)网桥左边的计算机传输数据就不会达到网桥右边,网桥右边的计算机传输数据也不会传输到网桥左边,这样形成隔绝冲突域。
网桥存在的问题:
即使网桥使其左右两边形成隔绝冲突域,但是左右两边的集线器也会随机传输数据给链接的计算机,当计算机数量巨大时 同样会形成较大的资源消耗。所以后面引入了智能的交换机!
计算机之间的连接方式-交换机
注释:
(1) 相当于接口更多的网桥:更加智能,记住每一个计算机的MAC地址,指定计算机ip地址进行传输数据时,不会随机传输给所有的计算机!
(2) 全双工通信 : 可以同时传输数据。eg:计算机1传输数据给计算机2时,计算机3也可以同时传输数据给计算机4,计算机2也可以同时传输数据给计算机1。
(3) 思考:全球所有的设备都使用交换机连接会是什么情况?
交换机仍然存在问题:
在不同计算机之间进行传输数据之前,会先进行ARP协议广播传输给所有计算机进行获取MAC地址,交换机需要学习这些MAC地址是和哪些计算机对应着的!
全球所有的设备都使用交换机的话,全球的计算机传输之前都需要先进行ARP广播,这个工作量也是十分大的!这即是广播风暴。
所以引入了路由器。
计算机之间的连接方式-路由器
网络直线,同轴电缆,集线器,网桥,交换机:
(1)连接的设备对应的ip地址必须在同一网段。eg:192.168.3.10和192.168.3.11处于同一网段,
192.168.3.10和192.168.2.11处于不同网段,
(2)连接的设备处于同一广播域。意思即是ARP广播协议进行获取MAC地址时,对于同一广播域的计算机都会接收到该传播。
我们知道,不同网段的计算机是不可以跨网段进行传输数据的,但是如果全世界处于同一网段的话,势必会出现ARP广播风暴等问题,所以我们引入了路由器。
我们在路由器的两边接上两个网关,左边的网关的ip地址是与左边的计算机处于同一网段的,右边的网关同理即可。
提出问题:计算机1是如何传输数据给计算机4的,分析一下这个过程?
(1) 计算机1在传输数据之前需要先进行获取左边网关的MAC地址:会先通过ARP广播获取到左边网关的MAC地址。补充:【计算机1的ARP同样会发送给计算机2,因为ARP是广播发送,同一交换机连接的所有计算机处于同一广播域,但是在对比目标ip地址后 就会被丢弃该数据包。】
(2)获取网关的MAC后,计算机1开始真正的传输数据给左边的网关,交换机通过目标ip地址,目标MAC地址智能识别后,传输数据给左网关
(3) 左网关会通过路由器传输数据给右网关
(4)右网关是和计算机4处于同一网段的,所以可以进行传输数据。同理,右网关会先获取计算机4的MAC地址,然后进行传输数据(具体过程参考前三条)。