网络是怎样连接的,笔记整理
网络上之前流行一个面试题,从浏览器里输入一个网址后回车,发生了什么?这个题,如果展开讲,涉及非常多的内容,这个题的答案,基本就是户根勤的这本<网络是怎样连接的>书中的内容,读完这本书,就大体了解这个面试题的答案了。前段时间买了一本,很快看完了,但是这本书的知识点比较散,而且没有什么实操,所以就写一篇读书笔记,把零散的知识整理一下。这本书的内容就是围绕书中最开始的这张图来展开讲解的。
注意这张图的顺序是从右向左的,右边是起点,左边是终点。
全书一共6章。
第一章:Web浏览器生成应用层协议的消息,将响应包委托给协议栈发送。这一章的重点是浏览器作为应用程序和DNS解析器、DNS服务器的交互,从而通过域名获取到IP的过程。
第二章:协议栈内部收到浏览器的数据包后,如何将数据包发送出去的?这中间涉及到TCP/IP的相关知识,以及Socket的相关API,比如服务端的相关API,如:bind、listen、accept、read,客户端的相关API,如:connect、write。除了这些,还有硬件网卡的相关知识。在这一步,数据包会先从可读的数据变成二进制的数字信息,然后再从二级制的数字信息变成电信号或者光信号。之后经由电缆或者光缆进行传输。
第三章:接入网络。数据包有了,也通过网卡发出去了,数据包就离开了我们的服务器进入了公司或者家庭里的局域网,也就是我们常说的以太网,但是我们的目的地址很多时候都不是在局域网里,而是在互联网里,那数据包怎么发送到目的地址呢?这里面就涉及到了交换机和路由器的相关知识,数据包是通过很多路由器的接力,最终发送到目的地的,路由器和路由器之间的传递,又依赖了交换机。
第四章:数据包离开了局域网,下一站就进入了互联网中,然后再在互联网中的路由器之间进行传递,互联网中的路由器其实和局域网中的路由器功能是类似的,只不过路由器的网口更多,性能更好。路由器使用动态路由协议(如BGP、OSPF)来更新路由表,确保数据包能够高效地到达目的地。
第五章:进入目的地服务器的接入网络,这一章涉及到防火墙、缓存、负载均衡的相关知识。
第六章:进入到目的服务器,生成响应包。响应包的发送过程与请求包的发送过程类似,但方向相反。响应包会经过相同的网络设备(如路由器、交换机)返回到客户端。
这本书比较难理解的是接入网络层,也就是第三章。涉及到很多的概念和技术,非常复杂,理解起来很难。不过如果不从事相关的工作,有个大概的概念就行了,另外5章理解起来都比较简单。
就先写这么多,后面再迭代这个笔记