第1章习题
1.选择题
(1)答案:D
(2)答案:C
(3)答案:B
(4)答案:C
(5)答案:D
(6)答案:B
(7)答案:B
(8)答案:D
(9)答案:B
(10)答案:B
(11)答案:C
2.填空题
(1)答案:广播、单播
(2)答案:路由器
(3)答案:FF-FF-FF-FF-FF-FF
(4)答案:目的计算机、广播地址
(5)答案:路255.255.255.255、0.0.0.0
(6)答案:目的端口号
(7)答案:操作系统通信
(8)答案:路操作系统的核心、函数库
(9)答案:流式套接字、数据报套接字
3.简答题
(1)什么是网络协议?说出协议的三要素及它们的含义。
答:网络协议,就是指通信双方在通信时所必须遵循的用于控制数据传输的规则、标准和约定,是通信双方所使用的“语言”,它规定了有关功能部件在通信过程中的操作,定义了数据发送和数据接收的过程。
网络协议包括三方面内容。一是“语法”,主要是指数据以及控制信息的结构或格式;第二方面内容是“语义”,它是指对构成协议的协议元素含义的具体解释;第三方面是“同步”,同步也称为“时序”,它规定了通信过程中各种事件的先后顺序。
(2)画出以太网帧结构示意图,并简要叙述以太网帧中各字段的含义。
答:以太网帧结构如下图所示:
其中,目的地址,指明要接收该帧的计算机的MAC地址。如果是一个广播帧,即该帧是广播给网络中的所有计算机的,目的地址应指明为广播地址。
源地址字段,用于指明发送该帧的计算机的MAC地址。通过源地址,收到该帧的计算机
就会知道是哪台计算机发送了该帧。
类型字段主要用于指明接收端对数据部分的处理方式,也就是说,接收端收到数据后,如果经过检验没发现错误,帧中的数据应该交给哪个程序处理。
数据字段,也被称为用户数据,是网络真正要传送的内容,长度在46~1500个字节之间。
校验码是接收方用来检查数据在传输过程中是否出错的,也称为帧校验序列(FCS),由发送方根据帧的其他部分的内容使用某种算法计算得到。
(3)简述ISO的OSI/RM网路体系结构模型各层的功能。
答:OSI/RM模型将计算机网络按功能分为七个层次,从下到上依次为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
物理层的主要功能是,利用通信介质为需要直接通信的节点之间建立、维护和释放物理连接,实现二进制比特流的传输,进而为其上的数据链路层提供数据传输服务。
数据链路层的主要功能是在物理层提供的比特流传输服务基础上,以帧为单位,实现无差错数据传输,简单一点说就是在数据链路两端实现无差错数据传输。
网络层的功能是,在链路层提供的服务基础之上,通过中间节点的数据转发,实现任意两台计算机间的通信。网络层以“分组”(packet)为数据传输单位,通过适当的路由选择,可以为网络上的任意两台计算机之间提供通信服务,并能实现拥塞控制和网络互联。
传输层直接为应用进程提供通信服务,传输层提供的这种“应用进程到应用进程”的数据传输服务通常被称为端到端(end-to-end)通信服务。传输层为多个应用进程共用网络通信服务提供了支撑。除此之外,传输层还可以在网络层提供的不可靠的数据报服务之上,通过采用可靠传输协议为应用进程提供可靠的数据通信服务。
会话层组织两个会话进程之间的通信,管理数据的交换。
表示层用于处理在两个通信系统中交换信息的表示方式,包括数据格式变换、数据加密与解密、数据压缩与恢复等。
应用层是体系结构中的最高层,其主要任务是通过网络应用进程间的通信来实现特定的网络应用,该层定义应用的总体框架以及进程间通信和交互的具体规则。
(4)简述路由器在收到一个IP分组后的处理过程。
答:①从收到的分组的首部提取目的IP地址D。
②对与路由器直接相连的子网(下一跳地址为“直接交付”的那些表项对应的网络),
先用各网络的子网掩码和D逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则执行步骤③。
③若路由表中有目的地址为D的特定主机路由,则将分组传送给指明的下一跳路由器;
否则,执行步骤④。
④对路由表中的其余的每一表项的子网掩码和D逐位相“与”,若其结果与某一项的目
的网络地址匹配,则将分组传送给该项指明的下一跳路由器,若结果与多项都匹配,则选子网掩码最大的路由表项作为该分组的路由;若无匹配项,则执行步骤⑤。
⑤通过ICMP协议,向源主机报告转发分组出错。
(5)传输层协议如何区分同一主机上的不同应用进程?
答:通过引入端口号来区分不同应用进程。同一机器上的每个应用进程都被分配有一个端口号,发送方发送数据时,需要在报文首部填上目的进程的端口号,目的机器收到报文后,就可以根据报文中的目的端口号将数据交给目的进程。
(6)如何表示网络环境中的进程地址?
答:(IP地址、传输层协议、端口号)
(7)网络应用程序的结构模型主要有哪些?
答:C/S模型、B/S模型、P2P模型。
(8)图1.20是从网上捕获的一个以太帧的80字节数据(16进制表示)。第一列为每行数据第一字
节的序号(从0开始,也是16进制表示的)。
图1.20捕获的某以太网帧的前128字节数据
提供端到端的进程间通信服务的是对照图1.2和图1.11完成以下各题:
①写出该帧的目的MAC地址和源MAC地址。
②已知以太网帧的类型字段值为0800时,其数据部分为一个IP分组,由图1.20可以看到,捕获的该帧中的数据部分确实为一个IP分组。请回答:该IP分组的源IP地址和目的IP地址格式多少?用点分十进制表示。
③已知IP分组首部中,协议字段的值为1时,对应的数据部分是ICMP报文;协议字段的值为2时,对应的数据部分是IGMP报文;协议字段的值为6时,对应的数据部分是TCP报文段;协议字段的值为17时,对应的数据部分是UDP数据报。请根据图1.20所给数据回答,该IP分组的数据部分是ICMP报文、TCP报文段、UDP数据报还是其他?
答:①目的MAC地址00-21-27-21-51-ee源MAC地址00-15-c5-c1-5e-28
②源IP地址为:0a028064点分十进制表示为:10.2.128.100
目的IP地址为:40aa6220点分十进制表示为:64.176.98.32
③因为该分组的IP协议字段值为06,所以其数据部分是TCP报文段。
第2章习题
1.选择题
(1)答案:C
(2)答案:D
(3)答案:C
(4)答案:D
(5)答案:D
(6)答案:C
(7)答案:B
(8)答案:B
(9)答案:D
(10)答案:A
(11)答案:B
(12)答案:A
2.填空题
(1)答案:窗口句柄
(2)答案:Hello,C++
(3)答案:UNICODE转换格式(UTF)
(4)答案:AddString()、ResetConten()
(5)答案:属性、CreateWindow()函数
(6)答案:变量映射、控件类别、值类别
3.简答题
(1)在对话框窗口属性中Caption属性、Font属性以及Border属性各起什么作用?编写对话框应用
程序时,如何让程序的主对话框窗口不显示右上角的最大化和最小化按钮?
答:①Caption属性的值是对话框窗口标题栏显示的文字;Font属性用于设置对话框窗口中控件上显示的文字的字体、字形和字号;Border属性用于确定窗口的边框类型。
②若要对话框窗口不显示右上角的最大化和最小化按钮,应将Minimize box和Maximize box
这两个属性值均设为False,均设置为true则是显示最大化和最小化按钮。
(2)请列举出ListBox控件的常用属性并说明其作用,要求不少于三个。如何向ListBox空间中添
加一个字符串?如何将一个单选ListBox控件中选中的列表项内容保存到一个CString对象中?
答:①Selection属性,该属性有4个选项:Single,表示在给定的选项中,至多有一个被选中,此时列表框为单选列表框;Multiple,表示可以有多个选项被选中,但忽略Shift键和Ctrl键;
Extended,允许选择多个选项,在选择时可以使用Shift键和Ctrl键;None,不允许选择任何选项。
Sort属性用于设置列表框内容应是否按字母顺序排序,缺省为True,表示列表内容按字母顺序自动排序。
Multi-column属性指定是否创建一个多列列表框,缺省值为False,即创建单列列表框。
②调用AddString()方法可向ListBox空间中添加一个字符串。
③设m_List是一个列表框控件变量,使用如下代码可将列表框中选中的列表项的内容保存到
字符串对象str中:
CString str;
int i,n;
n=m_List.GetCount();
for(i=0;i<n;i++)
if(m_List.GetSel(i)>0)break;
m_List.GetText(i,str);
(3)什么是DDX机制?对编辑框控件(Edit Control),除使用DDX实现变量与控件的数据交换
外,能否调用其方法来实现数据交换?如果能的话,应该使用编辑框控件的哪两个方法?
答:①通过某个控件输入的数据可以保存到对话框类的某个成员变量中,反过来,对话框类的某个成员变量的值也可以在对话框的某个控件上显示,这就是所谓控件与变量的数据交换,简称DDX。控件与变量的数据交换是通过使用基于ID的变量映射来实现的。所谓变量映射,就是利用“类向导”,将一个对话框类的成员变量通过控件的ID和控件进行关联(映射)。与控件关联的变量通常都被称为“控件变量”。
②能。
③可使用成员函数SetWindowText()和GetWindowText()来改变或获取编辑框控件上的文
字。
(4)当单击一个命令按钮时,系统会发送BN_CLICKED消息给窗口,窗口收到该消息后就调用相
应的消息处理函数来响应这一事件。消息处理函数是由编程者编写的一个窗口类的成员函数。
请问:消息是如何同消息处理函数关联起来的?
答:消息是通过“消息映射’同消息处理函数关联起来的,实现消息映射的代码在添加消息处理函数时由“类向导”自动添加。
(5)在使用VC++编写图形界面的Windows应用程序时,MessageBox函数十分有用,请查阅资料,
给出该函数的功能、使用格式以及各参数的取值类型及相应含义。
答:执行MessageBox()函数将显示一个模态对话框,该对话框一般包括一个系统图标、一组按钮和一个简短的文字信息。函数返回一个整数值,该值代表用户单击了哪个按钮。
函数原型:int MessageBox(LPCTSTR lpszText,LPCTSTR lpszCaption=NULL,UINT nType=MB_OK);
参数
lpszText:指向一个字符串,该字符串是要显示的消息。
lpszCaption:指向一个字符串,该字符串是弹出窗口的标题。
返回值:是一个整数,代表用户单击了哪个按钮,具体如下表所示:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论