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