2014-12-04 31 views
1

第一個小背景:我有一個聊天應用程序的想法。我不希望用戶需要輸入連接細節,所以我想我可以發送自定義的以太網數據包類型。該數據包被同伴接收;生成用戶應用程序內每個對等的數據庫。我不想過分複雜的生成我的原始數據包。發送成功接收數據包所需的最小數據量是多少?在一些最小的數據包可以用某些硬件正常傳輸而不是其他硬件的情況下,是否存在特殊情況?發送數據包所需的最小數據量是多少?

讓我澄清一下,並且是明確的:我問什麼是信息的最小量的數據包需要該包被傳輸,接收。可以在以太網數據包中找到的信息的例子是IP地址,硬件地址,生存時間等等。

+2

你爲什麼過度複雜你的生活?使用便攜式協議,例如TCP – 2014-12-04 00:19:51

+0

這對我來說更多的是編程挑戰。如果我想讓它變得簡單,我可以輕鬆使用現有的聊天程序或服務。 – motoku 2014-12-04 00:23:05

+1

這聽起來像你正在尋找多播IP – Flexo 2014-12-05 09:10:57

回答

1

發送 成功接收數據包所需的最小數據量是多少?

如果您不打算通過互聯網發送此信息,則根本不需要使用IP。 在您的局域網上,如果您喜歡,您可以通過自定義網絡層獲得。 也有現有的nonip協議(IPX)可能適合您的需求。 IPX的建立起來相對簡單,但如果他們使用它,他們會生氣。 (我也不知道Windows自從winxp以後是否支持IPX)。 這將是艱難的方式。

更簡單的方法是使用UDP/IP。 UDP被設計爲最小。 UDP的wiki頁面會告訴你UDP數據報的標題大小。 不要忘了添加IP標頭(wiki再次)和以太網幀(同上)。 最後你需要一個有效載荷。

有許多選擇。它很大程度上取決於您打算使用的網絡基礎設施。如果你的基礎設施是通過以太網的IP,那麼你將會被困在那裏!

做任何特殊情況存在,其中一個最小的包會妥善 發射與某些硬件,而不是其他的硬件? 如果你遵守標準:不。如果你標榜標準:很可能。

在你的後一個問題,你似乎在暗示你想使用「聰明」的技巧來減少數據包的大小(即錯過了報頭(S)的非關鍵部位),但我再說一遍:DO不要違反標準。 如果抓住你這樣做,你會失去你所有的朋友,人們會非常非常失望。

+0

謝謝你。 – motoku 2014-12-16 02:36:44

+0

多播IP(當然,UDP使用)也是由柔性好的建議。這樣可以節省基於對等協議的複製數據包。你所有的同伴都可以在同一個組播地址上,然後交換機將爲你完成所有的工作。 – 2014-12-16 03:01:15

相關問題