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