Java网络教程:Protocol Design-Java-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝29
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:237回复:0

  Java网络教程:Protocol Design

楼主#
更多 发布于:2016-05-22 15:05

假如规划一个客户端到效劳器的系统,那么一起也需求规划客户端和效劳器之间的通讯协议。当然,有时候协议现已为你决议好了,比如HTTP、XML_RPC(http

response 的 body 运用xml)、或许SOAP(也是http response 的 body

运用xml)。规划客户端到效劳端协议的时候,一旦协议决议敞开一瞬间,来看一些你有必要思考的地方:

1. 客户端到效劳端的往复通讯

2.区别恳求完毕和呼应完毕。

3.防火墙穿透

客户端-效劳端往复

当客户端和效劳端通讯,履行操作时,他们在交流信息。比如,客户端履行一个效劳恳求,效劳端测验完结这个恳求,发回呼应通知客户端成果。这种客户端和效劳端的信息交流就叫做往复。示意图如下:

当一个核算机(客户端或许效劳端)在网络中发送数据到另一个核算机时,从数据发送到另一端接纳数据完会花费必定时刻。这即是数据在网络间的传送的时刻花费。这个时刻叫做推迟。

协议中含有越多的往复,协议变得越慢,推迟特别高。HTTP协议只包括一个独自的呼应来履行效劳。换句话说即是一个独自的往复。另一方面,在一封邮件发送前,SMTP协议包括了几个客户端和效劳端的往复。

在协议中有多个往复的原因是:有很多的数据从客户端发送到效劳端。这种情况下你有2个挑选:

1.在分隔往复中发送头信息;

2.将音讯分成更小的数据块。

假如效劳端能完结头信息的一些初始验证

,那么分隔发送头信息是很正确的。假如头信息是空白的,发送很多数据自身即是浪费资源。

在传输很多数据时,假如网络衔接失利了,得从头开端从头发送数据。数据切割发送时,只需求在网络衔接失利处从头发送数据块。现已发送成功的数据块不需求从头发送。

区别恳求完毕和呼应完毕

假如协议容许在同一个衔接中发送多个恳求,需求一个让效劳端知道当时恳求何时完毕、下一个恳求何时开端。客户端也需求知道一个呼应何时完毕了,下一个呼应何时开端。

关于恳求有2个办法区别完毕:

1.在恳求的开端处发送恳求的字长

2.在恳求数据的最终发送一个完毕符号。

HTTP用第一个机制。在恳求头中

发送了“Content-Length”。恳求头会通知效劳端在头文件后有多少字节是归于恳求的。

这个模型的优势在于没有恳求完毕象征的开支。为了防止数据看上去像恳求完毕象征,也不需求对数据体进行编码。

第一个办法的下风:在数据传输前,发送者有必要知道多少字节数将被传输。假如数据时动态生成的,在发送前,首要你得缓存一切的数据,这么才干核算出数据的字节数。

运用恳求完毕象征时,不需求知道发送了多少字节数。只需求知道恳求完毕象征在数据的结尾。当然,有必要承认已发送的数据中不包括会致使恳求完毕象征过错的数据。能够这么做:

能够说恳求完毕象征是字节值255。当然数据也许包括值255。因而,对数据中包括值255的每一个字节增加一个额定的字节,还有值255。完毕恳求象征被从字节值255到255之后的值为0。如下编码:

255 in data –>255, 255

end-of-request –> 255, 0

这种255,0的序列永久不会出现在数据中,由于你把一切的值255变成了255,255。一起,255,255,0也不会被错以为255,0。255,255被了解成在一起的,0是独自的。

防火墙穿透

比起HTTP协议,大多数防火墙会阻拦一切的别的通讯。因而把协议放在HTTP的上层是个好办法,像XML-RPC,SOAP和REST也能够这么做。

协议置于HTTP的上层,在客户端和效劳端的HTTP恳求和呼应中能够来回发送数据。记住,HTTP恳求和呼应不止包括text或许HTML。也能够在里面发送二进制数据。

将恳求放置在HTTP协议上,仅有有点奇怪的是:HTTP恳求有必要包括一个“主机”头字段。假如你在HTTP协议上规划P2P协议,相同的人最也许不会运转多个“主机”。在这种情况下需求头字段是不必要的开支(可是个小开支)。

优质IT资源分享社区为你提供此文。

本站有大量优质Java教程视频,资料等资源,包含java基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看。

java教程视频

优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客