网络基础知识
约 1129 个字 -5 行代码 预计阅读时间 4 分钟
计算机网络¶
我们这辈人生活在一个高度信息化的时代中,自打记事开始,很多人就知道网络,并且经常在网上进行查找资料,聊天视频,联机游戏等活动。那么计算机网络究竟是如何组织起来的呢?我们这篇文章将做一些简要的介绍
OS/I 七层模型¶
--------------
| 应用层 | 7
--------------
| 表示层 | 6
--------------
| 会话层 | 5
--------------
| 传输层 | 4
--------------
| 网络层 | 3
--------------
| 数据链路层 | 2
--------------
| 物理层 | 1
--------------
目前基本不再使用 5、6 层的说法,按照 OS/I 的定义和现在的实际情况,5、6 层功能被 4、7 层包含。各层具体的作用我们以后再提。
TCP/IP 协议¶
TCP 和 IP 协议分别工作在上述模型的第四层和第三层,IP 协议为世界上每一个能连入全球互联网的设备分配一个地址,同时提供不可靠的包交换服务。数据包指的是一段长度有限(但不总是固定)的数据,不可靠的包交换意思是把数据包从出发地传送到目的地,但是不保证包按照顺序到达,不保证有且仅有一个包到达,不保证包内容正确。
IP 协议目前有两个版本,一个是 IPv4,其地址由点分十进制,也就是类似于 111.111.111.111 的形式表示,每个十进制范围是 0-255,同时有许多地址被保留,如 127.xxx.xxx.xxx,10.xxx.xxx.xxx,192.168.xxx.xxx,0.0.0.0,255.255.255.255 等等,它们或被用于标示本机回环地址,或被用于局域网内,或被用于广播地址或保留地址。即使不考虑上述情况,IPv4 也只能为最多 4294967296(42 亿)个设备分配唯一地址,很明显目前地球上的人口数已经远远超过这个数值,IPv4 已经接近枯竭。目前的缓解办法包括 NAT 等协议使得多台设备共用一个公网 IP,但是这样会存在很多不方便的地方。
练习:114.514.1919.810 是不是有效的 IPv4 地址?
目前正在快速普及的 IPv4 的后继者是 IPv6,其地址由冒号分隔的 16 进制组成,长度是 128bit。如果地址中存在连续多项 0,可以用两个冒号替代,但是只能替代一次。下面是一些 IPv6 的地址示例:
IPv6 资源丰富很多,基本不会存在枯竭问题。TCP 是在 IP 之上的协议,利用 IP 协议提供的不可靠数据传输,为上层提供流式的端到端可靠数据传输。端口号是在这一层协议定义的。TCP 协议存有状态,必须先双方三次交互建立连接,每个数据报文对方都要确认,报文都带有编号和校验码,确保报文正确按顺序到达。TCP 不能保证服务质量,比如传输速率。
与 TCP 同层还有 UDP 协议。UDP 协议不提供可靠传输服务,无状态,适合对数据准确性要求不高但是追求数据快速到达的场景,也适合上层实现别的可靠传输协议。
提示:指定端口号的地址,IPv4 可以写作 127.0.0.1:8080 这种形式,IPv6 可以写成 [::1]:8080 的形式。
DNS 协议¶
DNS(Domain Name System) 协议是用于解析域名信息的协议。我们在日常上网的过程中,由于 IP 地址过于抽象难记,经常会使用类似于pku.edu.cn
这样的域名,DNS 就是将域名转化为 IP 地址的服务。DNS 服务从点分隔的域名的最后一部分开始查找,整个查找过程先向系统预设的 DNS 服务器查找最后一部分cn
,返回cn
域名的服务器,然后向cn
域名的服务器继续询问edu
,直到整个域名解析完成,得到最终的 IP 地址。实际情况下,有时候 DNS 服务器会直接返回下一级域名服务器作为结果,也有时候会代替你继续查询,直接返回给你最终的结果。
提示:以前国内的网络运营商默认提供的 DNS 有时会遭到污染,进行植入广告等操作,这时候你可以自行更换 DNS 地址,你可以在互联网上查询到关于如何更换以及更换为哪些声誉较好的 DNS 服务的信息。