互联网

互联网是由全世界众多网络连接而成的网络。互联网的核心就是一系列协议,总称为"互联网协议"。

协议

协议是定义了数据如何在计算机内或之间,进行交换的规则。它们对电脑如何连接和组网,做出了详尽的规定。

五层模型

用户接触到的,只是最上面的一层,根本没有感觉到下面的层。越下面的层,越靠近硬件;越上面的层,越靠近用户。要理解互联网,必须从最下层开始,自下而上理解每一层的功能。

avatar

每一层都是为了完成一种功能。为了实现这些功能,就需要大家都遵守共同的规则。大家都遵守的规则,就叫做"协议"(protocol)。

互联网的每一层,都定义了很多协议。这些协议的总称,就叫做互联网协议(Internet Protocol Suite)

实体层

  • 它是什么?

    它是把电脑连接起来的物理手段(网线、光缆、电缆、无线电波)。

  • 它的用途是什么?

    作用是负责传送01的电信号。

链接层

  • 它的用途是什么?

    解读电信号,确定01的分组方式。

以太网协议

  • 它有什么规则?

    它规定,一组电信号构成一个数据包,也叫做帧(Frame)

    每一个数据包为两个部分:

    • 标头(Head):包含数据的一些说明项,如发送者、接受者、数据类型等等。
    • 数据(Data):数据包的具体内容。

MAC 地址

以太网规定,连入网络的所有设备,都必须具有网卡接口。数据包必须是从一块网卡,传送到另一块网卡。

  • 它是什么?

    它是网卡地址,也是数据包的发送和接收地址。

  • 它的作用是什么?

    用来定位网卡和数据包的路径。

  • 它的特点是什么?

    每一块网卡出厂的时候,都有一个全世界独一无二的MAC地址

广播

  • 它是什么?

    一种发送数据包的方式。

  • 它是怎么发送的?

    向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。

  • 它的特点是什么?

    广播的限制是,两台计算机要在同一个子网络中。这是合理的设计,可以避免很多灾难。

总结

我们有了MAC地址,然后以太网会使用广播的方式,将数据包发送给局域网内所有的计算机,它们读取数据包的标头,找到接收方的 MAC 地址,与自身的 MAC 地址相比较,如果相同就接收这个包,否则就丢弃这个包。

有了数据包的定义、网卡的 MAC 地址、广播的发送方式,“链接层”就可以在多台计算机之间传送数据。

网络层

  • 它是什么?

    一套新的地址,这套地址叫做网络地址,简称网址

  • 它的用途是什么?

    引进一套新的地址,使我们能够区分不同的计算机是否属于同一个子网络。

  • 它是怎么区分的?

    通过IP协议子网掩码

IP 协议

  • 它是什么?

    用来规定网络地址的协议。

  • 它的作用是什么?

    一个是为每一台计算机分配 IP 地址,另一个是确定哪些地址在同一个子网络中。

  • 它长什么样?

    用四段十进制数表示,从0.0.0.0255.255.255.255。前一部分表示网络,后一部分表示主机。

  • 它的特点是什么?

    网络部分相同,就表示处于同一个子网络。

  • 怎么判断网络部分是否相同?

    将两个IP地址子网掩码分别进行AND运算,比较是否相同,就可以知道是否在一个子网络中。

ARP 协议

  • 它有什么用?

    在同一个子网络中,已知IP地址的情况下,通过ARP协议,可以得到主机的MAC地址

  • 它的局限是什么?

    只作用于同一个子网络中,如果两台主机不在同一个子网络,那只能把数据包传送到两个子网络连接处的网关去处理。

总结

每台计算机有两种地址,一个种是MAC地址,另一种是网络地址。这两种地址之间没有任何联系,MAC 地址绑定在网卡上,网络地址由管理员分配,它们只是随机组合在一起。

网络地址用来确定计算机所在的子网络,MAC 地址则将数据包发送到该子网络中的目标网卡。

如果是同一个子网络,就采用广播方式发送,否则就采用路由方式发送。

