作者户根勤。“计算机网络概论”图解趣味版,蹲着马桶就能看懂的网络基础知识。本书以探索之旅的形式,从浏览器中输入网址开始,一路追踪了到显示出网页的内容为止的整个过程,以图配文,讲解了网络的全貌,并重点介绍了实际的网络设备和软件是如何工作的。
一、浏览器生成消息—探索浏览器的内部
1、生成HTTP请求消息
用户在浏览器中输入网址(URL),浏览器的工作会从对用户输入的网址进行解析。然后浏览器会根据网址的含义来生成HTTP请求消息,浏览器通过请求消息将用户需要哪些数据告知服务器,发送请求后会收到响应。
2、向DNS服务器查询Web服务器的IP地址
请求消息生成之后,浏览器会委托操作系统向Web服务器发送请求,但浏览器必须告诉操作系统接收方的IP地址才行,因此浏览器必须先查出Web服务器的IP地址。网址中只有Web服务器的域名,因此浏览器需要向DNS服务器查询域名对应的IP地址。
3、全世界DNS服务器的大接力
这是我们的路程进入到哦DNS服务器帮助浏览器查询IP地址这一环节了。全世界有上万台DNS服务器,它们相互接力才能完成IP地址的查询。
4、委托协议栈发送消息
查询到IP地址之后,浏览器就可以将消息委托给操作系统发送给Web服务器了。“委托给操作系统”这句话看似简单,但关于委托给操作系统,其实有非常详细的规则,必须要遵守这些规则才能完成操作。理解了向操作系统进行委托时的规则,我们就能明白做出某个委托时操作系统会给我们怎样的反馈,这可以说是相当于具体地理解了网络的潜在能力。
二、用电信号传输TCP/IP数据—探索协议栈和网卡
1、创建套接字
从应用程序收到委托后,协议栈通过TCP协议收发数据的操作可分为4个阶段,首先是创建套接字。浏览器、邮件等一般应用程序收发数据时用TCP;DNS查询等收发较短的控制数据时用UDP。套接字的实体就是通信控制信息,协议栈是根据套接字中记录的控制信息来工作的。创建套接字时,首先分配一个套接字所需的内存空间,然后向其中写入初始状态。
2、连接服务器
接下来是客户端套接字向服务器套接字进行连接的阶段。通信操作中使用的控制信息分为两类:头部中记录的信息、套接字(协议栈中的内存空间)中记录的信息。连接操作的第一步就是TCP模块处创建表示连接控制信息的头部。通过TCP头部中的发送方和接收方端口号可以找到要连接的套接字。
3、收发数据
两端的套接字完成连接之后,就进入了收发消息的阶段了。在这个阶段,协议栈会将从应用程序收到的数据切成小块并发送给服务器,考虑到通信过程中可能会出错导致网络包丢失,协议栈还需要确认切分出的每个包是否已经送达服务器,对于没有送达的包要重新发送一次。
4、从服务器断开并删除套接字
收发消息的操作全部结束后,接下来要断开服务器的连接并删除套接字。断开操作的本质是当消息收发完成后客户端和服务器相互进行确认的过程。
5、IP与以太网的包收发操作
在介绍TCP协议收发消息的操作之后,我们再来看看实际的网络包是如何进行收发的。协议栈会与网卡进行配合,将数据切分成小块并封装成网络包,再将网络包转换成电信号或者光信号发出去。
6、UDP协议的收发操作
TCP协议有很多方便的功能,比如网络包出错丢失时可以重发,因此很多应用程序都是使用TCP协议来收发数据的,但这些方便的功能也有帮倒忙的时候,在这种情况下我们还有另外一种叫UDP的协议。不需要重发的数据使用UDP发送更高效。
三、从网线到网络设备--探索集线器、交换机和路由器
1、信号在网线和集线器中传输
信号从计算机流出之后,会在网线中经过集线器等设备前进。每个包都是独立传输的,防止网线中的信号衰减很重要,“双绞”是为了抑制噪声,集线器将信号发往所有线路。
2、交换机的包转发功能
交换机并不只是简单地让信号流过,而是先接收信号并将其还原为数字信息,然后再重新转换成信号发送出去的过程。交换机根据地质表进行转发,全双工模式可以同时进行发送和接收,自动协商:确定最优的传输速率,交换机可同时执行多个转发操作。
3、路由器的包转发功能
路由器和交换机一样也是负责对包进行转发的,但他们的工作方式有一些差异。交换机是基于以太网规格工作的设备,而路由器是基于IP工作的。路由器的各个端口都具有MAC地址和IP地址,路由器根据“IP地址”判断转发目标,路由器会忽略主机号,只匹配网络号。路由表的子网掩码列只表示在匹配网络包目标地址时需要对边的比特数量。路由器的端口都具有MAC地址,只接收与自身地址匹配的包,遇到不匹配的包则直接丢掉。通过路由器转发的网络包,其接收方MAC地址为路由器端口的MAC地址。
4、路由器的附加功能
位于互联网接入端的路由器通常还会提供一些附加功能,例如将私有地址转换为公有地址的转换功能,以及阻止危险网络包的包过滤功能等。
个人总结:后面还有四五六章,读的时候没怎么看懂,也没读完,所以这里就不做总结了。