初学者如何理解网络协议(一)

初学者如何理解网络协议

FYL  2013-12-25

网络协议是什么?协议分层是怎么回事?什么是协议的实现?

回想当年初识网络协议,被一张网络层次模型图中的“物理层、数据链路层、网络层、传输层……”搞得云里雾里。花了很长时间才搞明白网络协议大概是怎么回事,甚至己经做出了几个网络程序,但仍感觉对网络协议的本质认识还不够清楚。

一直在思考这些问题,突然有一天,我发现我对网络协议的认识已经变得明朗。直到今天,我心血来潮写下这篇文章,希望对初学网络编程的朋友有所帮助。

 

一、网络协议通俗地讲就是网络上两台计算机之间通信所要遵守的共同标准。

这么讲还是不够通俗易懂,所以我们可以打个比方:

有两个人,一个中国人,一个法国人,如下:

                         (用英语交流)

中国人------------------------------------法国人

(讲中文)                                      (讲法语)

[会英语]                                             [会英语]

<英语协议>                                    <英语协议>

 

这两个人要想交流,必须讲一门双方都懂的语言。如果大家都不会讲对方的民族语言,那么可以选择双方都懂的第三方的语言来交流,比如“讲英语”。那么这时候“英语”实际上就成为一种“网络协议”。

把网络协议比做通用语言只是一种形象比喻,实际上协议本身比自然语言要简单的多,但是却比自然语言更严谨。协议规定了一种交流信息的格式或者说规范,比如:字符“LOVE”表示什么意思,第2个字节表示什么含义等……只要大家都按同样的规范来表达自己的意思,对方就能“听懂”你的意思。

同一种“规范”遵守的人多了,就成为一种事实上的“标准”。比如TCP/IP协议就成为了一种最流行的网络协议。

 

二、协议的实现

协议本身并不是一种软件,它只是一种通讯标准,但协议最终要由软件来实现。网络协议的实现就是在不同的软件和硬件环境下,执行可运行于该种环境的“协议”翻译程序。这些程序可能在WINDOWS下,也可能在UNIX下,也可能运行于一台个人电脑,也可能运行于一台服务器,也可能在你的手机中,这些程序可能都不一样,但却都会翻译同一种网络协议,比如(TCP/IP)协议。就如上图中的翻译都懂“英语”一样。

实现网络协议,听起来就象是给所有接入网络的设备配备了一个“通用语言翻译器”,这些翻译都懂通用语言“英语”,同时也懂得本国语言,这样就能实现不同国家不同环境的人接入同一个网络并进行交流了。

那么,可否选择“中文”作为网络协议呢?当然可以,但前提是大家都愿意遵守你的标准,都愿意说中文。实际上,“中文”也是一种网络协议,但它只是属于中国人的网络协议。

 

三、协议的分层

协议分层仅仅是为了技术上的便利所做的人为划分,并非是协议天生必备的。

仍以上图为例,我们不再考虑中国人或是法国人,只考虑协议本身。

我用英语说:“How are you. 不一定表示“你好!”,我们可以事先约定,这句话表示“再看一遍”的意思。这就象是所谓的江湖“黑话”,或叫“专业术语”。实际上,这时我们自己制定了一个新的通信标准,一个新的“高层协议”己经诞生了。这个协议在“英语”的基础上,再制定自己的通信标准,这种新的通信标准就是基于“英语”这种“底层协议”的“高层协议”,我们可以把这种协议取名为“讲课协议”。

以后你还可以在“讲课协议”之上建立“讲网络通信课程的协议”等更高级的协议。

 

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值