- 相關推薦
數據通信軟件開發與基本原理分析論文
摘要::在現有局域網技術中,以太網是最通用的通信協議標準。伴隨著以太網技術和標準的不斷發展與完善,其可以為用戶提供更多更好的的數據通信業務。本設計對以太網的發展現狀和光纖通信做了簡要的分析,構建了以太網的測試環境。利用Socket軟件,用光纖收發器和光纖連接兩臺PC機,進行客戶端和服務器之間的通信測試,然后基于VC++環境下利用MFC的CSocket類編程實現客戶端的應用程序,并用軟件編程實現的客戶端與服務器進行了數據通信的測試。
關鍵詞::以太網;光纖;TCPSocket;數據通信
1緒論
1.1以太網簡介
10G以太網代表了有線以太網最先進的技術[1]。10G以太網結構簡單、具有良好的兼容性且造價比較低。千兆以太網作為一種針對企業設備的新型高速標準網絡接口已經得到普遍應用。隨著廣泛開展的各類寬帶業務,10G以太網技術在城域網和電信骨干網等得到廣泛應用。萬兆以太網在設計之初就考慮到城域骨干網需求,充分能夠滿足大多數城市城域網覆蓋[2]。以太網主要應用在LAN、CAN、MAN、WAN等技術領域。
1.2光纖通信
。1)光纖通信的優點相對于電纜通信或微博通信,光纖通信具有許多優點:
。1)容許頻帶很寬,傳輸容量很大
。2)損耗很小,中繼距離很長且誤碼率很。
。3)重量輕、體積。
。4)抗電磁干擾性能好;
。5)泄露小,保密性好;
。6)節約金屬材料,有利于資源合理分配。
。2)光纖通信的應用光纖通信可以傳輸模擬信號和數字信號,因此得到了廣泛的應用:
(1)通信網;
。2)計算機局域網和廣域網;
。3)有線電視網的干線和分配網,工業電視系統,自動控制系統的數據傳輸;
。4)綜合業務光纖接入網。
。3)光纖通信系統的基本組成基本光纖傳輸系統有3部分組成:光發射端,光纖線路和光接收端。圖1示出單向傳輸的光纖通信系統。在本次的設計中,用兩個光纖收發器充當兩個光發射機和光接收機。光纖收發器作為以太網傳輸媒體轉換單元,可以將短距離的雙絞線電信號和長距離的光信號進行互換。
2TCP協議
2.1TCP/IP協議的四個層次
TCP/IP通訊協議具有4層結構,每一層的需求都是通過呼叫它的下一層所提供的網絡來完成,具體各層相應協議的說明解釋如圖2所示。
2.2TCP連接的建立與關閉
。1)TCP連接的建立TCP連接的建立,應用的是“三次握手”法。具體過程如下:第一次握手,客戶端發送一個SYN段(同步序號),指明其要連接的服務器端口。第二次握手,服務器作為應答,發送回包含服務器的初始序號的SYN報文段。并對確認序號(ACK)設置為客戶的ISN加1,以確認客戶的SYN報文段。第三次握手,客戶須對確認序號設置為服務器的ISN加1,以確認服務器的SYN報文段。(2)關閉連接由于TCP關閉連接時需要向每個傳輸方向發送一個關閉連接的報文段,同時還需接受對方的確認報文段,因此關閉連接應用的是“四次握手”法。具體過程如下:第一次握手,客戶端的應用進程向其TCP協議層發出連接終止命令。第二次握手:服務器的TCP協議層收到關閉連接的報文段后,發出確認。第三次握手:服務器告知TCP協議層關閉連接。第四次握手:客戶端收到關閉連接的報文段后,發出確認,服務器收到確認,完全關閉連接。
2.3TCP的流量控制和擁塞控制
TCP的流量進行控制是利用滑動窗口機制實現的,接收方在返回的ACK中會包含自己的接收窗口的大小,以控制發送方的數據發送。在傳輸數據的實際網絡中,由于網絡中的鏈路容量、交換結點中的緩存、處理機等都有著工作的極限,當網絡的需求超過它們的工作極限時,就出現了擁塞,這時可引入一個擁塞窗口。TCP連接建立時,發送方發送一個長度為MSS的報文段,如果網絡沒有出現擁塞,擁塞窗口會增大到2MSS,以便把更多的數據發送出去。如果都收到確認,那么擁塞窗口就按照指數規律一直增大窗口。但如果出現網絡擁塞,擁塞窗口就開始減小。
3Socket軟件數據通信測試
3.1流式套接口
利用socket的數據流進行通信。套接口的工作過程如下:(1)用socket()函數在服務器端建立一個通信的端點;(2)用bind()函數綁定這個端點的地址;(3)在服務器端使用listen()函數偵聽連接請求,當遠程的客戶機使用connect()函數連接listen()函數正在監聽的端口時,使用accept()函數進行處理。當accept()函數處理了連接請求后,將會生成一個新的描述這個連接端口的套接字,利用這個套接字就可以發送和接收數據了。若listen()始終未偵聽到連接請求,則服務器會在accept()處阻塞,直至有連接請求到來。
3.2Socket軟件數據通信測試
TCP/UDPSocket調試工具提供了TCPClient、TCPServer、UDPClient、UDPServer、UDPGroup共5種Socket調試方案。下面是TCPClient方案的調試。在調試過程中,兩臺PC機用兩個光纖收發器和一根光纖連接進行數據的通信。(1)創建TCPClient;(2)向服務器綁定的端口號連接;(3)雙方通信,如圖3和圖4所示。圖3和圖4只是客戶端的數據收發情況,服務進程要先于客戶請求啟動,即只有服務器處在監聽狀態時,客戶端的連接請求才有可能被服務器接收到。
4VC++實現Socket通信編程
4.1CSocket類編程基本原理
。1)連接建立階段:首先服務器中的監聽套按字調用listen()對端口進行監聽,客戶端的套接字調用connect()向服務器端的特定端口發出鏈接請求,客戶機端會調用套接字的OnConnect()告知連接的結果,可以判斷是否鏈接成功并查詢失敗的原因。如果成功連接,表示客戶機和和服務器之問建立起了一個通信的通道,為通信做好準備。(2)通信階段:這是整個過程的核心部分,相對簡單,就是數據的發送,調用send(),receive()函數。(3)拆除連接階段:在傳完數據之后,調用Close()關閉套接字,釋放所分配的資源。當對方的套接字被關閉后,框架會調用OnConnecl()函數通知。
4.2編程實現
Socket數據通信在VisualC++6.0中用程序做一個TCPSocket軟件的客戶端,并能夠通信,操作步驟如下:圖6建立MFCAppWizard[EXE]工程(1)創建MFCAppWizard[EXE]工程;打開VisualC++6.0界面,單擊“文件/新建”如圖6;(2)創建應用程序選擇基本對話框;(3)完成客戶端會話框;(4)添加一個新類;(5)添加成員變量;(6)添加成員函數OnConnect();(7)添加控件程序;(8)在CSocket_002Dlg::OnInitDialog()中添加代碼。服務端和客戶端的通信如圖7所示。從圖7可以看出,編程實現的客戶端可以用來數據通信。
5總結
本設計在TCPSocket的基礎上,完成了數據通信軟件的開發。首先,在兩臺PC機上,用光纖收發器進行數據通信的測試,熟悉了數據通信的基本流程。然后,在VC++開發環境下,熟悉開發環境,創建了一個名“為S ocket_002”的MFCAppWiz—ard[EXE]工程。在這個工程下,建立客戶端和服務器端的對話框,生成一個源程序。在該程序中生成變量,添加控件程序,進行編譯和運行,生成一個.EXE文件。一個TCPSocket的通信軟件的開發就完成了。用開發出的軟件,進行了客戶端和服務器端的通信[3,4]。本設計表明基于VC++開發環境可以方便地開發以太網的數據通信的應用,建立數據通信的測試和應用系統,完成數據通信的任務。在此基礎上還可以在其他的操作系統上完成軟件的數據通信開發,例如Lnix,Unix,WindowsCE操作系統,拓展更寬廣的應用領域。
參考文獻
。1]王國河.基于實時以太網EtherCAT的多軸網絡運動控制系統設計[D].廣州:華南理工大學,2012.
。2]馬殷元.物流裝備控制和監控系統關鍵技術研究[D].蘭州:蘭州交通大學,2017.
。3]丁莉.基于ARM9的遠程頻率采集系統設計[J].微電子學與計算機,2011,28(7):128-131.
。4]董武,陸利坤,李業麗.基于W5300的以太網和串口數據相互轉換系統設計[J].制造業自動化,2013,35(2):139-142.
【數據通信軟件開發與基本原理分析論文】相關文章:
構建鐵路數據通信論文11-09
網絡數據通信的隱蔽通道技術論文11-07
地鐵信號系統數據通信論文11-09
提高數據通信網絡安全的對策論文02-14
分析魏晉文人的生命的價值分析論文11-16
iOS軟件開發論文參考文獻12-09
軟件開發論文參考文獻示例08-06
論文寫作要點實例分析03-19
徐志摩詩歌的特點分析論文03-18
課題論文材料的整理與分析06-15