《TCP/IP详解》读书笔记1 概述
今天总算是把《TCP/IP详解》chapter 1看完了,说实话纯英文版看的还是很费劲的,反正自己装过的13跪着也要装完。
《TCP/IP详解》在这一章里面完全就是讲了讲术语,然后好像就没说啥了吧。
协议
计算机网络的作用是为了使两台或多台计算机能够沟通,从我们人来讲如果两个人能够沟通的话,那这两个人就应该有共同的语言。语言的要素就有语法、语义、语序。
举一个例子,从我们的汉语来讲,我们讲话就要满足汉语的说话规范这叫语法。
我们每说一句话就要有这句话的意思不能让人家误解我们的意思,这叫语义。
我们说话要有一定的条理,要先有因再有果,这叫语序。
同样的,协议的三要素也是语法、语义、时序,换句话讲语言也是一种协议,不过这种协议是用在人身上的。
好吧先来理解下分层:记得web应用有个mvc模式,这个模式是把代码分成模型层、视图层、控制层,这三层分别负责自己的职责。这就可以看出分层的好处了:问题逐步细化,然后再把这些小的问题各个击破。同样的计算机网络分层也是出于这个原因。
计算机网络类比古代人类通信
个人觉得计算机网络的发展和人类交流的发展很相似,在早期的时候人类只需要和周围的人进行沟通,这种的沟通只需要喊话就行了,同样早期的计算机网络只需要把周围几台计算机连接起来进行通讯就行了,这样网络接口层(数据链路层)就出现了,人类有两个人单独谈话对应到计算机网络就是SLIP,人类有时候需要几个人集体讨论对应到计算机网络就是以太网,这个时候就能组成一个个单独的网络。
之后人们的交流距离就远了,比如中央为了加强对地方的控制就在全国划分等级区域然后修建各级驿站,然后这个对应到计算机网络就是网络层,网络层的作用是把各个单独的网络连接起来,并在各个单独的网络之间传递数据包。
在上面我们讨论的就是传递语音消息但是语音消息有缺点啊,汉人听不懂蒙人说的话蒙人听不懂汉人说的话,这怎么办呢?于是人们就发明出来了普通话,这一层对应到计算机网络就是运输层,运输层负责处理上层交给的数据。
最后古人这个通信系统要处理各种各样类型的消息有情书、家书等等等。然后把这些类型分门别类就是这个通信系统的各个应用,对应到计算机网络就是应用层。
实际分层
网络接口层:通信线路及其接口卡的物理细节和跑在这些硬件上的驱动程序,例如网线和网卡的硬件细节及其上面的驱动。
如果只是组建一个单独的网络的话那就只需要这个网络中每台主机的网络接口层使用相同的物理硬件和驱动程序,比如:
这个网络的主机就是网络接口层就是都使用的符合以太网规范的物理线路和网卡,每个网卡都有自己的硬件地址来作为网络中的标识
注意一点:跑在网络中的数据包可以没上层但是不能没下层
网络层:处理网络中网络之间数据包的移动的设备和程序。从image1可以看出仅仅通过网络接口层就可以组建一个网络出来,那何为还会产生计算机网络呢?计算机网络就是要把网络接口层符合不同规范的网络连接起来,比如:
image2.png
所以网络层面对的是多个网络之间数据相关的一些问题。
运输层:处理应用层交下来的数据。
应用层:处理特定应用程序的实现细节,例如浏览器,它就只负责解析HTML渲染页面,至于数据如何传输的它就只交给了运输层。