網(wǎng)絡(luò)協(xié)議及網(wǎng)絡(luò)軟件框架設(shè)計(jì)_第1頁
網(wǎng)絡(luò)協(xié)議及網(wǎng)絡(luò)軟件框架設(shè)計(jì)_第2頁
網(wǎng)絡(luò)協(xié)議及網(wǎng)絡(luò)軟件框架設(shè)計(jì)_第3頁
網(wǎng)絡(luò)協(xié)議及網(wǎng)絡(luò)軟件框架設(shè)計(jì)_第4頁
網(wǎng)絡(luò)協(xié)議及網(wǎng)絡(luò)軟件框架設(shè)計(jì)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、網(wǎng)絡(luò)協(xié)議及網(wǎng)絡(luò)軟件框架設(shè)計(jì)網(wǎng)絡(luò)協(xié)議 · TCP/IP (網(wǎng)絡(luò)控制協(xié)議和網(wǎng)際協(xié)議) OSI 與 UNIX系統(tǒng)中協(xié)議的對(duì)應(yīng)關(guān)系圖,及不同網(wǎng)絡(luò)在OSI中的位置  OSI 開放式系統(tǒng)互聯(lián)參考模型 UNIX系統(tǒng)應(yīng)用層(Application)-> ->->         ->->Network 網(wǎng)絡(luò)文件系統(tǒng)(NFS)表示層(Presentation)會(huì)話層 (Session)SNMPFTPSMTPTelnet.傳輸層(Transport)TCP  UDP

2、網(wǎng)絡(luò)層(Network)ICMP,IGMP,RIPIPARP數(shù)據(jù)鏈路層(Data Link)LAN驅(qū)動(dòng)器 LLC            -介質(zhì)訪問控制 MAC CSMA/CD(載波偵聽/多路訪問)在多個(gè)網(wǎng)卡驅(qū)動(dòng)程序間交換WinNT(NDIS)IEEE802.3 Ethernet MACIEEE802.5 Token ring MACFDDI DMAC網(wǎng)絡(luò)接口卡驅(qū)動(dòng)器物理層(Physical)物理層 鏈接  TCP/IP基礎(chǔ) · 普通網(wǎng)卡的MAC層接口 網(wǎng)卡內(nèi)部總線<=&

3、gt;802.3 MAC引擎(Engine)<=>譯碼器/解碼器(Encoder/decoder) & PLL<=>10/100 Base-T網(wǎng)絡(luò) & AUI  |   LED邏輯顯示 收包過程  MAC從譯碼/解碼器接收到來的數(shù)據(jù)包,首先檢查SFD,檢查完畢后,MAC認(rèn)為SFD后面所有的位為幀數(shù)據(jù)位.讀目的地址DA,把它和已變成的地址過濾中地址比較,如果DA通過了地址過濾層,這個(gè)幀會(huì)被放入網(wǎng)卡的存儲(chǔ)空間.在整個(gè)整接收完成后,MAC檢查FCS的有效性. · 以太幀格式(Eth

4、ernet Frame Format) 101010.SFD目的地址DA源地址SALength FieldLLC DataPadFCS可多達(dá)7字節(jié)1字節(jié)6字節(jié)6字節(jié)2字節(jié)4字節(jié)幀引導(dǎo)頭(preamble)幀的長(zhǎng)度約64字節(jié)-1500字節(jié)<=傳輸方向SFD=Start of Frame DelimiteDA=Destination AddressSA=Source AddressLLC=Logical Link ControlFCS=Frame Check Sequence or Cyclic Redundancy Check(CRC)· SNMP (簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議 Simpl

5、e Network Management Protocol) SNMP 用來管理網(wǎng)絡(luò)設(shè)備和獲得外圍設(shè)備信息,屬于TCP/IP的一部分,具有協(xié)議獨(dú)立性.利用SNMP, 一個(gè)管理工作站可以遠(yuǎn)程管理所有支持這種協(xié)議的網(wǎng)絡(luò)設(shè)備,包括監(jiān)視網(wǎng)絡(luò)狀態(tài)、修改網(wǎng)絡(luò)設(shè)備配置、接收網(wǎng)絡(luò)事件警告等。管理信息庫(MIB): 兩種類型 MIB-1, MIB-2.MIB是一個(gè)樹形結(jié)構(gòu),SNMP協(xié)議消息通過遍歷MIB樹形目錄中的節(jié)點(diǎn)(OID)來訪問網(wǎng)絡(luò)中的設(shè)備.MIB 樹的每個(gè)節(jié)點(diǎn)被指定為一個(gè)數(shù)字(非負(fù)數(shù)),同一層的節(jié)點(diǎn)用不同的數(shù)字區(qū)分.這些節(jié)點(diǎn)數(shù)字由標(biāo)準(zhǔn)組織指定.MIB樹中的任何一個(gè)節(jié)點(diǎn)由其所處的位置來命名.因?yàn)橥粚拥墓?jié)

