网络到底是如何组成的?为什么我们现在可以方便的上网?

不管你是不是计算机专业相关的人,你心中可能一直都会有这样的疑问!

而今天我们就来解决这件事情,告诉你真实的答案!

网络的基本构成

首先我们来看这样一句话

把所有的电脑连在一起就组成了网络,但连接的形式有很多,比如...

是的,所谓网络,其实就是把电脑用网线连接起来,连的多了就组成了网络,一般我们按照连接方式可以分为以下几种方式

直连网络

地球上的每一台电脑要想上网就必须要加入网络,加入的目的就是为了能找到对方,那么用什么办法连接起来呢?最简单的办法就是使用网线直接连接。

两台电脑之间可以互相传输数据等操作,就好比我去邻居家串门,并不需要经过任何多余的步骤。

⚠️注意:在这里你可以把网线想象成通往你邻居家的路就可以了。

但是这种网络没有什么用,仅供你自己娱乐而已!

局域网

你可以把局域网想象成一个村子,这个村子里住着很多户人家,如果你想去到任何一家人,你就必须得知道他家的地址,而这么多人家的地址怎么可能记得住,所以需要村委会或者派出所进行管理,注意这个机构在网络中叫做路由器。

所以你家里里面要想多个设备上网,知道为啥一定要买路由器了吧!

路由器的连接方式

  1. 有线->网线->百兆/千兆/万兆
  2. 无线->无线电->wifi

广域网

广域网的概念其实很多,一个小区的网络可以叫做广域网,一个区或者县城的网络 也可以叫广域网,甚至一个市的网络都可以叫做广域网。

是不是派出所管理户籍,他们的都由上级部 门进行管理,这个层级跟我们的网络层级是一样的。

所以局域网无限的向上级机构发展,就组成了形形色色的广域网。

⚠️注意,每一层机构都至少有一个更大的路由器来支持!或者叫交换机 !

互联网

互联网并不是一个技术名词,而是一种概念,但目前通常就是指全球的网络。你可以这么认为,全球有很多台上网设备通过自己的局域网与外界进行相连,组成了现在的互联网。

移动/5G网络

现在是移动互联网时代,我们上网的设备由以前的电脑变成了手机、平板等。但无论如何发生变化,网络的组成形式没有改变,只是传输介质发生了变化。

以前的介质需要用网线连接,现在变成了无线连接而已!

这就好比,以前我去你家需要走路去,现在直接可以飞过去一个道理!

所以,5G是第五代移动通信技术的简称!

思考:网速为什么会变慢?

提示:世界上本没有路,走的人多了变有了路!后来人越来越多,路就不好走了!

了解了网络的基本构成,问题又来了,我们到底如何上网的呢?为什么可以打开一个网站就看到新闻,打开一个软件就可以看视频?

网络服务的构成

其实这个问题也是很简单的,现实中有的人家开了一家超市、一个馒头店、一个理发店,然后大家就可以排队去买东西。

其实网络中也是一样,你需要提供什么样的内容就开一个什么样的服务器就可以了。

所以服务器也是一台电脑,这就跟我们住宅家里可以开店,也可以去门面房开店一个道理。

服务器也可以是一台普通电脑,也可以是看起来很牛逼的那种(比如刀片式服务器)!

一台电脑/服务器基本组成

  • CPU:负责运算
  • 显卡:负责显示画面,负责图形渲染
  • 内存(闪存):负责缓存数据
  • 硬盘(闪存):存储数据
  • 主板:负责连接所有设备的载体
  • 电源:负责通电

网络软件的分类

电脑上的软件主要有两种,一种是单机软件(不需要联网就能用),另一种是网络软件(需要联网)。

而需要联网的软件就下面两种形式

B/S架构

Brower / Server(浏览器/服务器)

我们一开始接触最多的上网需求就是网站了吧,浏览器地址输入一个网址,按下回车就可以打开一个网页。

实际这个过程就是去按照网址的地址找到那台开着网站服务的服务器里面存储的内容罢了。

由于这种形式非常广泛,我们把这种类型的软件叫做B/S架构,即浏览器-服务器架构。

这个页面就是由前端开发工程师进行开发的,想要了解的小伙伴可以私信或者评论区留言,领取2021最新前端开发课程全集

提供这种服务的软件有Nginx、Apache、IIS等,都是通过命令安装在服务器上面。

