<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于NetBIOS協(xié)議的網(wǎng)絡(luò )通信系統的設計與實(shí)現

基于NetBIOS協(xié)議的網(wǎng)絡(luò )通信系統的設計與實(shí)現

作者: 時(shí)間:2012-01-03 來(lái)源:網(wǎng)絡(luò ) 收藏
1
  在有文件服務(wù)器存在的計算機網(wǎng)絡(luò )中,要PC機之間的通信或信息交換,一般是由一個(gè)工作站把信息寫(xiě)入文件服務(wù)器,然后由另一個(gè)工作站去讀取,這是工作站之間信息交換的一種方式,但不是最佳、最方便的方式。因為使用文件服務(wù)器,速度慢、需占用硬盤(pán)空間,還要經(jīng)常對文件進(jìn)行維護、管理等等。而且用戶(hù)對文件的訪(fǎng)問(wèn)權也受到權限等因素的限制,更重要的是服務(wù)器的存在,提高了網(wǎng)絡(luò )系統的成本及造價(jià)。所以,在很多情況下采用Net-BIOS支持下的PC機之間直接通信則更為簡(jiǎn)捷、經(jīng)濟。

2 數協(xié)
   數據通信通常包含以下幾項內容:

 一 是連接的建立和拆除。即在計算機中,為使源主機與目標主機進(jìn)行通
信,通常通信前先在它們之間建立連接,即建立一條由源主機到目標主機的通信線(xiàn)路,在通信結束時(shí)拆除已建立的連接。

二 是數據傳送控制。也就是在通信雙方建立起連接之后,利用該連接傳送用戶(hù)數
據。另外還有錯誤的檢測及處理等。

(NETWORK BASICINPUT/OUTPUTSYSTEM)網(wǎng)絡(luò )基本輸入/輸出系統,是一種用于計算機之間進(jìn)行通信的專(zhuān)用程序,是計算機中的重要之一。它支持TCP/IP、MAP/TOP、IEEE和OSI等,而且正迅速成為不同操作系統環(huán)境下普遍使用的編程平臺。NetBIOS基本概念包括NetBIOS名字、NetBIOS命令、NetBIOS通信方式等,下面分別給以說(shuō)明。

NetBIOS名字:NetBIOS是一種按名字工作的系統,每個(gè)網(wǎng)絡(luò )工作站都有一個(gè)名字。由NetBIOS保留一張名字表,每個(gè)名字由16字符組成,在進(jìn)行通信時(shí),信息的源地址和目的地址都是用名字來(lái)表示的。

NetBIOS命令:NetBIOS的功能是由一系列命令完成的。NetBIOS命令返回方式有兩種WAIT和NO_WAIT。前者要等到命令完成之后,才返回你的程序,后者則立即返回你的程序,并帶回“立即返回代碼”,待命令執行完時(shí)又返回一個(gè)“最終返回代碼”。

NetBIOS通信方式:NetBIOS有兩種通信方式,即數據報通信方式和會(huì )話(huà)通信方式。數據報通信是一種非面向連接的通信方式,每個(gè)數據報中的信息長(cháng)度必須小于或等于512個(gè)字節,而會(huì )話(huà)通信是一種面向連接的通信方式,信息長(cháng)度限制在65535字節以?xún)取?br />
3 NetBIOS支持下的系統的

本文引用地址:http://dyxdggzs.com/article/155376.htm

3.1正確選擇通信方式
我們知道NetBIOS的通信方式有兩種,即數據報通信方式和會(huì )話(huà)通信方式。那么,在通信系統時(shí)究竟采用哪種通信方式呢?這要根據我們的實(shí)際情況,進(jìn)行具體分析。
由于數據報通信時(shí),把每一個(gè)報文作為一個(gè)獨立的數據報處理,即各個(gè)數據報之間相互獨立,單獨傳送,不用建立和拆除會(huì )話(huà)連接,所以簡(jiǎn)單方便、通信速度快。但這種機制在通信過(guò)程中不檢測信息是否安全到達目的地,系統出現差錯時(shí),無(wú)出錯提示信息,而且每個(gè)數據報信息長(cháng)度受到512字節的限制,所以,數據報通信僅適用于待發(fā)送的信息是一系列互不相關(guān)的報文及一些簡(jiǎn)單對話(huà)、小數據的場(chǎng)合。

