沧小海读《图解TCP/IP》笔记——第一章 网络基础知识


总目录在这里~

https://blog.csdn.net/z123canghai/article/details/107855399


第一章 网络基础知识


子目录

1.1 计算机与网络

1.2 协议概述

1.3 传输方式概述


沧小海读《图解TCP/IP》笔记——第一章	网络基础知识


1.1 计算机与网络

这里涉及本书的第一章第1、2节。首先说一个基本概念什么是计算机?根据冯诺曼体系结构现在计算机的核心架构可以抽象为五个基础组件:运算器、控制器、存储器、输入设备和输出设备。所以我们可以认为,凡是具有以上五个组件设备的均可称之为计算机。

作者为我们总结了计算机与网络发展的7个阶段,在这跨度中,集成电路技术不断发展,各种软件、程序架构也日趋成熟、复杂,而人们对计算机的需求也随之不断提升,原本是独立的计算机个体,也逐渐与通信发生了关联,甚至在发展中计算机间的通讯已经发生了质的改变,发展出了信息通信。

第一阶段:批处理

在起初,计算机的主要用途是自动完成写复杂的计算,用户事先将数据和用户程序(也可以理解为计算方式)装入卡带或磁盘,计算机安装一定方式读取、执行,自动完成计算任务。现如今我们计算机也有很多批处理功能,例如点个按钮自动打开一个软件等,时代在发展,批处理系统已被放入博物馆,但留下的这个概念依旧沿用。

第二阶段:分时系统

分时系统的显著特点就是具有独占性,每一时间段只允许一人操作。于此通讯更重要的发展是出现了交互式操作,也就是计算机依据用户给出的指令完成处理并将结果返回给用户,先前的批处理是没有的,那时就如同去找老师改作业,而现在反馈更具有及时性。

沧小海读《图解TCP/IP》笔记——第一章	网络基础知识

 

         第三阶段:计算机之间的通讯

这时候,计算机实现了从单独模式到网络互连模式的发展,从此,计算机的发展又进入了一个崭新的历史阶段,而促成这一发展原因有为了实现信息共享,提升工作效率的需求,更重要的是这时候是七十年代,计算机相关硬件技术有了飞速发展,计算机日益向小型化、低价格、高集成方向发展。

沧小海读《图解TCP/IP》笔记——第一章	网络基础知识

 

         互连模式最初实现公司或部门内部各个计算机之间的互连,信息共享。在我更学习起初很是好奇怎么两台电脑互联就能实现数据交换呢?没上网呀?殊不知这是互联网发展的雏形,对上网的概念更是理解的一塌糊涂。

第四阶段:计算机网络的产生

         第三阶段是计算机间的通讯,第四阶段是发展。通信是数量有限的几台电脑,而网络,就是很多计算机之间交织在一起,注意计算机不仅是我们的终端,也就是笔记本台式机,还有服务器等。

         (这里插播一下,什么是服务器?服务器本身是和我们的笔记本差不多的,只不过性能远远要比我们个人电脑要强劲很多,它本身充当了一个库的角色。例如我们去卖化妆品的地方买洗漱用品,要做的就是走过去、与店员沟通、找目标商品、付款、回来这几个步骤。我们对服务器的应用也是类似,例如QQ音乐,打开软件,也就是通过指定程序访问服务器,获取我们所需歌曲)

 

沧小海读《图解TCP/IP》笔记——第一章	网络基础知识

         当然,这一步的发展也是各种外在因素的促进,以及本身的需求。

第五阶段:互联网的普及

         这时候的发展已经完全实现了由计算机通信到信息通信的转变。通信终端蓬勃发展,入网技术五花八门,这时候的通讯,已经不再是简单的计算机间的通讯,而是实现了全球互联,这一步的发展是始料未及的,也是现代社会发展的集大成者。

第六阶段:以互联网技术为中心的时代

         就是如今这个时代,

第七阶段:安全建立连接

         这时随着技术的不断发展而引出的新的矛盾,历史的车轮不会倒退,遇到新的难题只能去攻克,这也是现在在不断去完善的一件事。

         综上,是计算机和网络发展的七个阶段,这其中,有需求的推动、有其它技术发展的促进、也有人类相关知识的不断积淀。例如,构建如今互联网的基本通讯协议,TCP/IP就是这一发展成果。


1.2 协议概述

         这部分涉及到本书第一章的第3、4、5、6小节。主要内容是如下

  1. 如何去理解协议
  2. 协议是如何制定的
  3. OSI参考模型的内容

第一部分:如何去理解协议

也是恰巧,在未看本书前,也对“协议”这两个字进行了深入的理解。我就直接把我先前写的粘贴多来了

