成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從三個方面探討VxWorks網絡協議棧

網絡 網絡管理
下面我們探討了VxWorks網絡協議棧的原理以及結構。那么對于VxWorks的網絡協議棧和MUX接口、MUX接口工作流程分析和MUX的應用都做了具體的分析和講解。

在多種網絡協議以及產品的支持下,讓我們的生活工作有了更多的選擇。那么這里我們就將介紹一下VxWorks網絡協議棧等相關的內容。VxWorks是美國Wind River System公司(風河公司)推出的一個運行在目標機上的高性能、可裁減的嵌入式實時操作系統.它以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍 事、航空、航天等高精尖技術及實時性要求極高的領域中,如衛星通信、軍事演習、彈道制導、飛機導航等.VxWorks操作系統包括進程管理、存儲管理、設 備管理、文件系統管理、網絡協議及系統應用等幾個部分.VxWorks只占用很小的存儲空間,并可高度裁減,保證了系統能以較高的效率運行.它可以根據用 戶需求進行組合,其開放式結構對工業標準的支持使開發者只須做最少的工作即可設計有效的適合于不同用戶的要求.

1 VxWorks的網絡協議棧和MUX接口

VxWorks中的網絡協議棧叫作SENS(Scalable Enhanced Network Stack),即可裁減強網絡協議棧.SENS是基于4.4BSD TCP/IP協議棧發展而來的,包含了許多4.4BSD TCP/IP協議棧沒的協議;而且SENS在實現一些協議功能時增加了許多新特性,如在IP協議實現時增加了多播功能.SENS協議棧層次如圖1所示.

SENS網絡協議棧

SENS的基本特征和傳統的TCP/IP網絡協議棧相似,但從圖1中可以看出SENS最大的特點是在數據鏈路層和網絡協議層之間多了MUX層.在SENS中,網絡接口的驅動程序是叫作END(Enhanced Network Driver),即增強型網絡驅動程序,它處于數據鏈路層.IP層和TCP/UDP層合稱為網絡協議層.在數據鏈路層和網絡協議層之間有應用程序接口(API),這個接口在SENS中叫作MUX(Multiplexer)接口.MUX接口如圖2所示.

SENS中的MUX接口

在網絡協議層,VxWorks典型地使用TCP/IP協議(也支持其它協議);在數據鏈路層典型地使用Ethernet,也支持其它數據傳輸的物理媒體, 例如遠距離連接使用的串行線路接入方式,如PPP等.但是,無論使用什么物理媒體,網絡接口驅動都要用到MUX去與網絡協議層通信(數據鏈路層是一個抽象 概念,網絡接口驅動程序則是這種抽象概念所描述的功能實現的代碼).

在4.3BSD中,VxWorks的網絡接口驅動和協議是緊密結合在一起的,它們通過傳遞特定的數據結構互通信;而在MUX基礎上,它們只是通過MUX間 接地相互作用.例如,在收到一個包后,網絡接口驅動并沒直接與協議層連接.同樣地,當網絡接口驅動準備好向協議層發送數據時,驅動程序會調用一個MUX提 供的功能(函數).這個功能(函數)具體負責將數據傳給協議層的動作細節.應用MUX的主要目的是把網絡接口驅動和協議層分開,這樣就使得網絡接口驅動和 協議層彼此基本上保持獨立.這種獨立性使得加載一個新的協議或網絡接口驅動,所有現有的基于MUX的協議就都可以用這個新的網絡接口驅動程序;同樣,如果 要加一個新的基于MUX的協議,現有的網絡接口驅動也能夠用MUX來與新協議通信.#p#

2 MUX接口工作流程分析

MUX層作為獨立的一個網絡層有其自己的功能函數,但這些功能函數只是其上下兩層通信的接口.網絡協議層和網絡驅動與MUX接口的調用關系如圖3所示.

網絡協議層 MUX 網絡驅動