而會(huì )話(huà)通信方式是在通信之前先在發(fā)送方和接收方之間建立會(huì )話(huà)連接,然后進(jìn)行會(huì )話(huà)通信,在會(huì )話(huà)通信過(guò)程中,發(fā)出的所有報文都能正確無(wú)誤地送到目的地。如果發(fā)出的報文不止一個(gè),那么通信將保證收到報文次序和發(fā)送報文次序一致。如果報文在傳送過(guò)程中發(fā)生差錯,通信協(xié)議會(huì )自動(dòng)地進(jìn)行重發(fā),加以更正,并有出錯信息提示。最后,在送完報文之后撤除會(huì )話(huà)連接。

由此可見(jiàn),會(huì )話(huà)通信過(guò)程比較復雜,通信速度較慢,又通信中信息長(cháng)度限制在65535字節以?xún)?,所以,?huì )話(huà)通信適于點(diǎn)到點(diǎn)之間多次往復式對話(huà)、大數據場(chǎng)合。

數據報通信方式和會(huì )話(huà)通信方式各自都有優(yōu)點(diǎn)和缺點(diǎn)。數據報方式適合于小批量的傳送數據,可靠性不高,數據傳送時(shí)易發(fā)生錯誤或丟失,但它的傳送過(guò)程比較簡(jiǎn)單,易于,易于管理。會(huì )話(huà)方式可傳送的信息量大,可靠性高,但傳送過(guò)程比較復雜,在發(fā)送信息之前先要建立會(huì )話(huà)連接,信息傳送結束后要撤除會(huì )話(huà)連接,不易于管理。我們在具體通信系統時(shí),要根據自己的實(shí)際情況、實(shí)際要求和實(shí)際傳送數據量的大小選擇合適的通信方式。若A工作站和B工作站之間以數據報
方式通信,步驟如下:

  
  工作站A 工作站B
a增加名字A 增加名字B
b發(fā)送報文給B 接收
c接收 發(fā)送報文給A
d刪除名字A 刪除名字B


  若A工作站和B工作站之間以會(huì )話(huà)方
式通信,步驟如下:

工作站A 工作站B
a增加名字A 增加名字B
bListen Call A站
c發(fā)送報文給B 接收報文
d接收報文 發(fā)送報文給A
eHang up B站 Hang up A站
f刪除名字A 刪除名字B


3.2正確選擇NetBIOS命令的返回方式
NetBIOS命令的返回方式有WAIT(等待)和NO_WAIT(非等待)兩種方式。如果采用WAIT方式,則要等到NetBIOS命令完成之后才返回你的程序。如果采用NO_WAIT
方式,那么又可以有兩種選擇:一種是采用輪詢(xún)方法,即反復查詢(xún)網(wǎng)絡(luò )控制塊(NCB)中的最終返回代碼字段,當它的值從FF變?yōu)?0時(shí),表示NetBIOS命令完成,返回用戶(hù)程序。另一種是將一個(gè)POST程序的地址告訴NetBIOS,使NetBIOS在完成命令時(shí)喚醒該程序,執行一個(gè)指定的程序段。這兩種方法都是在后臺進(jìn)行的,它們的主要差別在于對網(wǎng)負荷的影響。例如,A站發(fā)出一命令,要求B站執行一項較費時(shí)的任務(wù),如果A站采用NO_WAIT的輪詢(xún)方法,不斷地詢(xún)問(wèn)對方是否完成任務(wù),這樣會(huì )大大地增加網(wǎng)絡(luò )負荷,這時(shí)盡管輪詢(xún)比較容易編程,那也不是一種好的選擇。我們在通信系統設計時(shí),要綜合各種因素,選擇合適的NetBIOS命令返回方式。

