习题参考答案-Windows网络编程基础教程(第2版)-杨传栋-清华大学出版社
- 格式:pdf
- 大小:328.50 KB
- 文档页数:18
242return 0;}程序的工作组流程如下。
•初始化Windows Sockets环境。
•创建完成端口对象CompletionPort。
•根据当前计算机中CPU的数量创建工作线程,并将新建的完成端口对象CompletionPort 作为线程的参数。
•创建监听Socket Listen,并将其绑定到本地地址的9990端口。
•在Socket Listen上进行监听。
•在while循环处理来自客户端的连接请求,接受连接,并将得到的与客户端进行通信的Socket Accept保存到PER_HANDLE_DATA结构体对象PerHandleData中。
将Socket Accept与前面的端口CompletionPort相关联。
•在Socket Accept上调用WSARecv()函数,异步接收Socket上来自客户端的数据。
WSARecv()函数立即返回,此时Socket Accept上不一定有客户端发送来的消息。
在工作线程中会检测完成端口对象的状态,并接收来自客户端的数据,再将这些数据发送回客户端程序。
一、选择题1.下面不属于Socket编程模型的是()。
A.Select模型B.WSAAsyncSelect模型C.WSAEventSelect模型D.完成例程模型2.下面模型使用线程池处理异步I/O请求的是()。
A.Select模型B.WSAAsyncSelect模型C.WSAEventSelect模型D.完成端口模型3.在ioctlsocket()函数中使用()参数,并将argp参数设置为非0值,可以将Socket设置为非阻塞模式。
A.FIONBIO B.FIONREADC.SIOCATMARK D.FIONONBLOCK4.在执行select()函数时如果出现错误则返回()。
A.0 B.−1C.NULL D.SOCKET_ERROR5.在WSAEventSelect模型中,调用WSAEventSelect()函数注册网络事件后,应用程序需要等待网络事件的发生,然后对网络事件进行处理。
第三章N=>D=> {0,1,2,3,4,5,6,7,8,9}N=>ND=>NDDL={a |a(0|1|3..|9)n且 n>=1}(0|1|3..|9)n且 n>=1{ab,}a nb n n>=1第6题.(1) <表达式> => <项> => <因子> => i(2) <表达式> => <项> => <因子> => (<表达式>) => (<项>)=> (<因子>)=>(i)(3) <表达式> => <项> => <项>*<因子> => <因子>*<因子> =i*i(4) <表达式> => <表达式> + <项> => <项>+<项> => <项>*<因子>+<项>=> <因子>*<因子>+<项> => <因子>*<因子>+<因子> = i*i+i (5) <表达式> => <表达式>+<项>=><项>+<项> => <因子>+<项>=i+<项> => i+<因子> => i+(<表达式>) => i+(<表达式>+<项>)=> i+(<因子>+<因子>)=> i+(i+i)(6) <表达式> => <表达式>+<项> => <项>+<项> => <因子>+<项> => i+<项> => i+<项>*<因子> => i+<因子>*<因子> = i+i*i第7题第9题语法树ss s* s s+aa a推导: S=>SS*=>SS+S*=>aa+a*11. 推导:E=>E+T=>E+T*F语法树:E+T*T F短语: T*F E+T*F直接短语: T*F句柄: T*F12.<E><E> <T> <POP><T> <F> <MOP>短语:<T><F><MOP> <E><T><F><MOP><POP>直接短语:<T><F><MOP>句柄: <T><F><MOP>13.(1)最左推导:S => ABS => aBS =>aSBBS => aBBS=> abBS => abbS => abbAa => abbaa 最右推导:S => ABS => ABAa => ABaa => ASBBaa=> ASBbaa => ASbbaa => Abbaa => a1b1b2a2a3 (2) 文法:S → ABSS → AaS →εA → aB → b(3) 短语:a1 , b1 , b2, a2 , , bb , aa , abbaa,直接短语: a1 , b1 , b2, a2 , ,句柄:a114 (1)S → ABA → aAb | εB → aBb | ε(2)S → 1S0S → AA → 0A1 |ε第四章1. 1. 构造下列正规式相应的DFA(1)1(0|1)*101NFA(2) 1(1010*|1(010)*1)*0NFA(3)NFA(4)NFA2.解:构造DFA 矩阵表示a,bb其中0 表示初态,*表示终态用0,1,2,3,4,5分别代替{X} {Z} {X,Z} {Y} {X,Y} {X,Y,Z} 得DFA状态图为:3.解:构造DFA矩阵表示构造DFA的矩阵表示其中表示初态,*表示终态替换后的矩阵4.(1)解构造状态转换矩阵:{2,3} {0,1}{2,3}a={0,3}{2},{3},{0,1}{0,1}a={1,1} {0,1}b={2,2}(2)解:首先把M的状态分为两组:终态组{0},和非终态组{1,2,3,4,5} 此时G=( {0},{1,2,3,4,5} ) {1,2,3,4,5}a={1,3,0,5}{1,2,3,4,5}b={4,3,2,5}由于{4}a={0} {1,2,3,5}a={1,3,5}因此应将{1,2,3,4,5}划分为{4},{1,2,3,5}G=({0}{4}{1,2,3,5}){1,2,3,5}a={1,3,5}{1,2,3,5}b={4,3,2}因为{1,5}b={4} {23}b={2,3}所以应将{1,2,3,5}划分为{1,5}{2,3}G=({0}{1,5}{2,3}{4}){1,5}a={1,5} {1,5}b={4} 所以{1,5} 不用再划分{2,3}a={1,3} {2,3}b={3,2}因为 {2}a={1} {3}a={3} 所以{2,3}应划分为{2}{3}所以化简后为G=( {0},{2},{3},{4},{1,5})7.去除多余产生式后,构造NFA如下确定化,构造DFA 矩阵G={(0,1,3,4,6),(2,5)} {0,1,3,4,6}a={1,3}{0,1,3,4,6}b={2,3,4,5,6}所以将{0,1,3,4,6}划分为 {0,4,6}{1,3} G={(0,4,6),(1,3),(2,5)}{0,4,6}b={3,6,4} 所以 划分为{0},{4,6} G={(0),(4,6),(1,3),(2,5)}不能再划分,分别用 0,4,1,2代表各状态,构造DFA 状态转换图如下;b8.代入得S = 0(1S|1)| 1(0S|0) = 01(S|ε) | 10(S|ε) = (01|10)(S|ε)= (01|10)S | (01|10)= (01|10)*(01|10)构造NFA由NFA可得正规式为(01|10)*(01|10)=(01|10)+9.状态转换函数不是全函数,增加死状态8,G={(1,2,3,4,5,8),(6,7)}(1,2,3,4,5,8)a=(3,4,8) (3,4)应分出(1,2,3,4,5,8)b=(2,6,7,8)(1,2,3,4,5,8)c=(3,8)(1,2,3,4,5,8)d=(3,8)所以应将(1,2,3,4,5,8)分为(1,2,5,8), (3,4)G={(1,2,5,8),(3,4),(6,7)}(1,2,5,8)a=(3,4,8) 8应分出(1,2,5,8)b=(2,8)(1,2,5,8)c=(8)(1,2,5,8)d=(8)G={(1,2,5),(8),(3,4),(6,7)}(1,2,5)a=(3,4,8) 5应分出G={(1,2), (3,4),5, (6,7) ,(8) }去掉死状态8,最终结果为 (1,2) (3,4) 5,(6,7) 以1,3,5,6代替,最简DFA为b正规式:b*a(da|c)*bb*第五章1.S->a | ^ |( T )T -> T , S | S(a,(a,a))S => ( T ) => ( T , S ) => ( S , S ) => ( a , S) => ( a, ( T )) =>(a , ( T , S ) ) => (a , ( S , S )) => (a , ( a , a ) ) S=>(T) => (T,S) => (S,S) => ( ( T ) , S ) => ( ( T , S ) , S ) => ( ( T , S , S ) , S ) => ( ( S , S , S ) , S )=> ( ( ( T ) , S , S ) , S ) => ( ( ( T , S ) , S , S ) , S ) =>( ( ( S , S ) , S , S ) , S ) => ( ( ( a , S ) , S , S ) , S ) => ( ( ( a , a ) , S , S ) , S ) => ( ( ( a , a ) , ^ , S ) , S ) => ( ( ( a , a ) , ^ , ( T ) ) , S )=> ( ( ( a , a ) , ^ , ( S ) ) , S ) => ( ( ( a , a ) , ^ , ( a ) ) , S ) => ( ( ( a , a ) , ^ , ( a ) ) , a )S->a | ^ |( T )T -> T , ST -> S消除直接左递归:S->a | ^ |( T )T -> S T’T’ -> , S T’ | ξSELECT ( S->a) = {a}SELECT ( S->^) = {^}SELECT ( S->( T ) ) = { ( }SELECT ( T -> S T’) = { a , ^ , ( }SELECT ( T’ -> , S T’ ) = { , }SELECT ( T’ ->ξ) = FOLLOW ( T’ ) = FOLLOW ( T ) = { )}构造预测分析表分析符号串( a , a )#分析栈剩余输入串所用产生式#S ( a , a) # S -> ( T )# ) T ( ( a , a) # ( 匹配# ) T a , a ) # T -> S T’# ) T’ S a , a ) # S -> a# ) T’ a a , a ) # a 匹配# ) T’,a) # T’ -> , S T’# ) T’ S , , a ) # , 匹配# ) T’ S a ) # S->a# ) T’ a a ) # a匹配# ) T’) # T’ ->ξ# ) ) # )匹配# # 接受2.E->TE’E’->+E E’->ξT->FT’T’->T T’->ξF->PF’F’->*F’F’->ξP->(E) P->a P->b P->∧SELECT(E->TE’)=FIRST(TE’)=FIRST(T)= {(,a,b,^)SELECT(E’->+E)={+}SELECT(E’->ε)=FOLLOW(E’)= {#,)}SELECT(T->FT’)=FIRST(F)= {(,a,b,^}SELECT(T’ —>T)=FIRST(T)= {(,a,b,^)SELECT(T’->ε)=FOLLOW(T’)= {+,#,)}SELECT(F ->P F’)=FIRST(F)= {(,a,b,^}SELECT(F’->*F’)={*}SELECT(F’->ε)=FOLLOW(F’)= {(,a,b,^,+,#,)}3. S->MH S->a H->Lso H->ξK->dML K->ξL->eHf M->K M->bLM FIRST ( S ) =FIRST(MH)= FIRST ( M ) ∪FIRST ( H ) ∪{ξ} ∪{a}= {a, d , b , e ,ξ} FIRST( H ) = FIRST ( L ) ∪{ξ}= { e , ξ}FIRST( K ) = { d , ξ}FIRST( M ) = FIRST ( K ) ∪{ b } = { d , b ,ξ}FOLLOW ( S ) = { # , o }FOLLOW ( H ) = FOLLOW ( S ) ∪{ f } = { f , # , o }FOLLOW ( K ) = FOLLOW ( M ) = { e , # , o }FOLLOW ( L ) ={ FIRST ( S ) –{ξ} } ∪{o} ∪FOLLOW ( K )∪{ FIRST ( M ) –{ξ} } ∪FOLLOW ( M )= {a, d , b , e , # , o }FOLLOW ( M ) ={ FIRST ( H ) –{ξ} } ∪FOLLOW ( S )∪{ FIRST ( L ) –{ξ} } = { e , # , o }SELECT ( S-> M H) = ( FIRST ( M H) –{ξ} ) ∪FOLLOW ( S )= ( FIRST( M ) ∪FIRST ( H ) –{ξ} ) ∪FOLLOW ( S )= { d , b , e , # , o }SELECT ( S-> a ) = { a }SELECT ( H->L S o ) = FIRST(L S o) = { e }SELECT ( H ->ξ) = FOLLOW ( H ) = { f , # , o }SELECT ( K-> d M L ) = { d }SELECT ( K->ξ) = FOLLOW ( K ) = { e , # , o }SELECT ( L-> e H f ) = { e }SELECT ( M->K ) = ( FIRST( K ) –{ξ} ) ∪FOLLOW ( M ) = {d,e , # , o }SELECT ( M -> b L M )= { b }4 . 文法含有左公因式,变为S->C $ { b, a }C-> b A { b }C-> a B { a }A -> b A A { b }A-> a A’ { a }A’-> ξ{ $ , a, b }A’-> C { a , b }B->a B B { a }B -> b B’ { b }B’->ξ{ $ , a , b }B’-> C { a, b }5. <程序> --- S <语句表>――A <语句>――B <无条件语句>――C <条件语句>――D <如果语句>――E<如果子句> --FS->begin A end S->begin A end { begin }A-> B A-> B A’ { a , if }A-> A ; B A’-> ; B A’ { ; }A’->ξ{ end }B-> C B-> C { a } B-> D B-> D { if }C-> a C-> a { a }D-> E D-> E D’ { if }D-> E else B D’-> else B { else }D’->ξ{; , end } E-> FC E-> FC { if }F-> if b then F-> if b then { if }非终结符是否为空S-否A-否A’-是B-否C-否D-否D’-是E-否F-否FIRST(S) = { begin }FIRST(A) = FIRST(B) ∪FIRST(A’) ∪{ξ} = {a , if , ; , ξ} FIRST(A’) ={ ; , ξ}FIRST(B) = FIRST(C) ∪FIRST(D) ={ a , if }FIRST(C) = {a}FIRST(D) = FIRST(E)= { if }FIRSR(D’) = {else , ξ}FIRST(E) = FIRST(F) = { if }FIRST(F) = { if }FOLLOW(S) = {# }FOLLOW(A) = {end}FOLLOW(A’) = { end }FOLLOW(B) = {; , end }FOLLOW (C) = {; , end , else }FOLLOW(D) = {; , end }FOLLOW( D’ ) = { ; , end }FOLLOW(E) = { else , ; end }FOLLOW(F) = { a }S A A’ B C D D’ E F if then else begin end a b ;6. 1.(1) S -> A | B(2) A -> aA|a(3)B -> bB |b提取(2),(3)左公因子(1) S -> A | B(2) A -> aA’(3) A’-> A|ξ(4) B -> bB’(5) B’-> B |ξ2.(1) S->AB(2) A->Ba|ξ(3) B->Db|D(4) D-> d|ξ提取(3)左公因子(1) S->AB(2) A->Ba|ξ(3) B->DB’(4) B’->b|ξ(5) D-> d|ξ3.(1) S->aAaB | bAbB(2) A-> S| db(3) B->bB|a4(1)S->i|(E)(2)E->E+S|E-S|S提取(2)左公因子(1)S->i|(E)(2)E->SE’(3)E’->+SE’|-SE’ |ξ5(1)S->SaA | bB(2)A->aB|c(3)B->Bb|d消除(1)(3)直接左递归(1)S->bBS’(2)S’->aAS’|ξ(3)A->aB | c(4) B -> dB’(5)B’->bB’|ξ6.(1) M->MaH | H(2) H->b(M) | (M) |b消除(1)直接左递归,提取(2)左公因子(1)M-> HM’(2)M’-> aHM’ |ξ(3)H->bH’ | ( M )(4)H’->(M) |ξ7. (1)1)A->baB2)A->ξ3)B->Abb4)B->a将1)、2)式代入3)式1)A->baB2)A->ξ3)B->baBbb4)B->bb5)B->a提取3)、4)式左公因子1)A->baB2)A->ξ3)B->bB’4)B’->aBbb | b5)B->a(3)1)S->Aa2)S->b3)A->SB4)B->ab将3)式代入1)式1)S->SBa2)S->b3)A->SB4)B->ab消除1)式直接左递归1)S->bS’2)S’->BaS’ |ξ3)S->b4)A->SB5)B->ab删除多余产生式4)1)S->bS’2)S’->BaS’ |ξ3)S->b4)B->ab(5)1)S->Ab2)S->Ba3)A->aA4)A->a提取3)4)左公因子1)S->Ab2)S->Ba3)A->aA’4)A’-> A |ξ5)B->a将3)代入1)5)代入21)S->aA’b2)S->aa3)A->aA’4)A’-> A |ξ5)B->a提取1)2)左公因子1)S-> aS’2)S’->A’b | a3)A->aA’4)A’-> A |ξ5)B->a删除多余产生式5)1)S-> aS’2)S’->A’b | a3)A->aA’4)A’-> A |ξA A’S’S将3)代入4)1)S-> aS’2)S’->A’b | a3)A->aA ’4)A’-> aA’ |ξ将4)代入2)1)S-> aS’2)S’->aA’b3)S’->a4)S’->b5)A->aA ’6)A’-> aA’ |ξ对2)3)提取左公因子1)S->aS’2)S’->aS’’3)S’’->A’b|ξ4)S’->b5)A->aA ’6)A’-> aA’ |ξ删除多余产生式5)1)S->aS’3)S’’->A’b|ξ4)S’->b5)A’-> aA’ |ξ第六章1S → a | ∧ | ( T )T → T , S | S解:(1) 增加辅助产生式 S’→#S#求 FIRSTVT集FIRSTVT(S’)= {#}FIRSTVT(S)= {a ∧ ( }= { a ∧ ( }FIRSTVT (T) = {,} ∪ FIRSTVT( S ) = { , a ∧ ( }求 LASTVT集LASTVT(S’)= { # }LASTVT(S)= { a ∧ )}LASTVT (T) = { , a ∧ )}(2)算符优先关系表因为任意两终结符之间至多只有一种优先关系成立,所以是算符优先文法(3)a ∧( ) , #F 1 1 1 1 1 1g 1 1 1 1 1 1f 2 2 1 3 2 1g 2 2 2 1 2 1f 3 3 1 3 3 1g 4 4 4 1 2 1f 3 3 1 3 3 1g 4 4 4 1 2 1(4)#<·( a,a)# 移进#( <· a ,a)# 移进# (a ·> , a)# 规约#(T <·, a)# 移进#(T,<· a )# 移进#(T,a ·> ) # 规约#(T,T ·> ) # 规约#(T =·) # 移进#(T) ·> #规约#T =·#接受4.扩展后的文法S’→#S# S→S;G S→G G→G(T) G→H H→a H→(S)T→T+S T→S(1)FIRSTVT(S)={;}∪FIRSTVT(G) = {; , a , ( }FIRSTVT(G)={ ( }∪FIRSTVT(H) = {a , ( }FIRSTCT(H)={a , ( }FIRSTVT(T) = {+} ∪FIRSTVT(S) = {+ , ; , a , ( }LASTVT(S) = {;} ∪LASTVT(G) = { ; , a , )}LASTVT(G) = { )} ∪LASTVT(H) = { a , )}LASTVT(H) = {a, )}LASTVT(T) = {+ } ∪LASTVT(S) = {+ , ; , a , ) }因为任意两终结符之间至多只有一种优先关系成立,所以是算符优先文法(2)句型a(T+S);H;(S)的短语有:a(T+S);H;(S) a(T+S);H a(T+S) a T+S (S) H直接短语有: a T+S H (S)句柄: a素短语:a T+S (S)最左素短语:a(3)分析a;(a+a)不能用最右推导推导出上面的两个句子。
计算机网络基础(第二版)习题参考答案计算机网络基础(第二版)习题参考答案第一章:计算机网络概述1. 什么是计算机网络?计算机网络是指通过通信设备与线路将广泛分布的计算机系统连接起来,使其能够互相传送数据和共享资源的系统。
2. 计算机网络的分类有哪些?计算机网络可以根据规模分为广域网(WAN)、局域网(LAN)和城域网(MAN);根据拓扑结构分为总线型、环型、星型、树型和网状型等;根据传输介质分为有线网络和无线网络。
3. 计算机网络的优缺点是什么?计算机网络的优点包括提高工作效率、资源共享、信息传递迅速等;缺点包括网络安全隐患、传输速度受限、依赖性较强等。
4. OSI七层模型是什么?OSI七层模型是国际标准化组织(ISO)提出的通信协议参考模型,按照功能从下到上依次为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
5. TCP/IP四层模型是什么?TCP/IP四层模型是互联网上的通信协议参考模型,按照功能从下到上依次为网络接口层、网络层、传输层和应用层。
第二章:物理层1. 物理层的作用是什么?物理层主要负责传输比特流,通过物理介质将比特流从发送端传输到接收端。
2. 串行传输和并行传输有什么区别?串行传输是指按照位的顺序将比特一个接一个地传输,而并行传输是指同时传输多个比特。
3. 常见的物理层传输介质有哪些?常见的物理层传输介质包括双绞线、同轴电缆、光纤和无线电波等。
4. 什么是调制和解调?调制是指将数字信号转换为模拟信号的过程,解调是指将模拟信号转换为数字信号的过程。
5. 什么是编码和解码?编码是指将比特流转换为电信号的过程,解码是指将电信号转换为比特流的过程。
第三章:数据链路层1. 数据链路层的作用是什么?数据链路层主要负责将数据报传输到相邻节点,以及差错控制、流量控制等功能。
2. 什么是帧?帧是数据链路层中的数据传输单位,包括字段和控制信息。
3. 什么是差错检测?差错检测是指在传输过程中检测到传输错误的方法,常见的差错检测方法包括奇偶校验、循环冗余检验(CRC)等。
计算机网络参考答案第三章(高教第二版冯博琴)1 什么是网络体系结构?网络体系结构中基本的原理是什么?答:所谓网络体系就是为了完成计算机间的通信合作,把每个计算机互连的功能划分成定义明确的层次,规定了同层次进程通信的协议及相邻层之间的接口及服务。
将这些同层进程间通信的协议以及相邻层接口统称为网络体系结构。
网络体系结构中基本的原理是抽象分层。
2 网络协议的组成要素是什么?试举出自然语言中的相对应的要素。
答:网络协议主要由三个要素组成:1)语义协议的语义是指对构成协议的协议元素含义的解释,也即“讲什么”。
2)语法语法是用于规定将若干个协议元素和数据组合在一起来表达一个更完整的内容时所应遵循的格式,即对所表达的内容的数据结构形式的一种规定(对更低层次则表现为编码格式和信号电平),也即“怎么讲”。
3)时序时序是指通信中各事件发生的因果关系。
或者说时序规定了某个通信事件及其由它而触发的一系列后续事件的执行顺序。
例如在双方通信时,首先由源站发送一份数据报文,如果目标站收到的是正确的报文,就应遵循协议规则,利用协议元素ACK来回答对方,以使源站知道其所发出的报文已被正确接收,于是就可以发下一份报文;如果目标站收到的是一份错误报文,便应按规则用NAK元素做出回答,以要求源站重发该报文。
3 OSI/RM参考模型的研究方法是什么?答:OSI/RM参考模型的研究方法如下:1)抽象系统抽象实系统中涉及互连的公共特性构成模型系统,然后通过对模型系统的研究就可以避免涉及具体机型和技术实现上的细节,也可以避免技术进步对互连标准的影响。
2)模块化根据网络的组织和功能将网络划分成定义明确的层次,然后定义层间的接口以及每层提供的功能和服务,最后定义每层必须遵守的规则,即协议。
模块化的目的就是用功能上等价的开放模型代替实系统。
5 服务原语的作用是什么?试以有确认服务为例进行说明。
答:服务在形式上是用服务原语来描述的,这些原语供用户实体访问该服务或向用户实体报告某事件的发生。
《计算机网络基础(第二版)》习题参考答案第一章(1)计算机网络按网络的覆盖范围可分为_局域网_、城域网和__广域网__。
(2)从计算机网络组成的角度看,计算机网络从逻辑功能上可分为通信子网和__资源__子网。
(1)计算机网络的发展经过哪几个阶段?每个阶段各有什么特点?答:单机系统:在单处理机联机网络中,由单用户独占一个系统发展到分时多用户系统,被称为第一代网络。
多机系统:将多个单处理机联机终端网络互相连接起来,以多处理机为中心的网络,并利用通信线路将多台主机连接起来,为用户提供服务,形成了以通信子网为核心的第二代网络,随着分组交换技术的使用,逐渐形成了以遵守网络体系结构的第三代网络。
Internet是计算机网络发展最典型的实例,该网络的发展也促使新的高速网络技术的不断出现,又提高了网络的发展。
(2)什么是计算机网络?计算机网络的主要功能是什么?答:利用通信设备和线路,将分布在地理位置不同的、功能独立的多个计算机系统连接起来,以功能完善的网络软件(网络通信协议及网络操作系统等)实现网络中资源共享和信息传递的系统。
主要功能:1. 数据交换和通信:在计算机之间快速可靠地相互传递数据、程序或文件;2. 资源共享:充分利用计算机网络中提供的资源(包括硬件、软件和数据);3. 提高系统的可靠性:通过计算机网络实现的备份技术可以提高计算机系统的可靠性。
4. 分布式网络处理和负载均衡:将任务分散到网络中的多台计算机上进行,减轻任务负荷过重的单台主机。
(3)计算机网络分为哪些子网?各个子网都包括哪些设备,各有什么特点?答:从计算机网络系统组成的角度看,典型的计算机网络分为资源子网和通信子网。
资源子网由主机、终端、终端控制器、连网外设、各种软件资源与信息资源组成。
主机是资源子网的主要组成单元,为本地用户和网络中远程用户访问网络其他主机设备与资源提供服务。
终端控制器负责终端和主计算机的信息通信。
终端是直接面向用户的交互设备,可以是由键盘和显示器组成的简单的终端,也可以是微型计算机系统。
计算机网络技术基础(第2版)课后习题参考答案计算机网络技术基础(第2版)课后习题参考答案一、选择题1. A2. D3. C4. B5. A6. D7. B8. C9. A 10. D二、填空题1. 外网2. 客户端3. 协议4. 因特网5. 应用层6. 主机7. 数据链路层8. 路由器9. 局域网 10. 有线三、判断题1. 错误2. 正确3. 正确4. 正确5. 错误四、简答题1. 计算机网络是指将分布在不同地理位置的计算机系统通过通信设备和通信线路互连起来的系统。
它能够实现计算机之间的数据传输、资源共享和信息交流。
计算机网络包括局域网、广域网和因特网等。
2. OSI(开放式系统互联)参考模型是国际标准化组织(ISO)提出的通信协议参考模型。
它将计算机网络的通信过程分为七层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
每一层都有特定的功能和协议。
3. IP地址是互联网上每台主机或路由器连接到网络时被分配的唯一标识符。
它由32位二进制数组成,通常以IPv4和IPv6两种版本存在。
IPv4地址分为4个8位字段,用点分十进制表示;IPv6地址分为8个16位字段,用冒号分隔。
4. TCP/IP协议是互联网上常用的协议集合。
它由传输控制协议(TCP)和网络互联协议(IP)两部分组成。
其中,TCP负责提供可靠的数据传输,确保数据按正确的顺序到达目的地;而IP负责将数据分割为数据包,通过路由器进行转发,最终将数据传送到目标主机。
五、应用题1. 分组交换是一种数据传输方式,将数据分割为大小相等的数据包(分组),每个数据包都附带目标地址和源地址等信息。
分组交换通过路由器将数据包从源主机传输到目标主机,由于数据包是按需发送,因此可以更灵活地利用网络资源。
2. 应用层是计算机网络的最顶层,它提供了各种网络应用程序之间的通信能力。
常见的应用层协议有HTTP、FTP、SMTP等。
应用层协议定义了数据的格式、编码方式和传输规则等,以确保应用程序之间可以相互通信。
第1章Internet与网络通信模型概述一、选择题1.D 2.B 3.D 4.D二、填空题1.Open System Interconnection Reference Model2.开放系统互连参考模型3.协议数据单元4.PDU,Protocol Data Unit5.数据段(Segment)6.数据包(Packet)7.数据帧(Frame)8.比特(Bit)9.网络接口层10.网络层11.传输层12.应用层三、简答题1.答:OSI参考模型将网络通信的工作划分为7个层次,由低到高分别为物理层(Physical Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)和应用层(Application Layer)。
2.答:在网络通信中,发送端的自上而下的使用OSI参考模型,对应用程序要发送的信息进行逐层打包,直至在物理层将其发送到网络中;而接收端则自下而上的使用OSI参考模型,将收到的物理数据逐层解析,最后将得到的数据传送给应用程序。
当然,并不是所有的网络通信都需要经过OSI模型的全部七层。
例如,同一网段的二层交换机之间通信之需要经过数据链路层和物理层,而路由器之间的连接则只需要网络层、数据链路层和物理层即可。
在发送方封装数据的过程中,每一层都会为数据包加上一个头部;在接收方解封数据时,又会逐层解析掉这个头部。
因此,双方的通信必须在对等层次上进行,否则接收方将无法正确地解析数据。
3.答:帧的简要结构如图1.4所示。
图1.4 帧的简要结构每个字段的说明如下:●前导码,内容是16进制数0xAA,作用是使接收节点进行同步并做好接收数据帧的准备。
●帧首定界符,是10101011的二进制序列,标识帧的开始,以使接收器对实际帧的第一位定位。
●源地址和目的地址,即发送和接收数据的两端主机的MAC地址。
《Windows网络编程基础》习题解答第一章网络应用程序设计基础习题1.TCP/IP协议栈的五个层次是什么?在这些层次中,每层的主要任务是什么?解答:TCP/IP参考模型分为五个层次:应用层、传输层、网络层、链路层和物理层。
以下分别介绍各层的主要功能。
应用层是网络应用程序及其应用层协议存留的层次。
该层包括了所有与网络相关的高层协议,如文件传输协议(File Transfer Protocol,FTP)、超文本传输协议(Hypertext Transfer Protocol,HTTP)、Telent(远程终端协议)、简单邮件传送协议(Simple Mail Transfer Protocol,SMTP)、因特网中继聊天(Internet Relay Chat,IRC)、网络新闻传输协议(Network News Transfer Protocol,NNTP)等。
传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。
在传输层定义了两种服务质量不同的协议,即:传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(User Datagram Protocol,UDP)。
网络层是整个TCP/IP协议栈的核心。
它的功能是通过路径选择把分组发往目标网络或主机,进行网络拥塞控制以及差错控制。
链路层负责物理层和网络层之间的通信,将网络层接收到的数据分割成特定的可被物理层传输的帧,并交付物理层进行实际的数据传送。
物理层的任务是将该帧中的一个一个比特从一个节点移动到下一个节点。
该层中的协议仍然是链路相关的,并且进一步与链路(如双绞线、单模光纤)的实际传输媒体相关。
对应于不同的传输媒体,跨越这些链路移动一个比特的方式不同。
2.请分析路由器、链路层交换机和主机分别处理TCP/IP协议栈中的哪些层次?解答:路由器处理TCP/IP协议栈的物理层、链路层和网络层;链路层交换机处理TCP/IP协议栈的物理层和链路层;主机处理TCP/IP协议栈的物理层、链路层、网络层、传输层和应用层。
31 序通常使用POP3或者IMAP (Internet Message Access Protocol ,交互式邮件存取协议)来访问邮件服务器上的邮箱账号。
使用SMTP 创建消息、传送邮件的主要流程如下。
(1)客户端邮件应用程序使用SMTP 向邮件服务器提交一封电子邮件。
(2)邮件服务器将邮件传送至一个邮件传输代理(MTA )。
通常,MTA 和邮件服务器运行在同一台计算机上。
TCP 端口25用于向邮件服务器提交数据。
邮件服务器在域名系统DNS 中查找目标邮件交换记录,然后通过TCP 端口25向邮件传输代理传送数据。
邮件传输代理(Mail Transfer Agent ,MTA )的功能是将信件转发给指定用户。
(3)邮件传输代理在收到消息后,将通过邮件分发代理(MDA )将邮件分发到相应的用户邮箱中。
MDA 还可以解决发送后的一些问题,如病毒扫描和垃圾邮件过滤等。
2.POP3客户端邮件应用程序可以使用IMAP 或者POP3来接收邮件服务器上的邮件。
POP3是基于客户端/服务器结构的网络协议,使用者通过它可以将接收到的邮件保存到邮件服务器上。
POP3支持离线邮件处理,用户可以定期检查服务器上的邮箱,并下载新的邮件。
绝大多数客户端邮件应用程序都支持POP3,如Outlook Express 和Foxmail 等。
在IE 和Netscape 浏览器中也集成了POP3。
当用户使用POP3从邮件服务器上下载邮件后,该邮件将会从服务器上被删除掉,但也可以设置将下载后的邮件再保存一段时间。
POP3中包括如下3种状态。
• 认证状态:当客户端应用程序与邮件服务器建立连接时,客户端向邮件服务器发送自己的身份信息,包括账户和密码等,由服务器进行验证。
• 处理状态:通过验证后,客户端由认证状态转为处理状态,它将从邮件服务器上获取到未读邮件的列表,然后发送Quit 命令,退出处理状态,进入更新状态。
• 更新状态:在更新状态中,客户端应用程序将未读邮件下载到本地计算机,然后再返回到认证状态,确认身份后断开与服务器的连接。
计算机网络基础(第二版)习题参考答案计算机网络基础(第二版)习题参考答案1. 数据通信基础计算机网络是一种将分布在不同地理位置的计算机系统连接在一起,实现信息交换和资源共享的系统。
数据通信是计算机网络的基础,它指的是在计算机网络中传输和交换数据的过程。
1.1 数据通信的基本概念数据通信是指通过某种媒介传输数据,将计算机系统中的信息从一个地方发送到另一个地方。
数据通信的基本概念包括发送方、接收方、传输介质、传输模式等。
1.2 数据通信的基本组成数据通信的基本组成包括发送器、信道、接收器等。
发送器将信息转换为适合传输的形式,并通过信道将信息传输到接收器进行处理。
1.3 数据通信的基本模型数据通信的基本模型是指数据在传输过程中的几个基本要素,包括发送方、接收方、传输介质和传输协议。
发送方将信息分段转换为数据包,通过传输介质传输给接收方,接收方按照相应的传输协议进行解析和处理。
2. 计算机网络的概述计算机网络是指将多台计算机系统通过通信线路或其他传输介质连接起来,实现信息交换和资源共享的系统。
2.1 计算机网络的分类根据规模和范围的不同,计算机网络可以分为局域网(LAN)、城域网(MAN)和广域网(WAN)等不同类型。
2.2 计算机网络的体系结构计算机网络的体系结构包括物理层、数据链路层、网络层、传输层和应用层等不同层次。
每一层负责不同的功能,通过协议进行通信和交互。
3. TCP/IP协议世界TCP/IP是互联网的核心协议,由传输控制协议(TCP)和互联网协议(IP)组成。
3.1 TCP/IP协议的基本原理TCP/IP协议是一种面向连接的协议,通过将数据分割成数据段并进行封装,使用IP地址将数据段传输到目的地,再通过TCP协议实现数据的可靠传输。
3.2 TCP/IP协议的层次结构TCP/IP协议的层次结构包括网络接口层、网络层、传输层和应用层等不同层次。
每一层负责不同的功能,通过协议进行通信和交互。
3.3 TCP/IP协议的应用TCP/IP协议广泛应用于互联网和局域网等不同的网络环境中。
第1章习题1.选择题(1)答案:D(2)答案:C(3)答案:B(4)答案:C(5)答案:D(6)答案:B(7)答案:B(8)答案:D(9)答案:B(10)答案:B(11)答案:C2.填空题(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)答案:A2.填空题(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:指向一个字符串,该字符串是弹出窗口的标题。
返回值:是一个整数,代表用户单击了哪个按钮,具体如下表所示:4.编程题(1)提示:将编辑框中的字符串转换成double型,需要使用函数atof(),在使用MFC编程时可使用_tftof()代替。