關(guān)于上Internet網(wǎng)和TCP/IP協(xié)議的實用技術(shù)
發(fā)布時間:2007/8/28 0:00:00 訪問次數(shù):634
越來越多的嵌入式應(yīng)用增加了Internet網(wǎng)絡(luò)功能,但是,嵌入式應(yīng)用的編程人員對于上網(wǎng)和TCP/IP協(xié)議比較生疏,由于需要了解的技術(shù)內(nèi)容量很多,因此很難短時間從中找出有用的關(guān)鍵部分,本文打算對新手給以實用性的指導(dǎo)。
TCP/IP包括一系列協(xié)議
首先,應(yīng)理解我們所說的TCP/IP是統(tǒng)指一系列的協(xié)議,其中包括TCP(傳輸控制協(xié)議)、UDP(用戶數(shù)據(jù)報協(xié)議)、IP(Internet協(xié)議)還有一些更低層的連接層協(xié)議,如Ethernet(以太網(wǎng)協(xié)議)等。
用TCP協(xié)議傳輸?shù)乃^數(shù)據(jù)實際指的是數(shù)據(jù)流中的段,而用UDP協(xié)議傳輸?shù)乃^數(shù)據(jù)指的是數(shù)據(jù)包。IP則是TCP、UDP(傳輸層協(xié)議)之下的網(wǎng)絡(luò)層協(xié)議。IP所提供的是非可靠的、無連接能力的、向指定主機地址的包傳送的協(xié)議。IP包也叫數(shù)據(jù)報。數(shù)據(jù)報可能出現(xiàn)丟失、重復(fù)或次序紊亂等現(xiàn)象,所以,它是非可靠的協(xié)議。但是,IP 協(xié)議的最大好處是,IP數(shù)據(jù)報獨立于低層的網(wǎng)絡(luò)技術(shù),所以它是一種通用的數(shù)據(jù)傳送方法。
TCP和UDP都屬于IP上層的傳輸層協(xié)議。二者都使用端口號作為送往主機的解碼地址。端口號由各個具體應(yīng)用所確定,同時使用多個端口號能完成“一機多網(wǎng)”的操作。每個UDP數(shù)據(jù)包和TCP數(shù)據(jù)段中都含源端口號和目的端口號。為接收遠(yuǎn)端的輸入而等待著執(zhí)行接入操作的主機是所謂的服務(wù)器,發(fā)起接入請求的主機就是所謂的客戶機。
服務(wù)器為最常服務(wù)的應(yīng)用如FTP(文件傳輸協(xié)議)、Email和HTTP,分配了知名的端口號并對其進行持續(xù)地監(jiān)聽。作為傳輸源的客戶機通常選擇隨機的端口號,并向已分配了知名端口號的服務(wù)器發(fā)出接入請求?蛻魬(yīng)用所取的端口號應(yīng)大于1024,因1024以下的端口號是為知名應(yīng)用而預(yù)留的。
UDP為維護數(shù)據(jù)包的整體性應(yīng)盡最大可能地選用校驗和。UDP數(shù)據(jù)包的可靠性是與IP相當(dāng)?shù)模凰,遠(yuǎn)端主機收到的數(shù)據(jù)包未能保證其正確的順序。但是由于TCP所傳數(shù)據(jù)流應(yīng)用了順序號和應(yīng)答措施,可以發(fā)現(xiàn)數(shù)據(jù)的丟失、段的失序和對傳輸錯誤的排除,所以TCP協(xié)議提供的是數(shù)據(jù)流的可靠傳輸。
相對于UDP,TCP所獲得的可靠性是以其復(fù)雜性為代價的。TCP面向接入,而UDP是無連接能力的。這意味著,UDP客戶機向指定的遠(yuǎn)端主機發(fā)送數(shù)據(jù)包時,并未事先確知對方是做好了接收數(shù)據(jù)的準(zhǔn)備的。因此就會發(fā)生某一客戶機發(fā)給一個主機,而此主機事先并未把此客戶機列入其目標(biāo)端口號而加以監(jiān)聽。這種情況,只要遠(yuǎn)端主機運行的是TCP/IP堆棧,并能夠?qū)⑤斎氲腢DP數(shù)據(jù)報送到ICMP層進行處理的話,此主機將返回一個ICMP(Internet控制信息協(xié)議)錯誤。也就是說,如果遠(yuǎn)端主機不能接收發(fā)去的UDP數(shù)據(jù)的話,客戶機還可以獲得一定的提示的;但是,這種提示是有限的,因為客戶機并不確知數(shù)據(jù)的結(jié)果。
然而也正是由于,UDP沒有保證可靠性的機制,沒有其他的關(guān)卡機制,UDP才得以實現(xiàn)全速地發(fā)送(即充分發(fā)揮物理通信設(shè)備的速度)。如果使用低速的處理器,因UDP的開銷很小,會導(dǎo)致其傳輸率比高出TCP很多;但對于高速處理器,二者的差別不會很大。又,UDP沒有點對點接入的要求,所以可以實現(xiàn)“一對多點”,“多對多點”的廣播和多點播發(fā)信息。作為使用UDP實行信息廣播的例子,就是在DHCP協(xié)議(動態(tài)主機控制協(xié)議)中,當(dāng)系統(tǒng)引導(dǎo)的時候,發(fā)出廣播信息,通知所有DHCP服務(wù)器向系統(tǒng)提交網(wǎng)絡(luò)配置信息。
TCP原理
TCP是面向接入的。在將數(shù)據(jù)發(fā)向遠(yuǎn)方主機之前,必須先建立TCP接入。這意味著只有在兩端都實現(xiàn)了TCP接入后,才可以進行點-點之間的數(shù)據(jù)交換。建立TCP的點-點連接,包括“三重握手”的操作:
1、 客戶機向服務(wù)器發(fā)出同步段(SYN),請求接入。
2、 服務(wù)器向客戶機發(fā)出同步-應(yīng)答段(SYN--ACK)。一方面作為對客戶請求接入的響應(yīng),一方面要求客戶端也進行接入。
3、 客戶機向服務(wù)器再發(fā)出應(yīng)答段(ACK)。作為對服務(wù)器所發(fā)請求接入的響應(yīng)。
同樣,包含數(shù)據(jù)的每一個TCP段也都應(yīng)該取得對端返回的應(yīng)答段(ACK),作為握手信號來保證數(shù)據(jù)被可靠地接收。應(yīng)答段本身不再需要應(yīng)答,避免應(yīng)答陷入無窮的嵌套?蛻魴C請求對端接入時,要隨機地選送一個初始序號。在第二步中建立TCP接入時,服務(wù)器也要選送一個自己的初始序號,并用這個號作為對客戶機送來序號的應(yīng)答號返送給客戶機。這樣,每一個TCP段中都包含一個序號,并以這個序號作為數(shù)據(jù)流的定位器,而返給客戶機的應(yīng)答號則表達(dá)所發(fā)來的數(shù)據(jù)已經(jīng)妥收。
越來越多的嵌入式應(yīng)用增加了Internet網(wǎng)絡(luò)功能,但是,嵌入式應(yīng)用的編程人員對于上網(wǎng)和TCP/IP協(xié)議比較生疏,由于需要了解的技術(shù)內(nèi)容量很多,因此很難短時間從中找出有用的關(guān)鍵部分,本文打算對新手給以實用性的指導(dǎo)。
TCP/IP包括一系列協(xié)議
首先,應(yīng)理解我們所說的TCP/IP是統(tǒng)指一系列的協(xié)議,其中包括TCP(傳輸控制協(xié)議)、UDP(用戶數(shù)據(jù)報協(xié)議)、IP(Internet協(xié)議)還有一些更低層的連接層協(xié)議,如Ethernet(以太網(wǎng)協(xié)議)等。
用TCP協(xié)議傳輸?shù)乃^數(shù)據(jù)實際指的是數(shù)據(jù)流中的段,而用UDP協(xié)議傳輸?shù)乃^數(shù)據(jù)指的是數(shù)據(jù)包。IP則是TCP、UDP(傳輸層協(xié)議)之下的網(wǎng)絡(luò)層協(xié)議。IP所提供的是非可靠的、無連接能力的、向指定主機地址的包傳送的協(xié)議。IP包也叫數(shù)據(jù)報。數(shù)據(jù)報可能出現(xiàn)丟失、重復(fù)或次序紊亂等現(xiàn)象,所以,它是非可靠的協(xié)議。但是,IP 協(xié)議的最大好處是,IP數(shù)據(jù)報獨立于低層的網(wǎng)絡(luò)技術(shù),所以它是一種通用的數(shù)據(jù)傳送方法。
TCP和UDP都屬于IP上層的傳輸層協(xié)議。二者都使用端口號作為送往主機的解碼地址。端口號由各個具體應(yīng)用所確定,同時使用多個端口號能完成“一機多網(wǎng)”的操作。每個UDP數(shù)據(jù)包和TCP數(shù)據(jù)段中都含源端口號和目的端口號。為接收遠(yuǎn)端的輸入而等待著執(zhí)行接入操作的主機是所謂的服務(wù)器,發(fā)起接入請求的主機就是所謂的客戶機。
服務(wù)器為最常服務(wù)的應(yīng)用如FTP(文件傳輸協(xié)議)、Email和HTTP,分配了知名的端口號并對其進行持續(xù)地監(jiān)聽。作為傳輸源的客戶機通常選擇隨機的端口號,并向已分配了知名端口號的服務(wù)器發(fā)出接入請求?蛻魬(yīng)用所取的端口號應(yīng)大于1024,因1024以下的端口號是為知名應(yīng)用而預(yù)留的。
UDP為維護數(shù)據(jù)包的整體性應(yīng)盡最大可能地選用校驗和。UDP數(shù)據(jù)包的可靠性是與IP相當(dāng)?shù);所以,遠(yuǎn)端主機收到的數(shù)據(jù)包未能保證其正確的順序。但是由于TCP所傳數(shù)據(jù)流應(yīng)用了順序號和應(yīng)答措施,可以發(fā)現(xiàn)數(shù)據(jù)的丟失、段的失序和對傳輸錯誤的排除,所以TCP協(xié)議提供的是數(shù)據(jù)流的可靠傳輸。
相對于UDP,TCP所獲得的可靠性是以其復(fù)雜性為代價的。TCP面向接入,而UDP是無連接能力的。這意味著,UDP客戶機向指定的遠(yuǎn)端主機發(fā)送數(shù)據(jù)包時,并未事先確知對方是做好了接收數(shù)據(jù)的準(zhǔn)備的。因此就會發(fā)生某一客戶機發(fā)給一個主機,而此主機事先并未把此客戶機列入其目標(biāo)端口號而加以監(jiān)聽。這種情況,只要遠(yuǎn)端主機運行的是TCP/IP堆棧,并能夠?qū)⑤斎氲腢DP數(shù)據(jù)報送到ICMP層進行處理的話,此主機將返回一個ICMP(Internet控制信息協(xié)議)錯誤。也就是說,如果遠(yuǎn)端主機不能接收發(fā)去的UDP數(shù)據(jù)的話,客戶機還可以獲得一定的提示的;但是,這種提示是有限的,因為客戶機并不確知數(shù)據(jù)的結(jié)果。
然而也正是由于,UDP沒有保證可靠性的機制,沒有其他的關(guān)卡機制,UDP才得以實現(xiàn)全速地發(fā)送(即充分發(fā)揮物理通信設(shè)備的速度)。如果使用低速的處理器,因UDP的開銷很小,會導(dǎo)致其傳輸率比高出TCP很多;但對于高速處理器,二者的差別不會很大。又,UDP沒有點對點接入的要求,所以可以實現(xiàn)“一對多點”,“多對多點”的廣播和多點播發(fā)信息。作為使用UDP實行信息廣播的例子,就是在DHCP協(xié)議(動態(tài)主機控制協(xié)議)中,當(dāng)系統(tǒng)引導(dǎo)的時候,發(fā)出廣播信息,通知所有DHCP服務(wù)器向系統(tǒng)提交網(wǎng)絡(luò)配置信息。
TCP原理
TCP是面向接入的。在將數(shù)據(jù)發(fā)向遠(yuǎn)方主機之前,必須先建立TCP接入。這意味著只有在兩端都實現(xiàn)了TCP接入后,才可以進行點-點之間的數(shù)據(jù)交換。建立TCP的點-點連接,包括“三重握手”的操作:
1、 客戶機向服務(wù)器發(fā)出同步段(SYN),請求接入。
2、 服務(wù)器向客戶機發(fā)出同步-應(yīng)答段(SYN--ACK)。一方面作為對客戶請求接入的響應(yīng),一方面要求客戶端也進行接入。
3、 客戶機向服務(wù)器再發(fā)出應(yīng)答段(ACK)。作為對服務(wù)器所發(fā)請求接入的響應(yīng)。
同樣,包含數(shù)據(jù)的每一個TCP段也都應(yīng)該取得對端返回的應(yīng)答段(ACK),作為握手信號來保證數(shù)據(jù)被可靠地接收。應(yīng)答段本身不再需要應(yīng)答,避免應(yīng)答陷入無窮的嵌套?蛻魴C請求對端接入時,要隨機地選送一個初始序號。在第二步中建立TCP接入時,服務(wù)器也要選送一個自己的初始序號,并用這個號作為對客戶機送來序號的應(yīng)答號返送給客戶機。這樣,每一個TCP段中都包含一個序號,并以這個序號作為數(shù)據(jù)流的定位器,而返給客戶機的應(yīng)答號則表達(dá)所發(fā)來的數(shù)據(jù)已經(jīng)妥收。
熱門點擊
- IrDA紅外通信在導(dǎo)航儀中的應(yīng)用
- 基于免費軟件ns2的網(wǎng)絡(luò)仿真
- Myrinet系統(tǒng)軟件GM分析
- 擴頻E2無線中繼器的設(shè)計
- 基于AD8016的ADSL線路驅(qū)動電路的設(shè)計
- 用于無線通信的CDMA/FM下變頻混頻器RF
- IP電話及其在線纜調(diào)制解調(diào)系統(tǒng)上的應(yīng)用
- MHW7222A型放大器在校園CATV干線系
- WIN95下虛擬設(shè)備驅(qū)動程序設(shè)計開發(fā)
- Webchip智能Internet網(wǎng)絡(luò)接口芯
推薦技術(shù)資料
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究