文章目录
- 1 网络
- 1.1 局域网
- 1.2 以太网
- 1.3 城域网
- 1.4 广域网
- 1.5 互联网(因特网)
- 1.6 万维网
- 1.7 小结
- 2 IP 地址
- 2.1 IP 地址
- 2.2 端口号
- 2.3 Mac 地址
- 2.4 小结
- 3 客户端与服务端
- 3.1 客户端
- 3.2 服务端
- 3.3 网络游戏中的客户端与服务端
1 网络
在没有网络之前,每个人的设备(电脑等)都是彼此孤立的。
网络的出现让设备之间可以相互通信。

网络由若干设备和连接这些设备的链路构成,各种设备间接或者直接通过介质相连。设备之间进行信息传递时,将要传递的数据编码为 2 进制数值以有效传输。这些 2 进制数据以电脉冲的形式进行传输,随线缆中电压高低状态间进行变化。
- 二进制中,1 通过产生一个正电压传输。
- 二进制中,0 通过产生一个负电压传输。
1.1 局域网
局域网(Local Area Network,简称 LAN)是按照范围划分而来的名称,指在某一个小区域内由多台设备互联成的计算机组。可以由家里的两台设备组成,也可以由学校、公司里的上千台设备组成。
特点:
- 分布地区范围有限。
- 覆盖范围一般是方圆几千米之内。

1.2 以太网
以太网是一种计算机局域网技术,是目前应用最普遍的局域网技术。
IEEE 组织(电气与电子工程师协会)的 IEEE 802.3 标准制定了以太网的技术标准,规定了包括物理层的连线、电子信号和介质访问层协议的内容。
局域网中设备的连接规范,数据的传输规范等等规则都基于以太网的技术标准完成。因此,以太网是网络连接的一种规则(协议)。
拓扑结构
用传输媒体把计算机等各种设备互相连接起来的物理布局,指设备互连过程中构成的几何形状。
(1)总线型

(2)环形

(3)星形

(4)网络状

(5)树形

1.3 城域网
城域网(Metropolitan Area Network,简称 MAN)是在一个城市范围内所建立的网络,通常覆盖一个城市,从几十公里到一百公里不等。可能会有多种介质,用户的数量也比局域网更多。

1.4 广域网
广域网(Wide Area Network,简称 WAN)又称外网、公网,是连接不同地区局域网或城域网设备通信的远程网,通常跨接很大的物理范围。所覆盖的范围从几十公里到几千公里,能连接多个地区、城市和国家,形成国际性的远程网络。
注意:
广域网并不等同于互联网。

1.5 互联网(因特网)
互联网,字面意思即处于同一网络环境下,设备之间能够进行通信,一般泛指彼此能够通信的设备组成的网络。
互联网又音译为因特网(Internet),也称国际网络,指网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议(规则)相连,形成逻辑上的单一巨大国际网络。互联网目前已经把 200 多个国家和地区的大部分设备连接了起来,形成了一个遍布全世界的网络。所以在一定程度上也可以说,互联网等同于广域网,广域网包含了互联网。
目前提到的互联网,大部分时候指代因特网。可以将互联网作为名词理解,也可以将互联网理解为因特网的代称。
互联网使用的技术,在广域网上一定有,但是某些广域网的技术,互联网上不一定有。比如军用的广域网,普通老百姓是不会使用的。
互联网(因特网)的本质是人为定义的一系列协议(规则),总称为“互联网协议”。主要功能为:
- 定义计算机如何接入互联网。
- 规定接入互联网的计算机的通信标准。
- 为 2 进制数据定义传输规则。
因特网是国际上最大的互联网。当我们提到互联网时,一般代指因特网。它采用 TCP/IP 协议簇作为通信的规则,提供了包括万维网(WWW)、文件传输(FTP)、电子邮件(E-mail)、远程登录(Telnet)等服务。
1.6 万维网
万维网(World Wide Web,简称 WWW,也称 Web、3W 等)是存储在因特网的计算机中,数量巨大的文档(页面)的集合。也是无数个网络站点和网页的集合,是构成因特网的主要部分。
我们平时用浏览器看到的内容就属于万维网,本质上就是一个个文档(页面)。
如果将因特网看做是网络的基础,那么万维网就可以被看做是对因特网的应用,是利用因特网规则的一种信息传递和呈现的手段。可以认为万维网就是网站和页面的统称。
1.7 小结
-
**网络:**由若干设备和连接这些设备的链路构成,设备间可以相互通信。
-
**局域网:**指某一个小区域内由多台设备互联成的计算机组。
-
**以太网:**网络连接的一种规则,定义了连接传输规范。
-
**城域网:**在一个城市范围内所建立的网络,几十到一百公里。
-
**广域网:**连接不同地区、城市、国家的远程网络,几十到几千公里。
-
**互联网(因特网):**目前国际上最大的互联网,定义了通信规则等。
-
**万维网:**基于因特网的网站和网页的统称。
2 IP 地址
当我们传递消息时,如何准确的将信息传递到目标设备?

