Windows网络编程练习题参考答案.doc

上传人:坚持 文档编号:3566260 上传时间:2019-06-06 格式:DOC 页数:16 大小:87KB
下载 相关 举报
Windows网络编程练习题参考答案.doc_第1页
第1页 / 共16页
Windows网络编程练习题参考答案.doc_第2页
第2页 / 共16页
Windows网络编程练习题参考答案.doc_第3页
第3页 / 共16页
Windows网络编程练习题参考答案.doc_第4页
第4页 / 共16页
Windows网络编程练习题参考答案.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、1第 1 章 Internet 与网络通信模型概述一、选择题1D 2B 3D 4D二、填空题1Open System Interconnection Reference Model2开放系统互连参考模型3协议数据单元4PDU ,Protocol Data Unit5数据段(Segment )6数据包(Packet)7数据帧(Frame)8比特(Bit)9网络接口层10网络层11传输层12应用层三、简答题1答:OSI 参考模型将网络通信的工作划分为 7 个层次,由低到高分别为物理层(Physical Layer) 、数据链路层(Data Link Layer) 、网络层(Network Laye

2、r) 、传输层(Transport Layer) 、会话层(Session Layer) 、表示层(Presentation Layer)和应用层(Application Layer) 。2答:在网络通信中,发送端的自上而下的使用 OSI 参考模型,对应用程序要发送的信息进行逐层打包,直至在物理层将其发送到网络中;而接收端则自下而上的使用 OSI 参考模型,将收到的物理数据逐层解析,最后将得到的数据传送给应用程序。当然,并不是所有的网络通信都需要经过 OSI 模型的全部七层。例如,同一网段的二层交换机之间通信之需要经过数据链路层和物理层,而路由器之间的连接则只需要网络层、数据链路层和物理层即可

3、。在发送方封装数据的过程中,每一层都会为数据包加上一个头部;在接收方解封数据时,又会逐层解析掉这个头部。因此,双方的通信必须在对等层次上进行,否则接收方将无法正确地解析数据。3答:帧的简要结构如图 1.4 所示。2图 1.4 帧的简要结构每个字段的说明如下: 前导码,内容是 16 进制数 0xAA,作用是使接收节点进行同步并做好接收数据帧的准备。 帧首定界符,是 10101011 的二进制序列,标识帧的开始,以使接收器对实际帧的第一位定位。 源地址和目的地址,即发送和接收数据的两端主机的 MAC 地址。目的地址可以是单地址、组播地址和广播地址。 数据字段的长度,指定要传送数据的长度,以便接收方

4、对数据进行处理。 要传送的数据,顾名思义,就是从源地址发送到目的地址的原始数据。 填充字段,有效帧从目的地址到校验和字段的最短长度为 64 字节,其中固定字段的长度为 18 个字节。如果数据字段长度小于 46 个字节时,就使用本字段来填充。 校验和,使用 32 位 CRC 校验,用于对传送数据进行校验。3第 2 章 TCP/IP 协议及其应用一、选择题1B 2A 3D 4A 5. C6D 7A 8B 二、填空题1寻址(Addressing )2分片(Fragmentation)3服务类型(TOS,Type of Service)4生存周期(TTL,Time to Live)5选项 6包头校验和

5、7建立连接阶段8数据传输阶段9断开连接释放资源阶段10211120三、简答题1答:生存周期表示一个 Internet 报文生存期的上限,由报文的发送者来设置。可以把生存周期看作是数据库包的寿命计数器。为了防止数据包在网络中无休止地被传递下去,或者由于传输路径造成死循环,每个 IP 数据包中都包含一个寿命计数器。数据包在网络传输的过程中,每经过一个路由器的处理,其中的寿命计数器就会递减 1。如果寿命计数器的值等于 0,并且报文还没有到达目的地,则该报文将会被丢失。发送者将会在稍后重新发送该报文。为什么要在 IP 协议中使用生存周期的概念呢。因为 Internet 的结构是复杂的,从一个主机发送报

6、文到另外一个主机可以有多种路径,这一点与现实生活中一样,比如开车前往一个地点就可以有多种路线可供选择。因为数据包在网络传输中的路径是由路由器或交换机等网络设备根据当时的网络情况选择的,所以每次传输的路径都可能不同。如果一个数据包在传输过程中进入了环路,如果不终止它的话,它可能一直这样循环下去。如果网络中存在大量这样循环的数据包,那对于网络来说就是一种灾难性。使用生存周期就可以解决这种问题,它可以将长时间无法到达目的地的数据包丢弃。2答:参照表 2.1 理解。3答:4UDP 是一种不可靠的协议,在传送数据时,源主机和目的主机之间不建立连接。而TCP 协议为了确保数据传输的准确和安全可靠,集成了各

7、种安全保障功能,这在实际执行过程中会占用大量的系统开销。因此,UDP 具有 TCP 无法比拟的速度优势。 相对于可靠性而言,基于 UDP 的应用更注意性能。与 TCP 相比,UDP 更适合发送数据量比较少、但对响应速度要求比较高的情况。4答:ARP 欺骗通常有如下两种情况(1)对路由器 ARP 表的欺骗,感染 ARP 木马的主机会不断地向路由器发送一系列错误的内网 MAC 地址,使真实的地址信息无法通过更新保存在路由器上。因为路由器负责转发数据包,是主机连接互联网的关键设备,所以路由器被欺骗后,网络中的大量主机都无法正常上网。(2)伪造网关,欺骗其他主机向假网关发送数据,而不是通过正确的路由器

8、途径上网。ARP 攻击的后果通常是很严重的,往往会造成网络的大面积掉线,没有经验的网络管理员通常很难定位问题所在。5答:(1)申请 IP 地址的主机在本地网络中发送一个 RARP 广播包,其中包括自己的 MAC地址,请求任何收到该请求的 RARP 服务器为其分配一个 IP 地址。(2)收到请求的 RARP 服务器将检查其 RARP 列表,判断是否存在该 MAC 地址对应的 IP 地址。如果存在,则给源主机发送一个响应数据包,并将此 IP 地址提供给对方主机使用;如果不存在,则 RARP 服务器对该请求不做响应。一个网段中可以存在多个 RARP服务器。(3)源主机收到 RARP 服务器发回的响应

9、信息后,使用得到的 IP 地址进行通讯。(4)如果一直没有收到 RARP 服务器的响应信息,则说明初始化失败。(5)如果在前 2 步中遭受到 ARP 攻击,则 RARP 服务器返回的 IP 地址可能会被占用,因此导致申请主机无法正常上网。6答:(1)与远程主机建立一个 TCP 连接,用户需要指定远程主机的 IP 地址和域名。(2)在本地终端上输入用户名和口令,然后输入控制命令,客户端会将它们以NVT( Net Virtual Terminal)格式传送到远程主机。(3)将远程主机输出的 NVT 格式的数据转化为本地所接受的格式,然后送回本地终端,包括命令的回显和命令的执行结果。(4)最后,本地

10、终端断开连接,结束到远程主机的 TCP 连接。7答:FTP 支持两种运行模式,即主动模式和被动模式,它们的区别在于控制如何打开第 2个连接。1主动模式在主动模式下,客户端向服务器发送自己用于数据连接的 IP 地址和端口号,然后由服务器程序打开数据连接。2被动模式5当客户端在防火墙后面或者无法接收 TCP 连接时,通常建议采用被动模式。在被动模式下,服务器向客户端发送自己用于数据连接的 IP 地址和端口号,则客户端打开数据连接。四、操作题略6第 3 章 IP 地址和子网规划一、选择题1D 2B 3C 4B 5D6C 7C 8D 9B 10B11C二、填空题11.0.0.12126.255.255

11、.2543104254510.0.0.0610.255.255.2557网络域8子网域9主机域10网络号/网络 ID 的位数三、问答题1答:目前应用最广泛的 IP 地址是基于 IPv4 的,每个 IP 地址的长度为 32 位,即 4 个字节。通常把 IP 地址中的每个字节使用一个 10 进制数字来表示,数字之间使用小数点(.)分隔,因此 IPv4 中 IP 地址的格式如下:XXX.XXX.XXX.XXX这种 IP 地址表示法被称为点分十进制表示法。2答:为了便于寻址和构造层次化的网络结构,在设计 IP 地址时规定每个 IP 地址都由两个标识码(ID )组成,即网络 ID 和主机 ID。同一个物

12、理网络上的所有主机都使用同一个网络 ID,而 IP 地址中除了网络 ID 外的其他部分则是主机 ID,它可以唯一标识当前网络中的一台主机(可以是计算机、服务器或网络设备等) 。根据网络 ID 的不同,IP 地址可以分为 5 种类型,即 A 类地址、 B 类地址、C 类地址、D 类地址和 E 类地址。A 类 IP 地址的第 1 个字节为网络 ID,其他 3 个字节则为主机 ID,而且网络 ID 的第 1位必须为“0” 。A 类 IP 地址的范围为 1.0.0.1 126.255.255.254。B 类 IP 地址的前两个字节为网络 ID,后面两个字节则为主机 ID,而且网络 ID 的前两位必须为

13、“10” 。B 类 IP 地址的范围为 128.0.0.1 191.255.255.254。C 类 IP 地址的前 3 个字节为网络 ID,最后一个字节为主机 ID,而且网络 ID 的前 3 位7必须为“110” 。C 类 IP 地址的范围用二进制数来表示为 192.0.0.1 223.255.255.254。D 类 IP 地址是专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播中。它的前 4 位必须为“1110” 。D 类 IP 地址的范围为 224.0.0.1239.255.255.254。E 类 IP 地址并没有公开使用,它是在设计时预留出来供将来使用的地址段,目前仅用于

14、研究和实验。E 类 IP 地址以“11110”开始,即从 240.0.0.1 开始后面的有效地址都是 E类 IP 地址。3答:单播是指对特定的主机进行数据传送,因此在数据链路层的数据头中应该指定非常具体的目的地址,即网卡的 MAC 地址;而且在 IP 分组报头中必须指定接收方的 IP 地址。组播是主机之间“一对一组”的通讯模式, 即加入了同一组的主机可以接收到该组内的所有数据。主机可以向路由器申请加入或退出指定的组,网络中的路由器和交换机可以有选择的复制并传输数据,即只将组内数据传输给该组中的主机。组播可以大大节省网络带宽,无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。广

15、播分组的目标 IP 地址的主机部分全部为 1,这意味着本地网络中所有的主机都将接收并查看到该分组消息。比较常见的广播应用是 ARP 和 DHCP 等网络协议。8第 4 章 网络编程基础一、选择题1 B 2B 二、填空题1程序代码 2数据3进程控制块 4Peer-to-Peer四、简答题1答:端 口 是 TCP/IP 协 议 簇 中 , 应 用 层 进 程 与 传 输 层 协 议 实 体 间 的 通 信 接 口 , 在 OSI 七 层 协议 的 描 述 中 , 将 它 称 为 应 用 层 进 程 与 传 输 层 协 议 实 体 间 的 服 务 访 问 点 ( SAP) 。 应 用 层 进 程通

16、过 系 统 调 用 与 某 个 端 口 进 行 绑 定 , 然 后 就 可 以 通 过 该 端 口 接 收 或 发 送 数 据 , 因 为 应 用 进程 在 通 信 时 , 必 须 用 到 一 个 端 口 , 它 们 之 间 有 着 一 一 对 应 的 关 系 , 所 以 可 以 用 端 口 来 标 识通 信 的 网 络 应 用 进 程 。2答:(1)打开一通信通道,并告知服务器所在的主机,它愿意在某一公认的地址上(熟知端口,如 FTP 为 21)接收客户请求。(2)等待客户的请求到达该端口。(3)服务器接收到服务请求,处理该请求并发送应答信号。为了能并发地接收多个客户的服务请求,要激活一个新

17、进程或新线程来处理这个客户请求(如 UNIX 系统中用fork、exec ) 。服务完成后,关闭此新进程与客户的通信通路,并终止。(4)返回第(2)步,等待并处理另一客户请求。(5)在特定的情况下,关闭服务器。3答:P2P 系统具有以下特征。(1)分散性。该系统是全分布式的系统,不存在瓶颈。(2)规模性。该系统可以容纳数百万乃至数千万台计算机。(3)扩展性。用户可以随时加入该网络。服务的需求增加,系统的资源和服务能力也同步扩充,理论上其可扩展性几乎可以认为是无限的。(4)Servent 性。每个节点同时具有 Server 和 Cliert 的特点,称之为 Servent。(5)自 治 性 。