C/S架构

普通的网页功能有限,而我们需要更多复杂的功能时,就需要安装一个客户端软件,比如QQ、360、游戏等软件。这些软件也是需要联网进行使用更多的功能,那么这种软件服务模式叫做C/S,即客户端-服务器软件。

上面的软件架构在手机里面也是一样的道理,比如你安装了一个抖音或者快手。

这个过程请看我的另一篇文章《App是如何安装到你的手机上的?》

其实大家发现网络软件不管是那种架构的他们都需要与服务器进行通信,才能工作!

通过以上内容,我相信你对上网这件事,大致就明白了!

但是,作为一个技术人,了解这些还是不够的,所以接下来的内容真的非常干!小板凳已经不够用了,买套房住里面慢慢看吧!

想要真正的成为网络专家,你还得熟悉下面的一些概念

IP地址是什么?

即使你是一个什么都不懂的电脑小白,那么你也应该听说过IP地址这个东西了!

问题来了,到底什么是IP地址呢?

我们看一下比较官方的解释

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。

其实这个地址跟我们自己家的地址概念,本质上并没有什么区别!

比如我家住在北京市东城区长安街1号,只要我告诉别人这个地址,别人就可以沿着长安街找到我家。

但是问题来了,电脑能识别这样的地址吗?

答案,肯定不能!

电脑是由一堆硬件组成的,他们不懂得中国人这套语言怎么办?他们的沟通方式我之前说过了原理,就是0和1组成的。所以电脑对数字特别敏感,我们就干脆用数字表示地址就可以了!

当然你说为啥不是手机号,那样不是更方便吗?这个理论上来讲是没问题的,只不过凡事都有约定俗成的规定,毕竟我们当年没有参与制定这套标准,所以只能按照别人的标准来。

那IP地址如何获取呢?

文章一开头我们讲了局域网和互联网的概念,实际IP地址是一套规范

他们基本就长下面这个样子!

10.0.0.1

192.168.0.1

114.114.114.114

别害怕,他们还是很有规律的

那就是由4位0-255的数字组成

注意这里4位很关键,所以这个叫做IPV4的标准

问题来了,我们一共有多少个IP地址?

IP地址的范围是0.0.0.0 - 255.255.255.255,理论上是255*255*255*255约42.28亿个

你会发现~

全球六七十亿人,数不清的电子设备,很显然不够用啊~

所以,多年以前就发布了IPV6标准了,只不过还没大规模普及,因为整个范围变了,不是那么快就能全部更新的。

但这也没关系,事实上并不需要每一个人都拥有IP地址的(有当然最好了)

聪明的互联网人儿把网络又分成了内部网络和外部网络,简称内网和外网

  1. 内网->家里、公里里、小区里的局域网,他们必须要通过路由器连接外网才能使用
  2. 外网->全球唯一的真实可用的IP地址,也就是真正的互联网的地址

其实你可以这么想就明白了

地球是人类的家园,中国是中国人的家园,山东是山东人的家园,我们家是我们家人的家园。

嗯,好像就是这么个意思~

其实关于IP地址还有更多的知识要去理解,比如DNS服务器、路由分配、子网掩码等等,这个我们需要有一节专门的课去讲解,欢迎持续关注~

端口号是什么?

一台电脑需要针对不同的软件进行网络服务,所以需要通过端口号区分!

有了IP地址,两台电脑之间就可以相互访问了

但是问题来了,每一台电脑上都有很多软件,比如QQ、微信、360、魔兽世界等等,你来访问的时候我怎么知道你要做什么呢?

于是,就必须要有端口号进行区分了

比如,我们通过浏览器上网的时候,你可能有时候会发现有些地址是这样的

http://www.baidu.com:80. 或者  223.224.234.235:80

这个玩意就是用来区分你要干什么的,其实很多国际通用的软件都有固定的端口号,比如

  1. 发邮件:25
  2. 传文件:21
  3. 网站访问:80和443
  4. 远程连接:3389
  5. 数据库:3306
  6. 等等

你自己开发一个软件需要网络通信的话,也可以向操作系统申请一个系统内没有使用过的端口号即可。

网络的OSI七层模型

OSI 是 Open System Interconnection 的缩写,译为“开放式系统互联”。

OSI 模型把网络通信的工作分为 7 层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