網絡協議棧的協議提供下面的接口功能函數:

①stackShutdownRtn()

②stackError()

③stackRcvRtn()

④stackTxRestartRtn()

當MUX接口層需要與協議層相互通信時,就調用以上的功能函數.想要使網絡協議層能夠使用MUX,必須至少實現以上四個功能函數.

MUX則實現muxBind()、muxUnBind()、muxDevload()等等.網絡協議層和網絡驅動接口都要根據各自的需要使用MUX接入點.由于MUX是由系統提供的,不需要在應用時再進行額外的編碼工作;只要在使用時,填入正確的參數即可.

例如在VxWorks中,muxDevLoad是這樣定義的:

  1. END_OBJ*muxDevLoad  
  2. (  
  3. int unit,  
  4. END_OBJ*(*endLoad)(char*,void*),  
  5. char* pInitString,  
  6. BOOL loaning,  
  7. void* pBSP  
  8. ) 

網絡協議棧MUX中的其它功能函數在muxLib.h文件中有詳細定義.

網絡接口的驅動程序要完成endLoad()、endUnload()、endSend()等功能函數.MUX使用這些功能函數來與網絡驅動程序通信.當 編寫或加載一個使用MUX的網絡驅動程序時,必須實現圖3中END的所有功能.這些功能函數都是針對具體的網絡接口,即每一個網絡驅動程序中都要有這些功 能函數.#p#

3 MUX的應用

3.1 系統如何通過MUX啟動和使用網絡接口驅動程序——END

系統啟動時要通過任務(與進程概念相近,是嵌入式操作系統中的執行單元)來執行以下功能:

①從存儲器中裝載并啟動END;

②注冊用來處理END的中斷;

③通過END來實現處理包的功能.

在系統啟動時,VxWorks產生一tUsrRoot任務來執行以下的功能:首先初始化網絡任務的工作隊列,然后產生一個tNetTask來處理網絡任務工作隊列中的任務.

tNetTask任務調用muxDevLoad()來裝載網絡接口驅動,在tNetTask中已經定義了網絡驅動設備的endLoad()接入點, muxDevLoad()則也要執行endLoad().EndLoad()執行設備初始化并且返回一個名為END_OBJ的結構.MUX通過在 END_OBJ上加一個指針,指向能完成將數據向MUX上層發送的功能(函數).然后MUX把返回的END_OBJ加到END_OBJ結構鏈表中.這個鏈 表包括目前系統中所有可用的網絡設備.當從muxDevLoad()返回后,網絡設備就準備好可以使用了.

我們必須調用sysIntConnect()來注冊網絡接口設備的中斷處理.最典型的調用sysIntConnect()是在網絡接口設備的 endStart()中.當通過muxDevLoad()來裝載網絡接口設備時,就會調用muxDevStart()來啟動該設備, muxDevStart()就會調用endStar(),從而進行中斷處理的注冊.

系統啟動后,就要依靠中斷來使用該設備.當從網絡設備的中斷來到時,VxWorks激活該設備驅動程序所注冊的中斷服務.中斷服務的工作量應該是最小的, 只需完成從本地硬件上取到包即可.為了使中斷的鎖定時間最少,中斷服務應該僅處理那些要求最少執行時間的任務,例如出錯和狀態改變.中斷服務為了讓所有耗 時的工作在任務級別處理,應該將其排隊.例如:要使在任務級別處理包接受的工作排隊,中斷服務必須調用netJobAdd().在輸入的時候,這個例行程 序(Routine)收到一個功能函數的指針并且直到收到五個額外的參數(指針所指功能函數的參數).

  1. STATUS netJobAdd  
  2. (  
  3. FUNCPTR routine,  
  4. int param1,  
  5. int param2,  
  6. int param3,  
  7. int param4,  
  8. int param5,  
  9. )  

