目录
数据是如何从一个设备传递到另一个设备的? 这一切都是由网络协议来规定的。没有网络协议,就没有今天的互联网。互联网、移动互联网、物联网,都离不开网络协议,为了满足各种需求,有各式各样的网络协议(HTTPS、SMTP、MQTT、RTMP等)。
一、互联网
互联网如何工作?
以访问网站为例,互联网的运作流程如下:
输入网址:在浏览器输入 https://www.example.com。
DNS解析:将域名转换为对应的IP地址(如 93.184.216.34)。
建立连接:通过TCP协议与目标服务器三次握手,建立可靠连接。
发送请求:HTTP协议向服务器请求网页数据。
数据传输:数据被拆分为“数据包”,经路由器逐跳转发到目标服务器。
服务器响应:服务器返回HTML、CSS、JavaScript等文件,浏览器渲染页面。
二、JAVA跨平台与C/C++的原理
1、JAVA跨平台的原理
JVM(Java Virtual Machine):Java虚拟机
·JAVA的跨平台:一次编译,到处运行编译
·生成跟平台无关的字节码文件(文件)
·由对应平台的解析字节码为机器指令(01010)
编译 加载 Window/Mac/Linux
*.java-------> *.class ---------> JVM-->机器指令
注意:
如果代码有语法错误,将编译失败,并不会生成字节码文件
那就不会去运行一个程序。最后导致程序运行失败
2、C/C++跨平台的原理
C/C++的跨平台:使用平台相关的编译器生成对应平台的可执行文件
三、网络互连模型
什么是协议?
协议(Protocol)是计算机或设备之间通信时遵循的规则和标准,定义了数据如何传输、格式如何组织、错误如何处理等,确保不同系统能正确交互。它类似于人类交流中的“语言”和“礼仪”,是数字世界协同工作的基础。为了更好地促进互联网络的研究和发展,国际标准化组织 ISO 在 1985 年制定了网络互连模型-->OSI 参考模型(Open System Interconnect Reference Model),具有 7 层结构。
按功能分层:
具体分层内容:
协议如何工作?
以发送邮件为例
用户写邮件:在客户端(如Outlook)输入内容,点击“发送”。
应用层协议(SMTP):将邮件内容按SMTP格式封装(包括发件人、收件人)。
传输层协议(TCP):将数据拆分为“段”,通过三次握手建立可靠连接。
网络层协议(IP):添加源IP和目标IP地址,将数据包路由到邮件服务器。
物理层:通过光纤/电缆将电信号传输到目标服务器。
收件方:服务器按协议反向解析数据,最终将邮件投递到收件人邮箱
四、客户端与服务器
客户端:请求服务的终端 --> 主动发起请求
服务器:提供服务的终端 --> 被动响应请求
请求过程
客户端发送数据(自上而下封装)
①应用层:
生成原始数据(如HTTP请求:“获取首页内容”)。
添加应用层协议头(如HTTP头部:GET /index.html)。
②传输层:
将数据分割为“段”(Segment),添加端口号(如目标端口80)。
TCP协议附加序列号、校验和(确保可靠传输)。
③网络层:
封装为“数据包”(Packet),添加源IP和目标IP地址(如客户端IP 192.168.1.2 → 服务器IP 93.184.216.34)。
④数据链路层:
封装为“帧”(Frame),添加MAC地址(如客户端MAC 00:1A:2B:3C:4D:5E → 路由器MAC)。
⑤物理层:
将帧转换为比特流(电信号/光信号),通过网线或无线传输。
服务器接收数据(自下而上解封装)
①物理层 → 数据链路层:
接收比特流,转换为帧,校验MAC地址是否匹配。
②数据链路层 → 网络层:
剥离MAC头部,检查IP地址是否为服务器自身IP。
③网络层 → 传输层:
剥离IP头部,根据端口号(如80)将数据交给对应服务(如Web服务器)。
④传输层 → 应用层:
TCP重组数据段(按序列号排序),校验完整性,最终传递原始HTTP请求到应用层。
⑤应用层处理:
解析HTTP请求,生成响应(如返回HTML文件),反向封装并发送回客户端。
总结:
客户端与服务器的本质区别在于服务方向(请求 vs 响应),而非物理形态。当你在手机上滑动屏幕时——指尖触发客户端代码生成请求,跨越层层协议栈抵达云端服务器,CPU执行微秒级的计算,再将结果穿透无数路由器精准返回,整个过程就像一场由协议导演、数据担纲主角的环球接力赛。
五、计算机之间的通信基础
1、IP地址与MAC地址
IP地址是通信的起点:计算机需先获取目标设备的IP地址(通过DNS解析、手动输入等方式),这是跨网络寻址的基础。
最终是根据MAC地址(网卡地址),输送数据到网卡,被网卡接收
目标MAC匹配:若数据帧的MAC地址与网卡自身地址一致,网卡将数据上传至网络层(如IP协议)处理。
目标MAC不匹配:若MAC地址不匹配,网卡直接丢弃数据,避免无关流量占用系统资源。
关键设备:
交换机:基于MAC地址转发数据(数据链路层)。
路由器:基于IP地址跨网络路由(网络层)。
网关:协议转换(如连接IPv4和IPv6网络)。
应用场景:
设备A(IP: 192.168.1.20)向设备B(IP: 192.168.1.21)发送数据:
设备A检查本地ARP缓存表,若未找到B的MAC地址,发送ARP广播请求。
设备B响应ARP请求,返回自己的MAC地址。
设备B检查本地ARP缓存表,若未找到A的MAC地址,发送ARP广播请求。
设备A响应ARP请求,返回自己的MAC地址。
设备A将数据封装为帧(目标MAC=设备B的MAC),通过交换机发送。
设备B的网卡检测到目标MAC匹配,接收数据并上传至网络层处理。
总结流程:
①IP地址的获取:
用户通过域名(如 www.example.com)访问资源时,需先通过DNS协议将域名解析为IP地址。
若目标设备在局域网内,可直接通过ARP协议获取其MAC地址(无需经过路由器)。
②IP地址 → MAC地址的转换:
通过ARP协议(Address Resolution Protocol)广播查询目标IP对应的MAC地址。
目标设备响应ARP请求,返回自身MAC地址,并存储在本地ARP缓存表中。
③数据封装与传输:
数据在网络层封装为IP数据包(包含源/目标IP地址)。
在数据链路层封装为以太网帧(添加源/目标MAC地址)。
通过物理介质(网线、光纤等)传输到目标设备的网卡。
④网卡对数据帧的校验:
网卡检查帧头中的目标MAC地址:
·匹配:拆解帧,将IP数据包传递给网络层协议。
·不匹配:直接丢弃,不进行后续处理。
2、ARP与ICMP对比
①ARP协议(地址解析协议)
定义与作用:
ARP(Address Resolution Protocol)用于将网络层的IP地址解析为数据链路层的MAC地址,使得同一局域网内的设备能够直接通信。
工作原理:
ARP请求(广播):当设备A需要与设备B通信,但不知道B的MAC地址时,会发送一个广播ARP请求,包含目标IP地址。
ARP响应(单播):设备B收到请求后,若IP匹配,则回复一个单播ARP响应,包含自己的MAC地址。
缓存机制:设备A将B的IP-MAC映射存入本地ARP缓存表(通常有效期几分钟),减少重复请求。
②ICMP协议(互联网控制报文协议)
定义与作用:
ICMP(Internet Control Message Protocol)用于传递网络控制信息,如错误报告、状态查询,帮助诊断网络问题。
工作原理:
封装在IP数据包中(协议号1),不直接关联传输层(如TCP/UDP)。
设备根据ICMP报文类型执行操作,例如:
·目标不可达(类型3):路由器无法转发数据包时发送。
·超时(类型11):数据包TTL归零时触发。
·回显请求/应答(类型8/0):用于ping命令测试连通性。
总结:
六、计算机之间的连接方式
1、集线器(Hub)
集线器(Hub)是一种工作在物理层(OSI第一层)的网络设备,主要功能是将接收到的电信号广播到所有连接的端口,实现多台设备的物理连接。
应用场景:
基于集线器的局域网,揭示了集线器的广播泛洪、冲突域共享和低效转发特性
2、网桥
网桥(Bridge)是一种工作在数据链路层(OSI第二层)的网络设备,主要用于分割冲突域 和 过滤网络流量,通过MAC地址学习实现智能转发,解决集线器的广播泛洪问题。以下是其核心特性:
·冲突域分割:每个网桥端口独立冲突域,避免全网冲突(集线器所有端口共享一个冲突域)。
·MAC地址表学习:记录设备的MAC地址与端口映射,仅转发必要流量。
·帧过滤:若目标设备在源端口同一侧,网桥丢弃帧,避免冗余传输。
应用场景:
先通过广播学习到每个计算机的MAC地址,再选择性的发送数据
广播域与冲突域的对比:
总结对比:
3、交换机
交换机是一种工作在数据链路层(OSI第二层)的网络设备,,但三层交换机可处理网络层(IP路由)。通过记录源MAC地址和端口的对应关系构建MAC地址表,减少广播域,提升网络效率。
转发方式:
存储转发:接收完整帧并校验错误后再转发(可靠性高)。
直通转发:读取目标MAC后立即转发(延迟低,但可能传输错误帧)。
交换机 vs 集线器/网桥的对比:
连接的设备必须在同一网段
连接的设备处在同一广播域
4、路由器
路由器(Router)是连接不同网络的核心设备,工作在网络层(OSI第三层),承担着跨网段寻址、数据包转发和路径控制的关键职能。
路由器的本质作用:
跨网络通信:实现跨越IP子网的数据传输(例:从192.168.1.0/24到10.0.0.0/8)
智能路径选择:基于路由表选择最优路径
应用场景:
交换机 vs 集线器/网桥/交换机的对比:
◼网线直连、同轴电缆、集线器、网桥、交换机
连接的设备必须在同一网段
连接的设备处在同一广播域
◼路由器
可以在不同网段之间转发数据
隔绝广播域
总结:
交换机专注“快速连通同网段设备”,路由器负责“跨网段寻路与安全管控”——二者协同构建完整网络(如企业内交换机互联设备,路由器连接外网并隔离风险)。