前言

这一个月窝家里一口气连着看完了《计算机怎样跑起来的》、《程序是怎样跑起来的》、《网络是怎样连接的》这一套图灵科普丛书(疫情被迫营业啃书╰(‵□′)╯)。不得不说本书是这三本中,个人认为讲的最系统、最全面的一本。讲解了网络的全貌,却并没有用过多的笔墨,看来真的是“《计算机网络概论》图解趣味版”。(注意网络是一个很大的概念。本文所指的网络特指计算机网络,需要和传统的电信网络区分开)

作者巧妙的将网络是怎样连接的比作一场探索之旅,描绘了从浏览器中输入网址开始,一路追踪到显示出网页内容为止的整个过程。并对过程中的每一步进行了详尽的说明,作者的表达比较细致,并没有像大多教科书那样按照OSI(开放系统互联参考模型)七层结构或者TCP/IP四层参考模型讲,像我小白这种读起来也不是特别吃力,欢迎对计算机网络感兴趣的朋友去读一读,强烈推荐。

网络的概念

网络是由若干节点和连接这些节点的链路构成,表示诸多对象及其相互联系。
可以说计算机网络的诞生让人类的生活更便捷和丰富,也促进人类社会的进步。现在人们的生活离不开网络,试想现在没有网的生活,那么绝大多数人应该难以生活的下去。随着1946年世界上第一台电子计算机问世后的十多年时间内,由于价格很昂贵。电脑数量极少,早期所谓的计算机网络主要是为了解决这一矛盾而产生的。其形式是将一台计算机经过通信线路与若干台终端直接连接,我们也可以把这种方式看做为最简单的局域网雏形。

计算机网络也称计算机通信网。 关于计算机网络的最简单定义是:一些相互连接的、以共享资源为目的的、自治的计算机的集合。而最简单的计算机网络其实就只有两台计算机和连接它们的一条链路,即两个节点和一条链路。

你没看错,这就是一个计算机网络!

最早的计算机网络,是由美国国防部高级研究计划局(ARPA)建立的。现代计算机网络的许多概念和方法,如分组交换技术都来自ARPA。 其不仅进行了租用线互联的分组交换技术研究,而且做了无线、卫星网的分组交换技术研究-其结果导致了网络协议TCP/IP协议的问世。
凡是对互联网有一些了解的人,那总会听过TCP/IP协议的大名。其全名叫Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议,指能够在多个不同网络间实现信息传输的协议簇。你也可以将它理解为我们的普通话,只有人们都使用它,才能互相流畅地交流,再也没有被温州话支配的恐惧了。

网络连接的全貌

从输入网址到显示出网页内容,这个过程只有短短几秒的时间,但在这短短几秒背后,离不开各种设备和软件的相互结合。

简单来说,网络就是由无数的计算机组合而成的,这个计算机往大了说就是我们经常需要访问的服务器、太湖之光,往小了说就是各类微型计算机,像电话手表、智能小家电,正是这些各式各样的计算机,通过通信线路连接起来才构成了我们如今庞大复杂的网络。像这样

当你访问服务器并显示网页这一过程中,包含了浏览器和服务器之间的一系列交互。童鞋们上网搜索信息时,会通过搜索引擎查询,这时你发出的请求信息就会通过网线或者无线网络流向服务器。Web服务器根据请求向浏览器发送响应消息,也就是你要查找的信息。而想要实现这样的功能,我们就需要一个机制能确保可以在浏览器和Web服务器之间传递请求和响应。于是就诞生了各种协议,

尽管网络相当的复杂,但结合书中内容,我们可以尝试着了解一下网络连接的全貌。按照《网络是怎样连接的》这本书的讲解,总体上可以将网络连接信息交互的过程分为六个环节。

Web浏览器

从浏览器中输入网址(URL)开始,浏览器按照一定的规则去分析这个网址的含义,然后根据其含义生成请求消息,之后委托操作系统中的网络控制软件将消息发送给服务器

协议栈、网卡

协议栈也就是网络控制软件会将从浏览器接收到的消息打包,然后加上目的地址等控制信息。接下来,协议栈会将包交给网卡(负责以太网或无线网络通信的硬件),网卡会将包转换为电信号并通过网线发送到网络中去。

集线器、交换机、路由器

网卡发送的包会经过交换机等设备,到达用来接入互联网的路由器。路由器的后面就是互联网,网络运营商会负责将包送到目的地,就好像我们把信投到邮筒中之后,邮递员会负责把信送给收件人一样。

接入网、网络运营商

数据从用来接入互联网的路由器出发,进入了互联网的内部。互联网的入口线路称为接入网,一般来说我们可以用电话线、ISDN、ADSL(不对称数字用户线)、有线电视、光线、专线等多种通信线路来接入互联网这些通信线路统称为接入网。接入网连接到签约的网络运营商,并接入被称为接入点的设备。
接入点的实体是一台专为运营商设计的路由器,它就类似于离你家最近的邮局,接入点的后面就是互联网的核心部分(也就是很多运营商和大量路由器,这些路由器相互连接,组成一张巨大的网)。

防火墙,缓存服务器

通过互联网核心部分众多路由器接力之后,网络包最终到达了Web服务器所在的局域网中。接着,它会遇到防火墙,防火墙会对进入的包进行检查,检查完之后,网络包接下来可能还会遇到缓存服务器。如果要访问的网页数据正好在缓存服务器中能够找到,那么就可以不用劳烦Web服务器。直接从缓存服务器读出数据。

Web服务器

当网络包到达Web服务器后,数据会被解包并还原为原始的请求消息,然后交给Web服务器程序。和客户端一样,这个操作也是由操作系统中的协议栈来完成的。接下来Web服务器程序分析请求消息的含义,并按照其中的指示将数据装入响应消息中,然后发回给客户端。

