已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机网络与通信试题学号 姓名 1. 简述SCTP协议及应用。(10分)2. 简述计算机网络理论分析主要使用的数学基础和模型及常用的仿真工具(10分)3. 网络上有A-K个节点,其拓扑结构见下图,请使用TCP或UDP协议,在应用层实现基于网络的Bellman-ford算法(提供源码)(40分)。要求:设计节点之间可靠通信协议;使用FSM描述节点之间的行为状态;分析网络协议对算法的影响;求出A到K的最优路径。4. 某计算机局域网中有N台计算机,这N台计算机利用组播协议在7213端口实现相互通讯,每台计算机在随机每隔2s发送数据,发送数据占用时间是0.8s,(40分)(1) 试分析该局域网中,每台计算机数据发送成功的概率。(2) 分析当局域网中计算机增加到2N台后,每台计算机数据发送成功的概率。(3) 使用实验仿真,分析对比理论分析与仿真实验结果。1、答:SCTP协议简介:SCTP(Stream Control Transmission Protocol,流控制传输协议),传输层(Transport Layer)协议,提供基于不可靠传输业务的协议之上的可靠的数据报传输协议。SCTP是一个面向连接的流传输协议,它可以在两个端点之间提供稳定、有序的数据传递服务。SCTP可以看做是TCP协议的改进:SCTP它是多宿主(Multi-homing)连接,一个SCTP连接可以支持多个流(Multi-streaming),流(Stream)是指从一个SCTP端点到另一端点之间建立的单向逻辑通路,通常情况下所有用户消息在流中按序传递。SCTP有更好的安全性。SCTP实际上是一个面向连接的协议,使得信令传输具有更高的可靠性,SCTP的设计包括适当的拥塞控制、防止泛滥和伪装攻击、更优的实时性能和多归属性支持。将在两个端点之间设置 SCTP 关联。这些端点使用的四次握手机制借助 cookie 来防止遭到某些类型的拒绝服务 (denial-of-service, DoS) 攻击。端点可由多个 IP 地址表示。SCTP应用:移动通信网络中,SCTP协议在IP承载连接的情况下广泛得到应用,网络示意图中多条网元连接均有SCTP协议的运用,如图1所示。图1 SCTP协议应用示例图l RNS(Radio Network Subsystem,无线网络子系统)与MSCS之间:如果采用M3UA(MTP3-User Adaptation layer protocol,MTP第三层的用户适配层协议),协议栈为IP/SCTP/M3UA/SCCP/RANAP;l MGW与MSCS之间,如果采用M3UA,协议栈为IP/SCTP/M3UA/H.248,同时H.248也可以直接承载在SCTP之上;l HLR(Home Location Register,归属位置寄存器)与MSCS/VLR之间,如果采用M3UA,协议栈为IP/SCTP/M3UA/SCCP/TCAP/MAP;l PSTN(Public Switched Telephone Network,公共交换电话网)与MSCS之间,SCTP协议在完成传统的七号信令和IP网络之间信息传输中占据了很重要的角色。2、答:计算机网络理论分析主要使用的数据基础理论包括概率论、统计学、线性代数、优化理论以及信号、系统与变换。理论工具包括随机过程与排队论、博弈论、控制论与信息论。概率论基础具体包括随机事件,联合概率、条件概率,贝叶斯公式,标准离散分布、标准连续分布,以及常用定理马尔科夫不等式、切比雪夫不等式、中心极限定理等;统计学基础具体包括总体抽样,描述样本,根据样本参数推断总体参数,实验结果的假设检验,独立与依赖:回归与相关,同时比较多个结果的方差分析,实验设计,处理大数据集等;线性代数基础包括矢量和矩阵的代数运算,线性组合、独立性、基和维度、使用矩阵代数求解线性方程组,线性变换、特征值和特征向量,随机矩阵等;优化理论以及信号基础知识包括:系统建模和优化、最优化引导、整数线性规划、动态规划等;系统与变换基础知识包括:信号,系统,线性时不变系统的分析,傅里叶级数,傅里叶变换及其特性,拉普拉斯变换,离散傅里叶变换和快速傅里叶变换等。主要使用的模型:。其中OSI七层模型包括:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层;TCP/IP五层模型包括:应用层、传输层、网络层、数据链路层和网络接口层。TCP/IP四层模型包括:应用层、传输层、网络层和网络接口层。常用的仿真工具:OPNET,QualNet,NS-2,NS-3,GloMoSim,NCTUNS,GTNetS(包括RT IKit library) ,OMNET+等。3、答:代码如下:public class BellmanFord private static final int m = 99999; /大于图中边的任意值,表示无穷大 public static void main(String args) / 设置各定点邻接边权值 Edge a1 = new Edge(0, 1, 5); Edge a2 = new Edge(0, 5, 3); Edge a3 = new Edge(1, 0, 5); Edge a4 = new Edge(1, 7, 3); Edge a5 = new Edge(1, 2, 4); Edge a6 = new Edge(2, 1, 4); Edge a7 = new Edge(2, 4, 2); Edge a8 = new Edge(2, 3, 3); Edge a9 = new Edge(3, 2, 3); Edge a10 = new Edge(3, 4, 4); Edge a11 = new Edge(3, 8, 6); Edge a12 = new Edge(3, 10, 6); Edge a13 = new Edge(4, 2, 2); Edge a14 = new Edge(4, 5, 2); Edge a15 = new Edge(4, 8, 1); Edge a16 = new Edge(4, 10, 6); Edge a17 = new Edge(4, 3, 4); Edge a18 = new Edge(5, 0, 3); Edge a19 = new Edge(5, 6, 3); Edge a20 = new Edge(5, 4, 2); Edge a21 = new Edge(6, 5, 3); Edge a22 = new Edge(6, 7, 4); Edge a23 = new Edge(6, 8, 2); Edge a24 = new Edge(7, 6, 4); Edge a25 = new Edge(7, 2, 3); Edge a26 = new Edge(7, 9, 2); Edge a27 = new Edge(8, 6, 2); Edge a28 = new Edge(8, 4, 1); Edge a29 = new Edge(8, 3, 6); Edge a30 = new Edge(8, 6, 1); Edge a31 = new Edge(9, 10, 7); Edge a32 = new Edge(9, 8, 1); Edge a33 = new Edge(9, 7, 2); Edge a34 = new Edge(10, 3, 6); Edge a35 = new Edge(10, 4, 10); Edge a36 = new Edge(10, 9, 7); Edge as = new Edgea1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36; int dist = new int; int pior = new int; dist0 = 0; pior0 = 0; for (int i = 1; i dist.length; i+) disti = m; piori = -1; bellman_Ford(as, dist, pior); System.out.println(dist10); private static void bellman_Ford(Edge as, int d, int p) for(int i = 1; i d.length; i+) for (int j = 0; j dasj.getU() + asj.getW() dasj.getV() = dasj.getU() + asj.getW(); pasj.getV() = asj.getU(); /设置新的类 class Edge private int u; private int v; private int w; public Edge(int u, int v, int w) this.u = u; this.v = v; this.w = w; public int getU() return u; public void setU(int u) this.u = u; public int getV() return v; public void setV(int v) this.v = v; public int getW() return w; public void setW(int w) this.w = w; 由以上代码可以得出最优路径为:AFEK。4、答:(1):本题采用组播协议通讯,因此信号是广播形式发送。当站点检测信道是空闲时,而未必真的空闲,因为信号传输速度有限,此时发送数据,就有可能与其他主机发送的信号碰撞,导致失败。 此题中,N台主机在2秒钟随意发送数据,若假设任意主机在发送数据之前监听信道的电磁波传输时间忽略不计,且不考虑主机发送数据失败之后重发的情况,则只要任意两个主机在发送需求时间小于0.8的间隔内发送数据,就会失败。任意两个主机发生冲突的概率可以转换为在(0,2)取两个随机数,此时这两个随机数之差小于0.8的概率。用x轴表示第一个数,用y轴表示第二个数,两数之和小于0.8即x-y 0.8,在直角坐标系中画出0x2,0y2的区域面积为4,x-y 0.8面积为4-(2-0.8)*(2-0.8)*0.5=3.28,概率p=3.28/4=0.82则在(0,2)区间内任意两个数之差小于0.8的概率为 *P=N*(N-1)*0.41(2):计算机增加到2N台后,原理不变,则每台计算机数据发送成功的概率为:*P=N*(2N-1)*0.82(3)程序由Sender和Receiver两部分组成,Sender用户从控制台上输入多播发送数据,Receiver端完成接收Sender发送的多播数据。Receiver程序代码:#include #include #include #include #define MCASTADDR 233.0.0.1 /本例使用的多播组地址。#define MCASTPORT 7213 /端口号。#define BUFSIZE 1024 /接收数据缓冲大小。int main( int argc,char * argv)WSADATA wsd;struct sockaddr_in local,remote,from;SOCKET sock,sockM;TCHAR recvbufBUFSIZE;int len = sizeof( struct sockaddr_in);int ret;/初始化WinSock2.2if( WSAStartup( MAKEWORD(2,2),&wsd) != 0 )printf(WSAStartup() failedn);return -1;if(sock=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,WSA_FLAG_MULTIPOINT_C_LEAF|WSA_FLAG_MULTIPOINT_D_LEAF|WSA_FLAG_OVERLAPPED) = INVALID_SOCKET)printf(socket failed with:%dn,WSAGetLastError();WSACleanup();return -1;local.sin_family = AF_INET;local.sin_port = htons(MCASTPORT);local.sin_addr.s_addr = INADDR_ANY;if( bind(sock,(struct sockaddr*)&local,sizeof(local) = SOCKET_ERROR )printf( bind failed with:%d n,WSAGetLastError();closesocket(sock);WSACleanup();return -1;/加入多播组remote.sin_family = AF_INET;remote.sin_port = htons(MCASTPORT);remote.sin_addr.s_addr = inet_addr( MCASTADDR );if( sockM = WSAJoinLeaf(sock,(SOCKADDR*)&remote,sizeof(remote),NULL,NULL,NULL,NULL,JL_BOTH) = INVALID_SOCKET)printf(WSAJoinLeaf() failed:%dn,WSAGetLastError();closesocket(sock);WSACleanup();return -1;/接收多播数据,当接收到的数据为QUIT时退出。while(1)if( ret = recvfrom(sock,recvbuf,BUFSIZE,0,(struct sockaddr*)&from,&len) = SOCKET_ERROR)printf(recvfrom failed with:%dn,WSAGetLastError();closesocket(sockM);closesocket(sock);WSACleanup();return -1;if( strcmp(recvbuf,QUIT) = 0 ) break;else recvbufret = 0;printf(RECV: %s FROM n,recvbuf,inet_ntoa(from.sin_addr);closesocket(sockM);closesocket(sock);WSACleanup();return 0; Sender程序代码#include #include #include #include #define MCASTADDR 233.0.0.1 /本例使用的多播组地址。#define MCASTPORT 7213 /端口号。#define BUFSIZE 1024 /发送数据缓冲大小。int main( int argc,char * argv)WSADATA wsd;struct sockaddr_in remote;SOCKET sock,sockM;TCHAR sendbufBUFSIZE;int len = sizeof( struct sockaddr_in);/初始化WinSock2.2if( WSAStartup( MAKEWORD(2,2),&wsd) != 0 )printf(WSAStartup() failedn);return -1;if(sock=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,WSA_FLAG_MULTIPOINT_C_LEAF|WSA_FLAG_MULTIPOINT_D_LEAF|WSA_FLAG_OVERLAPPED) = INVALID_SOCKET)printf(socket failed with:%dn,WSAGetLastError();WSACleanup();return -1;/加入多播组remote.sin_family = AF_INET;remote.sin_port = htons(MCASTPORT);remote.sin_addr.s_addr = inet_addr( MCASTADDR );if( sockM = WSAJoinLeaf(sock,(SOCKADDR*)&remote,sizeof(remote),NULL,NULL,NULL,NULL,JL_BOTH) = INVALID_SOCKET)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 积极心态测试题目及答案详解培养积极心态
- 教育理论考试题库及答案解析集
- 快递员应对突发情况处理技巧测试卷及解析
- 电子商务法律法规自测题及参考答案集
- 脑卒中护理查房
- 2025年工业自动化设备检测合同协议(全面)
- 2025年工业自动化技术咨询合同协议
- 自由曲面激光切割作业指导书
- 导游业务试题及答案
- 2025资格证考试真题及答案
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- JJG 52-2013弹性元件式一般压力表、压力真空表和真空表
- 中医药健康管理服务规范培训41张课件
- Q∕GDW 10364-2020 单相智能电能表技术规范
- 超星尔雅叶嘉莹《中华诗词之美》课后章节测验满分答案精编版
- 【学考】高中物理会考(学业水平考试)公式及知识点总结
- GB∕T 25279-2022 中空纤维帘式膜组件
- 自动抹灰机毕业论文初稿
- 胃早癌的简述课件
- 无尘车间穿戴规范
- 安全隐患排查自查表
评论
0/150
提交评论