很多网络小白甚至是计算机专业的学生,在学习网络原理的时候,都会被这个OSI七层模型搞晕,原因是啥呢?

因为你没想明白一件事,电脑其实就是由一堆石头组成的!

如何让一颗石头有生命力,那就需要我们好好打造一番了!

下面这张图你可能在网上很多地方都见过

描述的非常棒,但是新手很难看懂,为啥呢?

因为这是整个网络架构的基石,他的每一层都涉及到计算机的各个方面,一个小白连编程的基础语法都没学过,怎么可能理解这些东西!

但是,别怕!

波哥最擅长的事情就是把难以理解的事情给你讲明白!

实际OSI七层模型过于复杂,某些人又开始了融合,提出了TCP/IP五层模型的概念!

当然,小白还是看不懂!

没事,我们先看下对应关系!

也有人提出了基于TCP/IP的四层模型,看你喜欢哪个喽~

以上都是概念,真正的流程应该是这样,两台电脑之间传输数据,实际经过了很多步骤!

我们可以看下图

每一层都有一个行业或者产业,他们都在上面认真的工作着,并改变着世界!

好了,小伙伴,以上就是关于编程小白需要了解的简单网络原理,实际上网络技术的发展需要我们了解的知识还有很多,关注我,以后慢慢聊~

网络协议

协议有很多,每一层都有不同的协议

网络七层模型中那么多的概念,实际对于我们普通程序员来讲,主要还是在应用层上进行工作

下面就是常见的应用层协议,web相关的开发者必须要对这些协议搞清楚!

那么问题来了,到底是什么是网络协议呢?

网络协议简单理解为人与人之间说话的语言,两台计算机想要听懂对方说的话,就必须要使用相同的协议。

你可以理解为:一家人不能说两家话!

协议就是规定了某种特殊的格式,两边都能认!

  1. HTTP应用层
  2. TCP属于传输层

HTTP是基于TCP的一协议

应用层协议HTTP/FTP等

这里我们拿Web相关开发者必用的HTTP协议来说!

简单说这个是专门为浏览器而生的协议

主要是针对浏览器的,所以需要看下浏览器里面的这个协议的体现

请求数据的时候是这样的

服务器返回数据是这样的

HTTP协议有个特点是单向的,客户端发送请求到服务端,服务端返回数据,然后结束了!

Socket套接字

好像有的同学说,浏览器也支持socket协议,其他软件也支持socket协议

这里我来更正一下

严格来讲socket不是协议,而是一种我们对常见协议的抽象!

socket实际上是双向的,双方对等的关系,角色可以互换!

TCP/IP和UDP协议

这玩意位于传输层的协议,他是应用层协议的基石,包括socket都要跑在这个协议之上

实际他只规定了数据发送的方式

简单来讲就是规定了IP地址、端口号以及数据发送的方式

TCP

TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由 IETF 的RFC 793定义。TCP 是面向连接的、可靠的流协议。流就是指不间断的数据结构,你可以把它想象成排水管中的水流。

适用于两台计算机之间专注的进行连接(数据通信)

三次握手解释他们之间如何传输数据

四次挥手解释他们之间如何断开链接

UDP

UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。

适用于1对1、1对多、多对多的复杂网络场景

总结

这篇文章里面主要是针对一些常见的计算机网络的概念给大家做了普及。

文章内容并没有很深入的探讨他们各自具体的规则以及一些所谓的指标,因为我觉得对于很多人来讲,先大致理解了他们的概念就已经足够了

而每个概念的背后的知识正是我们以后要慢慢研究的!

