日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 通信技術 > 通信技術
[導讀]目前,用于Web頁面訪問的應用都是基于HTTP應用協(xié)議的,而在下層則使用傳輸控制協(xié)議(TCP)[1]作為傳輸協(xié)議;但TCP并不適合于短會話,即只有少量的數據交換的情況。

摘要:目前,用于Web頁面訪問的應用都是基于HTTP應用協(xié)議的,而在下層則使用傳輸控制協(xié)議(TCP)[1]作為傳輸協(xié)議;但TCP并不適合于短會話,即只有少量的數據交換的情況。因為建立、撤銷TCP鏈接的開銷即使對于短會話也是必需的。 在用于PDA(個人數字助理)中瀏覽器的設計中,根據無線網絡延遲大、帶寬窄的特點提出了一種混合TCP-UDP傳輸協(xié)議的方法來解決這一問題。本方法使用UDP[2]作為短會話時的傳輸層協(xié)議,而對于有大量數據需要傳輸時則使用TCP作為傳輸層的協(xié)議。這樣,對于短會話可以避免TCP的額外開銷,而對于長會話又可以得到由TCP提供的可靠傳輸和擁塞控制。

    關鍵詞:TCP UDP HTTP PDA

引 言

  超文本傳輸協(xié)議(HTTP)是目前通過Internet進行信息交換最主要的方式。HTTP協(xié)議是建立在請求/響應(request/response)模型上的。首先由客戶建立一條與服務器的TCP鏈接,并發(fā)送一個請求到服務器,請求中包含請求方法、URI、協(xié)議版本以及相關的MIME(Multipurpose Internet Mail Extensions)樣式的消息。服務器響應一個狀態(tài)行,包含消息的協(xié)議版本、一個成功和失敗碼以及相關的MIME式樣的消息(包含服務器的信息、資源實體的信息和可能的資源內容)。圖1給出了HTTP協(xié)議實現的一個簡單模型。HTTP/1.0[3]為每一次HTTP的請求/響應建立一條新的TCP鏈接,因此一個包含HTML內容和圖片的頁面將需要建立多次的短期的TCP鏈接。一次TCP鏈接的建立將需要3次握手。另外,為了獲得適當的傳輸速度,則需要TCP花費額外的回路鏈接時間(RTT)。每一次鏈接的建立需要這種經常性的開銷,而其并不帶有實際有用的數據,只是保證鏈接的可靠性,因此HTTP/1.1[4]提出了可持續(xù)鏈接的實現方法。HTTP/1.1將只建立一次TCP的鏈接而重復地使用它傳輸一系列的請求/響應消息,因此減少了鏈接建立的次數和經常性的鏈接開銷。

  可持續(xù)鏈接減少了每次TCP鏈接建立的時間,但是一個空閑的TCP鏈接將需要一個Socket和相應的存儲緩沖區(qū)。一個Socket緩沖區(qū)的最小長度必須大于一個TCP包的最大長度,即64 KB,而且很多實現方法在鏈接建立時將預分配一些緩沖區(qū)。可用的Socket的數量是有限的,很多基于BSD的操作系統(tǒng)對于能夠同時打開的鏈接數都有一個缺省的最大值。

  無線掌上設備PDA的應用(如瀏覽器)[5]特點表現在:① 因為頁面是針對掌上設備制作的,一般在1 K~2 K字節(jié),比較??;② 目前無線通信網絡的帶寬很窄,GSM的數據信道帶寬只有9.6 K。當前Web頁面的訪問大多通過HTTP協(xié)議,并使用TCP作為下層的傳輸控制協(xié)議。但不幸的是,TCP并不適合短會話的應用情況,不同于現在采用的使用單一TCP傳輸協(xié)議進行數據傳輸的方式。本文提出了采用動態(tài)選擇傳輸層協(xié)議(TCP、UDP)的方法來改善取回頁面的延遲、網絡擁塞以及服務器的負荷。

  這種混合TCP-UDP的方法結合兩個方面的優(yōu)點:首先,對于需要比較少數據傳輸的情況,它將使用UDP作為傳輸層的協(xié)議,從而避免了TCP鏈接的多次握手開銷;另外,對于需要較多數據傳輸的情況,它將使用可靠的帶有重排序和擁塞控制的TCP協(xié)議作為傳輸層的協(xié)議?;旌蟃CP-UDP的實現方法只需要對應用層的改動,而操作系統(tǒng)的核心代碼不用任何更改。僅采用UDP協(xié)議的缺點在于,需要在應用層建立一套類似于TCP復雜的控制協(xié)議,從而進行重排序和擁塞控制來保證傳輸的可靠性。

1 背 景

  HTTP是一個請求/響應協(xié)議,客戶端的應用程序通過提供一個URL可以從服務器上得到所需的數據。HTTP可以用來訪問各種不同類型的資源,其中包括文本、圖形、影音、可執(zhí)行文件、數據庫查詢結果等等。

  圖2給出了在客戶端發(fā)起HTTP GET請求后,在客戶端和服務器之間進行數據包交換的示意。圖中只有兩個數據包是有用的(即攜帶了數據):一個是HTTP GET請求,另一個是HTTP的響應。其它的都是TCP用來進行握手操作的數據包。為了減輕Web服務器的負荷,經常采用重定向機制。這樣從服務器發(fā)來的重定向響應報文是很短的數據包。使用TCP作為傳輸協(xié)議需要至少7個數據包,而使用UDP則只需要2個數據包就足夠了。

