
Unity3D网络开发基础
一.网络简述
1.网络的概念
网络是由如果敢设备和连接这些设备的链路构成,各种设备间接或者直接通过介质相连
当设备之间想要信息传递时,将想要传递的数据编码为2进制数值便更可以被有效的传输(二进制中1是通过产生一个正电压来传输的,二进制中0是通过产生一个负电压类传输的)
简单来说:网络的出现便是让设备之间能够相互通信,最大程度的解决设备之间的相互孤立的弊端
2.网络的类型
(这里就简单来说,其实知道大概意思就行)
1 | 1. 网络:由若干设备和连接这些设备的链路构成,设备间可以相互通信 |
二.网络基础
1.IP地址
基本来说呢,IP地址用术语来说,
1 | 是指互联网协议地址(网际协议地址),是IP协议提供的一种统一的地址格式,同样也是设备在网络中的具体地址。 |
这样来说确实不太好理解,简单来说呢IP地址可以看作为设备的家庭地址,IP地址之间的传输,可以看作为需要用自己设备的电话号码去拨打他人的设备的电话号码,他人同意接收呢,才能够真正的打通。
1.1按照IP协议分类
其实IP协议可以分为IPv4和IPv6两个
- IPv4
简单说:就是互联网协议第四版,由四个数组成,取值范围从0~255,每个数以.来分隔
这里需要的注意的便是,不同类段的IP地址代表不同的,具体如下表
1 | A类:0.x.x.x~127.x.x.x (32位2进制最高位为0,适用于网内主机数达1600万台的大型网络) |
- IPv6
其实IPv6可以作为对IPv4存在有限性的不足,而设计出来的【据目前来看基本是无限的,但是未来不代表不会出现,但是基本那会很久久以后了吧】
IPv6是互联网协议第六版,由八个数组成,每个数取值范围是0~65535 每个数用 : 来分隔
举个例子
1 | 0:0:0:0:0:0:0:0~65535:65535:65535:65535:65535:65535:65535:65535 |
1.2按照使用范围分类
其实基本就是公网和内网,这个玩过Linux,云服务器,虚拟主机的都知道,如果说这个有啥区别,简单来说就是公网IP可以在百度中查询到,内网/私网不能上网,只可局域网内部通信公网IP:
用于连接外网,想要和远程设备进行通信时使用的IP地址 查看方式:百度搜索IP地址查询 便可以查看到公网IP
私网IP:
也称局域网IP,私网IP不能上网,只用于局域网内通信:查看方式:控制台输入ipconfig
2.端口
如果说IP地址我们可以在网络上找到一台设备,但仅仅只是找到这台设备,我们想要完成和设备通信,本质上是和运行在设备上的某一个应用程序进行通信 而一台设备上可能运行n个应用程序,而端口号就是用来区分这些应用程序的 让我们可以明确到底是和哪一个应用程序进行通信,这便是端口的意义。
【简单来说:IP地址决定了设备在网络中的具体地址,而端口是不同应用程序在该设备上的门牌号码,一台设备上不同的应用程序想要进行通信就必须对应一个唯一的端口号,也就是说想找到人家不单单要知道位置哪个省市区村,还要知道门牌号,不同人家不可能用同一个门牌号】端口号的取值范围:0~~65535(这里需要注意的便是端口不能与其他应用服务程序相同,并且最好是端口号要大于1024,以免不必要的冲突)
3.Mac地址
3.1定义
直译为媒体存取控制地址,也称局域网地址,Mac地址,以太网地址,物理地址
它是用来确认网络设备位置的地址,在OSI模型中,第三层网络层负责IP地址,第二层数据链路层 则负责Mac地址,Mac地址是用于在网络中唯一标识一个网卡的,一台设备可以有多个网卡,每个 网卡都会有一个唯一的Mac地址
在早期,单单用Mac地址便可以实现两台设备间的通信,但随着设备的增多,Mac地址虽然 具备唯一性但是并不携带位置信息,这就造成:
所以才有了IP地址来定位网络中的设备
3.2基本构成
1 | MAC地址的长度为48位(6个字节),通常表示为12个16进制数 |
3.3与IP地址的区别
1 | MAC地址就像身份证号,IP地址就好像你的住址。 |
4.客户端
其实客户端比较好理解,便是用户使用的设备(包括电脑,手机,平板等),用户可以安装所需要的应用程序,来直接使用操作的内容,而现在火的Unity,UE4/5,Laya等开发引擎本质是客户端应用程序,是用户操作用的
5.服务端
其便是为客户端服务的设备,因为其服务的可能是多台,乃至上百台,因此服务端设备性能一般要求较高。其是以下的统称(服务端应用程序,服务器,后端,Server),其实服务端的作用便是能够在远端计算机为游戏客户端提供消息分发,数据存储,逻辑处理等服务的服务端应用程序【这里包括用C++,C#以及Java等语言开发的程序】
这里就延伸出网络游戏
三.数据通信模型
早期
其实在早前的数据通信模型,考虑到有效利用计算机,因此大体可分为三种:
- 分散式
在分散式系统中,用户只负责管理自己的计算机系统,各自独立的系统之间没有资源或 信息的交换和共享。就类似一台台没有联网的设备
这种模式由于存在大量共享数据的重复存储,除了引起数据冗余之外,也容易导致一个 组织内各部门数据的不一致性。 同时还会造成硬件、支持和运营维护等成本的大量增加,因此早被淘汰
- 集中式
在集中式环境中,用一台主计算机保存一个组织的全部数据,而用户则通过设备连接到 这台计算机系统并和它通信,从而达到访问数据的目的
优点:方便数据共享、消除了数据的冗余和不一致性
缺点:可靠性不如分散式,主机出现故障所有系统全部瘫痪
- 分布式
分布式是分散式和集中式的混合,类似我们学习过的计算机网络 是分散式的水平交互和集中式的垂直控制相结合的一种模式
它兼具了分散式和集中式的优点 方便数据共享、消除了数据的冗余和不一致性,同样也加强了容错性
目前主流
- C/S模型(C/S模式)
C代表Client,也就是客户端,S代表Server,即服务端,所代表的便是客户端/服务端模式【目前所主流通信模型】
- B/S模型(B/S模式)
这个一般做Web开发或者Java开发的比较熟悉,它是一种基于Web的通信模型,使用HTTP超文本传送协议通信 B/S是一种特殊的C/S模型,特殊之处就是这种模型的客户端不需要我们自己开发 一般是某种浏览器,比如IE、Chrome、QQ浏览器、360浏览器等等
其优点便是:单台计算机可以访问任何一个Web服务器
这里还是拿一个参照表来对比两个模型的区别
- P2P模型
P2P(Peer-to-Peer)模型也叫对等互联
每个联网的设备同时运行一个应用程序的客户端(Client)和服务端(Server)部分 也就是说一个应用程序同时作为客户端和服务端
优点是通信方便,成本低
缺点是可靠性不如C/S模型
- 感谢你赐予我前进的力量