传输层

  • 它的用途是什么?

    建立端口端口之间的通信。

端口(port)

  • 它是什么?

    它是一个编号。

  • 它的用途是什么?

    用来区分接收到的数据包要提供给哪个程序使用。

  • 它的特点是什么?

    由 16 个二进制位组成,一个065535之间的整数,前面1023个被系统占用。

UDP 协议

  • 它的用途是什么?

    数据包中加入端口信息。

  • 它的缺陷是什么?

    可靠性较差,可以将数据发出,但是无法知道对方是否收到。

TCP 协议

  • 它是什么?

    一个有确认机制的UDP协议

  • 它的用途是什么?

    为了解决UDP协议的问题,提高可靠性。

  • 它是怎么做到的?

    操作系统会有接口来管理它,它使用三次握手来建立一个连接,使用四次握手来中断一个连接。

  • 它还有什么特点?

    它会确保数据传输的可靠性,并保证每一个字节在接收时,维持它们的发送顺序。

总结

有了 MAC 地址和 IP 地址,我们已经可以在互联网上任意两台主机上建立通信。接下来的问题是,同一台主机上有许多程序都需要用到网络,想要知道接收到的数据包到底是给哪个程序使用,这还需要一个参数,就是端口

网络层的功能是建立主机到主机之间的通信,传输层的功能是建立端口到端口之间的通信。

每一层都会往数据包中追加新的信息,最后就是这个样子: avatar

应用层

  • 它是什么?

    它是应用程序的数据协议。

  • 它的作用是什么?

    用来规定应用程序的数据格式。应用层接收到传输层的数据,加下来就要进行解读。

总结

网络通信就是交换数据包,发送数据包需要知道两个地址:一个是对方的MAC地址,另一个是对方的IP地址

如果两台电脑不在同一个子网络中,就无法知道对方的 MAC 地址,必须通过网关转发


用户上网设置

通常必须做一些设置,需要四个参数:

  • 本机的 IP 地址
  • 子网掩码
  • 网关的 IP 地址
  • DNS 的 IP 地址

DHCP

动态 IP 地址,指计算机开机后,会自动分配一个 IP 地址,使用的协议叫做DHCP协议

每一个子网络中,有一台计算机负责管理本网络的所有 IP 地址,它叫做DHCP服务器

域名

  • 它是什么?

    IP 地址的别名。

NDS 协议

  • 它的用途是什么?

    将域名查出 IP 地址。

  • 它是如何做到的?

    本机需要先知道 DNS 服务器的 IP 地址,然后根据域名的层级,使用分级查询

  • 域名的层级是什么?

    • 所有域名的尾部,实际上都有一个根域名。举例来说,www.lcong.cn真正的域名是www.lcong.cn.root,简写为www.lcong.cn.,后面有一个.
    • 主机名(三级域名).次级域名(二级域名).顶级域名(一级域名).根域名
  • 分级查询是什么?

    从根域名开始,依次查询每一级域名的 NS 记录,直到查到最终的 IP 地址。

    • 根域名服务器查到顶级域名服务器的 NS 记录和 A 记录
    • 顶级域名服务器查到次级域名服务器的 NS 记录和 A 记录
    • 次级域名服务器查出主机名的 IP 地址
  • A 记录和 NS 记录是什么?

    域名与 IP 之间的对应关系,称为记录。根据使用场景,记录可以分成不同的类型,NSA就是类型。

  • 常见的记录有哪些?

    • A:地址记录,返回域名指向的 IP 地址
    • NS:域名服务器记录,返回保存下一级域名信息的服务器地址,只能设置为域名
    • MX:邮件记录,返回接收电子邮件的服务器地址
    • CNAME:规范名称记录,返回另一个域名,即当前查询的域名是另一个域名的跳转

Hosts 文件

  • 它是什么?

    Hosts 文件存放的是域名IP的对应关系,在网络请求阶段发挥作用。

Last Updated: 2023/8/2 10:45:34
Contributors: licong96