亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        某型干擾系統(tǒng)網(wǎng)絡(luò)故障的分析與解決方法

        2016-05-17 11:18:1991715部隊楊成理湛江705廠歐獻(xiàn)輝91715部隊楊水清
        電子世界 2016年8期

        91715部隊 楊成理湛江705廠 歐獻(xiàn)輝91715部隊 楊水清

        ?

        某型干擾系統(tǒng)網(wǎng)絡(luò)故障的分析與解決方法

        91715部隊 楊成理
        湛江705廠 歐獻(xiàn)輝
        91715部隊 楊水清

        【摘要】本文介紹了VxWorks系統(tǒng)下TCP/IP協(xié)議的實現(xiàn)方式,通過對Socket屬性的分析,解決了網(wǎng)絡(luò)連接判斷的不準(zhǔn)確性和由此導(dǎo)致的網(wǎng)絡(luò)任務(wù)阻塞。

        【關(guān)鍵詞】網(wǎng)絡(luò)故障;VxWorks;TCP/IP協(xié)議;Socket

        某型干擾系統(tǒng)體系龐大、配套復(fù)雜,各組件之間的協(xié)同主要依賴通信控制器進(jìn)行集中組織。在實際使用過程中,偶爾出現(xiàn)通信控制器顯示與其他組件之間的通信連接狀態(tài)正常但卻無法進(jìn)行數(shù)據(jù)傳輸?shù)墓收希踔猎谀辰M件關(guān)機(jī)后的很長一段時間內(nèi)在通信控制器上顯示其通信連接狀態(tài)正常。該通信控制器的網(wǎng)絡(luò)控制軟件基于VxWorks操作系統(tǒng)開發(fā),使用TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)交換。本文通過剖析TCP/IP協(xié)議重要接口Socket套接字在VxWorks操作系統(tǒng)中的具體配置方法,來解決該干擾系統(tǒng)無法及時更新TCP連接狀態(tài)以及因網(wǎng)絡(luò)非正常中斷等原因?qū)е戮W(wǎng)絡(luò)任務(wù)阻塞而引起的故障。

        1 幾個相關(guān)概念

        1.1TCP/IP協(xié)議簡介

        TCP/IP協(xié)議最早由麻省理工大學(xué)和一些商業(yè)組織為美國國防部開發(fā),并在Internet的前身即ARPANET上得到初次實現(xiàn)。TCP/IP協(xié)議是由一組在不同層次上實現(xiàn)的多個協(xié)議形成的組合,通常分為鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層等層次,在TCP/IP網(wǎng)絡(luò)協(xié)議得以具體實現(xiàn)的各個環(huán)節(jié)上發(fā)揮著不同的作用。雖然犧牲了網(wǎng)絡(luò)傳輸?shù)乃俣群托剩騎CP/IP協(xié)議同時滿足可擴(kuò)展性強(qiáng)、可靠性高及分布式實現(xiàn)等突出特點,已成為實際上的“全球互聯(lián)”基礎(chǔ)性協(xié)議。作為頂層協(xié)議,TCP/IP協(xié)議并沒有具體規(guī)定應(yīng)用程序和協(xié)議軟件的接口細(xì)節(jié)[1],而采用與操作系統(tǒng)無關(guān)的Socket套接字來具體實現(xiàn),后者在VxWorks操作系統(tǒng)中被廣泛使用。

        1.2VxWorks操作系統(tǒng)

        VxWorks 操作系統(tǒng)是美國風(fēng)河公司(WindRiver)在1983年開發(fā)的一種嵌入式實時操作系統(tǒng),因其可靠性高和實時性強(qiáng)等突出特點被廣泛地應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及對實時性要求極高的領(lǐng)域中,如衛(wèi)星通訊、彈道制導(dǎo)、飛機(jī)導(dǎo)航等。VxWorks操作系統(tǒng)提供了完善的配套機(jī)制來實現(xiàn)對TCP/IP協(xié)議的”透明”訪問,包括Socket套接字、遠(yuǎn)程過程調(diào)用(RPC)、簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)、網(wǎng)絡(luò)文件系統(tǒng)(NFS)、遠(yuǎn)程Shell執(zhí)行(RSH)、文件傳輸協(xié)議(FTP或TFTP)、引導(dǎo)程序協(xié)議(BOOTP) 和動態(tài)主機(jī)配置協(xié)議(DHCP)等。無論是松耦合的串行線路、緊耦合的利用共享內(nèi)存的背板總線或標(biāo)準(zhǔn)的廣域網(wǎng)連接,VxWorks操作系統(tǒng)的網(wǎng)絡(luò)機(jī)制都遵循標(biāo)準(zhǔn)的Internet 協(xié)議。

        1.3Socket套接字

        隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,TCP/IP協(xié)議被集成到操作系統(tǒng)內(nèi)核中,并用Socket套接字來提供一個標(biāo)準(zhǔn)的通信端口。通過這個端口,一臺計算機(jī)能與任何一臺具有Socket端口的計算機(jī)進(jìn)行通信。Socket套接字記錄了通信雙方進(jìn)行交互必需的所有信息,其建立在TCP和UDP協(xié)議之上,一旦創(chuàng)建了Socket實例,該套接字就會一直存在,直到該TCP連接被關(guān)閉。

        作為常用的通信方式,在客戶端和服務(wù)器端通信時,應(yīng)用程序均會使用一個預(yù)先規(guī)定的事件序列來完成整個通信過程。首先,客戶端和服務(wù)器端均要創(chuàng)建一個Socket套接字。接著,服務(wù)器端調(diào)用bind()函數(shù)給Socket套接字分配一個預(yù)先約定的端口,客戶端和服務(wù)器端均能使用sendto()和recvfrom()函數(shù)來發(fā)送和接收數(shù)據(jù)包直至完成傳遞。最后,客戶端和服務(wù)器端均調(diào)用closesocket()函數(shù)來關(guān)閉套接字,從而完成整個通信流程。

        上述函數(shù)的原型描述如下:

        (1)創(chuàng)建套接字

        SOCKET PASCAL FAR socket(int af, int type, int protocol);

        參數(shù):af指定通信發(fā)生的區(qū)域;type描述套接字類型;protocol說明套接字使用的協(xié)議。

        (2)綁定本地地址

        INT PASCAL FAR bind(SOCKET s, const struct sockaddr FAR * name, int len);

        參數(shù):s是由socket()函數(shù)創(chuàng)建且未進(jìn)行連接的套接字句柄;name指套接字s的本地名稱;len為name的長度。

        (3)建立連接

        建立套接字連接需要使用connect()和accept()函數(shù),前者用于建立連接,但此時并無實際的數(shù)據(jù)包交換;后者用于等待某客戶進(jìn)程的實際連接。上述四個函數(shù)可以完成一個完全五元通信(協(xié)議、本機(jī)地址和端口號、目的地址和端口號)相關(guān)的設(shè)置。

        (4)數(shù)據(jù)傳輸

        當(dāng)一個基于TCP/IP協(xié)議的連接建立之后,可以使用send()和recv()函數(shù)發(fā)送與接收數(shù)據(jù)。

        INT PASCAL FAR send(SOCKET s, const char FAR *buf1, int len, int flags1);

        INT PASCAL FAR recv(SOCKET s, const char FAR *buf2, int len, int flags2);

        參數(shù):s表示Socket套接字實例;buf1表示發(fā)送緩沖區(qū),buf2表示接收緩沖區(qū);len表示緩沖區(qū)長度;flags1指定傳輸控制方式如是否發(fā)送帶外數(shù)據(jù),flags2用于指定傳輸控制方式如是否接收帶外數(shù)據(jù)。

        1.4設(shè)置Socket套接字選項

        通過上述程序設(shè)置的Socket套接字無法定義用于控制Socket套接字及TCP協(xié)議的具體細(xì)節(jié)。VxWorks操作系統(tǒng)提供setsockopt()函數(shù)來進(jìn)行設(shè)置,其定義如下[2]:

        STATUS setsockopt( int s, int protocol, int optionname, char * optionval, int optionlen );

        參數(shù):s表示Socket套接字實例;protocol表示協(xié)議標(biāo)準(zhǔn),可選IPPROTO_TCP,IPPROTO_IP或SOL_SOCKET;optionval表示需設(shè)置選項值的地址;optionlen表示需設(shè)置選項值的長度;

        optionname表示需設(shè)置的選項,常用的選項如下表所示:

        TCP連接建立后,若連接的任何一方因某種原因?qū)е逻B接中斷,TCP必須能夠自動檢測到網(wǎng)絡(luò)中斷并釋放該連接。如果連接已建立,該定時器在無數(shù)據(jù)傳輸時間達(dá)到TCPTV_KEEP_IDLE時啟動,TCP將發(fā)送一個數(shù)據(jù)長度為0的連接狀態(tài)詢問報文,若連接正常,則系統(tǒng)能收到應(yīng)答信號,否則TCP將每隔TCPTV_KEEPINTVL時間間隔且最多發(fā)送TCPTV_KEEPCNT次連接狀態(tài)詢問報文,若仍沒接收到應(yīng)答信號,TCP將自動釋放該連接,與該連接相關(guān)的所有資源都將被釋放,所有阻塞在該連接上的讀寫任務(wù)都將立即被解除[3]。

        2 故障原因分析

        通過對VxWorks操作系統(tǒng)下TCP協(xié)議的分析,引發(fā)該干擾系統(tǒng)網(wǎng)絡(luò)故障的主要原因可能是當(dāng)TCP連接的某一方離線時,其連接狀態(tài)無法及時得到更新并廣播給網(wǎng)絡(luò)內(nèi)與其相連的其他終端設(shè)備,后續(xù)的TCP數(shù)據(jù)包不斷堆積造成在TCP連接建立時所申請的緩沖區(qū)溢出,導(dǎo)致控制軟件無法響應(yīng)其他周邊設(shè)備的TCP連接請求而形成網(wǎng)絡(luò)任務(wù)阻塞。

        分析某型干擾系統(tǒng)控制軟件的源代碼,在/target/h/ net/tcp_timer.h下TCP連接的默認(rèn)值如下:

        tcp_keepidle = 120*60;

        tcp_keepintvl = 75;

        tcp_maxidle = 8;

        由上述代碼可見,TCP連接建立后,控制軟件在無數(shù)據(jù)傳輸時間達(dá)到120*60秒即2小時后TCP將發(fā)送一個數(shù)據(jù)長度為0的連接狀態(tài)詢問報文,若連接正常,則系統(tǒng)能收到應(yīng)答信號,否則TCP將每隔75秒且最多發(fā)送8次連接狀態(tài)詢問報文,若仍沒接收到應(yīng)答信號,TCP將自動釋放該連接,在釋放之前均默認(rèn)為TCP連接正常,控制軟件不斷發(fā)送數(shù)據(jù)至發(fā)送緩沖區(qū),導(dǎo)致緩沖區(qū)數(shù)據(jù)不斷增加直到緩沖區(qū)溢出,其他網(wǎng)絡(luò)任務(wù)被阻塞而導(dǎo)致該干擾系統(tǒng)出現(xiàn)網(wǎng)絡(luò)故障。

        3 解決方法與步驟

        通過上述分析,建立TCP連接時所需tcp_keepidle、tcp_keepintvl、tcp_maxidle等參數(shù)與后續(xù)連接過程中連接狀態(tài)的及時更新息息相關(guān),能有效預(yù)防緩沖區(qū)溢出、網(wǎng)絡(luò)任務(wù)阻塞等故障的出現(xiàn),可通過setsockopt()函數(shù)或者在Socket套接字的其他初始化函數(shù)中對上述參數(shù)進(jìn)行更改。

        針對某型干擾系統(tǒng)網(wǎng)絡(luò)故障出現(xiàn)的部位,在VxWorks操作系統(tǒng)下修改控制軟件的源代碼,在初始化Socket套接字時增加對如下代碼:

        重新編譯后通電測試,在網(wǎng)絡(luò)非正常中斷大約100s后,系統(tǒng)檢測到該網(wǎng)絡(luò)中斷并實時更新網(wǎng)絡(luò)狀態(tài)為連接斷開,系統(tǒng)與其余網(wǎng)絡(luò)的通信在網(wǎng)絡(luò)阻塞了大約60s左右后恢復(fù)正常,該干擾系統(tǒng)的網(wǎng)絡(luò)故障排除。

        4 結(jié)束語

        該文通過在VxWorks操作系統(tǒng)中修改Socket套接字的相關(guān)選項,解決了某型干擾系統(tǒng)在實際應(yīng)用中無法及時更新TCP連接狀態(tài)以及因網(wǎng)絡(luò)非正常中斷等導(dǎo)致網(wǎng)絡(luò)任務(wù)阻塞的故障,極大地提高了系統(tǒng)的可靠性。

        參考文獻(xiàn)

        [1]Ed Taylor編著,王虎,鄧宏濤,劉志剛等譯.TCP/IP使用詳解[M].機(jī)械工業(yè)出版社,1999.

        [2]李方敏編著.VxWorks高級程序設(shè)計[M].清華大學(xué)出版社,2004.

        [3]高飛,高平編著.計算機(jī)網(wǎng)絡(luò)和網(wǎng)絡(luò)安全基礎(chǔ)[M].北京理工大學(xué)出版社,2002.

        中文无码一区二区三区在线观看| 熟妇人妻丰满少妇一区| 人妻系列中文字幕av| 欧美丰满少妇xxxx性| 明星性猛交ⅹxxx乱大交| 99热门精品一区二区三区无码| 超短裙老师在线观看一区| 中文字幕一区二区中出后入| 九九热线有精品视频86| 日韩另类在线| 61精品人妻一区二区三区蜜桃| 风韵丰满熟妇啪啪区99杏| 久久99精品九九九久久婷婷| 国产女人18一级毛片视频| 一本色道久久88综合| 蜜桃精品人妻一区二区三区| 99久久久无码国产精品6| 色综合久久无码中文字幕app| 日韩av中文字幕少妇精品| 韩国av一区二区三区不卡| 东北寡妇特级毛片免费| 波多野结衣一区二区三区视频| 白色白在线观看免费2| 欧洲多毛裸体xxxxx| 丝袜足控一区二区三区| 日本一区二区三本视频在线观看| 国产一区二区三区在线视频观看| 性高朝大尺度少妇大屁股| 狼人国产精品亚洲| 国产一区二区一级黄色片| 8x国产精品视频| 台湾佬娱乐中文22vvvv | 国产爆乳美女娇喘呻吟久久| 亚洲国产精品国自拍av| 精品三级av无码一区| 亚洲av无码成人网站www| 亚洲女人天堂成人av在线| 成视频年人黄网站免费视频| 久久婷婷综合色丁香五月| 久久久婷婷综合亚洲av| 激情综合五月开心婷婷|