内容分别为: - 网络开发必备理论:IP、端口、Mac,客户端和服务端,数据通信模型 - 网路协议:网络协议概述,OSI模型,TCP/IP协议 - 网络通信:套接字Socket,文件传输FTP,超文本传输HTTP - 消息处理:分包,粘包,自定义协议工具,第三方协议工具Protobuf
数据通信模型¶
C/S模型¶
客户端和服务端模式:相当于两个应用程序(进程)在打交道
B/S模型¶
一种特殊的C/S,客户端不需要自己开发,利用浏览器,可以浏览任意的Web服务器。
P2P模型¶
一个应用程序同时作为客户端和服务端。 通信方便,成本低,可靠性差。
网络协议概述¶
- OSI模型:理论基础,用于定义网络通信规则
- TCP/IP协议:利用这套理论基础真正实现的通信规则
OSI¶
七层:物链网输会示用(物联网叔会试用) 分配: - 物理层:0,1信号,通过物理硬件指定物理通信规则。 - 数据链路层:确定0,1的分组方式,决定发送给哪个==网卡==(MAC==地址) - 数据包“帧”:Head+Data - 网络层:MAC效率低下,利用==IP地址==进行==路由选择 - 网络层也要加个Head(每一层都加一个Head) - 传输层:已经可以定位到主机了,利用==端口号==准确的在==应用程序==之间进行通信 使用: - 应用层:为==应用程序==提供服务,开发者决定==协议信息==(如FTP,HTTP,SMTP) - 表示层:数据、代码转换、数据加密,统一==规则,让信息在各个操作系统和设备中都能使用。 - 会话层:建立、==管理、维护会话,是否发送完毕,是否收到,是否断开连接等。
TCP/IP协议¶
![[Pasted image 20250318221917.png]] 传输控制/网络协议,也叫网络通协议 - 不止TCP/IP,是由FTP,SMTP,TCP,UDP,IP等协议构成的==协议簇== 分为应用层、传输层、网络层、网络接口层。 - 应用层头:协议头(如FTP、HTTP等协议),决定传输信息==类型== - 传输层头:传输端口头(TCP或UDP协议),传输信息的==规则==以及==端口== - 网络层头:IP头,决定==传输路线==,用来路由 - 网络接口层头尾:产生帧(消息分段),决定==最终路线==(目标)
TCP、UDP¶
TCP | UDP | |
---|---|---|
连接方式 | 面向连接 | 无连接 |
安全方面 | 无差错、不丢失、不重复、按序到达 | 尽力交互、不保证可靠性 |
传输效率 | 相对较低 | 相对距高 |
连接对象 | 一对一 | 一对一,一对多, 多对一,多对多 |
## TCP | ||
特点: | ||
- 面向连接 | ||
- 一对一 | ||
- 可靠性高 | ||
- 有序的 | ||
重要概念: | ||
- 三次握手:请求连接,授予,确认连接(消息传递) | ||
- 四次挥手:(消息传递)请求断开,请求等待(把剩余消息传递)发完了授予断开,确认断开。 | ||
## UDP | ||
特点: | ||
- 无连接 | ||
- 可靠性低 | ||
- 传输效率高 | ||
- n对n | ||
没有连接,直接丢。 | ||
所以==资源消耗小,处理速度快== |
网络通信方案¶
网络游戏都是以==C/S模型==为基础进行的。
弱联网和强联网¶
- 弱联网代表:三消类,卡牌游戏
- 强联网:MMPRPG,MOBA,ACT
长连接和短连接¶
短连接¶
需要时再建立连接。 通信方式:HTTP,HTTPS(本质上是TCP协议)
长连接¶
连接一直建立,可以实时传输数据 通信方式:TCP传输控制协议,UDP数据包协议。
Socket,HTTP,FTP¶
Socket网络套接字¶
主要用于制作==长连接==游戏
Http/Https超文本传输协议。¶
简单的请求-相应协议,通常运行在TCP协议之上。 制作==短连接==游戏(弱联网游戏),也可以用来==资源下载==。
FTP文件传输协议¶
也是基于TCP传输,面向连接的,为文件传输提供可靠保证。