为什么要单纯的去理解“协议”这个很虚的词呢?因为在我看来,知道“为什么这么做”比“知道怎么做”更重要。为什么这么说呢?

        记得我在上学时候,我把好多协议列个清单有,看着清单踌躇满志,准备像打怪升级那样一个一个的攻克,这样就能成为技术牛人,走向人生巅峰了,然后我就去看技术文档,去搞懂这是个什么协议,怎么工作的,硬件怎么连的,程序怎么写的,时序是什么样子的,搞了不久,我投降了。就拿我们经常会接触到协议来举例,uart、I2C、SPI,SDRAM、DDR、serdes、TCP/IP协议栈,其中TCP/IP协议占还包括UDP、TCP、RAP等待,还分了数据链路层等等,太多了太复杂了。我就被一堆一堆专业名词搞晕了,被看不懂的时序整糊涂了,被别人的程序逻辑整残了。那为什么会这样呢?心急,太想多学点多会点,太想学习更多的协议来提升自己,因此,只想知道这个怎么实现那个怎么做,把位置占的太低而不去考虑人家为什么这么设计,也就是忽略了为什么这么做。

其实,协议是学不完的,哪怕今天你把所有的协议都学会了,明天还会有新的协议出现,但协议都是存在共性的,当我们知道为什么了这么做,并对此有深刻的体会,就会游刃有余各种协议,简单的协议,张口即来,复杂点的协议,看看就会,没有协议满足项目需求,那就造他个协议。

协议是什么呢?

协议是人们根据器件的物理特性和使用场景想出来的让器件沟通的方法。器件不会说话,聪明的人类就设定一种方法让他们去沟通,通过交流去完成一些事情。所以说协议是人想出来的,哪怕再晦涩难懂那也是人想出来的,协议是源自于人、源自于生活的,我们是主人,是这些协议的设计者,我们要去俯视它,驾驭它甚至是玩弄它,我们要将抽象的东西回归到生活,站在一个更高的位置去做宏观的理解,然后带着这种理解和好奇心去看某个协议,看某篇文档,我想就会更有效率和动力。比如说,令人比较抓狂的专业名词,可以说就是将生活中的现象用在专业领域的另一种表述方式。

什么是响应应答,就我说老师好,老师说同学们好,

什么是通讯超时,就是我叫声美女,美女没理我。

什么是三次握手,就是我看到小张了,说了句,“哟小张”,小张说嗯,我说,你真的是小张啊,小张来句,是的,我说,真的,小张说真的。这就是TCP/IP里面的三次握手也就是这个原理,握手好了就可以干其他事了,比如说,小张吃饭了没?这就是通讯内容

 可以说,一些专业名词不是可以通过生活中的现象去解释,而是它就是源自于我们的生活,那什么是协议呢?举几个例子,

 1•我走路上看到小张,我说句:“小张,吃饭了没?”,小张回复一句:“吃了”,这就是我和小张建立起了通讯机制,通讯链路是我们发声器官和空气,通讯协议就是汉语。

 2•我又走路上,看到一条小狗,蛮可爱的,我说句:“小狗,吃饭了没?”小狗回复一句:“汪汪”,吓得我拔腿就跑,就是我和小狗通讯建立失败,虽然通讯链路建立起来了,但通讯协议确实汉语和狗语,就好用uart协议去和TA24C02通讯,对不上啊。

3•我又走路上,看到小赵我说句:“小赵”小赵回复一句:“嗯嗯“我说句:“吃了没”小赵回复一句:“吃了“,这就好比IIC协议,有起始信号,有应答信号。

4•我又走路上,看到小李,我说句:“小李,吃饭了没?”小李回了句,刚从厕所出来”。这是啥,通讯建立了,但通讯内容校验有误,这就是为啥好多通讯要做CRC校验,循环校验。

5•我走路上,看到一群美女,这把我激动的,说了句:“嗨,美女们,吃饭了没”?结果美女抬头一看这家伙怎么这么丑,没人回应我,心里想着“傻X”、“丑人多作怪”,这叫什么?多播或广播,在工程上也是用的比较多的一种方式。

所以说,通讯协议源自于生活,我们要有将抽象的东西回归到生活的心态,这样理解起来又容易又开心。

回过头来我们再说,什么是接口协议,百度说接口协议就是需要进行信息交换的接口间需要遵从的通信方式和要求。通讯方式就是这信息是用什么传递的,拿什么运过去的,通信要求就是语法,是说用汉语还是英语还是什么的。也就是说我们要让两个器件进行沟通,首先要做什么呢?确定拿什么传,然后确定说什么话,最后可以说咱想说的了。当然,这就是简单的通讯建立,复杂的通讯原理一样,但建立过程很复杂。

第二部分:协议的制定

         这部分让我们晓得协议的制定过程是怎样的,具体内容就不阐述了,没什么用,但说下核心思想,秦始皇的“车同轨、书同文”进一步奠定了华夏大一统,使得各个地方的人民沟通无障碍,协议也是这样,需要多方的沟通达成协议,而这个沟通不仅是学者或者说研发人员,更是各个利益方达成的共识。

第三部分:OSI参考模型

         “IOS”是国际标准组织,全称是International Organization for Standards。他们制定了一个国际标准叫“OIS”开放式通讯系统互联参考模型,全称是“Open Systems InterConnecton”。

         同目前情况来看,人们确实参考了OIS模型,但也确实没有真正用到这个模型,所以对此部分内容仅是大概了解。首先由两句话挺好,

