前言:中文期刊網精心挑選了tcpip協議范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
tcpip協議范文1
關鍵詞:NDK; TMS320DM642; TCP/ IP
1、 NDK 的結構
TI公司依據C6000芯片推出了TCP/IP NDK(Network Developer's Kit)開發套件, 其主要構成包括: (1)支持TCP/IP 協議棧程序庫。其中主要含有的庫: 支持TCP/IP網絡工具的庫,支持TCP/IP 協議棧與DSP/BIOS平臺的庫,網絡控制以及線程調度的庫。(2)示范程序。其中主要包括DHCP/Telnet 客戶端, HTTP 數據服務器示范。(3)支持文檔。包含用戶手冊、程序員手冊和平臺適應手冊。NDK 采用緊湊的設計方法, 實現了用少量的資源耗費來支持TCP/IP。從實用效果來看, NDK僅用200-250K程序空間和95K 數據空間即可完成常規的TCP/IP 服務。
NDK相對于操作系統和底層硬件是透明的, 因為這是由OS。LIB 提供操作系統DSP/BIOS的接口和HAL。LIB 提供對硬件的支持來實現的。在NDK的TCP/IP協議棧中STACK。LIB 包括了頂層套接字到底層鏈路層的所有功能, NETCTRL。LIB在整個協議棧中起關鍵作用, 協調操作系統和底層硬件驅動, 管理所有網絡事件, NETTOOL。LIB 提供配置網絡各種服務。
2、NDK 在DSP/BIOS 下的使用
DSP/BIOS 是TI 開發的實時微型操作系統, 支持線程管理、實時分析、周期函數、調度軟件中斷以及外部硬件中斷與各種外設的管理。使用DSP/BIOS 所有與硬件有關的操作都必須借助操作系統本身提供的函數完成, 應避免直接控制硬件資源。基于DSP/BIOS 的程序與傳統開發過程是不同的, 用戶編寫的程序由DSP/BIOS 調度, 不再按標寫的次序順序執行。同樣開發基于DSP/BIOS的網絡應用程序也必須要遵循一些原則。
在DSP/BIOS 下使用NDK 必須注意以下幾點: (1) 為了保證使用NDK 的工程項目能正確編譯, 在CCS 的Link Order 要按一定的順序添加庫文件, 推薦的順序是: NETCTRL。LIB、HAL_xxxLIB、STACK。LIB、OS。LIB; (2)在使用NDK 的過程當中, OS和HAL 會創建三個內存段, 分別是PACKETMEM、MMBUFFER、OBJMEM, 必須在CMD 文件中為這三個段在內存中分配存儲空間;(3) 至少要使用32K 的cache, 否則應用程序會產生不可預料的錯誤;(4) 必須在CDB文件中為HAL 創建一個周期為100ms 的PRD 函數, 用來驅動llTimerTick()系統函數;(5) OS 需要鉤子函數為TCP/IP 堆棧加載和保存私人變量指針, 所以必須在CDB 文件中創建兩個鉤子函數NDK_hookInit()和NDK_hookCreate();(6)必須把工程項目的IncludeSearching Path 指向NDK 安裝目錄下的inc 文件夾。
3、NDK 性能測試
測試NDK性能既有主觀性又有客觀性。主觀性適應為實際測試要受到很多環境因素的影響。客觀性是因為使用標準的工具,并且結果可重現。 所以只能是性能的估計性測試。影響NDK性能的主要因素有:
socket API: NDK既支持非拷貝的數據包socket,也支持基于緩沖區的典型socket,甚至非拷貝的直接接收的TCP數據流。性能隨所采用的策略變化而變化。
socket 緩沖區: socket緩沖區影響TCP發送和接收的窗口大小,并且決定每次發送數據流大小,這對網絡性能有很大的影響。
CPU速度:在cache大小一定的情況下,網絡性能與CPU速度成正比。CPU cache: cache的大小對網絡性能有巨大的影響。
網絡硬件設備:以太網硬件設計的好壞直接影響DSP和網絡接口的速度。
外部存儲器(EMIF)接口:對于和DSP外部存儲器接口相連的以太網設備, EMIF的速度對外部解碼邏輯有額外的影響。
下面的測試由TI提供,測試不僅兼顧最佳的性能而且考慮到應用的實際情況,比如socket緩沖區大小為8K,而不是32K 或64K,因為這在嵌入式設備中是不切實際的。測試的過程是DSP執行低優先級的網絡任務,PC機執行客戶基準測試程序, 然后與DSP不執行網絡任務時CPU的負載情況做對比。
4 、結論
TI推出的NDK網絡開發工具不僅可以使技術人員快速開發基于DSP的網絡應用程序,而且具有十分可靠的性能,這使得C6000系列芯片完全可以勝任大數據量的視頻網絡傳輸的要求,是開發嵌入式網絡視頻設備的首選。
參考文獻
[1]Texas Instrument。TMS320C6000 Programmer ' s Guide(Rev。 I)。
tcpip協議范文2
關鍵詞:TCP/IP;網絡擁塞;擁塞控制;算法
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2013)07-1513-03
隨著網絡用戶的不斷增加,制約網絡應用和發展的關鍵瓶頸是網絡擁塞問題,對進入網絡的數據流量進行控制是擁塞控制的主要目的,通過控制擁塞保證用戶發送的數據流對通信網絡不造成阻塞,并且瓶頸資源能夠被合理的使用。可以在網絡協議的不同層次上實施擁塞控制,首先對網絡擁塞產生的原因進行分析,分類、歸納擁塞控制,持續時間越長的擁塞需要越高的控制層次來解決擁塞問題,并且擁塞控制的實現主要在傳輸層和網絡層。
1 網絡擁塞概述
網絡的性能會逐漸下降,當過多的數據包存在于網絡中時,這種現象被稱為網絡擁塞。吞吐量下降在發生網絡擁塞的時候,并且嚴重的時候擁塞崩潰的現象會在發生。通常而言,增加的網絡負載導致網絡效率降低,在此時容易發生擁塞崩潰的現象。擁塞現象的描述如圖1 。
圖1 擁塞現象的描述
在較小的網絡負載時,吞吐量隨著負載的增長也會增長,兩者為線性關系,相應的時間也緩慢增長。當網絡容量被負載達到的時候,相應的時間急劇增加,吞吐量呈現緩慢增長,這一點被成為Knee點。吞吐量在負載超過一定量時開始急劇下降,路由器在負載繼續增加的情況下開始丟包,這一點是死鎖點。在擁塞控制機制中有擁塞控制和擁塞避免兩種方式,前者的目的是在控制運行在死鎖點附近的網絡擁塞現象,后者是避免網絡運行在Knee點的時候發證擁塞現象。前者是一種恢復措施,使網絡從擁塞中恢復過來,進入正常運行狀態;后者是一種預防措施,使網絡維持在低延遲、高吞吐量狀態,網絡擁塞現象得以避免。
2 分析網絡擁塞產生的原因
網絡的處理能力和資源容量被網絡的負載超出了是網絡擁塞產生的根本原因,也就是網絡對資源的總需求量大于總的可用資源,下面分析一下網絡擁塞產生的原因。
1)不足的存儲空間
一個輸出端口需要對各種報文在接收端口的緩沖區域中進行排隊,因為它接受的報文是由多個端口轉發而來的,若滿足使用要求的緩沖空間在輸出端,報文就會丟失,尤其是突發的數據流也會丟失。這一矛盾的緩解通過增加存儲空間來實現。但將會出現更加嚴重的擁塞現象在不斷增加存儲容量時。因為緩沖區網絡結點的延時增加的時候,報文也會增加,最終端到端的確認時間也增加了,就會產生超時重發。網絡負載因此會進一步增加,擁塞現象最終會加重。
2)不足的寬帶容量
在低速鏈路中流通的高速數據流經常會產生擁塞現象,在數據發送率小于信道容量的時候,擁塞現象才會避免。不然在節點的緩沖區域堆集大量的報文就會產生擁塞。
3)速度緩慢的節點處理機
報文被放入其CPU隊列中進行緩存當被路由器對其進行接收的時候,路由器來選擇路由并且把報文轉發到相應的節點。此時路由器的處理速度的快慢是能否出網絡現擁塞的關鍵因素。
總而言之,只有考慮到從以上三方面的因素,來解決擁塞現象,優化整體性能。只考慮一方面內的因素擁塞問題不僅不能夠解決,反而擁塞問題還會更加嚴重。
3 控制擁塞的策略
1)Tahoe和Reno擁塞控制算法
隨著網絡技術的發展,TCP擁塞控制有快速恢復(fast recovery)、快速重傳(fast retransmit)、擁塞避免(congertion avoidance)、慢啟動(slow start)這四種,其中常用的是TCP Tahoe和TCP Reno兩種算法??焖僦貍?、擁塞避免、慢啟動是Tahoe包括的三個部分,并且改進了往返時間RTT,從而對超時重發計時器進行更好的重新設定,具體的算法描述如下:
最多發一個報文在一個RTT內。其中窗口的大小由w來表示,慢啟動門限值由ssthresh來表示,是慢啟動進入擁塞避免的分界值。
這種算法的基本思想是通過線性增加速率源端對網絡中的空閑容量進行探測,當擁塞被檢測到的時候用指數遞減它的速率,在源端丟包被檢測到的時候確認擁塞。實現擁塞避免和慢啟動的例子如圖圖2 慢啟動和擁塞避免的實現舉例
由上圖可知,每當一個丟包被檢測到的時候,慢啟動門限值被源端設置為當前窗口的一半,對丟失的包重傳,窗口被設置為1,重新進入慢啟動。
2)TCP中擁塞控制的關鍵
TCP協議在Internet上被95%的數據流使用,對發送端的發送速率進行控制是TCP中擁塞控制的關鍵。可以采用控制算法中的乘法減少加法增加(AIMD)的來解決擁塞問題。每個擁塞窗口由發送方維持著,如果沒有發生窗口中的報文丟失,那么目前是良好的網絡狀況,窗口的大小被發送者加大,同時報文的發送速率加大。當窗口內的一個報文被發送方發現丟失的時候,則認為報文的丟失是由網絡擁塞造成的,于是窗口的大小減半,隨之發送速率也減小,擁塞加重的現象得以避免。
3)慢啟動階段的擁塞控制
一個連接被TCP啟動的時候多個數據包被發送到網絡時會造成不必要的網絡擁塞和數據丟失,而慢啟動可以避免這種現象的發生,還能避免吞吐量在AIMD算法中增加引起網速過慢的問題。初始化擁塞窗口cwnd為一個數據包大小在新的TCP連接建立的時候,按照cwnd大小源端進行數據的發送,也就是隨著RTT的增長cwnd呈指數增長。
4)擁塞避免階段
處理丟失數據包的方法被稱為擁塞避免算法。當重復確認被發送方收到或數據包超時被發送方發現的時候,網絡擁塞就會發生,此時進入擁塞避免階段,置為1的cwnd在數據包發送超時并且重復確認被發送方收到時,那么每收到一個ACK,cwnd將增加segsize*segsize/cwnd。其中數據包的大小被稱為segsize,cwnd在擁塞避免階段不是呈指數增長而是呈線性增長的。
5)快速恢復和快速重傳階段
當3個或3個以上的重復ACK被源端收到的時候,發送方認為出現數據包丟失的現象,對數據包進行重新傳輸,而且啟動閾值ssthresh被設置為一半的當前cwnd,然后對丟失的數據包重新傳輸,這個過程被稱為快速傳輸。系統執行的不是慢啟動算法而是擁塞避免算法,這被稱為快速恢復,能夠使TCP連接的吞吐量提高。另外,不必要的重傳超時要想避免可以應用一種受限傳輸機制:在接收方中允許如果有廣播窗口,一個或兩個重復的ACK被發送方接收到后,發送方對新的報文段繼續傳輸,具有較小窗口的TCP在受限的傳輸機制的允許下進行錯誤碼恢復,不必要的重傳得以避免。
6)IP 擁塞控制策略
對于Internet 的健壯性而言基于窗口的端到端的TCP擁塞控制起著關鍵性作用,在Internet的迅速發展的今天網絡的規模也越來越大,并且日趨復雜的結構在不斷出現,端對端的擁塞控制已經不能滿足需求,那么對擁塞的控制也需要在網絡層進行,需要在路由器中采用數據丟棄和排隊算法策略。其中丟棄策略進行分配緩存是通過決定哪些包被丟棄來實現的,排隊算法進行分配寬帶是是通過決定哪些包可以被傳輸來實現的。IP 擁塞控制的方法有:先進先出、公平排隊算法、加權公平排隊算法。
總而言之,無論哪種擁塞控制方法都有它的優勢,總體上包括TCP 擁塞控制和IP 擁塞控制兩種,下面表格針對這兩種方式進行了比較:
[TCP 與IP 擁塞控制的比較\&參數\&TCP 擁塞控制\&IP 擁塞控制\&實現位置\&端系統中\&網絡內部\&短期擁塞\&可以處理\&較好處理\&長期擁塞\&可以處理\&無法處理\&不同數據流間的公平性\&難于實現\&可以實現\&延遲\&較大\&無\&]
4 結束語
通過上述網絡擁塞概述、網絡擁塞產生的原因、控制擁塞的策略,可以得知,隨著互聯網用戶越來越多,網絡寬帶等資源也在持續增加,但是用戶的需求仍然不能得到滿足,逐漸暴漏出網絡擁塞問題,擁塞如何更好的預防和控制,使網絡具有同時到達資源并且低延時和低丟包率的最大效用。無論TCP擁塞控制還是IP 擁塞控制都有自身的優勢,要想在這個基礎上更好的解決網絡擁塞問題,需要結合各種方法并且靈活的使用。
參考文獻:
[1] The Stream Control Transmission Protocol (SCTP) as a Transport for the Session Initiation Protocol(SIP).internet Draft,IETF,Jan,2005 Work in Progress.
[2] 黃衛平.TCP/IP 協議中擁塞控制算法探討[J].廣西工學院學報,2003,14(2):71-73.
[3] Gonzalo Camarillo,Raimo Kantola.Evaluation of Transport Protocols for SIP .IEEE Network September/October 2003.
[4] 武航星,慕德俊,潘文平.網絡擁塞算法綜述[J].計算機科學,2007,34(2):51-54.
tcpip協議范文3
關鍵詞:GPRS TCP/TP通信協議 應用
1 GPRS簡介
GPRS又被稱為通用分組無線業務,通過連接因特網或者是企業網,以GSM以基礎,進行數據之間的分組交換。GPRS技術也即2.5G,是介于現今2G和3G之間的過渡性方案技術,通過這項技術,為用戶提供了豐富的數據業務,也是現階段移動通信領域信息服務做的比較完善的一項技術性方案。
1.1 GPRS發展 GPRS根據歐洲的ETST的GSM第2+階段的建議分為Phase1和Phase2兩個發展階段。在Phase 1階段其能夠支持以下功能和業務:①TCP/IP和X.25業務。②全新的GPRS空中接口加密技術。③GPRS附加業務。④增強型的短信業務(E一SMs)。
根據數據量采取計費即為GPRS的分組數據計費功能。上述功能業務中最顯著的就是TCP/IP和X.25功能。GSM網絡通過TCP/IP和X.25能夠為用戶通過電子郵件、專用數據、LAN接入等業務。GPRS Phase 2階段的規范仍舊處于制定階段,其將為用戶提供更多新功能和新業務。
1.2 GPRS接口種類 在GPRS系統中存在各種不同類型的接口,如下圖所示。其涉及七號信令協議、IP協議等不同規程的種類,內容十分多。本文主要對IP協議進行介紹。
2 TCP/IP協議概述
2.1 協議優勢 ①IP在長期的發展過程中逐漸取代了其他網絡,IP傳輸的通用數據能夠輕易的取代以前專有數據網絡傳輸的數據。②此協議經常用于訪問電子郵件或聊天以提供便利的IP服務,并通過轉悠網絡隧道的某種方式實現。由于最初的隧道方式沒有效率,從而導致電子郵件和聊天需要的帶寬非常低。③對于IP基礎設施投資較少即可出現在專有數據網絡周邊。④由于整個因特網都遍布了IP的替代品,從而使得IP替代品相對最初的專有網絡更有價值。⑤用戶在專有網絡受到壓制的情況下可以維護使用IP替代品的復制品。⑥由于IP包的間接開銷小于1%而使得成本具有很強的競爭性。因此,人們開發了一種將IP用到專有網絡上比較低廉的傳輸媒介。
2.2 協議缺點 第一,在服務、接口和協議上的區別不是很清楚。一個好的軟件工程應當將功能與實現方法進行區分,但是TCP/IP協議卻沒有做到這一點,從而對于使用新的技術沒有很好的指導意義,因此,此協議參考模型不適合于其他非TCP/IP協議簇。第二,主機-網絡層實際上并不是一層,其對網絡層與數據鏈路層接口進行了定義。一個好的模型應當將物理層與數據鏈路層進行合理的劃分,但是TCP/IP卻沒有做到這一點。
2.3 GPRS傳輸中的TCP/TP協議 在GPRS網絡傳輸過程中,需要用到很多的通信協議,現將TCP/IP協議介紹如下:TCP/IP協議:這項協議又被稱為網絡通信協議,是因特網最為基本的協議、因特網等國際互聯網的基礎,是由網絡層的IP協議以及傳輸層的TCP協議組成的。這項協議具體解釋了電子設備是如何接入互聯網的以及數據如何在軟件系統內傳輸等等。TCP/IP協議采用了層級結構,每一層都通過下一層的配合來滿足自身的需求。通俗來看,TCP是負責發現軟件操作系統中傳輸層面的問題,一旦有問題出現就會立刻啟動信號,要求重新傳輸,直到所有的數據都準確無誤的到達目的地為止。而IP則是通過給因特網的每一臺電腦規定的一個地址。下圖是這項協議中各個部分的位置示意圖:
■
IP層處于網絡層,主要負責接收由底層發來的數據包,并擔任中間者的角色,將該數據包發送到更高層TCP或UDP層。IP協議的數據包格式介紹如下所示:
版本:標識數據報的IP協議的版本信息,對于IPv4,該字段值為4;而對于IPv6,該字段值為6。
頭部長度:占據了4位,代表IP數據報首部的長度,其值以32位(4字節)為單位。
服務類型:占8位,可以被用來獲得更好的服務。
總長度:占16位,總長度是指IP首部和數據部分長度的總數。
標識符:占16位。當IP數據報在傳輸過程中由于低層網絡傳輸限制需要進行分階段、分時間傳輸時,同一個IP數據報的每個分片所共有的標記,代表著這些分片同屬于一個IP數據報。
標志:占3位,第一位保留,第二位為不分片標志,第三位為更多分片標志。
片偏移:占13位。片偏移所扮演的角色是指明此分片在原IP數據報中的絕對位置。因為IP數據報的傳輸不可避免的會受物理網絡的MTU限制,當一個IP數據報較大,無法承載數據鏈路層的一個幀中傳輸時。IP協議需要將IP數據報分片,并為每個分片構造一個單獨的IP數據報,以適應物理網絡的傳輸要求過程。
生存時間:占8位。以秒為單位設置了該IP數據報在互聯網中允許存在的時間。
協議:占8位,用于指出IP數據報攜帶的數據屬于哪一種高層協議,該字段的值是高層協議對應的標號。
首部校驗和:占16位,用于保證IP數據報的完整性。
源地址:占32位,定義源點的IP地址。代表了IP數據報從源主機發送到目的主機的時間內容,這個字段必須保持不變。
目的地址:占32位,定義終點的IP地址。它是IP數據報從源主機發送到目的主機的時間內容,這個字段必須保持不變。
可選項:這是一個邊長字段。源頭中主要包括源點產生的信息和其他路由器加入的信息,主要是用于測試。
填充項:字段通過在選項字段后面添加,補足32位,是為了保證報頭長度是32比特的倍數。
3 GPRS與IP
電信網絡和計算機網絡在引進GPRS技術后進行了有機的連接,同時向著全IP網絡平臺發展。通過GPRS結構我們知道,基站與SGSN設備之間是通過幀中繼進行連接的,而SGSN與GGSN設備之間則是通過IP網絡進行有效連接的。具有NAT網絡地址翻譯功能的路由器能夠承擔GGSN內部IP地址與外部網絡IP地址的轉換。
在標識GPRS設備中,如手機MS的標識除了在GSM中使用IMSI、MSISDN等號碼外還需要分配IP地址。網元設備SGSN、GGSN的標識不僅有7號信令地址,還有數據GGSN的IP地址,GSN之間(SGSN或GGSN)采用IP地址進行通信,但是GSN與MSC、HLR等實體通信采用7號信令地址。在GPRS系統中有兩個數據庫可以記錄信息:第一,用戶移動性管理上下文用于對移動用戶的位置信息進行管理;第二,用戶的PDP上下文用于管理手機MS到網關GGSN以及ISP即Internet服務提供商之間的數據路由信息。當MS訪問GPRS內部網絡或外部PDN/ Internet網絡時,MS向SGSN發出激活PDP上下文請求信息,MS通過與運營商簽約來選擇固定服務的GGSN,或者根據APN選擇規則由SGSN選擇服務GGSN,然后SGSN再向GGSN發出建立PDP上下文請求的消息。GGSN將一個靜態或動態、共用或私有的IP地址分配給MS,在建立PDP上下文的過程中對用戶的身份、需要的服務質量進行鑒權和論證。當成功建立和激活PDP上下文后,用戶的PDP上下文信息都存儲在MS、SGSN和GGSN內。MS在擁有用戶位置和數據路由信息的基礎上便可以訪問該網絡的資源。伴隨著二代半產品GPRS的問世,在開發和部署GPRS業務時會遇到一些新的概念。
4 結語
IP協議是TCP/IP協議的核心,GPRS網絡通過無線連接到IP地址是相對來說比較容易的,其建設和維護以及運行成本都比較低,所以我國大部分的監控系統都是采用的這種方式。
參考文獻:
[1]孫德輝,馬文麗,姚文娟,鄭文嶺.基于GPRS的無線傳輸系統設計與實現[J].微計算機信息,2007(21).
[2]王剛,黃宗福,陳曾平.基于GPRS的遠程通信與控制系統的設計與實現[J].電子技術,2008(11).
tcpip協議范文4
在網絡應用日益普遍的今天,越來越多的嵌入式設備實現Internet網絡化。TCP/IP協議是一種目前被廣泛采用的網絡協議。嵌入式Internet的技術核心是在嵌入式系統中部分或完整地實現TCP/IP協議。由于TCP/IP協議比較復雜,而目前嵌入式系統中大量應用低速處理器,受內存和速度限制,有必要將TCP/IP協議簡化。
圖1 協議處理
1 TCP/IP協議的實現
嵌入式TCP/IP協議一般實現:ARP/RARP、IP、ICMP、TCP、UDP、HTTP、SMTP、FTP、TELNET等協議,協議處理的主要流程如圖1所示。
1.1 TCP協議的實現
工業控制領域傳輸層采用TCP協議、不用UDP協議,是考慮到實時監控系統中傳輸量并不大,而可靠性要求較高。TCP協議是面向連接的、端對端的可靠通信協議。它采用了許多機制來保證可靠傳輸,應用于嵌入式系統顯得過于復雜。
TCP協議數據傳輸可分為三個階段:建立連接、傳輸數據和斷開連接。它的實現過程可以用狀態機來描述。建立連接有兩種方法,即主動打開和被動打開。服務器端是一種被動打開,它一直在偵聽連接請求;而客戶端是一種主動打開,它發送連接請求以建立連接。研究發現,如果TCP層的上層實現服務器端的應用,可以將標準TCP狀態機建立連接過程中客戶端建立連接的狀態機部分簡化掉。同理,如果應用是基于客戶端的,可以將服務器端建立連接的狀態機部分簡化掉。斷開連接有兩種方式:一是主動斷開連接;另一是被動斷開連接。被動斷開連接的處理較為簡單,但標準TCP協議的主動斷開連接的狀態機部分過于復雜。經過實驗發現,在需要主動斷開連接的時候,發送一個Fin數據報;接收到對Fin數據報的確認后,再發送一個Reset數據報,即可順利完成一次主動斷開連接。
標準的TCP協議使用慢啟動的滑動窗口機制。滑動窗口是一種在流量控制和網絡傳輸效率之間折中的方案。它允許發送方在等待一個確認之前發送多個窗口,其確認是一種批量的確認。研究滑動窗口協議發現,滑動窗口的一個極限情況,是只使用單個窗口,就變成了一種簡單確認的處理方法。使用該方法后,所有的處理只是對單個數據報的發送和確認,節約了系統的資源,也使維護更加方便。為了協議的兼容性,需要通信的另一方也使用簡單確認方法。因為如果對方使用較大的窗口,就可能造成處理器被淹沒。這個問題可以通過設置待發送數據報的TCP頭部的Windows字段的大小解決。
在上述基礎上,簡化實現TCP協議的流程圖如圖2所示。其中“不同狀態的相應處理”指根據接收到的TCP報文準備待發送數據報并將其發送到以太網上。這部分根據TCP所處的不同狀態,所做的處理是不一樣的。
1.2 IP協議
IP協議是TCP/IP的基礎,為不同網絡的主機之間發送數據報的操作序列提供無連接服務。通過在數據報前添加IP協議頭,使每個數據報具有尋址能力。嵌入式系統只把IP作為傳輸工具,進行簡化以完成主要的操作。得到IP包后,檢驗IP頭部的版本、目的地址、校驗和正確否,解析出協議類型字段,由此交給相應的高層協議處理。發送IP包時,將緩沖區內的源地址與目的地址互換,設置校驗和,然后交給下層協議處理。不符合要求,則將此包丟棄。IP包最大可以為65KB,可以分段傳輸,而在嵌入式系統里根本無法容納如此大的數據包,因此一般不支持分段傳輸。所以限制MCU發送和接收數據包的方式以避免分段傳輸,從而減少程序復雜度。
1.3 其它協議
ARP協議為32位IP地址到對應的48位以太網地址之間提供動態映射。嵌入式系統中僅響應ARP請求,發送ARP回答包。請求者廣播出包含ARP請求的以太幀、目的以太網地址為全1的廣播地址。本機收到后,由目的IP地址發現自己是目的主機,發送一個ARP回答。ICMP通過IP協議傳輸其報文。IP協議是無連接的,它無法將報文和錯誤信息傳到最初的主機,ICMP將狀態信息和錯誤信息發送到發報文的主機。
2 前端設備的系統設計
TCP/IP協議擴展到工業控制級,將企業內部計算機網絡應用于工業現場實時信息的和顯示,通過Internet瀏覽器對現場工業信息進行動態監視。下面是筆者在某公司一分布式監控系統中的應用實例。基于TCP/IP協議的前端設備系統軟件結構如圖3。前端嵌入式設備處理器是Samsung公司的S3C4510B(ARM核)。該芯片是用在基于以太網系統的高性價比、高性能的16/32位RISC微控制器。通信部分采用BNC接口方式,信號輸出經耦合隔離變壓器由RJ45接頭聯入集線器,此外還設計了液晶顯示和鍵盤輸入當地接口功能。
在TCP/IP協議中多處用到超時和重發機制。這種機制對于確保兩個或多個彼此獨立的通信結點從通信錯誤或故障狀態自動恢復到正常狀態是非常有效的,但也增加了軟件結構的復雜性。因為對超時的處理通常獨立于正常程序流程,也就是與正常的程序流程異步。要實現的TCP/IP協議軟件中有四處要用到定時器:第一是在ARP高速緩存的維護中,被添加到ARP高速緩存中的表項在一段時間后要置為無效;第二是在等待對發出的ARP請求返回響應時,可能會在指定的超時時間內還未收到返回的響應;第三是在IP組裝收到分片時,由于部分分片在一定時間內沒有收到而丟棄整個IP包;第四是在TCP等待接收方對數據段的確認時。如果在指定時間內還未收到對某個數據段的確認,需重新發送。從上述可見,要實現的定時器具備以下特點:
·對定時的精度要求都不是很高,基本都是秒級的精度。這樣,完全可以稍滯后一些來處理定時器超時,不把超時處理放在時鐘中斷處理程序中。
·對同一類超時處理可以由同一處理程序來完成,只是傳入到相應的處理程序中的參數不同而已。例如一個ARP高速緩存中的表項超時時,需要將其置為無效,可以統一用一個處理程序,參數中放入相應的表項地址即可。
首先,定義一定時器的數據結構,如圖4所示。每一類超時都是由一個超時控制塊和其所屬的一個由超時事件項組成的鏈表管理。整個鏈表按超時事件將要發生的時間順序排列,先發生的超時事件排列在前。超時控制塊中的head_ptr用以指向一個超時事件項鏈表的首項;timeout_process是超時事件發生時處理程序的入口地址。在每個超時事件項中,next_ptr指向鏈表中的下一項;relative_time是本表項的超時事件相對于上一表項的超時事件發生的相對時間。所以某個表項表示的超時事件距離當前的時間是它以前所有表項(包括自身)中的relative_time的和。relative_time的基本單位是granularity。
tcpip協議范文5
引言
Internet現已成為社會重要的信息流通渠道。如果嵌入式系統能夠連接到Internet上面,則可以方便、低廉地將信息傳送到幾乎世界上的任何一個地方??梢灶A言,嵌入式設備與Internet的結合代表著嵌入式系統和網絡技術的真正未來。隨著IPv6的應用,設備都可能獲得一個全球唯一的IP地址,通過IP地址和互聯網相連成為一個網絡設備。但是傳統的TCP/IP協議在實現實時性方面做得不夠好,它把大量的精力花在保證數據傳送的可靠性以及數據流量的控制上。而在實時性要求比較高的嵌入式領域中,傳統的TCP/IP不能滿足其實時要求。另外,傳統TCP/IP的實現過于復雜,需占用大量系統資源,而嵌入式應用的系統資源往往都很有限。因此,需要把傳統TCP/IP在不違背協議標準的前提下加以改進實現,使其實現性得到提高,占用的存儲空間盡可能少,以滿足嵌入式應用的要求。
在大型企業自動化系統中,上層企業管理層和生產監控層一般采用的都是以太網和PC機,而在下層車間現場都是采用現場總線和單片機測控設備。上下兩層的溝通,通常采用工業控制機加以太網卡,再加上PC機插槽上的接口卡和并行打印口EPP接口卡來實現。這種連接方式成本高,開發周期長。針對這些情況,本文提出了一種單獨的嵌入式CAN-以太網網關互連系統的設計方案,成功地實現以太網和現有的CAN總線網的直接數據傳輸。
1 異構網絡互聯系統結構設計
CAN總線是一個設備互連總線型控制網絡。在CAN總線上可以掛接多達110個設備節點,各設備間可以自主相互通信,實現復雜網絡控制系統。但設備信息層無法直接到達信息管理層,要想設備信息進入信息管理層就要通過一種數據網關。
這里設計了一個SX52網關,用于CAN總線與以太網的互連。圖1所示的系統總體結構分為三部分:現場測控網絡(CAN網絡)、嵌入式透明SX52網關和以太網信息管理終端(如監控平臺和網絡數據庫等)。以太網信息管理終端與CAN總線上的CAN節點通過Ethernet、SX52網關、CAN總線相互通信,其中SX52網關起核心異構網絡的互連作用。
協議轉換是異構網絡互連的技術關鍵和難點。協議轉換一般遙相呼應采用分層轉換的方法,自低向上逐層進行。目前互連大都是在網絡層或網絡層展開的,因而必須對互連層以下各層協議逐層向上轉換。這種轉換方法的依據是協議分層的基本原理,即低層支持高層,高層調用低層,低層斷開連接后,高層連接也隨之斷開,但高層斷開連接卻不會影響低層。從網絡的分層結構上來看我們設計的互連系統具有如圖2所示的分層結構。以太網上運行TCP/IP協議,它具有應用層、傳輸層、網絡層以太網數據鏈路層和物理層;CAN總線具有應用層、數據鏈路層和物理層,其中應用層由用戶自己定義,數據鏈路層和物理層由CAN協議所定義;SX52數據網關具有物理層、數據鏈路層和應用層,其應用層也就是Ethernet與CAN的信息數據交換層,SX52微控制器在此層相互解釋并轉發這兩種不同協議的數據。
在本設計中,SX52網關被設計成了一個透明數據網關。也就是在以太網應用層構建和解析完整的CAN協議數據包。CAN協議數據包作為TCP/IP網絡的應用層的數據進行傳輸。對通信數據的具體實際意義不做任何解釋。
透明式網關由通信處理器、CAN總線控制器和以太網控制器三個部分組成。其中SX52單片機為核心處理器,實現CAN控制網絡與以太網之間的協議轉換。以太網信息管理 層的控制指令發送到嵌入式透明SX52網關,經過它將TCP/IP協議包數據轉換為CAN協議形式發送至CAN控制網絡中的指定設備節點,完成信息管理層對現場設備層的控制。同樣地,當CAN網絡上的設備數據(如定時采樣數據或報警信息)要傳輸到信息管理層時,可將數據發送到嵌入式透明SX52網關,再通過網關協議轉換程序將CAN協議數據封裝成TCP/IP協議的以太網數據幀發送至以太網上的監控計算機。
2 SX52中TCP/IP協議棧的設計
按照層次結構思想,對計算機網絡模塊化的研究結果是,形成了一組從上到下單向依賴關系的協議棧(protocol stack),也叫協議族。在標準的TCP/IP協議族中有很多協議。這里SX52中TCP/IP協議棧層次結構如圖3所示。
2.1 SX52 ARP協議的設計與實現
地址解析協議ARP(Address Resolution Protocol)可以實現邏輯地址到物理地址的動態映射。它提供了一種使以太網絡節點可以傳輸一個IP數據包到目的地址的映射機制。
在SX52中,ARP協議是通過一個“IP地址對應以太網地址”的單登記實現的。當遠程主機需要知道它的物理地址時,遠程主機會向它發送ARP請求。這時它就會響應這個遠程主機的請求,告訴對方自己的物理地址。當然,當應用層需要傳輸IP數據包時,SX52 ARP協議也可以請求遠程目的物理地址。
要傳輸的Internet數據包在以太網控制器的發送緩沖區中被構建,它使用最近接收到的數據包的目的以太網地址作為發送數據包的目的地址。當然,這可能不是正確的以太網地址,因此,在實際發送數據包之前,ARP協議將檢查發送數據包中的IP地址是否存在于ARP核中。如果發送數據中包中的IP地址在這個核中,在以太網發送緩沖區中的數據包將使用ARP核中的以太網地址更新;如果不在,ARP協議將發送一個ARP請求包,然后等待一個應答。一旦這個ARP應答接收到,這個ARP核將使用剛接收到的目標以太網地址更新,接著,等待發送的數據包也將使用這個以太網地址更新,然后被發送出去。如果發送的ARP請求包沒有應答,導致ARP定時器超時,這時等待發送的數據包將被廢棄,正常的協議棧繼續運行。使用的變量有:ARP核中的IP地址{hostlIP3,hostlIP2,hostlIP1,host1IP0};ARP核中的以太網物理地址{host1Eth0,host1Eth1,host1Eth2,host1Eth3,host1Eth4,host1Eth5};ARP協議的定時器{arpTimerMSB,arpTimerLSB}等。使用涉及的函數有:ARPInit(),ARPCheckCache(),ARPSendResponse(),ARPUpdateEthAddr(),ARPCheckIfIs(),ARPCompare4(),ARPSendStPacket(),ARPSendCommon(),ARPSendRequest()。
2.2 SX52 IP協議的設計與實現
IP是TCP/IP協議族中最為核心的協議。所有的TCP、UDP、ICMP及IGMP數據都以IP數據報格式傳輸。IP提供不可靠、無連接的數據報傳送服務。本設計中的IP協議是針對特殊的應用環境下的合理簡化。CAN總線的控制網絡是一種短幀(每個數據幀為8字節)的實時網絡,所以,IP數據包無須分片(MF=DF=0),同時,設置IP為服務類型為一般類型,其頭長為20字節,壽命TTL設置為64。使用的變量有:目的IP地址{remoteIP3,remoteIP2,remoteIP1,remoteIP0};源IP地址{myIP3,myIP2,myIP1,myIP0};IP校驗和{ipCheckSumMSB,ipCheckSumLSB};IP數據包長度{ipLengthMSB,}ipLengthLSB};上層使用的協議ipProtocol,IP標識{ipIdentMSB,ipIdentLSB}。使用涉及的函數有:TCPIPInit(),CheckIPDatagram(),CheckIPDestAddr(),IPStartPktOut()等。
2.3 SX52 ICMP協議的設計與實現
為了讓互聯網中的路由器報告或提供有關意外情況的信息,在TCP/IP協議系列中加入了一個專門用于發送差錯報文的協議——互聯網控制報文協議ICMP(Internet Control Message Protocol)。ICMP是IP的一部分在每個IP實現中都必須用到它。像其它所有的通信業務一樣,ICMP報文是放在一個IP數據報的數據部分中傳送的。ICMP報文的最終目的不是應用程序或目的機器上的用戶,而是該機上處理它的Internet協議軟件模塊。也就是說:Internet控制報文協議允許路由器向其它路由器或主機發送差錯或控制報文;ICMP在兩臺主機的Internet協議軟件之間提供通信。
每個ICMP報文都以相同的3個字節開始:1個8位整數的報文類型(TYPE)字段用來識別報文,1個8位代碼(CODE)字段提供有關報文類型的進一步信息,1個16位校驗和字段。此外,ICMP報文還總是包括產生問題的數據報首部及其開頭的64位數據。
ICMP使用IP來傳送每一個差錯報文。當路由器有一個ICMP報文要傳遞時,它會創建一個IP數據報并將ICMP報文封裝其中,也就是說,ICMP報文被置于IP數據報的數據區中,然后這一數據報像通常一樣被轉發。即整個數據報被封裝進幀中進行傳遞。
每一個ICMP報文的產生總是對應于一個數據報。路由器將一個ICMP報文將回給產生數據報的主機。在這里,只實現了ICMP的回應請求/應答服務,主要用于PING程序測試通信鏈路的暢通性,即只處理接收的報文類型為0x08的ICMP幀,發送的ICMP報文類型為0x00。它沒有自己專有的變量,涉及的函數也只有ICMPGenCheckSum()和ICMPProcPktIn()。
2.4 SX52 UDP協議的設計與實現
UDP是一個簡單的面向數據報的運輸層協議:進程的每個輸出操作都正好產生一個UDP數據報,并組裝成一份待發送的IP數據報。UDP不提供可靠性,它把應用程序傳給IP層的數據發送出去,但是并不保證它們能到達目的地。由于缺乏可靠性,我們似乎覺得要避免使用UDP,而使用一種可靠的協議,如TCP。但分析發現,UDP在我們的互連設計中有很多的優點:其一,UDP協議傳輸效率高,無須TCP通信前的連接開銷;第二,UDP協議簡單,無須復雜的狀態機傳輸機制,可以很好地避免SX52網關死機復位后由于狀態不一致而無法正常通信,且上層協議又很難發現的危險。因此,可以使用UDP來實現通信(避免TCP連接的開銷),而讓許多需要的特征(如動態超和重傳、擁塞避免、查錯等)放置在應用層設計和實現。使用的變量有:
UDP接收數據報的源端口{udpRxSrcPortMSB,udpRxSrcPortLSB};
UDP接收數據報的目的端口{udpRxDestPortMSB,udpRxDestPortLSB};
UDP接收數據報的長度{udpRxDataLenMSB,udpRxDataLenLSB};
UDP發送數據報的源端口{udpTxSrcPortMSB,udpTxSrcPortLSB};
UDP發送數據報的目的端口{udpTxDestPortMSB,udpTxDestPortLSB};
UDP發送數據報的長度{udpTxDataLenMSB,udpTxDataLenLSB}。
設計的相關函數有:UDPAppInit(),DPGenCheckSum(),UDPStartPktOut(),UDPProcPktIn(),UDPEndPktOut(),UDPAppProcPktIn(),UDPAppProcPktOut()等。
2.5 SX52 TCP協議的設計與實現
傳輸控制協議TCP(Transmission Control Protocol)是傳輸層的重要協議。它提供一個完全可靠的(沒有數據重復或丟失)、面向連接的、全雙工的流傳輸服務。本設計中,對復雜的TCP協議做了合理的簡化:①因為CAN網絡傳輸速度較快,數據量小且10Mbps的以太網傳輸一般不會發生阻塞,以太網上的主機也會有足夠的能力及時處理通信數據,所以可以固定超時與重傳的時間為5s。②RTL8019AS上有兩個1500字節的接收緩沖區,且CAN網絡為控制網,信息量小,所以可以固定接收窗口為1400字節。③因為我們采用一般的TCP服務就可以滿足應用,所以可以忽略緊急指針和選項及填充字段的值。通過上述三點簡化,實際上大大簡化了TCP協議的實現。因為TCP的超時與重傳時間的確定和窗口大小的控制有著較復雜的算法和實現機制。
它的實現變量有:tcpState,{tcpTmpSeq4,tcpTmpSeq3,tcpTmpSeq2,tcpTmpSeq1},{tcpTmpAck4,tcpTmpAck3,tcpTmpAck2,tcpTmpAck1},{tcpUnAckMSB,tcpUnAckLSB},tcpRxFlags,{tcpCheckSumMSB,tcpCheckSumLSB},{tcpLengthMSB,tcpLengthLSB},{tcpTmpMSB,TcpTmpLSB},{tcbLocalPortMSB,tcbLocalPortLSB},{tcbRemotePortMSB,tcbRemotePortLSB},{tcbSndUna4,tcbSndUna3,tcbSndUna2,tcbSndUnal},{tcbRcvNxt4,tcbRcvNxt3,tcbRcvNxt2,tcbRcvNxt1},tcbOffset,tcbFlags,{tcbSendWinMSB,tcbSendWinLSB},{tcpTimerMSB,tcpTimerLSB}等。
相關函數有:TCPIPInit(),TCPRxHeader(),TCPProcPktIn(),TCPTransmit(),TCPReTransmit(),TCPAppPassiveOpen(),TCPAppActiveOpen(),CPAppClose(),TCPAddRcvNxt(),TCPIncRcvNxt(),TCPIncSndUna(),TCPCopySeqToNxt(),TCPAckUpdate(),TCPUpdateSeq(),TCPChkSeq(),TCPRestorePrev(),TCPCmpNxtSeq(),TCPSendEmptyPkt(),TCPSendReset(),TCPSendSyn(),TCPSendISN(),TCPSendSynAck()TCPSendAck(),TCPSendFin(),TCPCheckSuminit(),CPCheckSumAcc(),TCPCheckSumAddHdr(),CPTxByte(),TCPStartPktOut(),TCPAppInit(),TCPAPPTxBytes(),TCPAPPTxData(),TCPAPPTxDone(),TCPAppRxBytes(),TCPAppRxData(),等。
2.6 TCP和IP傳輸層協議的選擇
把TCP/IP協議應用到控制網絡中如何選擇傳輸層協議類型很關鍵。如果要與現有的應用程序通信,必須使用與其相同的協議類型。在實際應用時,從可靠性來說,TCP提供了可靠的數據連接,UDP和直接訪問IP的一些協議是不可靠的,數據報可能會丟失、損壞或重復;從性能上講,UDP的性能最快,可靠性、流量控制重組包和連接維護等附加開銷降低了TCP的性能。對于速度比較慢的系統來說,如溫度、濕度傳感器,選擇TCP或UDP都無所謂,對于不太重要的傳感器選用UDP就可以了;對于可靠性要求較高的傳感器,應該選用TCP協議;對于實時性要求高的網絡設備,如網絡會議系統、IP音響、實時播放的電視等設備,數據傳輸率較高,應該選用UDP協議;有些有嚴格要求的同步系統應采用UDP;數據監控系統傳輸的可靠性要求較高,應采用TCP;Web和Email也應采用了TCP。總之,要根據實際情況來確定選用何種協議。
tcpip協議范文6
關鍵詞:“計算機網絡”教學;Wireshark;TCP/IP
“計算機網絡”課程作為計算機科學與技術、網絡工程、通信工程和軟件工程等專業的主干課,其地位在課程體系群中尤為重要。學習這門課程,最重要的是掌握計算機網絡的原理,了解網絡硬件和軟件的工作機制。計算機網絡基礎理論復雜抽象,概念眾多,對剛開始學習計算機網絡的學生來說,這些概念和協議是非常難以理解和記憶的。計算機網絡原理主要描述的是各層的功能及其協議和服務,具體地說就是要理解網絡的相關功能層概念和網絡體系結構(包括OSI參考模型、TCP/IP模型協議族),以及功能模塊之間的協議交互[1],這是學好計算機網絡的關鍵。網絡體系結構是計算機網絡及其部件所應完成的功能的精確定義。計算機網絡原理主要講述的就是各層的功能及其協議和服務。在計算機網絡教學過程中,利用Wireshark網絡探測和分析軟件,通過從網絡中實時捕獲幾種常見協議數據包并進行分析,使學生對一些協議的工作原理及結構有了更加深刻的理解和認識[2]。
1Wireshark簡介
Wireshark(原名Ethereal)是目前世界上最受歡迎的協議分析軟件,利用它可將捕獲到的網絡二進制數據流翻譯為人們容易讀懂和理解的文字和圖表等形式,極大地方便了對網絡活動的監測分析和教學實驗。它有十分豐富和強大的統計分析功能,可在Windows,Linux 和UNIX等系統上運行。它允許在一個網絡內部實時捕獲和分析數據包,用戶可以通過圖形界面很直觀地瀏覽捕獲到的數據信息,研究數據包每一層的詳細信息[3]。
學習和理解計算機網絡原理的最好方法是,理論聯系實際。在一個現實的局域網中,網絡數據流往往是來自不同用戶的各種各樣協議數據的大混雜,因此利用Wireshark的“捕獲過濾器”和“顯示過濾器”,從錯綜復雜的數據流中迅速提取自己所關心的網絡信息,了解和掌握網絡的工作原理和協議的交互過程。
Wireshark使用目的是網絡管理員使用Wireshark來檢測網絡問題、網絡安全工程師使用Wireshark來檢查資訊安全相關問題、開發者使用Wireshark來為新的通訊協議除錯、普通使用者使用Wireshark來學習網絡協議的相關知識等。
2用Wireshark分析網絡協議
網絡協議是網絡上所有設備(網絡服務器、計算機及交換機、路由器、防火墻等)之間通信規則的集合,它定義了通信時信息必須采用的格式和這些格式的意義。TCP/IP(Transmission Control Protocol / Internet Protocol),即傳輸控制協議/互聯網協議是不同操作系統的計算機網絡互連的通用協議,它是一組計算機通信協議族,其中最著名的兩個協議是TCP及IP協議。TCP/IP協議具有開放式互聯環境,很容易實現各種局域網和廣域網的集成式互聯。此協議是當今技術最成熟、應用最廣泛的網絡協議[4]。
TCP是一種面向連接的、可靠的運輸層協議,TCP數據傳輸(只有連接建立后才可進行數據傳輸)需要通過在客戶端和服務器端建立特定的虛電路連接來完成,該過程通常被稱為“三次握手”,即發送方先發送連接請求,然后接收方進行連接確認,最后發送方對接收方的確認再次進行確認(圖1)。下面就以Wireshark對 TCP連接建立交互過程的數據包捕獲分析為例,來說明對TCP/IP協議實現的分析。
2.1建立捕獲TCP連接報文的實驗環境
PCATTCP是一款不錯的測試局域網網絡速度的軟件。在局域網中,兩臺主機通過交換機連接起來。在服務器端和客戶端都安裝和運行PCATTCP進行通信,產生TCP流。啟動Wireshark進行數據包捕獲,單擊CaptureInterfaces菜單,選擇自己的網卡,選擇Start開始監控流量。在服務器端運行ttcp,監聽TCP的5001端口。圖2是服務器端的完整命令行輸出:
服務器配置好后,在客戶端運行ttcp,雙方開始通信。
2.2TCP報文分析
2.2.1客戶端發送連接請求
捕捉到的TCP 連接報文如圖3所示。
從圖3可以看出,客戶端發出的連接請求數據包封裝了三個頭信息:以太網(Ethernet)幀、IP數據報和TCP報文段。在數據鏈路層,數據以幀的方式進行傳輸。在網絡層,加工的主要數據對象是IP數據報。IP協議是TCP/IP協議族中的核心協議之一,所有的TCP、UDP、ICMP數據都以IP數據報格式傳輸。
在運輸層,主要數據對象是TCP報文??蛻舳税l送的連接請求如圖4所示。
第一條報文是沒有數據的TCP報文段,并且將首部的SYN位設置為1。因此,第一條報文常常被稱為SYN分組。這個報文段里的序列號是由系統隨機設置的數值,表示客戶端為后續報文設定的起始編號。此TCP報文段,序列號SEQ在連接請求時相對初始值是0,其實際值是c9 f4 65 c2;確認號是00 00 00 00,ACK標志為0表明確認號被忽略。SYN=1表示正在進行連接請求,通過SYN和ACK也可以用來區分Connection Request和Connection Accepted,在連接請求中,SYN=1、ACK=0,連接響應時,SYN=1、ACK=1。
SYN分組通常是從客戶端發送到服務器端。這個報文段請求建立連接。因為一旦成功建立連接,服務器進程必須已經在監聽SYN分組所指示的IP地址和端口號[5]。如果沒有建立連接,SYN分組將不會應答。如果第一個分組丟失了,客戶端通常會發送若干個SYN分組,如果多次嘗試不成功,客戶端將會停止并報告一個錯誤給應用程序。
2.2.2服務端連接響應
當服務器接收到連接請求時,就對請求方進行響應,以確認收到客戶端的第一個TCP報文段。響應的報文段SYN位和ACK位都將置1。通常稱這個報文段為SYNACK分組。SYNACK分組在確認收到SYN分組的同時也發出一個初始的數據流序列號,表示服務器發向客戶端的數據序號,它不需要與剛才客戶端發來的數據流的序列號相匹配。服務器端響應的數據包如圖5所示。
此數據包的起始序列號SEQ在協議框中顯示為0,在原始框中的實際值為63 cf 1a c9。所有初始序列號邏輯上都視同為序列號0。ACK標志為1表明確認號有效,SYN仍然為1。
圖6中確認號在協議框中顯示為1,在原始框中的值為c9 f4 65 c3(比c9 f4 65 c2多1)。這解釋了TCP的確認模式,TCP接收端確認第X個字節已經收到,并通過設置確認號為X+1來表明期望收到的下一個字節號。
2.2.3客戶端連接確認
在TCP連接建立的最后階段,客戶端對接收到數據包的服務器端進行確認,到此為止建立完整的TCP連接,開始全雙工模式的數據傳輸過程??蛻舳耸盏椒掌鞫舜_認后,發送帶有ACK標志的TCP報文段來完成三次握手的過程[6]。這個報文段將確認服務器端發送的SYNACK分組,并檢查TCP連接的兩端是否正確地打開和運作。
如圖7所示,在確認階段,數據包由客戶端發送至服務器端,TCP中的序列號為c9 f4 65 c3(即上次服務器響應報文的確認號)。
圖8中,報文段的本次確認號為63 cf 1a ca(即上次的序列號加1)表示客戶端下一次希望從主機接收的數據的起始位置。ACK標志為1表明確認號有效,SYN置為0表示連接建立結束。連接建立后,雙方可以根據各自的窗口尺寸開始傳輸數據。
2.3小結
從以上的圖可以看出,利用Wireshark可以針對每一數據包,完成從鏈路層、網絡層、運輸層到應用層的協議解析。通過上面步驟,可以更加直觀的觀察到TCP三次握手建立的過程,有助于理解TCP及其工作原理,掌握協議的語法細節。
3結語
計算機網絡基本理論復雜抽象,不易理解,但這部分內容又是進一步學習“計算機網絡”課程,培養實踐應用能力的基礎。在教學過程中,通過合理組織授課內容,采用先進的教學方法和較為科學的教學手段,使學生能夠較好地掌握計算機網絡的基本理論和方法。利用Wireshark網絡協議分析軟件,進行網絡性能參數和數據代碼的捕獲分析,了解協議的封裝結構、交互過程,對于計算機網絡教學有很大的幫助。
參考文獻:
[1] 謝希仁. 計算機網絡[M]. 大連:大連理工大學出版社,2004.
[2] 楊春勇,潘文君,朱翠濤. 計算機網絡課程教學及輔助教學方法研究[J]. 高等函授學報:自然科學版,2008,21(6):12-14.
[3] Angela Orebaugh,Gilbert Ramirez,Jay Beale. Wireshark & Ethereal Network Protocol Analyzer Toolkit[M]. Burlington:Syngress Press,2006.
[4] Forouzan.B.A. TCP/IP協議族[M]. 3版. 謝希仁,等譯. 北京:清華大學出版社,2006.
[5] 蔣波,李方軍,郝軍. 數據包的截獲與網絡協議分析[J]. 重慶三峽學院學報,2006,22(3):26-28.
[6] Miller D. 數據通訊與網絡[M]. 鄧勸生,薛建新,王涌,譯. 北京:清華大學出版社,2007.
The Application of Wireshark in TCP/IP Network Protocol Teaching
PAN Wen-chan, ZHANG Yun
(College of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing 210003, China)