UNIX網絡編程---傳輸層:TCP、UDP、SCTP(二)

UNIX網絡編程----傳輸層:TCP、UDP、SCTP編程

1、概述服務器

本章的焦點是傳輸層:包括TCP、UDP、和SCTP(流控制傳輸協議)。SCTP是一個較新的協議,最初設計用於跨因特網傳輸電話信令。網絡

UDP是一個簡單的、不可靠的數據報協議。TCP是一個複雜、可靠的字節流協議。SCTP與TCP相似之處在於它也是一個可靠的數據報協議,但它還提供消息邊界、傳輸級別多宿支持以及將頭端阻塞減小到最小的一種方法。須要關注的幾點:TCP的三路握手、TCP的連接終止序列和TCP的TIME_WAIT狀態,SCTP的思路握手和SCTP的連接終止,加上由套接字層提供的TCP、UDP和SCTP緩衝區機制。併發

2、總圖spa

從右向左查看該圖,最右邊的5個網絡應用在使用IPv6,設計


 

 

1)      TCP(傳輸控制協議Transmission Control Protocol)排序

TCP是中面向連接的協議,爲用戶進程提供可靠的全雙工字節流。TCP套接字是一種流套接字。TCP關心確認、超時和重傳之類的細節。TCP既可使用IPv4,又可使用IPv6進程

2)UDP(用戶數據報協議 UserDatagram Protocol)路由

         UDP是一種無鏈接的協議。UDP套接字是一種數據報套接字。UDP數據報不能保證最終到達他們的目的地,IPv4和IPv6均可以使用。網絡編程

3) SCTP(流控制協議 StreamContril Transmission Protocol)

SCTP是一個提供可靠全雙工關聯的面向鏈接的協議。SCTP是多宿的,從而每一個關聯的兩端均涉及一組IP地址和一個端口號。TCP既可使用IPv4,又可使用IPv6

4) ICMP(網際控制消息協議)

         ICMP處理在路由器和主機之間流通的錯誤和控制消息。這些消息一般有TCP/IP網絡支持軟件自己(而不是用戶進程)產生和處理,不過圖中展現的ping和tracerroute程序一樣適用ICMP。

5)IGMP(網際組管理協議) 因爲多播

6)ARP(地址解析協議)

         ARP把一個IPv4地址映射成一個硬件地址(如以太網地址)。ARP一般用於注入以太網、令牌環網和FDDI等廣播網絡,在點到點網絡上並不須要。

 

1、用戶數據報協議(UDP)

應用進程往一個UDP套接字寫入一個消息,該消息隨後被封裝到一個UDP數據報,該UDP數據報進而被封裝到一個IP數據報,而後發送到目的地。UDP不保證UDP數據會到達其最終目的地,不保證各個數據報的前後順序跨網絡後保證不變,也不保證每一個數據報只到達一次。它的重要特色就是缺少可靠性。若是數據報到達了其最終目的地,可是校驗和檢測發現有錯誤,或者改數據報在網絡傳輸中被丟棄了,它就沒法被投遞給UDP套接字,也不會被源端自動重傳。若是想保證一個數據報到達其目的地,能夠往應用程序中添加特性:來自對端的確認、本段的超時與重傳等。

每一個UDP數據報都有一個長度。若是一個數據報正確到達目的地,那麼數據報的長度將隨數據一道傳遞給接受端的應用進程。而TCP是一個字節流協議,沒有任何記錄邊界,這一點不一樣與UDP.

UDP提供無鏈接服務,由於UDP客戶與服務器之間沒必要存在任何長期的關係。距離說明,一個UDP客戶能夠建立一個套接字併發送一個數據報給一個給定的服務器,而後當即用同一個套接字大宋另外一個數據報給另外一個服務器。一樣,一個UDP服務器能夠用通一個UDP套接字從若干個不用的客戶接受數據報,每一個客戶一個數據報。

2、TCP(傳輸控制協議)

TCP首先和服務器創建鏈接,還提供了可靠性,當TCP向另外一端發送數據時,它要求對端但會一個確認。若是沒有確認,TCP就自動重傳數據並等待更長時間。在數次重傳失敗後,TCP才放棄,如此嘗試發送數據上所化的總時間通常爲4~1分鐘。

 

1)  TCP的幾個能力,首先可以估算客戶和服務器之間的往返之間

2)  TCP給傳輸的數據加上序號,並對所發送的數據進行排序。若是接收端TCP接受到雷子對端的重複數據,它能夠斷定數據時充當的,從而丟棄。若是數據非順序到達,接收端TCP將先根據他們的須要從新排序。還提供流量控制。TCP老是告知對端在任什麼時候刻它一次可以從對端接受對少字節的數據,稱爲通告窗口。任什麼時候刻,該窗口指出接受緩衝區當前可用的空間量,從而保證發送端發送數據不會使接受緩衝區溢出。該窗口時刻動態變化。也有可能爲0

3)  TCP鏈接是全雙工的,意味着在一個給定的鏈接上應用能夠在任什麼時候刻在進入方向上既能夠發送數據由接受數據。創建一個全雙工鏈接後,須要的話能夠把它轉換成一個單工鏈接。

4)  UDP能夠是全雙工的

1、流控制傳輸協議(SCTP)

SCTP是面向消息的。和UDP同樣,由發送端寫入的每條記錄的長度隨數據一道傳遞給接受端應用。

SCTP可以在所鏈接的端點之間提供多個流,每一個流各自可靠地按序遞送消息。一個流上某個消息的丟失不會阻塞通一個關聯其餘流上消息的投遞,這個作法和TCP相反,TCP字節丟失將阻塞鏈接上其後全部數據的遞送,直到該丟失被恢復爲止。

相關文章
相關標籤/搜索