久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式Linux網絡編程之:TCP/IP協議概述

嵌入式Linux網絡編程之:TCP/IP協議概述

作者: 時間:2013-09-13 來源:網絡 收藏

本文引用地址:http://cqxgywz.com/article/257117.htm

圖10.3就是這個流程的簡單示意圖。

圖10.3TCP三次握手協議

TCP實體所采用的基本協議是滑動窗口協議。當發送方傳送一個數據報時,它將啟動計時器。當該數據報到達目的地后,接收方的TCP實體往回發送一個數據報,其中包含有一個確認序號,它表示希望收到的下一個數據包的順序號。如果發送方的定時器在確認信息到達之前超時,那么發送方會重發該數據包。

(3)TCP數據包頭。

圖10.4給出了TCP數據包頭的格式。

TCP數據包頭的含義如下所示。

n 源端口、目的端口:16位長。標識出遠端和本地的端口號。

圖10.4TCP數據包頭的格式

n 序號:32位長。標識發送的數據報的順序。

n 確認號:32位長。希望收到的下一個數據包的序列號。

n TCP頭長:4位長。表明TCP頭中包含多少個32位字。

n 6位未用。

n ACK:ACK位置1表明確認號是合法的。如果ACK為0,那么數據報不包含確認信息,確認字段被省略。

n PSH:表示是帶有PUSH標志的數據。接收方因此請求數據包一到便將其送往應用程序而不必等到緩沖區裝滿時才傳送。

n RST:用于復位由于主機崩潰或其他原因而出現的錯誤連接。還可以用于拒絕非法的數據包或拒絕連接請求。

n SYN:用于建立連接。

n FIN:用于釋放連接。

n 窗口大小:16位長。窗口大小字段表示在確認了字節之后還可以發送多少個字節。

n 校驗和:16位長。是為了確保高可靠性而設置的。它校驗頭部、數據和偽TCP頭部之和。

n 可選項:0個或多個32位字。包括最大TCP載荷,滑動窗口比例以及選擇重發數據包等選項。

2.UDP

(1)概述。

UDP即用戶數據報協議,它是一種無連接協議,因此不需要像TCP那樣通過三次握手來建立一個連接。同時,一個UDP應用可同時作為應用的客戶或服務器方。由于并不需要建立一個明確的連接,因此建立UDP應用要比建立TCP應用簡單得多。

從問世至今已經被使用了很多年,雖然其最初的光彩已經被一些類似協議所掩蓋,但是在網絡質量越來越高的今天,UDP的應用得到了大大的增強。它比TCP協議更為高效,也能更好地解決實時性的問題。如今,包括網絡視頻會議系統在內的眾多的客戶/服務器模式的網絡應用都使用

(2)UDP數據報頭。

UDP數據報頭如下圖10.5所示。

n 源地址、目的地址:16位長。標識出遠端和本地的端口號。

n 數據報的長度是指包括報頭和數據部分在內的總的字節數。因為報頭的長度是固定的,所以該域主要用來計算可變長度的數據部分(又稱為數據負載)。

3.協議的選擇

協議的選擇應該考慮到以下3個方面。

(1)對數據可靠性的要求。

對數據要求高可靠性的應用需選擇TCP協議,如驗證、密碼字段的傳送都是不允許出錯的,而對數據的可靠性要求不那么高的應用可選擇UDP傳送。

(2)應用的實時性。

TCP協議在傳送過程中要使用三次握手、重傳確認等手段來保證數據傳輸的可靠性。使用TCP協議會有較大的時延,因此不適合對實時性要求較高的應用,如VOIP、視頻監控等。相反,UDP協議則在這些應用中能發揮很好的作用。

(3)網絡的可靠性。

由于TCP協議的提出主要是解決網絡的可靠性問題,它通過各種機制來減少錯誤發生的概率。因此,在網絡狀況不是很好的情況下需選用TCP協議(如在廣域網等情況),但是若在網絡狀況很好的情況下(如局域網等)就不需要再采用TCP協議,而建議選擇UDP協議來減少網絡負荷。

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

linux相關文章:linux教程


tcp/ip相關文章:tcp/ip是什么



上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