Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。简单来说,Unity3D不单单可以做游戏,还可以通过相关接口与API来进行设备的交互【例如虚拟仿真】

一.网络简述

其实对于前端开发者来说呢,不单单要学会前端的,你还要知道如何去调取后台的接口,网络的意义通俗的来讲,便是打破纯客户端的操作,即单机游戏,让服务端参与其中,作为客户端之间能够互相交互介质

1.网络的概念

网络是由如果敢设备和连接这些设备的链路构成,各种设备间接或者直接通过介质相连

当设备之间想要信息传递时,将想要传递的数据编码为2进制数值便更可以被有效的传输(二进制中1是通过产生一个正电压来传输的,二进制中0是通过产生一个负电压类传输的)

简单来说:网络的出现便是让设备之间能够相互通信,最大程度的解决设备之间的相互孤立的弊端

2.网络的类型

(这里就简单来说,其实知道大概意思就行)

1
2
3
4
5
6
7
1. 网络:由若干设备和连接这些设备的链路构成,设备间可以相互通信
2. 局域网:指某一个小区域内由多台设备互联成的计算机组
3. 以太网:网络连接的一种规则,定义了连接传输规范
4. 城域网:是在一个城市范围内所建立的网络,几十到一百公里
5. 广域网:是连接不同地区、城市、国家的远程网络,几十到几千公里
6. 互联网(因特网):是目前国际上最大的互联网,定义了通信规则等
7. 万维网:是基于因特网的网站和网页的统称

二.网络基础

1.IP地址

基本来说呢,IP地址用术语来说,

1
是指互联网协议地址(网际协议地址),是IP协议提供的一种统一的地址格式,同样也是设备在网络中的具体地址。

这样来说确实不太好理解,简单来说呢IP地址可以看作为设备的家庭地址,IP地址之间的传输,可以看作为需要用自己设备的电话号码去拨打他人的设备的电话号码,他人同意接收呢,才能够真正的打通。

1.1按照IP协议分类

其实IP协议可以分为IPv4和IPv6两个

  • IPv4

简单说:就是互联网协议第四版,由四个数组成,取值范围从0~255,每个数以.来分隔

这里需要的注意的便是,不同类段的IP地址代表不同的,具体如下表

1
2
3
4
5
6
7
A类:0.x.x.x~127.x.x.x (32位2进制最高位为0,适用于网内主机数达1600万台的大型网络)
--这个举例便是例如轻量级服务器,这个建议大家去学习用一下,毕竟现在是云服务的时代了嘛
B类:128.x.x.x~191.x.x.x(32位2进制最高2位为10,适用于中等规模网络,每个网络能容纳6万台设备,)
--这个在我们生活中见到比较多的,一般我们常常用到
C类:192.x.x.x~223.x.x.x(32位2进制最高3位为110,适用小规模局域网,每个网内最多只包含254台设备,)
D类:224.x.x.x~239.x.x.x(32位2进制最高4位为1110,属于特殊类型IP,一般为广播地址)
E类:240.x.x.x~255.x.x.x(32位2进制最高5位为11110,作为特殊使用)
  • 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地址虽然 具备唯一性但是并不携带位置信息,这就造成:

若有5台设备,1想要发送信息到5,需要以广播的方式来发送到每台设备中,每台设备与自身的Mac地址进行对比,不同就抛弃,相同则通信,这所造成的便是网络的浪费。

所以才有了IP地址来定位网络中的设备

3.2基本构成

1
2
3
4
MAC地址的长度为48位(6个字节),通常表示为12个16进制数
如:00-16-EA-AE-3C-40就是一个MAC地址
前3个字节,16进制数00-16-EA代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配
后3个字节,16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号

3.3与IP地址的区别

1
2
MAC地址就像身份证号,IP地址就好像你的住址。
MAC地址是物理层面上通信的基础,IP地址是逻辑层面上通信的基础
简单来说便是如下:

在网络通信中 我们通过IP地址 以及 端口号定位想要通信的远端计算机中的某一个应用程序

IP地址 = 设备在外网中位置

端口 = 运行在该设备上的应用程序位置

Mac地址 = 设备进行网络通信的唯一标识,设备真正进行物理信息传输用来定位的标识

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服务器

这里还是拿一个参照表来对比两个模型的区别

B/S和C/S的区别

  • P2P模型

P2P(Peer-to-Peer)模型也叫对等互联

每个联网的设备同时运行一个应用程序的客户端(Client)服务端(Server)部分 也就是说一个应用程序同时作为客户端和服务端

优点是通信方便,成本低

缺点是可靠性不如C/S模型

未完待续