+ -
当前位置:首页 → 问答吧 → 做网络服务器都要自己设计协议吗?

做网络服务器都要自己设计协议吗?

时间:2010-08-27

来源:互联网

都是TCP,UDP么?如果是,那么TCP和UDP的data字段都是啥内容?如果不是,要设计什么样的协议呢?

作者: ecjtubaowp   发布时间: 2010-08-27

根据应用决定,没有定式

作者: hellioncu   发布时间: 2010-08-27

你问的有问题,应该问有几个是自己做协议的?

作者: chinesedragon   发布时间: 2010-08-27

自定义协议

作者: sun2grit   发布时间: 2010-08-27

包长度
包类型
包内容


大部分都是这么设计的

作者: egmkang   发布时间: 2010-08-27

本帖最后由 zhangsuozhu 于 2010-08-27 23:00 编辑

大部分建立在标准的TCP/UDP上层的.也有更上层的.如SIP或HTTP上层的.
比如QQ协议是在UDP或TCP协议上的更高一层协议. 第一个字节是0x2,第二三个字节是版本,四五个是命令.六七八九是QQ号.....最后一个字节是0x3.
而WEBQQ是建立在HTTP上层的协议.直接用明文的ASCII码传送信息了.

越上层.越好设计实现.因为下层已经把一些某本的东西都实现了,比如包的重传,乱序.重组等等.但网络传输效率最低.

现在的设备基本是基于IP的.所以想设计IP层以下的协议几乎不可能. 因为就算你设计了一个新协议取代IP协议,但路由器,交换机都不能实别,基本上没什么用了.除非是专有网络.

所以,可以从IP层以上重新实现一全新协议.但那就要考虑的东西多了.比哪IP包重传,IP包乱序,IP包重组.连接的握手,连接的关闭,数据包的接收确认 等等.相当于实现一套TCP协议.没有多大意义.

所以大部分应用都是建立在TCP上的.因为UDP不能连接确认.要自已实现.比哪你发了一个UDP包.如果对方不回确认信息,你是不知道有没有发送成功与否的!所以要建立连接确认机制.而TCP已经建立好了.


有时还要考虑加密机制,仿止第三方窃听重要数据。就要考虑TCP的上一层。SSL层上传数据了。所以具体在哪个层次,跟据具体需要来设定。

作者: zhangsuozhu   发布时间: 2010-08-27

http sip xml

作者: efolzl   发布时间: 2010-08-27