此为《信息存储与管理(第二版):数字信息的存储、管理和保护》的看书总结,相当于是对存储技术的一个简单的名词入门。
浏览器生成消息
本章节我印象最深的还是以前就不大了解的DNS,今天看到书的描写真有种豁然开朗的感觉。
DNS服务器用于保存域名—IP地址的映射对,为了增加查找效率,DNS根据域名的分级采用树形组织,例如hitsz.edu.cn/
可以相当于是/cn/edu/hitsz
,包含了/
、cn
、edu
这几个域。根DNS服务器存储着根域,记录了所有一级域名对应DNS服务器的IP地址。所有的DNS服务器都会保存根服务器的IP地址。
世界上只有13个根DNS服务器IP地址,但是有很多台根DNS服务器。
主机需要手动配置DNS服务器地址。
当浏览器需要填写请求头时,它需要通过系统调用向操作系统发送DNS查询请求。操作系统将DNS请求发送给配置在主机上的DNS服务器(下称A),A再向根DNS服务器发送请求。根DNS服务器解析域名,返回下一级DNS服务器的IP地址。A再向下级DNS服务器再次发送请求,下级再返回下下级IP地址。以此类推,最终A就能得到目标IP地址的正确响应。整个过程如下图所示:
与此同时,各个DNS服务器都会有定时刷新的缓存,从而加速了查找效率。
用电信号传输TCP/IP数据
TCP/IP
本章前面大多讨论TCP/IP具体协议内容,以前已经了解过很多次了就不多赘述。所以TCP/IP部分就以分点的形式随意列举一下:
IP 中还包括 ICMPA 协议和 ARPB 协议。ICMP 用于告知网络包传送过程中产生的错误以及各种控制消息,ARP 用于根据 IP 地址查询相应的以太网 MAC 地址。
套接字中记录了用于控制通信操作的各种控制信息,协议栈则需要根据这些信息判断下一步的行动,【包括应用程序信息和协议栈状态信息】这就是套接字的作用。所以需要针对不同协议栈实现不同的socket。
是的,回想当初CS144,也是socket来负责有特定消息时调用TCP相关函数来通知处理。
连接 connect
连接实际上是通信双方交换控制信息,在套接字中记录这些必要信息并准备数据收发的一连串操作。
- 应用程序向协议栈传ip地址
- 本机向服务器发通信请求
- 过程中分配通信缓冲区
动态调整等待时间
以太网
以太网的定义
系统初始化时MAC地址的设置
MAC地址是上电后由驱动程序从ROM中读取的,而非自动获取的
电信号转换【这个帅得不行】
为了区分连续的1或0,我们就需要同时发送数据信号和时钟信号,然而这样开销太大,因而我们引入了上升沿。
上升沿本质上是数据信号和时钟信号叠加而成的结果,叠加方式是异或。
提到异或是否感觉豁然开朗?是的,这东西恢复时也是使用了异或的性质:接收方从帧头获取时钟频率从而得到时钟信号,跟收到的叠加信号进行再次叠加(异或),就可以获得原来的数据信号了。
我只能说牛逼,一直以来对异或的视角还停留在单纯的数字,这个波形的物理概念真的惊到我了。
实例:
半双工模式【同一时刻只能进行发or收】使用集线器,全双工模式【发or收可以并行】使用交换机。半双工模式需要进行载波监听碰撞检测。
服务器的操作系统具备和路由器相同的包转发功能,当打开这一功能时,它就可以像路由器一样对包进行转发。在这种情况下,当收到不是发给自己的包的时候,就会像路由器一样执行包转发操作。