3.3分組長(cháng)度的限制及差錯和超時(shí)
數據報通信,每個(gè)報文長(cháng)度上限為512字節。會(huì )話(huà)通信中,每個(gè)報文長(cháng)度上限為
65535字節。那么,當我們要傳送的數據信息大小超過(guò)所規定的限制值時(shí)怎么辦呢?這時(shí)可采用分組處理的辦法,按照規定的信息長(cháng)度限制,將數據分為若干段,對每一段進(jìn)行一次發(fā)送,在接收端再把它們裝配起來(lái)復原。另一種方法是依照信息長(cháng)度限制規定來(lái)設計一個(gè)數據記錄的格式,這樣每個(gè)報文都可安全發(fā)送。

無(wú)論采用何種方式的通信,通信過(guò)程中差錯是不可避免的,所以差錯處理是必不可少的。當出現差錯時(shí),首先要根據差錯代碼確定差錯性質(zhì),并做出相應處理,排除錯誤之后繼續執行后面的命令。超時(shí)通常是指一個(gè)工作站向另一個(gè)工作站發(fā)出信息到收到對方應答所需時(shí)間的超時(shí)時(shí)限。

引起超時(shí)的因素很多,一般是因為網(wǎng)絡(luò )過(guò)于繁忙或接收站故障。

3.4調用NetBIOS功能
在編寫(xiě)通信程序中,要調用一個(gè)Net-BIOS功能,必須首先構造一個(gè)網(wǎng)絡(luò )控制塊,然后把網(wǎng)絡(luò )控制塊的地址寫(xiě)入ES:BX中,作為指向該控制塊的遠程地址指針,最后執行5CH中斷,使NetBIOS自動(dòng)進(jìn)入ES:BX指定的地址,讀網(wǎng)絡(luò )控制塊信息,從而得知有關(guān)操作信息。下面是網(wǎng)絡(luò )控制塊的格式及所對應的結構定義。

4 NetBIOS支持下的網(wǎng)絡(luò )通信系統的
  作為NetBIOS支持下的網(wǎng)絡(luò )通信系統的實(shí)現,我們以會(huì )話(huà)通信方式下雙機通信為
例。

4.1通信硬件環(huán)境要求
兩臺獨立的PC機各自接有網(wǎng)卡,通過(guò)一根同軸電纜線(xiàn)將其相連。同軸電纜的兩端各接50Ω的匹配器,這樣就從物理上連通了兩臺PC機。

4.2通信軟件環(huán)境要求
DOS5.0以上版本啟動(dòng),同時(shí)磁盤(pán)上應有以下文件:IPX.EXE網(wǎng)絡(luò )通信協(xié)議;NetBIOS協(xié)議支持用戶(hù)程序;TC高級語(yǔ)言環(huán)境,用以編寫(xiě)用戶(hù)通信程序。

4.3通信程序
要實(shí)現兩臺PC機間的雙機通信,必須編寫(xiě)NetBIOS支持下的雙機通信程序,包括
發(fā)送信息程序SEND.C和接收信息程序RECEIVE.C。其程序流程框圖如下:

程序略。

這樣在兩臺PC機上分別執行SEND程序和RECEIVE程序,就可將信息從A站(PC1機)上傳送到B站(PC2機)上,實(shí)現雙機通信。

5 結束語(yǔ)


實(shí)現NetBIOS支持下的計算機網(wǎng)絡(luò )通信,可使我們更加快速、方便、經(jīng)濟地進(jìn)行計算機間的數據傳送,以達到數據通信與資源共享的目的。通過(guò)網(wǎng)絡(luò )通信,一方面為特定環(huán)境下的用戶(hù)實(shí)現計算機間的數據傳送提供了重要的支持,另一方面也大大地提高了通信網(wǎng)絡(luò )的性能。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>