到这,网络连接大致的一整套流程就差不多结束了,当然这个过程中还有非常多复杂、细微的知识点,就等着各位童鞋去阅读探索了。我自己也照着作者的结构梳理了以下网络传输的详细流程欢迎感兴趣的童鞋看一看——带你系统了解从浏览器中输入网址到显示出网页内容其间计算机网络经历了哪些过程

《网络是怎样连接的》了解网络连接的全貌相关推荐

  1. 网络摄像机ip修改工具_网络监控怎么连接网络

    网络摄像机是现在市场上比较受欢迎的一种安防产品.现在向大家介绍一下网络监控怎么连接网络 工具原料摄像头 方法/步骤分步阅读 1.连接 网络摄像机是用网络线连接到PC机或者路由器上. 2.安装网络视频软 ...

  2. 两台电脑通过usb共享网络_避开网络限制,通过蓝牙共享网络连接

    在部分环境中,如校园网等,网络管理员限制了只允许指定的设备访问网络,又或者在路由器后台设置上网认证页面,只允许登记了的计算机访问网络,而不允许手机访问公司的无线网络,甚至拉黑使用网络共享软件的用户.这 ...

  3. mitmproxy配置代理后 APP连接不到网络 XPosed安装

    本文仅供学习交流使用,如侵立删! mitmproxy配置代理后 APP连接不到网络 配置mitmproxy代理后,有些APP会出现连接不到网络的情况 原因:SSL证书问题 Android5.1系统版本 ...

  4. 网络情况不稳定 无法连接服务器,提示网络正常无法连接服务器

    提示网络正常无法连接服务器 内容精选 换一换 Agent无法正常启动,Linux系统提示"SMS.0201 Failed to start sms agent! Please check t ...

  5. 【干货】就这一篇,解决90% 新手连接虚拟机的网络问题

     本套文章是配合大数据平台搭建来编写的,所以下面我给出了大数据平台的4台机器规划.如果你只是单纯搭建学习环境,只需1台虚拟机即可. 1.安装3台新虚拟机,对于初学者不建议克隆虚拟机.克隆虚拟机到是方便 ...

  6. 【模型解读】“全连接”的卷积网络,有什么好?

    [模型解读]"全连接"的卷积网络,有什么好? 这是深度学习模型解读第8篇,本篇我们简单介绍Densenet. 作者&编辑 | 言有三 1 从skip connect到den ...

  7. VMware 当中出现:无法将 Ethernet0 连接到虚拟网络VMnet8的问题

    此文,是通过查阅各位大神的经验总结得出的小小的结论,只是为了记录自己在学习过程中,遇到的问题而写,假若能帮到大家,十分荣幸~ 当VMvare出现 :无法将 Ethernet0 连接到虚拟网络" ...

  8. Kubernetes用户指南(二)--部署组合型的应用、连接应用到网络中

    一.部署组合型的应用 1.使用配置文件启动replicas集合 k8s通过Replication Controller来创建和管理各个不同的重复容器集合(实际上是重复的pods). Replicati ...

  9. 计算机安全性无效无法连接到网络,图文研习windows10系统连接网络提示无法连接到此网络错误的方法?...

    图文研习windows10系统连接网络提示无法连接到此网络错误的方法? 近期有windows10系统网友到本站咨询说碰到这样一个问题,就是要连接网络的时候,提示无法连接到此网络错误,导致无法连接到in ...

  10. swift php 类型判断,iOS开发 - Swift实现检测网络连接状态及网络类型

    一.前言 在移动开发中,检测网络的连接状态尤其检测网络的类型尤为重要.本文将介绍在iOS开发中,如何使用Swift检测网络连接状态及网络类型(移动网络.Wifi). 二.如何实现 Reachabili ...

最新文章

  1. python储存数据的容器_Python基础四容器类数据
  2. 华为荣登2015年VoIP和IMS市场榜首
  3. Android ORM 框架之 greenDAO 使用心得
  4. mybatis 获得一个map的返回集合
  5. Boost:bimap便利性标题的测试程序
  6. C和C++栈stack
  7. 全国计算机等级考试题库二级C操作题100套(第31套)
  8. idea创建包怎么让包分层_IDEA让包分层显示的实现方式
  9. Flutter之SafeArea
  10. 获取图片url的后缀
  11. pcb板生产的工艺流程有哪些?
  12. 为什么计算机三分技术七分管理,如何理解“七分管理,三分技术,运作贯穿始终”?...
  13. 学习PHP遇到的乱码问题
  14. OpenStack Cinder特性之Volume-backed image介绍与验证
  15. 开发板的lcd 显示
  16. 预算一万以内的机器学习台式机/主机配置推荐
  17. 【模板】ACM Conference的Latex论文模板与说明
  18. Error creating bean with name xxxxxxx
  19. java数据结构通讯录管理系统_数据结构课程设计—通讯录管理系统
  20. 使用正则表达式 匹配 HTML 标签内的内容

热门文章

  1. 基于与非门和多路开关结构的一位全加器实现方法
  2. WINDOWS游戏编程学习笔记(一):Hello Game!
  3. 【OpenCV-Python】29.OpenCV的特征检测——特征匹配
  4. Kali-工具-crunch(字典生成)
  5. (搬运)手机卫星通信详细科普图漫版
  6. 各大组织大马默认密码
  7. java如何查内存泄露_如何排查Java内存泄露
  8. VC2008编译libthrift
  9. ctb伺服驱动器说明书_伺服驱动器 CTB BK Servo
  10. 软件的工程化管理(二)(转)