• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            aurain
            技術(shù)文摘
            posts - 137,  comments - 268,  trackbacks - 0

            TCP/IP詳解讀書筆記(第11 UDP:用戶數(shù)據(jù)報協(xié)議)

            UDP是一個簡單的面向數(shù)據(jù)報的運輸層協(xié)議:進程的每個輸出操作都正好產(chǎn)生一個UDP數(shù)據(jù)報,并組裝成一份待發(fā)送的IP數(shù)據(jù)報。UDP不提供可靠性:它把應(yīng)用程序傳給IP層的數(shù)據(jù)發(fā)送出去,但是并不保證它們能到達目的地。UDP數(shù)據(jù)報封裝格式如圖1所示。

            1UDP數(shù)據(jù)報封裝格式

             

            UDP首部

            UDP首部的各字段如圖2所示。

            2UDP首部格式

            端口號表示發(fā)送進程和接收進程。UDP長度字段指的是UDP首部和UDP數(shù)據(jù)的字節(jié)長度。該字段的最小值為8字節(jié)(發(fā)送一份0字節(jié)的UDP數(shù)據(jù)報是OK)。這個UDP長度是有冗余的。IP數(shù)據(jù)報長度指的是數(shù)據(jù)報全長,因此UDP數(shù)據(jù)報長度是全長減去IP首部的長度。

             

            UDP檢驗和

            UDP檢驗和覆蓋UDP首部和UDP數(shù)據(jù)。回想IP首部的檢驗和,它只覆蓋IP的首部,并不覆蓋IP數(shù)據(jù)報中的任何數(shù)據(jù)。UDP的檢驗和是可選的,它是一個端到端的檢驗和。它由發(fā)送端計算,然后由接收端驗證。其目的是為了發(fā)現(xiàn)UDP首部和數(shù)據(jù)在發(fā)送端到接收端之間發(fā)生的任何改動。

             

            IP分片

            物理網(wǎng)絡(luò)層一般要限制每次發(fā)送數(shù)據(jù)幀的最大長度。任何時候IP層接收到一份要發(fā)送的IP數(shù)據(jù)報時,它要判斷向本地哪個接口發(fā)送數(shù)據(jù)(選路),并查詢該接口獲得其MTUIPMTU與數(shù)據(jù)報長度進行比較,如果需要則進行分片。分片可以發(fā)生在原始發(fā)送端主機上,也可以發(fā)生在中間路由器上。

            把一份IP數(shù)據(jù)報分片以后,只有到達目的地才進行重新組裝(這里的重新組裝與其他網(wǎng)絡(luò)協(xié)議不同,它們要求在下一站就進行進行重新組裝,而不是在最終的目的地)。重新組裝由目的端的IP層來完成,其目的是使分片和重新組裝過程對運輸層( TCPUDP)是透明的,除了某些可能的越級操作外。已經(jīng)分片過的數(shù)據(jù)報有可能會再次進行分片(可能不止一次)。IP首部中包含的數(shù)據(jù)為分片和重新組裝提供了足夠的信息。

            使用UDP很容易導(dǎo)致IP分片,圖3為使用UDP時的IP分片示意圖。

            3UDP分片示意圖

             

            最大UDP數(shù)據(jù)報長度

            理論上,IP數(shù)據(jù)報的最大長度是65535字節(jié),這是由IP首部16比特總長度字段所限制的。去除20字節(jié)的IP首部和8個字節(jié)的UDP首部,UDP數(shù)據(jù)報中用戶數(shù)據(jù)的最長長度為65507字節(jié)。但是,大多數(shù)實現(xiàn)所提供的長度比這個最大值小。

            第一,應(yīng)用程序可能會受到其程序接口的限制。socket API提供了一個可供應(yīng)用程序調(diào)用的函數(shù),以設(shè)置接收和發(fā)送緩存的長度。對于UDP socket,這個長度與應(yīng)用程序可以讀寫的最大UDP數(shù)據(jù)報的長度直接相關(guān)。現(xiàn)在的大部分系統(tǒng)都默認提供了可讀寫大于8192字節(jié)的UDP數(shù)據(jù)報(使用這個默認值是因為8192NFS讀寫用戶數(shù)據(jù)數(shù)的默認值)。

            第二個限制來自于TCP/IP的內(nèi)核實現(xiàn)。可能存在一些實現(xiàn)特性(或差錯),使IP數(shù)據(jù)報長度小于65535字節(jié)。

             

            UDP服務(wù)器的設(shè)計

            典型的服務(wù)器與操作系統(tǒng)進行交互作用,而且大多數(shù)需要同時處理多個客戶,通常一個客戶啟動后直接與單個服務(wù)器通信,然后就結(jié)束了。而對于服務(wù)器來說,它啟動后處于休眠狀態(tài),等待客戶請求的到來。對于UDP來說,當客戶數(shù)據(jù)報到達時,服務(wù)器蘇醒過來,數(shù)據(jù)報中可能包含來自客戶的某種形式的請求消息。

            1. 客戶IP地址及端口號

            來自客戶的是UDP數(shù)據(jù)報。IP首部包含源端和目的端IP地址,UDP首部包含了源端和目的端的UDP端口號。當一個應(yīng)用程序接收到UDP數(shù)據(jù)報時,操作系統(tǒng)必須告訴它是誰發(fā)送了這份消息,即源IP地址和端口號。這個特性允許一個交互UDP服務(wù)器對多個客戶進行處理。給每個發(fā)送請求的客戶發(fā)回應(yīng)答。

            2. 目的IP地址

            一些應(yīng)用程序需要知道數(shù)據(jù)報是發(fā)送給誰的,即目的IP地址。

            3. UDP輸入隊列

            通常程序所使用的每個UDP端口都與一個有限大小的輸入隊列相聯(lián)系。這意味著,來自不同客戶的差不多同時到達的請求將由UDP自動排隊。接收到的UDP數(shù)據(jù)報以其接收順序交給應(yīng)用程序(在應(yīng)用程序要求交送下一個數(shù)據(jù)報時)。

            然而,排隊溢出造成內(nèi)核中的U D P模塊丟棄數(shù)據(jù)報的可能性是存在的。

            4. 端口復(fù)用

                   每個服務(wù)器具有不同的本地I P地址,有可能在相同的端口上啟動不同的服務(wù)器,使用sockets API時,必須指定SO_REUSEADDR socket選項。

            posted on 2008-08-27 18:09 閱讀(2887) 評論(2)  編輯 收藏 引用 所屬分類: tcp/ip

            FeedBack:
            # re: TCP/IP詳解讀書筆記(第11章 UDP:用戶數(shù)據(jù)報協(xié)議)
            2008-08-28 08:52 | true
            該系列,你寫了很久了,支持  回復(fù)  更多評論
              
            # re: TCP/IP詳解讀書筆記(第11章 UDP:用戶數(shù)據(jù)報協(xié)議)
            2008-08-28 09:25 |
            @true
            很汗顏了。。。要加快進度了  回復(fù)  更多評論
              

            <2009年1月>
            28293031123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網(wǎng)絡(luò)開發(fā)

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 500434
            • 排名 - 37

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            免费久久人人爽人人爽av| 久久精品国产亚洲AV影院| 国产精品久久自在自线观看| 99久久精品影院老鸭窝| 四虎影视久久久免费观看| 欧洲成人午夜精品无码区久久 | 伊人久久综合无码成人网| 久久精品午夜一区二区福利| 久久国产成人午夜aⅴ影院 | 亚洲日本va午夜中文字幕久久| 久久亚洲精品国产亚洲老地址 | 久久久www免费人成精品| 久久香蕉国产线看观看99| 欧美伊人久久大香线蕉综合 | 97精品久久天干天天天按摩| 亚洲国产精品成人AV无码久久综合影院| 伊人久久无码中文字幕| 伊人久久一区二区三区无码| 久久青青草原综合伊人| 嫩草伊人久久精品少妇AV| 国产精品一区二区久久精品涩爱| 国产福利电影一区二区三区久久久久成人精品综合 | 国产美女久久精品香蕉69| 青青青青久久精品国产h久久精品五福影院1421 | 中文字幕久久久久人妻| 合区精品久久久中文字幕一区| 伊人色综合久久| 久久精品这里热有精品| 久久精品国产精品亚洲毛片| 老男人久久青草av高清| 亚洲欧美日韩精品久久亚洲区| 国产综合精品久久亚洲| www亚洲欲色成人久久精品| 久久电影网2021| 久久综合综合久久97色| 99久久精品日本一区二区免费| 亚洲AV无码久久| 69SEX久久精品国产麻豆| 免费国产99久久久香蕉| 99精品伊人久久久大香线蕉| 久久精品亚洲男人的天堂|