Visual_Basic 板


LINE

※ 引述《vn801368 (沒錢了...衰)》之銘言: : 可是TCP要一個一個建立連線 很費時 你可能被書上說的 "很費時" 嚇到了, 為什麼 TCP 會很費時, 是來自於 TCP 在建立連線時的 3-way-handshake 3-way-handshake的流程是像這樣子的.. A syn -> B A 想與 B連線, 送 syn 給B B syn -> A B 收到後回一個 syn 給 A A ack -> B A 收到 B的 syn後, 回 ack 給 B 簡設你的 A 與 B 間的 ping 值是 200ms 整個 "建立" 連線的時間大約大約大約在 300ms 只有在這個時間點會比 UDP 多花時間. 會很費時嗎? 其實也還好啦~ 像 MSN 這類連線軟體根本沒有這種建立連線速度的需求.. : 萬一要是其中一個一直連線失敗就會等很久 : 還有如果需要通知的人數很多的話 : 就會要建立很多連線 費時又麻煩 : UDP雖然比較快 可是怕會掉包沒收到 UDP 也是可以自己實作 可靠性 的機制, 如果一段時間內對方沒回應 "已收到", 那就要重傳. TCP與UDP還有另一個差別是, TCP才有連線的觀念(connection-oriented)而UDP沒有(connectionless) 所以你可以從一條固定的連線知道他是哪個user, 但在 UDP, 你每一次收到一個packet, 對你而言, 對方都一個client, 為了辨別client, client還需要多傳輸自己的ID, server再根據ID來回應.. 使用TCP或UDP對程式端的架構設計, 也會因此有很大的差別... : 然後client端固定30秒去更新一次 : 可是這樣程式負擔很大 : 而且也沒辦法達到及時的效果.... 這就有點像 polling 與 interrupt 間的決擇是一樣的.. 一種就是client固定週期向server要新資料, 一種就是有新資料時, server主動傳給 client.. 在像你這樣子的聊天程式, 個人會建議你用後者.. 因為像 MSN 這類的聊天程式, 據wikipedia上說有 290百萬人在使用.. 如果全球每 30 秒去向 server 問一次資料, 這和 DDoS 攻擊有什麼不一樣? 你再仔細想想, 其實這些 24 小時掛在網路上的宅宅, 可能一天只有很密集的一兩個小時有真的在聊天, 其他時段都是空閒的.. 如果你檢查週期太短=>server負擔很重, 週期太長=>訊息太晚收到,聊天不順暢 所以有新訊息時, 再由 server 主動傳給你, 應該會是較佳的設計.. 而且你的 client 也不用另外開一個 thread 來固定時間檢查+處理同步問題~ 想一想, 好像也比較好撰寫? 當然在像 MSN Messenger 這類有百萬user在線上的服務 會有更複雜的機制來簡輕 sever的負擔 .. server可以被設計成, 用來提供你某個user所在的ip 如果某個user換了ip(或上線)或下線, 則由server主動告知你, 你取得 對方的ip後, 再直接與他建立點對點的連線, 這樣也是另一種可行的設計方案.. --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.113.211
1F:推 shipship:你猜對了...MSN應該是用你這種方式 07/23 16:01







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP