2017-07-18 158 views
2

我聽說,像facebook這樣的許多公司正在使用UDP從memcached中獲取數據。我有一個疑問,他們如何確保沒有丟包和接收數據包的順序是每個需求。我們知道tcp提供這樣的設施,但udp沒有。使用UDP從Memcached中獲取數據包時丟失數據

+0

您可以在UDP之上分層應用程序協議,爲應用程序提供可靠性。 –

+0

@Ron Maupin當我們使用UDP時,MEMCACHED協議是否爲我們完成了這項工作,或者我們需要編寫一個應用層來確保獲取的數據是一致的。 – shubham12511

回答

0

OSI模型有7層,它們是:

  1. 應用層
  2. 表示層
  3. 會話層
  4. 傳輸層
  5. 網絡層
  6. 數據鏈路層
  7. 物理層

把事情分層是很好的解決問題的方法,但這並不意味着你必須在網絡層完成所有的網絡操作。正如你所提到的,TCP在UDP不提供反饋給終端系統時,但UDP有它自己的優勢。 UDP的數據報首先比TCP更簡單。而且像Facebook這樣的大型系統也使用UDP,因爲對於這些類型的系統使用TCP並不會很聰明,因爲所有的數據發送者都必須跟蹤許多接收者的發送速率和重發率。所以如果他們使用TCP,他們的網絡層將承受非常大的壓力。

因此,他們在應用層進行流量控制以減少網絡流量。

+0

是的,UDP比TCP有很多優點,但我擔心的是,人們在使用UDP時如何管理一致性。 – shubham12511