一是“上下层之间进行交互时所遵循的约定叫做“接口”。同一层之间的交互所遵循的约定叫做“协议””。这里所说的同一层是指两个设备的同一层。

二是 “分层的劣势,可能就在于过分额模块化,使处理变得更加沉重以及每个模块都不得不实现相似的处理逻辑等问题。”这对我们进行程序设计时很有警醒作用。

接下来就简单说下OSI参考模型

沧小海读《图解TCP/IP》笔记——第一章	网络基础知识

 

1、应用层

现如今手机电脑上会装很多软件,有时候我们会称之为“应用”。以我理解,所谓应用层,是指软件内部我们一些列操作,例如文中所举的发邮件这样例子。而应用层输出内容是由本软件开发人员协定好的数据格式进行封装的,其他应用无法解读其中内容,这也印证前文所说的“同一层之间的交互所遵循的约定叫做“协议””。

2、表示层

是对应用层进一步的封装和解析,将应用层特定的数据格式转换为网络通用的数据格式,或反之。

3、会话层

会话层是每个设备网络通信部分的管家,数据是否正确发出、以如何方式建立连接都是本层的工作内容,当然本层也会对表示层过来的数据进行一步封装。

4、传输层

该层或可理解为会话层的下属,主要负责数据传输的可靠性,如何负责,经过是有响应反馈机制。

5、网络层

发送端到接收端会经过很多链路。如何确定接收数据是给我的,就是在网络层进行的判断。

6、数据链路层

上文说了,收发之间可能要迈过大山跨过大海,这遥遥路途需要很多的中转站,也就是需要从一个节点到另一个节点的移动,而这种移动,就由链路层主要负责实现。

7、物理层

这个不用多解释,就是传输介质。


1.3 传输方式概述

         主要内容有:

  1. 电路交换与分组交换
  2. 地址的概念
  3. 网络的构成要素,包括网卡、网关、中继器、交换机

第一部分 电路交换和分组交换

         电路交换的显著特点就是独占性,就好像以前的打电话需要有电话线,一旦建立了,这条线路别人就用不了。

         电路交换的缺点就是资源利用率低,因为具有独占性,而在同一链路的其他设备是无法知晓该条线路何时空闲,何时忙碌,即便知道了,是否会与其他设备出现竞争关系?所以就要换一种方式,让每个设备终端能够具有非常高的独立性,我想什么时候发就什么时候发,谁都管不着。于是就有了分组交换的诞生~

         分组交换又称“存储—转发”机制,其实在起初也抓耳挠腮好一会,但看书中说“在分组交换中,由分组交换机(路由器)连接通信线路。”什么?路由器?!豁然开朗,分组交换机我不懂,路由器谁没见过,如下图。

沧小海读《图解TCP/IP》笔记——第一章	网络基础知识

 

         分组交换的实现,有两个问题需要解决,一是如果设备同时发起传输如何保证不丢包,二是是否会造成延迟太大?

对于第一个问题,解决方案就是在路由器里面有个存储空间,可以存储一定数量的数据包,如果存满了,那就是不让计算机成功发送出去,类似我们平时会出现看视频卡顿,消息发送转圈转老半天的情况。

对于第二个问题,很简单,就是分组,例如看视频,每一帧都有很大的数据量,我们完全可以将其分为一小包一小包的发,而连接到路由器上的设备,如果不做特殊处理,他们优先级是一样的,因此总可以插入一包,如果一直发送不出去,这种情况咱们平时也遇到过,尤其是在10M、20M带宽的年代。

在文章中,有“计算机可以一齐收发数据”的描述,这里的一齐不是说同时,只是为了表述解决了独占的问题。

第二部分 地址的概念

         地址具有唯一性和层次性两个特点,唯一性是保证能找到沟通对象,层次性是为了更快速的定位到某一个地址,所以IP有网络号和主机号

第三部分 网络的构成要素

         如下图是一个设计众多网络构成要素的简易图。

沧小海读《图解TCP/IP》笔记——第一章	网络基础知识

1、网卡

网卡全称为网络接口卡,说白了就是个硬件,拥有MAC地址,数据OSI参考模型的第二层。例如无线网卡,电脑网卡。

2、中继器

再生信号放大器,放大和转发的作用。

另外这里提到了中继器(Hub),其实就像现在用的扩展坞,每个端口都可以视为一个中继器。

3、交换机

交换机有2层交换机、3层交换机和4~7层交换机。

1)-->2层交换机

两层交换机也称之为网桥,寻址转发主要寻的是链路层地址,也就是MAC地址,经过交换机的数据会解析到链路层,进行判断转发。还有自学式网桥

沧小海读《图解TCP/IP》笔记——第一章	网络基础知识

     2)  3层交换机

解析到网络层,例如路由器

     3)  4~7层交换机

数据有个例子,就是手机发送邮件,电脑也能收到,就是通过4~7层交换机对数据的再处理打包实现的。

沧小海读《图解TCP/IP》笔记——第一章	网络基础知识

如下图是上述的全家福~

沧小海读《图解TCP/IP》笔记——第一章	网络基础知识

 

4、网关

不理解,后面再补吧