6、點(diǎn)數(shù)字皆不同,到達(dá)某個(gè)節(jié)點(diǎn)的路由可以由從樹根到此節(jié)點(diǎn)所經(jīng)過的節(jié)點(diǎn)的數(shù)字串來表示.這個(gè)數(shù)字串稱為相應(yīng)MIB對(duì)象的對(duì)象標(biāo)識(shí)符(OID).例如, ODI,.2.1.1 代表的對(duì)象是從 命名為“1”的根節(jié)點(diǎn)開始,后續(xù)的下級(jí)節(jié)點(diǎn)“3”,再下一級(jí)是“6”,依此類推.管理信息結(jié)構(gòu)標(biāo)識(shí)(SMI): 定義MIB中行的技術(shù)規(guī)范.SNMP目前有兩種版本 SNMP v1 和 SNMP v2.SNMP協(xié)議單元(PDU)實(shí)現(xiàn)代理和管理站間的通信,及Server 和 Target的通信.通信類型類型PDU類型傳輸方向說明0GetRequestServer->Target用來從Target上獲得一個(gè)或多個(gè)

7、SNMP的對(duì)象(OID)值1GetNextRequestServer->Target在Target上的MIB中獲得下一個(gè)SNMP的對(duì)象(OID)值2GetResponseTarget->ServerTarget響應(yīng)ServerSNMP對(duì)象請(qǐng)求3SetRequestServer->TargetServer上程序?yàn)門argetMIB中的OID賦值4TrapTarget->ServerTarget用它來通知Server有一個(gè)特定時(shí)間發(fā)生目前好的SNMP網(wǎng)絡(luò)管理軟件是惠普公司的 OpenView. · BSD套接字(BSD Sockets) BSD Sockets 使

8、用的最廣泛的網(wǎng)絡(luò)程序編程方法,主要用于應(yīng)用程序的編寫,用于網(wǎng)絡(luò)上主機(jī)與主機(jī)之間的相互通信.UNIX,Linux,VxWorks均支持BSD Sockets,Windows的Winsock基本上是來自BSD SocketsSocket分為Stream Sockets和Data Sockets.Stream Sockets是可靠性的雙向數(shù)據(jù)傳輸用TCP,如HTTP,FTP等Data Sockets是不可靠連接用UDP,如多點(diǎn)廣播,DHCP,SNMP,RIP等.· TCP服務(wù)器端和一個(gè)TCP客戶端通信的程序過程   服務(wù)器 客戶機(jī) 創(chuàng)建一個(gè)Socket sFd =soc

9、ket (AF_INET, SOCK_STREAM, 0) 把Socket和本機(jī)的IP,TCP口綁定 bind (sFd, (struct sockaddr *) &serverAddr, sockAddrSize) 為客戶連接創(chuàng)建等待隊(duì)列 listen (sFd, SERVER_MAX_CONNECTIONS)這里循環(huán)等待,如有客戶連接請(qǐng)求,則接受客戶機(jī)連接要求 accept (sFd, (struct sockaddr *) &clientAddr, &sockAddrSize) 接受客戶機(jī)發(fā)來的信息 fioRead (sFd, (char *) &clie

10、ntRequest, sizeof (clientRequest) 給客戶機(jī)發(fā)信息 write (sFd, replyMsg, sizeof (replyMsg) 關(guān)閉Socket,通信終止 close (sFd)兩個(gè)淺藍(lán)色的函數(shù)是兩個(gè)Sockets的握手函數(shù),即在這里建立連接創(chuàng)建一個(gè)Socket sFd =socket (AF_INET, SOCK_STREAM, 0) 注意:客戶端不需要綁定,因?yàn)門CP口是動(dòng)態(tài)的.向服務(wù)器端發(fā)送連接請(qǐng)求,并在這里等待回應(yīng),如收到回應(yīng)則向下執(zhí)行 connect (sFd, (struct sockaddr *) &serverAddr, sockAd

11、drSize) 服務(wù)器接受連接請(qǐng)求后,讀服務(wù)器發(fā)過來的信息 read(sFd,buffer,20)向服務(wù)器發(fā)信息 write(sFd, buffer, 20);關(guān)閉Sockets close (sFd) · UDP服務(wù)器端和一個(gè)UDP客戶端通信的程序過程   服務(wù)器 客戶機(jī) 創(chuàng)建一個(gè)Socket sFd =socket (AF_INET, SOCK_DGRAM, 0) 把Socket和本機(jī)的IP,TCP口綁定 bind (sFd, (struct sockaddr *) &serverAddr, sockAddrSize) 不需要?jiǎng)?chuàng)建等待隊(duì)列 這里循環(huán)等待