毕竟,这一篇文章的内容在大学里也是要一本书一个学期的知识呢~(虽然很多同学反馈,当时并没有搞明白

编程小白必懂的网络原理相关推荐

  1. 网络工程师必懂的网络基础

    网络工程师必懂的网络基础 目录 1 ip地址 1.1 ip 地址的作用?ip 地址分类? 1.2. 子网掩码的作用?默认 A B C 类子网掩码? 1.3. 网关的作用? 1.4. 公有地址与私有地址 ...

  2. 19个超赞的数据科学和机器学习工具,编程小白必看!(附资料)

    作者:AARSHAY JAIN 翻译:王婷 校对:丁楠雅 本文共4700字,建议阅读10+分钟. 本文为你介绍GUI驱动的数据科学工具,帮助新手构建高质量的机器学习模型. 引言 编程是数据科学的一个组 ...

  3. 网络工程师必懂的网络基础知识

    ✈前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:床长人工智能教程 文章目录 1 ip地址 1.1 ip 地址的作用?ip 地址分类? 1.2. 子网掩码的作用?默认 ...

  4. 职场术语揭秘:程序员小白必懂的互联网暗语!你知道几个?

    随着互联网的发展, 许多新的职场术语也随之产生.对于程序员小白来说, 必须了解这些术语以更好地适应职场.以下是一些常见的互联网职场术语及其含义: MVP: 最小可行性产品.这是一个新产品最小可行的版本 ...

  5. python到底可以做什么-编程小白必看!Python到底能做什么?

    Python编程语言的入门门槛低,它的可读性强,代码简单易懂,尽管同样是使用C语言编写,但它又摒弃了C语言中复杂的指针,极大程度的简化Python的语法.对于初学者而言,学习Python不仅仅入门容易 ...

  6. 【小白必懂】C语言最大、最小公约数题解

    注意:学生党如果存在付费问题可以加我好友,我可以开单篇短时间的免费哟~ 私聊我就好~ 前言 本专栏内容将会以轻松.简单的方式完成习题的解答,用情景再现的文章风格使读者能够在轻松愉悦的阅读氛围中完成知识 ...

  7. python编程是干嘛的-编程小白必看!Python到底能做什么?

    Python编程语言的入门门槛低,它的可读性强,代码简单易懂,尽管同样是使用C语言编写,但它又摒弃了C语言中复杂的指针,极大程度的简化Python的语法.对于初学者而言,学习Python不仅仅入门容易 ...

  8. 十年自学编程成才(编程小白必看)

    文章目录 1. 前言 2. 十年自学编程成才 2.1 为什么每个人都是匆匆忙忙的? 2.2 十年时间学习编程(刻意练习) 2.3 程序员成功之路 3. 扬帆起航 3.1 Python系列专栏 3.2 ...

  9. 互联网职场术语揭秘程序员小白必懂的,那些职场暗语你知道几个

    如何理解职场术语?你需要知道这些常见的词汇 在公司工作时,你可能会遇到一些常见的职场术语,例如:OM,PD,PM等等.这些术语是必须要知道的,因为它们可以帮助你更好地了解公司的运作和职位的职能描述. ...

最新文章

  1. 史上最大“云办公”实验开始,你参加了吗?
  2. linux大小写敏感和windows大小写不敏感(忽略大小写)导致的直接拷贝文件文件名冲突问题(需要打tar包再分享)
  3. 前端技巧:遍历数组都有哪些方式呢?
  4. 重磅!微软发布 vscode.dev,把 VSCode 带入浏览器!
  5. 什么?电路板上还要喷漆?
  6. tomcat升级步骤
  7. 用script实现Web Service的异步调用
  8. MULTISIM仿真
  9. 全国电子地图矢量数据行政区划POI矢量道路矢量河流水系测试样例数据下载
  10. esp32入门手册学习
  11. conflicting(conflicting)
  12. 新站如何用指数蛙快速提升百度权重的方法!
  13. Database_数据库基础笔记整理
  14. java集合之Map
  15. 大数据风控怎么做?新网银行的做法是......
  16. [莱芜]面对面:异地就医即时结算是咋实现的?
  17. iMeta | 国际标准刊号ISSN印刷版正式确认,双ISSN申请完成
  18. 电脑显示没有被指定在上运行_win10系统运行QQ时出现“.dll没有被指定在windows上运行,或者它包含错误”的解决教程...
  19. FineReport中如何制作树数据集来实现组织树报表
  20. Spacebuilder可以做什么?

热门文章

  1. 深度学习------pytorch,RNN:句子预测,股票预测
  2. 【C++】类和对象——拷贝构造函数
  3. Networkx_python 之Algorithms——Approximations and Heuristics
  4. 社区运营秘笈:病毒式营销!
  5. I-Deas TMG 培训资料 (10)
  6. win10 计划任务时提示所指定的账户名称无效解决方法
  7. linux克隆tf卡中的内容,TF/SD内存卡数据克隆怎么做教程
  8. 计算并输出sin(x)、cos(x)、|x|、ex、xy的值
  9. 苹果app不能上架怎么办?
  10. 微信小程序--页面劫持