一些组网常识和方法

网络常识基础

网速知识

下载/上传

网络数据传输分为发送数据和接收数据两部分:

  • 上传就是向外部发送数据(上行)
  • 下载就是从外部接收数据(下行)

带宽单位

日常我们与网络运营商签约宽带服务,一般都喜欢讲百兆带宽,一百兆(100M),两百兆,其实这是一个速度单位。表示单位时间内传输的数据量(每秒)。

在计算机网络或网络运营商中,100兆的准确描述应该是 100 Mbps,就是就是 Mega bits per second

在计算机中,数据容量的单位是大家常见的:B,KB,MB,GB。这个B是指 bytes 。

1 bytes = 8 bits
100 Mbps = 100/8 MB/s = 12.5‬ MB/s

百兆宽带,理论上的下载速度,应该可以达到上述值,但是要考虑网络传输各种信号衰减和延迟,实际上可能达不到这个理想环境。

带宽和延迟的专业说法

更专业一点说,带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量,是几乎所有互联网服务提供商在商业和营销中称之为”速度”的东西。

但是实际上带宽不等于速度,当你听到有人说“我的网速是30 Mbps”或类似的东西时,他们实际指的是他们的互联网服务的带宽容量,而不是速度。网络的速度实际上是带宽和延迟的结果

带宽(bandwidth)也称为吞吐量(throughput),是指在一个固定的时间内(1秒),从网络一端流到另一端的最大数据位数,也可以理解为网络的两个节点之间特定数据流的平均速率。带宽的单位是比特/秒(bit/s,简写为bps)。

带宽可以用高速公路做比喻来帮助理解它的含义:高速公路的车道可以衡量传输的能力。公路的宽度好比是带宽,行驶在公路上的汽车就好比是网络传输的数据。

车道越多,车辆通行能力就越强,发生堵车的概率就越低。同样的,拥有更宽的带宽,也就是有更大的数据传输能力。

带宽 bandwidth :带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量

延迟 delay:数据从一个节点到另外一个节点所经历的时间,通常以 ms 为单位。

中国网络运营商常见问题

随着移动互联网的兴起、“云时代”的到来,把文件存储在网盘、把拍好的照片、视频分享到网上,已成为网民越来越普遍的需求。

网速快慢,不仅指下载速度,还需要更多需要提高上传速率。

而恰恰是在上传速率上,中国的宽带运营商显露出了严重的不足——上下行不对称已经形成默认的潜规则,用户的上行带宽远远低于下行带宽。

ADSL时代,上行下行不对称是技术问题,ADSL(Asymmetric Digital Subscriber Loop)技术是一种不对称数字用户线实现宽带接入互连网的技术,它采用频分复用技术把普通的电话线分成了电话、上行和下行三个相对独立的信道,从而避免了相互之间的干扰,一根线缆内多条电线上的对称信号会显著地限制数据传输速率与线缆的有效通信长度,在大多数情况下,其下行与上行带宽之比可达到10:1的比率。

到了光纤时代,技术上是不存在不对称问题的,光纤具有频带宽、容量大、信号质量好、可靠性高等特点,是目前宽带业务发展的方向。是利用两条光纤分别负责上行和下行,不存在ADSL上下行不对称的技术问题,以PON技术为例,下行和上行是频分复用,互不影响,并且因为光纤传输的原理,即使你家离局端20公里,速率也不会有太大变化。

从拨号上网的ADSL时代发展到光纤,技术上已经解决了宽带网络的上下行速率不对等问题。但是实际上,光纤用户依然被宽带运营商限制了上行带宽,即使是光纤入户(FTTH)的百兆带宽,上传带宽也不足4M(上传速度最大为512K/s)。

他们都受网络带宽和设备性能制约。 在日常网络传输中大致1Mbps=1024/8Kb/s=128Kb/s(1/8)。

例如上行的网络带宽为100Mbps,那么最大上传速度就是12800Kb/s,也就是12.5Mb/s

国内家庭宽带速率的现状

如今家庭宽带已经普及100M宽带,而200M,500M甚至1000M的宽带也慢慢开始在各城市推广上线。根据工信部《工业和信息化部公告》〔2018年第54号〕

标准规定:公众用户固定宽带接入业务,当下行小于等于150M时,签约上行接入速率与签约下行接入速率按照最低1:5的比例配置,当下行大于150M时,签约上行速率不低于30M。