2.1 IP 地址
IP 地址(Internet Protocol Address)指互联网协议地址,又译为网际协议地址,是 IP 协议提供的一种统一的地址格式,即设备在网络中的具体地址。
IP 地址就像是设备的家庭住址一样,主要用于定位。用打电话举例子,IP 地址就比如电话号码,我们需要知道对方设备的电话号码,才能联系到对方。
(1)按协议分类
-
IPv4(目前常用):互联网协议第四版,由四个数组成,每个数取值范围是 0~255。每个数用 “.” 来分隔,数量是有限的。范围:0.0.0.0~255.255.255.255。
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:互联网协议第六版,由八个数组成,每个数取值范围是 0~65535。每个数用 “:” 来分隔,目的是解决 IPv4 的数量有限性而设计的(几乎无限)。范围:0:0:0:0:0:0:0:0~65535:65535:65535:65535:65535:65535:65535:65535。
(2)按使用范围分类
-
公网 IP
用于连接外网,想要和远程设备进行通信时使用的 IP 地址。
查看方式:百度搜索 IP 地址查询 便可以查看到公网 IP。
-
私网 IP
也称局域网 IP,私网 IP 不能上网,只用于局域网内通信。
查看方式:
-
Windows 操作系统中
打开命令提示符窗口,输入指令 ipconfig 查看本机的 IP 地址信息。
快捷方式:运行窗口(win+R)-> 打开 cmd -> ipconfig。
-
在 Mac 操作系统中
打开终端窗口,输入指令 ifconfig 查看本机的 IP 地址信息,也可以在网络设置窗口上直接查看 IP 地址。
-
2.2 端口号

通过 IP 地址我们可以在网络上找到一台设备,但想要和设备通信,本质上是和运行在设备上的某一个应用程序进行通信。一台设备上可能运行 n 个应用程序,而端口号的作用就是区分这些应用程序,明确到底是和哪一个应用程序进行通信。
IP 地址决定设备在网络中的具体地址。
端口则对应不同应用程序在该设备上的门牌号码,一台设备上不同的应用程序想要进行通信,就必须对应一个唯一的端口号。
- 端口号的取值范围是 0~65535。
- 在进行网络开发时,需要自己为应用程序设置端口号。
- 端口号不能和其它应用程序相同,避免产生冲突。
- 一般选择 1024 以上的端口进行使用,1024 以下的一般由 IANA 互联网数字分配机构管理。

