03.01 既然IP協議也能夠進行數據的無連接不可靠傳輸服務,為什麼還需要UDP協議?

Pv3BJ


“我是喲喲吼說科技,專注於數據網絡的回答,歡迎大家與我交流數據網絡的問題”

如題,IP協議能進行數據的無連接不可靠的傳輸服務,但IP Header協議字段中只有一個字節,最多隻能提供255種協議的標識,而這些大多又被特定的協議所佔用,留給終端用戶的空間非常小;而UDP可以提供更大的端口空間來滿足此需求,UDP的端口號只佔用兩個字節,除去系統保留的1-1023端口外,為用戶預留的端口有60000多個,因此能完全滿足需求。

UDP報文的格式如下:

通過UDP報文的結構可以看出,UDP是通過16位源端口號和目標端口號來處理應用程序之間的區分的,16位UDP校驗和可以完成傳輸層的校驗,對出錯的數據包直接就行丟棄處理。

那麼IP協議的校驗能完成此功能麼?

不能。IP協議只校驗IP報頭,不參與數據的校驗,整個數據包的校驗是在傳輸層來完成的。

由於網絡層和傳輸層在操作系統內實現層次不同,目前操作系統也不允許用戶直接去操作IP協議,而是通過完成傳輸層協議的封裝後,進而由操作系統進行網絡層的封裝、校驗和計算過程。

因此,IP協議是無法代替UDP協議的。

歡迎大家多多關注我,在下方評論區說出自己的見解。


喲喲吼說科技


IP協議本身是一個統稱

IP協議中的第三層協議是路由

路由就是指怎麼把數據包能運送到目的地

舉例說明,你想到北京天安門怎麼樣?能夠到達這個過程就是路由

協議中的第四層協議是傳輸方式

傳輸方式就是指怎麼樣把數據包傳送到對方,是可靠的傳輸還是不可靠的傳輸

我們把tcp叫做可靠的連接

舉例說明,你給你媽打電話說:媽,我中彩票500萬了,你媽給你個回覆:孩子洗洗睡吧!

這個過程就是可靠的傳輸,就是指你給對方傳輸了數據對方會給你個回應(tcp有確認機制)

我們把udp叫做不可靠的連接

舉例說明,你給你爸打電話說:爸,我中彩票500萬了,結果你爸直接電話就掛了。

這個過程就是不可靠傳輸,就是指你發送的數據對方到底有沒有收到你是不知道得(utp沒有確認機制)


網絡工程師成長日記


最近一直在學習TCP/IP協議的相關資料,正好可以針對此問題,說一下個人的一些想法。

首先,說明一下UDP協議和IP協議的關係。

如上圖所示,UDP位於IP協議的上層,實現了對IP協議的封裝。

第二,看一下兩個協議數據格式的區別。

圖1

圖2

圖3

通過比對圖1和圖2,可以看到UDP相對IP協議顯著多了端口號字段。通過圖3可以看到IP協議將UDP協議包在了裡面。

第三、端口的作用。把主機比作一個大樓的話,那麼端口號就代表這個大樓裡面的房間。端口最主要的作用的是與應用綁定在了一起,不同的應用使用不同的端口號。IP協議是將數據從一個大樓發送到了另一個大樓。而有了端口號,可以知道數據是從這個大樓的A房間發送到了另一個大樓的A房間。這個是IP協議無法做到的。實際上我們知道每個大樓裡面是有多個房間的,就好比一個主機上是有多個應用。例如SNMP\\DNS等。

綜合來說,IP協議還是無法代替UDP協議的。

本人具有多年的java開發經驗,熟悉多種框架,熟悉網絡編程,熟悉java安全編程,熟悉大數據,熟悉多種安全協議,有興趣的同學可以互相關注,互相學習!!!


代碼飼養員天齊


簡明扼要的回答:

IP協議和UDP協議是各司其職:

建議樓主多看看TCP/IP協議簇的書籍。


  • IP協議幹不了UDP協議的活

  • UDP協議也幹不了IP協議的活

  • 關係

IP協議是UDP協議的載體,也就是說IP協議承載著UDP協議,假如IP協議不存在,那UDP協議也完全喪失了能力。

但能力上它是!=數學上的包含關係:所以,IP協議不能幹UDP協議的活。

  • 正確的關係圖,即使先後承載的關係



  • IP協議


IP協議能力

IP protocol 的能力是標識網絡上的一個主機。你可以理解為IP protocol= IP address

即它只提供地址的能力。

對於原始IP數據包,每個IP地址只能有一個專用偵聽套接字。 IP地址標識網絡層的主機,使流量能夠到達某個物理設備,即“主機”。它的能力僅限於此。

但是隻要你想在同一個主機上有不同的“目的地”(即應用程序),你就需要像TCP和UDP 這些protocol。


  • UDP protocol

UDP協議能力

UDP協議具有的端口概念,來解決同一個主機上有不同的“目的地”(即應用程序)。

UDP是支持端口的最小協議。

誕生的意義

一旦目標機器收到這樣一個raw IP數據包,它應該將它傳遞給哪個應用程序? 我們需要一種識別特定消息的目標應用程序即 UDP和TCP這樣的,通過端口號來完成目標地址的分發。

一旦數據包使用其IP protocol 到達主機,數據包需要被分配給該機器上的其中一個應用程序。 要確定哪個應用程序應該獲取數據包,它需要基於端口的解複用邏輯。 UDP具有端口信息,IP用它將數據包傳送到適當的應用程序。

舉例,快遞

設想一下,你在某裡,或者某東買了一個東西:

IP地址=IP protocol 是建築物的街道地址。

UDP protocol = 你所住的房間號即對應udp+端口號。


歡迎關注,一起進步


分享到:


相關文章: