已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
练习题 二习题九【问题1】简答虚电路的原理。【问题2】虚电路分为哪两种?简述其定义。【问题1】 在虚电路分组交换中,第一个分组决定随后所有分组要遵循的路由。为了进行数据传输,网络的源节点与目的节点之间先建立一条逻辑通路,源节点先向目的节点发出呼叫请求,要求与目的节点建立连接,该呼叫请求是作为一个特殊的分组从源节点传送到目的节点的。在虚电路建立起来之后,源节点就可以向目的节点发送若干个数据分组。最后由源节点向目的节点发出拆除连接的请求,这样,整个连接就一段一段的断开了。 【问题2】 虚电路分为永久虚电路(PVC)和交换虚电路(SVC)。PVC是在两个端用户之间建立的固定逻辑连接,为用户提供约定的服务。SVC是使用ISDN信令协议Q.931临时建立的逻辑连接。它要以呼叫的形式通过信令来建立和释放。习题十【问题1】帧中继协议运行在OSI参考模型的哪几层?帧中继与x25的区别。【问题2】帧中继广域网的设备分为几类?【问题3】帧中继网络中通过什么来标识链路的?帧中继本地管理接口(LMI)的作用?【问题1】帧中继是一种高性能的WAN协议,它运行在OSI参考模型的物理层和数据链路层。它是一种数据包交换技术,是X.25的简化版本。它省略了X.25的一些强健功能,如提供窗口技术和数据重发技术,而是依靠高层协议提供纠错功能,这是因为帧中继工作在更好的WAN设备上,这些设备较之X.25的WAN设备具有更可靠的连接服务和更高的可靠性,它严格地对应于OSI参考模型的最低二层,而X.25还提供第三层的服务,所以,帧中继比X.25具有更高的性能和更有效的传输效率。 【问题2】帧中继广域网的设备分为数据终端设备(DTE)和数据电路终端设备(DCE),Cisco路由器作为 DTE设备。 【问题3】帧中继技术提供面向连接的数据链路层的通信,在每对设备之间都存在一条定义好的通信链路,且该链路有一个链路识别码。这种服务通过帧中继虚电路实现,每个帧中继虚电路都以数据链路识别码(DLCI)标识自己。DLCI的值一般由帧中继服务提供商指定。帧中继即支持PVC也支持SVC。 帧中继本地管理接口(LMI)是对基本的帧中继标准的扩展。它是路由器和帧中继交换机之间信令标准,提供帧中继管理机制。它提供了许多管理复杂互联网络的特性,其中包括全局寻址、虚电路状态消息和多目发送等功能。缺问4及问题11附:一.TCP/IP服务1、TCP/IP应用服务原理 TCP/IP应用服务采用客户机/服务器工作模式,服务器端启动守护进程,等待客户端的请求;服务器对应客户端的请求,派生子进程与客户进程进行数据通信,提供服务。 (1)服务器(HostA)首先要启动应用程序服务进程(守护进程Server),等待客户端的请求。(2)当服务进程Server接收到客户端HostB的请求时,派生一个子进程(Child1)与HostB进行交互,实现数据通信,同时守护进程Server继续等待客户端的请求。(3)当服务进程Server接收到客户端HostC的请求时,派生一个子进程(Child2)与HostC进行交互,实现数据通信,同时守护进程Server继续等待客户端的请求。二 .TCP/IP应用编程接口(API)为了支持用户开发面向应用的通信程序,大部分系统都提供了一组基于TCP或者UDP的应用程序编程接口(API),该接口通常以一组函数的形式出现,称为套接字(Socket)。TCP/IP应用程序之间的通信通过Socket进行。服务器拥有全局公认的Socket,任何客户端都可以向它发出连接请求和信息请求。客户端向操作系统随机申请一个Socket,系统为之分配一个Socket号。Socket的系统调用库函数主要有: 1、创建套接字 Sockid=Socket(af,type,protocol) 2、建立地址和套接字的联系 bind(sockid, local addr, addrlen) 3、服务器端侦听客户端的请求 listen( Sockid ,quenlen) 4、建立服务器/客户端的连接 (面向连接TCP) 客户端请求连接 Connect(sockid, destaddr, addrlen) 服务器端等待从编号为Sockid的Socket上接收客户连接请求 newsockid=accept(Sockid,Clientaddr, paddrlen) 5、发送/接收数据 面向连接:send(sockid, buff, bufflen) recv( ) 面向无连接:sendto(sockid,buff,addrlen) recvfrom( ) 6、释放套接字 close(sockid) 三.TCP/IP应用编程接口(API)的使用方法 /*LINUX SOCKET编程例子;服务器程序*/#include #include #include #include #define SERVER_PORT 8888/*服务端口 */#define MAX_MSG_SIZE 1024/*缓冲区的大小 */#define BACKLOG 5/*等待服务的最大数*/int Server_Proc(int sockfd)/*服务过程;服务器接受一条消息,然后发送一条消息 */int n;/* 接受到的或发送的数据的字节数*/char msgMAX_MSG_SIZE;/* 缓冲区*/n=recv(sockfd,msg,MAX_MSG_SIZE,0);msgn=0;printf(%s,msg);/*在屏幕上打印出来 */strcpy(msg,hi,I am server!);n=send(sockfd,msg,sizeof(msg),0);close(sockfd);return 1;main()int ser_sockfd,/*服务器SOCKET */cli_sockfd;/*客户端SOCKET */int errno;int addrlen;void *optval;socklen_t optlen;struct sockaddr_in ser_addr,/* 服务器的地址*/cli_addr;/* 客户端的地址*/ser_sockfd=socket(AF_INET,SOCK_STREAM,0);/*创建连接的SOCKET */if(ser_sockfd0)/*创建失败 */fprintf(stderr,socker Error:%s,strerror(errno);exit(1); /* 初始化服务器地址*/addrlen=sizeof(struct sockaddr_in);bzero(&ser_addr,addrlen);ser_addr.sin_family=AF_INET;ser_addr.sin_addr.s_addr=htonl(INADDR_ANY);ser_addr.sin_port=htons(SERVER_PORT);if(bind(ser_sockfd,(struct sockaddr*)&ser_addr,sizeof(struct sockaddr_in)0) /*棒定失败 */fprintf(stderr,Bind Error:%s,strerror(errno);exit(1); /*侦听客户端请求*/if(listen(ser_sockfd,BACKLOG)0)fprintf(stderr,Listen Error:%s,strerror(errno);close(ser_sockfd);exit(1);while(1)/* 等待接收客户连接请求*/cli_sockfd=accept(ser_sockfd,(struct sockaddr*)&cli_addr,&addrlen);if(cli_sockfd=0)fprintf(stderr,Accept Error:%s,strerror(errno);else/*开始服务*/Server_Proc(cli_sockfd);close(ser_sockfd); /*LINUX SOCKET编程例子;客户机程序*/#include #include #include #include #define SERVER_PORT 8888/*服务端口 */#define MAX_MSG_SIZE 1024/*缓冲区的大小 */int GetServerAddr(char *addrname)printf(Please input server addr:);scanf(%s,addrname);return 1;int Client_Proc(int sockfd)/*客户端过程;服务器接受一条消息,然后发送一条消息 */int n;/* 接受到的或发送的数据的字节数*/char msgMAX_MSG_SIZE;/* 缓冲区*/strcpy(msg,hi,I am client!);n=send(sockfd,msg,sizeof(msg),0);n=recv(sockfd,msg,MAX_MSG_SIZE,0);msgn=0;printf(%s,msg);/*在屏幕上打印出来 */return 1;main()int cli_sockfd;/*客户端SOCKET */int addrlen;char seraddr14;struct sockaddr_in ser_addr,/* 服务器的地址*/cli_addr;/* 客户端的地址*/GetServerAddr(seraddr);cli_sockfd=socket(AF_INET,SOCK_STREAM,0);/*创建连接的SOCKET */if(ser_sockfd0)/*创建失败 */fprintf(stderr,socker Error:%s,strerror(errno);exit(1);/* 初始化客户端地址*/addrlen=sizeof(struct sockaddr_in);bzero(&ser_addr,addrlen);cli_addr.sin_family=AF_INET;cli_addr.sin_addr.s_addr=htonl(INADDR_ANY);cli_addr.sin_port=0;if(bind(cli_sockfd,(struct sockaddr*)&cli_addr,addrlen)0) /*棒定失败 */fprintf(stderr,Bind Error:%s,strerror(errno);exit(1);/* 初始化服务器地址*/addrlen=sizeof(struct sockaddr_in);bzero(&ser_addr,addrlen);ser_addr.sin_family=AF_INET;ser_addr.sin_addr.s_addr=inet_addr(seraddr);ser_addr.sin_port=htons(SERVER_PORT);if(connect(cli_sockfd,(struct sockaddr*)&ser_addr,&addrlen)!=0)/*请求连接*/*连接失败 */fprintf(stderr,Connect Error:%s,strerror(errno);close(cli_sockfd);exit(1);Client_Proc(cli_sockfd);close(ser_sockfd);/*WINDOWS SOCKET编程例子;服务器程序*/#include windows.h#include #include #define SERVER_PORT 8888/*服务端口 */#define MAX_MSG_SIZE 1024/*缓冲区的大小 */#define BACKLOG 5/*等待服务的最大数*/int Server_Proc(int sockfd)/*服务过程;服务器接受一条消息,然后发送一条消息 */int n;/* 接受到的或发送的数据的字节数*/char msgMAX_MSG_SIZE;/* 缓冲区*/n=recv(sockfd,msg,MAX_MSG_SIZE,0);msgn=0;printf(%s,msg);/*在屏幕上打印出来 */strcpy(msg,hi,I am server!);n=send(sockfd,msg,sizeof(msg),0);close(sockfd);return 1;main()int ser_sockfd,/*服务器SOCKET */cli_sockfd;/*客户端SOCKET */int errno;int addrlen;void *optval;socklen_t optlen;struct sockaddr_in ser_addr,/* 服务器的地址*/cli_addr;/* 客户端的地址*/ser_sockfd=socket(AF_INET,SOCK_STREAM,0);/*创建连接的SOCKET */if(ser_sockfd0)/*创建失败 */errno=GetLastError();fprintf(stderr,socker Error:%s,strerror(errno);exit(1); /* 初始化服务器地址*/addrlen=sizeof(struct sockaddr_in);bzero(&ser_addr,addrlen);ser_addr.sin_family=AF_INET;ser_addr.sin_addr.s_addr=htonl(INADDR_ANY);ser_addr.sin_port=htons(SERVER_PORT);if(bind(ser_sockfd,(struct sockaddr*)&ser_addr,sizeof(struct sockaddr_in)0) /*棒定失败 */errno=GetLastError();fprintf(stderr,Bind Error:%s,strerror(errno);exit(1);if(listen(ser_sockfd,BACKLOG)0) /*侦听客户端请求*/errno=GetLastError();fprintf(stderr,Listen Error:%s,strerror(errno);close(ser_sockfd);exit(1);while(1)/*等待接收客户连接请求 */cli_sockfd=accept(ser_sockfd,(struct sockaddr*)&cli_addr,&addrlen);if(cli_sockfd=0)errno=GetLastError();fprintf(stderr,Accept Error:%s,strerror(errno);else/*开始服务*/Server_Proc(cli_sockfd);close(ser_sockfd); /*WINDOWS SOCKET编程例子;客户机程序*/#include #include #include #define SERVER_PORT 8888/*服务端口 */#define MAX_MSG_SIZE 1024/*缓冲区的大小 */int GetServerAddr(char *addrname)printf(Please input server addr:);scanf(%s,addrname);return 1;int Client_Proc(int sockfd)/*客户端过程;服务器接受一条消息,然后发送一条消息 */int n;/* 接受到的或发送的数据的字节数*/char msgMAX_MSG_SIZE;/* 缓冲区*/strcpy(msg,hi,I am client!);n=send(sockfd,msg,sizeof(msg),0);n=recv(sockfd,msg,MAX_MSG_SIZE,0);msgn=0;printf(%s,msg);/*在屏幕上打印出来 */return 1;main()int cli_sockfd;/*客户端SOCKET */int addrlen;int errno;char seraddr14;struct sockaddr_in ser_addr,/* 服务器的地址*/cli_addr;/* 客户端的地址*/GetServerAddr(seraddr);cli_sockfd=socket(AF_INET,SOCK_STREAM,0);/*创建连接的SOCKET */if(ser_sockfd0)/*创建失败 */errno=GetLastError();fprintf(stderr,socker Error:%s,strerror(errno);exit(1);/* 初始化客户端地址*/addrlen=sizeof(struct sockaddr_in);bzero(&ser_addr,addrlen);cli_addr.sin_family=AF_INET;cli_addr.sin_addr.s_addr=htonl(INADDR_ANY);cli_addr.sin_port=0;if(bind(cli_sockfd,(struct sockaddr*)&cli_addr,addrlen)0) /*棒定失败 */errno=GetLastError();fprintf(stderr,Bind Error:%s,strerror(errno);exit(1);/* 初始化服务器地址*/addrlen=sizeof(struct sockaddr_in);bzero(&ser_addr,addrlen);ser_addr.sin_family=AF_INET;ser_addr.sin_addr.s_addr=inet_addr(seraddr);ser_addr.sin_port=htons(SERVER_PORT);if(connect(cli_sockfd,(struct sockaddr*)&ser_addr,&addrlen)!=0)/*请求连接 */*连接失败 */errno=GetLastError();fprintf(stderr,Connect Error:%s,strerror(errno);close(cli_sockfd);exit(1);Client_Proc(cli_sockfd);close(ser_sockfd);附:一.CA中心的安全应用-数字证书颁发CA (Certificate Authority)CA技术是安全认证技术的一种它基于公开密钥体系通过安全证书来实现 安全证书采用国际标准的X.509证书格式主要包括 证书的版本号 发证CA的身份信息 持证用户的身份信息 持证用户的公钥 CA中心所发放的数字安全证书可以应用于公众网络上的商务活动和行政作业活动,包括支付型和非支付型电子商务活动,其应用范围涉及需要身份认证及数据安全的各个行业,包括传统的商业、制造业、流通业的网上交易,以及公共事业、金融服务业、工商税务海关、政府行政办公、教育科研单位、保险、医疗等网上作业系统。它主要应用于网上购物、企业与企业的电子贸易、安全电子邮件、网上证券交易、网上银行等方面。二. 密钥的管理内容1.一个好的密钥管理系统应该做到:(1)密钥难以被窃取;(2)在一定条件下窃取了密钥也没有用,密钥有使用范围和时间的限制;(3)密钥的分配和更换过程对用户透明,用户不一定要亲自掌管密钥.a. 管理方式 层次化的密钥管理方式,用于数据加密的工作密钥需要动态产生;工作密钥由上层的加密密钥进行保护,最上层的密钥称为主密钥,是整个密钥管理系统的核心;多层密钥体制大大加强了密码系统的可靠性,因为用得最多的工作密钥常常更换,而高层密钥用的较少,使得破译者的难度增大。b. 密钥的生成 密钥的生成与所使用的算法有关。如果生成的密钥强度不一致,则称该算法构成的是非线性密钥空间,否则称为是线性密钥空间。c. 分配、传递密钥的分配是指产生并使使用者获得一个密钥的过程;密钥的传递分集中传送和分散传送两类。集中传送是指将密钥整体传送,这时需要使用主密钥来保护会话密钥的传递,并通过安全渠道传递主密钥。分散传送是指将密钥分解成多个部分,用秘密分享的方法传递,只要有部分到达就可以恢复,这种方法适用于在不安全的信道中传输。d. 密钥的保存 密钥既可以作为一个整体保存,也可以分散保存。整体保存的方法有人工记忆、外部记忆装置、密钥恢复、系统内部保存;分散保存的目的是尽量降低由于某个保管人或保管装置的问题而导致密钥的泄漏。e. 备份、销毁密钥的备份可以采用和密钥的分散保存一样的方式,以免知道密钥的人太多;密钥的销毁要有管理和仲裁机制,否则密钥会被有意无意的丢失,从而造成对使用行为的否认。2. 密钥的分配技术密钥的分配技术解决的是在网络环境中需要进行安全通信的端实体之间建立共享的对称密钥问题。密钥分配中心方式KDC(Key Distribution Center)这是当前一种主流方式。每个节点或用户只需保管与KDC之间使用的密钥加密密钥,而KDC为每个用户保管一个互不相同的密钥加密密钥。当两个用户需要通信时,需向KDC申请,KDC将工作密钥(也称会话密钥)用这两个用户的密钥加密密钥分别进行加密后送给这两个用户。在这种方式下,用户不用保存大量的工作密钥,而且可以实现一报一密,但缺点是通信量大,而且需要有较好的鉴别功能,以识别KDC和用户。KDC方式还可以变形为电话号码本方式,适用于非对称密码体制。通过建立用户的公开密码表,在密钥的连通范围内进行散发,也可以采用目录方式进行动态查询,用户在进行保密通信前,首先产生一个工作密钥并使用对方的公开密钥加密传输,对方获悉这个工作密钥后,使用对称密码体制与其进行保密通信。此外还有离散对数方法和智能卡方式,基本的思想是利用数学的方法使得别人无法获得密钥。3. 公开密钥的全局管理机制公开密钥体制主要针对开放型的大型互联网络的应用环境而设计的,这种网络环境中需要有一个协调的公开密钥管理机制,以保证公开密钥的可靠性。 公开密钥的管理一般基于公证机制,即需要一个通信的A、B双方都信任的第三方N来证明A和B的公开密钥的可靠性,这需要N分别对A和B的公开密钥进行数字签名,形成一个证明这个公开密钥可靠性的证书。在一个大型网络中,这样的公证中心可以有多个,另外这些公证中心若存在信任关系,则用户可以通过一个签名链去设法验证一个公证中心签发的证书。公开密钥管理的另外一个重要方面是如何撤消过去签发,但是现在已经失效的密钥证书。4.基于X.509证书的PKI(Public Key Infrastructure) 它是一种行业标准或者行业解决方案,在X.509方案中,默认的加密体制是公钥密码体制。为进行身份认证,X.509标准及公共密钥加密系统提供了数字签名的方案。用户可生成一段信息及其摘要(亦称作信息“指纹”)。用户用专用密钥对摘要加密以形成签名,接收者用发送者的公共密钥对签名解密,并将之与收到的信息“指纹”进行比较,以确定其真实性。 PKI是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。它能够为所有网络应用透明地提供采用加密和数字签名等密码服务所必需的密钥和证书管理。一个机构通过采用PKI框架管理密钥和证书可以建立一个安全的网络环境。 PKIX(PublicKeyInfrastructureonX.509,简称PKIX)系列标准由IETFPKIX工作小组制定,定义了X.509证书在INTERNET上的使用,证书的生成、发布和获取,各种产生和分发密钥的机制,以及怎样实现这些标准的轮廓结构等。三.IPsec与VPN简介IPSec,因特网协议安全,是由IETF(Internet Engineering Task Force)定义的一套在网络层提供IP安全性的协议。1. 基于Ipsec的VPN,如阿姆瑞特VPN,由两部分组成:1.Internet密钥交换协议(IKE)2.IPsec协议(AH/ESP/二者都有)第一部分,IKE是初始协商阶段,两个VPN端点在这个阶段协商使用哪种方法为下面的IP数据流提供安全。而且,通过定义一套安全联盟(SA),IKE用于管理连接;SA面向每个连接的。SA是单向的,因此每个Ipsec连接至少有2个SA。在IKE(因特网密钥交换)部分对此有更详细的描述。另一部分是IKE协商后,用加密和认证方法实际传输的IP数据。有几种方法,如IPsec协议ESP, AH或两者结合在一起都可以做到这一点。IPsec协议(ESP/AH)部分对此进行了解释。2. 建立VPN事件的流程可做如下简要描述:IKE协商如何保护IKEIKE协商如何保护IpsecIpsec在VPN中传输数据Internet密钥交换协议(IKE)这部分描述IKE,因特网密钥交换协议,及其使用的参数。加密和认证数据比较直接,唯一需要的是加密和认证算法,及其使用的密钥。因特网密钥交换协议(IKE),用作分配这些对话用密钥的一种方法,而且在VPN端点间,规定了如何保护数据的方法。3.IKE主要有三项任务:a.为端点间的认证提供方法b.建立新的IPsec连接(创建一对SA)c.管理现有连接IKE跟踪连接的方法是给每个连接分配一组安全联盟(SA)。SA描述与特殊连接相关的所有参数,包括使用的Ipsec协议(ESP/AH/二者兼有),加密/解密和认证/确认传输数据使用的对话密钥。SA本身是单向的,每个连接需要一个以上的SA。大多数情况下,只
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合伙固定分红合同范本
- 合同权利义务让与协议
- 利雅德酒店住宿协议书
- 保理合同协议文本模板
- 修车协议合同模板模板
- 农村供水工艺流程优化
- 兼职托管教师合同范本
- 会所转让委托合同范本
- 合同对数据的保密协议
- 合伙合同增资补充协议
- 2024年国家公务员考试《行测》真题卷(行政执法)答案和解析
- 生猪屠宰兽医卫生检验人员理论考试题库及答案
- 完整版全国行政区域身份证代码表(EXCEL版)TextMarkTextMark
- 仙居县国企招聘考试真题及答案
- 工业机器人系统集成(高职)PPT全套完整教学课件
- 美学原理PPT课件:技术美
- 应力腐蚀和氢脆
- GA/T 830-2021尸体解剖检验室建设规范
- 责任担当斗争精神自查问题清单
- 基于STM32的自动灌溉系统
- 《等边三角形》第1课时-示范教学课件【初中数学人教版八年级上册】
评论
0/150
提交评论