中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

自编什么是网络协议?

 辽宁辽环认证中心

下载贤集网APP入驻自媒体

自编什么是网络协议?

关于需求从事网络编程的程序员来说,网络协议是一个需求深入了解的概念。那么什么是网络协议呢?
  网络协议是指关于网络中传输的数据格式的规则。大众汽车改 装 关于网络编程初学者来说,没有必要深化理解TCP/IP协议簇,所以关于初学者来说去读大部头的《TCP/IP协议》也不是一件很适宜的事情,由于深化理解TCP/IP协议是网络编程进步阶段,也是深化网络编程底层时才需求做的事情。
  关于普通的网络编程来说,更多的是关怀网络上传输的逻辑数据内容,也就是更多的是应用层上的网络协议,所以后续的内容均以实践应用的数据为根底来引见网络协议的概念。
  那么什么是网络协议呢,下面看一个简单的例子排污泵。春节晚会上“小沈阳”和赵本山协作的小品《不差钱》中,小沈阳和赵本山之间就设计了一个协议,协议的内容为:
  假如点的菜价钱比拟贵是,就说没有。
  依照该协议的规则,就有了下面的对话:
  赵本山:4斤的龙虾
  小沈阳:(经过判别,得出价钱比拟高),没有
  赵本山:鲍鱼
  小沈阳:(经过判别,得出价钱比拟高),没有
  这就是一种双方达成的一种协议商定,其实这种商定的本质和网络协议的本质是一样的。网络协议的本质也是客户端程序和效劳器端程序关于数据的一种商定,只是由于以计算机为根底,所以更多的是运用数字来代表内容,这样就显得比拟笼统一些。
  下面再举一个简单的例子,上海美女按摩引见一些根底的网络协议设计的学问。例如需求设计一个简单的网络程序:网络计算器。也就是在客户端输入需求计算的数字和运算符,在效劳器端完成计算,并将计算的结果反应给客户端。在这个例子中,就需求商定两个数据格式:客户端发送给效劳器端的数据格式,以及效劳器端反应给客户端的数据格式。
  可能你觉得这个艾力达例子,例如客户端输入的数字依次是12和432,输入的运算符是加号,可能最容易想到的数据格式是构成字符串“12+432”,这样格式确实比拟容易阅读,但是效劳器端在停止计算时,逻辑就比拟费事,由于需求首先拆分该字符串,然后才干停止计算,所以可用的数据格式就有了一下几种:
  “12,432,+” 格式为:第一个数字,第二个数字,运算符
  “12,+,432” 格式为:第一个数字,运算符,第二个数字
  其实以上两种数据格式很接近,比拟容易阅读,在效劳器端收到该数据格式以后,运用“,”为分隔符分割字符串即可。
  假定关于运算符再停止一次商定,例如商定数字0代表+,1代表减,2代表乘,3代表除,整体魄式遵照以上第一种格式,则上面的数字消费的协议数据为:
  “12,432,0”
  这就是一种根本的发送的协议商定了。
  另外一个需求设计的协议格式就是效劳器端反应的数据格式,其实效劳器端主要反应计算结果,但是在实践承受数据时,有可能存在格式错误的状况,这样就需求简单的设计一下效劳器端反应的数据格式了。例如规则,假如发送的数据格式正确,则反应结果,否则反应字符串“错误”。这样就有了以下的数据格式:
  客户端:“1,111,1” 效劳器端:”-110”
  客户端:“123,23,0” 效劳器端:“146”
  客户端:“1,2,5” 效劳器端:“错误”
  这样就设计出了一种最最根本的网络协议格式,从该示例中能够看出,网络协议就是一种格式上的商定,能够依据逻辑的需求商定出各种数据格式,在停止设计时普通遵照“简单、通用、容易解析”的准绳停止。
  而关于复杂的网络程序来说,需求传输的数据品种和数据量都比拟大,这样只需求依次设计出每种状况下的数据格式即可,例如QQ程序,在该程序中需求停止传输的网络数据品种很多,那么在设计时就能够遵照:登录格式、注册格式、发送音讯格式等等,逐个停止设计即可。所以关于复杂的网络程序来说,只是增加了更多的命令格式,在实践设计时的工作量增加不是太大。
  不论怎样说,在网络编程中,关于同一个网络程序来说,普通都会触及到两个网络协议格式:客户端发送数据格式和效劳器端反应数据格式,在实践设计时,需求逐个对应。这就是最根本的网络协议的学问。
  网络协议设计完成以后,在停止网络编程时,轮毂修复就需求依据设计好的协议格式,在程序中停止对应的编码了,客户端程序和效劳器端程序需求停止协议处置的代码分别如下。
  客户端程序需求完成的处置为:
  1、 客户端发送协议格式的生成
  2、 效劳器端反应数据格式的解析
  效劳器端程序需求完成的处置为:
  1、 效劳器端反应协议格式的生成
  2、 客户端发送协议格式的解析
  这里的生成是指将计算好的数据,转换成规则的数据格式,这里的解析指,从反应的数据格式中拆分出需求的数据。在停止对应的代码编写时,严厉遵照协议商定即可。
  所以,关于程序员来说,在停止网络程序编写时,需求首先依据逻辑的需求设计网络协议格式,然后遵照协议格式商定停止协议生成和解析代码的编写,最后运用网络编程技术完成整个网络编程的功用。
  由于各种网络程序运用不同的协议格式,所以不同网络程序的客户端之间无法通用。
  而关于常见协议的格式,例如HTTP(Hyper Text Transfer Protocol,超文本传输协议)、FTP(File Transfer Protocol,文件传输协议),SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)等等,都有通用的规则,详细能够查阅相关的RFC文档。
  最后,关于一种网络程序来说,网络协议格式是该程序最中心的技术机密,由于一旦协议格式走漏,则任何一个人都能够依据该格式停止客户端的编写,这样将影响效劳器端的完成,也容易呈现一些其它的影响  
最新回复

还没有人回复哦,抢沙发吧~

发布回复

为您推荐

热门交流