【Java】网络编程(5)

1. 再谈 IP

1.1 协议格式

**版本:**以 IPv4 和 IPv6 为主。

**首部长度:**IP 协议的报头是可变长的。

**服务类型:**IP 协议可以切换工作状态,具体有,最小延时、最大吞吐量、最高可靠性和最小成本。四者选其一。

**总长度:**IP 数据报报头加载荷的长度。长度为 16 位,大约 64 KB。IP 协议内置了拆包和组包功能。

**标识、标志、偏移:**三者共同用于维护 IP 协议拆包和组包的逻辑。标识为被拆散的包做相同的标记,用于组包。标志位用于提示当前是否拆包,以及当前包是否为最后一个。偏移描述了数据的先后顺序。

**生存时间:**IP 数据报能够在网络上传输的最大时间。IP 数据报每经过一个路由器的转发,TTL 的值相应减一,减到零则会被丢弃。如下图,TTL 原本为 64,经过 11 次转发到达服务器。

**协议:**IP 协议将数据报分用时,载荷被提交上层传输层协议,该字段就用于标识载荷使用的是哪种传输层协议。

**源 IP 和目的 IP:**IP 协议的核心,因为 IP 协议的作用就是在复杂的网络中规划路线。IP 地址本质上是 32 位的二进制数,为了便于阅读,也使用点分十进制表示,用三个点号将数据分为四部分,每部分 8 位,再转换为十进制。

32 位 IP 地址可以表示 43 亿左右的数字,但现在整个世界的互联网设备数量远超这个数目。为了解决这个问题,引入 NAT 机制。

1.2 NAT 机制

网络设备分为公网设备和私网设备。公网设备拥有全球唯一的公网 IP,由国际互联网地址分配机构统一分配,能被互联网上任意设备直接访问。如互联网公司的服务器,运营商带有公网 IP 的路由器等。

私网设备仅拥有私网 IP,仅在同一局域网中唯一,无法直接被公网访问。私网 IP 使用预留的地址段,以 10. 或 172.16. - 172.31. 或 192.168. 开头。私网设备间可直接通信。私网设备访问公网需通过运营商路由器的 NAT 技术,将私网 IP 映射到公网 IP。这在一定程度上保护了私有设备,避免其暴露在公网环境中。

NAT 技术主要在做地址映射的工作。当带有私网 IP 的数据报经过运营商的公网路由器时,NAT 将私网 IP 替换为路由器的公网 IP,从而与公网中的服务器进行通信。IP 映射的同时,路由器会记录每一条映射关系,该映射关系通过端口号区分不同主机(由于映射后数据的源 IP 相同,服务器返回响应时的目的 IP 也相同,此时通过记录端口号来做区分)。通过这样的技术,很多局域网设备共用一个公网 IP,也达到了节省 IP 资源的目的。

多数对外提供服务的服务器是公网设备,如淘宝的服务器,但公网 IP 也是一种稀缺资源,某些无法获取公网 IP 的企业或个人,也可以通过一些技术让私网设备对外服务。这样的技术主要有内网穿透和 VPN。

这些技术并不与 NAT 冲突,也并没有绕过 NAT,只是通过一些其他公网设备将私网设备间接暴露。内网穿透就是将私网服务器与一个公网中转服务器建立连接,中转服务器会将请求转发到私网服务器。VPN 也是类似的原理,也是需要一个持有公网 IP 的 VPN 网关服务器,私网设备与该服务器握手后,后续请求会被加密传输至该服务器,该服务器再将请求转发至目标局域网。此时私网设备像是融入了目标局域网,可访问目标局域网的所有资源。

1.3 IPv6

NAT 机制是目前解决 IP 资源稀缺的主力方案,但公网 IP 也总有耗尽的一天。此时,IPv6 就是一个终极解决方案。IPv4 使用 4 字节作为 IP 地址,而 IPv6 使用 16 字节作为 IP 地址,那就相当于是 43 亿的四次方,这样无论未来有多少网络设备,这个数字都是绰绰有余的。

目前世界的 IPv6 覆盖率非常低,因为其并不能提升任何上网体验。但中国的 IPv6 覆盖率非常高,这与国家战略有关(美国全权操控 IPv4,容易被限制)。虽然目前中国很多网站都支持了 IPv6,但并不是真正开启了它的功能。现在我们依然在使用 IPv4,但做好准备可以确保美国不会在 IP 卡我们。

1.4 网段划分

对于私网 IP 来说,它的格式也是有一定限制的,这与网段相关。

一般情况下,IP 地址的前二十四位表示网络号,后八位表示主机号。同一个局域网中,网络号必须相同,主机号必须不同。两个相邻的局域网,网络号必须不同,主机号无限制。

