一些程式設計師直接處理底層的網路通訊資料有什麼好處?Watt資料探勘2018-05-08 14:56:55

瀉藥

首先我們要搞清楚一點,TCP/IP協議,即Transmission Control Protocol/Internet Protocol,是兩部分,TCP協議和IP協議,

TCP在網路OSI模型中的傳輸層,IP在網路層。傳輸層決定資料傳輸時的埠,網路層決定資料的路由

一些程式設計師直接處理底層的網路通訊資料有什麼好處?

TCP/IP解決了因特網在廣域上應用時,大規模網路通訊帶來的高併發與可靠性要並存的問題。

但是當我們的程式不需要高併發和可靠性並存的時候,TCPIP的一些特性就多餘並且影響了我們的傳輸效能,即

TCPIP不能滿足我們的應用場景

繞過TCPIP其實就是繞過了網路定址和資料埠的握手。

我給一個通俗但不一定貼切的例子,幫助你理解:

我是廣播站的廣播員。為了找我需要一條資訊(紙條),資訊中包含了網路層(IP)的資料(廣播站)和傳輸層(TCP)的資料(廣播員)。IP協議可以找到我的辦公室,TCP可以在辦公室裡從其他老師裡找到我,我拿到了紙條,只看裡面的話而不會去看其他東西(DATA)。

找我的人需要費很多工夫但是會確保我能收到紙條。 即TCP/IP的可靠性。

重點來了。

DATA中說要我用廣播通知(相當於某應用)一個走丟的孩子XXX來廣播室,然而我並不知道這個孩子在哪裡玩(沒有定址伺服器),也不知道哪個才是這個走丟的孩子XXX(沒有指定埠)。

這時我們再用TCP/IP就相當於一個地方一個地方去問:“你好呀”“你叫什麼名字呀”“啊沒事找錯了”“你媽叫你回家呢”這明顯不是一個好的解決方案,並不能很快的讓孩子知道他的家人在哪找他。

於是我就用廣播的大喇叭喊:“XXX請來廣播室!”,很多不是XXX的人能收到,而我也不知道XXX能不能收到,但是我作為一個廣播員的使命就這麼多了(完成個人任務模組的功能)。

我不知道人在哪我也沒工夫去找,我又很著急,就直接喊了,聽不清也顧不上了。即要求更低網路IO消耗,捨棄一部分可靠性。

網路直播和語音通話中常用的UDP就是捨棄握手的常見例子。

還是要看具體的業務需求去設計或應用恰當的網路協議。

有問題可以補充。