如果調用netJobAdd(),就必須定義網絡驅動在任務級別處理包的接入點.NetJobAdd例行程序將功能函數調用(包括其參數)放入tNetTask的任務隊列中.VxWorks使用tNetTask處理任務級別的網絡處理功能.

這里只是舉例說明了接收包的情況,其它情況下netJobAdd()也一樣能執行對應的入列功能.

3.2 基于MUX網絡協議棧的網絡協議層和網絡接口驅動程序

基于MUX的特點:提供一個接口,使與其相連各層程序的編寫只需在基礎上編寫即可.可以說不論是網絡協議層還是網絡接口驅動程序都可以把MUX看作應用程 序接口(API).在VxWorks目標系統中加載一個網絡接口設備的驅動程序就和編寫一個應用程序一樣的簡單.具體步驟如下:

①編譯驅動程序的源代碼并在VxWorks鏡像中加載;

②編輯target/src/config/BSP/configNet.h;

③編輯BSP的cfonfig.h文件.

注意,如果不重新編譯新的boot ROMs(啟動ROM),那么就不能使用新的END.這就是說,只能啟動一個沒有END的目標系統,所以必須編輯配置文件,才能使用新的END.

由圖3可知,基于MUX的網絡協議與MUX向上綁定,而網絡接口驅動是與MUX向下綁定的.協議層的主要功能是對傳輸層和應用程序提供接口.協議層的代碼編寫也是通過MUX接口提供的接口進行編程,這和通用計算機有很大的相似之處,這里就不再述.

文引用通告地址:http://laocainiao.spaces.eepw.com.cn/articles/trackback/item/21647

責任編輯:佟健 來源: hi.baidu.com
相關推薦

2010-09-10 10:36:13

VxWorks網絡協議

2010-07-12 14:36:18

OSPF動態路由協議

2010-09-10 11:55:55

2010-06-21 15:36:21

互聯網協議

2011-03-24 14:24:05

2022-02-26 16:10:51

Figma設計工具

2022-02-14 10:42:41

移動端標簽設計用戶

2013-05-03 10:11:26

信息安全BYOT

2011-07-20 17:11:11

組策略

2020-02-21 09:00:15

混合云安全公有云

2021-09-14 09:39:06

設計系統框架設計原則

2010-06-07 13:07:26

IPv6協議技術

2020-06-11 09:00:27

SDN網絡架構網絡

2010-09-02 16:46:52

SOAP協議

2010-08-25 17:21:21

DHCP服務器

2010-09-10 18:31:42

搭建tftp服務器

2010-06-12 16:34:57

網絡通信協議

2009-07-23 14:39:23

ASP.NET處理

2010-06-28 11:08:32

BitTorrent協

2010-09-08 09:49:28

藍牙協議棧
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久草在线| 国产成人精品亚洲日本在线观看 | 国产精品成人在线 | 欧美精品在线播放 | 黄色欧美在线 | 久久久久国产精品 | 亚洲三区在线观看 | 天天综合网7799精品 | 久久久久久高潮国产精品视 | 超碰在线免费公开 | 国产一区久久 | 国产高清一区二区三区 | 午夜在线 | 伊人伊成久久人综合网站 | 91免费在线看 | 亚洲精品一区二区三区免 | 成人在线精品视频 | 成人影院在线视频 | 黄色一级电影在线观看 | 91成人在线视频 | 日韩精品在线看 | 欧美激情一区二区三区 | 午夜影视在线观看 | 精品久久九 | 欧美一级二级三级视频 | 亚洲一区在线日韩在线深爱 | 亚洲福利免费 | 美日韩一区二区 | 最新国产精品 | 日本天天色 | 国产成视频在线观看 | 日韩电影中文字幕 | 一区二区三区在线 | 国产福利久久 | 免费永久av| 另类视频在线 | 亚洲精品久久久久久久久久久 | 国产亚洲第一页 | av中文字幕在线 | 精品国产精品国产偷麻豆 | 亚洲国产欧美日韩 |