如下图所示,这是家中组网的简单模型。相邻的局域网网络号是不同的,路由器起到的就是将局域网相互连接的作用。

局域网中,不能将主机号设为 0,形如 192.168.100.0 这样的地址表示的是整个局域网,不能表示某个主机。也不能将主机号全设为 1,形如 192.168.100.255 这样的地址表示广播地址,它会给处于同一个局域网中的全部设备发送数据包。比如电视投屏就是在向广播地址发送数据包,以查找哪些设备可以投屏。

  1. 开头的 IP 用于本机环回测试,无论本机的真实 IP 是多少,它都可以代表。

另外,我们习惯将主机号为 1 的 IP 作为网关 IP。所谓网关就是连接不同网络的出入口。

1.5 路由选择

路由选择是一个探索式的问路过程。网络环境是非常复杂的,路由器无法储存全部的网络信息,但它可以记录附近的网络情况,也就是与其相邻的网段。

当数据到达路由器,路由器就通过路由表进行匹配。如果刚好匹配到路由表中记录的 IP,就直接通过对应的网口转发过去。如果没有匹配到,路由器则会按照路由表上 "下一跳" 指向的上级路由器进行进一步路由。

所谓探索式就是指,路由器通过 "路由协议" 动态地学习周围网络的拓扑结构,逐步构建出路由表,这个 "学习过程" 是探索式的。

而真正进行数据转发时,路径已经提前在路由表上规划好了,转发过程本身是按表走,不是实时探索。


2. 再谈以太网

数据链路层的协议定义了通过通信媒介互连的设备之间传输的规范。通信媒介包括双绞线电缆、同轴电缆、光纤、电波以及红外线等介质。

根据传输介质的不同,数据链路层中定义了不同的协议,如以太网、WLAN、PPP(Point to Point Protocol,点对点协议)等。数据链路也可以被视为网络传输中的最小单位。其实,仔细观察连通全世界的互联网就可以发现,它也不外乎是由众多这样的数据链路组成的,因此又可以称互联网为 "数据链路的集合"。

3. DNS

互联网上的每一台设备都有一个 IP 地址,但人类很难记住这些数字串。DNS 应运而生。它允许我们使用容易记忆的域名来访问网站。当我们在浏览器中输入一个域名时,计算机会向 DNS 服务器发起查询,DNS 服务器负责将这个域名 "翻译" 成对应的 IP 地址,然后您的浏览器才能通过这个 IP 地址找到并打开目标网站。

一个完整的域名解析过程是从右向左的。

www.sogou.com.

注意末尾有一个不起眼的点,这个 . 代表根域,即所有域名的起点。通常根域会被省略,操作系统会自动补全。

.com 所在的位置被称为顶级域。com 是 commercial '商业' 这个词的缩写,表示该网站为营利使用。相应地,.org 被用于非营利组织,.edu 被用于教育机构。

sogou 所在的位置被称为二级域,表示独特的品牌标识。

www 是一个历史遗留的主机名,用于指定提供 Web 服务的计算机。在互联网的早期,一台服务器通常只提供一种服务,www. 标识的主机专门提供网页浏览服务,mail. 标识的主机专门提供邮件服务。现在,这个主机标识通常能够省略。

全球只有 13 个 DNS 根服务器,如果所有查询都涌向这13个地方,网络会非常拥堵且脆弱。为此,有下面两个缓解方式:

  1. 访问过的域名对应的 IP 会被缓存在本地,无需每次都触发 DNS 请求。

  2. 在世界各地搭建镜像服务器。镜像服务器是根服务器的完整副本,并与其保持数据同步。

相关推荐
lpfasd1233 小时前
SSL证书有效期缩短至200天的影响
网络·网络协议·ssl
艾菜籽4 小时前
网络原理-HTTP
网络·网络协议·http
new_daimond5 小时前
微服务-Nacos 技术详解
网络·微服务·架构
zzz.107 小时前
Calico 网络插件在 K8s 集群的作用
网络·云原生·kubernetes
运维行者_7 小时前
OpManager 与 iOS 26:开启 IT 运维新时代
运维·网络·网络协议·网络安全·ios·iphone·告警
云境天合知识分享7 小时前
能见度监测站的优点是什么
网络
筱砚.7 小时前
【数据结构——十字链表】
网络·数据结构·链表
Yvonne爱编码8 小时前
机器人的“神经网络”:以太网技术如何重塑机器人内部通信?【技术类】
网络·机器人
自我陶醉@8 小时前
计算机网络---传输层
网络·计算机网络·考研·学习方法·408