此为《信息存储与管理(第二版):数字信息的存储、管理和保护》的看书总结,相当于是对存储技术的一个简单的名词入门。

浏览器生成消息

本章节我印象最深的还是以前就不大了解的DNS,今天看到书的描写真有种豁然开朗的感觉。

DNS服务器用于保存域名—IP地址的映射对,为了增加查找效率,DNS根据域名的分级采用树形组织,例如hitsz.edu.cn/可以相当于是/cn/edu/hitsz,包含了/cnedu这几个域。根DNS服务器存储着根域,记录了所有一级域名对应DNS服务器的IP地址。所有的DNS服务器都会保存根服务器的IP地址。

世界上只有13个根DNS服务器IP地址,但是有很多台根DNS服务器。

主机需要手动配置DNS服务器地址。

当浏览器需要填写请求头时,它需要通过系统调用向操作系统发送DNS查询请求。操作系统将DNS请求发送给配置在主机上的DNS服务器(下称A),A再向根DNS服务器发送请求。根DNS服务器解析域名,返回下一级DNS服务器的IP地址。A再向下级DNS服务器再次发送请求,下级再返回下下级IP地址。以此类推,最终A就能得到目标IP地址的正确响应。整个过程如下图所示:

image-20231010132718116

与此同时,各个DNS服务器都会有定时刷新的缓存,从而加速了查找效率。

用电信号传输TCP/IP数据

TCP/IP

本章前面大多讨论TCP/IP具体协议内容,以前已经了解过很多次了就不多赘述。所以TCP/IP部分就以分点的形式随意列举一下:

  1. IP 中还包括 ICMPA 协议和 ARPB 协议。ICMP 用于告知网络包传送过程中产生的错误以及各种控制消息,ARP 用于根据 IP 地址查询相应的以太网 MAC 地址。

  2. 套接字中记录了用于控制通信操作的各种控制信息,协议栈则需要根据这些信息判断下一步的行动,【包括应用程序信息和协议栈状态信息】这就是套接字的作用。所以需要针对不同协议栈实现不同的socket。

  3. 是的,回想当初CS144,也是socket来负责有特定消息时调用TCP相关函数来通知处理。

  4. 连接 connect

    连接实际上是通信双方交换控制信息,在套接字中记录这些必要信息并准备数据收发的一连串操作。

    1. 应用程序向协议栈传ip地址
    2. 本机向服务器发通信请求
    3. 过程中分配通信缓冲区
  5. 动态调整等待时间

    image-20231012113725655

以太网

  1. 以太网的定义

    image-20231012113840636

  2. 系统初始化时MAC地址的设置

    MAC地址是上电后由驱动程序从ROM中读取的,而非自动获取的

  3. 电信号转换【这个帅得不行】

    为了区分连续的1或0,我们就需要同时发送数据信号和时钟信号,然而这样开销太大,因而我们引入了上升沿

    上升沿本质上是数据信号和时钟信号叠加而成的结果,叠加方式是异或

    image-20231012114006378

    提到异或是否感觉豁然开朗?是的,这东西恢复时也是使用了异或的性质:接收方从帧头获取时钟频率从而得到时钟信号,跟收到的叠加信号进行再次叠加(异或),就可以获得原来的数据信号了。

    我只能说牛逼,一直以来对异或的视角还停留在单纯的数字,这个波形的物理概念真的惊到我了。

    实例:

    image-20231012114350599

  4. 半双工模式【同一时刻只能进行发or收】使用集线器,全双工模式【发or收可以并行】使用交换机。半双工模式需要进行载波监听碰撞检测。

  5. 服务器的操作系统具备和路由器相同的包转发功能,当打开这一功能时,它就可以像路由器一样对包进行转发。在这种情况下,当收到不是发给自己的包的时候,就会像路由器一样执行包转发操作。