亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 自己想的UDP傳輸文件的協(xié)議原型,大家來踩踩 [打印本頁]

作者: ddvv    時間: 2010-01-13 17:39
標題: 自己想的UDP傳輸文件的協(xié)議原型,大家來踩踩
有點長,請大家耐心點,呵呵

最近想做廣域網傳輸文件的程序,使用純UDP,利用一個服務器來配合NAT穿透。大概的想法如下:

·模仿FTP,一個數據通道、一個控制通道(使用UDT,可保證數據一定到達);
<以下說的都是數據通道>

·基于數據塊的方式傳輸,無流的概念,每個塊都是離散的,不必保證按順序到達;

·將文件分塊,每個塊暫定1024字節(jié)(最后一個塊可能不到1024),每個塊有一個id,由0開始。雙方通過塊id計算偏移量;

·數據包的格式為:4字節(jié)塊id+1024字節(jié)數據+16字節(jié)md5(檢驗id和數據) = 1054字節(jié);

·發(fā)送端以數據包為單位發(fā)送,接收端收到后進行校驗,檢查數據是否損壞;

·接收端使用位來標記每個塊是否傳輸成功,4G大的文件所需的標記空間為:4*1024*1024/8/1024 = 512K;

·接收端定時將接收成功的塊id通過控制通道告訴發(fā)送端,發(fā)送端也使用位標記;

·單次發(fā)送過程中不進行數據的重傳,發(fā)送端將未傳送的塊全部發(fā)送出去;

·每次發(fā)送完畢后(即傳完所有未確認塊),發(fā)送端檢查是否還有未確認的塊,如果有則再進行一次傳輸,直到所有數據塊都確認為止;

以上就是主要思想,本人新手,請大家拍磚。

ps:目前還沒有進行擁塞控制的方法,大家順便也支支招。

[ 本帖最后由 ddvv 于 2010-1-13 22:43 編輯 ]
作者: dw4418    時間: 2010-01-13 22:29
沒人來嗎,自己頂一下

馬甲號,那個賬號總是密碼錯。。。忘記了

[ 本帖最后由 dw4418 于 2010-1-13 22:30 編輯 ]
作者: 群雄逐鹿中原    時間: 2010-01-13 22:33
那誰不是做過udt嗎?

http://zh.wikipedia.org/wiki/UDT
作者: ddvv    時間: 2010-01-13 22:40
UDT是基于流的,我只用它來進行控制信息的交互。傳輸文件數據部分,還是以塊的方式好
作者: wuexp    時間: 2010-01-13 22:44
感覺速度比tcp快不了多少,還不如用tcp那。。。
作者: ddvv    時間: 2010-01-13 23:00
要的就是那點效率的提升。

還有打洞的問題,TCP雖然也可以,但是比較麻煩貌似。UDP簡單
作者: redor    時間: 2010-01-14 13:51
原帖由 ddvv 于 2010-1-13 17:39 發(fā)表
有點長,請大家耐心點,呵呵

最近想做廣域網傳輸文件的程序,使用純UDP,利用一個服務器來配合NAT穿透。大概的想法如下:

·模仿FTP,一個數據通道、一個控制通道(使用UDT,可保證數據一定到達);


...



俺以前也這么設計過 不過沒有實踐過

不過我倒是覺得沒必要開兩個通道 另外塊的大小可以發(fā)送測試包確定, 需要握手協(xié)商需要發(fā)送的數據總大小 塊的數量 協(xié)商每個塊的大小, 需要考慮擁堵情況下丟包的可能。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2