2 設 計

 

  我們使用混合傳輸層[6]的方法即對于少量數據傳輸的鏈接采用UDP,而對于大量數據傳輸的鏈接采用TCP作為傳輸層協(xié)議。這樣對于短鏈接而言就避免了TCP經常性的握手開銷,而對于長鏈接則仍可獲得TCP的優(yōu)點,如超時重傳、擁塞控制、錯誤恢復機制等。這種方法中,客戶端首先嘗試使用UDP作為傳輸層的協(xié)議,如果對于所請求的URL UDP并不適合,則再次使用TCP鏈接。這種方法提供了以下保證:

◇ 如果初始的UDP數據包丟失,將采用TCP重新鏈接而不會受到影響。

◇ 如果所鏈接的服務器沒有使用混合傳輸層的實現機制,客戶端將使用TCP重新進行鏈接。

  圖3給出了混合TCP、UDP的實現算法。一個采用混合算法的HTTP客戶端首先使用UDP作為傳輸層的協(xié)議發(fā)出HTTP GET請求,同時啟動超時定時器。

  當服務器處理客戶端發(fā)來的請求時,它可以從以下兩點做出選擇:

① 如果響應的數據足夠?。ū热纾煞诺揭粋€數據包中),服務器將使用UDP發(fā)回響應。像比較小的網頁或HTTP REDIRECT響應就屬于這一類。

② 如果響應的數據很大,無法放進一個UDP數據包中,服務器則要求客戶端使用TCP重試。這可以通過添加一個HTTP的頭部字段來解決如 TCPRETR。

  在客戶端,將會出現以下三種情況:

◇ 客戶端從服務器接收到響應。如果響應中包含了所需的HTTP響應,客戶端將對數據進行處理。如果服務器要求客戶端重試,客戶端將使用TCP作為傳輸層重試。

◇ 如果服務器沒有處理通過UDP傳輸的HTTP包,客戶端就會收到ICMP錯誤消息(目的地址無法到達/協(xié)議無法到達)。此時客戶端將會使用TCP重試。

◇ 如果定時器超時,客戶端應使用TCP重試。

  圖4給出了在定時器超時情況下,客戶端和服務器之間數據包的交換。這種超時機制提供了可靠性,以及與未使用混合TCP-UDP方法的服務器的兼容性。

  圖5示意了服務器要求客戶端使用TCP重發(fā)請求時,客戶端和服務器之間的數據包交換。

3 結 語

  混合TCP-UDP方法改善了參與HTTP傳輸的三個方面:客戶端、服務器和網絡。

◇ 對于客戶端而言,可以避免由于TCP而引入的三向握手的時間,從而減少了瀏覽的延遲時間。

◇ 對于服務器而言,由于所需的TCP的鏈接數量減少,從而降低了由于建立、維護、撤銷TCP鏈接所帶來的服務器的負荷。

◇ 對于網絡而言,由于TCP控制數據包的減少從而減少了網絡的擁塞。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

在資源受限的STM32微控制器上實現可靠的物聯(lián)網通信,需兼顧協(xié)議輕量化、內存占用低和功耗優(yōu)化。本文以STM32F407(Cortex-M4內核,192KB RAM)為例,提出“TCP基礎通信→MQTT協(xié)議適配→低功耗優(yōu)化...

關鍵字: TCP MQT

在工業(yè)自動化領域,Modbus協(xié)議憑借其開放性和易用性成為設備通信的"通用語言"。然而,當工程師面對Modbus RTU、ASCII和TCP三種變體時,如何根據具體場景做出最優(yōu)選擇?本文將從編碼機制、通信效率、錯誤檢測等...

關鍵字: Modbus協(xié)議 TCP

TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協(xié)議/網際協(xié)議)是指能夠在多個不同網絡間實現信息傳輸的協(xié)議簇。TCP/IP協(xié)議不僅僅指的是TCP 和I...

關鍵字: TCP IP

把TCP首部想象成一封信的信封,每個字段對應信封上的不同信息。源端口和目的端口就像寄信人和收信人的門牌號,序列號和確認號相當于書信的頁碼編號和回執(zhí)編號。數據偏移量可以比作信封上留出的貼郵票位置,保留字段就像信封上預留的空...

關鍵字: TCP 首部信息

Socket接收隊列是內核中為每個Socket維護的一個緩沖區(qū),用于臨時存儲接收到的UDP數據包。它的存在使得應用程序可以異步地處理網絡數據,同時提供了流量控制的能力(通過丟棄隊滿時的數據包)。理解接收隊列的工作原理對于...

關鍵字: socket UDP

從通信原理看,UDP上的SIP消息解析是應用層對無連接、不可靠傳輸層的數據報進行結構化解析的過程。每個UDP數據報包含一個完整的SIP消息,解析器需要按照SIP協(xié)議規(guī)范將字節(jié)流轉換為結構化的消息對象,然后根據消息類型進行...

關鍵字: socket UDP

如何在同一個Go程序中監(jiān)聽多個UDP端口,解析SIP消息,并根據來源端口進行不同的處理邏輯。需要結合并發(fā)編程、SIP協(xié)議解析和消息轉發(fā)機制來實現這一需求。

關鍵字: socket UDP
關閉