2.3 Mac 地址
Mac 地址(Media Access Control Address)直译为媒体存取控制地址,也称局域网地址、以太网地址、物理地址。它是用来确认网络设备位置的地址,在 OSI 模型中,第三层网络层负责 IP 地址,第二层数据链路层则负责 Mac 地址。Mac 地址用于在网络中唯一标识一个网卡,一台设备可以有多个网卡,每个网卡都会有唯一的 Mac 地址。
在早期的网络中,只用 Mac 地址便可以实现两台设备间的通信。但随着设备的增加,Mac 地址虽然具备唯一性,但并不携带位置信息,如果通过广播方式查找设备,会给网络造成巨大负担。所以才有了 IP 地址来定位网络中的设备。
Mac 地址的长度为 48 位(6 个字),通常表示为 12 个 16 进制数,如:00-16-EA-AE-3C-40。
- 前 3 个字节(00-16-EA)代表网络硬件制造商的编号,由 IEEE(电气与电子工程师协会)分配。
- 后 3 个字节(AE-3C-40)代表该制造商所制造的某个网络产品(如网卡)的系列号。
查看 Mac 地址的方式和查看 IP 地址相同。

Mac 地址就像身份证号,IP 地址就如同你的住址。
Mac 地址是物理层面上通信的基础,IP 地址则是逻辑层面上通信的基础。
2.4 小结
在互联中与一台指定设备通讯,就如同在现实世界中给朋友寄快递,你必须要知道朋友的地址在哪里。
- IP 地址 = 朋友的住址(某街某小区某栋楼)。
- 端口 = 朋友住所具体的门牌号 (哪个门牌号)。
- Mac 地址 = 朋友的身份证号(谁接受快递)。
在网络通信中:
- IP 地址:设备在外网中位置。
- 端口:运行在该设备上的应用程序。
- Mac 地址:设备进行网络通信的唯一标识,设备真正进行物理信息传输用来定位的标识。
3 客户端与服务端
3.1 客户端
客户端(Client,或称为用户端、前端)指与服务端相对应,为客户提供本地服务的应用程序。我们在设备上(计算机、手机等)使用的所有软件和应用几乎都是客户端应用程序。
客户端应用程序指用户使用的设备上安装的应用程序,用户会直接使用操作的内容。比如:各种浏览器、游戏、外卖应用程序(美团,饿了么)、通讯软件(QQ、微信、陌陌)等等。
客户端本意指用户使用的设备(计算机、手机、平板等等)。
但通常,提及客户端往往指客户端应用程序。
3.2 服务端
服务端(Server,或称为服务器、后端)是为客户端服务的,服务的内容诸如向客户端提供资源,保存客户端数据等等。它是一种有针对性的服务程序,往往一个服务端都是针对性的为某类客户端提供服务。服务端往往是一台运行在远端的计算机,客户端和服务端通过网络进行通信。
比如:
- 某游戏服务端只为该游戏的客户端提供服务(消息转发、信息保存、逻辑处理等等)。
- 某外卖服务端只为该外卖的客户端提供服务(分派订单、查看订单、查看配送进度等等)。
客户端本意指为客户端提供服务的设备,一般是一台性能较好的计算机。
但在软件开发中,往往提到的服务端或服务器都泛指服务端应用程序。
3.3 网络游戏中的客户端与服务端
单机游戏:
- 只有客户端,没有服务端。
- 不存在玩家之间的交互,数据存储在本地。
网络游戏:
- 有客户端和服务端。
- 玩家之间可以进行交互(信息同步,信息交换)。
- 静态(不变的)数据存储在客户端,动态(要变的)数据存储在服务端。
网络游戏开发中的客户端:
Unity、UE、Cocos、Egret、Laya、Flash 等等游戏引擎开发的游戏,都属于客户端应用程序,被用户直接操作。
主要功能是游戏玩法、UI 交互、美术表现、本地数据保存等等。
网络游戏开发中的服务端:
C++、Java、C#、Go 等等语言开发的运行在远端计算机上为游戏客户端提供服务的软件,都属于服务端应用程序。主要功能是消息转发、数据保存、逻辑处理等等。
Unity 程序员也被称为前端程序员,比如 Unity 客户端开发工程师、Unity 前端开发工程师等等。负责服务端开发的程序员被称为后端程序员。
在早期游戏行业中不分前后端,从业者需要同时具备前端和后端的开发技能。而随着游戏引擎的出现并且从开发效率上来考虑,渐渐就分出前后端程序员。两个工种相互配合进行开发,事半功倍。