计算机协议是什么[转]

计算机协议是什么[转]

转载自《操作系统真相还原》

协议是一种大家共同遵守的规约,主要用来实现通信、共享、协作:起初是为避免大家各干各的,无法彼此调用对方成果的情况,从而给大家统一一种接口、一组数据调用或者分析的约定。

大家达成一致后,都遵守这个约定开发自己的产品,别人只要也按照这个约定就能够享用自己的成果,从而实现了彼此兼容。只要是技术人员都对TCP/IP 有所了解,这就是我们目前赖以生存的网络协议。根据OSI 七层模型,它规定数据的第一层,也就是最外层物理层,这一层包含的是电路相关的数据。

发送方和接收方都彼此认同最外层的就是电路传输用的数据。每一层中的前几个固定的字节必须是描述当前层的属性,根据此属性就能找到需要的数据。各层中的数据部分都是更上一层的数据,如第一层(物理层)中的数据部分是第二层(数据链路层)的属性+数据,第三层(网络层)的数据部分是第四层(传输层) TCP 或UDP 的属性+数据。各层都是如此,直到第七层(应用层)的数据部分才是真正应用软件所需要的数据。由此可见,对方一大串数据发过来后,经过层层剥离处理,到了最终的接收方(应用软件),只是一小点啦。

如下图所示,两边的应用程序互发数据时,其实发的就是最顶层的那一小点“数据”,每下一层,便加了各层的报文头,上层整个(包括自己的报文头和报文体)全部成了下一层的数据部分。

这样说似乎还是很抽象,具体地说,就是需要的数据是在偏移文件固定大小的字节处,这个固定字节是多少,就是协议中所规定的。不了解TCP/IP的可以参看各层报文格式,慢慢一起学习吧,共勉。


举个例子:

如果你通过网络进行通信,你也可以不要网络协议栈,同样也是可以收发包的。但是问题就来了,别人发给你的包都是按照网络协议栈要求来的,发给你后,你却没有网络协议栈来解析,所以你就不知道别人发给你的东西是什么。。。。你也可以把包按照你自己的封装来发包给别人,但是别人收到包以后,却又不知道你发的包到底是什么东东。。。。双方是可以通信,但通信双方却不知道各自说的是什么意思,这就很尴尬了,也是协议栈的用处所在。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 10,472评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 14,470评论 6 174
  • 1. 基础知识 1.1 3种常见的计算机体系结构划分 OSI分层(7层):物理层、数据链路层、网络层、传输层、会话...
    Mr希灵阅读 20,006评论 6 120
  • 惊秋气凉,小园遇霜风,花叶须黄。一池碧水添翠,季桂落香。小亭独坐漫目光。着眼处,道尽孤凉。残晖裂瓦,枝零断落,萍影...
    楠桢阅读 3,077评论 1 0
  • 娟是我同学中结婚最晚的一个,那时的 娟三十好几的人了,老大不小了一直没结婚,家里都急死了,可娟总觉得不合适。...
    张家二YY阅读 1,742评论 1 2