12、,如有客戶連接則接受,并讀取客戶發(fā)來的信息 recvfrom (sFd, (char *) &clientRequest, sizeof (clientRequest), 0, (struct sockaddr *) &clientAddr, &sockAddrSize)關(guān)閉Socket,通信終止 close (sFd) 這里不建立連接,只是數(shù)據(jù)收發(fā)<-創(chuàng)建一個(gè)Socket sFd =socket (AF_INET, SOCK_DGRAM, 0) 注意:客戶端不需要綁定,因?yàn)閁CP口是動(dòng)態(tài)的.向服務(wù)器端發(fā)送連接請(qǐng)求和信息,這里不等待服務(wù)器的響應(yīng) sendto (s

13、Fd, (caddr_t) &myRequest, sizeof (myRequest), 0, (struct sockaddr *) &serverAddr, sockAddrSize) 關(guān)閉Sockets close (sFd)UDP廣播包程序示例發(fā)送UDP廣播包,查找本地網(wǎng)絡(luò)中所有運(yùn)行SNMP服務(wù)設(shè)備的IP信息。winsock, win32控制臺(tái)程序。#define SNMP_PORT 161void SearchIP_In_LAN()  WSADATA wsaData; SOCKET sockListener;SOCKADDR_IN sa

14、UdpCli,saUdpServ;BOOL fBroadcast = TRUE;char sendBuff40= /SNMP查詢包內(nèi)容 'x30','x26','x02','x01','x00', 'x04','x06','x70','x75','x62', 'x6c','x69','x63','xa0','x19', 

15、;'x02','x01','x03','x02','x01', 'x00','x02','x01','x00','x30', 'x0e','x30','x0c','x06','x08', 'x2b','x06','x01','x02','x01',&

16、#160;'x01','x01','x00','x05','x00'  char recvBuff600; int nSize,err,timeoutnum = 1;ULONG HostIpAddr;int rv; int ncount=0; if(WSAStartup(MAKEWORD( 2, 2),&wsaData)!=0) printf("Winsocket start error!n");return; soc

17、kListener=socket(AF_INET,SOCK_DGRAM,0); err = setsockopt ( sockListener,SOL_SOCKET,SO_BROADCAST, (CHAR *)&fBroadcast,sizeof ( BOOL ); if ( SOCKET_ERROR = err ) return ;int TimeOut=10000;err = setsockopt ( sockListener, SOL_SOCKET,SO_RCVTIMEO,(CHAR *) &TimeOut,sizeof (Time

18、Out);if ( SOCKET_ERROR = err ) return ;saUdpCli.sin_family = AF_INET; saUdpCli.sin_port = htons(0); saUdpCli.sin_addr.s_addr = htonl(INADDR_ANY); if(bind( sockListener, (SOCKADDR *)&saUdpCli, sizeof(SOCKADDR_IN)!=0)  printf("Can't bind socket to local port!Progr

19、am stop.n");return;  err = gethostname(recvBuff,sizeof(recvBuff);if ( SOCKET_ERROR = err )return ;struct hostent *hp = gethostbyname(recvBuff);if (!hp) return ;saUdpServ.sin_family = AF_INET; memcpy(&(saUdpServ.sin_addr),hp->h_addr,hp->h_length);HostIpAddr=ntohl(saUdpSe

20、rv.sin_addr.s_addr);saUdpServ.sin_addr.s_addr = htonl ( INADDR_BROADCAST ); saUdpServ.sin_port = htons (SNMP_PORT);nSize = sizeof ( SOCKADDR_IN ); if(rv = sendto ( sockListener,sendBuff,sizeof(sendBuff),0,(SOCKADDR *) &saUdpServ,sizeof ( SOCKADDR_IN )=SOCKET_ERROR)  printf(&q

21、uot;Send error!n");closesocket(*(SOCKET*)sockListener); return;  printf("Send successful!n");do / waiting to receiveif(rv=recvfrom ( sockListener,recvBuff,sizeof(recvBuff),0,(SOCKADDR *) &saUdpCli,&nSize)=SOCKET_ERROR)  if(WSAGetLastError()=WSAETIMEDOU

22、T)if (timeoutnum > 6 ) /Wait for 1 minute.break;elsetimeoutnum+;elseCString Ip(inet_ntoa ( saUdpCli.sin_addr );printf("t IP Adress-> %s ",Ip); while(TRUE);closesocket(*(SOCKET*)sockListener); return ;網(wǎng)絡(luò)軟件設(shè)計(jì)框圖(個(gè)人理解,僅供參考) · 設(shè)備管理服務(wù)軟件架構(gòu)   PC端(Windows NT,UNIX,Novell.平臺(tái))管理服務(wù)器(HTTP,FTP.Server)服務(wù)器程序程序接收用戶請(qǐng)求,向下發(fā)送從下接收處理結(jié)果,發(fā)送給用戶|v|通信方式:Socket, Namedpipe等|后臺(tái)核心程序處理請(qǐng)求,接收發(fā)送數(shù)據(jù)SNMP客戶<=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論