当前位置: 首页 > news >正文

【读书笔记-《网络是怎样连接的》- 0】全书整体结构

网络是计算机相关课程中的重要部分,更是当今的学习生活中所不可或缺的。虽然相关的经典书籍很多,但是大多数属于深入某一部分的专著,比如TCP/IP协议。像我这样对于网络一知半解的同学来说,更需要一种覆盖网络全貌,每一部分又不那么复杂的入门书。这本《网络是怎样连接的》就非常符合这一特点。本书通过描述从Web浏览器中输入网址,到浏览器中展示出网站页面的这一过程,深入浅出地讲解了相关的网络知识。

其实Web浏览器与Web服务器的交互很简单,可以分为两个步骤:

(1) 浏览器向服务器发送请求
(2) 服务器根据请求向浏览器发送响应

为了实现这种交互,我们需要一种机制,在任何情况下都能将请求和响应准确无误地发送给对方。这种机制由操作系统中的协议栈(网络控制软件)以及交换机、路由器等设备分工合作来完成的,基本思路就是将信息分割成一个一个的小块,装入称为"包"的容器中进行运送。包的头部存有目的地等控制信息,通过许多交换机和路由器的接力,就可以根据控制信息对这些包进行分拣,并一步步地搬运到目的地。

这个负责搬运数字信息的机制,加上浏览器和Web服务器这些网络应用程序,两部分构成了网络的全貌。全书通过六章的内容来描述以下的过程:

在这里插入图片描述

第1章 Web浏览器

首先是浏览器的工作方式。输入网址(URL)后,浏览器会按照一定的规则分析URL的含义,并据此生成请求消息。而实际发送消息是由网络控制软件来实现的,浏览器会委托他们发送数据。

第2章 协议栈、网卡

第2章探索的是搬运数据的机制。首先是协议栈(网络控制软件),将从浏览器接受到的消息打成包,加上目的地址等控制信息。此外协议栈还具有通信错误时重新发送,控制发送速度等功能。接下来协议栈就会将包交给网卡,网卡将包转换为电信号并通过网络发送出去,这样包就进入到网络之中了。

第3章 集线器、交换机、路由器

接下来会根据接入互联网的形式而有所不同。这里假设客户端计算机是连接到家庭或公司的局域网中,然后通过ADSL和光纤(FTTH)等宽带线路接入互联网,在这样的场景下,网卡发送的包会经过交换机等设备,到达用来接入互联网的路由器。路由器之后就是互联网,网络运营商负责将数据包传送到目的地。

第4章 接入网、网络运营商

接下来数据包进入了互联网的内部。互联网的入口线路称为接入网,接入网连接到签约的网络运营商,并接入被称为接入点(Point of Presence, PoP)的设备。接入点的实体是一台专为运营商设计的路由器,数据包从这里被发送到全世界,接入点的后面就是互联网的骨干部分。在骨干网中存在很多运营商和大量的路由器,这些路由器相互连接构成一张大网,网络数据包经过若干路由器的接力,最终达到目标的Web服务器。

第5章 防火清、缓存服务器

通过骨干网之后,网络数据包就到达了Web服务器所在的局域网。接下来会经过防火墙,防火墙会对进入的包进行检查,防止混入危险的包。经过检查之后可能还会用到缓存服务器。缓存服务器中保存着一部分可以重复利用的数据,如果请求的数据在缓存服务器中可以找到,就可以直接从缓存服务器中返回,避免访问Web服务器。大型网站中可能还会配备将消息分布到多台Web服务器上的负载均衡器,可能会使用分布在整个互联网中的缓存服务器来分发内容的服务,经过这些机制之后网络数据包才会到达Web服务器。

第6章 Web服务器

网络包到达Web服务器后,数据会被解包并还原为原始的请求消息,交给Web服务器程序。这部分操作也是由操作系统中的协议栈来完成的。Web服务器会分析请求消息的含义,据此将数据装入响应消息,发回给客户端。接下来的过程和发送请求的过程就正好相反了。响应到达客户端,浏览器从中取出网页数据并展示在屏幕上。

接下来的文章中会详细总结每一章的内容,敬请期待。


http://www.mrgr.cn/news/32966.html

相关文章:

  • STM32中断系统
  • 分布式光伏智慧平台建设现场 系统集成商如何盈利
  • MFC IDC_STATIC控件嵌入一个DIALOG界面
  • 生成式模型api国际选择
  • golang使用etcd版本问题
  • Mysql数据库里的SSH连接
  • 直通滤波-PassThrough Filter-原理-代码实现
  • 数据结构——二叉搜索树
  • grbl移植日志第二天移植串口数据接收
  • 图像锐化的算法总结
  • LeetCode --- 139双周赛
  • python:给1个整数,你怎么判断是否等于2的幂次方?
  • KVM环境下制作ubuntu qcow2格式镜像
  • Java面试——集合篇
  • Python基于TensorFlow实现Transformer分类模型(Transformer分类算法)项目实战
  • C语言的一些小知识(四)
  • 跨游戏引擎的H5渲染解决方案(腾讯)
  • 美学心得(第二百六十七集) 罗国正
  • 数据结构之顺序表
  • 【数学二】无穷小量定义、性质、比较
  • Java异常架构与异常关键字
  • MySQL基础基础篇 - SQL
  • python有main函数吗
  • C++ 单例模式
  • 如何有效检测住宅IP真伪?
  • 互斥锁和自旋锁