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