最后更新:2022-03-01 17:03:43 手机定位技术交流文章
网络协议:客户端和服务器进行数据交互
C/C++ 的代码具有跨平台性,(能同时在windows Linux 和Mac 系统运行),其本质为:在不同的平台使用相关编译器生成对应平台的可执行文件(系统直接运行)
Java 语言的跨平台原理:
在不同平台安装JVM(java虚拟机),通过JVM去编译运行后的java代码【字节码文件 /class文件 (该文件与平台无关)】,然后编译成机器代码
JVM == JDK == JRE ==java runtime environment == java运行环境
其他语言如:(js python) 与java 同理
客户端与服务器的通信是通过不同的端口号,每个端口号配置了一个专门的服务器软件去监听、处理、发送、请求数据流
图片:
Http请求格式:
Http://IP地址:端口号、项目
例如: Http://192.168.33.1:3306/mysql
为了规范不同的网络协议,ISO 发布了OSI参考模型(七层网络协议)
七层网络协议OSI
七层网络协议过于理想,不符合现实
四层网络协议参考模型
企业开发大多使用四层网络协议模型
五层研究学习模型
供高校学习研究模型
客户端与服务器通信过程
需要得到对方的IP地址 、 Mac 地址(物理地址) 。
传输的数据包格式: 源IP地址 、 目标IP地址、源Mac地址、目标Mac地址
这里我们可以类比,IP地址相当于小区号码,Mac地址相当于门牌号码,数据包相当于快递。
计算机会根据Mac地址(网卡地址),输送到网卡,被网卡接收。若网卡发现数据的目标Mac是本地(与自己的Mac地址一样),数据会传递给上一层处理。否则(目标Mac与自己的Mac地址不一样),数据会被丢弃。
数据包的发送应通过数据链路层到交换机,交换机与路由器之间传递数据包。而发送数据的电脑会先通过ARP协议,然后走ICMP协议。
缺点: 半双工通信; 容易冲突;不安全;中间电缆断了,整个网络瘫痪
一个口收到信号,原封不动转发给其他口,由其他的接口设备自己决定是否接收信号,只是简单的转发,Hub工作在物理层
缺点: 半双工通信 ; 容易冲突 ;不安全
但是其中一个电脑出现问题·,对其他电脑不产生影响
当集线器连接的PC机数量大时,会占用信道的带宽和资源,因此产生了网桥
工作在数据链路层。
以太网中,数据链路层的地址就是MAC地址,网桥与Hub的区别在于,网桥会过滤mac,只有目表mac地址匹配的数据才会发送到出口。
网桥发送的协议:STP协议(生成树协议 Spanning Tree Protocol)
网桥的作用:能自动学习得知每个接口那侧的MAC地址,从而起到隔绝冲突域的作用
相当于更多的网桥 ; 全双工通信;比集线器更安全。
因为IP地址有序和交换机可能会引发广播风暴的情况,产生了路由器
特别注意:网线直连、同轴电缆、集线器、网桥、交换机所连接的设备必须处于同一网段,连接是设备处在同一广播域
可以在不同的网段转发数据,隔绝广播域
当本地IP发现目标IP与它不处在同一网段是,会先通过ARP协议去访问路由器的网关,随后路由器通过自身解析,转接到与目标IP处在同一网段的网关,再通过RAP协议去访问目标IP
本文由 在线网速测试 整理编辑,转载请注明出处。