18、节 点 来 自 不 同 的 所 有 者 , 不 存 在 全 局 的 控 制 者 , 节 点 可 以 随 时 加 入 或 退出 P2P 系统。(6)互助性。(7)自组织性。大量节点通过 P2P 协议自行组织在一起,不存在任何管理角色。9第 5 章 Socket 编程基础一、选择题1C 2B 3A 4A二、填空题1面向连接2无连接3ws2_32.lib4网络字节顺序(NBO,Network Byte Order)5主机字节顺序(HBO,Host Byte Order )6in_addr7setsockopt三、简答题1答(1)客户端(相当于拨打电话的一方)需要了解服务器的地址(相当于电话号码) 。

19、在 TCP/IP 网络环境中,可以使用 IP 地址来标识一个主机。但仅仅使用 IP 地址是不够的,如果一台主机中运行了多个网络应用程序,那么如何确定与哪个应用程序通信呢。在Socket 通信过程中借用了 TCP 和 UDP 协议中端口的概念,不同的应用程序可以使用不同的端口进行通信,这样一个主机上就可以同时有多个应用程序进行网络通信了。这有些类似于电话分机的作用。(2)服务器应用程序必须早于客户端应用程序启动,并在指定的 IP 地址和端口上执行侦听操作。如果该端口被其他应用程序所占用,则服务器应用程序无法正常启动。服务器处于侦听状态就类似于电话接通电话线、等待拨打的状态。(3)客户端在申请发送

20、数据时,服务器端应用程序必须有足够的时间响应才能进行正常通信。否则,就好像电话已经响了,但却无人接听一样。在通常情况下,服务器应用程序都需要具备同时处理多个客户端请求的能力,如果服务器应用程序设计得不合理或者客户端的访问量过大,都有可能导致无法及时响应客户端的情况。(4)使用 Socket 协议进行通信的双方还必须使用相同的通信协议,Socket 支持的底层通信协议包括 TCP 和 UDP 两种。在通信过程中,双方还必须采用相同的字符编码格式,而且按照双方约定的方式进行通信。这就好像在通电话的时候双方都采用对方能理解的语言进行沟通一样。(5)在通信过程中,物理网络必须保持畅通,否则通信将会中断

21、。(6)通信结束后,服务器端和客户端应用程序都可以中断它们之间的连接。2答:10表 5.1 流式套接字和数据报式套接字的区别比较项目 流式套接字 数据报式套接字建立和释放连接 保证数据到达 按发送顺序接收数据 通讯数据包含完整的目的地址信息 2答:服务器程序要先于客户机程序启动,每个步骤中调用的 Socket 函数如下:(1)调用 WSAStartup()函数加载 Windows Sockets 动态库,然后调用 socket()函数创建一个流式套接字,返回套接字号 s。(2)调用 bind()函数将套接字 s 绑定到一个已知的地址,通常为本地 IP 地址。(3)调用 listen()函数将套

22、接字 s 设置为侦听模式,准备好接收来自各个客户机的连接请求。(4)调用 accept()函数等待接受客户端的连接请求。(5)如果接收到客户端的请求,则 accept()函数返回,得到新的套接字 ns。(6)调用 recv()函数接收来自客户端的数据,调用 send()函数向客户端发送数据。(7)与客户端的通信结束后,服务器程序可以调用 shutdown()函数通知对方不再发送或接收数据,也可以由客户端程序断开连接。断开连接后,服务器进程调用 closesocket()函数关闭套接字 ns。此后服务器程序返回第 4 步,继续等待客户端进程的连接。(8)如果要退出服务器程序,则调用 closes

23、ocket()函数关闭最初的套接字 s。客户端程序在每一步骤中使用的函数如下:(1)调用 WSAStartup()函数加载 Windows Sockets 动态库,然后调用 socket()函数创建一个流式套接字,返回套接字号 s。(2)调用 connect()函数将套接字 s 连接到服务器。(3)调用 send()函数向服务器发送数据,调用 recv()函数接收来自服务器的数据。(4)与服务器的通信结束后,客户端程序可以调用 shutdown()函数通知对方不再发送或接收数据,也可以由服务器程序断开连接。断开连接后,客户端进程调用 closesocket()函数关闭套接字。第 6 章 探测网络中的在线设备一、选择题1B 2B 3B 4C 二、填空题1IP Helper API2IPHELPAPI.dll

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。