从2019年1月1日起生效

如果你家是电信200M用户,那么理应上行速率为30M,转换为上传速度,理论上满速约为4M/s,外网访问内网在线播放1080P电影实测流畅。

绝大部分宽带运营商为家庭用户提供的宽带为内网模式,即由运营商提供的光猫设备管理拨号和路由服务,而用户只能获取内网IP,同时运营商封闭80/443端口,以至于外网无法更快更便捷的访问到家庭内网中的设备。

目前家庭环境中主流的”外网访问内网”分为公网DDNS内网穿透两种方式。

公网DDNS是指利用DDNS动态域名解析技术,在外网通过域名访问家庭宽带的公网IP,由路由器提供端口转发,与内网设备直接通讯。

使用公网DDNS直连方式需要满足公网IP桥接模式端口映射三个前提,缺一不可。然后利用DDNS动态域名解析技术使用域名访问。

公网IP

公网IP是外网访问内网最关键因素。有公网IP,通过端口映射,用户在外网可以和家庭内网的设备直连,速度能达到上行带宽的上限,体验最佳。

内网IP是由运营商光猫获取分配,外网无法与内网设备直连,只能通过内网穿透服务来代理访问内网的设备,然而内网穿透服务依赖于第三方服务器的带宽,所以体验略差。

通过联系运营商,申请开放公网IP,并申请把运营商光猫改为桥接模式,根据提供的宽带账号密码。由用户在自己的路由器或防火墙中设置PPPOE拨号,路由器即取到了获取公网IP。然后通过路由器的端口映射功能,把对公网IP的端口访问转到内部的端口。

端口映射功能,可以将路由器 WAN IP 的一个端口映射到局域网中的一台计算机上(当前的路由器支持IPV4的网络端口映射,暂不支持IPV6)。

当因特网用户访问该 IP 的该端口时(如从因特网实时访问家庭网络摄像头等),路由器将会自动将该请求映射到已指定的计算机上,并通过该计算机对外提供服务。

同时也要注意,如果自己的核心网络设备取到了公网IP,那也一定要注意信息安全,这意味着内网的服务可能会被外网任何人和任何地址访问和扫描,所以有必要重视信息安全工作。

外网访问内网设备的基础是通过IP来通讯,而且运营商提供的公网IP为动态IP,IP地址会定时更变(比如光猫重启等),所以我们需要使用DDNS服务来使域名绑定随时变化的动态公网IP。

DDNS服务是指让公网IP在更变后立即通知域名服务商更变A记录指向到新IP,保证域名指向的持续性,使域名访问不受影响。DDNS大多都是免费提供。

DDNS

大部分路由器(包括非智能路由)都支持ddns,一般是集成花生壳、公云等有限的几家服务商。直接使用路由器集成的ddns功能,优点是简单,缺点就是慢。

因为DDNS都是用服务商提供的域名,如果要使用我们自己的域名,需要cname到服务商的域名,这里就存在二次解析,更别说免费DDNS本身速度慢了。

还有另外一种方式,可以在内网一台机器上运行一个服务,然后会通过调用阿里云api的方式,实现 ddns。

原理大概是通过这个服务定时任务去获取本地网络的公网出口IP,然后通过阿里云api的方式去将自己的域名解析到这个公网IP(根据出口ip动态的调修改解析)。

比如:https://github.com/jeessy2/ddns-go

公网IP的管理机构

负责全球IP地址分配的机构(ICANN)

Internet网络协会网络地址分配委员会ICANN(TheInternet Corporation for Assigned Names and Numbers),负责全球IP地址分配的专门机构,位于美国加利福尼亚州。

ICANN实行分级管理,TA将IP地址分配给地区级Internet注册机构RIR(RegionalInternet Registry),然后由RIR负责该地区的注册服务。

