1 不同语言跨平台原理
- 同一份代码可以在多个操作系统跑效果相同
1.1 C/C++
- 源代码为.c或.cpp(c plus plus)文件
- 想要在不同平台执行,需要将源代码使用平台相关的编译器,编译成不同格式的可以被操作系统直接执行的可执行文件
- 这些可执行文件实际上就是机器码
1.2 Java
- 源代码为.java文件
- 想要在不同平台执行,需要将源代码编译成.class字节码
- 字节码不能被操作系统直接执行,需要由操作系统上的JVM应用程序加载并翻译成机器码,最终再交给操作系统执行
1.3 脚本语言
- js、python为脚本语言
- 脚本语言无需编译,直接由操作系统上的某个应用程序,实时将其翻译成机器码并最终交给操作系统执行,所以叫解释执行
- 对于js,浏览器对其进行解释与执行
2 服务器
- 服务器就是一个软件,该软件占用并监听服务器的端口
- 同一个服务器软件上,可以部署多个项目,例如qq项目、微信项目、王者荣耀项目,他们共用一个端口
3 通信协议
- 用于规定通信双方如何进行数据传送控制,例如数据格式、同步方式、传送速度、传送步骤、检纠错方式、控制字符定义等
- 协议定义了一种标准,而标准可以降低沟通成本,方便编程
4 网络互联模型
- OSI模型:是一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架,为7层结构
- TCP/IP四层模型:是真正使用的网络通信模型,协议家族中主要有TCP和IP两个协议,因此命名,为5层结构
- TCP/IP五层模型:用于学习研究使用的模型
5 请求过程
- 客户端想传递数据给服务端,必须先将数据传给下一层,每层都在原来数据基础上加上一些数据,直到物理层,得到最终发送的数据,然后通过介质发送出去,服务器收到数据后,也是一层层向上传递,一层层拆解数据包,最终得到最开始发送的数据
6 计算机之间的通信基础
- 计算机通过网卡传输和接收数据,MAC地址就是网卡的唯一标识
- 发送出的数据包中有源IP,目标IP,源MAC,目标MAC
- 可以暂时理解为,MAC用于同一网段之间寻找机器,IP用于不同网段间查找机器,也就是说,无论什么设备,收到目标MAC为
FFFF.FFFF.FFFF
的数据包,都会广播给同一网段中所有机器,而交换机和集线器的区别在于,收到目标MAC为指定MAC地址的数据包时,交换机会检查自己的arp缓存中,是否记录了该MAC地址,如果有记录,按指定路线发送,如果没记录就不发送,而集线器仍然会对局域网中所有机器发送该数据包 - 如果网卡发现数据的目标mac地址&自身mac地址,结果为
FFFF.FFFF.FFFF
,也就是发现就是自己,就会将数据传递给上一层进行处理,如果网卡发现数据的目标mac地址不是自己,就会将数据丢弃,不会传递给上一层进行处理
7 计算机间的连接方式
- 使用Cisco Packet Tracer模拟网络搭建
- 仿真:一步步发送数据包,可以观察整个数据传输的过程
- 显示连接不同设备的端口名:选项–首选项–总是显示端口标签
- 如果设备之间连线上的标志为绿色表示连通,黄色表示出现bug,需要反复切换实时和仿真让其再次变为绿色,红色表示连接的端口没有打开
- 汉化:将
chinese.ptl
文件放入/Applications/Cisco Packet Tracer 7.3/Cisco Packet Tracer 7.3.app/Contents/LANGUAGES
文件夹,进入Cisco Packet Tracer–选项–首选项–选择chinese-ptl–Change Language - 相关设备介绍
- Network Devices:网络设备
- Switches:交换机
- Routers:路由器
- Hubs:集线器
- End Devices:终端设备
- Network Devices:网络设备
7.1 网线直连
-
需要使用交叉线而不是直通线
- 直通线:一根双绞线的两端水晶头压线的标准一致
- 交叉线:压线的标准不一致
- 相同的设备之间使用交叉线连接,不同的设备之间使用直通线
-
配置
-
发送流程:计算机0 ping 计算机1
- 计算机0准备发送ip为192.168.1.11的计算机1ICMP数据包
- 但此时发现没有ip为192.168.1.11的MAC地址(网卡地址),
arp -a
查看计算机arp缓存中的IP与MAC对照关系 - 因此计算机0先发送ARP数据包
- 目标IP:192.168.1.11
- 源IP:192.168.1.10
- 目标MAC:
FFFF.FFFF.FFFF
- 源MAC:计算机0的MAC地址
- 该网段内的主机收到这个ARP数据包时
- 用自己的MAC地址&
FFFF.FFFF.FFFF
,查看结果是否为FFFF.FFFF.FFFF` - 判断目标ip是否为自身
- 用自己的MAC地址&
- 如果都满足两个条件都满足,就会接受这个ARP数据包,并发送一个新的ARP数据包
- 目标IP:192.168.1.10
- 源IP:192.168.1.11
- 目标MAC:计算机0的MAC地址
- 源MAC:计算机1的MAC地址
- 当计算机0接收到这个ARP数据包后,就知道了计算机1的MAC地址,此时就可以正式发送ICMP数据包了
-
判断是否连通
- ping 对方ip
- 添加简单的PDU,点击计算机0,然后点击计算机1,进入仿真模式,一步步执行,看ICMP数据包是否能正确传输给计算机1再传输回来,ping命令传输的其实就是ICMP数据包
7.2 同轴电缆
-
半双工通信:B上的同轴电缆会检测整个域中是否有信号在传输,如果有就等待一阵后再发送,即A给B发的时,B不能给A发,因此整个域中