我正在编写一个使用TCP在网络上传输几千兆字节数据的协议,以此来学习一些有关协议编程的知识。但我不确定如何设计这种传输协议,才能以最快、最高效的方式传输数据。
我在Windows平台上使用Qt。
目前,我的应用程序协议(传输数据的部分)的设计如下:
1.首先发送登录信息。 2.写入第一个4KB数据包(进入套接字),等待服务器确认已经收到数据包。 3.当服务器确认接收到数据包(通过写入int“1”)时,再写入下一个4KB数据包。 4.当所有数据都已传输完毕,将传输的数据的md5sum发送给服务器。 5.如果服务器再次确认具备int 8,则完成数据传输。
目前,在本地127.0.0.1上进行传输时,我无法获得超过166KB / sec的速度。我一直在尝试阅读其他协议设计,但几乎没有关于可以为其应用程序编写的数据传输协议的文档资料。
我发布的协议设计是否有问题或存在严重问题?该协议是否应等待服务器确认每个数据包或应连续写入?
我在Windows平台上使用Qt。
目前,我的应用程序协议(传输数据的部分)的设计如下:
1.首先发送登录信息。 2.写入第一个4KB数据包(进入套接字),等待服务器确认已经收到数据包。 3.当服务器确认接收到数据包(通过写入int“1”)时,再写入下一个4KB数据包。 4.当所有数据都已传输完毕,将传输的数据的md5sum发送给服务器。 5.如果服务器再次确认具备int 8,则完成数据传输。
目前,在本地127.0.0.1上进行传输时,我无法获得超过166KB / sec的速度。我一直在尝试阅读其他协议设计,但几乎没有关于可以为其应用程序编写的数据传输协议的文档资料。
我发布的协议设计是否有问题或存在严重问题?该协议是否应等待服务器确认每个数据包或应连续写入?