版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网络协议及网络软件框架设计网络协议 · TCP/IP (网络控制协议和网际协议) OSI 与 UNIX系统中协议的对应关系图,及不同网络在OSI中的位置 OSI 开放式系统互联参考模型 UNIX系统应用层(Application)-> ->-> ->->Network 网络文件系统(NFS)表示层(Presentation)会话层 (Session)SNMPFTPSMTPTelnet.传输层(Transport)TCP UDP
2、网络层(Network)ICMP,IGMP,RIPIPARP数据链路层(Data Link)LAN驱动器 LLC -介质访问控制 MAC CSMA/CD(载波侦听/多路访问)在多个网卡驱动程序间交换WinNT(NDIS)IEEE802.3 Ethernet MACIEEE802.5 Token ring MACFDDI DMAC网络接口卡驱动器物理层(Physical)物理层 链接 TCP/IP基础 · 普通网卡的MAC层接口 网卡内部总线<=&
3、gt;802.3 MAC引擎(Engine)<=>译码器/解码器(Encoder/decoder) & PLL<=>10/100 Base-T网络 & AUI | LED逻辑显示 收包过程 MAC从译码/解码器接收到来的数据包,首先检查SFD,检查完毕后,MAC认为SFD后面所有的位为帧数据位.读目的地址DA,把它和已变成的地址过滤中地址比较,如果DA通过了地址过滤层,这个帧会被放入网卡的存储空间.在整个整接收完成后,MAC检查FCS的有效性. · 以太帧格式(Eth
4、ernet Frame Format) 101010.SFD目的地址DA源地址SALength FieldLLC DataPadFCS可多达7字节1字节6字节6字节2字节4字节帧引导头(preamble)帧的长度约64字节-1500字节<=传输方向SFD=Start of Frame DelimiteDA=Destination AddressSA=Source AddressLLC=Logical Link ControlFCS=Frame Check Sequence or Cyclic Redundancy Check(CRC)· SNMP (简单网络管理协议 Simpl
5、e Network Management Protocol) SNMP 用来管理网络设备和获得外围设备信息,属于TCP/IP的一部分,具有协议独立性.利用SNMP, 一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。管理信息库(MIB): 两种类型 MIB-1, MIB-2.MIB是一个树形结构,SNMP协议消息通过遍历MIB树形目录中的节点(OID)来访问网络中的设备.MIB 树的每个节点被指定为一个数字(非负数),同一层的节点用不同的数字区分.这些节点数字由标准组织指定.MIB树中的任何一个节点由其所处的位置来命名.因为同一层的节
6、点数字皆不同,到达某个节点的路由可以由从树根到此节点所经过的节点的数字串来表示.这个数字串称为相应MIB对象的对象标识符(OID).例如, ODI,.2.1.1 代表的对象是从 命名为“1”的根节点开始,后续的下级节点“3”,再下一级是“6”,依此类推.管理信息结构标识(SMI): 定义MIB中行的技术规范.SNMP目前有两种版本 SNMP v1 和 SNMP v2.SNMP协议单元(PDU)实现代理和管理站间的通信,及Server 和 Target的通信.通信类型类型PDU类型传输方向说明0GetRequestServer->Target用来从Target上获得一个或多个
7、SNMP的对象(OID)值1GetNextRequestServer->Target在Target上的MIB中获得下一个SNMP的对象(OID)值2GetResponseTarget->ServerTarget响应ServerSNMP对象请求3SetRequestServer->TargetServer上程序为TargetMIB中的OID赋值4TrapTarget->ServerTarget用它来通知Server有一个特定时间发生目前好的SNMP网络管理软件是惠普公司的 OpenView. · BSD套接字(BSD Sockets) BSD Sockets 使
8、用的最广泛的网络程序编程方法,主要用于应用程序的编写,用于网络上主机与主机之间的相互通信.UNIX,Linux,VxWorks均支持BSD Sockets,Windows的Winsock基本上是来自BSD SocketsSocket分为Stream Sockets和Data Sockets.Stream Sockets是可靠性的双向数据传输用TCP,如HTTP,FTP等Data Sockets是不可靠连接用UDP,如多点广播,DHCP,SNMP,RIP等.· TCP服务器端和一个TCP客户端通信的程序过程 服务器 客户机 创建一个Socket sFd =soc
9、ket (AF_INET, SOCK_STREAM, 0) 把Socket和本机的IP,TCP口绑定 bind (sFd, (struct sockaddr *) &serverAddr, sockAddrSize) 为客户连接创建等待队列 listen (sFd, SERVER_MAX_CONNECTIONS)这里循环等待,如有客户连接请求,则接受客户机连接要求 accept (sFd, (struct sockaddr *) &clientAddr, &sockAddrSize) 接受客户机发来的信息 fioRead (sFd, (char *) &clie
10、ntRequest, sizeof (clientRequest) 给客户机发信息 write (sFd, replyMsg, sizeof (replyMsg) 关闭Socket,通信终止 close (sFd)两个浅蓝色的函数是两个Sockets的握手函数,即在这里建立连接创建一个Socket sFd =socket (AF_INET, SOCK_STREAM, 0) 注意:客户端不需要绑定,因为TCP口是动态的.向服务器端发送连接请求,并在这里等待回应,如收到回应则向下执行 connect (sFd, (struct sockaddr *) &serverAddr, sockAd
11、drSize) 服务器接受连接请求后,读服务器发过来的信息 read(sFd,buffer,20)向服务器发信息 write(sFd, buffer, 20);关闭Sockets close (sFd) · UDP服务器端和一个UDP客户端通信的程序过程 服务器 客户机 创建一个Socket sFd =socket (AF_INET, SOCK_DGRAM, 0) 把Socket和本机的IP,TCP口绑定 bind (sFd, (struct sockaddr *) &serverAddr, sockAddrSize) 不需要创建等待队列 这里循环等待
12、,如有客户连接则接受,并读取客户发来的信息 recvfrom (sFd, (char *) &clientRequest, sizeof (clientRequest), 0, (struct sockaddr *) &clientAddr, &sockAddrSize)关闭Socket,通信终止 close (sFd) 这里不建立连接,只是数据收发<-创建一个Socket sFd =socket (AF_INET, SOCK_DGRAM, 0) 注意:客户端不需要绑定,因为UCP口是动态的.向服务器端发送连接请求和信息,这里不等待服务器的响应 sendto (s
13、Fd, (caddr_t) &myRequest, sizeof (myRequest), 0, (struct sockaddr *) &serverAddr, sockAddrSize) 关闭Sockets close (sFd)UDP广播包程序示例发送UDP广播包,查找本地网络中所有运行SNMP服务设备的IP信息。winsock, win32控制台程序。#define SNMP_PORT 161void SearchIP_In_LAN() WSADATA wsaData; SOCKET sockListener;SOCKADDR_IN sa
14、UdpCli,saUdpServ;BOOL fBroadcast = TRUE;char sendBuff40= /SNMP查询包内容 '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 ;网络软件设计框图(个人理解,仅供参考) · 设备管理服务软件架构 PC端(Windows NT,UNIX,Novell.平台)管理服务器(HTTP,FTP.Server)服务器程序程序接收用户请求,向下发送从下接收处理结果,发送给用户|v|通信方式:Socket, Namedpipe等|后台核心程序处理请求,接收发送数据SNMP客户<=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国信息技术服务市场竞争与发展规划
- 2026农产品供应链管理现状分析需求预测规划投资发展研究报告
- 2026中国医药保健品行业原料供应体系及市场推广分析报告
- 遵义医保考试常见试题及答案分享
- 2026中国智能假肢制作行业市场现状供需分析及投资评估规划分析研究报告
- 2026人工智能行业应用现状供需分析及商业化投资发展规划报告
- 2026人工智能短期记忆市场规模分析客户需求调查及科技进步规划分析
- 2026中国体育科技行业市场现状供需分析及投资评估规划分析研究报告
- 物流车间考卷题目及对应答案
- 2026社交媒体行业市场竞争分析及发展趋势研究报告
- 2026年教师资格中学教育心理学考试题目及答案3
- 2026赫章鑫晨建工(集团)有限公司招聘20名工作人员笔试备考试题及答案详解
- GB/T 47826-2026航空航天系列阻燃磷酸酯液压油技术规范
- 新能源汽车保养维修手册
- 肿瘤与营养CSCO指南
- JJF 2376-2026 智能网联汽车自动泊车性能 计量测试规范
- GB/T 47005-2026增材制造激光定向能量沉积钛合金制件技术规范
- 2025年留疆战士考试题(附答案)
- 【杭州律协】2025商业诋毁不正当竞争案例研究白皮书
- 房地产全民营销模式培训
- T/CECS 10163-2021纤维增强聚氨酯复合材料杆塔
评论
0/150
提交评论