網絡協議-UDP

網絡協議詳解-UDP- -

                                      

B、UDP協議
    UDP是User Datagram Protocol(用戶數據報協議)的英文縮寫。UDP只提供一種基本的、低延遲的被稱爲數據報的通訊。所謂數據報,就是一種自帶尋址信息,從發送端走到接收端的數據包。UDP協議經常用於路由表數據交換轉發和系統信息、網絡監控數據等的交換。UDP協沒有TCP那樣的三次握手並且基於數據報,因此UDP不基於連接,也沒有TCP那樣豐富的頭信息以實現諸多功能。

    UDP數據報的頭只包含了類似於TCP中包含的UDP源端口、UDP目的端口號、兩個字節的校驗和域、兩個字節的信息長度域(用來告訴接收端信息的大小,讓接收端判斷信息是否有效)。

    由於UDP協議是如此簡單,所以不要指望UDP連接會像TCP連接那樣可靠,它一點都不可靠,UDP只負責盡力的轉發數據包,但是卻不會把錯誤的數據報重新發送,它會丟棄掉所有被破壞或者損壞的數據報,並且繼續後面的傳送,至於被丟棄的部分,發送端不知道,也不會被接收端要求重新發送;除此之外,UDP不具備把亂序到達的數據報重新排列的功能(因爲沒有TCP頭中包含的TCP序列號),這樣一來,UDP便是完全不可靠的,因爲你根本就無法保證你收到的數據是完整的。但是,UDP協議的不可靠並不代表UDP是毫無用處的,恰恰相反,沒有了和TCP一樣的複雜頭信息,各種設備處理UDP數據報的時間將會大大縮短,效率比TCP要高得多,你可以想象,你看13頁書比看4頁書需要用的時間誰會更多。由於UDP處理的這種高效性,UDP往往被用於那些數據報不斷出現的應用,比如IP電話或者實時視頻會議,也被用於在路由器之間傳輸路由表更新信息、傳送網絡管理和監控數據等,DNS也是使用UDP協議進行域名轉換。


4、進程/應用層

    應用層賦予應用程序訪問其它層所提供服務的能力,並且規定應用程序使用何種協議進行數據交換。這一層包含了衆多的服務協議,是跟終端用戶最爲接近的一層。這一層中包含的服務協議有:HTTP(Hypertext Transfer Protocol 超文本傳輸協議)、FTP(File Transfer Protocol 文件傳輸協議)、SMTP(The Simple Mail Transfer Protocol 簡單郵件傳輸協議)、Telnet(一種終端仿真協議,常用於遠程登錄管理計算機)、DNS(Domain Name System 域名系統)、RIP(Routing Information Protocol 路由偵聽協議)、SNMP(Simple Network Management Protocol 簡單網絡管理協議)等等。這其中有一個重要的服務協議就是NetBIOS,下面簡單介紹。

    NetBIOS是一個名稱解析服務,準確的說,在微軟的Windows TCP/IP體系中,它處於應用層和傳輸層的中間。它的作用就是把一個名稱映射到對應的IP地址上。它廣泛存在於各種局域網應用中,雖然是一個過時的協議(因爲Windows 2000以後的版本使用域進行管理,Windows 2000域使用DNS進行名稱解析,這一點不同於Windows NT 4中的域概念),但是應用範圍還是很廣。

    一個NetBIOS名稱一共有16字節。NetBIOS名稱是一個唯一的名稱或者是一個組名稱,當一個NetBIOS進程和一個特定的計算機進行通訊的時候,就使用唯一的名稱,如果這個NetBIOS進程和多個計算機進行通訊,那麼就使用組名稱。NetBIOS名稱扮演會話層應用程序標識的角色,比如NetBIOS會話服務通過TCP 139端口進行。所有通過TCP/IP會話的NetBIOS都被定位到了TCP 139端口。下圖將會告訴你服務器、轉向器和信使服務關聯的NetBIOS名稱。

在圖中,你很容易看到NetBIOS使用的各類端口的信息。

    現在,在使用金山網鏢過程中所可能用到的TCP/IP協議知識基本上介紹到了。如前面所說,這裏沒有詳細討論TCP/IP體系結構的細節,IP的細節也沒有涉及,但是,通過對TCP/IP結構的簡單敘述,應該可以讓你有一個初步的認識,雖然可能並不完整。文中所用到的一些術語,能夠儘量解釋的我都解釋了,但是另一些術語不可能在這裏解釋明白,因爲需要牽涉到其他的學科內容,比如轉發器這些等等就需要牽涉到一些通信方面的知識,你大可以不必深究。

    本文參考了《TCP/IP Unleashed》,因爲前導工作室翻譯出來的這本書的翻譯效果很不好,出現了多處術語錯誤,所以參考原文對一些部分進行重新翻譯。如前言所說,本文只進行了提煉和翻譯工作,加入了我的一些理解和我知道的一些相關知識,有些部分是完整的英文翻譯有的是部分引用,讀者若需要知道詳細信息,還是應該查看英文原文,不要去看那些翻譯文檔,說實話有些翻譯過來的文檔根本不像一個學計算機的人翻譯的,我這次接觸的幾個中文文檔都有這個問題。翻譯過來的文章是翻譯者本人的理解,譯者可能明白了,但是看譯稿的人可能就會犯迷糊。我的翻譯儘量避免這種情況,但是因爲英語層次所限也會有些翻譯不準確的時候,因此,我強烈推薦本文的讀者們找到這些英文原版書籍進行閱讀。

本文參考書目:
(1)Windows 2000 Server Resource Kit Online Books in MSDN Library January 2002;
(2)TCP/IP Unleashed,Tim Parker、Mark Sportack著;
(3)TCP/IP Illustrated Volume 1-Protocol, W. Richard. Stevens著;
(4)TCP/IP技術大全,即第二條所列書籍的中文版本,前導工作室翻譯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章