管理 ASN 和 IP 的机构就有 APNIC、AfriNIC、RIPE、ARIN、LACNIC 五家 RIR(地区注册局),根据大洲决定各自的管辖范围。

  • ARIN:AmericanRegistry for Internet Numbers,即美国Internet号码注册管理机构,位于美国弗吉尼亚州,负责美国、加拿大、撒哈拉沙漠以及南非州的IP地址。

  • RIPE Ncc:RIPE Network Coordination Centre,即RIPE网络协调中心,位于荷兰阿姆斯特丹,负责欧洲、北非、西亚、俄罗斯亚洲领土的IP地址。

  • APNIC:Asia-PacificNetwork Information Centre,即亚洲与太平洋地区网络信息中心,位于澳大利亚的布里斯班,负责亚太地区64个经济体的IP地址。

  • LACNIC:LatinAmerican and Caribbean Internet Address Registry,即拉丁美洲、加勒比IP地址注册中心,位于巴西圣保罗,负责拉丁美洲、加勒比海诸岛的IP地址。

  • AFRINIC:AfricanNetwork Information Centre,即非洲网络信息中心,位于南非比勒陀利亚,负责非洲中心地区的IP地址。

中国IP地址分配是由中国互联网信息中心(CNNIC)负责,CNNIC是亚太互联网络信息中心(APNIC)下一级机构,是国家级IP地址注册机构成员(NIR)。

该机构位于中国科学院计算机网络信息中心内。中国各地互联网服务商(ISP)又是其下一级机构 ,只要他们申请加入CNNIC分配联盟,就可申请到IP地址。

普通个人和机构一般向服务商(各种ISP:如电信、移动、联通)申请公网IPv4地址。

在我国,公网IP地址和网络等资源,主要是由电信联通移动三大网络运营商,以及一些云计算公司(阿里云,腾讯云,华为云,金山云,青云,Ucloud等)掌握。

当然,普通的企业也是可以申请公网IP的,由于公网IPv4的宽带价格非常贵,小型企业,个人用户,家庭用户都用不到。

比如,在阿里云腾讯云等场景中,我们购买云服务器,可以选择购买几个不带公网IP的服务器,组成云上的内网集群应用,数据库,WEB,Nginx 等。

做为企业用户和个人用户,一般我们要找运营商来申请网络。综合来看,根据ip地址类型,isp给我们分配大概有三种类型:

  • 我们拨号的核心网络设备(路由器或防火墙)上取到的IP是内网IP,比如我司之前取到的100.这种,这种情况一般是由于运营商提供的光猫设备管理拨号

  • 我们核心网络设备(路由器)取到的ip是公网IP,不考虑网站备案,isp恶意封禁等情况下,理论上,我们可以拨号设备上做NAT端口映射后,我们把内部的网站,windows mstsc,linux openssh等等服务都可以通过这个ip暴露出来,一般不重启设备的话,这个ip基本上不会变。

  • 静态公网ip,这种宽带最好,这个ip你独享,而且一般上下行对等,一般用于建站,在idc机房内使用。

NAT端口映射

NAT有三种类型:

静态NAT(Basic NAT):此类NAT在本地和外网地址之间做一到一的永久映射。因此要维护一个公网的地址池。

须注意静态NAT要求用户对每一台主机都有一个真实的Internet IP地址。

(静态NAT实际使用场景很少见到,我们申请一个带公网IP的云服务器,就是这种例子)

动态转换 (Dynamic Nat) 是指将内部网络的私有IP地址在经过网关等NAT设备时转换为公用IP地址时,公网IP地址是不确定的,而是随机的。

也就是说在NAT网关上维护了一个公网IP的地址池,当私网地址访问外网时,IP地址是从公网地址池中动态获取的。

所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。

也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。

动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。

(动态NAT其实就是私网IP和公网IP的多对多的映射关系)

端口NAT(PAT):最为流行的NAT配置类型。通过多个源端口,将多个私网IP映射到一个公网IP(多到一)。

使用PAT能够使上千个用户仅使用一个公网IP地址连接到Internet。

(端口NAT是用法最广的NAT,目前在运营商中也是被广泛使用)

根据收发报文的不同,NAT又可以分为以下两种:

SNAT(源地址转换):对于客户端,发出去的IP报文,经过NAT网关设备时,NAT网关会把源IP地址转换为NAT网关的IP地址。

使得内网主机发出的数据包能够到达外网主机。

应用场景:让一些内网服务器可以访问互联网

DNAT(目的地址转换):当IP报文从互联网发到NAT网关时,只会返回到NAT网关设备。所以NAT网关必须要记录,对应的报文,

应用场景:让不在外网的机器,也可以对互联网提供服务,有点像反向代理一样。

比如我们的后端服务器和数据库可能都是在内网,通过DNAT将服务暴露在互联网