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