千家信息网

网络 协议与分层结构 的学习心得

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,(以下纯属虚构)一、协议栈的划分 与 人类处理沟通事件过程的 对比前言:讲道理的人都知道"工具是人类肢体的延伸",那么"计算机",这种二十一世纪人类最伟大的发明也是"工具",对比其他冷冰冰的"工具",
千家信息网最后更新 2024年11月23日网络 协议与分层结构 的学习心得

(以下纯属虚构)


一、协议栈的划分 与 人类处理沟通事件过程的 对比

前言:

讲道理的人都知道"工具是人类肢体的延伸",那么"计算机",这种二十一世纪人类最伟大的发明也是"工具",对比其他冷冰冰的"工具",他具有

"独特的思维能力!"--简单的逻辑处理能力。因此,正如大脑可以控制躯体一样,他也可以控制其他"工具"。

1.层次结构的划分规律

书上说:"层次结构具有:

(1)人们可以很容易的讨论和学习协议的规范细节。

(2)层间的标准接口方便了工程模块化。

(3)创建了一个更好的互连环境。

(4)降低了复杂度,使程序更容易修改,产品开发的速度更快。

(5)每层利用紧邻的下层服务,更容易记住各层的功能。!"

说的挺好,字都认识,但是很多人学完网络都不知道层次结构的意义!(我学了2遍 还稀里糊涂),就像我认识汉字几千个,也写不出像样的的诗词一般,没有掌握规律,研究内涵,粗浅就是粗浅,读再多也没用!


想想我们要拿一样东西时的操作:

(1)脑子下达指令

(2)臂膀抬起

(3)手臂延伸

(4)用手抓住

人类正因为肢体功能高度具体化,创造力才能如此惊人。那么网络分层也正是为了功能更完备,实现更简洁。

以网络实际中的4层结构为例(只考虑分层作用,不考虑具体细节):

以此看来,分层结构的原理就如我们身体做操作一般。但是,人 不简单,计算机网络也不简单,因为他们各自的功能有很多。在这里不同功能又 高度具体化了

(1)对于 手 有可能面对的东西不同,我们的实际操作不同(苹果用手抓,带刺的团用手抓吗?),同样的,网络接口层要面对 各种各样的局域网,他的具体操作也不同(取决于,网卡类型与驱动类型)

(2)对于 臂膀 他不仅可以控制 手臂的整体方向,他还是 发力 的关键点,能拿多重东西关键靠它。同样的,传输层也有很多功能,是以 "协议" 来区分的。

对于网际层,传输层,应用层,他们不同功能的实现,使用"协议"来控制,

毕竟计算机的"逻辑"体现在判断(false or true),因此同层次多功能 必需要以标示来划分(体现在每层报头的op字段)。

通过以上 我们可以粗滤的得出:

分层让 每一层作用更具体,分协议让功能更完善。(前辈们的天才与伟大)

二、三次握手与四次挥手的设计"猜想"

TCP/IP协议簇中TCP协议报头设计的尤其复杂,但是当你了解每部分的作用后,震惊的发现这简直是模拟了人类的沟通细节,当然他也是通过庞大的条件判断来实现的。

下面是TCP段的格式

16位端口号(TCP与UDP报头中):

假设 你对你妈说 :"我饿了!" 你妈立即得出:"1.你需要吃饭。2.隐含的知道你用嘴吃",因此 ,做出来的饭菜是可口 可下咽 的,而不是生的 饭菜给你。

这种约定是人们共识的,而计算机做不到这点。

同样的,计算机中有各种需要网络通信的软件,为了把特定软件的需求,可区分的传送给对方的具体软件,才引入了端口这一概念。端口号就表示某一确定进程;

1.三次握手与四次挥手与人沟通的类比

先来看看我们是怎么建立沟通的:

(1)小明向小芳发出了约会请求

(2)小芳收到并回复同意

(3)小明得到小芳的同意 后 说 "走",小芳就知道小明知道他同意了

至此,他们就建立了一次沟通;同样的在网络上两台主机(已接入Internet)

使用TCP协议建立连接也需要(发起连接--》对端回复--》对回复的回复)

这三步。但是具体实现却不想人类沟通那么简单,毕竟计算机只会做判断

以下是三次握手的模拟:

SNY=1 :表示这是一个连接请求 或者连接接受 的报文,他不同与人类的沟通,因为人可以根据会话的情景判断会话的内容,而计算机却要明确表示是或不是连接请求,因为在连接请求中的实际的数据内容字段是不做存储的(也就是无效的 含有实际内容也得在建立连接后重新发)。

J 与 k(位于32位序号):这个内容相当于谈话的具体内容,方便对方做出对应的回答,例如 你对别人说:"我们。。。。。。吧!",对方要怎么回答,虽然知道回答的结果依旧是"行或不行",但根本不知道内容,因此无法做出明确的回答。这个字段设计的意义也在于此。

ACK=1:当ACK=1时,32位确认序列才有效。好比 你与别人谈话,并没有询问意见,而对方却一直说:"是的!",这样的回复是没有实际意义的。ACK的效用相同,但是 我们知道"传输的可靠性是建立在合理的请求与应答的基础上!"因此在网络的传输过程中多采用 问答形式,所以ACK 大部分情况为1.

J+1与 K+1 (位于32位确认序号):对接受的数据做出确定回复,表明J 之前的信息收到。同时J+1也表示他需要的这一条数据的序号。



0