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

发布时间:2020-06-24 13:39:47 作者:霜柒染
来源:网络 阅读:432

(以下纯属虚构)


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

        前言:

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

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

        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也表示他需要的这一条数据的序号。

        

    

推荐阅读:
  1. 小白入门计算机网络
  2. 网络基础及网络参考模型

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

网络 分层结构

上一篇:方法在Java中的应用

下一篇:关于Python中时间模块的案例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》