├── LICENSE ├── README.md ├── Wechat.md ├── wechat.jpg ├── 操作系统教程 ├── .gitignore ├── README.md ├── ch1-answer.doc ├── ch2-answer.doc ├── ch2-answer.docx ├── ch3-answer.doc ├── ch3-answer.docx ├── ch4-answer.doc ├── ch4-answer.docx ├── ch5-answer.doc ├── ch5-answer.docx ├── ch6-answer.doc ├── ch6-answer.docx ├── ch7-answer.doc ├── ch7-answer.docx ├── ch8-answer.doc ├── ch8-answer.docx ├── img │ └── 操作系统教程.jpg ├── xiti09.doc ├── xiti09.docx ├── 操作系统_第四版_答案_孙钟秀主编.pdf ├── 操作系统教程课后习题答案.md ├── 操作系统第一章应用题参考答案.2014.pdf ├── 操作系统第三章应用题参考答案.2014.pdf ├── 操作系统第二章应用题参考答案.2014.pdf ├── 操作系统第五章、第六章应用题参考答案.2014.pdf └── 操作系统第四章应用题参考答案.2014.pdf ├── 数据结构 ├── .gitignore ├── README.md ├── img │ └── ds.jpg ├── 数据结构 殷人昆 课后习题答案 │ ├── 图.pdf │ ├── 排序.pdf │ ├── 数组.pdf │ ├── 栈与队列.pdf │ ├── 树与森林.pdf │ ├── 索引与散列.pdf │ ├── 绪论.pdf │ ├── 递归与广义表.pdf │ ├── 链表.pdf │ └── 集合与搜索.pdf ├── 数据结构习题解答与考试指导.pdf ├── 数据结构课后习题参考答案.md ├── 殷人昆 数据结构习题解析(用面向对象方法和C++描述)文字版.pdf └── 清华 殷人昆C++数据结构答案 │ ├── 数据结构第0章.doc │ ├── 数据结构第10章.doc │ ├── 数据结构第1章.doc │ ├── 数据结构第2章.doc │ ├── 数据结构第3章.doc │ ├── 数据结构第4章.doc │ ├── 数据结构第5章.doc │ ├── 数据结构第6章.doc │ ├── 数据结构第7章.doc │ ├── 数据结构第8章.doc │ └── 数据结构第9章.doc ├── 离散数学 ├── 离散数学及其应用第6版奇数练习题答案.pdf └── 离散部分题解及编译题目补充.docx ├── 算法设计与分析 ├── .gitignore └── 算法设计与分析课后习题参考答案.md ├── 编译原理 ├── 编译原理习题解答及上机指导(胡元义).rar ├── 编译原理模拟题.doc ├── 编译原理龙书二三四章习题解答 │ ├── Homework1.pdf │ ├── Homework2.pdf │ └── Homework3.pdf ├── 编译原理龙书答案.doc ├── 编译原理龙书课后部分答案 英文版 .doc └── 龙书部分答案 │ ├── a10.doc │ ├── a2.doc │ ├── a3.doc │ ├── a4.doc │ ├── a5.doc │ ├── a67.doc │ └── a89.doc ├── 计算机系统基础 ├── .gitignore ├── 1-1.pdf ├── 2-1.pdf ├── 3-1.pdf ├── 4-1.pdf ├── 5-1.pdf ├── 6-1.pdf ├── 7-1.pdf ├── 8-1.pdf ├── 9-1.pdf ├── ICS-hw0.pdf ├── ICS-hw1.pdf ├── ICS-hw2.pdf ├── README.md ├── ch8习题解答.pdf ├── img │ ├── ics-exercise.jpg │ └── ics.jpg ├── 第七章习题答案.doc ├── 第三章习题答案.doc ├── 第九章习题答案.doc ├── 第二章习题答案.doc ├── 第五章习题答案.doc ├── 第八章习题答案.doc ├── 第八章习题答案.docx ├── 第六章习题答案.doc ├── 第四章习题答案.doc ├── 计算机系统基础课后习题参考答案.docx ├── 计算机系统基础课后习题参考答案.md └── 计算机组成与系统结构答案-袁春风.pdf └── 计算机网络 ├── README.md ├── chinese ├── img │ ├── 1.png │ ├── 10.png │ ├── 11.png │ ├── 12.png │ ├── 13.png │ ├── 14.png │ ├── 15.png │ ├── 16.png │ ├── 17.png │ ├── 18.png │ ├── 19.png │ ├── 2.png │ ├── 20.png │ ├── 21.png │ ├── 22.png │ ├── 23.png │ ├── 24.png │ ├── 25.png │ ├── 26.png │ ├── 27.png │ ├── 28.png │ ├── 29.png │ ├── 3.png │ ├── 30.png │ ├── 31.png │ ├── 32.png │ ├── 33.png │ ├── 34.png │ ├── 35.png │ ├── 36.png │ ├── 37.png │ ├── 38.png │ ├── 39.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ └── 9.png └── 计算机网络-自顶向下课后答案.md └── english └── 计算机网络:自顶向下(原书第7版)英文配套答案.pdf /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # exercises_answers 2 | 3 | 计算机网络:自顶向下方法 (原书第七版)陈鸣译 课后习题参考答案(中文版+英文版) 4 | 5 | 计算机系统基础(第2版)袁春风 课后习题参考答案 6 | 7 | 操作系统教程(第5版)费翔林 课后习题参考答案 8 | 9 | 数据结构(用C++描述)殷人昆)课后习题参考答案 10 | 11 | 算法设计与分析 黄宇 课后习题参考答案 12 | 13 | ***pdf文件可以在release中下载*** 14 | 15 | ## 版本信息 16 | 17 | - 2020年2月7日 18 | 添加初步资料 19 | 20 | - 2019年12月24日 21 | 创建项目 22 | -------------------------------------------------------------------------------- /Wechat.md: -------------------------------------------------------------------------------- 1 | # Wechat 2 | 3 | 如果你只需要代码或者资料或者文章,那么你可以走了。 4 | 5 | 如果你需要C/C++/OpenCV/FFmpeg/Java/Python编程入门与交流, 6 | 7 | 可以考虑关注一下我的公众号(因为知乎总是莫名其妙的禁言,CSDN审核标准不清晰), 8 | 9 | 我们一起交流、学习、进步(注意:是交流,你如果只是希望白嫖走人也可以关注^_^)。 10 | 11 | ![wechat](./wechat.jpg) 12 | -------------------------------------------------------------------------------- /wechat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/wechat.jpg -------------------------------------------------------------------------------- /操作系统教程/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /操作系统教程/README.md: -------------------------------------------------------------------------------- 1 | # IOS_exercise 2 | 3 | 操作系统教程 课后习题参考答案 4 | 5 | 第五版 费翔林 6 | 7 | 图书封面 8 | 9 | ![avater](./img/操作系统教程.jpg) 10 | 11 | -------------------------------------------------------------------------------- /操作系统教程/ch1-answer.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch1-answer.doc -------------------------------------------------------------------------------- /操作系统教程/ch2-answer.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch2-answer.doc -------------------------------------------------------------------------------- /操作系统教程/ch2-answer.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch2-answer.docx -------------------------------------------------------------------------------- /操作系统教程/ch3-answer.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch3-answer.doc -------------------------------------------------------------------------------- /操作系统教程/ch3-answer.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch3-answer.docx -------------------------------------------------------------------------------- /操作系统教程/ch4-answer.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch4-answer.doc -------------------------------------------------------------------------------- /操作系统教程/ch4-answer.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch4-answer.docx -------------------------------------------------------------------------------- /操作系统教程/ch5-answer.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch5-answer.doc -------------------------------------------------------------------------------- /操作系统教程/ch5-answer.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch5-answer.docx -------------------------------------------------------------------------------- /操作系统教程/ch6-answer.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch6-answer.doc -------------------------------------------------------------------------------- /操作系统教程/ch6-answer.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch6-answer.docx -------------------------------------------------------------------------------- /操作系统教程/ch7-answer.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch7-answer.doc -------------------------------------------------------------------------------- /操作系统教程/ch7-answer.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch7-answer.docx -------------------------------------------------------------------------------- /操作系统教程/ch8-answer.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch8-answer.doc -------------------------------------------------------------------------------- /操作系统教程/ch8-answer.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/ch8-answer.docx -------------------------------------------------------------------------------- /操作系统教程/img/操作系统教程.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/img/操作系统教程.jpg -------------------------------------------------------------------------------- /操作系统教程/xiti09.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/xiti09.doc -------------------------------------------------------------------------------- /操作系统教程/xiti09.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/xiti09.docx -------------------------------------------------------------------------------- /操作系统教程/操作系统_第四版_答案_孙钟秀主编.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/操作系统_第四版_答案_孙钟秀主编.pdf -------------------------------------------------------------------------------- /操作系统教程/操作系统教程课后习题答案.md: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | # 操作系统教程(第5版)参考答案 7 | 8 | 作者:费翔林 9 | 10 | 出版社:高等教育出版社 11 | 12 | 版次:2014年2月 第5版 13 | 14 | 印次:2017年1月 第6此印刷 15 | 16 | ISBN:978-7-04-039250-0 17 | 18 | 封面: 19 | 20 | ![avater](./img/操作系统教程.jpg) 21 | 22 |
23 | 24 | ## 目录 25 | 26 | [说明](#说明) 27 | 28 | [第一章](#第一章-操作系统概论) 29 | 30 | [第二章](#第二章-处理器管理) 31 | 32 | [第三章](#第三章-同步、通信与死锁) 33 | 34 | [第四章](#第四章-存储管理) 35 | 36 | [第五章](#第五章-设备管理) 37 | 38 | [第六章](#第六章-文件管理) 39 | 40 |
41 | 42 | ## 说明 43 | 44 | ### 作者 45 | 46 | 幽弥狂 47 | 48 | 电话:13812991101 49 | 50 | QQ:1768478912 51 | 52 | 邮箱:1768478912@qq.com 53 | 54 | ### 提示 55 | 56 | 1、根据南京大学计算机科目845的考试内容,本参考答案只提供第1~6章。 57 | 58 | 2、使用时请保留所有信息 59 | 60 | 3、括号“()”中P之后的数字为书本中的页码。 61 | 62 |
63 | 64 | ## 第一章 操作系统概论 65 | 66 | 1.简述现代计算机系统的组成及其层次结构 67 | 68 | 组成为硬件和软件;(P1 第一句) 69 | 70 | 层次结构为应用程序→系统程序→操作系统→硬件。(P1 图1-1) 71 | 72 | 2.计算机操作系统的资源可分为哪几类?试举例说明。 73 | 74 | 硬件资源:处理器、寄存器、存储器(内外存)、各种I/O设施和设备。 75 | 软件资源:程序、数据及文档。例如Word的docx文档(P1) 76 | 77 | 3.什么是操作系统?操作系统在计算机系统中的主要作用是什么? 78 | 79 | 操作系统是管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户有效地使用计算机提供良好运行环境的一种系统软件。(P11 第一段) 80 | 81 | 作用:服务用户、进程交互、系统实现、资源管理。(P11) 82 | 83 | 4.操作系统是如何实现计算与操作过程的自动化? 84 | 85 | 利用一个控制程序对重复的操作过程进行“装入-汇编、编译-执行-输出”实现自动化,能够识别和装入所需系统程序,如装入程序、汇编程序、编译程序、链接程序和函数库,能够处理作业之间的自动切换,这个控制程序称为执行系统后管理程序。(P16) 86 | 87 | 5、操作系统要为用户提供哪些基本的和共性的服务? 88 | 89 | 基本服务:编写和执行程序、数据I/O和信息存取、进程通信服务、差错检测和处理、资源管理、统计、保护。(P23-24) 90 | 91 | 6、试述操作系统所提供的各种用户接口。 92 | 93 | 用户接口:程序接口、操作接口 94 | 95 | 程序接口通过“系统调用”获得系统底层服务,访问或使用系统管理的各种软硬件资源; 96 | 97 | 操作接口由一组控制命令组成,是操作系统为用户提供的组织和控制其作业(应用程序)执行的手段。(P24) 98 | 99 | 7.什么是系统调用?可分为哪些类型? 100 | 101 | 系统调用是内核提供的一系列具有预订功能的服务例程,提供这一组服务的接口呈现给用户,系统调用把应用程序的请求传送至内核,调用相应的服务例程完成所需的处理,将处理结果返回给应用程序。(P24) 102 | 103 | 分类:进程管理、文件管理、设备管理、存储管理、进程通信,信息维护。(P26) 104 | 105 | 8.什么是实用程序?可分为哪些类型? 106 | 107 | 又称系统程序,是os的高层功能,借助于系统调用实现。只解决自己的问题而对操作系统的特性、结构和实现过程不感兴趣,实用程序虽非操作系统组成,但却是必不可少的软件。 108 | 109 | 分类:文件管理、状态修改、程序设计语言支持、程序的装入和执行支持、通信、其他软件工具。(P30-31) 110 | 111 | 9.试述系统调用的实现原理。 112 | 113 | (1)系统调用初始化 114 | (2)系统调用公共入口 115 | (3)保护现场 116 | (4)参数传递 117 | (5)系统调用号和系统调用表(P32) 118 | 119 | 10.试述系统调用与函数(过程)调用之间的主要区别。 120 | 121 | a、调用形式不同前者按功能号调用;后者适用一般调用指令; 122 | 123 | b、被调用代码位置不同前者属于动态调用,它的处理代码在操作系统中;后者属于静态调用,调用程序和被调代码在同一程序内,使目标代码的一部分。过程改动后,必须重新编译连接; 124 | 125 | c、提供方式不同,前者由操作系统提供;后者由编译系统提供,不同编译系统提供的过程可以不同; 126 | 127 | d、调用的实现不同前者程序通过中断机构实现,要从用户态-〉核心态,在管理状态运行;后者程序使用一般机器指令调用过程,在用户态运行; 128 | 129 | e、程序执行系统调用安全性好。(P27) 130 | 131 | 11.试述API、库函数与系统调用之间的关系 132 | 133 | 图形关系见P25 图1-9 134 | 135 | 从应用程序角度来看,库函数与系统调用之间是没有差别的,用户关心的是函数名、参数类型及个数、返回码含义。但从系统实现角度来看,两者之间存在重大区别。使用库函数的好处是可以隐藏访管指令的细节,使得系统调用更像函数调用,对用户隐蔽系统调用细节,这样在改动内核时不会影响应用程序的正确性。但是库函数属于应用程序,在用户态运行,系统调用对应的服务例程属于系统程序,在内核态运行,如果需要的话,用户可以替换库函数,通常却不能替换系统调用。(P25-26) 136 | 137 | 12、试解释脱机I/O与假脱机I/O。 138 | 139 | ch5 spooling系统 140 | 141 | 13、为什么对作业进行批处理可以提高系统效率? 142 | 143 | 14、举例说明计算机体系结构的不断改进是操作系统发展的主要动力之一。 144 | 145 | 15、什么是多道程序设计?多道程序设计技术有什么特点? 146 | 147 | 多道程序是允许多个作业同时进入一个计算机系统的内存储器并启动进行交替计算的方法; 148 | 149 | 特点提高了CPU的利用率 150 | 151 | 提高了内存和I/O设备的利用率 152 | 153 | 改进了系统的吞吐率 154 | 155 | 充分发挥了系统的并行性 156 | 157 | 16、简述实现多道程序设计所必须解决的基本问题。 158 | 159 | 存储保护与程序浮动 160 | 161 | 处理器的管理与分配 162 | 163 | 系统资源的管理和调度 164 | 165 | 29、什么是虚拟性,怎样实现虚拟性 166 | 167 | 虚拟性是把物理上的一个实体变为逻辑上的多个对应物,或把物理上的多个实体变为逻辑上的一个对应物。 168 | 169 | 方法物理计算机资源通过多重化和共享技术变为多个虚拟机用一类物理设备来模拟另一类物理设备分时地使用一类物理设备 170 | 171 | 31、什么是操作系统的内核 172 | 173 | 内核是提供支持系统运行的基本功能和基本操作的一组程序模块,分为微内核和单内核 174 | 175 | 功能中断处理&&短程调度(分配处理器)&&原语管理 176 | 内核的执行有以下属性内核是由中断驱动的 177 | 内核的执行是连续的 178 | 内核在屏蔽中断状态下执行 179 | 内核可以使用特权指令 180 | 内核+ 裸机 = 虚拟机 181 | 虚拟机特性没有中断 182 | 虚拟机为每个进程提供了一台虚拟处理器 183 | 它为进程提供了功能较强的指令系统 184 | 补充:类程管理私有资源,对类程的调用表示对私有资源的操作,它仅能被进程及起源于同一进程的其它类程或管程嵌套调用链所调用。 185 | 186 | 32、微内核操作系统的优缺点 187 | 188 | 操作系统的绝大多数功能由用户态进程来实现,内核主要起信息验证、交换的作用。是现代操作系统的特征之一。 189 | 优点一致性接口可扩充性可移植性可靠性 190 | 支持分布式系统支持面向对象的操作系统 191 | 缺点所有进程只能通过微内核相互通信,在通信频繁的系统中无法提供高效率。 192 | 193 | 34、层次式操作系统优缺点 194 | 195 | 把操作系统划分为内核和若干模块(或进程),这些模块(或进程)按功能的调用次序排列成若干层次,各层之间只能是单向依赖或单向调用关系。 196 | 优点把整体问题局部化 197 | 有利于系统的维护和扩充(增加、修改或替换一个层次不影响其它层次) 198 | 缺点分层单向依赖,必须建立模块间的通信机制,通信开销较大。 199 | 200 | 35、虚拟机结构操作系统优缺点 201 | 202 | 所谓虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。前者是实际存在的,而后者是虚的。在构造os时,把os分成若干层,每层完成特定的功能,从而形成一个虚拟机。下层的虚拟机为上层的虚拟机提供服务。这样逐次扩充以完成操作系统的功能。 203 | 204 | 37、从执行方式看,操作系统的各种实现模型 205 | 206 | 非进程内核模型 207 | OS功能(函数)在用户进程内执行的模型 208 | OS功能(函数)作为独立进程执行的模型 209 | 补充:OS功能在用户进程内执行的模型 210 | 当发生一次中断或系统调用后,处理器状态将被置成内核模式,控制权从用户进程手中被剥夺并传递给操作系统例行程序。此时,发生了模式切换,模式上下文(现场)信息被保存。但是进程上下文切换并没有发生,操作系统仍在该用户进程中执行,提供单独的内核堆栈用于管理进程在核心态下执行时的调用和返回。操作系统的例行程序和数据放在共享地址空间,且被所有用户进程共享。 211 | 当OS例程完成了工作之后,如果应该让当前程序继续运行的话,做一次模式切换恢复执行原先被中断的用户进程。 212 | 213 | 214 | 215 |
216 | 217 | ## 第二章 处理器管理 218 | 219 | 1、PSW的主要作用 220 | 221 | Program Status Word 程序状态字,用于区别不同的处理器工作状态(处于何种状态,能否执行特权指令)主要作用是方便地实现程序状态的保护和恢复。 222 | 223 | 3、为什么要设置多个CPU状态 224 | 225 | 处理器上的不同执行程序对资源和机器指令有不同的使用权限。 226 | 一般设有管态、目态,管态可以执行全部指令访问所有资源,且可以改变处理器状态;目态下只能执行非特权指令。 227 | 228 | 5、为什么要分特权指令和非特权指令 229 | 230 | 指令系统,是机器指令的集合,分为数据处理类,转移类,数据传送类,I/O类,移位与字符串类。 231 | 用户程序执行一些有关资源管理的指令很容易导致系统混乱,造成系统或用户信息的破坏。因此,用户程序只能使用指令系统的一个子集。 232 | 233 | 6、硬件如何发现中断,如何处理中断 234 | 235 | a、中断是程序执行过程中,当发生某个事件时,中止CPU上现行程序的运行,引出处理该事件的服务程序执行的过程。 236 | b、中断装置:发现中断源并产生中断的硬件(中断逻辑线路,中断寄存器) 237 | 发现多个中断源时,根据规定的优先级,先后提出中断请求; 238 | 保护现场(即运行程序的执行上下文) 239 | 启动处理中断的中断处理程序,处理器状态从目态切换到管态; 240 | 中断寄存器记录中断事件,中断字的每一位对应一个中断事件; 241 | c、中断处理程序 242 | 寻找中断处理程序的向量地址表 243 | 保护第二现场(未被硬件保护的一些必需的处理状态) 244 | 识别各个中断源,分析产生中断的原因 245 | 处理发生的中断事件 246 | 恢复正常操作 247 | 248 | 7、中断性质分类中断 249 | 250 | a、强迫性中断事件机器故障中断事件 251 | 程序性中断事件,如溢出、越位等(异常) 252 | 外部中断事件,如时钟的定时中断 253 | 输入输出中断事件,如传输结束 254 | b、自愿性中断事件正在运行的程序期待的事件 255 | 原因:执行了一条访管指令 256 | 257 | 8、中断事件来源分类中断 258 | 259 | a、外中断处理器和主存之外的中断 260 | b、内中断又称异常,处理器和主存内部的中断 261 | 异常不能被屏蔽,一旦出现应立即响应并加以处理 262 | 263 | 9、处理程序性中断时,什么情况可转用户中断续元处理 264 | 265 | a、纯属程序错误而又难以克服的事件(非法使用特权指令),报告操作员并请求干预 266 | b、其它,转交用户程序自行处理 on<条件><中断续元入口> 267 | 268 | 11、为什么要中断分级 269 | 270 | 分级按中断请求的轻重缓急的程度预定的顺序成为中断的优先级 271 | 为了确定中断装置响应中断的顺序 272 | 273 | 15、中断在操作系统中的重要性及其主要作用 274 | 275 | 重要性用户程序请求操作系统服务,实现并行工作,处理突发事件,满足实时要求 276 | 作用处理突发事件。 277 | 278 | 16、时钟中断在操作系统中的作用 279 | 280 | 答:时钟是操作系统进行调度工作的重要工具(绝对时钟、间隔时钟),如让分时进程作时间片轮转,让实时进程定时发出或接受控制信号;系统定时唤醒或阻塞一个进程,对用户进程进行记帐。 281 | 282 | 17、中断屏蔽的作用 283 | 284 | 中断屏蔽可以禁止主机对某类中断的响应。 285 | 不可被屏蔽的中断有:计算机的断电中断、自愿性访管中断。 286 | 补充:禁止中断嵌套是指当一个中断发生时,应当处理完当前中断后再处理另外一个中断,而不应当在中断处理过程中再转去处理更高级别的中断。可以在中断处理程序中进行中断屏蔽,以保证中断处理的完整性。 287 | 288 | 18、操作系统如何处理多重中断 289 | 290 | 多重中断事件:同时出现中断或者同时发现中断,产生中断的嵌套。 291 | a、同一中断类型的不同中断源,使用同一个中断处理程序按照预定的次序分别处理 292 | b、不同类型的中断 293 | 禁止发生中断(屏蔽其它中断)缺点:没有考虑相对优先级和时间限制 294 | 定义中断优先级 295 | 响应并进行中断处理,适用情况:运行中断处理例行程序时,出现程序性中断源 296 | 补充:某个异常事件在处理过程中又发生了新的异常事件(如处理溢出过程中又产生了溢出),可以再转改种中断程序吗答:不能 297 | 因为在处理异常时系统处于和心态,这时又出现了改种异常事件,此时属于同级中断,所以不能再转入该种中断处理程 298 | 序。处理方法:在该种异常事件处理结束后,判断中断寄存器中是否有该种异常,如果有则立即报告错误。 299 | 300 | 21、解释windows的中断、异常和陷阱 301 | 302 | 答:中断和异常把处理器转向正常控制流之外的代码 303 | 中断是异步事件,可能随时发生,与处理器正在执行的内容无关,主要由I/O设备、处理器时钟或定时器产生可以启用或禁用。 304 | 异常是同步事件,它是某一个特定指令执行的结果。内核将系统服务视为异常 305 | 陷阱是指处理意外事件的一种硬件机制,相当于前面的中断响应和处理机构。 306 | 307 | 25、linux底半处理 308 | 309 | 答:引入底半处理原因:发生中断时,系统把中断送到相应的设备驱动程序去处理(和心态),此时系统需要关闭中断,资源非常低。 310 | 原理将中断处理分为两部分,底半处理和上半处理。将耗时较多的工作放在开中断的状态下处理,即底半处理,以提高系统对中断的处理效率。 311 | 312 | 26、什么是进程,为什么要引入进程 313 | 314 | 答:进程理论角度对正在运行的程序活动规律的抽象 315 | 实现角度一种数据结构 316 | 目的刻画系统的动态性,发挥系统的并行性,提高资源利用率,描述程序动态执行过程。 317 | 解决共享性,正确描述程序的执行状态,引入可再入程序和可再用程序的概念 318 | 补充:可再入程序(纯代码,自身不改变),可再用程序(自身修改) 319 | 进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程。 320 | 属性结构性程序块,数据块,进程控制块 321 | 共享性多个进程可共享同一程序 322 | 动态性与程序不同,程序作为一种系统资源永久存在。 323 | 独立性系统中进行资源分配和保护的基本单位 324 | 并发性 325 | 326 | 28、进程基本状态及其切换 327 | 328 | 答:运行态进程占有处理器正在运行 329 | 就绪态进程具备运行条件,等待系统分配处理器以便运行 330 | 等待态不具备运行条件,等待某事件的完成 331 | 运行----等待等待使用资源或者某事件发生,如等待外设传输 332 | 等待----就绪资源得到满足或某事件已经发生 333 | 运行----就绪运行时间片到,或出现有更高优先权的进程 334 | 就绪----运行CPU空闲时调度选中一个就绪进程执行 335 | 336 | 29、新建态和终止态的主要作用 337 | 338 | 答:新建态对应于进程刚刚被创建的状态,此时进程并没有被提交执行,而是在等待操作系统完成创建进程的必要操作。 339 | 终止态一个进程到达自然结束点 340 | or出现了无法克服的错误 341 | or被操作系统终结 342 | or被其它有终止权的进程终止 343 | 进入终止态的进程不再执行,依然保留在操作系统中等待善后。 344 | 345 | 30、引起创建一个进程的主要事件 346 | 347 | 答:4个事件提交一个批处理作业 348 | 在终端上一个交互式作业登陆 349 | 操作系统创建一个服务进程 350 | 存在的进程创建新的进程 351 | 352 | 32、什么是进程的挂起状态,其主要特征 353 | 354 | 答:系统资源不能够满足进程运行的要求,就必须挂起某些进程,对换到磁盘镜像区中,释放它占有的某些资源,暂时不参与低级调度。 355 | 主要特征a、该进程不能立即被执行 356 | b、挂起进程可能会等待一个事件,但所等待的事件是独立于挂起条件的,事件结束并不能导致进程具备执 357 | 行条件。 358 | c、进程进入挂起状态时由于操作系统、父进程或进程本身阻止它的运行。 359 | d、结束进程挂起状态的命令只能通过操作系统或父进程发出。 360 | 361 | 33、什么情况下会产生挂起等待态和挂起就绪态 362 | 363 | 答:等待态-〉挂起等待态当前不存在就绪进程 364 | 挂起等待态-〉挂起就绪态引起进程等待的事件发生 365 | 366 | 35、进程控制块 367 | 368 | 答:Process Control Block,PCB 369 | 操作系统用于记录和刻画进程状态及有关信息的数据结构,也是OS掌握进程的唯一资料结构,是OS控制和管理进程的主要依据。 370 | 从进程管理角度进程标识通信角度消息队列首指针 371 | 进程状态访问小子队列互斥信号量 372 | 进程优先级消息计数 373 | 队列指针 374 | 中断处理角度上下文信息&&中断源及类型 375 | 376 | 40、模式切换与进程切换 377 | 378 | 答:当从用户态转到核心态时,内核要保留足够的信息以便后来能返回到用户态并让进程从它的断点继续执行。用户态和核心态的切换时CPU模式的改变,而不是进程上下文切换。 379 | 当中断发生时,暂时中断正在执行的用户进程,把进程从用户态切换到内核状态,去执行OS例行程序以获得服务,这就是一次模式切换。 380 | 步骤:a、保存被中断进程处理器现场信息 381 | b、根据中断号设置程序计数器 382 | c、把用户状态切换到核心状态,以便执行中断处理程序 383 | 384 | 45、UNIX SVR4进程管理的特点 385 | 386 | 答:采用基于用户进程的运行模型,OS功能在用户进程的环境中执行,需要在用户模式和内核模式间切换。 387 | unix允许两类进程:用户进程(在用户模式下执行用户程序)系统进程(在内核模式下运行,完成系统的一些重要功能)系统调用、中断和异常将引起模式切换。 388 | 389 | 48、操作系统引入线程的原因 390 | 391 | 答:在传统的OS中,进程是系统资源分配的基本单位,也是CPU调度的基本单位。 392 | 但是a、进程时空的开销大,频繁的进程调度将耗费大量CPU时间,要为每个进程分配存储空间限制了操作系统中进程个数。 393 | b、进程通信的代价大,每次通信均要涉及通信进程之间或通信进程与操作系统之间的信息传递。 394 | c、进程的并发性粒度较粗,并发度不高,过多的进程切换和通信延迟使得细粒度的并发得不偿失。 395 | d、不适合并行计算和分布式并行计算的要求,对于多CPU和分布式的计算机来说,进程之间大量频繁的通信和 396 | 切换会大大降低并行度。 397 | e、不适合C/S计算的要求。对于C/S结构来说,需要频繁I/O操作并同时大量计算的服务器进程很难体现效率 398 | 因此引入线程,减少了程序并发执行时所付出的时空开销,使得并发粒度更细,并发性更好。 399 | 400 | 50、叙述多线程环境中,进程和线程的定义 401 | 402 | 答:进程是操作系统中进行保护和分配资源的基本单位, 403 | 它具有一个虚拟地址空间,用来容纳进程的镜像 404 | 对处理器、其它(通信的)进程、文件和I/O资源等的有控制有保护的访问。 405 | 线程是OS中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。它是进程的组成部分,每个进程内允许包含多个并发执行的实体(控制流),这就是多线程。 406 | 同一进程中的所有线程共享进程获得的主存空间和资源,但不拥有资源 407 | 线程具有线程执行状态 408 | 当线程不运行时,有一个受保护的线程上下文,用来储存现场信息 409 | 一个执行堆栈 410 | 一个容纳局部变量的主存储区 411 | 412 | 52、比较进程和线程 413 | 414 | 答:调度进程--切换vs 线程--若同一进程内有就绪线程,调度运行并发性并发性差并发性好 415 | 拥有资源yes no 416 | 系统开销多少 417 | 具体来说,进程具有独立的虚地址空间,以进程为单位进行任务调度,系统必须交换地址空间,切换时间长;而在同一进程中的多线程共享同一地址空间,因而可快速切换线程。 418 | 对多个进程的管理,系统开销大,如响应客户请求建立一个新的服务进程的服务器应用中,创建的开销比较显著。 419 | 而线程的创建、终止,系统的开销小得多。 420 | 线程对所有全局数据均可自由访问,而进程通信则相当复杂,必须借助通信机制、消息缓冲、管道机制等设施 421 | 并发程度提高 422 | 多线程合用进程地址空间,而不同进程独占地址空间。 423 | 424 | 53、叙述ULT和KLT的区别 425 | 426 | 答:KLT 线程管理的所有工作由操作系统内核来做,任何应用都可被程序设计成多个线程,当提交给操作系统执行时,内核为它创建一个进程和一个线程。内核为整个进程和每个线程维护现场信息。 427 | 在内核空间建立和维护PCB和TCB,内核的调度是在线程的基础上进行的。 428 | 优点多CPU,内核可同时调度同一进程中的多个线程执行 429 | 某一线程阻塞,则调度其它线程运行 430 | 内核线程仅有很小的数据结构和堆栈,KLT切换快 431 | 缺点应用程序线程在用户态运行,而线程调度和管理在内核实现。在同一进程中,控制权从一线程传到另一线程需要“用户态—内核态—用户态“模式切换,系统开销大。 432 | ULT 线程管理的所有工作由应用程序来做,在用户空间实现。 433 | 用户级多线程由用户空间运行的线程库来实现,任何应用程序均需通过线程库进行程序设计,再与线程库连接后运行来实现多线程 434 | 线程库是一个ULT管理的例行程序包,线程库是线程的运行支撑环境 435 | 此时,内核按照进程为单位进行调度。 436 | 优点线程切换不需要内核特权模式,节省内核的宝贵资源和模式切换的开销 437 | 线程库的调度算法与操作系统的低级算法无关 438 | 缺点线程执行系统调用时,阻塞同进程的所有线程(需要用护套jacketing技术解决) 439 | 多线程应用不能利用多重处理的优点 440 | 441 | 56、挂起状态与线程 442 | 443 | 答:由于线程不适资源的拥有单位,挂起状态对线程是没有意义的。由挂起操作引起的状态是进程级状态,此进程的所有线程共享了进程的地址空间,作相同操作。 444 | 445 | 59、叙述solaris中的进程与线程概念 446 | 447 | 答:在solaris中, 448 | 进程process 通常的UNIX进程,它包含用户的地址空间、堆栈和PCB 449 | 用户级线程 ULT 通过线程库在用户地址空间中实现,对操作系统来讲是不可见的,ULT是应用程序并行机制的接口轻量进程LWP light weight process 450 | 每个LWP可看作ULT和KLT之间的映射,每个LWP支持多个ULT,并映射到一个KLT上。LWP与 451 | KLT对应,由内核独立调度,可以在多个处理器上并行执行 452 | 内核级线程 KLT 是能被调度和指派到处理器上运行的基本实体 453 | 补充:作业控制块JCB job control block 454 | 批作业进入系统时,由spooling系统建立的,它是作业存在于系统的标志。它的主要内容是从作业说明书(用户利用JCL编写的一个控制作业执行的程序)中获得 455 | 包括作业情况资源需求资源使用情况作业控制作业类型 456 | 457 | 72、处理器调度分类 458 | 459 | 答:a、高级调度(long-term scheduling) 460 | 按照系统预定的调度测量决定把后备队列作业中的部分满足其资源要求的作业调入主存,为它们创建进程,分配所需资源。为作业做好运行前的工作并启动它们运行,作业完成后做好善后工作。 461 | 对于分时系统来说,高级调度决定是否接受一个终端用户的连接 462 | 一个交互式作业能否被计算机系统接纳并构成进程 463 | 一个新建态的进程是否能够立即加入就绪进程队列 464 | b、中级调度(mediun level scheduling)又称平衡负载调度,中程调度 465 | 它决定主存中所能容纳的进程数,这些进程将允许参与竞争处理器和有关资源,而有些暂时不能运行的进程则被调出主存,这时这个进程处于挂起状态。 466 | 当进程具备了运行条件,且主存中又有空闲区域时,再由中级调度决定把一部分这样的进程重新调回主存工作。 467 | 作用短期平滑和调整系统负荷。 468 | c、低级调度(low level scheduling)又称进程调度或线程调度 469 | 它的主要功能是按照某种原则决定就绪队列中的哪个进程或内核级线程能获得处理器,并将CPU出让给它进行工作。 470 | 低级调度中执行CPU分配的程序称为dispatcher分派程序,它是操作系统最为核心的部分,执行十分频繁。 471 | 方式第一类剥夺方式preemptive scheduling 472 | 当一个进程在处理器上执行时,系统可以根据规定的原则剥夺分配给它的CPU,而把CPU分配给其 473 | 它进程使用。 474 | 常用的剥夺原则高优先级进程或线程可以剥夺低优先级进程或线程 475 | 当运行时间片用完后被剥夺处理器 476 | 第二类非剥夺方式 nonpreemptive scheduling 477 | 一旦某个进程或线程开始执行后便不再出让处理器,除非该进程或线程运行结束或发生了某个事件不 478 | 能继续执行。 479 | 480 | 73、叙述衡量一个处理器调度算法好坏的主要标准 481 | 482 | 答:资源利用率 483 | 响应时间分时系统和实时系统衡量调度性能的一个重要指标 484 | 周转时间批处理系统衡量调度性能好坏的一个重要指标 485 | 吞吐率 486 | 公平性 487 | 补充:进程调度指标CPU利用率 488 | 等待时间进程在就绪状态中的等待时间 489 | 响应时间 490 | I/O设备利用率以I/O为主的进程优先运行,提高CPU与I/O间的并行度 491 | 时空代价 492 | 493 | 74、叙述作业调度和低级调度的关系 494 | 495 | 答:首先看作业和进程间的主要关系:作业是任务实体,进程是完成任务的执行实体 496 | 作业调度属于高级调度层次,它选中了一个作业且把它装入主存时就为该作业创建了一个用户进程,这些进程将在低级调度的控制下占有CPU运行。 497 | 作业调度与低级调度的配合能实现多道程序作业的同时执行。 498 | 499 | 76、解释 500 | 501 | 答:作业周转时间批处理用户从作业提交给系统开始,到作业完成为止的时间间隔 502 | 作业带权周转时间带权周转时间=周转时间/需要运行的时间 503 | 响应时间交互式进程从提交一个请求(命令)到接收到响应之间的时间间隔 504 | 吞吐率单位时间内处理的作业数 505 | 补充:JCL job control language,作业控制语言 506 | 系统提供给用户描述其作业控制意图的工具。 507 | 508 | 81、响应比最高者优先算法 509 | 510 | 答:highest response ratio first 介乎FCFS和SJF之间的一种折中的策略 511 | 响应比=作业响应时间/作业估计计算时间 512 | 513 | 83、优先权调度是否会导致进程饥饿状态 514 | 515 | 答:不会导致饥饿。一个进程在队列中等待CPU的时间越长,那么在它再次获得调度时的优先数就越高。 516 | 517 | 89、叙述典型的实时调度算法 518 | 519 | 答:a、单比率调度算法 520 | 事先为每个进程分配一个与事件发生频率成正比的优先数,运行时调度程序总是调度优先数最高的就绪进程,并采取抢占式分配策略。 521 | b、限期调度算法 522 | 就绪队列按照截至期限排序 523 | c、最少裕度法 laxity 524 | 裕度= 截止时间—(就绪时间+ 计算时间) 525 | 526 | ## 第三章 并发进程 527 | 528 | 2、叙述并发程序设计的特点 529 | 答:进程的并发性(concurrency)是指一组进程的执行在时间上是重叠的。 530 | 并发的实质是一个处理器在几个进程间的多路复用,是对优先的物理资源强制行使多用户共享,消除计算机部件之间的互等现象,以提高系统的资源利用率。 531 | 特点并发性 & 共享性& 制约性& 交互性 532 | 优点a、若为单CPU系统,可有效利用资源,让CPU和I/O设备、I/O设备和I/O设备之间同时工作,充分发挥机器部件的并行能力。 533 | b、若为多CPU系统,可让进程在不同CPU上物理地并行工作,从而加快计算速度 534 | c、简化了程序设计任务 535 | 缺点程序的运行环境不再是封闭的,程序结果可能是不确定的,计算过程具有不可再现性。 536 | 4、解释并发性与并行性 537 | 答:并发性是指进程的并发性,两个或多个事件在同一时间间隔内发生,执行在时间上是重叠的。 538 | 并行性是指硬件的并行性,parallel 两个或多个事件在同一时刻进行。 539 | 9、说明进程的互斥和同步访问的异同 540 | 答:进程互斥指若干个进程要使用同一共享资源时,任何时刻最多允许一个进程去使用,其它要使用的进程必须等待,直到占有资源的进程释放该资源; 541 | 进程同步指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于另一个协作进程的消息或信号。当一个进程没有得到来自于另一个进程的消息或信号时则需等待,直到消息或信号到达才被唤醒。 542 | 进程互斥是一种特殊的进程同步关系。 543 | 补充:快表 544 | 在MMU(内存管理单元)中设置一个高速缓冲存储器(TLB,translation look-aside buffer)。在TLB中的页表成为快表。补充:为了让用户互斥地进入临界区,可以把整个临界区实现成为不可中断的过程,即让用户具有屏蔽所有中断的能力。 545 | 但是这样做有缺点: 546 | 用户进程进入临界区时屏蔽所有中断,应当也包括系统程序。但系统发出的中断也被屏蔽,则会引起错误。因为 547 | 系统外中断往往与当前运行的程序无关,却可能是一些重要的硬件中断,如电源故障等。故不可盲目屏蔽所有中 548 | 断;又或者当时发生故障中断的中断源恰好是该临界资源,则更应及时处理。 549 | 17、管程及其属性 550 | 答:基本思路把分散在各进程中的临界区集中起来进行管理,并把系统中的共享资源用数据结构抽象地表示出来。 551 | 代表共享资源的数据结构及在其上操作的一组过程就构成了管程。 552 | 属性共享性管程中的移出过程可被所有要求调用管程的过程的进程所共享 553 | 安全性管程的局部变量只能由该管程的进程存取,不允许进程或其它管程来直接存取。一个管程的过程也不应该存取任何非局部于它的变量。 554 | 互斥性 555 | 19、比较管程和进程 556 | 答:管程| 进程 557 | 公用数据结构| 私有数据结构 558 | 把共享变量上的同步操作集中| 临界区分散在每个进程中 559 | 为管理共享资源而建立的| 为占有系统资源和实现系统并发性而引入的 560 | 管程是被欲使用共享资源的进程所调用的 | 进程之间能并行工作,并发性是其固有特性 561 | 管程和调用它的进程不能并行工作| 562 | 管程是语言或操作系统的成分,不必创建或撤销 | 进程有生命周期,由创建而产生,至撤销便灭亡 563 | 21、为什么要有消息传递机制 564 | 答:系统中的交互式进程通过信号量及有关操作可以实现进程的互斥与同步。在用信号量解决生产者问题时,不是单靠信号量而是要另外引入有界缓冲来存放产品,既不方便,局限性也大。 565 | 有时进程间可能需要交换更多的信息,这种大量的信息传递可使用message passing。由于OS提供的这类机制隐蔽了许多实现细节,通过消息传递机制就能够简化程序编制的复杂性,方便易用。 566 | 23、简述消息缓冲通信机制的实现思想 567 | 答:基本思想由操作系统统一管理一组用于通信的消息缓冲存储区,每一个消息缓冲存储区可存放一个消息(信件)。 568 | 当一个进程要发送消息时,先在自己的消息发送区生成待发送的消息(包括接受进程名,消息长度,正文),然后向系统申请一个消息缓冲区把消息从发送区复制到消息缓冲区中,在复制过程中系统将接受进程名换成发送进程名, 569 | 以便接受者识别。随后该消息缓冲区被挂到接受消息的进程的消息队列上,供接受者在需要的时候从消息队列摘下并复制大消息接受区中使用,同时释放消息缓冲区。 570 | 24、通过管道机制实现进程间通信 571 | 答:pipeline是连接读写进程的一个特殊文件,允许进程按先进先出方式传输数据,也能使进程同步执行操作。 572 | 管道和消息队列的区别:管道中的消息是无界的,它存在于外存;消息队列是位于内存的。 573 | 一个进程正在使用某个管道写入或读出数据时,另一个进程就必须等待; 574 | 发送者和接受者双方必须能够知道对方是否存在; 575 | 发送信息和接受信息之间一定要实现正确的同步关系; 576 | 进程在关闭管道的读出或写入端时,应唤醒等待写或读此管道的进程。 577 | 27、进程的低级通信工具和高级通信工具 578 | 答:IPC inter-process communication 579 | 高低级区分:低进程间控制信息的交换 580 | 高进程间大批数据的交换 581 | 低级:信号(singal)通信机制 582 | 信号量及其原语操作(PV、读写锁、管程)控制的共享存储区(shared memory)通信机制交换的信息量少且效率低下,仅适用于集中式操作系统 583 | 高级: 管道(pipeline)提供的共享文件通信机制 584 | 通道(I/O处理机)是实现I/O操作的硬件装置,通道对管道的实现提供硬件支持。 585 | 信箱和发信/收信原语的消息传递通信机制 586 | 适用于集中式操作系统& 分布式操作系统 587 | 29、死锁产生的条件 588 | 答:mutual exclusion 互斥条件 589 | hold and wait 占有和等待条件 590 | no preemption 不剥夺条件 591 | circular wait 循环等待条件 592 | 30、死锁防止策略 593 | 答:a、静态分配策略 594 | 破坏占有和等待条件,但是严重降低了资源利用率。 595 | b、层次分配策略 596 | 阻止循环等待条件的出现 597 | 资源被分成多个层次,一个进程得到某一层的一个资源,只能在申请较高一层的资源:当一个进程要释放某层的一个资源时,必须先释放所占用的较高层的资源;当另一个进程获得了某一层的一个资源后,它想再申请该层中的另一个资源,必须先释放在该层中已占资源。 598 | c、按序分配策略 599 | 把系统的所有资源安排一个顺序,按顺序给每个资源一个编号,规定每个进程申请两个以上资源时,总是先申请编号小的再申请编号大的资源。这样,在进程集合中总存在某个进程,它占有了已申请资源最大的资源。因而,它无权申请其他资源。当它运行结束后,就可以释放占用的全部资源。 600 | 按序分配通过破坏死锁的循环等待条件而防止死锁。 601 | 31、银行家算法及其基本思想 602 | 答:约束条件每个客户必须预先说明自己所要求的最大资金量 603 | 每个客户每次提出部分资金量申请和获得分配 604 | 如果银行家满足客户对资金的最大需求量,那么客户在资金运作后,应在有限时间内全部归还银行。 605 | 606 |
607 | 608 | ## 第四章 存储管理 609 | 610 | 1、简述存储管理的基本功能 611 | 612 | 答:负责管理主存储器主存空间的分配和去配 613 | 地址转换和存储保护 614 | 主存空间的共享 615 | 主存空间的扩充 616 | 补充:解决大作业和小内存矛盾的途径 617 | 答:a、覆盖技术 618 | 由用户把一个程序划分为若干个功能相对独立的程序段,并根据程序的逻辑结构让不会同时执行的程序段共享同一块内存区。程序运行时依需要把程序段调入覆盖区。 619 | b、虚拟技术部分装入、部分对换 620 | 621 | 3、逻辑地址空间与物理地址空间 622 | 623 | 答:把用户目标程序使用的地址单元成为逻辑地址(相对地址),一个作业的目标程序的逻辑地址集合称为该作业的逻辑地址空间。 624 | 把主存中的实际存储单元成为物理地址(绝对地址),物理地址的总体构成了用户程序实际运行的物理地址空间。 625 | 物理地址空间是由存储器地址总线扫描出来的空间。大小取决于主存容量。 626 | 627 | 4、地址转换(重定位) 628 | 629 | 答:把程序和数据的逻辑地址转换为物理地址。 630 | 用两种方式a、静态重定位在作业装入时由作业装入程序实现地址转换 631 | b、动态重定位在程序执行过程中,CPU访问程序和数据之前实现地址转换,必须借助于硬件的地址转换 632 | 机构 633 | 634 | 5、分区存储管理中的分配策略 635 | 636 | 答:基本思想:给进入主存的用户作业划分一块连续存储区域 637 | 固定分区(fixed partition)存储管理/定长分区/静态分区模式 638 | 静态地把可分配的主存分割成若干个连续区域,每个区域位置固定,每个分区在任何时刻只装入一道程序执行 639 | 优点:解决单道程序运行在并发环境下不能与CPU速度很好匹配的问题 640 | 解决了单道程序运行主存空间利用率低的问题 641 | 缺点:预先规定了分区大小,不方便 642 | 主存利用率不高 643 | 作业运行中要求动态扩充主存困难 644 | 共享程序和数据难以实现 645 | 限制了多道运行的程序数 646 | 可变分区(variable partition)存储管理/变长分区模式 647 | 按照作业的大小划分分区,划分时间、大小、位置都是动态的。 648 | 补充:常用的可变分区算法 649 | 答:a、最先适应first fit 从未分配区表头顺序查找 650 | b、下次适应next fit 从上次扫描结束处查找 651 | c、最优适应best fit 扫描整个未分配区表 652 | d、最坏适应worst fit 挑一个最大的空闲区 653 | e、快速适应quick fit 为经常用到的长度的空闲区设立单独的空闲区链表 654 | 补充:程序的局部性 655 | 答:principle of locality 656 | a、程序中只有少量分支和过程调用,大都是顺序执行的; 657 | b、往往包含若干个循环; 658 | c、很少会出现连续不断的过程调用序列; 659 | 虚拟存储器是基于程序局部性原理上的一种假想的,而不是物理存在的存储器。 660 | 11、请求分段虚拟存储管理的实现原理 661 | 答:在作业执行中访问某段时,由硬件的地址转换机构查段表。若该段在主存,则按分段式存储管理的办法进行地址转换得到绝对地址;若该段不再内存,则硬件发出一个缺页中断。操作系统处理这个中断时,查找主存分配表,找出一个足够大的连续区域容纳该分段。如果找不到足够大的连续区域,则检查空闲区的总合:移动,将该段装入内存 || 调出数个分段到辅存,将该分段装入主存。 662 | 12、分页虚拟存储管理器中有哪些页面淘汰算法(中科大,1998) 663 | 答:理想算法 Belady算法/最佳替代算法optimal 664 | a、随机页面替换算法 665 | b、FIFO 低开销的页面替换算法,适用于具有线性顺序特性的程序 666 | c、LRU least recently used 最近最少用页面替换算法,算法的操作复杂,代价高。 667 | 模拟:NRU not recently used,最近没有使用页面替换 668 | 老化算法 669 | LFU least frequently used,最不常用页面替换 670 | d、第二次机会页面替换算法 second chance 671 | e、时钟页面替换算法 clock policy 672 | 采用循环队列机制构造页面队列一个页面首次装入主存时,其引用位置0; 673 | 在主存中的任何一个页面被访问时,其引用位置1; 674 | 遇1清0条过,遇0淘汰,指针推进一步; 675 | f、改进的时钟页面替换算法 676 | 考虑了淘汰已修改的页面的情形 677 | 补充:对于任意给定的驻留集尺寸,在什么样的引用串情况下,FIFO与LRU替换算法一样 678 | 答:若发生页面故障时被替换的页均一样 FIFO替换最早进入主存的页 679 | LRU替换上次访问距当前最远的页 680 | ===〉当出现页故障时,最先进入主存的页仅被访问一次 681 | 故“访问串中所有页号均不同,若相同则必须排列在一起”。 682 | 13、比较分页式存储管理和分段式存储管理(清华,1999) 683 | 答:分页分段 684 | 目的:提高主存空间利用率| 满足用户(程序员)编成和使用上的要求 685 | 缺点得到的是一维地址结构的可装 | 686 | 配模块,但页面与源程序无逻辑关系| 687 | 难以实现对源程序已模块为单位进行| 688 | 分配、共享和保护| 689 | 方式:信息的物理单位,与源程序逻辑结构| 分段式信息的逻辑单位,由源程序的逻辑结构所决定,用户可见; 690 | 无关,用户不可见| 段长可根据用户需要来规定,段起始地址可以从任何主存地址开始, 691 | 页长由系统决定,页面只能以页大小| 源程序(段号、段内位移)经连接装配后仍保持二维地址结构。 692 | 的整数倍地址开始。| 693 | 源程序经连接装配后变成一维地址 | 694 | 14、给出几种存储保护方法 695 | 答:分页管理提供地址越界保护,即由地址变换机构中的页表长度值和所要访问的逻辑地址相比较完成 696 | 通过页表中的访问控制信息对内存信息提供保护。 697 | 分段管理提供存取控制保护法 698 | 地址越界保护法 699 | 利用段表寄存器中的段表长度与逻辑地址中的段号比较,若段号越界则产生越界中断;再利用段表项中 700 | 的段长与逻辑地址中的段内位移进行比较,若段内位移大于段长,产生越界中断。 701 | 不过在允许段内动态增长的系统中,允许越界,不过应设置相应的增补位) 702 | 15、存储管理中的碎片 703 | 答:内零头(内部碎片):若存储单元长度为n,该块存储的作业长度为m,则(n-m)为内零头; 704 | 外零头(外部碎片):若存储单元长度为n,在该系统所采用的调度算法下,较长时间内无法选出一道长度不超过该块的作业 705 | 固定分区内& 外 706 | 可变分区!内& 外 707 | 页式虚拟分区内&!外 708 | 段式虚拟分区!内& 外 709 | 补充:动态链接 710 | 当程序运行到需要调用某一模块时再去链接。对于未使用的模块,就可以不必链接。 711 | 采用段式内存分配方法可以实现这种技术。 712 | 21、页式存储器共享 713 | 答:分页存储管理在实现共享时,必须区分数据共享和程序共享 714 | 实现数据共享时,可允许不同的作业对共享的数据页用不同的页号,只要让各自页表中的有关表目指向共享的数据信息块。 715 | 实现程序共享时,由于页式存储结构要求逻辑地址空间是连续的,所以程序运行前它们的页号是确定的。 716 | 可再入代码(纯代码)允许多个进程同时访问的代码,不允许任何进程对其进行修改。 717 | 23、叙述段页式存储器的优缺点 718 | 答:段式存储是基于用户程序结构的存储管理技术,有利于模块化程序设计,便于段的扩充、动态链接、共享和保护。但往 719 | 往会生成段间碎片浪费存储空间。 720 | 页式存储是基于系统存储结构的存储管理技术,存储利用率高,便于系统管理。但不易实现存储共享、保护和动态扩充。补充:IPT inverted page table 反置页表 721 | IPT维护了一个页表的反置页表,它为内存的每一个物理块建立一个页表项并按照块号排序,该表的每个表项包含正在访问该页框的进程标识号、特征位和hash链指针等,用来完成内存页框到访问进程的页号,即物理地址到逻辑地址的转换。 722 | 723 | 724 |
725 | 726 | ## 第五章 设备管理 727 | 728 | 1、叙述设备管理器的基本功能 729 | 730 | 答:基本功能外围设备中断处理 731 | 缓冲区管理 732 | 外围设备的登记和使用情况跟踪、分配、去配 733 | 外围设备驱动调度 734 | 提高系统效率虚拟设备及其实现 735 | 736 | 2、简述各种I/O控制方式及其优缺点 737 | 738 | 答:按照I/O控制器功能的强弱,以及与CPU之间联系方式的不同分类 739 | a、询问方式/程序直接控制方式查询指令----查询设备是否就绪 740 | 传送指令----当设备就绪时,执行数据交换 741 | 转移指令----当设备未就绪时,执行转移指令转向查询指令继续查询缺点: CPU在反复查询过程中,浪费了宝贵的CPU时间 742 | CPU参与数据的传递工作,不能执行原程序 743 | CPU和I/O设备串行工作 744 | b、中断方式 745 | 中断机构引入后,外围设备有了反映其状态的能力 746 | 缺点输入输出操作直接由CPU控制,每传送一个字符或一个字,都要发生一次中断,消耗大量CPU时间 747 | c、DMA方式 748 | direct memory access 直接主存存取 749 | 主存和I/O设备之间有一条数据通路,在主存和I/O设备之间成块地传送数据过程中,不需要CPU干 750 | 预,由DMA直接执行完成。 751 | 特点:外围设备在硬件支持下直接与内存交换成批数据而不需要CPU干预,地址总线、数据总线及相关控制信号线均与CPU共用。当DMA时,使用窃取总线控制权的方法,DMA控制器接管总线,控制外设与内 752 | 存间成批交换数据。当DMA传送的数据完成后发出一个中断,由CPU相应中断并回收控制权。 753 | d、通道方式/输入输出处理器(又称I/O处理机) 754 | DMA中,每发出一次I/O指令,只能读写一个数据块。 755 | 采用通道技术主要解决了输入输出操作的独立性和各部件(设备与CPU)工作的并行性。 756 | 分类字节多路通道:连接大量慢速外围设备 757 | 选择通道:连接磁带和磁盘快速设备,同一时刻只能为一台设备服务,一个输入输出请求完成后 758 | 才选择其它设备 759 | 数组多路通道 760 | 补充:DMA方式与中断方式主要区别(国防科大,2001) 761 | 答:a、中断方式在每个数据完成后中断CPU 762 | DMA在一批数据传完后中断CPU 763 | b、中断方式的数据传送是在中断处理时,由CPU完成 764 | DMA方式则是在DMA控制器控制下完成 765 | 补充:DMA和通道的区别 766 | 答:a、DMA要求CPU执行设备驱动程序启动设备,并做好传送数据的有关准备工作 767 | b、通道完全是一个相对独立的I/O控制系统,仅当CPU发出I/O启动命令后,它便接收控制,完成全部I/O操作。 768 | 7、叙述I/O系统层次及其功能 769 | 答:各层次用户进程 :进行I/O调用、格式化I/O、spooling 770 | 设备无关软件:命名、保护、阻塞、缓冲、分配 771 | 设备驱动程序:建立设备寄存器、检查状态 772 | 中断处理程序:当I/O结束时,唤醒驱动程序 773 | 硬件:执行I/O操作 774 | 9、通道命令与通道程序 775 | 答:channel command word(CCW,通道命令)是通道从主存取出并控制I/O设备执行I/O操作的命令字,用CCW编写的程序称为通道程序(由多条通道命令组成,每次启动可完成复杂的I/O控制)。 776 | 12、缓冲技术及其基本思想 777 | 答:引入缓冲的目的改善中央处理器与外围设备之间速度不配的问题 778 | 协调逻辑记录大小与物理记录大小不一致 779 | 提高CPU和I/O设备的并行性 780 | 减少I/O对CPU的中断次数和放宽对CPU中断相应时间的要求 781 | 基本思想进程执行写操作输出数据时,向系统申请一个缓冲区,若为顺序写请求,则不断把数据填到缓冲区,直到装满。此后,进程继续计算,系统将缓冲区内容写到I/O设备上。 782 | 进程执行输入数据操作时,向系统申请一个缓冲区,系统将一个物理记录的内容读到缓冲区,根据进程的要求,把当前需要的逻辑记录从缓冲区中选出并传送给进程。 783 | 在输入数据时,仅当缓冲区空而进程又要从中读取数据时,它才被迫等待 784 | 在输出数据时,只有在系统还来不及腾空缓冲区而进程又要写数据时,它才需要等待。 785 | 14、驱动调度 786 | 答:按照一定次序执行要求访问的诸请求 787 | 作用:减少为若干个I/O请求服务所需的总时间,提高系统效率。 788 | 常用移臂调度算法: 789 | a、电梯调度算法 elevator algorithm 790 | 选择沿臂的移动方向最近的柱面 791 | b、最短时间查找优先shortest seek time first algorithm 792 | 执行查找时间最短的磁盘请求 793 | c、扫描 scan algorithm 794 | 沿一个方向移动,到最后一个柱面,再向相反方向移动过来 795 | d、分步扫描N-steps scan algorithm 796 | 将I/O请求分组,每组不超过N个,每次选一组进行扫描 797 | e、循环扫描 circular scan algorithm 798 | 一次扫描完成后,从0号柱面重复进行。 799 | 补充:磁盘不不仅用于存放文件,还可作为主存的延伸,即提供虚拟管理。在虚存的设计思想中,主存作为实际的物理空间,仅存放目前较为活跃的程序部分,其它不活跃的部分暂存于辅存,等待调度程序在主、辅存间进行交换调度。 800 | 补充:叙述RAID 801 | 答: redundant array of independent disks 802 | 一种大容量外存系统,用一组较小容量、独立、可并行工作的磁盘组成存储阵,借助冗余存储技术,实现数据的多组织分布存储,从而能够并行开展单个或多个I/O请求,提高系统性能和效率。 803 | 补充:提高磁盘I/O速度的方法 804 | 答:为磁盘设置高速缓存(内容由操作系统控制) 805 | 提前读 806 | 延迟写 807 | 虚拟盘(内容完全由用户控制) 808 | 23、叙述spooling系统 809 | 答:spooling系统 = spooling技术 + 速度匹配技术 810 | spooling技术是用一类物理设备模拟另一类物理设备的技术,它使独占使用的设备变成可共享的设备。 811 | 补充:分四层讨论I/O软件的功能 812 | 答:设备中断处理程序分析中断类型并作出相应处理,检查和修改进程状态 813 | 设备驱动程序(包括所有与设备相关的代码)设备控制,把用户提交的逻辑I/O转化为物理I/O的启动和执行 814 | 与设备无关的I/O软件执行适用于所有设备的常用I/O功能,并向用户层提供一个一致的接口。 815 | 用户层I/O软件包括 spooling程序、在用户空间运行的I/O库例程、调用、格式化、假脱机 816 | 31、设备独立性 817 | 答:设备独立性是指用户程序独立于所使用的具体物理设备,即用户只使用逻辑设备名。 818 | 设备独立(无关)性体现 819 | a、从程序设计的角度看待设备,各种设备所体现的接口应该都是一致的,程序中可使用相同的命令读出不同设备 820 | 上的数据,也可以用相同的命令将输出数据送到各种不同的设备上。不同设备之间的差异有操作系统处理,对程 821 | 序加以屏蔽。 822 | b、在操作系统管理设备和相关操作时,对所有的设备都采用统一的方式进行。一般采用层次式、模块化的思想来 823 | 实现设备管理子系统。 824 | 补充:联想存储器(各命名有所不同)associate memory(lookaside缓冲器) 825 | 虚拟地址直接映射到物理地址 826 | 与普通存储器不同,它不是通过地址引用。 827 | 它得到一个搜索值,同时它搜索所有元素来查找一个相符的索引值。分页系统使用小型的高速联想存储器来改进性能。 828 | 829 |
830 | 831 | ## 第六章 文件管理 832 | 833 | 1、叙述概念 834 | 答:卷是物理介质的存储单位 835 | 块是存储介质上连续信息所组成的一个区域,也叫做物理记录 836 | 记录是信息的单位 837 | 文件是由文件名字标识的一组信息的集合 838 | 839 | 2、记录的成组和分解操作及其优缺点 840 | 答:若干个逻辑记录合并成一组,写入一个块叫做记录成组。每块中逻辑记录的个数成为块因子。 841 | 当存储介质上的一个物理记录读进缓冲区后,把逻辑记录从块中分离出来的操作叫做记录的分解。 842 | 由于顺序文件是顺序存取得,可采用成组和分解的操作加速文件的输入输出。 843 | 优点:节省存储空间 844 | 减少输入输出操作次数,提高系统效率 845 | 缺点:需要软件进行成组和分解的额外操作 846 | 需要能容纳最大块长的输入输出缓冲区 847 | 补充:文件系统提供给用户程序的一组系统调用,通过这些系统调用用户能获得文件系统的各种服务。 848 | 849 | 10、windows文件系统特点之考点 850 | 答:文件加密,EFS encrypting file system 851 | 补充:使用文件系统时,通常要显式进行文件的open、close操作,叙述目的、能否取消(北大,1992) 852 | 答:a、显式的open操作完成文件的打开功能,将基本文件目录中的内容读入用户的文件表中,并在系统活动文件表中记录文件打开次数。 853 | 显式的close操作完成文件的关闭操作。撤销用户的活动文件表中的相应的表项,改变系统活动文件表中的文件打开次数信息。如果需要,还要将被改动的文件目录信息写回基本文件目录中。 854 | b、可以取消二者。此后系统在进行文件操作之前需判断文件是否打开。若未打开,则应自动完成文件的打开功能,以建 855 | 立用户与文件间的关系。同时,在系统结束时还应自动关闭所有被打开的文件,更新系统的基本文件目录。 856 | c、取消后市的文件的读写操作变得复杂。因为在每次读写前都要判断文件是否已打开,此外,系统在结束时也要做一些 857 | 额外的工作,以完成close应该完成的操作。 858 | 859 | 19、文件共享的分类和实现思想 860 | 答:文件共享是指不同用户(进程)共同使用同一个文件 861 | a、文件的静态共享:提高文件资源的利用率,节省文件的物理存储空间 862 | 文件链接――一个文件同属于多个目录,但仅有一处物理存储。 863 | 只允许链接到文件 864 | b、文件的动态共享 865 | 多进程动态共享使用 系统中不同的用户进程或同一用户的不同进程并发地访问同一文件。这种关系只有当用户 进程存在时才可能出现。 866 | c、符号链接 867 | 通过路径名间接访问 868 | 869 | ## 第七章 操作系统的安全与保护 870 | 871 | 1、叙述计算机系统的可靠性和安全性之间的联系与区别 872 | 873 | 答:可靠性是指硬件系统正常持续运行的程度,目标为反故障 874 | 安全性是指不因人为疏漏或者蓄谋作案而导致信息资源被泄漏、篡改和破坏,目标为反泄密 875 | 可靠性是基础,安全性更为复杂。 876 | 877 | 3、叙述操作系统安全性的主要内容 878 | 879 | 答:安全策略 880 | 安全模型 881 | 安全机制认证机制 authentication 882 | 授权机制 authorization 883 | 加密机制 encryption 884 | 审计机制 audit 885 | 886 | 4、计算机网络系统四项安全要求 887 | 888 | 答:机密性 confidentiality 889 | 完整性 integrity 890 | 可用性 availability 891 | 真实性 authenticity 892 | 893 | 21、策略与机制 894 | 895 | 答:策略规定要达到的特定目标,系统地安全策略制定了对本组织人员和非本组织人员资源的共享方式机制是完成任务和特定目标的方法,系统提供用于强制执行安全策却得特定步骤和工具 896 | 优点:留有灵活性,策略发生变化时,整个系统变化小 897 | 898 | 30、简述操作系统地安全保护技术 899 | 900 | 答:状态隔离对计算机系统设置不同工作状态 901 | 运行在管态下的程序比在目态下的程序有更多的访问权 902 | 限制用户使用容易造成系统混乱的那些及其指令,达到保护系统程序或其它用户程序的目的空间隔离为不同作业分配不同的地址空间,避免相互干扰 903 | 每个用户进程的内存空间可以通过虚拟存储技术来实现内存保护。 904 | 隔离技术能保证系统程序和用户程序的安全性 905 | 906 | 37、试说明DES加密解密过程 907 | 答:decrypt ( key1 , encrypt ( key , plain text ) ) = plain text 908 | 909 | 补充:什么是RPC 910 | 答:remote procedure call 远程过程调用 911 | 允许不同计算机上的进程使用简单的过程调用和返回结果的方式进行交互 912 | 补充:如何实现进程迁移,如何处理已打开的文件 913 | 答:将系统中已迁移进程撤销,在目标系统中建立一个相同的新进程 914 | 所迁移的是进程映像,包括进程控制快、程序、数据和栈。此外,被迁移的进程于其它进程之间的关联应作相应修改。 915 | 对于已经打开的文件: 法a、将已打开的文件随进程一起迁移; 916 | 法b、仅当迁移后的进程又提出对该文件的访问要求时,再进行迁移。 917 | 918 | [Back to Index](#目录) -------------------------------------------------------------------------------- /操作系统教程/操作系统第一章应用题参考答案.2014.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/操作系统第一章应用题参考答案.2014.pdf -------------------------------------------------------------------------------- /操作系统教程/操作系统第三章应用题参考答案.2014.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/操作系统第三章应用题参考答案.2014.pdf -------------------------------------------------------------------------------- /操作系统教程/操作系统第二章应用题参考答案.2014.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/操作系统第二章应用题参考答案.2014.pdf -------------------------------------------------------------------------------- /操作系统教程/操作系统第五章、第六章应用题参考答案.2014.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/操作系统第五章、第六章应用题参考答案.2014.pdf -------------------------------------------------------------------------------- /操作系统教程/操作系统第四章应用题参考答案.2014.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/操作系统教程/操作系统第四章应用题参考答案.2014.pdf -------------------------------------------------------------------------------- /数据结构/.gitignore: -------------------------------------------------------------------------------- 1 | temp/ -------------------------------------------------------------------------------- /数据结构/README.md: -------------------------------------------------------------------------------- 1 | # DS_exercises 2 | 3 | 数据结构(用C++描述)(第二版)课后习题参考答案 4 | 5 | ![avater](./img/ds.jpg) 6 | -------------------------------------------------------------------------------- /数据结构/img/ds.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/img/ds.jpg -------------------------------------------------------------------------------- /数据结构/数据结构 殷人昆 课后习题答案/图.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/数据结构 殷人昆 课后习题答案/图.pdf -------------------------------------------------------------------------------- /数据结构/数据结构 殷人昆 课后习题答案/排序.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/数据结构 殷人昆 课后习题答案/排序.pdf -------------------------------------------------------------------------------- /数据结构/数据结构 殷人昆 课后习题答案/数组.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/数据结构 殷人昆 课后习题答案/数组.pdf -------------------------------------------------------------------------------- /数据结构/数据结构 殷人昆 课后习题答案/栈与队列.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/数据结构 殷人昆 课后习题答案/栈与队列.pdf -------------------------------------------------------------------------------- /数据结构/数据结构 殷人昆 课后习题答案/树与森林.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/数据结构 殷人昆 课后习题答案/树与森林.pdf -------------------------------------------------------------------------------- /数据结构/数据结构 殷人昆 课后习题答案/索引与散列.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/数据结构 殷人昆 课后习题答案/索引与散列.pdf -------------------------------------------------------------------------------- /数据结构/数据结构 殷人昆 课后习题答案/绪论.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/数据结构 殷人昆 课后习题答案/绪论.pdf -------------------------------------------------------------------------------- /数据结构/数据结构 殷人昆 课后习题答案/递归与广义表.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/数据结构 殷人昆 课后习题答案/递归与广义表.pdf -------------------------------------------------------------------------------- /数据结构/数据结构 殷人昆 课后习题答案/链表.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/数据结构 殷人昆 课后习题答案/链表.pdf -------------------------------------------------------------------------------- /数据结构/数据结构 殷人昆 课后习题答案/集合与搜索.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/数据结构 殷人昆 课后习题答案/集合与搜索.pdf -------------------------------------------------------------------------------- /数据结构/数据结构习题解答与考试指导.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/数据结构习题解答与考试指导.pdf -------------------------------------------------------------------------------- /数据结构/数据结构课后习题参考答案.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/数据结构课后习题参考答案.md -------------------------------------------------------------------------------- /数据结构/殷人昆 数据结构习题解析(用面向对象方法和C++描述)文字版.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/殷人昆 数据结构习题解析(用面向对象方法和C++描述)文字版.pdf -------------------------------------------------------------------------------- /数据结构/清华 殷人昆C++数据结构答案/数据结构第0章.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/清华 殷人昆C++数据结构答案/数据结构第0章.doc -------------------------------------------------------------------------------- /数据结构/清华 殷人昆C++数据结构答案/数据结构第10章.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/清华 殷人昆C++数据结构答案/数据结构第10章.doc -------------------------------------------------------------------------------- /数据结构/清华 殷人昆C++数据结构答案/数据结构第1章.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/清华 殷人昆C++数据结构答案/数据结构第1章.doc -------------------------------------------------------------------------------- /数据结构/清华 殷人昆C++数据结构答案/数据结构第2章.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/清华 殷人昆C++数据结构答案/数据结构第2章.doc -------------------------------------------------------------------------------- /数据结构/清华 殷人昆C++数据结构答案/数据结构第3章.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/清华 殷人昆C++数据结构答案/数据结构第3章.doc -------------------------------------------------------------------------------- /数据结构/清华 殷人昆C++数据结构答案/数据结构第4章.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/清华 殷人昆C++数据结构答案/数据结构第4章.doc -------------------------------------------------------------------------------- /数据结构/清华 殷人昆C++数据结构答案/数据结构第5章.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/清华 殷人昆C++数据结构答案/数据结构第5章.doc -------------------------------------------------------------------------------- /数据结构/清华 殷人昆C++数据结构答案/数据结构第6章.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/清华 殷人昆C++数据结构答案/数据结构第6章.doc -------------------------------------------------------------------------------- /数据结构/清华 殷人昆C++数据结构答案/数据结构第7章.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/清华 殷人昆C++数据结构答案/数据结构第7章.doc -------------------------------------------------------------------------------- /数据结构/清华 殷人昆C++数据结构答案/数据结构第8章.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/清华 殷人昆C++数据结构答案/数据结构第8章.doc -------------------------------------------------------------------------------- /数据结构/清华 殷人昆C++数据结构答案/数据结构第9章.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/数据结构/清华 殷人昆C++数据结构答案/数据结构第9章.doc -------------------------------------------------------------------------------- /离散数学/离散数学及其应用第6版奇数练习题答案.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/离散数学/离散数学及其应用第6版奇数练习题答案.pdf -------------------------------------------------------------------------------- /离散数学/离散部分题解及编译题目补充.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/离散数学/离散部分题解及编译题目补充.docx -------------------------------------------------------------------------------- /算法设计与分析/.gitignore: -------------------------------------------------------------------------------- 1 | temp/ -------------------------------------------------------------------------------- /算法设计与分析/算法设计与分析课后习题参考答案.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/算法设计与分析/算法设计与分析课后习题参考答案.md -------------------------------------------------------------------------------- /编译原理/编译原理习题解答及上机指导(胡元义).rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/编译原理习题解答及上机指导(胡元义).rar -------------------------------------------------------------------------------- /编译原理/编译原理模拟题.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/编译原理模拟题.doc -------------------------------------------------------------------------------- /编译原理/编译原理龙书二三四章习题解答/Homework1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/编译原理龙书二三四章习题解答/Homework1.pdf -------------------------------------------------------------------------------- /编译原理/编译原理龙书二三四章习题解答/Homework2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/编译原理龙书二三四章习题解答/Homework2.pdf -------------------------------------------------------------------------------- /编译原理/编译原理龙书二三四章习题解答/Homework3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/编译原理龙书二三四章习题解答/Homework3.pdf -------------------------------------------------------------------------------- /编译原理/编译原理龙书答案.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/编译原理龙书答案.doc -------------------------------------------------------------------------------- /编译原理/编译原理龙书课后部分答案 英文版 .doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/编译原理龙书课后部分答案 英文版 .doc -------------------------------------------------------------------------------- /编译原理/龙书部分答案/a10.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/龙书部分答案/a10.doc -------------------------------------------------------------------------------- /编译原理/龙书部分答案/a2.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/龙书部分答案/a2.doc -------------------------------------------------------------------------------- /编译原理/龙书部分答案/a3.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/龙书部分答案/a3.doc -------------------------------------------------------------------------------- /编译原理/龙书部分答案/a4.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/龙书部分答案/a4.doc -------------------------------------------------------------------------------- /编译原理/龙书部分答案/a5.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/龙书部分答案/a5.doc -------------------------------------------------------------------------------- /编译原理/龙书部分答案/a67.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/龙书部分答案/a67.doc -------------------------------------------------------------------------------- /编译原理/龙书部分答案/a89.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/编译原理/龙书部分答案/a89.doc -------------------------------------------------------------------------------- /计算机系统基础/.gitignore: -------------------------------------------------------------------------------- 1 | temp/ -------------------------------------------------------------------------------- /计算机系统基础/1-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/1-1.pdf -------------------------------------------------------------------------------- /计算机系统基础/2-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/2-1.pdf -------------------------------------------------------------------------------- /计算机系统基础/3-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/3-1.pdf -------------------------------------------------------------------------------- /计算机系统基础/4-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/4-1.pdf -------------------------------------------------------------------------------- /计算机系统基础/5-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/5-1.pdf -------------------------------------------------------------------------------- /计算机系统基础/6-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/6-1.pdf -------------------------------------------------------------------------------- /计算机系统基础/7-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/7-1.pdf -------------------------------------------------------------------------------- /计算机系统基础/8-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/8-1.pdf -------------------------------------------------------------------------------- /计算机系统基础/9-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/9-1.pdf -------------------------------------------------------------------------------- /计算机系统基础/ICS-hw0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/ICS-hw0.pdf -------------------------------------------------------------------------------- /计算机系统基础/ICS-hw1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/ICS-hw1.pdf -------------------------------------------------------------------------------- /计算机系统基础/ICS-hw2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/ICS-hw2.pdf -------------------------------------------------------------------------------- /计算机系统基础/README.md: -------------------------------------------------------------------------------- 1 | # ICS_exercise 2 | 3 | 计算机系统基础(第2版)课后习题参考答案 4 | -------------------------------------------------------------------------------- /计算机系统基础/ch8习题解答.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/ch8习题解答.pdf -------------------------------------------------------------------------------- /计算机系统基础/img/ics-exercise.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/img/ics-exercise.jpg -------------------------------------------------------------------------------- /计算机系统基础/img/ics.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/img/ics.jpg -------------------------------------------------------------------------------- /计算机系统基础/第七章习题答案.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/第七章习题答案.doc -------------------------------------------------------------------------------- /计算机系统基础/第三章习题答案.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/第三章习题答案.doc -------------------------------------------------------------------------------- /计算机系统基础/第九章习题答案.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/第九章习题答案.doc -------------------------------------------------------------------------------- /计算机系统基础/第二章习题答案.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/第二章习题答案.doc -------------------------------------------------------------------------------- /计算机系统基础/第五章习题答案.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/第五章习题答案.doc -------------------------------------------------------------------------------- /计算机系统基础/第八章习题答案.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/第八章习题答案.doc -------------------------------------------------------------------------------- /计算机系统基础/第八章习题答案.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/第八章习题答案.docx -------------------------------------------------------------------------------- /计算机系统基础/第六章习题答案.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/第六章习题答案.doc -------------------------------------------------------------------------------- /计算机系统基础/第四章习题答案.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/第四章习题答案.doc -------------------------------------------------------------------------------- /计算机系统基础/计算机系统基础课后习题参考答案.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机系统基础/计算机系统基础课后习题参考答案.docx -------------------------------------------------------------------------------- /计算机系统基础/计算机系统基础课后习题参考答案.md: -------------------------------------------------------------------------------- 1 | # 目录 2 | 3 | ## [说明](#说明) 4 | 5 | # 说明 6 | 7 | ## 版本信息 8 | 9 | 书名:《计算机系统基础(第二版)》 袁春风 10 | 11 | 整理日期:2019-10-27 12 | 13 | 整理人:李加其(幽弥狂) 14 | 15 | 内容:课后习题参考答案 16 | 17 | 联系方式:13812991101 18 | 19 | 邮箱:1768478912@qq.com 20 | 21 | QQ:1768478912 22 | 23 | 版本:v1.0 24 | 25 | ## 声明 26 | 27 | 1、如果有侵权或者其他问题欢迎联系我。 28 | 29 | 2、参考书目为https://github.com/JackeyLea/NJUCS中README.md文件中列出的参考书目。 30 | 31 | 3、红色字体为重要内容,比如曾作为课后习题、考试考过等等。 32 | 33 | 4、括号里的P**表示在书本的第几页。 34 | 35 | # 第一部分 系统概述和可执行目标文件的生成 36 | 37 | ## 第一章计算机系统概述 38 | 39 | 1、见《计算机系统基础习题解答与教学指导》 40 | 41 | 2、简单回答下列问题。 42 | 43 | (1)冯·诺依曼计算机由哪几部分组成?各部分的功能是什么? 44 | 45 | 控制器:用于控制主动执行指令; 46 | 47 | 运算器:用于执行指令; 48 | 49 | 存储器:存放数据和指令; 50 | 51 | 输入输出设备:通过输入输出设备使用计算机; 52 | 53 | (2)什么是“存储程序”工作方式? 54 | 55 | 必须将事先编好的程序和原始数据送人主存后才开能执行程序,一旦程序被启动执行,计算机能在必须操作人员干预的情况下自动完成逐条指令取出和执行任务。(P3) 56 | 57 | (3)一条指令的执行过程包含哪几个阶段? 58 | 59 | 程序的执行就是指令的执行过程。 60 | 61 | 阶段: 62 | 取指令、取数、传数、ALU运算阶段。(P6) 63 | 64 | (4)计算机系统的层次结构如何划分? 65 | 66 | 电路设计、数字设计、ISA、汇编程序、编译程序、应用程序、操作系统(P18 图1.11) 67 | 68 | (5)计算机系统的用户可分哪几类?每类用户工作在哪个层次? 69 | 70 | 用户有四种: 71 | 72 | 最终用户:应用程序级 73 | 74 | 系统管理员:操作系统 75 | 76 | 应用程序员:编译程序 77 | 78 | 系统程序员:汇编程序和ISA之间 79 | 80 | (6)程序的 CPI 与哪些因素有关? 81 | 82 | 总时钟周期数、指令条数(P20) 83 | 84 | (7)为什么说性能指标 MIPS 不能很好地反映计算机的性能? 85 | 86 | MIPS反映了机器执行定点指令的速度。首先,不同机器的指令集是不同的,而且指令的功能也是不同的,也许在机器1上一条指令完成的功能机器2需要多条指令。其次,不同机器的CPI和时钟周期也是不同的,因此同一条指令在不同的机器上所用的时间也不同。(P20 最后一段) 87 | 88 | 3、略 89 | 90 | 4、略 91 | 92 | 5、题目略 93 | 94 | 仿照图1.3 95 | 96 | | 主存地址 | 主存单元地址 | 内容说明(Ii表示第i条指令) | 指令的符号表示 | 97 | | --- | --- | --- | --- | 98 | | 0 | 1110 0111 | I1:R[0]←M[7];op=1110;取数操作 | load r0,7# | 99 | | 1 | 0000 0100 | I2:R[1]←R[0];op=0000;传送操作 | mov r1,r0 | 100 | | 2 | 1110 0101 | I3:R[0]←M[6];op=1110;取数操作 | load r0,6# | 101 | | 3 | 0010 0001 | I4:R[0]←R[0]-R[1];op=0010;减操作 | sub r0,r1 | 102 | | 4 | 0011 0001 | I5:R[0]←R[0]*R[1];op=0011;乘操作 | mul r0,r1 | 103 | | 5 | 1111 1000 | I6:M[8]←R[0];op=1111;存数操作 | store 8#,r0 | 104 | | 6 | 0001 0000 | 操作数x,值为16 | | | 105 | | 7 | 0010 0001 | 操作数y,值为33 | | | 106 | | 8 | 0000 0000 | 结果z,初始值为0 | | | 107 | 108 | 仿照图1.5 109 | 110 | |操作| I1:1110 0111 | I2:0000 0100 | I3:1110 0101 | I4:0010 0001 | I5:0011 0001 | I6:1111 1000 | 111 | |---|---|---|---|---|---|---| 112 | |取指令|IR←M[0000]|IR←M[0001]|IR←M[0010]|IR←M[0011]|IR←M[0100]|IR←M[0101]| 113 | |指令译码|op=1110,取数|op=0000,传送|op=1110,取数|op=0010,减|op=0011,乘|op=1111,存数| 114 | |PC增量|PC←0000+1|PC←0001+1|PC←0010+1|PC←0011+1|PC←0100+1|PC←0101+1| 115 | |取数并执行|MDR←M[0110]|A←R[0]、mov|MDR←M[0101]|A←R[0]、B←R[1]、sub|A←R[0]、B←R[1]、mul|MDR←R[0]| 116 | |送结果|R[0]←MDR|R[1]←F|R[0]←MDR|R[0]←F|R[0]←F|M[1000]←MDR| 117 | |执行结果|R[0]=33|R[1]=33|R[0]=16|R[0]=16-33=-17|R[0]=-17×33|M[8]=-561| 118 | 119 | 6、若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000元,下表给出了P1和P2在M1和M2上所花的时间和指令条数。 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 |
程序M1M2
指令条数执行时间(ms)指令条数执行时间(ms)
P1200×10^610000150×10^65000
P2300×10^33420×10^36
148 | 149 | 请回答下列问题: 150 | 151 | (1)对于P1,哪台机器的速度快?快多少?对于P2呢? 152 | 153 | 对于P1,M2比M1快一倍;对于P2,M1比M2快一倍。 154 | 155 | (2)在M1上执行P1和P2的速度分别是多少MIPS?在M2上的执行速度又各是多少?从执行速度来看,对于P2,哪台机器的速度快?快多少? 156 | 157 | 对于M1,P1的速度为:200M/10=20MIPS;P2为300k/0.003=100MIPS。 158 | 159 | 对于M2,P1的速度为:150M/5=30MIPS;P2为420k/0.006=70MIPS。 160 | 161 | 从执行速度来看,对于P2,因为100/70=1.43倍,所以M1比M2快0.43倍。 162 | 163 | 164 | (3)假定M1和M2的时钟频率各是800MHz和1.2GHz,则在M1和M2上执行P1时的平均时钟周期数CPI各是多少? 165 | 166 | 在M1上执行P1时的平均时钟周期数CPI为:10×800M/(200×106)=40。 167 | 168 | 在M2上执行P1时的平均时钟周期数CPI为:5×1.2G/(150×106)=40。 169 | 170 | (4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,应该选择M1还是M2?为什么?(提示:从性价比上考虑) 171 | 172 | 考虑运行P1时M1和M2的性价比,因为该用户主要关心系统的响应时间,所以性价比中的性能应考虑执行时间,其性能为执行时间的倒数。故性价比R为: 173 | 174 | R=1/(执行时间×价格) 175 | 176 | R越大说明性价比越高,也即,“执行时间×价格”的值越小,则性价比越高。 177 | 178 | 因为10×5000 > 5×8000,所以,M2的性价比高。应选择M2。 179 | 180 | (5)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2?为什么? 181 | 182 | P1和P2需要同等考虑,性能有多种方式:执行时间总和、算术平均、几何平均。 183 | 184 | 若用算术平均方式,则:因为 (10+0.003)/2×5000 > (5+0.006)/2×8000,所以M2的性价比高,应选择M2。 185 | 186 | 若用几何平均方式,则:因为sqrt(10×0.003) ×5000 < sqrt(5×0.006) ×8000,所以M1的性价比高,应选择M1。 187 | 188 | 7.若机器M1和M2具有相同的指令集,其时钟频率分别为1GHz和1.5GHz。在指令集中有五种不同类型的指令A~E。下表给出了在M1和M2上每类指令的平均时钟周期数CPI。 189 | 190 | |机器 | A | B | C | D | E | 191 | |----|---|---|---|---|---| 192 | |M1 | 1 | 2 | 2 | 3 | 4 | 193 | |M2 | 2 | 2 | 4 | 5 | 6 | 194 | 195 | 请回答下列问题: 196 | (1)M1和M2的峰值MIPS各是多少? 197 | 198 | M1上可以选择一段都是A类指令组成的程序,其峰值MIPS为1000MIPS。 199 | M2上可以选择一段A和B类指令组成的程序,其峰值MIPS为1500/2=750MIPS。 200 | 201 | (2)假定某程序P的指令序列中,五类指令具有完全相同的指令条数,则程序P在M1和M2上运行时,哪台机器更快?快多少?在M1和M2上执行程序P时的平均时钟周期数CPI各是多少? 202 | 203 | 5类指令具有完全相同的指令条数,所以各占20%。 204 | 在M1和M2上执行程序P时的平均时钟周期数CPI分别为: 205 | M1:20%×(1+2+2+3+4)= 0.2×12 = 2.4 206 | M2:20%×(2+2+4+5+6)= 0.2×19 = 3.8 207 | 假设程序P的指令条数为N,则在M1和M2上的执行时间分别为: 208 | M1:2.4× N×1/1G = 2.4N (ns) 209 | M2:3.8×N×1/1.5G = 2.53 N (ns) 210 | M1执行P的速度更快,每条指令平均快0.13ns,也即M1比M2快0.13/2.53×100%≈5%。 211 | 212 | 8.假设同一套指令集用不同的方法设计了两种机器M1和M2。机器M1的时钟周期为0.8ns,机器M2的时钟周期为1.2ns。某个程序P在机器M1上运行时的CPI为4,在M2上的CPI为2。对于程序P来说,哪台机器的执行速度更快?快多少? 213 | 214 | 假设程序P的指令条数为N,则在M1和M2上的执行时间分别为: 215 | M1:4 N×0.8 = 3.2N (ns) 216 | M2:2 N×1.2 = 2.4 N (ns) 217 | 所以,M2执行P的速度更快,每条指令平均快0.8ns,比M1快0.8/3.2×100%=25%。 218 | 219 | 9.假设某机器M的时钟频率为4GHz,用户程序P在M上的指令条数为8×109,其CPI为1.25,则P在M上的执行时间是多少?若在机器M上从程序P开始启动到执行结束所需的时间是4秒,则P占用的CPU时间的百分比是多少? 220 | 221 | 程序P在M上的执行时间为:1.25×8××1/4G = 2.5 s, 222 | 从启动P执行开始到执行结束的总时间为4秒, 223 | 其中2.5秒是P在CPU上真正的执行时间, 224 | 其他时间可能执行操作系统程序或其他用户程序。 225 | 程序P占用的CPU时间的百分比为:2.5/4 = 62.5%。 226 | 227 | 10.假定某编译器对某段高级语言程序编译生成两种不同的指令序列S1和S2,在时钟频率为500MHz的机器M上运行,目标指令序列中用到的指令类型有A、B、C和D四类。四类指令在M上的CPI和两个指令序列所用的各类指令条数如下表所示。 228 | | | A | B | C | D | 229 | |--| ---|---|---|---| 230 | 各指令的CPI 1 2 3 4 231 | S1的指令条数 5 2 2 1 232 | S2的指令条数 1 1 1 5 233 | 234 | 请问:S1和S2各有多少条指令?CPI各为多少?所含的时钟周期数各为多少?执行时间各为多少? 235 | 236 | S1有10条指令,CPI为 (5×1+2×2+2×3+1×4)/10=1.9, 所含的时钟周期数为10×1.9=19,执行时间为19/500M = 38ns。 237 | S2有8条指令,CPI为 (1×1+1×2+1×3+5×4)/8 =3.25, 所含的时钟周期数为8×3.25=26,执行时间为26/500M = 52ns。 238 | 239 | 10.假定机器M的时钟频率为1.2GHz,某程序P在机器M上的执行时间为12秒钟。对P优化时,将其所有的乘4指令都换成了一条左移2位的指令,得到优化后的程序P’。已知在M上乘法指令的CPI为5,左移指令的CPI为2,P的执行时间是P’执行时间的1.2倍,则P中有多少条乘法指令被替换成了左移指令被执行? 240 | 参考答案: 241 | 显然,P’的执行时间为10秒,因此,P比P’多花了2秒钟,因此,执行时被换成左移指令的乘法指令的条数为1.2G×2/(5–2) = 800M。 242 | 243 | 244 | ## 第二章计算机系统基本功能和基本组成 245 | 246 | 1、见习题解答。 247 | 248 | 2、简单回答下列问题。 249 | 250 | (1)为什么计算机内部采用二进制表示信息?既然计算机内部所有信息都用二进制表示,为什么还要用到十六进制或八进制数? 251 | 252 | 制造两个稳定状态的元器件比多个稳定状态的元器件要容易,两个稳定状态对应高低电平,正好可以用0/1表示;二进制编码规则简单,可用开关电路实现;方便通过逻辑电路实现算术运算。 253 | 二进制硬件容易理解,但是不方便书写和阅读。 254 | 255 | (2)常用的定点数编码方式有哪几种? 通常它们各自用来表示什么? 256 | 257 | 原码:用定点原码表示浮点数的尾数部分; 258 | 259 | 补码:带符号整数; 260 | 261 | 反码: 262 | 263 | 移码: 264 | 265 | (3)为什么计算机中大多用补码表示带符号整数? 266 | 267 | (4)在浮点数的基和位数一定的情况下,浮点数的表数范围和表数精度分别由什么决定?两者如何相互制约? 268 | 269 | (5)为什么要对浮点数进行规格化?有哪两种规格化操作? 270 | 271 | (6)为什么有些计算机中除了用二进制外还用 BCD 码来表示数值数据? 272 | 273 | (7)为什么计算机处理汉字时会涉及到不同的编码(如,输入码、内码、字模码)?说明这些编码中哪些是用二进制编码,哪些不是用二进制编码,为什么? 274 | 275 | 3.实现下列各数的转换。 276 | (1)(25.8125)10= (?)2= (?) 8= (?) 16 277 | 278 | (2)(101101.011)2 = (?)10= (?) 8= (?) 16= (?) 8421 279 | 280 | (3)(0101 1001 0110.0011)8421 = (?)10= (?) 2= (?) 16 281 | 282 | (4)(4E.C)16 = (?)10= (?) 2 283 | 284 | 参考答案: 285 | 286 | (1) (25.8125)10 = (1 1001.1101)2 = (31.64) 8 = (19.D) 16 287 | 288 | (2)(101101.011)2 = (45.375)10 = (55.3) 8 = (2D.6) 16 = (0100 0101.0011 0111 0101) 8421 289 | 290 | (3)(0101 1001 0110.0011)8421 = (596.3)10 = (1001010100.01001100110011…) 2 = (254.4CCC…) 16 291 | 292 | (4)(4E.C)16 = (78.75)10 = (0100 1110.11) 2 293 | 294 | 4. 假定机器数为8位(1位符号,7位数值),写出下列各二进制数的原码和补码表示。 295 | +0.1001,–0.1001,+1.0,–1.0,+0.010100,–0.010100,+0,–0 296 | 297 | 参考答案: 298 | | 原码 | 补码 | 299 | |----- |-----| 300 | |+0.1001: 0.1001000 0.1001000 301 | –0.1001: 1.1001000 1.0111000 302 | +1.0: 溢出 溢出 303 | –1.0: 溢出 1.0000000 304 | +0.010100: 0.0101000 0.0101000 305 | –0.010100: 1.0101000 1.1011000 306 | +0: 0.0000000 0.0000000 307 | –0: 1.0000000 0.0000000 308 | 309 | 5. 假定机器数为8位(1位符号,7位数值),写出下列各二进制数的补码和移码表示。 310 | +1001,–1001,+1,–1,+10100,–10100,+0,–0 311 | 参考答案: 312 | 移码 补码 313 | +1001: 10001001 00001001 314 | –1001: 01110111 11110111 315 | +1: 10000001 00000001 316 | –1: 011111111 11111111 317 | +10100: 10010100 00010100 318 | –10100: 01101100 11101100 319 | +0: 10000000 00000000 320 | –0: 10000000 00000000 321 | 322 | 6. 已知 [x]补,求x 323 | (1)[x]补=1.1100111 (2)[x]补=10000000 324 | (3)[x]补=0.1010010 (4)[x]补=11010011 325 | 参考答案: 326 | (1)[x]补=1.1100111 x = –0.0011001B 327 | (2)[x]补=10000000 x = –10000000B = –128 328 | (3)[x]补=0.1010010 x = +0.101001B 329 | (4)[x]补=11010011 x = – 101101B = – 45 330 | 331 | 7.假定一台32位字长的机器中带符号整数用补码表示,浮点数用IEEE 754标准表示,寄存器R1和R2的内容分别为R1:0000108BH,R2:8080108BH。不同指令对寄存器进行不同的操作,因而,不同指令执行时寄存器内容对应的真值不同。假定执行下列运算指令时,操作数为寄存器R1和R2的内容,则R1和R2中操作数的真值分别为多少? 332 | (1)无符号数加法指令 333 | (2)带符号整数乘法指令 334 | (3)单精度浮点数减法指令 335 | 参考答案: 336 | R1 = 0000108BH = 0000 0000 0000 0000 0001 0000 1000 1011b 337 | R2 = 8080108BH = 1000 0000 1000 0000 0001 0000 1000 1011b 338 | (1)对于无符号数加法指令,R1和R2中是操作数的无符号数表示,因此,其真值分别为R1:108BH, R2:8080108BH。 339 | (2)对于带符号整数乘法指令,R1和R2中是操作数的带符号整数补码表示,由最高位可知, R1为正数, R2为负数。R1的真值为+108BH, R2的真值为–(0111 1111 0111 1111 1110 1111 0111 0100b + 1b) = –7F7FEF75H。 340 | (3)对于单精度浮点数减法指令,R1和R2中是操作数的IEEE754单精度浮点数表示。在IEEE 754 标准中,单精度浮点数的位数为32位,其中包含1位符号位,8位阶码,23位尾数。 341 | 由R1中的内容可知,其符号位为0,表示其为正数,阶码为0000 0000,尾数部分为000 0000 0001 0000 1000 1011,故其为非规格化浮点数,指数为–126,尾数中没有隐藏的1,用十六进制表示尾数为+0.002116H,故R1表示的真值为+0.002116H × 10-126。 342 | 由R2中的内容可知,其符号位为1,表示其为负数,阶码为0000 0001, 尾数部分为000 0000 0001 0000 1000 1011,故其为规格化浮点数,指数为1–127 = –126,尾数中有隐藏的1,用十六进制表示尾数为–1.002116H,故R2表示的真值为–1.002116H × 10-126 343 | 344 | 8.假定机器M的字长为32位,用补码表示带符号整数。下表第一列给出了在机器M上执行的C语言程序中的关系表达式,请参照已有的表栏内容完成表中后三栏内容的填写。 345 | 关系表达式 运算类型 结果 说明 346 | 0 == 0U 347 | –1 < 0 348 | –1 < 0U 349 | 2147483647 > –2147483647 – 1 350 | 2147483647U > –2147483647 – 1 351 | 2147483647 > (int) 2147483648U 352 | –1 > –2 353 | (unsigned) –1 > –2 无符号整数 354 | 有符号整数 355 | 无符号整数 356 | 有符号整数 357 | 无符号整数 358 | 有符号整数 359 | 有符号整数 360 | 无符号整数 1 361 | 1 362 | 0 363 | 1 364 | 0 365 | 1 366 | 1 367 | 1 00…0B = 00…0B 368 | 11…1B (–1) < 00…0B (0) 369 | 11…1B (232–1) > 00…0B(0) 370 | 011…1B (231–1) > 100…0B (–231) 371 | 011…1B (231–1) < 100…0B(231) 372 | 011…1B (231–1) > 100…0B (–231) 373 | 11…1B (–1) > 11…10B (–2) 374 | 11…1B (232–1) > 11…10B (232–2) 375 | 376 | 9.以下是一个C语言程序,用来计算一个数组a中每个元素的和。当参数len为0时,返回值应该是0,但是在机器上执行时,却发生了存储器访问异常。请问这是什么原因造成的,并说明程序应该如何修改。 377 | 1 float sum_elements(float a[], unsigned len) 378 | 2 { 379 | 3 int i; 380 | 4 float result = 0; 381 | 5 382 | 6 for (i = 0; i <= len–1; i++) 383 | 7 result += a[i]; 384 | 8 return result; 385 | 9 } 386 | 387 | 参考答案: 388 | 参数len的类型是unsigned,所以,当len=0时,执行len-1的结果为11…1,是最大可表示的无符号数,因而,任何无符号数都比它小,使得循环体被不断执行,引起数组元素的访问越界,发生存储器访问异常。 389 | 只要将len声明为int型,或循环的测试条件改为i 2 | 5 | 6 | # 计算机网络:自顶向下方法,第7版 7 | 8 | ## 复习题和习题参考答案 9 | 10 | ### 版本时间:2016年12月 11 | 12 | 本文档包含Jim Kurose和Keith Ross编写的《计算机网络:自顶向下方法(第7版)》复习题和习题的参考答案。这些答案只对指导老师有效。请不要复制或者分发给其他人(即使是其他指导老师)。请不要在公共网络发布任何参考答案。如果有需要,我们很乐意提供此参考答案(最新版)。 13 | 14 | 声明:这些年来,很多同学和同事帮助我们准备此参考答案。特别感谢Honggang Zhang,Rakesh Kumar,Prithula Dhungel和VijayAnnapureddy。同时也感谢提建议和修正错误的所有读者。 15 | 16 | 所有材料©1996-2016 由J.F.Kurose 和K.W.Rose提供。版权所有。 17 | 18 |
19 | 20 | # 说明 21 | 22 | 译者:幽弥狂 23 | 24 | 时间:2019-10-6 25 | 26 | 版本:V2020.03.01 27 | 28 | 电话:13812991101 29 | 30 | QQ:1768478912 31 | 32 | 邮箱:1768478912@qq.com 33 | 34 | 环境:Manjaro Linux 19.0.1+vscode Markdown 35 | 36 | 1、此参考答案所有内容版权由原作者所有,本人为了方便考研复习提供简体中文版本的翻译。 37 | 38 | 中文版是基于英文版,部分图片来自英文版。 39 | 40 | 2、阁下在获取到此文档的同时,应该同时获取到此文档的英文原版PDF。此文档的中文版权归本人所有,提供给需要的人使用。 41 | 42 | 3、阁下在使用本文档时,不得添加水印、删减或修改内容。 43 | 44 | 4、当然,以上内容只是说说而已,你如果不遵守,我也不可能顺着网线去打你。 45 | 46 | 5、如果有侵权(对于原作者)或者其他的问题或者建议,欢迎联系我。 47 | 48 | 6、阁下在使用本文档时,请保留此页面和原版翻译的封面。 49 | 50 | 7、根据南京大学计算机845真题的内容,本文档只翻译第1-7章。 51 | 52 | 8、只进行了翻译和公式显示校正,内容并未校正,使用时请注意。 53 | 54 |
55 | 56 | # 版本信息 57 | 58 | ## 2019年11月23日 59 | 60 | - 发布第二个发布版,版本号:V2.0.2019.11.23 61 | - 修复公式导出问题 62 | - 添加第八章内容 63 | 64 | ## 2019年11月11日 65 | 66 | - 发布第一个发布版,版本号:V1.0.2019.11.11 67 | 68 | ## 2019年10月6日 69 | 70 | - 创建文档 71 | 72 |
73 | 74 | # 目录 75 | 76 | [第一章](#第一章) 77 | - [复习题](#复习题1) 78 | - [问题](#问题1) 79 | 80 | [第二章](#第二章) 81 | - [复习题](#复习题2) 82 | - [问题](#问题2) 83 | 84 | [第三章](#第三章) 85 | - [复习题](#复习题3) 86 | - [问题](#问题3) 87 | 88 | [第四章](#第四章) 89 | - [复习题](#复习题4) 90 | - [问题](#问题4) 91 | 92 | [第五章](#第五章) 93 | - [复习题](#复习题5) 94 | - [问题](#问题5) 95 | 96 | [第六章](#第六章) 97 | - [复习题](#复习题6) 98 | - [问题](#问题6) 99 | 100 | [第七章](#第七章) 101 | - [复习题](#复习题7) 102 | - [问题](#问题7) 103 | 104 | [第八章](#第八章) 105 | - [复习题](#复习题8) 106 | - [问题](#问题8) 107 | 108 |
109 | 110 | # 第一章 111 | 112 | ## 复习题1 113 | 114 | 1、(1)没有区别。根据书本内容,“主机”和“终端系统”是交换使用的。 115 | 116 | (2)终端系统包括PC、工作站、网络服务器、邮件服务器、PDA、连接网络的游戏控制台等等。 117 | 118 | (3)由(2)可知,网络服务器是终端系统。 119 | 120 | 2、来自维基百科:外交协议常用于描述一系列国家来往规则。这些构建完备和经过时间检验的规则可以使国家和人民生活和工作更简单。协议规则以人民准则为基础,其中的一部分已经作为现在分级的地位声明。 121 | 122 | 3、标准对于协议来说,可以让人们创建可以相互操作的网络系统和产品。 123 | 124 | 4、(1)通过电话线的拨号调制解调器:家庭 125 | 126 | (2)通过电话线的DSL(Digital Subscriber Line,数字用户线):家庭或小办公室 127 | 128 | (3)混合光纤同轴电缆:家庭 129 | 130 | (4)100M交换以太网:企业 131 | 132 | (5)无线网:家庭或企业 133 | 134 | (6)3G和4G:广域无线网 135 | 136 | 5、HFC带宽是由用户共享。下行通道中,所有的包都是由头端这一个单一源发出的。因此,下行通道中没有碰撞。 137 | 138 | 6、光纤到户、3G和4G无线网 139 | 140 | 7、10M、100M、1G、10G 141 | 142 | 8、双绞线、光纤 143 | 144 | 9、拨号调制解调器:最高56K,带宽专用 145 | ADSL:下行最高24M,上行最高2.5M,带宽专用 146 | HFC:下行最高42.8M,上行最高30.7M,带宽共享 147 | FTTH:上行2-10M,下行10-20M,带宽不共享 148 | 149 | 10、现在最流行的无线网技术有两种: 150 | 151 | (1)WiFi。用于无线局域网,无线用户从辐射范围为几十米的基站(例如无线接入点)传输数据包。基站连接无线网络,并为无线用户提供无线网服务。 152 | 153 | (2)3G和4G。大范围无线网,此系统通过电信服务商提供的基站,由蜂窝电话通过同一个无线设备传输数据。可以提供基站几十千米范围内的无线网络。 154 | 155 | 11、$t_0$时发送主机开始传输,$t_1=L/R_1$时发送端完成传输并且交换机收到完整的数据包(没有传播延时)。因为交换机在$t_1$时已收到完整包,那么$t_1$时交换机开始传输包至接收主机。$t_2=t_1+L/R_2$时交换机完成输出并且接收主机收到完整包(没有传播延时)。因此,端到端总延时是$L/R_1+L/R_2$。 156 | 157 | 12、电路交换网络可以在响应时间内保证一定量的端到端带宽。如今大部分分组交换网络(包括因特网)无法保证端到端带宽。FDM需要复杂的模拟硬件来将信号转换为合适的频率。 158 | 159 | 13、 160 | 161 | (1)2个用户,每个用户只需要一半的链接带宽; 162 | 163 | (2)既然每个用户传输时要求1Mpbs带宽,如果两个或者更少的用户同时传输,要求最多2Mbps。共享链路的可用带宽是2Mbps,那么传输前没有排队延时。如果有3个用户同时传输,带宽要求是3Mbps,超过了共享链接可用带宽。这种情况下,连接之前会有排队延时。 164 | 165 | (3) 一个用户传输的概率是0.2 166 | 167 | (4)3个用户同时传输的概率是 $\binom{3}{3} p^{3} (1-p)^{3-3}$ 。因为用户传输是队列会增加,队列增加时的时间因素是0.008。 168 | 169 | 14、如果两个ISP不对等,那么当他们给对方发送流量时他们需要通过一个付费流量ISP提供商(中间商)来发送数据。通过直接对等传输,两个ISP可以减少给其他ISP提供商的费用。多个ISP可以通过网络交换点(IXP)(通常由它自己的交换机单独构建)作为汇合点来直接对等传输。ISP通过对连接至IXP的每一个ISP收取少量费用来盈利,当然利润取决于IXP发送或接收的流量数。 170 | 171 | 15、谷歌的私有网络连接了它大大小小的所有的数据中心。谷歌数据中心的流量通过它的私有网络而不是公共网络来传输。大多数的数据中心位于或靠近与低级的ISP。因此,当谷歌向用户分发数据时,可以跳过高级的ISP。是什么推动着这些内容提供商创建这些网络?首先,如果内容提供商使用更少的中间的ISP,它可以更容易控制用户体验。其次,通过减少至提供商的网络流量来节省成本。第三,如果ISP向利润率高的内容提供商收取高费用(在网络中立状态不适用的国家或地区),内容提供商可以避免额外成本。 172 | 173 | 16、延迟组件包括处理延迟、传输延迟、传播延迟、排队延迟。除了排队延迟是变量其他的都是固定的。 174 | 175 | 17、 176 | 177 | a)1000km, 1Mpbs, 100bytes 178 | 179 | b)100km, 1Mpbs, 100bytes 180 | 181 | 18、 182 | (1)10msec 183 | 184 | (2)d/s 185 | 186 | (3)无关 187 | 188 | (4)无关 189 | 190 | 19、 191 | 192 | (1) 500kps 193 | 194 | (2) 64 seconds 195 | 196 | (3) 100kps; 197 | 198 | 20、终端系统A将大文件拆分为块。A通过添加文件头信息至每一个块来从文件生成多个数据包。数据包的头信息包含目标(终端系统B)IP地址。数据包交换机通过包中的目标IP地址来决定发送链接。考虑到包目标地址,包选择哪条路走和包选择哪条外链走的方法相似。 199 | 200 | 21、最大发送速率为500包/s,最大传输速率是350包/s。相对应的话务量强度是500/350=1.43>1。每次实验最终都会发生数据丢失;由于传输的随机性,每一次实验的数据丢失发生的时间都是不同的。 201 | 202 | 22、五个功能是:错误控制、流控制、片段化和重组、多任务和连接设置。没错,在不同层这些功能可能重复。例如,不止一层提供错误功能。 203 | 204 | 23、网络协议的自顶向下的五层是:应用层、传输层、网络层、链路层和物理层。详见1.5.1。 205 | 206 | 24、应用层报文:应用程序想发送和通过传输层的数据; 207 | 208 | 传输层段:由传输层生成并且封装有传输层头信息的应用层报文 209 | 210 | 网络层数据段:封装有网络层头信息的传输层段 211 | 212 | 链路层帧:封装有链路层头信息的网络层数据段 213 | 214 | 25、路由器处理网络、链路、物理层(第1到3层)。(实际上现代路由器有时担任防火墙、缓存组件和处理传输层)链路层交换机处理链路层和网络层(第1到2层)。主机处理所有的五层。 215 | 216 | 26、 217 | 218 | a)病毒 219 | 220 | 需要以下人的交互来传播。比如邮件病毒。 221 | 222 | b)蠕虫 223 | 224 | 不需要用户介入。受感染主机中的蠕虫会扫描IP地址和端口号来查找可感染的进程。 225 | 226 | 27、创建僵尸网络需要攻击者发现以下应用或系统的薄弱点(比如利用应用中可能存在的缓冲区溢出漏洞)。发现薄弱点后,黑客需要查找可攻击的主机。目标一般是已发现漏洞的一系列系统。僵尸网络中的任何系统都可以通过漏洞自动扫描它的环境和传播。这种僵尸网络的重要属性就是僵尸网络的起点可以远程控制和发送命令至僵尸网络中的所有结点的每一个节点(例如僵尸网络中的所有结点可以被黑客命令发送TCP SYN信息至目标,并将导致目标的TCP SYN溢出攻击)。 227 | 228 | 28、Trudy可以假装为Bob(反之亦然)并且部分或者完全修改Bob发送给Alice的信息。例如,她可以很容易的修改语句“Alice,我欠你1000美元”为“Alice,我欠你10000美元”。更进一步,Trudy甚至可以丢弃Bob发送给Alice的加密信息(反之亦然)。 229 | 230 | [Back to Index](#目录) 231 | 232 |
233 | 234 | ## 问题1 235 | 236 | P1. 这个问题不止一个答案。很多协议都可以解决这个问题。下面是一个简单的答案: 237 | 238 | | Msg name | purpose | 239 | |--------- |-------- | 240 | |HELO | Let server know that there is a card in the ATM machine . ATM card transmits user ID to Server | 241 | |PASSWD | User enters PIN, which is sent to server . BALANCE User requests balance | 242 | |WITHDRAWL | User asks to withdraw money . BYE user all done | 243 | 244 | 从服务器至ATM机器的信息(显示) 245 | 246 | | Msg name | purpose | 247 | |--------- |-------- | 248 | |PASSWD | Ask user for PIN (password) | 249 | |OK | last requested operation (PASSWD, WITHDRAWL) OK | 250 | |ERR | last requested operation (PASSWD, WITHDRAWL) in ERROR | 251 | |AMOUNT | sent in response to BALANCE request | 252 | |BYE | user done, display welcome screen at ATM | 253 | 254 | 正确回应: 255 | 256 | |client | server | 257 | |-------|--------| 258 | |HELO (userid) | --------------> (check if valid userid) | 259 | | | <------------- PASSWD | 260 | |PASSWD | --------------> (check password) | 261 | | | <------------- OK (password is OK) | 262 | |BALANCE |--------------> 263 | | | <------------- AMOUNT | 264 | |WITHDRAWL | --------------> check if enough $ to cover withdrawl | 265 | | | <------------- OK | 266 | |ATM dispenses $ 267 | |BYE | --------------> | 268 | | | <------------- BYE | 269 | 270 | 钱不够的情况下: 271 | 272 | |client | server | 273 | |-------|--------| 274 | |HELO (userid) |--------------> (check if valid userid) | 275 | | |<------------- PASSWD | 276 | |PASSWD |--------------> (check password) | 277 | || <------------- OK (password is OK) | 278 | |BALANCE |--------------> | 279 | || <------------- AMOUNT | 280 | |WITHDRAWL |--------------> check if enough $ to cover | 281 | withdrawl || 282 | | |<------------- ERR (not enough funds) | 283 | |error msg displayed || 284 | |no $ given out || 285 | |BYE |--------------> | 286 | | | <------------- BYE| 287 | 288 | P2. N*(L/R)时,第一个包到达目的地,第二个包存储在最后一个路由器中,第三个包存储在倒数第二个路由器中,等等。N*(L/R)+L/R时,第二个包到达目的地,第三个包存储在最后一个路由器中,等等。按照这个逻辑继续,我们可以看到在N*(L/R)+(P-1)*(L/R)=(N+P-1)*(L/R)时所有数据包到达目的地。 289 | 290 | P3. 291 | 292 | a.电路交换网,因为应用将以稳定速率,持续长时间运行,因此可以为其保留带宽。 293 | 294 | b.不需要,传输速率总和小于链路容量。 295 | 296 | P4. 297 | 298 | a.在左上角的开关和右上角的开关之间,我们可以有4个连接。类似地,我们可以在其他3对相邻开关之间各有四个连接。因此,这个网络可以支持多达16个连接。 299 | 300 | 比如: 301 | 302 | A 到 B :4 条 303 | 304 | B 到 C :4 条 305 | 306 | C 到 D :4 条 307 | 308 | D 到 A :4 条 309 | 310 | 这 16 条可以同时连接。 311 | 312 | b.我们可以通过右上角的开关通过4个连接,在左下角有4个通过开关的连接,总共有8个连接。 313 | 314 | A 到 B :4 条 315 | 316 | B 到 C :4 条 317 | 318 | 最多 8 条。 319 | 320 | c.可以。对于A和C之间的连接,我们路由两个连接通过B,两个连接通过D。对于B和D之间的连接,我们路由两个连接通过A,两个连接通过C。这样,最多有4个连接通过任何链接。 321 | 322 | A 到 B :2 条 323 | 324 | B 到 A :2 条 325 | 326 | A 到 D :2 条 327 | 328 | B 到 C :2 条 329 | 330 | P5.收费亭相距75公里,车辆以每小时100公里的速度传播。收费亭每12秒为一辆汽车提供服务。 331 | 332 | a.有十辆车。第一个收费站服务这10辆车需要120秒钟,也就是2分钟。每辆汽车在到达第二个收费站之前都有45分钟的传播延迟(行驶75公里)。因此,在47分钟后的第二个收费站前,所有的汽车都排好了队。整个过程重复在第二个和第三个收费亭之间旅行。第三个收费站还需要2分钟才能为10辆车提供服务。因此,总的延迟时间是96分钟。 333 | 334 | 收费站将整个车队推向公路的时间为 d1 = 2min; 335 | 336 | 两收费站之间距离 75 km,从一个收费站到另一个的时间 d2 = 0.75 h 337 | 338 | 总时间 d = 3d1 + 2d2 = 96min 339 | 340 | b.收费亭之间的延误为8*12秒加上45分钟,即46分钟和36秒。总延迟是这一数额的两倍,加上8*12秒,即94分48秒。 341 | 342 | d1’ = 8辆 / 5辆/min = 1.6min 343 | 344 | d’ = 3d1’ + 2d2 = 94.8min 345 | 346 | P6. 347 | 348 | a.$d_{prop}=m/s seconds$ 349 | 350 | b.$d_{trans}=L/R seconds$ 351 | 352 | c.$d_{e2e}=d_{prop}+d_{trans}=m/s+L/R$ 353 | 354 | d.刚刚离开A 355 | 356 | e.第一位在链路上并且还没有到达B 357 | 358 | f.已经到达B 359 | 360 | g.$d_{prop}$ = $d_{trans}$ 361 | 362 | m/s = L/R 363 | 364 | $m = Ls/R = 120b * (2.5 *10^8)m/s / 56kbps = (5.36 * 10^5)m$ 365 | 366 | P7.考虑数据包中的第一位。在传输此位之前,必须生成数据包。 367 | 368 | 主机 A 产生 56 字节的分组需要 = 56 * 8b / 64kbps = 7ms 369 | 370 | 传输时延 = 56 * 8b / 2Mbps = 0.224ms 371 | 372 | 总时间 = 7ms + 10ms + 0.224ms = 17.224ms 373 | 374 | P8. 375 | 376 | a.3Mbps/150kbps = 20 377 | 378 | b.p = 0.1 379 | 380 | c.$\binom{120}{n}p^n(1-p)^{120-n}$ 381 | 382 | d.$1-\sum_{n=0}^{20}\binom{120}{n}p^n(1-p)^{120-n}$ 383 | 384 | 根据中心极限定理:令$X_j$为独立随机变量P($X_j$​=1)=p ; 385 | 386 | P(21或更多用户)=1−P($\sum_{j=1}^{120}X_j≤21$) 387 | 388 | P($\sum_{j=1}^{120}X_j≤21$)=$P\left ( \frac{\sum_{j=1}^{120}X_j-12}{\sqrt{120\cdot 0.1\cdot0.9}}\leq \frac{9}{\sqrt{120\cdot 0.1\cdot0.9}} \right )$≈P(Z≤9/3.2869​)=P(Z≤2.74)=0.997 389 | 390 | 因此 P(21或更多用户)≈0.003 391 | 392 | P9. 393 | 394 | a.N=1Gbps×100kbps=$10^4$ 395 | 396 | b.$\sum_{n=N+1}^{M}\binom{M}{n}p^n(1-p)^{M-n}$ 397 | 398 | P10.第一终端系统要求$L/R_1$将分组发送到第一链路;分组在$d_1/s_1$中的第一链路上传播;分组交换机增加$d_{proc}$的处理延迟;在接收到整个分组后,连接第一和第二链路的分组交换机要求$L/R_2$将该分组发送到第二链路;该分组通过$d_2/s_2$中的第二链路传播。同样,我们可以找到第二个交换机和第三个链路:$L/R_3$、$d_{proc}$和$d_3/s_3$所造成的延迟。加上这五个延迟 399 | 400 | $D_{trans}=L/R_1+L/R_2+L/R_3$ 401 | 402 | $D_{prop}=d_1/s_1+d_2/s_2+d_3/s_3$ 403 | 404 | $D_{prop}=2∗d_{proc}$ 405 | 406 | $D=D_{trans}+D_{prop}+D_{proc}$ 407 | 408 | D=6+6+6+20+16+4+3+3=64ms 409 | 410 | P11.由于比特是立即发送的,所以分组交换机不引入任何延迟;特别是,它不引入传输延迟。因此, 411 | 412 | $d_{end2end}=L/R+d_1/s_1+d_2/s_2+d_3/s_3$ 413 | 414 | 对于问题10中的值,我们得到$D=D_{prop}+L/R=20+16+4+6=46ms$ 415 | 416 | P12.到达的数据包必须首先等待链路发送4.5×1500字节=6750字节或54000比特。由于这些比特是以2Mbps发送的,所以队列延迟为27毫秒。一般情况下,排队延迟为(nL(L-x))/R。 417 | 418 | 有一个完整分组的排队时延为1500×8b×2Mbps=0.6ms 419 | 420 | 4.5个分组的总排队时延为 4.5∗0.6ms=2.7ms 421 | 422 | P13. 423 | 424 | a.第一个分组的排队时延为 0, 第二个 L/R, 第三个 2L/R,第N个 (N-1)L/R 425 | 426 | 因此平均排队时延为 (L/R + 2L/R + … + (N-1)L/R) / N = (N-1)L/2R 427 | 428 | b.当下一批 N 个分组到达时,上一批已经传完,因此平均排队时延为 (N-1)L/2R 429 | 430 | P14. 431 | 432 | a.传输延迟为L/R。总延迟是$\frac{IL}{R(1-I)}+\frac{L}{R}=\frac{L/R}{1-I}$ 433 | 434 | b.以 L/R 为函数: 435 | 436 | 令 x = L/R: L/R(1-I) = x/(1-ax) 437 | 438 | 函数经过原点,在 x = 1/a 处趋于无穷 439 | 440 | P15.μ = R/L 所以 L / R(1-I) = 1 / μ-a 441 | 442 | P16. 443 | 444 | N = 10 + 1 = 11个分组 445 | 446 | d = 10ms + 1/100s = 0.02s 447 | 448 | a = N/d = 11/0.02 = 550分组/s 449 | 450 | P17. 451 | 452 | a.有Q节点(源主机和Q-1路由器)。设$d_{proc}^{q}$表示q节点处的处理延迟。设$R^q$为第q个链路的传输速率,则 453 | 454 | $d_{proc}^{q}=L/R^q$。设$d_{proc}^{q}$是穿越q个链路的传播延迟。然后$d_{end2end}=\sum_{q=1}^{Q}\begin{bmatrix} 455 | d_{proc}^{q}+d_{trans}^{q}+d_{prop}^{q} 456 | \end{bmatrix} 457 | 458 | b.设$d_{queue}^{q}$是结点q的排队延迟。那么 459 | 460 | $d_{end2end}=\sum_{q=1}^{Q}\begin{bmatrix} 461 | d_{proc}^{q}+d_{trans}^{q}+d_{prop}^{q}+d_{queue}^{q} 462 | \end{bmatrix}$ 463 | 464 | P18.在Linux上,您可以使用以下命令 465 | 466 | ``` 467 | traceroute www.targethost.com 468 | ``` 469 | 470 | 在Windows命令提示符中,可以使用 471 | ``` 472 | tracert www.targethost.com 473 | ``` 474 | 475 | 在这两种情况下,您将得到三个延迟测量。对于这三个测量,你可以计算平均和标准差。在一天中的不同时间重复实验,并对任何变化发表评论。 476 | 477 | 下面是一个示例解决方案: 478 | 479 | ![avater](./img/9.png) 480 | 481 | ![avater](./img/10.png) 482 | 483 | 圣地亚哥超级计算机中心与www.poly.edu之间的追踪显示: 484 | 485 | a)在三个小时中,往返时间的平均(平均)分别为71.18毫秒、71.38毫秒和71.55毫秒。标准偏差分别为0.075、0.21ms、0.05ms。 486 | 487 | b)在本例中,跟踪器在三个小时中的每一个路径上都有12个路由器。不,在任何一个小时内路径都没有改变。 488 | 489 | c)跟踪数据包从源到目的地通过四个ISP网络。是的,在这个实验中,最大的延迟发生在相邻ISP之间的窥视接口上。 490 | 491 | ![avater](./img/11.png) 492 | 493 | ![avater](./img/12.png) 494 | 495 | 追踪网址:www.stella-Net.net(法国)至www.poly.edu(美国)。 496 | 497 | d)该三小时的平均往返延误时间分别为87.09毫秒、86.35毫秒及86.48毫秒.标准偏差分别为0.53 ms、0.18 ms、0.23 ms。在本例中,三个小时中的每一个路径上都有11个路由器。不,在任何一个小时内路径都没有改变。Traceroute数据包将三个ISP网络从源传送到目的地。是的,在这个实验中,最大的延迟发生在相邻ISP之间的窥视接口上。 498 | 499 | P19.范例: 500 | 501 | ![avater](./img/13.png) 502 | 503 | 从法国的两个不同城市到美国的纽约市 504 | 505 | a)从法国的两个不同城市到美国的同一目的地东道国,有七个联系是共同的,包括跨大西洋连接。 506 | 507 | ![avater](./img/14.png) 508 | 509 | ![avater](./img/15.png) 510 | 511 | b)在法国的一个城市和德国的另一个城市到美国同一个东道国的示踪剂的例子中,三个联系是共同的,包括跨大西洋的联系。 512 | 513 | ![avater](./img/16.png) 514 | 515 | 从美国同一地主地到中国两个不同城市的追踪, 516 | 517 | c)五个链接在这两个追踪器中是常见的。这两种示踪剂在到达中国之前有分歧 518 | 519 | P20. $min{\{R_s, R_c, R/M\}}$ 520 | 521 | P21.仅使用一条,最大吞吐量由: 522 | 523 | $max\{min\{R_{1}^{1},R_2^1,...,R_N^1\},min\{R_1^2,R_2^2,...,R_N^2\},...,min\{R_1^M,R_2^M,...R_M^M\}\}$ 524 | 525 | 使用 M 条:$\sum_{k=1}^{M}min\{R_1^k,R_2^k,...,R_N^k\}$ 526 | 527 | P22.不丢包概率为 1 - p, N 个路由器, 因此总的不丢包概率$p_s=(1−p)^N$ 528 | 529 | 在客户端成功接收数据包之前需要执行的传输数是具有成功概率$p_s$的几何随机变量。因此,所需传输的平均次数为:$1/ps$。然后,所需重传的平均次数为:$1/p_s-1$。 530 | 531 | P23. 532 | 533 | a.$L/R_s$ 534 | 535 | b.可能,因为第二个分组 (用 P2 表示) 可能在第一个分组 (P1) 被推出之前到达; 536 | 537 | P1 被完全推出的时间 $t_1 = L/R_s + L/R_c + d_{prop}$ 538 | 539 | P2 到达路由器的时间 $t_2 = 2L/R_s + d_{prop} + T$ 540 | 541 | 要求t2 > t1:即 $T > L/R_c - L/R_s$; 542 | 543 | 因此T至少是$L/R_c - L/R_s$ 544 | 545 | P24.40兆字节=40*1012*8位因此,如果使用专用链接,则需要40*1012*8/(100*106)=3200000秒=37天。但是有了联邦快递的通宵递送,你可以保证数据在一天内到达,而且它的成本应该低于100美元。 546 | 547 | P25. 548 | 549 | a.$t_{prop} = 20000km / 2.5*10^8m/s = 0.08s$ 550 | 551 | $R * t_{prop} = 1.6 * 10^5 bits$ 552 | 553 | b.$1.6 * 10^5$bits 554 | 555 | c.链路上的最大比特数量 556 | 557 | d.$20000km / 1.6*10^5 = 125m$这比足球场长(正规足球场场地:长105米、宽68米) 558 | 559 | e.s/R 560 | 561 | P26. 562 | 563 | s/R = 20000km 564 | 565 | R = 12.5Mbps 566 | 567 | P27 568 | 569 | a. $R * d_{prop} = 8 * 10^7 b$ 570 | 571 | b.$8 * 10^7$b 是 不对 的,因为文件为 $8 * 10^5$ b 572 | 573 | c. s/R = 0.25m 574 | 575 | P28. 576 | 577 | a.$t_{trans} + t_{prop} = 0.48s$ 578 | 579 | b.$20*(t_{trans}+t_{prop})=20*(0.02+0.08)s=2s$ 580 | 581 | c.分解一个文件需要更长的时间来传输,因为每个数据包及其相应的确认包都会添加它们自己的传播延迟。 582 | 583 | P29. 584 | 585 | a. $d_{prop} = 36000km / (2.4 * 10^8) = 0.15s$ 586 | 587 | b. $R * d_{prop}=10Mbps*0.15s=1.5*10^6bits$ 588 | 589 | c. $60s * 10Mbps = 6 * 10^8 bits$ 590 | 591 | P30.假设乘客和他/她的行李对应到达协议栈顶部的数据单元。当旅客办理登机手续时,他/她的行李会被检查,并在行李和车票上贴上标签。这是在行李层中添加的附加信息,如果图1.20允许行李层在发送方实现服务或分离乘客和行李,然后将它们重新统一(希望如此!)在目的地那边。当乘客经过安检时,通常会在车票上加盖额外的印章,表示乘客通过了安全检查。这些信息用于确保(例如,通过以后对安全信息的检查)人员的安全转移。 592 | 593 | P31. 594 | 595 | a. 596 | 597 | $8 * 10^6 / 2Mbps = 4s$ 598 | 599 | 3 * 4s= 12s 600 | 601 | b. 602 | 603 | $1 * 10^4 b / 2Mbps = 5 * 10^(-3)s$ 604 | 605 | $2 * 5 * 10^(-3)s = 10^(-2)s$ 606 | 607 | c.$(800 + 3 - 1) * 0.5 * 10^(-2) = 4.01s$比 (a) 快非常多 608 | 609 | d.便于检测错误并重传;不分段的大包容易使路由器缓存不足导致丢包; 610 | 611 | e.分组需要排序;需加上首部信息; 612 | 613 | P32.是的,Applet中的延迟对应于问题31中的延迟。对于分组交换和消息交换,传播延迟都会影响整个端到端延迟。 614 | 615 | P33.有F/S包。每个包S=80位。在第一路由器接收最后一个数据包的时间是$\frac{S+80}{R}\times \frac{F}{S}$秒。此时,第一个F/S-2分组位于目的地,F/S-1分组位于第二路由器。最后一个数据包随后必须由第一个路由器和第二个路由器发送,每一个传输都需要$\frac{S+80}{R}$秒。因此,发送整个文件的延迟为$\frac{S+80}{R}\times (\frac{F}{S}+2)$,以计算导致最小延迟的S值,延迟为:$\frac{\mathrm{d} }{\mathrm{d} x}delay=0 \Rightarrow S=\sqrt{40F}$。 616 | ​ 617 | P34.电路交换电话网络和因特网在“网关”连接在一起。当Skype用户(连接到Internet)呼叫普通电话时,通过电路交换网在网关和电话用户之间建立电路。Skype用户的语音通过互联网以数据包的形式发送到网关。在网关处,对语音信号进行重构,然后通过电路发送。另一方面,语音信号通过电路交换网络发送到网关。网关对语音信号进行分组,并将语音分组发送给Skype用户。 618 | 619 | [Back to Index](#目录) 620 | 621 |
622 | 623 | # 第二章 624 | 625 | ## 复习题2 626 | 627 | R1、网址:http;文件传输:ftp;远程登录:Telnet;电子邮件:smtp;BitTorrent文件共享:BitTorrent协议 628 | 629 | R2、网络体系结构是指将通信过程组织成多个层次(例如,五层互联网体系结构)。另一方面,应用程序体系结构是由应用程序开发人员设计的,它决定了应用程序的广泛结构(例如,客户机-服务器或P2P)。 630 | 631 | R3、发起通信的进程是客户端;等待联系的进程是服务器。 632 | 633 | R4、没有。在P2P文件共享应用程序中,接收文件的对等方通常是客户端,发送文件的对等方通常是服务器。 634 | 635 | R5、目标主机的IP地址和目标进程中套接字的端口号。 636 | 637 | R6、你会用UDP。使用UDP,事务可以在一次往返时间(RTT)内完成--客户端将事务请求发送到UDP套接字,服务器将应答发送回客户端的UDP套接字。对于TCP,至少需要两个RTT--一个用于设置TCP连接,另一个用于客户机发送请求,另一个用于服务器发送回复。 638 | 639 | R7、例如,使用Google文档进行远程文字处理就是一个这样的例子。但是,由于Google文档在Internet上运行(使用TCP),因此没有提供定时保证。 640 | 641 | R8、 642 | 643 | a)可靠的数据传输TCP在客户端和服务器之间提供可靠的字节流,但UDP没有。 644 | 645 | b)保证一定的吞吐量值既不保持,也不保证数据将在规定的时间内交付-既不保密,也不(通过加密) 646 | 647 | c)保证数据将在规定的时间内交付-既不保密(通过加密) 648 | 649 | d)保密(通过加密) 650 | 651 | R9、SSL在应用层运行。SSL套接字从应用层接收未加密的数据,对其进行加密,然后将其传递给TCP套接字。如果应用程序开发人员希望使用SSL增强TCP,则必须在应用程序中包含SSL代码。 652 | 653 | R10、如果两个通信实体在相互发送数据之前先交换控制包,则协议使用握手。SMTP在应用层使用握手,而HTTP不使用握手。 654 | 655 | R11、与这些协议相关联的应用程序要求以正确的顺序接收所有应用程序数据,并且不存在空白。TCP提供此服务,而UDP不提供此服务。 656 | 657 | R12、当用户第一次访问站点时,服务器将创建一个唯一的标识号,在其后端数据库中创建一个条目,并将此标识号作为cookie编号返回。此cookie编号存储在用户的主机上,并由浏览器管理。在每次后续访问(和购买)期间,浏览器将cookie编号发送回站点。因此,站点知道这个用户(更准确地说,是这个浏览器)访问该站点的时间。 658 | 659 | R13、网络缓存可以使所需内容与用户“更接近”,可能与用户“更接近” 用户主机连接的局域网。网络缓存可以减少所有人的延迟对象,甚至没有缓存的对象,因为缓存减少了链接上的流量。 660 | 661 | R14、默认情况下,Telnet在Windows 7中不可用。若要使其可用,请转到“控制面板”、“程序和功能”、“打开或关闭Windows功能”、“检查Telnet客户端”。要启动Telnet,在Windows命令提示符中,发出以下命令 662 | ``` 663 | >telnetwebserverver 80 664 | ``` 665 | 其中“webserver”是一些webserver。发出命令后,您已经在客户端telnet程序和Web服务器之间建立了TCP连接。然后输入HTTPGET消息。举例如下: 666 | 667 | ![avater](./img/17.png) 668 | 669 | 由于此Web服务器中的index.html页面自2007年5月18日(星期五)09:23:34格林尼治时间(GMT)以来未被修改,上述命令于2007年5月19日在沙特发布,服务器返回“304未修改”。注意,前4行是用户输入的GET消息行和头行,接下来的4行(从HTTP/1.1 304开始,未修改)是来自Web服务器的响应。 670 | 671 | R15、几个流行的消息应用程序列表:WhatsApp、FacebookMessenger、微信和Snapchat。这些应用程序使用与SMS不同的协议。 672 | 673 | R16、该消息首先通过HTTP从Alice的主机发送到她的邮件服务器。然后,Alice的邮件服务器通过SMTP向Bob的邮件服务器发送消息。然后Bob通过POP 3将消息从他的邮件服务器传输到他的主机。 674 | 675 | R17、 676 | 677 | |Action | Event| 678 | |-------|------| 679 | |Received: |from 65.54.246.203 (EHLO bay0-omc3-s3.bay0.hotmail.com) (65.54.246.203) by mta419.mail.mud.yahoo.com with SMTP; Sat, 19 May 2007 16:53:51 -0700 | 680 | |Received: |from hotmail.com ([65.55.135.106]) by bay0-omc3-s3.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.2668); Sat, 19 May 2007 16:52:42 - 0700 | 681 | |Received:| from mail pickup service by hotmail.com with Microsoft SMTPSVC; Sat, 19 May 2007 16:52:41 -0700 | 682 | |Message-ID: || 683 | |Received: |from 65.55.135.123 by by130fd.bay130.hotmail.msn.com with HTTP; Sat, 19 May 2007 23:52:36 GMT 684 | |From:| "prithula dhungel"| | 685 | |To:| prithula@yahoo.com| 686 | |Bcc:|| 687 | |Subject: |Test mail| 688 | |Date: |Sat, 19 May 2007 23:52:36 +0000| 689 | |Mime-Version:|1.0| 690 | |Content-Type: |Text/html; format=flowed | 691 | |Return-Path:| prithuladhungel@hotmail.com| 692 | 693 | 图:接收到的邮件标题示例: 694 | 695 | 此标头字段指示SMTP服务器发送和接收邮件的顺序,包括相应的时间戳。 696 | 697 | 在本例中,有4个“接收:”标题行。这意味着邮件在发送到收件人的邮箱之前通过5个不同的SMTP服务器传递。最后(第四)“接收:”标头指示从发件人的SMTP服务器到服务器链中的第二个SMTP服务器的邮件消息流。发送方的SMTP服务器位于地址65.55.135.123,链中的第二个SMTP服务器为by130fd.bay130.hotmail.msn.com。 698 | 699 | 第三个“接收:”标头表示从链中的第二个SMTP服务器到第三个服务器的邮件消息流,依此类推。 700 | 701 | 最后,第一个“接收:”标头指示从第四个SMTP服务器到链中的最后一个SMTP服务器(即接收方的邮件服务器)的邮件消息流。 702 | 703 | Message-id:邮件编号为BAY 130-F26D9E35BF59E0D18A819AFB9310@phx.gbl(由bay0-omc3-s3.bay0.hotmail.com提供)。Message-id是邮件系统首次创建消息时分配的唯一字符串。 704 | 705 | 出发地:这表示邮件发件人的电子邮件地址。在给定的示例中,发件人为“prithuladhungel@hotmail.com”, 706 | 707 | 该字段指示邮件接收方的电子邮件地址。在本例中,接收方为“prithula@yahoo.com” 708 | 709 | 主题:这将给出邮件的主题(如果发件人指定的话)。在此示例中,发件人指定的主题为“测试邮件” 710 | 711 | 日期:发件人发送邮件的日期和时间。在这个例子中,发件人于2007年5月19日(格林尼治时间23:52:36)发送了邮件。 712 | 713 | MIME版本:用于邮件的MIME版本。在这个例子中,它是1.0。 714 | 715 | 内容类型:邮件正文中内容的类型。在这个例子中,它是“text/html”。 716 | 717 | 返回路径:如果该邮件的接收方希望回复发件人,则指定发送邮件的电子邮件地址。发件人的邮件服务器也使用它来返回邮件守护进程错误消息的不可交付邮件消息。在这个例子中,返回路径是“prithuladhungel@hotmail.com”。 718 | 719 | R18、通过下载和删除,用户从POP服务器检索其消息后,消息将被删除。这给游牧用户带来了一个问题,他们可能希望从许多不同的机器(办公PC、家庭PC等)访问消息。在下载和保存配置中,在用户检索消息后不会删除消息。这也可能不方便,因为每次用户从新机器检索存储的消息时,所有未删除的消息都将传输到新机器(包括非常旧的消息)。 720 | 721 | R19、是的,组织的邮件服务器和Web服务器可以具有与主机名相同的别名。MX记录用于将邮件服务器的主机名映射到其IP地址。 722 | 723 | R20、您应该能够使用.edu电子邮件地址查看发送方的IP地址。但是,如果用户使用Gmail帐户,您将无法看到发件人的IP地址。 724 | 725 | R21、鲍勃也没有必要为Alice提供块。Alice必须是Bob的前4位邻居,Bob才能向她发送块;即使Alice在30秒的间隔内向Bob提供块,也可能不会发生这种情况。 726 | 727 | R22、回想一下,在BitTorrent中,一个对等点选择一个随机的对等点,并乐观地在短时间内解除该对等点的阻塞。因此,爱丽斯最终会被她的一个邻居放倒,在此期间,她会从邻居那里得到大块的食物。 728 | 729 | R23、P2P文件共享系统中的覆盖网络由参与文件共享系统的节点和节点之间的逻辑链接组成。如果A和B之间有一个半永久的TCP连接,则从节点A到节点B有一个逻辑链路(图论术语中的“边缘”)。覆盖网络不包括路由器。 730 | 731 | R24、一种服务器布局理念称为EntDep,它通过在全世界的Access ISP中部署服务器集群,深入到Internet服务提供商的接入网中。目标是减少延迟,提高终端用户和CDN服务器之间的吞吐量。另一种理念是将ISP带回家,在较小数量的站点上构建大型CDN服务器集群,并通常将这些服务器集群放置在IXP(Internet Exchange Point)中。这带来了居家设计典型的结果是较低的维护和管理成本,与进入深度的设计理念。 732 | 733 | R25、除了与网络相关的因素之外,还有一些重要的因素需要考虑,例如负载平衡(客户端不应指向过载集群)、日变化、网络中DNS服务器之间的变化、很少访问视频的可用性有限以及需要缓解流行视频内容可能产生的热点。 734 | 735 | 参考文件:Torres,Ruben,等。“在Youtube CDN中剖析视频服务器的选择策略。”第31届IEEE国际会议。分布式计算系统(ICDCS),2011年。 736 | 737 | 另一个需要考虑的因素是ISP交付成本--可以选择集群,以便使用特定的ISP来承载CDN到客户端的通信,同时考虑到ISP和集群运营商之间的契约关系中的不同成本结构。 738 | 739 | R26、对于UDP服务器,没有欢迎套接字,来自不同客户端的所有数据都通过这个套接字进入服务器。对于TCP服务器,有一个欢迎套接字,每次客户端启动到服务器的连接时,都会创建一个新的套接字。因此,为了支持n个同时连接,服务器需要n个套接字。 740 | 741 | R27、对于TCP应用程序,一旦客户端被执行,它就会尝试启动与服务器的TCP连接。如果TCP服务器没有运行,则客户端将无法建立连接。对于UDP应用程序,客户端在执行时不会立即启动连接(或尝试与UDP服务器通信)。 742 | 743 | [Back to Index](#目录) 744 | 745 |
746 | 747 | ## 问题2 748 | 749 | P1、 750 | 751 | a) F 752 | 753 | b) T 754 | 755 | c) F 756 | 757 | d) F 758 | 759 | e) F 760 | 761 | P2、短消息服务(SMS)是一种允许移动电话之间通过蜂窝网络发送和接收短信的技术。一个SMS消息可以包含140个字节的数据,它支持国际语言。消息的最大大小可以是160个7位字符、140个8位字符或70个16位字符.SMS通过SS#7协议的移动应用部分(MAP)实现,短消息协议由3 GPP TS 23.040和3 GPP TS 23.041定义。此外,MMS(多媒体消息传递服务)扩展了原始文本消息的功能,并支持发送照片、更长的文本消息和其他内容。 762 | 763 | iMessage是苹果公司开发的即时通讯服务。iMessage支持通过蜂窝数据网络或WiFi发送到IOS设备和Mac的文本、照片、音频或视频。苹果的iMessage基于专有的二进制协议APN(ApplePushNotificationService)。WhatsAppMessenger是一种即时通讯服务,支持iOS、Android、手机和黑莓等多种移动平台。WhatsApp用户可以通过蜂窝数据网络或WiFi相互发送无限的图像、文本、音频或视频。WhatsApp使用XMPP协议(可扩展消息传递和存在协议)。 764 | 765 | iMessage和WhatsApp与SMS不同,因为它们使用数据计划发送消息,并且在TCP/IP网络上工作,而SMS使用我们从无线运营商购买的短信计划。此外,iMessage和WhatsApp支持发送照片、视频、文件等,而原始短信只能发送短信。最后,iMessage和WhatsApp可以通过WiFi工作,但SMS不能。 766 | 767 | P3、应用层协议:DNS和HTTP传输层协议:UDP用于DNS;TCP用于HTTP 768 | 769 | P4、 770 | 771 | a)文档请求是http://gaia.cs.umass.edu/cs453/index.html.host:字段表示服务器的名称,/cs 453/index.html表示文件名。 772 | 773 | b)浏览器正在运行HTTP1.1版本,就像第一对之前所指出的那样。 774 | 775 | c)浏览器正在请求持久连接,如连接所示:保持-活动。 776 | 777 | d)这是刁钻的问题。此信息不包含在任何地方的HTTP消息中。因此,仅看HTTP消息的交换就无法区分这一点。您需要从IP数据报(承载承载HTTPGET请求的TCP段)中获得信息来回答这个问题。 778 | 779 | e)Mozilla/5.0。服务器需要浏览器类型信息将同一对象的不同版本发送到不同类型的浏览器。 780 | 781 | P5、 782 | 783 | a)状态代码200和短语ok表示服务器能够找到文档成功。答复于2008年3月7日星期二提供格林威治标准时间12:39:45。 784 | 785 | b)上一次修改index.html文档是在2005年12月10日星期六18:27:46 格林尼治时间。 786 | 787 | c)返回的文档中有3874个字节。 788 | 789 | d)返回文件的前五个字节是:<!医生服务器同意持久连接,如connection:Keep Alive字段所示 790 | 791 | P6、 792 | a)在RFC 2616的第8节中讨论了持久连接(这一点的真正目的问题是让你检索并阅读一份RFC)第8.1.2和8.1.2.1节 793 | rfc表示客户机或服务器可以向另一个表明它是将关闭永久连接。它通过包含连接令牌来实现“关闭”在http请求/回复的连接头字段中。 794 | 795 | b)http不提供任何加密服务。 796 | 797 | c)(来自rfc 2616)“使用持久连接的客户端应该限制同时维护到给定服务器的连接。单用户客户端与任何服务器或代理服务器的连接不应超过2个。” 798 | 799 | d)是。(来自RFC 2616)“在服务器决定关闭”空闲“连接的同时,客户端可能已经开始发送新请求。从服务器的角度来看,连接是在空闲时关闭的,但从客户端的角度来看,请求正在进行中。“ 800 | 801 | P7、获取IP地址的总时间为$RTT_1+RTT_2+...+RTT_n$ 802 | 803 | 一旦知道IP地址,$RTT_O$就会经过以建立TCP连接,而另一个$RTT_O$则会经过以请求和接收小对象。总响应时间为$2+RTT_O+RTT_1+RTT_2+...+RTT_n$ 804 | 805 | P8、 806 | 807 | a)$RTT_1+RTT_2+...+RTT_n+2RTT_O+8*2RTT_O=18RTT_O+RTT_1+...+RTT_n$ 808 | 809 | b)$RTT_1+RTT_2+...+RTT_n+2RTT_O+2*2RTT_O=6RTT_O+RTT_1+...+RTT_n$ 810 | 811 | c)与流水线的持久连接。这是HTTP的默认模式。$RTT_1+RTT_2+...+RTT_n+2RTT_O+RTT_O=3RTT_O+RTT_1+...+RTT_n$ 812 | 813 | 持续连接,没有流水线,没有并行连接。$RTT_1+RTT_2+...+RTT_n+2RTT_O+8RTT_O=10RTT_O+RTT_1+...+RTT_n$ 814 | 815 | P9、 816 | 817 | a)在链路或速率R上传输大小为L的对象的时间是L/R,平均时间是对象的平均大小除以R: 818 | 819 | $\delta$= (850,000 bits)/(15,000,000 bits/sec) = .0567 sec 820 | 821 | 链路上的流量强度由$\beta \delta$=(16个请求/秒)(0.567秒/请求)=0.907表示。因此,平均访问延迟为(0.567秒)/(1-0.907)≈0.6秒。因此,总的平均响应时间为0.6秒+3秒=3.6秒。 822 | 823 | b)由于60%的请求在机构网络中得到满足,接入链路上的业务强度降低了60%。因此,平均访问延迟为(.0567秒)/[1-(4)(.907)]=.089秒。如果请求由缓存满足(发生概率为6),则响应时间大约为零;如果缓存丢失,平均响应时间为0.089秒,3秒=3.089秒(40%的时间)。因此,平均响应时间为(6)(0秒)(4)(3.089秒)=1.24秒。因此,平均响应时间从3.6秒缩短到1.24秒。 824 | 825 | P10、请注意,每个下载的对象都可以完全放入一个数据包中。让TP表示客户端和服务器之间的单向传播延迟。 826 | 827 | 首先考虑使用非持久连接的并行下载。并行下载将允许10个连接共享150位/秒带宽,每个带宽仅15个位/秒。因此,接收所有对象所需的总时间由下式给出: 828 | 829 | (200/150TP200/150TP200/150TP100,000/150TP)(200/(150/10)TP200/(150/10)TP200/(150/10)TP100,000/(150/10)TP)=737778*TP(秒) 830 | 831 | 现在请考虑持久的HTTP连接。所需的总时间由下式给出: 832 | 833 | (200/150TP200/150TP200/150TP100,000/150TP)10*(200/150TP100,000/150TP)=735124*TP(秒) 834 | 835 | 假设光速是300*106m/sec,然后TP=10/(300*106)=0.03微秒。TPTP因此与传输延迟相比是可忽略的。 836 | 837 | 因此,我们看到,持久性HTTP的速度并不显著(小于1%)并行下载的非持久性案例。 838 | 839 | P11、 840 | 841 | a)是的,因为Bob有更多的连接,他可以获得更大的链路带宽份额。 842 | 843 | B)是的,Bob仍然需要执行并行下载;否则,他将获得比其他四个用户更少的带宽。 844 | 845 | P12、 846 | 847 | Server.py 848 | 849 | ``` 850 | from socket import * 851 | serverPort=12000 852 | serverSocket=socket(AF_INET,SOCK_STREAM) 853 | serverSocket.bind(('',serverPort)) 854 | serverSocket.listen(1) 855 | connectionSocket, addr = serverSocket.accept() 856 | while 1: 857 | sentence = connectionSocket.recv(1024) 858 | print 'From Server:', sentence, '\n' 859 | serverSocket.close() 860 | ``` 861 | 862 | P13、来自:inSMTP的邮件是从SMTP客户端发送的标识发件人的邮件将邮件消息发送到SMTP服务器。 863 | 864 | 发件人:在邮件消息本身不是SMTP邮件,而不是邮件正文中的一行。 865 | 866 | P14、SMTP使用仅包含句点的行来标记邮件正文的结束。http使用“内容长度标题字段”来表示消息正文的长度。不,HTTP不能使用SMTP使用的方法,因为HTTP消息可以是二进制数据,而在SMTP中,消息主体必须是7位的ASCII格式。 867 | 868 | P15、MTA代表邮件传输代理。主机将消息发送给MTA。然后,该消息遵循一系列MTA以到达接收者的邮件阅读器。我们看到这个垃圾邮件遵循一个MTA链。诚实的MTA应该报告它收到消息的位置。请注意,在此消息中,“asusus-4b96([58.88.21.177])”不报告它收到电子邮件的位置。由于我们假定只有发端人是不诚实的,所以“asusus-4b96([58.88.21.177])”必须是发起人。 869 | 870 | P16、uidl缩写“唯一ID列表”。当POP3客户端发出uidl命令时,服务器用唯一的消息ID来响应于在该服务器中存在的所有消息,用户的邮箱。此命令对“下载并保持”是有用的。通过维护文件该列表列出了在较早的会话期间检索到的消息,客户端可以使用Urel用于确定服务器上的哪些消息已被看到的命令。 871 | 872 | P17、 873 | 874 | a) C: dele 1 875 | 876 | C: retr 2 877 | 878 | S: (blah blah … 879 | 880 | S: ………..blah) 881 | 882 | S: . 883 | 884 | C: dele 2 885 | 886 | C: quit 887 | 888 | S: +OK POP3 server signing off 889 | 890 | b) C: retr 2 891 | 892 | S: blah blah … 893 | 894 | S: ………..blah 895 | 896 | S: . 897 | 898 | C: quit 899 | 900 | S: +OK POP3 server signing off 901 | 902 | c) C: list 903 | 904 | S: 1 498 905 | 906 | S: 2 912 907 | 908 | S: . 909 | 910 | C: retr 1 911 | 912 | S: blah ….. 913 | 914 | S: ….blah 915 | 916 | S: . 917 | 918 | C: retr 2 919 | 920 | S: blah blah … 921 | 922 | S: ………..blah 923 | 924 | S: . 925 | 926 | C: quit 927 | 928 | S: +OK POP3 server signing off 929 | 930 | P18、 931 | 932 | a)对于给定的域名输入(如ccn.com)、IP地址或网络管理员名称,whois数据库可用于定位相应的注册服务器、whois服务器、DNS服务器等。 933 | 934 | b)NS4.YAHOO.COM,网址:www.Registry er.com;NS1.MSFT.NET,网址:ww.Registry er.com。 935 | 936 | c) Local Domain: www.mindspring.com 937 | 938 | Web servers : www.mindspring.com 939 | 940 | 207.69.189.21, 207.69.189.22, 941 | 942 | 207.69.189.23, 207.69.189.24, 943 | 944 | 207.69.189.25, 207.69.189.26, 207.69.189.27, 207.69.189.28 945 | 946 | Mail Servers : mx1.mindspring.com (207.69.189.217) 947 | 948 | mx2.mindspring.com (207.69.189.218) 949 | 950 | mx3.mindspring.com (207.69.189.219) 951 | 952 | mx4.mindspring.com (207.69.189.220) 953 | 954 | Name Servers: itchy.earthlink.net (207.69.188.196) 955 | 956 | scratchy.earthlink.net (207.69.188.197) 957 | 958 | www.yahoo.com 959 | 960 | Web Servers: www.yahoo.com (216.109.112.135, 66.94.234.13) 961 | 962 | Mail Servers: a.mx.mail.yahoo.com (209.191.118.103) 963 | 964 | b.mx.mail.yahoo.com (66.196.97.250) 965 | 966 | c.mx.mail.yahoo.com (68.142.237.182, 216.39.53.3) 967 | 968 | d.mx.mail.yahoo.com (216.39.53.2) 969 | 970 | e.mx.mail.yahoo.com (216.39.53.1) 971 | 972 | f.mx.mail.yahoo.com (209.191.88.247, 68.142.202.247) 973 | 974 | g.mx.mail.yahoo.com (209.191.88.239, 206.190.53.191) 975 | 976 | Name Servers: ns1.yahoo.com (66.218.71.63) 977 | 978 | ns2.yahoo.com (68.142.255.16) 979 | 980 | ns3.yahoo.com (217.12.4.104) 981 | 982 | ns4.yahoo.com (68.142.196.63) 983 | 984 | ns5.yahoo.com (216.109.116.17) 985 | 986 | ns8.yahoo.com (202.165.104.22) 987 | 988 | ns9.yahoo.com (202.160.176.146) 989 | 990 | www.hotmail.com 991 | 992 | Web Servers: www.hotmail.com (64.4.33.7, 64.4.32.7) 993 | 994 | Mail Servers: mx1.hotmail.com (65.54.245.8, 65.54.244.8, 65.54.244.136) 995 | 996 | mx2.hotmail.com (65.54.244.40, 65.54.244.168, 65.54.245.40) 997 | 998 | mx3.hotmail.com (65.54.244.72, 65.54.244.200, 65.54.245.72) 999 | 1000 | mx4.hotmail.com (65.54.244.232, 65.54.245.104, 65.54.244.104) 1001 | 1002 | Name Servers: ns1.msft.net (207.68.160.190) 1003 | 1004 | ns2.msft.net (65.54.240.126) 1005 | 1006 | ns3.msft.net (213.199.161.77) 1007 | 1008 | ns4.msft.net (207.46.66.126) 1009 | 1010 | ns5.msft.net (65.55.238.126) 1011 | 1012 | d)YahooWeb服务器有多个IP地址www.yahoo.com(216.109.112.135,66.94.234.13)e)职业技术大学的地址范围:128.230.0.0.0-128.230.255 1013 | 1014 | f)攻击者可以使用whois数据库和nslookup工具来确定目标机构的IP地址范围、DNS服务器地址等。 1015 | 1016 | g)通过分析攻击数据包的源地址,受害者可以使用whois获取攻击所来自的域的信息,并可能通知源域的管理员。 1017 | 1018 | P19、 1019 | a) The following delegation chain is used for gaia.cs.umass.edu 1020 | 1021 | a.root-servers.net 1022 | 1023 | E.GTLD-SERVERS.NET 1024 | 1025 | ns1.umass.edu(authoritative) 1026 | 1027 | First command: 1028 | 1029 | dig +norecurse @a.root-servers.net any gaia.cs.umass.edu 1030 | 1031 | ;; AUTHORITY SECTION: 1032 | 1033 | edu. 172800 IN NS E.GTLD-SERVERS.NET. 1034 | 1035 | edu. 172800 IN NS A.GTLD-SERVERS.NET. 1036 | 1037 | edu. 172800 IN NS G3.NSTLD.COM. 1038 | 1039 | edu. 172800 IN NS D.GTLD-SERVERS.NET. 1040 | 1041 | edu. 172800 IN NS H3.NSTLD.COM. 1042 | 1043 | edu. 172800 IN NS L3.NSTLD.COM. 1044 | 1045 | edu. 172800 IN NS M3.NSTLD.COM. 1046 | 1047 | edu. 172800 IN NS C.GTLD-SERVERS.NET. 1048 | 1049 | Among all returned edu DNS servers, we send a query to the first one. 1050 | 1051 | dig +norecurse @E.GTLD-SERVERS.NET any gaia.cs.umass.edu 1052 | 1053 | umass.edu. 172800 IN NS ns1.umass.edu. 1054 | 1055 | umass.edu. 172800 IN NS ns2.umass.edu. 1056 | 1057 | umass.edu. 172800 IN NS ns3.umass.edu. 1058 | 1059 | Among all three returned authoritative DNS servers, we send a query to the first one. 1060 | 1061 | dig +norecurse @ns1.umass.edu any gaia.cs.umass.edu 1062 | 1063 | gaia.cs.umass.edu. 21600 IN A 128.119.245.12 1064 | 1065 | b) The answer for google.com could be: 1066 | 1067 | a.root-servers.net 1068 | 1069 | E.GTLD-SERVERS.NET 1070 | 1071 | ns1.google.com(authoritative) 1072 | 1073 | P20、我们可以定期拍摄本地DNS服务器中DNS缓存的快照。该组织在DNS缓存中出现最频繁的Web服务器是最流行的服务器。这是因为如果更多的用户对Web服务器感兴趣,那么DNS请求就会对此感兴趣服务器更频繁地由用户发送。因此,该Web服务器将出现在DNS中缓存更频繁。 1074 | 1075 | 关于完整的测量研究,见: Craig E.Wills,Mikhail Mikhailov,郝尚 “通过主动查询DNS传递互联网应用的相对普及性” “缓存”,2003年10月27日至29日,IMC03,美国佛罗里达州迈阿密海滩。 1076 | 1077 | P21、是的,我们可以在本地DNS服务器中使用DIG查询该网站。例如,“digCNN.com”将返回查找CNN.com的查询时间。如果CNN.com几秒钟前刚刚被访问,那么CNN.com的条目将缓存在本地DNS缓存中,因此查询时间为0毫秒。否则,查询时间很长。 1078 | 1079 | P22、在计算客户端-服务器分发的最小分发时间时,我们使用以下公式: 1080 | 1081 | $d_{cs}=max\{NF/u_s,F/d_{min}\}$。 1082 | 1083 | 同样地,在计算P2P分发的最小分发时间时,我们使用以下公式: 1084 | 1085 | $D_{p2p}=max\{F/u_s,F/d_{min},NF/(u_s+\sum_{i=1}^{N}u_i)\}$ 1086 | 1087 | 其中F=15Gbit=15*1024Mbit 1088 | 1089 | u_s=30 Mbps 1090 | 1091 | $d_{min}=d_i$=2 Mbps, 1092 | 1093 | 其中300 Kbps=300/1024 Mbps。 1094 | 1095 | Client Server 1096 | N 1097 | 10 100 1000 1098 | u 1099 | 300 Kbps 7680 51200 512000 1100 | 700 Kbps 7680 51200 512000 1101 | 2 Mbps 7680 51200 512000 1102 | 1103 | Peer to Peer 1104 | N 1105 | 10 100 1000 1106 | u 1107 | 300 Kbps 7680 25904 47559 1108 | 700 Kbps 7680 15616 21525 1109 | 2 Mbps 7680 7680 7680 1110 | 1111 | P23、 1112 | 1113 | a)考虑一种分发方案,其中服务器以$u_s/N$的速率并行地向每个客户端发送文件,注意此速率低于客户端的每个下载速率,因为假设我们$u_s/N≤d_{min}$。因此,每个客户端也可以以$u_s/N$的速率接收,因为每个客户端以$u_s/N$的速率接收,每个客户端接收整个文件的时间是$F/(u_s/N)=NF/u_s$。由于所有客户端都在$NF/u_s$中接收文件,所以总的分发时间也是$NF/u_s$。 1114 | 1115 | b)考虑一种分发方案,其中服务器并行地向每个客户端发送文件,速率为$d_{min}$。注意,聚合速率N $d_{min}$小于服务器的链接速率我们,因为假设我们$u_s/N≥d_{min}$。由于每个客户端以$d_{min}$的速率接收,每个客户端接收整个文件的时间是$F/d_{min}$。因为所有客户端都在这段时间内接收文件,所以整个分发时间也是$F/d_{min}$。 1116 | 1117 | c)从2.6条我们知道 1118 | 1119 | $D_{CS}>=max\{NF/u_s,F/d_{min}\}$ 1120 | 1121 | 假设$u_s/N<=d_{min}$。那么我们可以从上面的等式得到 1122 | 1123 | $D_{CS}>=NF/u_s$ 1124 | 1125 | 但是我们从(a)可以得到$D_{CS}<=NF/u_s$。 1126 | 1127 | 那么可以得到$D_{CS}=F/d_{min} 当u_s/N>=d_{min}$ 1128 | 1129 | P24、 1130 | 1131 | a)定义u=u1+u2+....+uN。假设$u_s<=(u_s+u)/N$ 1132 | 1133 | 将文件划分为N个部分,第i部分具有大小$(u_i/u)F$。服务器传输第i部分对等i的速率$r_i=(u_i/u)u_s$。请注意,$r_1+r_2+...+r_N=u_s$,聚合服务器速率不超过服务器的链路速率。也具有每个对等I以速率$r_i$将其接收的比特转发到N-1个对等点中的每一个。最大对等I的转发速率是$(N-1)r_i$。我们有 1134 | 1135 | $(N-1)r_i=(N-1)(u_su_i)/u<=u_i$ 1136 | 1137 | 其中最后一个不等式来自上一个方程。因此,节点I的总转发速率小于它的链路速率UI。 1138 | 1139 | 在此分配方案中,对等点i以合计速率接收比特 1140 | 1141 | $r_{i}+\sum_{j<>i}{r_j}=u_s$ 1142 | 1143 | 因此,每个对等点接收$F/u_s$中的文件。 1144 | 1145 | b)定义u=u1+u2+....+uN。假设$u_s>=(u_s+u)/N$ 1146 | 1147 | 定义$r_i=u_i/(N-1)$ 1148 | 1149 | $r_{N+1}=(u_s-u/(N-1))/N$ 1150 | 1151 | 在此分发方案中,文件被分成N+1个部分。服务器发送位从第i部分到第i个对等点(i=1,....N)在速率$r_i$。每个对等i转发该比特以速率$r_i$到达其它N-1对等体中的每一个。此外,服务器发送位来自$(N+1)^{st}$部分以速率$r_{N+1}$到达N个对等端中的每一个。对等端不转发来自$(n+1)^{st}$部分。 1152 | 1153 | 服务器的聚合发送速率 1154 | 1155 | $r_1+…+r_N+Nr_{N+1}=u/(N-1)+u_s–u/(N-1)=u_s$ 1156 | 1157 | 因此,服务器的发送速率不超过其链路速率。第一对等点的总发送速率为$N-1)r_i=u_i$ 1158 | 1159 | 因此,每个对等点的发送速率不超过其链路速率。在此分配方案中,对等点i以合计速率接收比特。 1160 | 1161 | $r_i+r_{N+1}+\sum_{j<>i}{rj}=u/(N-1)+(u_s-u/(N-1))/N=(u_s+u)/N$ 1162 | 1163 | 因此,每个对等端接收$NF/(u_s+u)$中的文件。 1164 | 1165 | (为了简单起见,我们忽略了为i=1,...,n1。我们现在在这里提供了。假设$\delta=(u_s+u)/N$为分配时间。对于i=1,...,n,第i个文件部分是$F_i=r_i \delta$比特。$(N+1)^{st}$文件部分是$F_{N+1}=r_{N+1} \delta$(比特)。它是直接显示$F_1+...F_{N+1}=F.) 1166 | 1167 | c)本部的解决办法与第17(C)条的解决办法相似。我们从2.6节中得知 1168 | 1169 | $D_{p2p}>=max\{F/u_s,NF/(u_s+u)\}$ 1170 | 1171 | 结合了a)和b)给出了预期的结果。 1172 | 1173 | P25、在覆盖网络中存在N个节点。n(n-1)/2边。 1174 | 1175 | P26、是的。只要有足够的对等人留在蜂群中,他的第一个索赔就可能是可能的。足够长的时间。Bob可以总是通过乐观的非阻塞来接收数据对等端。 1176 | 1177 | 他的第二次索赔也是真实的。他可以在每个主机上运行客户端,让每个客户端“免费乘坐,”并将收集的chunks从不同的主机合并为单个文件。他甚至可以编写一个小的调度程序,使不同的主机请求不同的chunks文件。这实际上是P2P网络中的一种Sybil攻击。 1178 | 1179 | P27、 1180 | 1181 | a)n文件,假设我们通过将视频版本与音频版本按质量和速率的顺序配对来进行一对一的匹配。 1182 | 1183 | b)2N个文件。 1184 | 1185 | P28、 1186 | 1187 | a)如果首先运行TCPClient,则客户端将尝试与TCP连接不存在的服务器进程。将不进行TCP连接。 1188 | 1189 | b)UDPClient不与服务器建立TCP连接。因此,一切如果第一次运行udpClient,则应正常工作,然后运行udpServer,然后键入一些输入键盘。 1190 | 1191 | c)如果使用不同的端口号,则客户端将尝试建立TCP连接错误的进程或不存在的进程。会出现错误。 1192 | 1193 | P29、在原始程序中,UDPClient在创建端口时未指定端口号插座。在这种情况下,代码允许底层操作系统选择端口号。使用附加行,在执行UDPClient时,使用端口创建UDP套接字5432号。 1194 | 1195 | UDPServer需要知道客户端端口号,以便它可以将数据包发回给正确的客户端套接字。查看UDPServer,我们看到客户端端口号不“硬连线”进入服务器代码;相反,UDPServer确定客户端端口号通过解开从客户端接收的数据报。因此,UDP服务器将与任何客户端端口号,包括5432。因此,UDPServer不需要已修改。 1196 | 1197 | 前: 1198 | 1199 | 客户端套接字=X(由OS选择) 1200 | 1201 | 服务器套接字=9876 1202 | 1203 | 在以下情况下: 1204 | 1205 | 客户端套接字=5432 1206 | 1207 | P30、是的,您可以配置许多浏览器来打开到网站的多个同时连接。优点是您可以更快地下载该文件。缺点是您可能占用了带宽,从而大大减缓了共享相同物理链接的其他用户的下载速度。 1208 | 1209 | P31、对于远程登录(telnet和ssh)之类的应用程序,面向字节流的协议是非常自然的,因为应用程序中没有消息边界的概念。当用户键入一个字符时,我们只需将该字符放到TCP连接中即可。在其他应用程序中,我们可能会发送一系列在它们之间具有固有边界的消息。例如,当一个SMTP邮件服务器向另一个SMTP邮件服务器连续发送多个电子邮件时。由于TCP没有指示边界的机制,所以应用程序必须自己添加指示,以便应用程序的接收方能够区分一条消息和另一条消息。如果将每条消息放入一个不同的udp段中,则接收端将能够在没有任何指示的情况下,区分各种讯息、申请。 1210 | 1211 | P32、要创建Web服务器,我们需要在主机上运行Web服务器软件。许多供应商出售Web服务器软件。然而,当今最流行的Web服务器软件是Apache,它是开放的源并且是自由的。多年来,它一直受到开源社区的高度优化。 1212 | 1213 | [Back to Index](#目录) 1214 | 1215 |
1216 | 1217 | # 第三章 1218 | 1219 | ## 复习题3 1220 | 1221 | R1、 1222 | 1223 | a)将此协议称为简单传输协议(STP)。在发送方,STP从发送进程接受不超过1196字节的数据块、目标主机地址和目标端口号。STP在每个块中添加一个4字节的头,并将目标进程的端口号放在这个标头中。然后,STP将目标主机地址和结果段提供给网络层。网络层将段传送到目标主机上的STP。STP然后检查段中的端口号,从段中提取数据,并将数据传递给由端口号标识的进程。 1224 | 1225 | b)段现在有两个头字段:源端口字段和目标端口字段。在发送方,STP接受不超过1192字节的数据块、目标主机地址、源端口号和目标端口号。STP创建一个段,其中包含应用程序数据、源端口号和目标端口号。然后,它将段和目标主机地址提供给网络层。在接收到段后,接收主机上的STP给出应用程序的应用程序数据和源端口号。 1226 | 1227 | c)不,传输层不需要在核心中做任何事情;传输层“生命”在最终系统中。 1228 | 1229 | R2、 1230 | 1231 | a)在寄信时,家庭成员必须将信件本身、目的地住所的地址和收件人的姓名交给代表。委托将收件人的姓名清楚地写在信函的顶部。然后,委托将信放入信封中,并在信封上写入目标住宅的地址。然后,代表将这封信交给地球的邮件服务部门。在接收方,委托收到来自邮件服务的信函,从信封中取出信件,并记下在信件顶部写的收件人姓名。然后,代表将这封信交给具有此名称的家庭成员。 1232 | 1233 | b).不,邮件服务部门不必打开信封;它只检查信封上的地址。 1234 | 1235 | R3、源端口号y和目标端口号x。 1236 | 1237 | R4、应用程序开发人员可能不希望其应用程序使用TCP的拥塞控制,这会在拥塞时限制应用程序的发送速率。通常,IP电话和IP视频会议应用程序的设计者选择在UDP上运行他们的应用程序,因为他们希望避免TCP的拥塞控制。另外,有些应用程序不需要TCP提供的可靠数据传输。 1238 | 1239 | R5、由于大多数防火墙都被配置为阻止UDP通信,因此使用TCP进行视频和语音通信可以让通信通过防火墙。 1240 | 1241 | R6、是的。应用程序开发人员可以将可靠的数据传输放到应用层中协议。然而,这需要大量的工作和调试。 1242 | 1243 | R7、是的,两个段将指向同一个套接字。对于每个接收到的段,在套接字接口上,操作系统将为进程提供IP地址,以确定各个段的来源。 1244 | 1245 | R8、对于每个持久连接,Web服务器创建一个单独的“”连接插座“”。每个连接套接字被标识为具有四个元组:(源IP地址,源端口号、目标IP地址、目标端口号)。当主机C接收和IP数据报,它检查数据报/段中的这四个字段确定哪个套接字应该通过TCP段的有效负载。因此,来自A和B的请求通过不同的套接字。这两个参数的标识符用于目标端口的套接字具有80;但是,这些套接字的标识符源IP地址的不同值。与UDP不同,传输层通过时TCP段对应用程序进程的有效负载,它不指定源IP地址,因为这是由套接字标识符隐式指定的。 1246 | 1247 | R9、接收机需要序列号来确定到达的数据包是包含新数据还是是重传。 1248 | 1249 | R10、处理通道中的损失。如果在该分组的计时器持续时间内未接收到发送分组的ACK,则假定该分组(或其ACK或NACK)已丢失。因此,分组被重传。 1250 | 1251 | R11、在RDT 3.0协议中仍然需要计时器。如果知道往返时间,那么唯一的优势是,发送方肯定知道数据包或数据包的ACK(或Nack)已经丢失,而实际情况是,在计时器过期后,ACK(或Nack)可能仍在发送方的途中。然而,要检测丢失,对于每个包,一个持续时间不变的定时器仍然需要在发送者。 1252 | 1253 | R12、 1254 | 1255 | a)丢包造成一段时间后,所有五个包都被重传。 1256 | 1257 | b)由于Go-Back-N使用累积数据,ACK的丢失没有触发任何重传承认。 1258 | 1259 | c)发送方无法发送第六个分组,因为发送窗口大小固定为5。 1260 | 1261 | R13、 1262 | 1263 | a)当分组丢失时,接收的4个分组被缓冲接收器。完成后超时,发送方重新发送丢失的数据包,接收方传送缓冲的数据包数据包以正确的顺序应用。 1264 | 1265 | b)接收器为丢失的ACK发送了重复ACK。 1266 | 1267 | c)发送窗口大小固定为5时,发送方无法发送第六数据包当分组丢失时,返回-N重传所有的分组,而选择性地重传所有的分组。仅重发丢失的数据包。在丢失确认的情况下,选择性重复发送重复ACK,并作为返回-N使用的累积确认,不需要重复ACK。 1268 | 1269 | R14、 1270 | 1271 | a)假 1272 | 1273 | b)假 1274 | 1275 | c)真 1276 | 1277 | d)假 1278 | 1279 | e)真 1280 | 1281 | f)假 1282 | 1283 | g)假 1284 | 1285 | R15、 1286 | 1287 | a) 20 bytes 1288 | 1289 | b) ack number = 90 1290 | 1291 | R16、3段。第一段:SEQ=43,ack=80;第二段:SEQ=80,ack=44;第三段;seq=44,ack=81 1292 | 1293 | R17、R/2 1294 | 1295 | R18、false,它设置为拥塞窗口的当前值的一半。 1296 | 1297 | R19、让X=RTTTFE,Y=RTTTBE和ST=搜索时间。考虑以下时序图。 1298 | 1299 | ![avater](./img/18.png) 1300 | 1301 | 客户端和服务器(后端)之间使用代理(前端)之间的TCP数据包交换图。 1302 | 1303 | 从这个图中我们可以看到,总时间是4XYST=4*RTTFE RTTBE搜索时间。 1304 | 1305 | [Back to Index](#目录) 1306 | 1307 |
1308 | 1309 | ## 问题3 1310 | 1311 | R1、 1312 | 1313 | ||source port numbers | destination port numbers | 1314 | |---|---|---| 1315 | |a) A→S| 467 |23 | 1316 | |b) B→S |513 |23 | 1317 | |c) S→A |23 |467 | 1318 | |d) S→B |23| 513 | 1319 | 1320 | e) Yes. 1321 | 1322 | f) No. 1323 | 1324 | P2、假设主机A、B和C的IP地址分别为a、b、c。(请注意,a,b, c各不相同)。 1325 | 1326 | 主机A:源端口=80,源IP地址=b,DEST端口=26145,DESTIP地址=a 1327 | 1328 | 到主机C,左进程:源端口=80,源IP地址=b,DEST端口=7532,DESTIP 地址=c 1329 | 1330 | 到主机C,右进程:源端口=80,源IP地址=b,DEST端口=26145,DEST IP地址=c。 1331 | 1332 | P3、注意,如果溢出,请绕一圈。 1333 | ``` 1334 | 1 0 1 1 1 0 0 1 1335 | + 0 1 1 0 0 1 1 0 1336 | ------------------ 1337 | 0 1 0 1 0 0 1 1 1338 | 1339 | 1340 | 0 1 1 1 0 1 0 0 1341 | + 1 0 1 1 1 0 0 1 1342 | ----------------- 1343 | 0 0 1 0 1 1 1 0 1344 | ``` 1345 | 补码为: 1 1 0 1 0 0 0 1 1346 | 1347 | 为了检测错误,接收方添加四个单词(三个原始单词和校验和)。如果和包含一个零,接收器知道有一个错误。所有的一位错误都会被检测到,但是两位错误可以不被检测到(例如,如果第一个单词的最后一个数字被转换为0,第二个单词的最后一个数字被转换为1)。 1348 | 1349 | P4、 1350 | 1351 | a)将这两个字节相加得到11000001。取一个人的补给量就等于00111110。 1352 | 1353 | b)把这两个字节相加,等于01000000;补码等于10111111。 1354 | 1355 | c)第一个字节=01010100;第二个字节=01101101。 1356 | 1357 | P5、不,接收方不能完全确定没有发生任何位错误。这是因为计算数据包的校验和的方式。如果包中两个16位字的对应位(相加在一起)是0和1,那么即使这些位分别翻转到1和0,和仍然保持不变。因此,接收方计算的1s补码也将是相同的。这意味着,即使存在传输错误,校验和也将进行验证。 1358 | 1359 | P6、假设发送方处于“从上面等待呼叫1”状态,而接收方(作业问题中显示的接收方)处于“从下面等待1”状态。发送方发送一个序列号为1的数据包,并转换为“等待ACK或NAK 1”,等待ACK或NAK。现在假设接收方正确地接收序列号为1的数据包,发送一个ACK,然后转换为状态“从下面等待0”,等待序列号为0的数据包。但是,ACK已损坏。当rdt2.1发送方获得损坏的ACK时,它用序列号1重新发送数据包。然而,接收方正在等待序列号为0的数据包,并且(如家务问题所示)总是在没有得到序列号为0的数据包时发送NAK。因此,发送方将始终发送一个序列号为1的数据包,而接收方将始终锁定该数据包。也不会从那个州前进。 1360 | 1361 | P7、要想最好地回答这个问题,首先考虑一下为什么我们需要序列号。我们看到发送方需要序列号,以便接收方能够判断数据包是否是已经接收到的数据包的副本。在ACK的情况下,发送方不需要这个信息(即ACK上的序列号)来判断是否检测到重复的ACK。对于rdt3.0接收器来说,一个重复的ACK是显而易见的,因为当它接收到原始ACK时,它会转换到下一个状态。重复的ACK不是发送方需要的ACK,因此被rdt3.0发送方忽略。 1362 | 1363 | P8、协议rdt3.0的发送方与协议2.2的发送方不同,因为已经添加了超时。我们已经看到,超时的引入增加了在发送方到接收方数据流中重复数据包的可能性。然而,协议rdt.2.2中的接收方已经可以处理重复的数据包。(如果接收方发送丢失的ACK,然后发送方重新传输旧数据,则RDT 2.2中的接收方重复出现)。因此,协议rdt2.2中的接收器也将作为协议rdt3.0中的接收器工作。 1364 | 1365 | P9、假设协议已经运行了一段时间。发送方处于“从上等待呼叫”状态(左上角),接收方处于“从下等待0”的状态。图1显示了损坏的数据和损坏的ACK的场景。 1366 | 1367 | ![avater](./img/19.png) 1368 | 1369 | P10、在这里,我们添加一个计时器,它的值大于已知的往返传播延迟.我们将超时事件添加到“等待ACK或NAK 0”和“等待ACK或NAK 1”状态。如果发生超时事件,则重新发送最近发送的数据包。让我们看看为什么这个协议仍将与rdt2.1接收器一起工作。 1370 | - 假设超时是由丢失的数据包引起的,即发送方到接收方通道上的数据包。在这种情况下,接收机从未接收到先前的传输,并且从接收机的角度来看,如果接收到超时重传,它看起来与接收到的原始传输完全相同。 1371 | - 假设现在一个ACK丢失了。接收器最终会在超时时重新发送数据包。但是,重传与ACK被混淆时的动作完全相同。因此,发送者的反应与损失是一样的,就像混乱的ACK一样。RDT 2.1接收器已经可以处理混淆的ACK的情况。 1372 | 1373 | P11、如果删除了该消息的发送,发送和接收侧将死锁,等待永远不会发生的事件。以下是一种场景: 1374 | - sender发送pKT0,输入“等待Ack0状态”,等待数据包返回来自接收机 1375 | - 接收器处于“从下面等待0”状态,接收到损坏的数据包来自发送方。假设它不发送任何信息,只需重新输入“等待0”处于“下”状态。 1376 | 1377 | 现在,ender正在等待来自接收机的某种类型的ACK,并且接收机等待数据包形成发送方-死锁! 1378 | 1379 | P12、该协议仍在工作,因为如果重新传输将是如果接收到错误的分组实际上已经丢失(并且从接收机的观点来看,它从不知道这些事件中的哪一个发生(如果有的话)。 1380 | 1381 | 为了解决这个问题背后的更微妙的问题,一个必须允许过早的发生超时。在这种情况下,如果分组的每个额外副本被确认并且每个副本接收的额外ACK导致要发送的当前分组的另一个额外拷贝,发送分组N的次数将随着N接近无穷大而不受限制地增加。 1382 | 1383 | P13、 1384 | 1385 | ![avater](./img/20.png) 1386 | 1387 | P14、在仅NAK协议中,只有当接收到分组x1时,接收方才检测丢包x。也就是说,接收器接收x-1,然后x-1,只有当接收到x 1时,接收器才会意识到x被忽略了。如果x的传输和x1的传输之间存在很长的延迟,那么在只使用NAK协议下,需要很长时间才能恢复x。 1388 | 1389 | 另一方面,如果数据经常被发送,那么以NAK为唯一方案的恢复可能会很快发生。此外,如果错误很少发生,那么Naks只是偶尔被发送(当需要时),并且ACK永远不会被发送--NAK中的反馈大大减少--仅在ACK的情况下才发送。 1390 | 1391 | P15、发送数据包需要12微秒(或0.012毫秒),作为1500*8/109=12微秒。为了使发送者在98%的时间里忙碌,我们必须使用util=0.98=(0.012n)/30.012或n大约2451个数据包。 1392 | 1393 | P16、是。这实际上会导致发送方向通道发送大量流水线数据。 1394 | 1395 | 是。这里有一个潜在的问题。如果数据段丢失在通道中,那么RDT 3.0的发送方将不会重新发送这些段,除非应用程序中有一些从丢失中恢复的额外机制。 1396 | 1397 | P17、 1398 | 1399 | ![avater](./img/21.png) 1400 | 1401 | P18、在我们的解决方案中,发送方将等待接收到一对消息(seqnum和seqnum 1)的ACK,然后再转到下一对消息。数据包有一个数据字段,并携带两位序列号.也就是说,有效序列号为0、1、2和3。(注意:您应该考虑为什么1位序列号空间0,1在下面的解决方案中不能工作。)ACK消息携带他们正在确认的数据包的序列号。 1402 | 1403 | 发送方和接收方的FSM如图2所示。请注意,发送方状态记录:(I)当前对未收到ACK,(Ii)接收到用于seqnum(仅)的ACK,或接收到用于seqnum 1的ACK(仅)。在这个图中,我们假设seqnum最初为0,并且发送者已经发送了第一个两个数据消息(获取要进行的事情)。发送方和接收方的时间线跟踪从丢失的数据包中恢复如下所示: 1404 | 1405 | ![avater](./img/22.png) 1406 | 1407 | ![avater](./img/23.png) 1408 | 1409 | 图2:问题的发送方和接收方(3.18) 1410 | 1411 | |Sender |Receiver| 1412 | |---|---| 1413 | |make pair (0,1) || 1414 | |send packet 0 || 1415 | |Packet 0 drops || 1416 | |send packet 1 || 1417 | ||receive packet 1 | 1418 | ||buffer packet 1 | 1419 | ||send ACK 1 | 1420 | |receive ACK 1 || 1421 | |(timeout) || 1422 | |resend packet 0 || 1423 | ||receive packet 0 | 1424 | ||deliver pair (0,1) | 1425 | ||send ACK 0 | 1426 | |receive ACK 0|| 1427 | 1428 | P19、这个问题是简单停止和等待协议(rdt3.0)上的一个变化。由于信道可能丢失消息,并且由于发送方可能重新发送其中一个接收方已经接收到的消息(要么由于过早超时,要么由于另一个接收方尚未正确接收数据),因此需要序列号。在rdt3.0中,0位序列号在这里就足够了。 1429 | 1430 | 发送方和接收方FSM如图3所示。在此问题中,发送方状态指示发送方是否从B(仅)、从C(仅)或从非C或B接收到ACK。接收方状态指示接收方正在等待哪个序列号。 1431 | 1432 | ![avater](./img/24.png) 1433 | 1434 | ![avater](./img/25.png) 1435 | 1436 | P20、 1437 | 1438 | ![avater](./img/26.png) 1439 | 1440 | 图4:3.18的接收端FSM 1441 | 1442 | 发送方FSM完全相同,如图3.15中的文本所示 1443 | 1444 | P21、由于A-to-B信道可能丢失请求消息,A将需要超时,并且重新发送其请求消息(能够从丢失中恢复)。因为信道延迟是可变的且unknown,可能A将发送重复的请求(即,重新发送已经被b)接收到的请求消息。为了能够检测重复请求消息,协议将使用序列号。1位序列数量将足以用于停止和等待类型的请求/响应协议。A(请求者)有4个状态: 1445 | 1446 | - “从上面等待请求0。”在这里,请求者正在等待一个呼叫以请求数据单元。当接收到上述请求时,它发送一个请求消息R0,到B,启动计时器,并向“等待”过渡D0”状态。当在“等待来自以上“状态”的请求0,A忽略从B收到的任何东西。 1447 | - “等D0”在这里,请求者正在等待来自B的D0数据消息。定时器总是在这种状态下运行。如果计时器过期,A将发送另一条R0消息,重新启动定时器并保持此状态。如果从B接收到D0消息,A将停止时间并传输到“从上面等待请求1”状态。如果A在此状态下接收D1数据消息,则忽略它。 1448 | - “等待上面的请求1。”在这里,请求者再次等待来自上面的呼叫来请求一个数据单元。当它从上面接收到一个请求时,它向B发送一个请求消息R1,启动一个定时器并转换到“等待D1”状态。当处于“等待上述请求1”状态时,A会忽略从B接收的任何内容。 1449 | - “等待D1”。在这里,请求者正在等待来自B的d1数据消息。定时器总是在这种状态下运行。如果计时器过期,A将发送另一条R1消息,重新启动定时器并保持此状态。如果从B接收到D1消息,A将停止定时器并传输到“从上面等待请求0”状态。如果A在此状态下接收到D0数据消息,则忽略它。 1450 | 1451 | 数据供应商(B)仅有两种状态: 1452 | - 在此状态下的“发送D0。”,B继续响应收到的R0消息。发送D0,然后保持在该状态。如果B收到R1消息,则它知道其D0消息已正确接收。因此它丢弃该D0数据(由于它已在另一侧收到),然后过渡到“发送D1”状态,其中它将使用d1来发送下一个请求的数据块。 1453 | - “发送D1”在这种状态下,B继续通过发送D1来响应接收到的R1消息,然后保持这种状态。如果B接收到R1消息,则它知道其D1消息已被正确接收,从而传输到“发送D1”状态。 1454 | 1455 | P22、 1456 | 1457 | a)这里我们的窗口大小为n=3。假设接收机接收到分组k-1,并且已经将该分组和所有其它之前的分组进行了分组。如果所有这些ACK都已被由发送方接收,则发送方的窗口为[k,kn-1]。假设下一个没有在发送方接收到ACK。在第二种情况下,发送方S窗口包含k-1和n个分组,并包括k-1。因此,发送者的窗口是这样的,[K-N,K-1]。通过这些参数,“发件人”窗口的大小为3,并开始在范围[K-N,K]的某处。 1458 | 1459 | b)如果接收机正在等待分组k,则它已经接收(和被处理)分组k-1和N-1个分组。如果尚未收到这些N个ACK中的任何一个,发送方,然后可以传播具有[k-n,k-1]值的ACK消息由于发送方发送了数据包[k-n,k-1],所以必须是这样的情况:发送方已经接收到用于k-n-1的ACK。一旦接收机发送了ACK,对于k-n-1,它将永远不会发送小于k-n-1的ACK。因此,飞行中的ACK值的范围可以从k-n-1到k-1。 1460 | 1461 | P23、为了避免图3.27中的场景,我们希望避免接收方窗口的前缘(即具有“最高”序列号的窗口)在序列号空间中环绕,并与后面的边缘(发送方窗口中具有“最低”序列号的窗口)重叠。也就是说,序列号空间必须足够大,以适应整个接收方窗口和整个发送方窗口,而不存在这种重叠条件。因此-我们需要确定接收方和发送方窗口在任何给定时间都可以覆盖多大的序列号。 1462 | 1463 | 假设接收者等待的最低序列号是包m,在这种情况下,它的窗口是[m,mw-1],它已经接收到(并加进)包m-1和之前的w-1包,其中w是窗口的大小。如果发送方尚未接收到这些wACK中的任何一个,则值为[m-w,m-1]的ACK消息可能仍在传播。如果发送方没有收到带有这些ACK号的ACK,那么发送方的窗口将是[mw,m-1]。 1464 | 1465 | 因此,发送方窗口的下边缘为m-w,接收者窗口的前缘为mw-1。为了使接收方窗口的前缘不与发送方窗口的后缘重叠,序列号空间必须因此,足够大以容纳2w序列号。也就是说,序列号空间必须至少是窗口大小k2w的两倍。 1466 | 1467 | P24、 1468 | 1469 | a)真。假设发送方具有3的窗口大小并且在T0发送分组1、2、3。在T1(T1/T0)接收机ACK1、2、3。在t2(t2,t1)发送方超时,并且重新连接1、2、3。在t3,接收机接收重复并重新确认1、2,3、在T4,发送方接收到在T1发送的接收机并使其前进的ACK。窗口至4、5、6。在t5,发送方接收在T2发送的接收机的ACK1、2、3。这些棚屋在窗户外面。 1470 | 1471 | b)真。实质上与(a)中相同的情形。 1472 | 1473 | c)真。 1474 | 1475 | d)真。请注意,具有1、SR、GBN和交替位协议的窗口大小功能等同。窗口大小1排除了无序分组的可能性(在窗口内)。累积ACK仅仅是普通ACK,这种情况,因为它只能指窗口内的单个分组。 1476 | 1477 | P25、 1478 | 1479 | a)考虑在传输协议上发送应用消息。使用TCP,应用程序将数据写入连接发送缓冲区,TCP将抓取字节必须在TCP段中放置一个消息;TCP可能会或多或少地发送消息而不是在段中的单个消息。另一方面,UDP封装在无论应用程序给出什么,都会分段;因此,如果应用程序提供UDP应用消息,此消息将是UDP段的有效负载。因此,对于UDP,应用程序对数据段中的数据进行了更多控制。 1480 | 1481 | b)由于流量控制和拥塞控制,TCP由于流量控制和拥塞控制,可能会有显著的延迟从应用程序向其发送缓冲器写入数据直到数据被指定给网络层。UDP由于流控制而没有延迟,拥塞控制。 1482 | 1483 | P26、共有$2^{32}= 4294967296$个可能的序列。 1484 | 1485 | a)序列号不随每个段增加一个。相反,它会增加发送的数据字节数。因此,MSS的大小是无关的--从A到B发送的最大大小文件就是可以表示为$2^{32}≈4.19$GBytes的字节数。 1486 | 1487 | (B)分段数为$\left [ \frac{2^{32}}{536} \right ]=8012999$.66字节的标头添加到每个段中,总共生成528857934字节的标头。传输的字节总数为$2^{32}+528857934=4.824\times10^9$字节。因此,在155~Mbps链路上传输文件需要249秒。 1488 | 1489 | P27、 1490 | 1491 | a)在从主机A到B的第二段中,序列号为207,源端口号为302,目的端口号为80。 1492 | 1493 | b)如果所述第一段在所述第二到达段之前到达,则在所述第一到达段的确认中,所述确认号为207,所述源端口号为80,所述目的端口号为302。 1494 | 1495 | c)如果第二段到达第一段之前,在第一个到达段的确认中,确认号为127,表示它仍在等待字节127和以后。d) 1496 | 1497 | d) 1498 | 1499 | ![avater](./img/27.png) 1500 | 1501 | P28、由于链路容量只有100 Mbps,所以主机A的发送速率最多可达100 Mbps。不过,主机A向接收缓冲区发送数据的速度比主机B从缓冲区中删除数据的速度要快。接收缓冲区的填充速率约为40 Mbps。当缓冲区已满时,主机B通过设置RcvWindow=0向主机A发送停止发送数据的信号。然后主机A停止发送,直到接收到RcvWindow>0的TCP段为止。主机A将作为RcvWindow值的函数反复停止并开始发送从主机B接收。平均而言,主机A向主机发送数据的长期速率b作为此连接的一部分,不超过60Mbps。 1502 | 1503 | P29、 1504 | 1505 | a)服务器使用特定的初始序列号(从源和目的地IP和端口的散列中获取)来抵御SYN洪水攻击。 1506 | 1507 | b)不,攻击者不能通过向目标发送和ACK数据包来创建半开放或完全打开的连接。半开连接是不可能的,因为在建立完整连接之前,使用SYNcookie的服务器不会维护任何连接的连接变量和缓冲区。为了建立完全开放的连接,攻击者应该从攻击者那里知道与(伪造的)源IP地址对应的特定初始序列号。这个序列号需要每个服务器使用的“秘密”编号。由于攻击者不知道这个秘密号码,她无法猜测初始序列号。 1508 | 1509 | c)不,服务器可以简单地在计算这些初始序列号时加上时间戳,并为这些序列号选择一个存活值,即使攻击者重播,也可以丢弃过期的初始序列号。 1510 | 1511 | P30、 1512 | 1513 | a)如果超时值是固定的,则发送方可能会过早超时。因此,一些包即使没有丢失也被重新传输. 1514 | 1515 | b)如果估计超时值(就像TCP所做的那样),那么增加缓冲区大小肯定有助于提高该路由器的吞吐量。但可能有一个潜在的问题。排队延迟可能非常大,类似于场景1中所示。 1516 | 1517 | P31、 1518 | 1519 | DevRTT = (1- beta) * DevRTT + beta * | SampleRTT - EstimatedRTT | 1520 | EstimatedRTT = (1-alpha) * EstimatedRTT + alpha * SampleRTT 1521 | TimeoutInterval = EstimatedRTT + 4 * DevRTT 1522 | After obtaining first SampleRTT 106ms: 1523 | DevRTT = 0.75*5 + 0.25 * | 106 - 100 | = 5.25ms 1524 | EstimatedRTT = 0.875 * 100 + 0.125 * 106 = 100.75 ms 1525 | TimeoutInterval = 100.75+4*5.25 = 121.75 ms 1526 | After obtaining 120ms: 1527 | DevRTT = 0.75*5.25 + 0.25 * | 120 – 100.75 | = 8.75 ms 1528 | EstimatedRTT = 0.875 * 100.75 + 0.125 * 120 = 103.16 ms 1529 | 1530 | TimeoutInterval = 103.16+4*8.75 = 138.16 ms 1531 | After obtaining 140ms: 1532 | DevRTT = 0.75*8.75 + 0.25 * | 140 – 103.16 | = 15.77 ms 1533 | EstimatedRTT = 0.875 * 103.16 + 0.125 * 140 = 107.76 ms 1534 | TimeoutInterval = 107.76+4*15.77 = 170.84 ms 1535 | After obtaining 90ms: 1536 | DevRTT = 0.75*15.77 + 0.25 * | 90 – 107.76 | = 16.27 ms 1537 | EstimatedRTT = 0.875 * 107.76 + 0.125 * 90 = 105.54 ms 1538 | TimeoutInterval = 105.54+4*16.27 =170.62 ms 1539 | After obtaining 115ms: 1540 | DevRTT = 0.75*16.27 + 0.25 * | 115 – 105.54 | = 14.57 ms 1541 | EstimatedRTT = 0.875 * 105.54 + 0.125 * 115 = 106.72 ms 1542 | TimeoutInterval = 106.72+4*14.57 =165 ms 1543 | 1544 | P32、 1545 | 1546 | a)$EstimatedRTT^{(n)}$表示第n个样本后估计的RTT值。 1547 | 1548 | $EstimatedRTT^{(4)}=xSampleRTT_1+(1-x)[xSampleRTT_2+(1-x)[xSampleRTT_3+(1-x)SampleRTT_4]]=xSampleRTT_1+(1-x)xSampleRTT_2+(1-x)^2xSampleRTT_3+(1-x)^3xSampleRTT_4$ 1549 | 1550 | b)$EstimatedRTT^{(n)}=x\sum_{j=1}^{n-1}(1-x)^{j-1}SampleRTT_j+(1-x)^{n-1}SampleRTT_n$ 1551 | 1552 | c)$EstimatedRTT^{(\infty)}=\frac{x}{1-x}\sum_{j=1}^{n-1}(1-x)^{j}SampleRTT_j=\frac{1}{9}\sum_{j=1}^{\infty}\cdot9^jSampleRTT_j$ 1553 | 1554 | 赋予过去样本的权重呈指数衰减。 1555 | 1556 | P33、让我们来看看如果TCP为重新传输的段度量SampleRTT会发生什么错误。假设源发送数据包P1,P1的计时器过期,然后源发送P2,即同一数据包的新副本。此外,假设源度量P2(重发数据包)的SampleRTT。最后,假设在发送P2后不久,对P1的确认到达。源将错误地将此确认视为P2的确认,并计算不正确的SampleRTT值。 1557 | 1558 | 让我们看看如果TCP为重新传输的段度量SampleRTT,可能会发生什么错误。假设源发送数据包P1,P1的计时器过期,然后源发送P2,即同一数据包的新副本。此外,假设源度量P2(重发数据包)的SampleRTT。最后,假设在发送P2后不久,对P1的确认到达。源将错误地将此确认视为P2的确认,并计算不正确的SampleRTT值。 1559 | 1560 | P34、在任何给定的时间t,sendBase-1是发送方知道的最后一个字节的序列号,发送方知道该字节已在接收方正确地、有序地接收到。如果管道中有确认,则接收方在时间t处实际接收的最后一个字节(正确和有序)可能更大。因此 1561 | 1562 | SendBase-1<=LastByteRcvd 1563 | 1564 | P35、当在时间t,发送者接收具有值y的确认时,发送者知道确保接收器接收到所有通过Y-1的所有信息。实际最后一个字节如果是,则在时间t处的接收器处接收(正确地和有序地)可以是更大的。SendBase或在管道中是否有其他确认。因此, 1565 | 1566 | Y-1<=LastByteVCD 1567 | 1568 | P36、假设分组N、N1和N2被发送,并且分组N被接收和确认。如果分组N1和N2沿着端到端路径(即,在顺序N2,N1),则分组N_2的接收将为N生成重复ACK,并且在仅等待第二重复ACK的策略下触发重传用于重传。通过等待三重重复ACK,必须是两个假设分组N、N1和N2被发送的情况,并且分组N被接收和确认。如果分组N1和N2沿着端到端路径(即,在顺序N2,N1),则分组N_2的接收将为N生成重复ACK,并且在仅等待第二重复ACK的策略下触发重传用于重传。通过等待三重重复ACK,必须在正确接收到分组N之后的TWT的情况,而没有接收到N1。设计者三重重复ACK方案可能认为等待两个数据包(而非等待1个数据包)是在需要时触发快速重传之间的正确权衡,但不在分组重新排序的情况下提前重传。 1569 | 1570 | P37、 1571 | 1572 | a)GOBACKN:A总共发送9个段。它们最初被发送段1、2、3、4、5和随后重新发送段2、3、4和5。B发送8个ACK。它们是4个带有序号1和4个ACK的ACK序列号2、3、4和5。选择性重复:A总共发送6个段。它们最初被发送段1、2、3、4、5和随后重新发送段2。B派5个ACK。它们是序列号1、3、4、5的4个ACK。有一个人序列号为2的ACK。TCP:A总共发送6个段。它们最初被发送段1、2、3、4、5和随后重新发送段2。B派5个ACK。它们是具有序列号2的4个ACK。有一个ACK序列号6。请注意,TCP始终发送带有预期序列的ACK编号。 1573 | 1574 | b)TCP。这是因为TCP使用快速重传而不等待,直到超时。 1575 | 1576 | P38、如果到达率超过图3.46(b)中的R/2,则到达的总到达速率队列超过队列的容量,导致由于到达速率而导致的损失增加增加。当到达速率等于R/2时,每3个分组中的1个离开。队列是重传。随着损失的增加,甚至更大的分组部分离开队列将是重传。假定最大偏离率其中一个会话的队列是R/2,并且假定第三或更多个会话将随着到达速率的增加而传输,成功递送数据的吞吐量可以不会增加到外面。在类似的推理之后,如果有一半的数据包离开了队列是重传,每个会话的输出分组的最大速率是R/2,则其最大值为(R/2)/2或R/4。 1577 | 1578 | P40、 1579 | 1580 | a)TCPSlowStart以[1,6]和[23,26]的间隔运行 1581 | 1582 | b)TCP拥塞避免以间隔[6,16]和[17,22]运行 1583 | 1584 | c)第16次传输循环后,数据包丢失由三重复制识别ACK。如果超时,则拥塞窗口大小将下降到1。 1585 | 1586 | d)第22次传输循环后,由于超时而检测到段丢失,因此,拥塞窗口大小设置为1。 1587 | 1588 | e)阈值最初是32,因为它处于慢启动停止的窗口大小,并且拥塞避免开始。 1589 | 1590 | f)当分组丢失时阈值被设置为拥塞窗口的值的一半。已检测到。当在传输循环16期间检测到丢失时,拥塞Windows的大小为42。因此在第18传输循环期间阈值为21。 1591 | 1592 | g)当分组丢失时阈值被设置为拥塞窗口的值的一半。已检测到。当在传输循环22期间检测到丢失时,拥塞Windows的大小为29。因此,阈值为14(取下下限为14.5)。24号传动轮。 1593 | 1594 | h)在第1次传输循环期间,数据包1被发送;数据包2-3在第2次发送中发送传输循环;数据包4-7在第3传输循环中发送;数据包8-15在第4个传输回合中发送;数据包16-31在第5个传输中发送数据包32-63在第6个传输回合中发送;数据包64-96被发送在第7次传输循环中。因此,在第7发送循环中发送分组70。 1595 | 1596 | i)阈值将设置为拥塞窗口(8)的当前值的一半。出现丢失和拥塞窗口将设置为新的阈值3MSS。因此,阈值和窗口的新值分别为4和7。 1597 | 1598 | j)阈值为21,拥塞窗口大小为1。 1599 | 1600 | k)圆形17,1个分组;圆形18,2个分组;圆形19,4个分组;圆形20,8个分组;第21轮,16个分组;第22轮,21个分组。因此,总数是52。 1601 | 1602 | P41、参见图5。在图5(a)中,线性减小与损耗之间的比率连接1和连接2与线性增加的比率相同:单位。在这种情况下情况下,吞吐量永远不会离开AB线段。在图5(b)中,连接1和连接2之间的线性减少是2:1。即,每当有丢失时,连接1将其窗口减少两倍连接2。我们认为,最终,在足够的损失和随后的增加之后,连接1的吞吐量将变为0,并且将分配全部链路带宽连接2。 1603 | 1604 | ![avater](./img/28.png) 1605 | 1606 | P42、如果tcp是一个停止和等待协议,那么超时间隔加倍就足够作为拥塞控制机制了。然而,TCP使用流水线(因此不是停止和等待协议),它允许发送方有多个未确认的未确认段。超时间隔的加倍不会阻止tcp发送者向网络发送大量第一时间传输的数据包,即使端到端路径非常拥挤。因此,当出现网络拥塞的迹象时,需要一种拥塞控制机制来阻止“从上面的应用程序接收到的数据流”。 1607 | 1608 | P43、在此问题中,由于接收器的接收,在溢出接收器中没有危险,缓冲区可以保存整个文件。而且,因为没有丢失和确认,在计时器过期之前返回,TCP拥塞控制不会限制发送方。但是,主机A中的进程不会连续将数据传递到套接字,因为发送缓冲区将快速填满。发送缓冲区已满,进程将通过以平均速率的数据或$R\ll S$ 1609 | 1610 | P43、 1611 | 1612 | a) 1 RTT增加到7 MSS,2 RTTs增加到8 MSS,3 RTTS增加到9 MSS,4 RTTs增加到10 MSS,5 RTTs增加到11 MSS,6 RTTS增加到12 MSS。 1613 | 1614 | b)在第一次发送RTT 6 MSS;在第二RTT 7 MSS发送;在第三RTT 8 MSS发送;在第四RTT 9 MSS发送;在第5 RTT MSS发送;在第六RTT MSS发送11 MSS。因此,发送时间为6 RTT,6 7 8 9 10 11=5 1 MSS。因此,我们可以说,6 RTT的平均吞吐量为(51 MSS)/(6 RTT)=8.5MSS/RTT。 1615 | 1616 | P44、 1617 | 1618 | a)丢失率L是在分组数量上丢失的分组的数目的比率,已发送。在一个周期中,丢失了1个数据包。在一个周期中发送的分组的数目 1619 | 1620 | $\frac{W}{2}+\left ( \frac{W}{2} +1\right )+...+W=\sum_{n=0}^{W/2}(\frac{W}{2}+n)=\left ( \frac{W}{2}+1 \right )\frac{W}{2}+\frac{W/2(W/2+1)}{2}=\frac{W^2}{4}+\frac{W}{2}+\frac{W^2}{8}+\frac{W}{4}=\frac{3}{8}W^2+\frac{3}{4}W$ 1621 | 1622 | 因此,损失率是: 1623 | 1624 | $\frac{1}{\frac{3}{8}W^2+\frac{3}{4}W}$ 1625 | 1626 | b)如果W足够大,$\frac{3}{8}W^2\gg \frac{3}{4}W$。因此,$L\approx 8/3W^2$或者$W\approx \sqrt{\frac{8}{3L}}$ 1627 | 1628 | 因此可以有 1629 | 1630 | 平均传输速率:$\frac{3}{4}\sqrt{\frac{8}{3L}}\frac{MSS}{RTT}=\frac{1.22 \cdot MSS}{RTT\cdot\sqrt{L}}$ 1631 | 1632 | P46、 1633 | 1634 | a)让w表示在段中测量的最大窗口大小。然后,w*ms/RTT==10Mbps,如果最大发送速率超过链路,数据包将被丢弃容量。因此,我们拥有W*1500*8/0.15=10*10、6,然后W约为125个片段。 1635 | 1636 | (B)当拥挤窗口大小在W/2~W之间变化时,平均窗口大小为0.75W=94(上限为93.75)。平均吞吐量为94*1500*8/0.15=7.52 Mbps。 1637 | 1638 | c)当数据包丢失时,W变为W/2,即125/2=62。(125-62)*0.15=9.45秒,因为RTT的数量(此TCP连接将其窗口大小从62增加到125)为63。回想一下,每个RTT窗口的大小都会增加一个。 1639 | 1640 | P47、设w表示最大窗口大小。让S表示缓冲区大小。为了简单起见,假设TCP发送器以圆形的方式发送数据包,每个循环对应于RTT。如果窗口大小达到W,则会发生丢失。那么,发送方将其拥塞窗口大小减半,等待W/2的ACK在其开始再次发送数据段之前未完成的数据包。为了确保链路始终支持发送数据,我们需要让链路忙发送数据期间w/(2*c)(这是发送方等待ACK的时间间隔W/2未完成数据包)。因此,S/C必须不小于W/(2*C),即S>=W/2。 1641 | 1642 | 让TP表示发送器和接收器之间的单向传播延迟。当窗口大小达到最小w/2且缓冲区为空时,我们需要确保链接也在忙发送数据。因此,我们必须具有W/2/(2TP)>=C,因此,W/2>=C*2TP。 1643 | 1644 | 因此,S>=C*2TP。 1645 | 1646 | P48、 1647 | 1648 | a)让W表示最大窗口大小。当最大发送速率达到链路容量时,当数据包丢弃时,W*MSS/RTT=10 Gbps。因此,我们有W*1500*8/0.15=10*10^9,然后W=125000段。 1649 | 1650 | b)当拥塞窗口大小在W/2到W之间变化时,平均窗口大小为0.75W=93750。平均吞吐量为93750*1500*8/0.1=7.5Gbps。 1651 | 1652 | c)93750/2*0.15/60=117分钟。为了加快窗口增长的速度,我们可以将窗口大小增加一个更大的值,而不是在每个RTT中只增加一个窗口大小。针对这一问题,本文提出了一些协议,如ScalableTCP或高速TCP。 1653 | 1654 | P49、当TCP的平均吞吐量B由下式给出时 1655 | 1656 | $B=\frac{1.22 \cdot MSS}{RTT \cdot \sqrt{L}}$ 1657 | 1658 | 我们知道, 1659 | 1660 | $L=(1.22\ast MSS/(B\ast RTT))^2$ 1661 | 1662 | 由于在两个连续的分组丢失之间,由TCP发送的1/L分组因此,发送方T=(1/L)*MSS/B。因此,我们发现T=B*RTT22/(1.222*ms),即T是AB. 1663 | 1664 | P50、C1与C2的主要区别在于C1的RTT仅为C2的一半。因此,C1在50毫秒后调整其窗口大小,而C2在100毫秒后调整其窗口大小。假设无论何时发生丢失事件,C1在50毫秒后接收,C2在100毫秒后接收。我们还得到了以下TCP简化模型。在每个RTT之后,连接决定是否应该增加窗口大小。对于C1,我们计算前50毫秒链路中的平均总发送速率。如果该速率超过链路容量,则假设C1检测丢失并缩小其窗口大小。但是对于C2,我们计算了前100毫秒链路中的平均总发送速率。如果该速率超过链路容量,则假设C2检测丢失并缩小其窗口大小。请注意,在最后50毫秒内的平均发送速率可能高于链路容量,但最后100毫秒内的平均发送速率小于或等于链路容量,那么在这种情况下,我们假设C1将经历丢失事件,而C2不会。 1665 | 1666 | 下表描述了基于上述假设的窗口大小和发送速率的演变。 1667 | 1668 | | |C1||C2|| 1669 | |---|---|---|---|---| 1670 | |时间(秒)|窗口大小(在下一个50毫秒内发送的段数)|平均数据发送速率(每个段)第二=窗口/0.05)|窗口尺寸(编号。第页的分段在下一个发送下100毫秒)|平均数据发送速率(段每秒,=Window/0.1)| 1671 | |0|10|200(在[0-50]秒内)|10|100(在[0-50]秒内)| 1672 | |50|5(减小窗口大小作为avg。在最后50毫秒内向链路发送的总速率为300=200 100)|100(在[50-5100]秒内)||100(在[50-5100]秒内)| 1673 | |100|2(减少了窗口大小作为AVG。总发送至最后链接50毫秒为200=100100)|40|5(减少了窗口大小作为AVG。总发送至最后链接100毫秒为250==(200100)/2+(100+100)/2|50| 1674 | |150|1(减少了窗口大小作为AVG。总发送至最后链接50毫秒为90=(4050)|20||50| 1675 | |200|1(不再减少,因为窗口大小已经是1)|20|2 (减少窗口大小作为AVG。发送总数截至2008年12月31日的链接在最后 100毫秒 80= (4020)/2 (5050)/2)|20| 1676 | |250|1(不再减少,因为窗口大小已经是1)|20||20| 1677 | |300|1(不再减少,因为窗口大小已经是1)|20|1(减少了窗口大小作为AVG。总发送至最后链接100毫秒为40==(2020)/2(2020)/2)|10| 1678 | |350|2|40||10| 1679 | |400|1|20|1|10| 1680 | |450|2|40||10| 1681 | |500|1(减少了窗口大小作为AVG。总发送上次连接到链接的速率50毫秒为50=(4010)|20|1|10| 1682 | |550| 2| 40 |10 | 1683 | |600 |1 |20| 1 |10 | 1684 | |650| 2| 40 |10 | 1685 | |700 |1| 20| 1 |10 | 1686 | |750 |2 |40 |10 | 1687 | |800 |1| 20 |1| 10 | 1688 | |850 |2 |40 |10 | 1689 | |900 |1| 20 |1| 10 | 1690 | |950 |2 |40| 10 | 1691 | |1000| 1| 20| 1| 10 | 1692 | 1693 | 基于上表,我们发现,在1000msec后,C1"s和C2"的窗口大小均为1段。 1694 | 1695 | b)在长期运行中,C1的带宽份额大约是C2的两倍,因为C1具有较短的RTT,仅是C2的一半,因此C1可以将其窗口大小调整两次,快速ASC2。如果我们看上面的表,我们可以每隔200毫秒看到一个周期,例如,850msec至1000msec(含)。在一个周期内,C1的发送速率(40204020)=120,它是由发送C2给出的三倍大(10101010)=40。 1696 | 1697 | P51、 1698 | 1699 | a)类似于上一个问题,我们可以在下表中计算它们随时间变化的窗口大小。在2200毫秒后,C1和C2的窗口大小都是相同的。 1700 | 1701 | ||C1||C2|| 1702 | |-|-|-|-|-| 1703 | |时间(秒)|窗口大小在下一个100毫秒内发送的段数量|数据发送速度(每秒分段=Window/0.1)|窗口大小在下一个100毫秒内发送的段)|数据发送速度(每秒分段,=Window/0.1)| 1704 | |0| 15 |150 (in [0-100]msec]| 10 |100 (in [0-100]msec) | 1705 | |100 |7| 70| 5| 50 | 1706 | |200| 3| 30| 2 |20 | 1707 | |300| 1 |10| 1 |10 | 1708 | |400 |2| 20 |2 |20 | 1709 | |500| 1 |10 |1| 10 | 1710 | |600 |2 |20 |2| 20 | 1711 | |700 |1 |10 |1 |10 | 1712 | |800 |2 |20 |2 |20 | 1713 | |900 |1 |10 |1 |10 | 1714 | |1000 |2| 20 |2| 20 | 1715 | |1100 |1 |10 |1 |10 | 1716 | |1200 |2 |20 |2| 20 | 1717 | |1300| 1 |10 |1 |10 | 1718 | |1400 |2 |20 |2| 20 | 1719 | |1500 |1 |10 |1| 10 | 1720 | |1600 |2 |20| 2 |20 | 1721 | |1700 |1 |10 |1 |10 | 1722 | |1800 |2 |20| 2 |20 | 1723 | |1900 |1 |10 |1 |10 | 1724 | |2000 |2 |20 |2| 20 | 1725 | |2100 |1| 10 |1 |10 | 1726 | |2200| 2 |20| 2| 20 | 1727 | 1728 | b)是的,这是由于TCP的AIMD算法,而且这两个连接具有相同的RTT。 1729 | 1730 | c)是的,从上表可以清楚地看出这一点。它们的最大窗口大小为2. 1731 | 1732 | d)不,这种同步将无助于提高链路利用率,因为这两个连接在最小窗口和最大窗口大小之间充当一个单一连接振荡。因此,该链接没有得到充分利用(回想一下,我们假设这个链接没有缓冲区)。中断同步的一种可能方法是在链路中添加一个有限的缓冲区,并在缓冲区溢出之前将数据包随机丢弃到缓冲区中。这将导致不同的连接在不同的时间削减其窗口大小。主动队列管理(AQM)技术有很多种,如RED(随机早期检测)、PI(比例积分AQM)、AVQ(AdaptiveVirtualQueue)和REM(随机指数标记)等。 1733 | 1734 | P52、请注意,W表示最大窗口大小。首先,我们可以找到在TCP期间间隔期间发送的段总数将其窗口大小从W/2更改为并包括W。这通过以下方式给出:S=W/2(W/2)*(1个单位)(W/2)*(1个单位)2(w/2)*(1%)3(&C)..(w/2)*(1%)kK我们发现K=log(1%)2,然后S=w*(2/1)/(2))。损耗率L由下式给出:L=1/s=(2%)/(w*(2/1))。TCP用于将其窗口大小从W/2增加到W的时间由下式给出:k*RTT=(log(1%)2)*RTT,这显然与TCP的平均吞吐量无关。注意,TCP的平均吞吐量由下式给出:b=MSS*S/((k1)*RTT)=MSS/(L*(k1)*RTT)。 1735 | 1736 | 请注意,这与具有平均吞吐量的tcp不同:$B=\frac{1.22 \cdot MSS}{RTT \cdot \sqrt{L}}$,其中L的平方根出现在分母中。 1737 | 1738 | P53、让我们假设1500字节的数据包和100ms的往返时间。从TCP吞吐量方程$B=\frac{1.22 \cdot MSS}{RTT \cdot \sqrt{L}}$ 1739 | 1740 | 我们已经有了10Gbps=22*(1500*8位)/(.1秒*SRQT(L)),或sqrt(l)=14640位/(10,9位)=0.00001464,或L=2.14*10(-10) 1741 | 1742 | P54、在t2使用cwnd和ss阈值的早期值的一个优点是,tcp将不必经历缓慢的启动和拥塞避免以提高在t1处获得的吞吐量值。使用这些值的一个缺点是它们可能不再准确。特别是,如果路径在T1和T2之间变得更加拥挤,发送方将向已经(更多)拥挤的路径发送一个大窗口的段值。 1743 | 1744 | P55、 1745 | 1746 | a)服务器将其对y的响应。 1747 | 1748 | b)服务器可以确定客户端确实在Y上。如果是在某个其他服务器上地址欺骗Y,SYNACK将被发送到地址Y,并且主机中的TCP将不发送TCPACK段。即使攻击者要发送适当定时的TCPACK段,它将不知道正确的服务器序列号(因为服务器使用随机初始序列数字。 1749 | 1750 | P56、 1751 | 1752 | a)参考下图,我们认为总延迟是 1753 | 1754 | RTTRTTS/RRTTS/RRTT12S/R=4RTT14S/R 1755 | 1756 | b)类似地,在这种情况下的延迟是:RTTRTTS/RRTTS/RRTTS/RRTT8S/R=5RTT11S/R 1757 | 1758 | c)类似地,在这种情况下的延迟是:RTTRTTs/rRTT14s/r=3RTT15s 1759 | 1760 | ![avater](./img/29.png) 1761 | 1762 | [Back to Index](#目录) 1763 | 1764 |
1765 | 1766 | # 第四章 1767 | 1768 | ## 复习题4 1769 | 1770 | R1、网络层数据包是一种数据报.路由器根据数据包的IP(第3层)地址转发数据包。链路层交换机根据分组的MAC(第2层)地址转发分组. 1771 | 1772 | R2、数据平面的主要功能是转发数据包,转发数据报从它们的输入链路到它们的输出链路。例如,数据平面S输入端口执行终止传入物理链路的物理层功能在路由器处,执行链路层功能以在另一个路由器上与链路层互操作传入链路的一侧,并在输入端口上执行查找功能。 1773 | 1774 | 控制平面的主要功能是路由,即确定数据包从源到目的地的路径。控制平面负责执行路由协议,响应连接的上下链路,与远程控制器通信,并执行管理功能。 1775 | 1776 | R3、路由和转发之间的主要区别在于转发是路由器S将分组从其输入接口传送到其输出接口的本地动作,和转发发生在非常短的时标(通常为几纳秒),并且因此通常以硬件实现。路由是指网络范围确定数据包从来源接收到的端到端路径的过程目的地。路由发生在更长时间的时标上(通常是秒),以及通常用软件实现。 1777 | 1778 | R4、路由器内的转发表的作用是保存条目以确定即将通过切换转发到达数据包的输出链路接口织物。 1779 | 1780 | R5、Internet网络层的服务模式是尽力而为的服务.使用该服务模型,无法保证按发送顺序接收数据包,无法保证其最终交付,不能保证端到端的延迟,也没有最小的带宽保证。 1781 | 1782 | R6、输入端口、交换结构和输出端口在硬件中实现,因为它们的数据报处理功能对于软件实现来说太快了。传统路由器内部的路由处理器使用软件来执行路由协议,维护路由表和附加的链路状态信息,并计算路由器的转发表。此外,SDN路由器中的路由处理器还依赖于与远程控制器通信的软件,以便接收转发表条目并将它们安装在路由器的输入端口中。 1783 | 1784 | 数据平面通常由于需要快速而在硬件中实现例如以纳秒时标处理。控制平面通常在软件并以毫秒或秒时间工作,例如用于执行路由协议、响应向上或向下的附加链路,与远程控制器通信,并执行管理功能。 1785 | 1786 | R7、利用阴影复制,在每个输入端口处本地地进行转发查找,而无需调用集中式路由处理器。这种分散的方法避免在路由器内的单个点创建查找处理瓶颈。 1787 | 1788 | R8、基于目的地的转发意味着到达路由器的数据报将仅基于数据报的最终目的地转发到输出接口。广义转发意味着除了它的最终目的地之外,其他因素当路由器确定输出时,还考虑与数据报关联数据报的接口。软件定义的网络采用广义转发,例如,转发决策可以基于数据报的TCP/UDP源或目的端口号,除了其目的IP地址之外。 1789 | 1790 | R9、路由器使用最长的前缀匹配来确定如果数据包的目标地址与转发表中的两个或多个条目匹配,数据包将被转发到哪个链路接口。也就是说,数据包将被转发到与数据包的目的地具有最长前缀匹配的链路接口。 1791 | 1792 | R10、通过存储器进行切换;通过总线进行切换;通过互连网络进行切换。只要所有分组都被转发到不同的输出端口,互连网络就可以并行地转发分组。 1793 | 1794 | R11、如果数据包到达交换矩阵的速率超过交换矩阵速率,则数据包需要在输入端口排队。如果此速率不匹配仍然存在,队列会变得更大和更大,并最终溢出输入端口缓冲区,从而导致数据包丢失。如果交换结构速度至少为N,则可以消除分组丢失输入线速度快,其中N为输入端口的数量。 1795 | 1796 | R12、假设输入和输出线路速度相同,如果数据包到达单个输出端口的速率超过线路速度,则仍可能发生丢包。如果这种速率不匹配仍然存在,队列将变得越来越大,并最终溢出输出端口缓冲区,从而导致数据包丢失。请注意,提高开关结构的速度并不能防止此问题的发生。 1797 | 1798 | R13、HOL阻塞:有时在输入端口队列中首先排队的数据包必须必须等待,因为它想要的输出端口没有可用的缓冲区空间被转发。当发生这种情况时,第一分组后面的所有分组被阻塞,即使它们的输出队列具有容纳它们的空间。发生HOL阻塞发生在输入端口处。 1799 | 1800 | R14、(本问题中的一个错误:第一个问号应改为句号)。只有FIFO才能确保所有数据包按照到达的顺序离开。 1801 | 1802 | R15、例如,携带网络管理信息的分组应当接收优先于常规用户流量。另一个示例是实时语音IP分组可能需要在非实时流量(如电子邮件)上接收优先级。 1803 | 1804 | R16、(问题中的一个错误:不同的→差异) 1805 | 1806 | 与RR,所有服务类被同等对待,也就是说,没有任何服务类比任何其他服务类具有优先级。对于WFQ,服务类被不同的对待,也就是说,每个类在任何时间间隔内都可以接收到不同的服务量。当WFQ的所有类都具有相同的服务权重时,WFQ与RR是相同的。 1807 | 1808 | R17、IP数据报中的8位协议字段包含关于目的地主机应该将段传递给哪个传输层协议的信息。 1809 | 1810 | R18、生存时间。 1811 | 1812 | R19、没有。IP报头校验和只计算IP数据包的IP报头字段的校验和,这些字段与IP数据报的传输层段部分不共享公共字节。 1813 | 1814 | R20、IP数据报片段的重新组装是在数据报的目标主机中完成的。 1815 | 1816 | R21、是。每个接口都有一个地址。 1817 | 1818 | R22、11011111 00000001 00000011 00011100. 1819 | 1820 | R23、略 1821 | 1822 | R24、8接口;3个转发表。 1823 | 1824 | R25、50%的间接费用。 1825 | 1826 | R26、通常,无线路由器包括DHCP服务器。DHCP用于为5台PC和路由器接口分配IP地址。是的,无线路由器也使用NAT,因为它只从ISP获得一个IP地址。 1827 | 1828 | R27、路由聚合意味着ISP使用单个前缀为多个网络做广告。路由聚合很有用,因为ISP可以使用这种技术向Internet的其他部分宣传ISP拥有的多个网络的单一前缀地址。 1829 | 1830 | R28、即插即用或Zeroconf协议意味着该协议能够自动配置主机的网络相关方面,以便将主机连接到网络中。 1831 | 1832 | R29、网络中的设备的私有网络地址指的是仅对该网络内的那些设备有意义。具有私有数据的数据报网络地址不应存在于较大的公共Internet中,因为私有网络地址可能由他们自己的许多网络设备使用专用网络。 1833 | 1834 | R30、IPv6具有固定长度的报头,其中不包括IPv4的大部分选项标题可以包括。即使IPv6报头包含两个128位地址(源和目标IP地址)整个报头的固定长度为40字节只有。几个领域在精神上是相似的。流量等级,有效载荷长度,下一个 IPv6的报头和跳限分别与服务类型、数据报相似长度,上层协议和在IPv4中生活的时间。 1835 | 1836 | R31、是的,因为整个IPv6数据报(包括头字段)都封装在IPv4数据报中。 1837 | 1838 | R32、转发有两个主要操作:匹配和操作。通过基于目的地的转发,路由器的匹配操作只查找待转发数据报的目标IP地址,路由器的操作操作包括将数据包发送到交换结构到指定的输出端口。使用广义转发,可以在协议栈中不同层上与不同协议相关联的多个报头字段上进行匹配,该操作可以包括将包转发到一个或多个输出端口,跨多个输出接口进行负载均衡,重写报头值(如NAT),故意阻塞/丢弃数据包(如防火墙),将数据包发送到特殊服务器以供进一步处理和操作,等等。 1839 | 1840 | R33、基于目的地的转发的转发表中的每个条目仅包含IP报头字段值和数据包的输出链路接口(匹配IP报头字段值)将被转发。流表的每个条目OpenFlow包括一组报头字段值,输入分组将匹配的一组计数器,这些计数器被更新为数据包与流表匹配条目,以及数据包与流表条目匹配时要采取的一组操作。 1841 | 1842 | R34、“匹配加动作”是指路由器或交换机试图在流表中有某些条目的包的一些报头值之间找到匹配,然后根据该匹配,路由器决定将该数据包转发到哪个接口,甚至决定对该分组进行更多的操作。在基于目的地的转发分组交换机的情况下,路由器只尝试在流表条目与到达数据包的目标IP地址之间找到匹配,并且决定将该数据包转发到哪个接口。在SDN的情况下,可以匹配许多字段,例如IP源地址、TCP源端口和源MAC地址;还可以采取许多操作,例如转发、删除和修改字段值。 1843 | 1844 | R35、可以在OpenFlow 1.0通用转发中匹配的IP数据报中的三个示例头字段是IP源地址、TCP源端口和源MAC地址。三个无法匹配的字段是:TTL字段、数据报长度字段、标头校验和(依赖于TTL字段)。 1845 | 1846 | [Back to Index](#目录) 1847 | 1848 |
1849 | 1850 | ## 问题4 1851 | 1852 | P1、 1853 | 1854 | (A)发送给主机H3的数据是通过接口3转发的 1855 | 1856 | |目标地址|链接接口| 1857 | |--|--| 1858 | |H3 |3| 1859 | 1860 | b)否,因为转发规则仅基于目标地址。 1861 | 1862 | P2、 1863 | 1864 | a)否,您只能在共享总线上一次发送一个数据包。 1865 | 1866 | b)否,如文本中所述,一次只能进行一次内存读取/写入。共享系统总线。 1867 | 1868 | c)否,在这种情况下,必须在相同的输出总线上在相同的输出总线上发送这两个数据包。同样的时间,这是不可能的。 1869 | 1870 | P3、 1871 | 1872 | a)(n-1)d 1873 | 1874 | b)(n-1)d 1875 | 1876 | c)0 1877 | 1878 | P4、所需的最小时隙数为3,调度如下。 1879 | 1880 | 插槽1:在顶部输入队列中发送X,在中间输入队列中发送Y。 1881 | 1882 | 插槽2:在中间输入队列中发送X,在底部输入队列中发送Y, 1883 | 1884 | 插槽3:在底部输入队列中发送Z。 1885 | 1886 | 实际上,基于一个非空输入队列永远不空闲的假设,第一个时隙总是由在顶部输入队列中发送X和在中间或底部输入队列中发送Y组成,而在第二个时隙中,我们总是可以多发送两个数据报,最后一个数据报可以在第三时间时隙发送。 1887 | 1888 | 注意:实际上,如果底部输入队列中的第一个数据报是X,那么最坏的情况是需要4个时隙。 1889 | 1890 | P5、 1891 | 1892 | a) 1893 | 1894 | |前缀匹配|链路接口| 1895 | |------|---| 1896 | |11100000 00 |0| 1897 | |11100000 01000000 |1| 1898 | |1110000| 2| 1899 | |11100001 1 |3| 1900 | |否则 | 3| 1901 | 1902 | b)第一个地址的前缀匹配是第5条目的:链路接口3第二个地址的前缀匹配是3nd条目:链路接口2第三个地址的前缀匹配是第4条目的:链路接口3 1903 | 1904 | P6、 1905 | 1906 | |Destination Address Range| Link Interface| 1907 | |-------------------------|---------------| 1908 | |00000000|| 1909 | |through |0| 1910 | |00111111|| 1911 | |01000000 || 1912 | |through| 1 | 1913 | |01011111|| 1914 | |01100000|| 1915 | |through| 2 | 1916 | |01111111|| 1917 | |10000000 || 1918 | |through |2 | 1919 | |10111111|| 1920 | |11000000 || 1921 | |through| 3| 1922 | |11111111|| 1923 | 1924 | 接口0的地址数量=$2^6=64$个 1925 | 1926 | 接口1的地址数量=$2^5=32$个 1927 | 1928 | 接口2的地址数量=$2^6+2^5=64+32=96$个。 1929 | 1930 | 接口3的地址数量=$2^6=64$个 1931 | 1932 | P7、 1933 | 1934 | |Destination Address Range| Link Interface| 1935 | |-------------------------|---------------| 1936 | |11000000|| 1937 | |through(32个地址) |0| 1938 | |11011111|| 1939 | |10000000 || 1940 | |through(64个地址)| 1 | 1941 | |10111111|| 1942 | |11100000|| 1943 | |through(32个地址)| 2 | 1944 | |11111111|| 1945 | |00000000 || 1946 | |through(128个地址) |3 | 1947 | |01111111|| 1948 | 1949 | P8、 1950 | 1951 | 223.1.17.0/26 1952 | 1953 | 223.1.17.128/25 1954 | 1955 | 223.1.17.192/28 1956 | 1957 | P9、 1958 | 1959 | |Destination Address |Link Interface| 1960 | |--------------------|--------------| 1961 | | 200.23.16/21 | 0 | 1962 | | 200.23.24/24 | 1 | 1963 | | 200.23.24/21 | 2 | 1964 | | otherwise | 3 | 1965 | 1966 | P10、 1967 | 1968 | |Destination Address |Link Interface | 1969 | |--------------------|---------------| 1970 | |11100000 00 (224.0/10)| 0 | 1971 | |11100000 01000000 (224.64/16)| 1 | 1972 | |1110000 (224/8)| 2 | 1973 | |11100001 1 (225.128/9) |3 | 1974 | |otherwise |3 | 1975 | 1976 | P11、任何IP地址在128.119.40.128至128.119.40.191范围内 1977 | 1978 | 四个同等大小的子网:128.119.40.64/28,128.119.40.80/28,128.119.40.96/28, 128.119.40.112/28. 1979 | 1980 | P12、从214.97.254/23开始, 可能的分配是: 1981 | 1982 | a) 子网A: 214.97.255/24 (256 addresses) 1983 | 1984 | 子网B: 214.97.254.0/25 - 214.97.254.0/29 (128-8 = 120 addresses) 1985 | 1986 | 子网C: 214.97.254.128/25 (128 addresses) 1987 | 1988 | 子网D: 214.97.254.0/31 (2 addresses) 1989 | 1990 | 子网E: 214.97.254.2/31 (2 addresses) 1991 | 1992 | 子网F: 214.97.254.4/30 (4 addresses) 1993 | 1994 | b)为了简化解决方案,假设没有数据报将路由器接口作为最终目的地。此外,标号D,E,F分别用于右上、下和左上的内部子网. 1995 | 1996 | Router 1 1997 | 1998 | |Longest Prefix Match| Outgoing Interface | 1999 | |--------------------|--------------------| 2000 | |11010110 01100001 11111111| Subnet A | 2001 | |11010110 01100001 11111110 0000000 |Subnet D | 2002 | |11010110 01100001 11111110 000001 |Subnet F| 2003 | 2004 | Router 2 2005 | 2006 | |Longest Prefix Match |Outgoing Interface | 2007 | |--------------------|--------------------| 2008 | |11010110 01100001 11111111 0000000|Subnet D| 2009 | |11010110 01100001 11111110 0|Subnet B| 2010 | |11010110 01100001 11111110 0000001| Subnet E | 2011 | 2012 | Router 3 2013 | 2014 | |Longest Prefix Match |Outgoing Interface| 2015 | |--------------------|--------------------| 2016 | |11010110 01100001 11111111 000001|Subnet F| 2017 | |11010110 01100001 11111110 0000001|Subnet E| 2018 | |11010110 01100001 11111110 1|Subnet C| 2019 | 2020 | P13、纽约大学理工学院的IP地址块为: 2021 | 2022 | NetRange:128.238.0.0-128.238.255.255 2023 | 2024 | CIDR:128.238.0.0/16 2025 | 2026 | 斯坦福大学IP地址块为: 2027 | 2028 | NetRange:171.64.0.0-171.67.255.255 2029 | 2030 | CIDR:171.64.0.0/14 2031 | 2032 | 华盛顿大学IP地址块为: 2033 | 2034 | NetRange:140.142.255.255 2035 | 2036 | CIDR:140.142.0.0/16 2037 | 2038 | 不,OWIS服务不能用于确切地确定特定IP地址的地理位置。 2039 | 2040 | www.maxmin.com用于确定纽约大学理工学院、斯坦福大学和华盛顿大学网络服务器的位置。 2041 | 2042 | 纽约大学理工学院Web服务器的位置是 2043 | 2044 | ![avater](./img/30.png) 2045 | 2046 | Web服务器斯坦福大学的位置是 2047 | 2048 | ![avater](./img/31.png) 2049 | 2050 | 麻萨诸塞大学网络服务器的位置 2051 | 2052 | ![avater](./img/32.png) 2053 | 2054 | P14、每个片段中数据字段的最大大小=680(因为有20个字节的IP报头)。因此,所需的片段数$\left \lceil \frac{2400-20}{680} \right \rceil =4$。每个片段将具有识别号422。除最后一个片段外,每个片段的大小为700个字节(包括IP报头)。最后一个数据报的大小为360字节(包括IP报头)。这4个片段的偏移量为0,85,170,255。前三个片段中的每一个都有标志=1;最后一个片段将有标志=0。 2055 | 2056 | P15、MP3文件大小=500万字节。假设数据是在TCP段中携带的,每个TCP段也有20个字节的标头。然后,每个数据报可以携带1500-40=1460字节的MP3文件。 2057 | 2058 | 需要的数据报数为$\left \lceil 2059 | \frac{5 \times 10^6}{1460} 2060 | \right \rceil$=3425。除了最后一个数据报之外,所有的数据报都是1500字节;最后的数据报是960+40=1000字节。注意,这里没有碎片--源主机不会创建大于1500个字节的数据报,并且这些数据报小于链接的MTU。 2061 | 2062 | P16、 2063 | 2064 | a) 家庭地址:192.168.1.1、192.168.1.2、192.168.1.3,路由器接口为192.168.1.4 2065 | 2066 | b) 2067 | |NAT Translation Table || 2068 | |-|-| 2069 | |WAN Side |LAN Side | 2070 | |24.34.112.235, 4000 |192.168.1.1, 3345 | 2071 | |24.34.112.235, 4001 |192.168.1.1, 3346 | 2072 | |24.34.112.235, 4002 |192.168.1.2, 3445 | 2073 | |24.34.112.235, 4003 |192.168.1.2, 3446 | 2074 | |24.34.112.235, 4004 |192.168.1.3, 3545 | 2075 | |24.34.112.235, 4005 |192.168.1.3, 3546 | 2076 | 2077 | 2078 | P17、 2079 | 2080 | a)由于所有IP数据包都发送到外部,所以我们可以使用数据包嗅探器记录NAT后面的主机生成的所有IP数据包。由于每个主机都生成一个具有序列号的IP数据包序列,并且有一个不同的(很可能是从一个大空间中随机选择的)初始标识号(ID),因此我们可以将具有连续ID的IP数据包分组到一个集群中。集群的数量是NAT背后的主机数量。 2081 | 2082 | 有关更多实用算法,请参阅以下论文。 2083 | 2084 | “A Technique for Counting NATted Hosts”, by Steven M. Bellovin, appeared in 2085 | IMW’02, Nov. 6-8, 2002, Marseille, France. 2086 | 2087 | “Exploiting the IPID field to infer network path and end-system characteristics.” 2088 | Weifeng Chen, Yong Huang, Bruno F. Ribeiro, Kyoungwon Suh, Honggang Zhang, 2089 | Edmundo de Souza e Silva, Jim Kurose, and Don Towsley. 2090 | 2091 | PAM'05 Workshop, March 31 - April 01, 2005. Boston, MA, USA. 2092 | 2093 | 2094 | b)但是,如果这些识别号码不是按顺序分配的,而是随机分配的,则a)部分中所建议的技术将无法工作,因为在嗅探数据中不会出现集群。 2095 | 2096 | P18、想出这样的技术是不可能的。为了在Arnold和Bernard之间建立一个直接的TCP连接,Arnold或Bob必须启动到另一个连接。但是覆盖Arnold和Bob的NAT丢弃了从WAN端到达的SYN数据包。因此,无论是Arnold还是Bob,如果它们都落后于NAT,就无法启动到对方的TCP连接。 2097 | 2098 | P19、 2099 | 2100 | |S2 Flow Table || 2101 | |-|-------------| 2102 | |Match |Action | 2103 | |Ingress Port = 1; IP Src = 10.3.*.*; IP Dst = 10.1.*.* |Forward (2) | 2104 | |Ingress Port = 2; IP Src = 10.1.*.*; IP Dst = 10.3.*.* |Forward (1) | 2105 | |Ingress Port = 1; IP Dst = 10.2.0.3 |Forward (3) | 2106 | |Ingress Port = 2; IP Dst = 10.2.0.3 |Forward (3) | 2107 | |Ingress Port = 1; IP Dst = 10.2.0.4 |Forward (4) | 2108 | |Ingress Port = 2; IP Dst = 10.2.0.4 |Forward (4) | 2109 | |Ingress Port = 4 |Forward (3) | 2110 | |Ingress Port = 3 |Forward (4)| 2111 | 2112 | P20、 2113 | 2114 | |S2 Flow Table || 2115 | |-|-------------| 2116 | |Match |Action | 2117 | |Ingress Port = 3; IP Dst = 10.1.*.* |Forward (2) | 2118 | |Ingress Port = 3; IP Dst = 10.3.*.* |Forward (2) | 2119 | |Ingress Port = 4; IP Dst = 10.1.*.* |Forward (1) | 2120 | |Ingress Port = 4; IP Dst = 10.3.*.* |Forward (1) | 2121 | 2122 | P21、 2123 | 2124 | |S1 Flow Table || 2125 | |-|-------------| 2126 | |Match |Action | 2127 | |IP Src = 10.2.*.*; IP Dst = 10.1.0.1 |Forward (2) | 2128 | |IP Src = 10.2.*.*; IP Dst = 10.1.0.2 |Forward (3) | 2129 | |IP Src = 10.2.*.*; IP Dst = 10.3.*.* |Forward (1) | 2130 | 2131 | |S3 Flow Table || 2132 | |-|-------------| 2133 | |Match |Action | 2134 | |IP Src = 10.2.*.*; IP Dst = 10.3.0.6 |Forward (1) 2135 | |IP Src = 10.2.*.*; IP Dst = 10.3.0.5 |Forward (2) 2136 | |IP Src = 10.2.*.*; IP Dst = 10.1.*.* |Forward (3) | 2137 | 2138 | 2139 | P22、 2140 | 2141 | | S2 Flow Table|| 2142 | |-|-------------| 2143 | |Match | Action | 2144 | |IP Src = 10.1.0.1; IP Dst = 10.2.0.3 |Forward (3) | 2145 | |IP Src = 10.1.0.1; IP Dst = 10.2.0.4 | Forward (4) | 2146 | |IP Src = 10.3.0.6; IP Dst = 10.2.0.3 |Forward (3) | 2147 | |IP Src = 10.3.0.6; IP Dst = 10.2.0.4 |Forward (4) | 2148 | 2149 | |S2 Flow Table || 2150 | |--|--| 2151 | |Match |Action| 2152 | |IP Src =.*.*.*.*; IP Dst = 10.2.0.3; port = TCP |Forward (3) | 2153 | |IP Src =.*.*.*.*; IP Dst = 10.2.0.4; port = TCP |Forward (4) | 2154 | 2155 | 2156 | |S2 Flow Table| | 2157 | |--|--| 2158 | |Match |Action | 2159 | |IP Src =.*.*.*.*; IP Dst = 10.2.0.3 |Forward (3) | 2160 | 2161 | |S2 Flow Table| | 2162 | |--|--| 2163 | |Match |Action | 2164 | |IP Src = 10.1.0.1; IP Dst = 10.2.0.3; port = UDP |Forward (3) | 2165 | 2166 | [Back to Index](#目录) 2167 | 2168 |
2169 | 2170 | # 第五章 2171 | 2172 | ## 复习题5 2173 | 2174 | R1、每个路由器控制意味着一个路由算法在每个路由器中运行;转发和路由功能在每个路由器内都受到约束。每个路由器都有一个路由组件,它与其他路由器中的路由组件通信,以计算其转发表的值。在这种情况下,我们说网络控制和数据平面是以单一方式实现的,因为每个路由器作为一个独立的实体来实现自己的控制和数据平面。 2175 | 2176 | R2、逻辑集中控制是指逻辑中央路由控制器计算和分配每个路由器使用的转发表,而每个路由器不计算其转发表,这与每个路由器控件不同。在逻辑集中控制的情况下,数据平面和控制平面在单独的设备中实现;控制平面在中央服务器或多个服务器上实现,数据平面在每个路由器中实现。 2177 | 2178 | R3、集中式路由算法通过使用关于网络的完整的全局知识来计算源和目的地之间的最小成本路径。该算法需要对所有节点之间的连通性和所有链路的代价有完整的了解。实际计算可以在一个站点上运行,也可以在每个路由器的路由组件中复制。一种分布式路由算法通过路由器以迭代的、分布式的方式计算租赁成本路径.使用分散算法,任何节点都没有关于所有网络链路成本的完整信息。每个节点开始时只知道自己直接连接链路的成本,然后通过与其相邻节点进行计算和信息交换的迭代过程,节点逐渐计算出到达目的地或一组目的地的最小成本路径。 2179 | 2180 | OSPF协议是集中式路由算法的一个例子,BGP协议是分布式路由算法的一个例子。 2181 | 2182 | R4、链路状态算法:使用完整的、全局的网络知识来计算源和目的地之间的最小成本路径。距离向量路由:最小成本路径的计算是以迭代的、分布式的方式进行的。节点只知道它应该向其转发数据包的邻居,以便沿着成本最低的路径到达给定的目的地,以及该路径从自身到目的地的成本。 2183 | 2184 | R5、计数-无穷大问题是指距离矢量路由的问题。所需的问题意味着需要很长的时间用于距离矢量路由算法,当链路成本增加时收敛。例如,考虑三个网络节点X、Y和Z。最初假定链路代价是C(x,y)=4,c(x,z)=50,并且C(y,z)=1。距离矢量路由算法的结果是Z的X的路径是Z→Y→X,成本为5(=4+1)。当链路(x,y)的成本从4增加到60时,它将花费44次迭代来运行节点Z的距离矢量路由算法,实现其对X的新的最小成本路径通过其直接链路到X,因此Y也将通过Z实现对X的最低成本路径。 2185 | 2186 | R6、没有。每个AS都具有在AS中路由的管理自主权。 2187 | 2188 | R7、政策:在屁股中,政策问题占主导地位。重要的是,源自给定的流量不能通过另一个特定的AS。类似地,一个给定的可能想要控制它在其他驴之间的过境流量。在AS内部,所有事物名义上都处于相同的管理控制之下,因此政策在选择路线方面所起的作用要小得多。 2189 | 2190 | 规模:路由算法及其数据结构处理大量网络路由的能力是跨网络路由中的一个关键问题。在AS中,可伸缩性不太受关注。首先,如果单个管理域变得太大,则始终可以将其划分为两个ASS,并在两个新ASS之间执行互选路由。 2191 | 2192 | 性能:由于路由非常面向策略,所以使用的路由的质量(例如性能)往往是次要关注的(也就是说,满足某些策略标准的较长或更昂贵的路由很可能被选择在较短但不符合该标准的路由上)。事实上,我们看到,在驴中,甚至没有与路线相关的成本(除了作为跳数)的概念。然而,在一个单一的地方,这种策略关注点就不那么重要了,这使得路由能够更多地关注在路由上实现的性能水平。 2193 | 2194 | R8、假的。 2195 | 2196 | 使用ospf,路由器将其链路状态信息广播到它所属的自治系统中的所有其他路由器,而不仅仅是它的邻近路由器。这是因为使用OSPF,每个路由器都需要构造一个完整的AS拓扑图,然后本地运行Dijkstra的最短路径算法来确定它对所有其他节点的最小代价路径。 2197 | 2198 | R9、OSPF自治系统中的一个区域是指一组路由器,其中每个路由器向同一组中的所有其他路由器广播其链路状态。OSPF可以分层配置成多个区域,每个区域运行自己的OSPF链路状态路由算法。在每个区域内,一个或多个区域边界路由器负责在区域外路由数据包。基于扩展性的考虑,引入了Area的概念,即我们希望为大规模OSPF建立分层路由,而区域是分层路由的重要组成部分。 2199 | 2200 | R10、子网是较大网络的一部分;子网不包含路由器;其边界由路由器和主机接口定义。前缀是CDIR地址的网络部分;它以A.B.C.D/x形式写成;前缀包括一个或多个子网。当路由器在BGP会话中通告前缀时,它在前缀中包含许多BGP属性。在BGP术语中,前缀及其属性是BGP路由(或简单地说是路由)。 2201 | 2202 | R11、路由器使用AS-Path属性来检测和防止循环广告;它们还使用它在多个路径中选择相同的前缀。下一跳属性表示沿通告路径的第一个路由器的IP地址(在接收到广告的外部)到给定的前缀。配置时配置它的转发表,路由器使用下一跳属性。 2203 | 2204 | R12、第1级ISP B可能不会携带其他两个一级ISP之间的过境流量,例如A和C,B与它们有对等协议。为了执行这一政策,ISP B不会向通过C的A路做广告,也不会向经过A的C路做广告。 2205 | 2206 | R13、假的。 2207 | 2208 | BGP路由器可以选择不将自己的标识添加到接收到的路径中,然后将新路径发送到其所有邻居,因为bgp是一种基于策略的路由协议。在下面的场景中可能会发生这种情况。接收路径的目的地是其他路径,而不是BGP路由器的AS,而BGP路由器不想充当传输路由器。 2209 | 2210 | R14、通信层通过OpenFlow等协议负责SDN控制器与受控网络设备之间的通信。通过这一层,SDN控制器控制远程SDN启用交换机、主机或其他设备的操作,并且设备将本地观察到的事件(例如,指示链路故障的消息)与控制器通信。 2211 | 2212 | 网络范围的状态管理层提供关于网络主机、链路、交换机和其他SDN控制设备的最新信息.控制器还维护各种受控设备的流表的副本。 2213 | 2214 | 网络控制应用层代表SDN控制平面的大脑.该层的应用程序使用SDN控制器提供的API来指定和控制网络设备中的数据平面。例如,路由网络控制应用程序可能确定源和目的地之间的端点路径.另一个网络应用程序可能执行访问控制。 2215 | 2216 | R15、我将在SDN的网络控制应用层实现一个新的路由协议,因为这是一个路由协议决定源和目的地之间端到端路径的层。 2217 | 2218 | R16、下面是通过SDN控制器从控制器南行到被控制设备的消息类型的列表。这些消息的接收方是一个受控的数据包交换机。 2219 | 2220 | - 配置。此消息允许控制器查询和设置交换机的配置参数。 2221 | - 修改-状态。控制器使用此消息添加/删除或修改交换机流表中的条目,并设置开关端口属性。 2222 | - 阅读状态。此消息由控制器用于从交换机的流表和端口收集统计信息和计数器值。 2223 | - 发送包。此消息由控制器用于发送特定的数据包在受控开关上的指定端口。 2224 | 2225 | 网络控制应用程序(作为发送者)也会通过北向接口向控制器发送消息,例如,在控制器的状态管理层中读取/写入网络状态和流表的消息。 2226 | 2227 | R17、从受控设备到控制器的两种消息类型: 2228 | 2229 | - 流删除消息.它的目的是通知控制器,流表项已被删除,例如,通过超时或接收到的修改状态消息的结果。 2230 | 2231 | - 端口-状态消息.其目的是将港口状态的变化通知控制器。 2232 | 2233 | 从控制器到受控设备的两种消息类型: 2234 | 2235 | - 修改-状态。其目的是添加/删除或修改交换机流表中的条目,并设置开关端口属性。 2236 | 2237 | - 读状态。其目的是收集统计数据和计数器值,以查询交换机的流表和端口。 2238 | 2239 | R18、服务抽象层允许内部网络服务应用程序相互通信。它允许控制器组件和应用程序相互调用对方的服务,并订阅它们生成的事件。该层还为通信层中特定的底层通信协议(包括OpenFlow和SNMP)提供了统一的抽象接口。 2240 | 2241 | R19、 2242 | 2243 | Echo回复(至Ping),类型0,代码0 2244 | 2245 | 目标网络不可达,类型3,代码0 2246 | 2247 | 目标主机不可达,类型3,代码1。 2248 | 2249 | 源抑制(拥塞控制),类型4代码0。 2250 | 2251 | R20、ICMP警告消息(类型11代码0)和无法到达的目标端口ICMP消息(类型3代码3)。 2252 | 2253 | R21、管理服务器是一个应用程序,通常有一个人在循环中,运行在网络操作中心的集中网络管理站中。它控制网络管理信息的收集、处理、分析和/或显示。在管理服务器中启动操作以控制网络行为,网络管理员使用管理服务器与网络设备交互。 2254 | 2255 | 托管设备是驻留在托管网络上的一段网络设备(包括其软件)。托管设备可能是主机、路由器、交换机、中间盒、调制解调器、温度计或其他网络连接的设备. 2256 | 2257 | 网络管理代理是在托管设备中运行的进程,该进程与管理服务器通信,在管理服务器的命令和控制下在托管设备上采取本地操作。 2258 | 2259 | 管理信息库(MIB)收集与托管网络中的那些托管对象相关联的信息。MIB对象可以是计数器,例如由于IP数据报报头中的错误而丢弃在路由器上的IP数据报的数量,或者在主机上接收到的UDP段的数量,或者诸如特定设备是否正常工作的状态信息。 2260 | 2261 | R22、GetRequest是从管理服务器发送给代理的消息,用于在代理的托管设备上请求一个或多个MIB对象的值。SetRequest是管理服务器用于在托管设备中设置一个或多个MIB对象的值的消息。 2262 | 2263 | R23、SNMP陷阱消息是作为对设备的管理服务器需要通知的托管设备上发生的事件的响应而生成的。它用于将导致MIB对象值更改的异常情况(例如,向上或向下的链接接口)通知管理服务器。 2264 | 2265 | [Back to Index](#目录) 2266 | 2267 |
2268 | 2269 | ## 问题5 2270 | 2271 | P1、 2272 | 2273 | y-x-u,y-x-v-u,y-x-w-u,y-x-w-v-u, 2274 | 2275 | y-w-u,y-w-v-u,y-w-x-u,y-w-x-v-u,y-w-v-x-u, 2276 | 2277 | y-z-w-u,y-z-w-v-u,y-z-w-x-u,y-z-w-x-v-u,y-z-w-v-x-u, 2278 | 2279 | P2、 2280 | 2281 | x to z: 2282 | 2283 | x-y-z,x-y-w-z, 2284 | 2285 | x-w-z,x-w-y-z, 2286 | 2287 | x-v-w-z,x-v-w-y-z, 2288 | 2289 | x-u-w-z,x-u-v-w-u-z 2290 | 2291 | x-u-v-w-z,x-u-v-w-y-z 2292 | 2293 | z to u: 2294 | 2295 | z-w-u, 2296 | 2297 | z-w-v-u,z-w-x-u,z-w-v-x-u,z-w-x-v-u,z-w-y-x-u,z-w-y-x-v-u, 2298 | 2299 | z-y-x-u,z-y-x-v-u,z-y-x-w-u,z-y-x-w-y-u,z-y-x-v-w-u, 2300 | 2301 | z-y-w-v-u,z-y-w-x-u,z-y-w-v-x-u,z-y-w-x-v-u,z-y-w-y-x-u,z-y-w-y-x-v-u 2302 | 2303 | z to w: 2304 | 2305 | z-w,z-y-w,z-y-x-w,z-y-x-v-w,z-y-x-u-w,z-y-x-u-v-w,z-y-x-v-u-w 2306 | 2307 | 2308 | P3、 2309 | 2310 | |step|$N^{'}$|D(t),p(t)|D(u),p(u)|D(v),p(v)|D(w),p(w)|D(y),p(y)|D(z),p(z)| 2311 | |-|-|-|-|-|-|-|-| 2312 | |0|x|$\infty$|$\infty$|3,x|6,x|6,x|8,x| 2313 | |1|xv|7,v|6,v|3,x|6,x|6,x|8,x| 2314 | |2|xvu|7,v|6,v|3,x|6,x|6,x|8,x| 2315 | |3|xvuw|7,v|6,v|3,x|6,x|6,x|8,x| 2316 | |4|xvuwy|7,v|6,v|3,x|6,x|6,x|8,x| 2317 | |5|xvuwyt|7,v|6,v|3,x|6,x|6,x|8,x| 2318 | |6|xvuwytz|7,v|6,v|3,x|6,x|6,x|8,x| 2319 | 2320 | P4、 2321 | 2322 | a) 2323 | 2324 | |step|$N^{'}$|D(x),p(x)|D(u),p(u)|D(v),p(v)|D(w),p(w)|D(y),p(y)|D(z),p(z)| 2325 | |-|-|-|-|-|-|-|-| 2326 | |0|x|$\infty$|2,t|4,t|$\infty$|7,t|$\infty$| 2327 | |1|xv|$\infty$|2,t|4,t|5,u|7,t|$\infty$| 2328 | |2|xvu|7,v|2,t|4,t|5,u|7,t|$\infty$| 2329 | |3|xvuw|7,v|2,t|4,t|5,u|7,t|$\infty$| 2330 | |4|xvuwy|7,v|2,t|4,t|5,u|7,t|15,x| 2331 | |5|xvuwyt|7,v|2,t|4,t|5,u|7,t|15,x| 2332 | |6|xvuwytz|7,v|2,t|4,t|5,u|7,t|15,x| 2333 | 2334 | b) 2335 | 2336 | |step|$N^{'}$|D(x),p(x)|D(t),p(t)|D(v),p(v)|D(w),p(w)|D(y),p(y)|D(z),p(z)| 2337 | |-|-|-|-|-|-|-|-| 2338 | |0|x|$\infty$|2,u|3,u|3,u|$\infty$|$\infty$| 2339 | |1|xv|$\infty$|2,u|3,u|3,u|9,t|$\infty$| 2340 | |2|xvu|6,v|2,u|3,u|3,u|9,t|$\infty$| 2341 | |3|xvuw|6,v|2,u|3,u|3,u|9,t|$\infty$| 2342 | |4|xvuwy|6,v|2,u|3,u|3,u|9,t|14,x| 2343 | |5|xvuwyt|6,v|2,u|3,u|3,u|9,t|14,x| 2344 | |6|xvuwytz|6,v|2,u|3,u|3,u|9,t|14,x| 2345 | 2346 | c) 2347 | 2348 | |step|$N^{'}$|D(x),p(x)|D(u),p(u)|D(t),p(t)|D(w),p(w)|D(y),p(y)|D(z),p(z)| 2349 | |-|-|-|-|-|-|-|-| 2350 | |0|v|3,v|3,v|4,v|4,v|8,v|$\infty$| 2351 | |1|vx|3,v|3,v|4,v|4,v|8,v|11,x| 2352 | |2|vxu|3,v|3,v|4,v|4,v|8,v|11,x| 2353 | |3|vxut|3,v|3,v|4,v|4,v|8,v|11,x| 2354 | |4|vxutw|3,v|3,v|4,v|4,v|8,v|11,x| 2355 | |5|vxutwy|3,v|3,v|4,v|4,v|8,v|11,x| 2356 | |6|vxutwyz|3,v|3,v|4,v|4,v|8,v|11,x| 2357 | 2358 | d) 2359 | 2360 | |step|$N^{'}$|D(x),p(x)|D(u),p(u)|D(v),p(v)|D(t),p(t)|D(y),p(y)|D(z),p(z)| 2361 | |-|-|-|-|-|-|-|-| 2362 | |0|w|6,w|3,w|4,w|$\infty$|$\infty$|$\infty$| 2363 | |1|wu|6,w|3,w|4,w|5,u|$\infty$|$\infty$| 2364 | |2|wuv|6,w|3,w|4,w|5,u|12,v|$\infty$| 2365 | |3|wuvt|6,w|3,w|4,w|5,u|12,v|$\infty$| 2366 | |4|wuvtx|6,w|3,w|4,w|5,u|12,v|14,x| 2367 | |5|wuvtxy|6,w|3,w|4,w|5,u|12,v|14,x| 2368 | |6|wuvtxyz|6,w|3,w|4,w|5,u|12,v|14,x| 2369 | 2370 | e) 2371 | 2372 | |step|$N^{'}$|D(x),p(x)|D(u),p(u)|D(v),p(v)|D(w),p(w)|D(t),p(t)|D(z),p(z)| 2373 | |-|-|-|-|-|-|-|-| 2374 | |0|y|6,y|$\infty$|8,y|$\infty$|7,y|12,y| 2375 | |1|yx|6,y|$\infty$|8,y|12,x|7,y|12,y| 2376 | |2|yxt|6,y|9,t|8,y|12,x|7,y|12,y| 2377 | |3|yxtv|6,y|9,t|8,y|12,x|7,y|12,y| 2378 | |4|yxtvu|6,y|9,t|8,y|12,x|7,y|12,y| 2379 | |5|yxtvuw|6,y|9,t|8,y|12,x|7,y|12,y| 2380 | |6|yxtvuwz|6,y|9,t|8,y|12,x|7,y|12,y| 2381 | 2382 | f) 2383 | 2384 | |step|$N^{'}$|D(x),p(x)|D(u),p(u)|D(v),p(v)|D(w),p(w)|D(y),p(y)|D(t),p(t)| 2385 | |-|-|-|-|-|-|-|-| 2386 | |0|z|8,z|$\infty$|$\infty$|$\infty$|12,z|$\infty$| 2387 | |1|zx|8,z|$\infty$|11,x|14,x|12,z|$\infty$| 2388 | |2|zxv|8,z|14,v|11,x|14,x|12,z|15,v| 2389 | |3|zxvy|8,z|14,v|11,x|14,x|12,z|15,v| 2390 | |4|zxvyu|8,z|14,v|11,x|14,x|12,z|15,v| 2391 | |5|zxvyuw|8,z|14,v|11,x|14,x|12,z|15,v| 2392 | |6|zxvyuwt|8,z|14,v|11,x|14,x|12,z|15,v| 2393 | 2394 | 2395 | P5、 2396 | 2397 | ||||值|||| 2398 | |-|-|-|-|-|-|-| 2399 | |||u|v|x|y|z| 2400 | ||v|$\infty$|$\infty$|$\infty$|$\infty$|$\infty$| 2401 | |从|x|$\infty$|$\infty$|$\infty$|$\infty$|$\infty$| 2402 | ||z|$\infty$|6|2|$\infty$|0| 2403 | 2404 | ||||值|||| 2405 | |-|-|-|-|-|-|-| 2406 | |||u|v|x|y|z| 2407 | ||v|1|0|3|$\infty$|6| 2408 | |从|x|$\infty$|3|0|3|2| 2409 | ||z|7|5|2|5|0| 2410 | 2411 | ||||值|||| 2412 | |-|-|-|-|-|-|-| 2413 | |||u|v|x|y|z| 2414 | ||v|1|0|3|3|5| 2415 | |从|x|4|3|0|3|2| 2416 | ||z|6|5|2|5|0| 2417 | 2418 | ||||值|||| 2419 | |-|-|-|-|-|-|-| 2420 | |||u|v|x|y|z| 2421 | ||v|1|0|3|3|5| 2422 | |从|x|4|3|0|3|2| 2423 | ||z|6|5|2|5|0| 2424 | 2425 | P6、这个问题的措辞有点含糊。我们的意思是,“第一次运行算法时的迭代次数”(也就是说,假设节点最初拥有的唯一信息是其最近的邻居的成本)。我们假设该算法是同步运行的(即,在一个步骤中,所有节点同时计算它们的距离表,然后交换表)。 2426 | 2427 | 在每次迭代时,节点与其邻居交换距离表。因此,如果您是节点A,而您的邻居是B,则B的所有邻居(它们都是您的一两跳)在一次迭代后(即B告诉他们它对您的成本后)将知道一到两个跳到您的最短代价路径。 2428 | 2429 | d是网络的“直径”--网络中任何两个节点之间最长的无环路路径的长度。使用上面的推理,经过d-1迭代后,所有节点都将知道d或更少跳到所有其他节点的最短路径代价。由于任何大于d跳的路径都会有循环(因此比去掉循环的路径花费更大),该算法最多会在d-1迭代中收敛。 2430 | 2431 | 旁白:如果DV算法是由于链路成本的变化而运行的,则在收敛之前,所需迭代次数不存在先验界,除非还指定了链路成本的约束。 2432 | 2433 | P7、 2434 | 2435 | a)Dx(w) = 2, Dx(y) = 4, Dx(u) = 7 2436 | 2437 | b)首先考虑如果c(x,y)发生变化会发生什么。如果c(x,y)变大或变小(只要c(x,y)>=1),那么从x到u的最小成本路径仍然至少要花费7。因此c(x,y)的改变(如果c(x,y)>=1)不会使x通知其邻居。 2438 | 2439 | 如果c(x,y)=$\sigma$<1,那么最小成本的路径现在通过y,并有成本$\sigma$+6。 2440 | 2441 | 现在考虑如果c(x,w)改变。如果c(x,w)=$\varepsilon$<=1,那么u的最小成本路径将继续通过w,其成本将更改为5+$\varepsilon$; x将通知它的邻居这个新的成本。如果c(x,w)=$\sigma$>6,那么最小成本路径现在经过y并花费了11;x将再次通知它的邻居这个新成本。 2442 | 2443 | c)链路成本c(x,y)(以及只要c(x,y)>=1)中的任何更改都不会导致x通知其邻居关于u的新的最小成本路径。 2444 | 2445 | P8、 2446 | 2447 | 结点x表 2448 | 2449 | |||值||| 2450 | |-|-|-|-|-| 2451 | |||x|y|z| 2452 | ||x|0|3|4| 2453 | |从|y|$\infty$|$\infty$|$\infty$| 2454 | ||z|$\infty$|$\infty$|$\infty$| 2455 | 2456 | |||值||| 2457 | |-|-|-|-|-| 2458 | |||x|y|z| 2459 | ||x|0|3|4| 2460 | |从|y|3|0|6| 2461 | ||z|4|6|0| 2462 | 2463 | 结点y表 2464 | 2465 | |||值||| 2466 | |-|-|-|-|-| 2467 | |||x|y|z| 2468 | ||x|$\infty$|$\infty$|$\infty$| 2469 | |从|y|3|0|6| 2470 | ||z|$\infty$|$\infty$|$\infty$| 2471 | 2472 | |||值||| 2473 | |-|-|-|-|-| 2474 | |||x|y|z| 2475 | ||x|0|3|4| 2476 | |从|y|3|0|6| 2477 | ||z|4|6|0| 2478 | 2479 | 结点z表 2480 | 2481 | |||值||| 2482 | |-|-|-|-|-| 2483 | |||x|y|z| 2484 | ||x|$\infty$|$\infty$|$\infty$| 2485 | |从|y|$\infty$|$\infty$|$\infty$| 2486 | ||z|4|6|0| 2487 | 2488 | |||值||| 2489 | |-|-|-|-|-| 2490 | |||x|y|z| 2491 | ||x|0|3|4| 2492 | |从|y|3|0|6| 2493 | ||z|4|6|0| 2494 | 2495 | P9、不,这是因为降低链路成本不会导致循环(由该链路的两个节点之间的下一跳关系引起)。将两个节点连接到一个链路相当于将链路重量从无限降到有限权。 2496 | 2497 | P10、在每一步中,节点距离向量的每一次更新都是基于Bellman-Ford方程,即只减少距离向量中的这些值。价值没有增加。如果没有更新,则不会发送消息。因此,D(X)是不增加的。由于这些代价是有限的,那么最终距离向量将稳定在有限的步骤。 2498 | 2499 | P11、 2500 | 2501 | a) 2502 | | | | 2503 | |-|-| 2504 | |Router z |Informs w, Dz(x)=$\infty$| 2505 | | |Informs y, Dz(x)=6 | 2506 | |Router w |Informs y, Dw(x)=$\infty$| 2507 | || Informs z, Dw(x)=5 | 2508 | |Router y |Informs w, Dy(x)=4 | 2509 | || Informs z, Dy(x)=4 | 2510 | 2511 | b) 是的,会有一个数不胜数到无穷大的问题。下表显示了路由收敛过程。假设在t0时间发生链路成本更改。在时间T1,y更新其距离向量并通知邻居w和z。在下表中,“$\to$”表示“通知”。 2512 | 2513 | |time |t0 |t1 |t2 |t3 |t4 | 2514 | |-----|---|---|---|---|---| 2515 | |Z | $\to$ w, Dz(x)=$\infty$||No change |$\to$ w, Dz(x)=$\infty$|| 2516 | ||$\to$y, Dz(x)=6|||$\to$y, Dz(x)=11 || 2517 | |W|$\to$y, Dw(x)=$\infty$||$\to$y, Dw(x)=$\infty$| |No change | 2518 | ||$\to$z,Dw(x)=5||$\to$z,Dw(x)=10 || 2519 | |Y|$\to$w, Dy(x)=4 |$\to$w, Dy(x)=9 ||No change|$\to$w, Dy(x)=14 | 2520 | ||$\to$z, Dy(x)=4 |$\to$z, Dy(x)=$\infty$|||$\to$z, Dy(x)=$\infty$| 2521 | 2522 | 我们看到w,y,z在计算路由器x的开销时形成一个循环。如果我们继续上面表中所示的迭代,那么在T27,z通过它与x的直接联系检测到它对x的最小成本是50。在T29,w通过z得知它对x的最小成本为51。在t30,y将其最小成本更新为52(通过w)。最后,在T31,没有更新,路由是稳定的。 2523 | 2524 | |time |t27 |t28 |t29 |t30 |t31| 2525 | |-----|----|----|----|----|---| 2526 | |Z |$\to$w, Dz(x)=50 ||||via w, $\infty$| 2527 | ||$\to$y, Dz(x)=50|||| via y, 55 | 2528 | ||||||via z, 50 | 2529 | |W ||$\to$y, Dw(x)= |$\to$y, Dw(x)=51 ||via w, $\infty$| 2530 | ||| $\to$z, Dw(x)=50 |$\to$z, Dw(x)= $\infty$ ||via y, $\infty$| 2531 | ||||||via z, 51 | 2532 | |Y| |$\to$w, Dy(x)=53| |$\to$w, Dy(x)= $\infty$ |via w, 52 | 2533 | || |$\to$z, Dy(x)= $\infty$ ||$\to$z, Dy(x)= 52 |via y, 60 | 2534 | ||||||via z, 53 | 2535 | 2536 | c)切断y和z之间的连接。 2537 | 2538 | P12、由于在BGP、循环中从AS到目的地都提供了完整的路径信息检测是简单的-如果BGP对等体接收到包含自己的AS号的路由AS路径,然后使用该路由将导致环路。 2539 | 2540 | P13、选择的路径不一定是最短的路径.回顾一下,在路线选择过程中有许多问题需要考虑。由于经济原因,较长的无环路路径很可能比较短的无环路路径更可取。例如,AS可能更愿意将流量发送给一个邻居,而不是另一个距离较短的邻居。 2541 | 2542 | P14、 2543 | 2544 | a) eBGP 2545 | 2546 | b) iBGP 2547 | 2548 | c) eBGP 2549 | 2550 | d) iBGP 2551 | 2552 | 2553 | P15、 2554 | 2555 | a)I1,因为这个接口开始从1D到网关路由器1c的最低成本路径。 2556 | 2557 | b)I2。这两种路由都有相等的路径长度,但I2开始的路径有最近的下一跳路由器。 2558 | 2559 | c)一.1。I1开始具有最短路径的路径。 2560 | 2561 | P16、C迫使B在东海岸将所有B的流量移交给D的方法之一是C只在东海岸通过其东海岸凝视点登出其到D的路线。 2562 | 2563 | P17、 2564 | 2565 | ![avater](./img/8.png) 2566 | 2567 | 在上述解决方案中,X不知道AC链路,因为X没有接收到包含AC链路的w或y的广告路由(即,X在到达目的地的路径上没有接收包含A和AS C的广告。 2568 | 2569 | P18、BitTorrent文件共享和Skype P2P应用程序。考虑一个BitTorrent文件共享网络,其中对等点1、2和3分别位于存根网络W、X和Y中。由于BitTorrent的文件共享机制,使得Peer 2有可能从Peer 1中获取数据块,然后将这些数据块转发到3,这相当于最终被发送到存根网络Y的B转发数据。 2570 | 2571 | P19、A应该建议B两条路线,A-W和A-V。 2572 | 2573 | A应该只向C建议一条路线,A-V。 2574 | 2575 | C作为路径接收:B-A-W、B-A-V、A-V。 2576 | 2577 | P20、由于Z想要传输Y的流量,Z将以这种方式向Y发送路由广告。这样,当Y有一个发送到可以通过Z到达的IP的数据报时,Y将可以选择通过Z发送该数据报。但是,如果Z将路由转发到Y,Y可以将这些路由重登到X。因此,在这种情况下,Z无法阻止从X到Z的传输。 2578 | 2579 | P21、请求响应模式通常会有更多的开销(以交换消息的数量来衡量),原因有几个。首先,经理收到的每一条信息都需要两条消息:投票和响应。陷阱只向发送方生成一条消息。如果管理器只希望在发生条件时才得到通知,那么轮询的开销就会更大,因为许多轮询消息可能表明等待条件尚未发生。陷阱只在条件发生时生成消息。 2580 | 2581 | 在发生事件时,陷阱还会立即通知经理。使用轮询,管理器需要等待半个轮询周期(平均),从事件发生到经理(通过其轮询消息)发现事件已经发生。 2582 | 2583 | 如果丢失了陷阱消息,托管设备将不会发送其他副本。如果一个投票消息或它的响应丢失了,经理就会知道已经丢失了一条消息(因为答复永远不会到达)。因此,如果需要,经理可以重新投票。 2584 | 2585 | P22、通常,最需要网络管理的时间是在压力时,网络可能会严重拥挤,数据包正在丢失。在TCP上运行SNMP时,TCP的拥塞控制将导致SNMP在网络管理器需要发送SNMP消息时退出并停止发送消息。 2586 | 2587 | [Back to Index](#目录) 2588 | 2589 |
2590 | 2591 | # 第六章 2592 | 2593 | ## 复习题6 2594 | 2595 | R1、交通方式,如汽车、公共汽车、火车、汽车。 2596 | 2597 | R2、虽然每个链路保证通过链路发送的IP数据报将在链路的另一端无错误地被接收,但不能保证IP数据报将以适当的顺序到达最终目的地。使用IP,同一TCP连接中的数据报可以在网络中采取不同的路由,从而导致出现故障。仍然需要TCP以正确的顺序向应用程序的接收端提供字节流。此外,IP可能由于路由循环或设备故障而丢失数据包。 2598 | 2599 | R3、帧:IP和TCP中也有帧;链路访问;可靠传递:TCP中也有可靠的传递;流控制:TCP中也有流控制;错误检测:IP和TCP中也有错误检测;错误更正;全双工:TCP也是全双工。 2600 | 2601 | R4、当一个节点正在发送时,它将开始从另一个节点接收一个分组,这将发生冲突。 2602 | 2603 | R5、时隙ALOHA:1、2和4(时隙ALOHA仅部分分散,因为它要求所有节点中的时钟是同步的)。令牌环:1,2,3,4。 2604 | 2605 | R6、在第5次碰撞之后,适配器从{0,1,2,…中选择,31。它选择4的概率是1/32。等待204.8微秒。 2606 | 2607 | R7、在民意测验中,讨论领袖一次只允许一个参与者说话,每个参与者都有机会以一种循环的方式交谈。对于象征性的戒指,没有讨论的领导者,但有葡萄酒杯,参与者轮流持有。只有当参与者拿着酒杯时,才允许参与者说话。 2608 | 2609 | R8、当节点发送帧时,节点必须等待帧在整个环周围传播,然后节点才能释放令牌。因此,如果L/R比tprop小,那么协议就会效率低下。 2610 | 2611 | R9、$2^{48}$个MAC地址;$2^{32}$个IPv4地址;$2^{128}$个IPv6地址。 2612 | 2613 | R10、C的适配器将处理这些帧,但是适配器不会将数据报传递到协议栈中。如果使用LAN广播地址,则C的适配器将处理帧并将数据报传递到协议栈。 2614 | 2615 | R11、在广播帧中发送ARP查询,因为查询主机没有将哪个适配器地址对应于所述IP地址。对于响应,发送节点知道应该将响应发送到的适配器地址,因此不需要发送广播帧(必须由LAN上的所有其他节点处理)。 2616 | 2617 | R12、不可能。每个LAN都有自己的一组不同的适配器,每个适配器都有一个唯一的LAN地址。 2618 | 2619 | R13、这三种以太网技术具有相同的帧结构。 2620 | 2621 | R14、2(内部子网和外部因特网) 2622 | 2623 | R15、在802.1Q中有一个12位的VLAN标识符。因此,可以支持212=4096个VLAN。 2624 | 2625 | R16、我们可以把N个开关串在一起。第一个也是最后一个交换机将使用一个端口进行中继;中间的N-2交换机将使用两个端口。因此,端口总数为2+2(N-2)=2N-2端口。 2626 | 2627 | [Back to Index](#目录) 2628 | 2629 |
2630 | 2631 | ## 问题6 2632 | 2633 | P1、 2634 | 2635 | 1 1 1 0 1 2636 | 2637 | 0 1 1 0 0 2638 | 2639 | 1 0 0 1 0 2640 | 2641 | 1 1 0 1 1 2642 | 2643 | 1 1 0 0 0 2644 | 2645 | P2、假设我们从初始的二维奇偶矩阵开始: 2646 | 2647 | 0 0 0 0 2648 | 2649 | 1 1 1 1 2650 | 2651 | 0 1 0 1 2652 | 2653 | 1 0 1 0 2654 | 2655 | 由于在第2行第3栏中出现了一些错误,第2行和第3列的奇偶校验现在在下面的矩阵中是错误的: 2656 | 2657 | 0 0 0 0 2658 | 2659 | 1 1 0 1 2660 | 2661 | 0 1 0 1 2662 | 2663 | 1 0 1 0 2664 | 2665 | 现在假设第2行、第2列和第3列有一个位错误。第2行的奇偶校验现在是正确的!列2和3的奇偶校验是错误的,但是我们不能检测错误发生在哪一行! 2666 | 2667 | 0 0 0 0 2668 | 2669 | 1 0 0 1 2670 | 2671 | 0 1 0 1 2672 | 2673 | 1 0 1 0 2674 | 2675 | 上述示例显示,可以检测到双比特错误(如果没有纠正)。 2676 | 2677 | P3、 2678 | ``` 2679 | 01001100 01101001 2680 | + 01101110 01101011 2681 | ------------------------------ 2682 | 10111010 11010100 2683 | + 00100000 01001100 2684 | ------------------------------ 2685 | 11011011 00100000 2686 | + 01100001 01111001 2687 | ----------------------------- 2688 | 00111100 10011010 (溢出,然后绕过去) 2689 | + 01100101 01110010 2690 | ------------------------------ 2691 | 10100010 00001100 2692 | ``` 2693 | 和的补码是: 01011101 11110011 2694 | 2695 | P4、 2696 | 2697 | a) 要计算网络检验值,我们将16位量的值加起来: 2698 | ``` 2699 | 00000001 00000010 2700 | 00000011 00000100 2701 | 00000101 00000110 2702 | 00000111 00001000 2703 | 00001001 00001010 2704 | ------------------------- 2705 | 00011001 00011110 2706 | ``` 2707 | 和补码为:11100110 11100001. 2708 | b) 要计算网络检验值,我们将16位量的值加起来: 2709 | ``` 2710 | 01000010 01000011 2711 | 01000100 01000101 2712 | 01000110 01000111 2713 | 01001000 01001001 2714 | 01001010 01001011 2715 | ------------------------- 2716 | 10011111 10100100 2717 | ``` 2718 | 和补码为:01100000 01011011 2719 | 2720 | c) 要计算网络检验值,我们将16位量的值加起来 2721 | ``` 2722 | 01100010 01100011 2723 | 01100100 01100101 2724 | 01100110 01100111 2725 | 01101000 01101001 2726 | 01101010 01101011 2727 | ------------------------- 2728 | 00000000 00000101 2729 | ``` 2730 | 和补码为:11111111 11111010. 2731 | 2732 | 2733 | P5、如果我们将10011分为1010101010 0000,我们可以得到1011011100,剩余R=0100。注意G=10011是CRC-4-ITU标准。 2734 | 2735 | P6、 2736 | 2737 | a)我们得到1000110000,剩余R=0000。 2738 | 2739 | b)我们得到0101010101,剩余R=1111. 2740 | 2741 | c)我们得到1011010111,剩余R=1001. 2742 | 2743 | 2744 | P7、 2745 | 2746 | a)在不失去通用性的情况下,假设ith位被翻转,其中0<= i <= d+r-1 并假设最不重要的位是第0位。单比特错误意味着接收到的数据为K=D*2R XOR R2 i。很明显,如果我们把K除以G,那么提醒不是零。通常情况下,如果G包含至少两个1,则总是可以检测到单个比特错误。 2747 | 2748 | b)这里的关键洞见是G可以被11(二进制数)除以,但任何奇数的1‘s不能除以11。因此,奇数位错误的序列(不一定是连续的)不能除以11,因此不能被G除以G。 2749 | 2750 | P8、 2751 | 2752 | a) 2753 | 2754 | $E(p)=NP(1-p)^{N-1}$ 2755 | 2756 | $E'(p)=N(1-p)^{N-1}-Np(N-1)(1-p)^{N-2}=N(1-p)^{N-2}((1-p)-p(N-1))$ 2757 | 2758 | b) 2759 | 2760 | $E(p^\ast )=N\frac{1}{N}(1-\frac{1}{N})^{N-1}=(1-\frac{1}{N})^{N-1}=\frac{(1-\frac{1}{N})^N}{1-\frac{1}{N}}$ 2761 | 2762 | $\lim_{N \to \infty }(1-\frac{1}{N})=1$ 2763 | 2764 | $\lim_{N \to \infty }(1-\frac{1}{N})^N=\frac{1}{e}$ 2765 | 2766 | 因此 2767 | 2768 | $\lim_{N \to \infty }E(p^\ast )=\frac{1}{e}$ 2769 | 2770 | P9、 2771 | 2772 | $E(p)=NP(1-p)^{2(N-1)}$ 2773 | 2774 | $E'(p)=N(1-p)^{2(N-1)}-Np2(N-1)(1-p)^{2(N-3)}=N(1-p)^{2(N-3)}((1-p)-p2(N-1))$ 2775 | 2776 | $E'(p)=0\Rightarrow p^*=\frac{1}{2N-1}$ 2777 | 2778 | $E(p^*)=\frac{N}{2N-1}(1-\frac{1}{2N-1})^{2(N-1)}$ 2779 | 2780 | $\lim_{N \to \infty }E(p^*)=\frac{1}{2}\cdot \frac{1}{e}=\frac{1}{2e}$ 2781 | 2782 | P10、 2783 | 2784 | a)A的平均吞吐量由Pa(1-PB)给出.总效率为Pa(1-PB)PB(1-Pa). 2785 | 2786 | b)A的吞吐量为Pa(1-PB)=2PB(1-PB)=2PB-2(PB)2,B的吞吐量为PB(1-Pa)=PB(1-2PB)=PB-2(PB)2,很明显,A的吞吐量不是B的两倍,为了使PA(1-PB)=2PB(1-Pa),我们需要PA=2-(Pa/PB)。 2787 | 2788 | c)A的吞吐量为2p(1-p)N1,任何其他节点的吞吐量p(1-p)N-2(1-2p)。 2789 | 2790 | P11、 2791 | 2792 | a) (1 – p(A))4 p(A) 2793 | 2794 | 其中p(A) = A在一个槽中成功的概率 2795 | 2796 | p(A) = p(A传输并且B不传输并且C不传输并且D不传输) = p(A传输) p(B不传输) p(C不传输) p(D不传输) = p(1 – p) (1 – p)(1-p) = p(1 – p)3 2797 | 2798 | 因此, p(A第一次在5号槽成功) = (1 – p(A))4 p(A) = (1 – p(1 – p)3)4 p(1 – p)3 2799 | 2800 | b) p(A在4槽中成功) = p(1-p)3 2801 | 2802 | p(B在4槽中成功) = p(1-p)3 2803 | 2804 | p(C在4槽中成功) = p(1-p)3 2805 | 2806 | p(D在4槽中成功) = p(1-p)3 2807 | 2808 | p(要么A或者B或者C或者D在4号槽中成功) = 4 p(1-p)3 (因为这些事件是相互排斥的) 2809 | 2810 | c) p(一些结点在一个槽中成功) = 4 p(1-p)3 2811 | 2812 | p(一个槽中没有结点成功) = 1 - 4 p(1-p)3 2813 | 2814 | 因此,p(第一个成功发生在3槽) = p(没有结点在前2个槽中成功) p(一些结点在第三个槽中成功) = (1 - 4 p(1-p)3)2 4 p(1-p)3 2815 | 2816 | d) 效率 = p(在一个槽中成功) =4 p(1-p)3 2817 | 2818 | 2819 | P12、 2820 | 2821 | ![avater](./img/7.png) 2822 | 2823 | ![avater](./img/6.png) 2824 | 2825 | P13、轮询轮的长度为: 2826 | 2827 | $N(Q/R+d_{poll})$ 2828 | 2829 | 在轮询轮中传输的比特数是NQ。因此,最大吞吐量是: 2830 | 2831 | $\frac{NQ}{N(Q/R+d_{poll})}=\frac{R}{1+\frac{d_{poll}R}{Q}}$ 2832 | 2833 | P14、 2834 | 2835 | a) 2836 | 2837 | b)见下图: 2838 | 2839 | ![avater](./img/5.png) 2840 | 2841 | c) 2842 | 1.E中的转发表确定数据报应路由到接口192.168.3.002。 2843 | 2844 | 2.E中的适配器创建具有以太网目的地地址88-88-88-88-88-88-88的以太网数据包。 2845 | 2846 | 3.路由器2接收数据包并提取数据报。此路由器中的转发表指示数据报将被路由到198.162.2.002。 2847 | 2848 | 4.路由器2然后通过其与IP地址198.162.003的接口发送目的地址为33-33-33-33-33-33-33-33和源地址为55-55-55-55-55-55-55-55-55-55的以太网分组。 2849 | 2850 | 5.这一过程一直持续到数据包到达主机B为止。 2851 | 2852 | d)E中的ARP现在必须确定198.162.3.002的MAC地址。主机E在广播以太网帧内发送ARP查询包。路由器2接收查询包并向主机E发送ARP响应包。此ARP响应包由以太网帧承载,以太网目的地地址为77-77-77-77-77-77-77-77。 2853 | 2854 | P15、 2855 | 2856 | a)否。E可以检查主机F的IP地址的子网前缀,然后了解F在同一个局域网上。因此,E不会将数据包发送到默认路由器R1。 2857 | 2858 | 从E到F的以太网帧: 2859 | 2860 | 源IP=E的IP地址 2861 | 2862 | 目的地IP=F的IP地址 2863 | 2864 | 源MAC=E的MAC地址 2865 | 2866 | 目的地MAC=F的MAC地址 2867 | 2868 | b)不,因为它们不在同一个局域网上。E可以通过检查B的IP地址来发现这一点。 2869 | 2870 | 从E到R1的以太网帧: 2871 | 2872 | 源IP=E的IP地址 2873 | 2874 | 目的地IP=B的IP地址 2875 | 2876 | 源MAC=E的MAC地址 2877 | 2878 | 目的地MAC=连接到子网的R1接口的MAC地址。 2879 | 2880 | c)交换机S1将通过两个接口广播以太网帧,因为接收到的ARP帧的目的地地址是广播地址。它了解到A驻留在连接到子网1的子网1上,并且S1将更新它的转发表以包括主机A的条目。 2881 | 2882 | 是的,路由器R1也接收这个ARP请求消息,但是R1不会将消息转发到子网3。 2883 | 2884 | B不会发送请求A的MAC地址的ARP查询消息,因为这个地址可以从A的查询消息中获得。 2885 | 2886 | 一旦交换机S1接收到B的响应消息,它将在其转发表中为主机B添加一个条目,然后删除接收到的帧,因为目的地主机A与主机B在同一个接口上(即A和B位于同一个LAN段上)。 2887 | 2888 | P16、让我们称子网2和3s2之间的切换为S2。也就是说,子网2和3之间的路由器R1现在被交换机S2所取代。 2889 | 2890 | a)否。E可以检查主机F的IP地址的子网前缀,然后了解F在同一个LAN段上。因此,E不会将数据包发送到S2。 2891 | 2892 | 从E到F的以太网帧: 2893 | 2894 | 源IP=E的IP地址 2895 | 2896 | 目的地IP=F的IP地址 2897 | 2898 | 源MAC=E的MAC地址 2899 | 2900 | 目的地MAC=F的MAC地址 2901 | 2902 | b)是的,因为E想找到B的MAC地址。在这种情况下,E将发送一个ARP查询包,目标MAC地址是广播地址。 2903 | 2904 | 该查询包将由交换机1重新广播,最终由主机B。 2905 | 2906 | 以太网帧从E接收到S2: 2907 | 2908 | 源IP=E的IP地址 2909 | 2910 | 目的地IP=B的IP地址 2911 | 2912 | 源MAC=E的MAC地址 2913 | 2914 | 目的地MAC=广播MAC地址:FF-FF-FF-FF-FF-FF。 2915 | 2916 | c)交换机S1将通过两个接口广播以太网帧,因为接收到的ARP帧的目标地址是广播地址。它了解到A驻留在连接到子网1的子网1上,并且S1将更新它的转发表以包括主机A的条目。 2917 | 2918 | 是的,路由器S2也接收这个ARP请求消息,S2将这个查询包广播到它的所有接口。 2919 | 2920 | B不会发送请求A的MAC地址的ARP查询消息,因为这个地址可以从A的查询消息中获得。 2921 | 2922 | 一旦交换机S1接收到B的响应消息,它将在其转发表中为主机B添加一个条目,然后删除接收到的帧,因为目的地主机A与主机B在同一个接口上(即A和B位于同一个LAN段上)。 2923 | 2924 | P17、等待51200比特时间。对于10 Mbps,这个等待是 2925 | 2926 | $\frac{51.2\times 10^3 bits}{10\times 10^6 bps}=5.12ms$ 2927 | 2928 | 对于100Mbps,等待时间是512$\mu s$ 2929 | 2930 | P18、在t=0时A发射。在t=576时,A将完成传输。在最坏的情况下,B在时间t=324开始发送,即A的第一个帧到达B之前的时间。在时间t=324+325=649时 B的第一个比特到达A时,A在检测到B已经发送之前就完成了传输,所以A错误地认为它的帧在没有碰撞的情况下被成功地传输了。 2931 | 2932 | P19、 2933 | 2934 | |时间,t|事件| 2935 | |------|---| 2936 | |0|A和B开始传输| 2937 | |245|A和B检测碰撞| 2938 | |293|A和B结束拥塞信号传输| 2939 | |293+245=538|B的最后一比特到达A;A检测空闲线路| 2940 | |538+96=634|A开始传输| 2941 | |293+512=805|B返回到第二步| 2942 | ||B必须对空闲信道进行96 bit的检测,然后才能传输。| 2943 | |634+245=879|A的传送到达B| 2944 | 2945 | 由于A的重传在B的预定重传时间(805+96)之前到达B,所以B在A重传时不进行传输,因此A和B不发生碰撞,因此指数退避算法中出现的因子512足够大。 2946 | 2947 | P20、 2948 | 2949 | a)设Y是表示插槽数目的随机变量,直到成功: 2950 | 2951 | $P\left ( Y=m \right )=\beta \left ( 1-\beta \right )^{m-1}$ 2952 | 2953 | $\beta$表示成功的概率。 2954 | 2955 | 这是一个几何分布,它的平均值为$1/\beta$。连续浪费的插槽数为X=Y-1 其中 2956 | 2957 | $x=E[X]=E[Y]-1=\frac{1-\beta}{\beta}$ 2958 | 2959 | $\beta = Np\left ( 1-p \right )^{N-1}$ 2960 | 2961 | $x=\frac{1-Np(1-p)^{N-1}}{Np(1-p)^{N-1}}=\frac{k}{k+x}=\frac{k}{k+\frac{1-Np(1-p)^{N-1}}{Np(1-p)^{N-1}}}$ 2962 | 2963 | 效率 2964 | 2965 | b)最大化效率等同于最小化x,这相当于最大化$\beta$。我们从文本中得知,$\beta$在$p=\frac{1}{N}$处是最大的。 2966 | 2967 | c)效率=$\frac{k}{k+\frac{1-(1-\frac{1}{N})^{N-1}}{(1-\frac{1}{N})^{N-1}}}$ 2968 | 2969 | $\lim_{N \to\infty } efficiency =\frac{k}{k+\frac{1-1/e}{1/e}}=\frac{k}{k+e-1}$ 2970 | 2971 | d)显然,当k趋近于无穷时$\frac{k}{k+e-1}$趋近于1。 2972 | 2973 | P21、 2974 | 2975 | ![avater](./img/4.png) 2976 | 2977 | i) 从A到右路由器: 2978 | 2979 | 源MAC地址:00-00-00-00-00-00 2980 | 2981 | 目的地MAC地址:22-22-22-22-22-22 2982 | 2983 | 源IP:111.111.111.001 2984 | 2985 | 目的地IP:133.333.333.003 2986 | 2987 | ii) 从交换机到右路由器: 2988 | 2989 | 源MAC地址:33-33-33-33-33-33 2990 | 2991 | 目的地MAC地址: 55-55-55-55-55-55 2992 | 2993 | 源IP: 111.111.111.001 2994 | 2995 | 目的地IP: 133.333.333.003 2996 | 2997 | iii) 从右路由器到F: 2998 | 2999 | 源MAC地址: 88-88-88-88-88-88 3000 | 3001 | 目的地MAC地址: 99-99-99-99-99-99 3002 | 3003 | 源IP: 111.111.111.001 3004 | 3005 | 目的地IP: 133.333.333.003 3006 | 3007 | 3008 | P22、 3009 | 3010 | i) 从A到交换机: 3011 | 3012 | 源MAC地址:00-00-00-00-00-00 3013 | 3014 | 目的地MAC地址:55-55-55-55-55-55 3015 | 3016 | 源IP:111.111.111.001 3017 | 3018 | 目的地IP:133.333.333.003 3019 | 3020 | ii) 从交换机到右路由器: 3021 | 3022 | 源MAC地址:00-00-00-00-00-00 3023 | 3024 | 目的地MAC地址: 55-55-55-55-55-55 3025 | 3026 | 源IP: 111.111.111.001 3027 | 3028 | 目的地IP: 133.333.333.003 3029 | 3030 | iii) 从右路由器到F: 3031 | 3032 | 源MAC地址: 88-88-88-88-88-88 3033 | 3034 | 目的地MAC地址: 99-99-99-99-99-99 3035 | 3036 | 源IP: 111.111.111.001 3037 | 3038 | 目的地IP: 133.333.333.003 3039 | 3040 | 3041 | P23、如果所有11=9.2节点以100 Mbps的最大可能速率发送数据,则总总吞吐量为11*100=1100 Mbps是可能的。 3042 | 3043 | P24、每个部门中心都是一个冲突域,最大吞吐量为100 Mbps。连接Web服务器和邮件服务器的链接的最大吞吐量为100 Mbps。因此,如果三个碰撞域以及Web服务器和邮件服务器以各自100 Mbps的最大可能速率发送数据,则11端系统之间的总总吞吐量可达到500 Mbps。 3044 | 3045 | P25、所有的11端系统都将处于相同的碰撞域。在这种情况下,在11端系统中,最大总吞吐量为100 Mbps是可能的。 3046 | 3047 | P26、 3048 | 3049 | |行为|开关表状态|链路包前往|解释| 3050 | |---|---------|--------|---| 3051 | |B发送一帧给E|与B的MAC地址对应的交换机学习接口|A,C,D,E,F|由于交换机表是空的,所以交换机不知道与E的MAC地址对应的接口| 3052 | |E发送一帧给B|与E的MAC地址对应的交换机学习接口|B|由于交换机已经知道与B的MAC地址对应的接口| 3053 | |A发送一帧给B|与A的MAC地址对应的交换机学习接口|B|由于交换机已经知道与B的MAC地址对应的接口| 3054 | |B发送一帧给A|切换表状态与以前相同。|A|由于交换机已经知道与A的MAC地址对应的接口| 3055 | 3056 | P27、 3057 | 3058 | a)填充$L\cdot8$ bits需要的时间是: 3059 | 3060 | $\frac{L\cdot8}{128\times 10^3 } sec = \frac{L}{16}ms$ 3061 | 3062 | b)对于L=1500,包化延迟为: 3063 | 3064 | $\frac{1500}{16}ms=93.75 ms$ 3065 | 3066 | 对于L=50,包化延迟为: 3067 | 3068 | $\frac{50}{16}ms=3.125 ms$ 3069 | 3070 | c)存储和转发延迟为$\frac{L \cdot 8+40}{R}$ 3071 | 3072 | 对于L=1500,延迟为 3073 | 3074 | $\frac{1500\cdot 8+40}{622\times 10^{6}} sec \approx 19.4 \mu s$ 3075 | 3076 | 对于L=50,存储和转发延迟<1微秒。 3077 | 3078 | d)对于典型的链路速度,存储和转发延迟对于这两种情况都是很小的.然而,L=1500的分组化延迟对于实时语音应用来说太大了. 3079 | 3080 | P28、EE部门这三台计算机(从左到右)的IP地址是:111.111.1.1、111.111.1.2、111.111.1.3。子网掩码为111.111.1/24。 3081 | 3082 | CS部门这三台计算机(从左到右)的IP地址是:111.111.2.1、111.111.2.2、111.111.2.3。子网掩码为111.111.2/24。 3083 | 3084 | 连接到端口1的路由器接口卡可以配置为包含两个子接口IP地址:111.111.1.0和111.111.2.0。第一种是针对EE部门的子网,第二种是针对CS部门的子网。每个IP地址都与VLAN ID相关联。假设111.111.1.0与VLAN 11相关联,111.111.2.0与VLAN 12相关联。这意味着来自子网111.111.1/24的每一帧将被添加一个带有VLAN ID 11的802.1q标记,而来自111.111.2/24的每一帧将被添加一个带有VLAN ID 12的802.1q标记。 3085 | 3086 | 假设EE部门中具有IP地址111.111.1.1的主机A希望向CS部门中的主机B(111.111.2.1)发送IP数据报。主机A首先将IP数据报(目的地为111.111.2.1)封装到具有与连接到交换机端口1的路由器接口卡的MAC地址相等的目标MAC地址的帧中。一旦路由器接收到该帧,然后将其传递到IP层,该层决定通过子接口111.111.2.0将IP数据报转发到子网111.111.2/24。然后路由器将IP数据报封装成一个帧并发送到端口1。请注意,该帧有一个802.1q标记VLAN ID 12。一旦交换机接收到帧端口1,它就知道该帧被发送到ID为12的VLAN,因此交换机将该帧发送到位于CS部门的主机B。一旦主机B接收到此帧,它将删除802.1q标记。 3087 | 3088 | P29、 3089 | 3090 | ![avater](./img/3.png) 3091 | 3092 | P30、 3093 | 3094 | ![avater](./img/2.png) 3095 | 3096 | P31、(下面的说明很简短,但包含了所有主要的关键步骤和涉及的关键协议。) 3097 | 3098 | 您的计算机首先使用DHCP获取IP地址。您的计算机首先在DHCP服务器发现步骤中创建一个指定为255.255.255.255的特殊IP数据报,并将其放在以太网帧中并在以太网中广播。然后,按照DHCP协议中的步骤,您的计算机能够获得具有给定租约时间的IP地址。 3099 | 3100 | 以太网上的DHCP服务器还为计算机提供了第一跳路由器的IP地址列表、计算机所在子网的子网掩码以及本地DNS服务器的地址(如果存在的话)。 3101 | 3102 | 由于您的计算机的ARP缓存最初是空的,您的计算机将使用ARP协议来获取第一跳路由器和本地DNS服务器的MAC地址。 3103 | 3104 | 您的计算机将首先获得您想要下载的网页的IP地址。如果本地DNS服务器没有IP地址,则计算机将使用DNS协议查找网页的IP地址。 3105 | 3106 | 一旦计算机拥有了网页的IP地址,如果网页不驻留在本地Web服务器中,它将通过第一跳路由器发送HTTP请求。HTTP请求消息将被分割并封装到TCP数据包中,然后进一步封装到IP数据包中,最后封装到以太网帧中。您的计算机将以太网帧发送到第一跳路由器.一旦路由器接收到这些帧,就会将它们传递到IP层,检查其路由表,然后将数据包从所有接口发送到正确的接口。 3107 | 3108 | 然后,您的IP包将通过互联网路由,直到它们到达Web服务器。 3109 | 3110 | 承载网页的服务器将通过HTTP响应消息将网页发送回计算机。这些消息将被封装到TCP数据包中,然后进一步封装到IP数据包中。这些IP数据包遵循IP路由,最终到达第一跳路由器,然后路由器将这些IP数据包封装到以太网帧中,将它们转发到计算机上。 3111 | 3112 | P32、 3113 | 3114 | a)每个流均匀分布一个链路的容量,然后80个流通过B到接入路由器10Gbps链路(以及接入路由器到边界路由器链路),每个都将仅接收10Gbps/80=125Mbps 3115 | 3116 | b)在图5.31的拓扑中,第一层和第三层2交换机之间有四个不同的路径,一起为从机架14到机架912的流量提供40Gbps。类似地,第二层和第四层2交换机之间有四个链路,一起为来自机架58到1316的业务提供40Gbps。因此,总的总带宽是80Gbps,并且每个流速的值是1Gbps。 3117 | 3118 | c)现在20个流量需要在TOR交换机对之间共享每1Gbps带宽。因此,主机到主机的比特率将为0.5Gbps。 3119 | 3120 | P33、 3121 | 3122 | a)电子邮件和视频应用程序使用第四个机架占时间的0.1%。 3123 | 3124 | b)两个应用需要第四机架的概率为0.001*0.001=10-6. 3125 | 3126 | c)假设前三个机架是用于视频的,下一个机架是用于两个机架的共享机架视频和电子邮件,接下来的三个机架用于电子邮件。我们假设第四个机架拥有电子邮件和视频应用程序所需的所有数据和软件。使用图5.31的拓扑,两个应用程序都具有足够的带宽内带宽只要两者都不同时使用第四机架。从B部分,均为:使用第四个机架不超过.00001%的时间,该时间在.0001%以内要求。 3127 | 3128 | [Back to Index](#目录) 3129 | 3130 |
3131 | 3132 | # 第七章 3133 | 3134 | ## 复习题7 3135 | 3136 | 1、在基础设施模式的操作,每一个无线主机都通过一个基站(接入点)连接到更大的网络。如果不是在基础模式操作,网络以ad-hoc模式操作。在ad-hoc模式下,无线主机没有可连接的基础设施。在缺少基础设施的情况下,主机必须自己提供如路由器、地址分配、DNS类似名称翻译和更多的服务。 3137 | 3138 | 2、 3139 | 3140 | a)单点,基于设备 3141 | 3142 | b)单点,缺少设备 3143 | 3144 | c)多点,基于设备 3145 | 3146 | d)多点,缺少设备 3147 | 3148 | 3、路径损耗是由于电磁信号在物质中传播时的衰减所致。多径传播导致接收端接收信号模糊,当电磁波部分反射物体和地面时,在发送者和接收者之间选择不同长度的路径时发生。当另一个源也在与无线网络相同的频率范围内发送时,来自其他源的干扰发生。 3149 | 3150 | 4、 3151 | 3152 | a)增加传输功率 3153 | 3154 | b)降低传输率 3155 | 3156 | 5、AP发射信标帧。AP的信标帧将通过11个信道中的一个进行传输。信标帧允许附近的无线站发现和识别AP。 3157 | 3158 | 6、假 3159 | 3160 | 7、AP发射信标帧。AP的信标帧将通过11个信道中的一个进行传输。信标帧允许附近的无线站发现和识别AP。 3161 | 3162 | 8、假 3163 | 3164 | 9、每个无线站可以设置RTS阈值,使RTS/CTS序列仅在要发送的数据帧大于阈值时使用。这确保RTS/CTS机制仅用于大帧。 3165 | 3166 | 10、不,不会有什么好处的。假设有两个站同时发送,它们都使用RTS/CTS。如果RTS帧与数据帧一样长,则只要信道被浪费在两个冲突的数据帧上,信道就会被浪费。因此,只有当RTS/CTS帧明显小于数据帧时,RTS/CTS交换才是有用的。 3167 | 3168 | 11、最初,交换机在其转发表中有一个条目,该条目将无线站与较早的AP相关联。当无线站与新AP相关联时,新AP创建具有无线电台MAC地址的帧并广播该帧。该帧由交换机接收。这迫使交换机更新其转发表,以便通过新的AP发送发送到无线站的帧。 3169 | 3170 | 12、任何普通的蓝牙节点都可以是主节点,而802.11网络中的接入点是特殊的设备(普通的无线设备,如膝上型计算机,不能用作接入点)。 3171 | 3172 | 13、假 3173 | 3174 | 14、“机会主义调度”是指将物理层协议与发送方和接收方之间的信道条件相匹配,并根据信道条件选择要发送数据包的接收方。这使得基站能够充分利用无线媒体。 3175 | 3176 | 15、UMTS对于GSM和CDMA-2000对与IS-95. 3177 | 3178 | 16、eNodeB的数据平面作用是在UE(通过LTE无线接入网)和P-GW之间转发数据报。它的控制平面作用是代表UE处理注册和移动信令业务。 3179 | 3180 | 移动管理实体(MME)代表驻留在其控制单元中的ue执行连接和移动管理。它从HHS接收UE订阅信息。 3181 | 3182 | 分组数据网络网关(P-GW)将IP地址分配给UE并执行QoS强制执行。作为隧道端点,它还在向UE转发数据报时执行数据报封装/解封装。 3183 | 3184 | 服务网关(S-GW)是数据平面移动锚点,因为所有UE业务都将通过S-GW.S-GW还执行收费/计费功能和合法的流量拦截。 3185 | 3186 | 17、在3G体系结构中,话音和数据有独立的网络组件和路径,即话音通过公用电话网络,而数据通过公共互联网。4G体系结构是一个统一的全IP网络体系结构,即语音和数据在IP数据报中传送到或从无线设备传送到多个网关,然后传送到因特网的其他部分。 3187 | 3188 | 4G网络体系结构将数据和控制平面清晰地分开,这与3G体系结构不同。 3189 | 3190 | 4G架构有一个增强的无线接入网(E-UTRAN),它不同于3G的无线接入网UTRAN。 3191 | 3192 | 18、没有。在连接到Internet的整个过程中,节点可以保持与同一接入点的连接(因此,不能移动)。移动节点是随着时间的推移将其连接点转换为网络的节点。由于用户总是通过同一个接入点访问Internet,所以她不能移动。 3193 | 3194 | 19、移动节点的永久地址是其在家庭网络中的IP地址。地址的关心是它在访问外国网络时得到的地址.COA由外部代理(可以是外部网络中的边缘路由器或移动节点本身)分配。 3195 | 3196 | 20、假 3197 | 3198 | 21、GSM中的家庭网络维护一个称为归属位置寄存器的数据库(HLR),其包含永久单元电话号码和用户简档关于其每个用户的信息。HLR还包含关于这些用户的当前位置。被访问的网络维护一个数据库称为访问位置寄存器(VLR),其包含每个移动台的条目当前位于由VLR服务的网络部分中的用户。VLR条目因此,当移动用户进入并离开网络时,进入并进入。 3199 | 3200 | 移动IP中归属网络中的边缘路由器与GSM中的HLR和GSM中的HLR类似,国外网络中的边缘路由器与GSM中的VLR类似。 3201 | 3202 | 22、锚MSC是在第一次呼叫开始时由移动访问的MSC;因此,锚MSC在呼叫期间保持不变。在整个呼叫持续时间内,无论由移动执行的MSC间传输的次数如何,呼叫都是从家乡MSC路由到锚MSC,然后从锚MSC路由到当前移动位置所在的已访问MSC。 3203 | 3204 | 23、 3205 | 3206 | a)本地恢复 3207 | 3208 | b)TCP发送方对无线链路的感知 3209 | 3210 | c)拆分连接方法 3211 | 3212 | [Back to Index](#目录) 3213 | 3214 |
3215 | 3216 | ## 问题7 3217 | 3218 | P1、 3219 | 位d1对应的输出 = [-1,1,-1,1,-1,1,-1,1] 3220 | 3221 | 位d0对应的输出= [1,-1,1,-1,1,-1,1,-1] 3222 | 3223 | P2、 3224 | 发送方2输出为: 3225 | 3226 | [1,-1,1,1,1,-1,1,1] 3227 | 3228 | [1,-1,1,1,1,-1,1,1] 3229 | 3230 | P3、 3231 | 3232 | $d_{2}^{1}=\frac{1 \times 1+(-1)\times(-1)+1 \times 1+1 \times 1+1 \times 1+(-1)\times(-1)+1\times1+1\times1}{8}=1$ 3233 | 3234 | $d_{2}^{2}=\frac{1 \times 1+(-1)\times(-1)+1 \times 1+1 \times 1+1 \times 1+(-1)\times(-1)+1\times1+1\times1}{8}=1$ 3235 | 3236 | 3237 | P4、 3238 | 3239 | 发送方 1: (1, 1, 1, -1, 1, -1, -1, -1) 3240 | 3241 | 发送方 2: (1, -1, 1, 1, 1, 1, 1, 1) 3242 | 3243 | 3244 | P5、 3245 | 3246 | a)两个AP通常具有不同的SSID和MAC地址。无线到达CAFTA的站将与其中一个SSID(即,其中一个AP)相关联。在关联之后,在新站点和AP之间存在虚拟链路。标记AP1和AP2。假设新站点与AP1相关联。当新的站发送帧,它将被寻址到AP1。尽管AP2还将接收帧,因为帧未被寻址,所以它将不处理帧。是的。因此,两个ISP可以在同一信道上并行工作。然而,这两个ISP将共享相同的无线带宽。如果不同的无线站不同ISP同时发送,会发生冲突。对于802.11b,最大值两个ISP的聚合传输速率为11Mbps。 3247 | 3248 | b)现在,如果不同ISP(以及因此不同的信道)中的两个无线站发送同时,不会发生碰撞。因此,最大骨料对于802.11b,两个ISP的传输速率为22Mbps。 3249 | 3250 | P6、假设无线站h1有1000个长帧要发送。(h1可能是将MP3转发到其他无线电台的AP。)假设最初h1是唯一想要传输的站,但是在传输其第一个帧的中途,h2想发送一个帧。为了简单起见,也假设每个站都能听到其他站的信号(也就是说,没有隐藏的终端)。在传输之前,H2将感觉到信道是繁忙的,因此选择一个随机的退避值。 3251 | 3252 | 现在假设在发送第一个帧之后,h1返回到步骤1;也就是说,它等待一个短时间(DIFS),然后开始发送第二个帧。h1的第二帧将被传输,而h2被卡在退避中,等待空闲信道。因此,h1应该能够在h2有机会访问信道之前传输其所有1000帧。另一方面,如果h1在发送帧后进入步骤2,那么它也会选择一个随机的退避值,从而给h2一个公平的机会。因此,公平是这种设计选择的理由。 3253 | 3254 | P7、没有数据的帧有32个字节长。假设传输速率为11 Mbps,发送控制帧(例如RTS帧、CTS帧或ACK帧)的时间为(256 bits)/(11 Mbps)=23 USEC。传输数据帧所需的时间为(8256 bits)/(11 Mbps)=751 3255 | 3256 | P8、 3257 | 3258 | a) 1 message/ 2 slots 3259 | 3260 | b) 2 messages/slot 3261 | 3262 | c) 1 message/slot 3263 | 3264 | d) 3265 | i) 1 message/slot 3266 | 3267 | ii) 2 messages/slot 3268 | 3269 | iii) 2 messages/slot 3270 | 3271 | e) 3272 | 3273 | i) 1 message/4 slots 3274 | 3275 | ii) 3276 | 3277 | slot 1: Message A→ B, message D→ C 3278 | 3279 | slot 2: Ack B→ A 3280 | 3281 | slot 3: Ack C→ D 3282 | 3283 | = 2 messages/ 3 slots 3284 | 3285 | iii) 3286 | 3287 | slot 1: Message C→ D 3288 | 3289 | slot 2: Ack D→C, message A→ B 3290 | 3291 | slot 3: Ack B→ A 3292 | 3293 | = 2 messages/3 slots 3294 | 3295 | P10、 3296 | 3297 | a)如果只向节点A发送10 Mbps,则此解决方案不公平,因为只有A正在得到服务。所谓“公平”,意味着四个节点中的每一个都应该分配相同数量的插槽。 3298 | 3299 | b)对于公平性要求,使每个节点在每个下游子帧期间接收相等数量的数据,让n1、n2、n3和n4分别表示A、B、C和D所得到的时隙数。 3300 | 3301 | 现在,在1时隙中发送给A的数据=10 tMbit(假设每个时隙的持续时间为t), 3302 | 3303 | 因此,发送给A(在N1时隙中)的总数据量=10tN1, 3304 | 3305 | 同样地,发送给B、C和D的数据总量分别等于5tN2、2.5tn3和tN4。 3306 | 3307 | 现在,为了满足既定的公平要求,我们有以下条件: 3308 | 3309 | 10t n1 = 5t n2 = 2.5t n3 = t n4 3310 | 3311 | 因此 3312 | n2 = 2 n1 3313 | 3314 | n3 = 4 n1 3315 | 3316 | n4 = 10 n1 3317 | 3318 | 现在, 槽的总数是N。因此, 3319 | 3320 | n1+ n2+ n3+ n4 = N 3321 | 3322 | i.e. n1+ 2 n1 + 4 n1 + 10 n1 = N 3323 | 3324 | i.e. n1 = N/17 3325 | 3326 | 因此, 3327 | n2 = 2N/17 3328 | 3329 | n3 = 4N/17 3330 | 3331 | n4 = 10N/17 3332 | 3333 | 平均传输速率为: 3334 | (10t n1+5t n2+ 2.5t n3+t n4)/tN 3335 | 3336 | = (10N/17 + 5 * 2N/17 + 2.5 * 4N/17 + 1 * 10N/17)/N 3337 | 3338 | = 40/17 = 2.35 Mbps 3339 | 3340 | c)在子帧中,节点A接收的数据是节点B、C和D的两倍。因此, 3341 | 3342 | 10tn1 = 2 * 5tn2 = 2 * 2.5tn3 = 2 * tn4 3343 | 3344 | i.e. n2 = n1 3345 | 3346 | n3 = 2n1 3347 | 3348 | n4 = 5n1 3349 | 3350 | 同样的, 3351 | 3352 | n1 + n2 + n3 + n4 = N 3353 | 3354 | i.e. n 1+ n1 + 2n1 + 5n1 = N 3355 | 3356 | i.e. n1 = N/9 3357 | 3358 | 平均传输速率是: 3359 | 3360 | (10t n1+5t n2+ 2.5t n3+t n4)/tN 3361 | 3362 | = 25/9 = 2.78 Mbps 3363 | 3364 | 同样,考虑节点B、C或D接收的数据是任何其他节点的两倍,可以计算平均传输速率的不同值。 3365 | 3366 | P11、 3367 | 3368 | a)否。所有路由器可能无法立即路由数据报。这是因为距离向量算法(以及AS之间的路由协议,如是分散的,需要一些时间来终止。所以,在这段时间算法仍在运行,因为广告来自新的外国网络,一些路由器可能无法将数据报路由到移动节点。 3369 | 3370 | b)是。当其中一个节点刚刚离开一个外国网络时可能会发生这种情况加入了一个新的外国网络。在这种情况下,从旧的路由条目外国网络可能没有完全撤回时,从新的网络正在被传播。 3371 | 3372 | c)路由器学习移动节点路径所需的时间取决于的路由器和边缘路由器之间的跳数节点。 3373 | 3374 | P12、 3375 | 3376 | ![avater](./img/1.png) 3377 | 3378 | 如果通讯员是可移动的,那么发送给记者的任何数据报都必须通过通讯员的家庭代理。访问的网络中的外国代理也需要参与,因为正是该外国代理将通讯员的位置通知通讯员的本国代理。记者的本地代理接收到的数据报需要在通讯员的本地代理和外部代理之间封装/隧道化(如图6.23顶部的封装图所示)。 3379 | 3380 | P13、因为数据报必须首先转发给归属代理,并且从那里转发到移动设备,所以延迟通常将比通过直接路由更长。但是,可能的是,从通信方到移动设备的直接延迟(即,如果数据报没有通过归属代理路由)实际上可以小于从通信方到归属代理和从那里到移动设备的延迟的总和。这取决于这些不同路径段的延迟。注意,间接路由还增加了归属代理处理(例如,封装)延迟。 3381 | 3382 | P14、首先,我们注意到在第6.5节末尾讨论了链接。在使用通过归属代理的间接路由进行链接的情况下,将发生以下事件: 3383 | - 移动节点到达A,A通知归属代理移动正在访问A,移动到移动端的数据报现在应该被转发到A中指定的注意地址(COA)。 3384 | - 移动节点移动到B。B处的外国代理必须通知A处的外国代理,该移动设备已不在A中,但实际上是在B中,并且在B中有指定的COA。从那时起,A中的外国代理将接收到的数据报发送到A中的移动COA到B中的移动COA。 3385 | - 移动节点移动到C。C处的外国代理必须通知B处的外国代理,该移动设备已不在B中,但实际上是C中的C,并且在C中具有指定的COA。从那时起,B中的外国代理将它收到的(从A中的外国代理接收的)发送到移动台B中的COA的数据报转发到移动的C中的COA。 3386 | 3387 | 请注意,当移动设备离线(即,没有地址)或返回到其家乡网络时,必须删除由A、B和C中的外国代理维护的数据报转发状态。这种拆卸也必须通过信令消息来完成。请注意,本地代理不知道移动设备的移动性超过A,并且通讯员根本不知道移动设备的移动性。 3388 | 3389 | 在不使用链接的情况下,将发生以下事件: 3390 | - 移动节点到达A,A通知归属代理移动正在访问A,移动到移动端的数据报现在应该被转发到A中指定的注意地址(COA)。 3391 | - 移动节点移动到B。B处的外国代理必须通知A处的外国代理和本地代理,移动台已不再是A中的居民,但实际上是在B中,并且在B中有指定的COA。A中的外国代理可以移除其关于移动的状态,因为它不再在A中,因此本地代理将转发它在B中收到的发送到移动的COA的数据报。 3392 | - 移动节点移动到C。C处的外国代理必须通知B处的外国代理和本地代理,移动台已不再是B中的居民,但实际上是C中的C,并且在C中有指定的COA。B中的外国代理可以移除其关于移动的状态,因为它不再在B中。从那时起,本地代理将转发它在C中收到的发送到移动的COA的数据报。 3393 | 3394 | 当移动设备离线或返回其家庭网络时,必须移除外国代理在C中维护的数据报转发状态。这种拆卸也必须通过信令消息来完成。请注意,本地代理总是知道移动当前的外部网络。然而,记者仍然幸灾乐祸地不知道手机的移动性。 3395 | 3396 | P15、在同一个访问网络中,两个移动电话的地址肯定是相同的。事实上,如果地址是外国代理人的地址,那么这个地址也是一样的.一旦外国代理解封装隧道数据报并确定移动地址,则需要使用单独的地址将数据报分别发送到访问网络中的不同目的地(手机)。 3397 | 3398 | P16、如果向HLR提供了MSRN,则当MSRN发生变化时(例如,当切换要求MSRN改变时),必须在HLR中更新MSRN的值。在HLR中拥有MSRN的优点是可以快速提供值,而无需查询VLR。通过提供VLR而不是MSRN的地址,无需刷新HLR中的MSRN。 3399 | 3400 | [Back to Index](#目录) 3401 | 3402 |
3403 | 3404 | # 第八章 3405 | 3406 | ## 复习题8 3407 | 3408 | R1、机密性是原始明文消息不能由拦截原始明文消息的密文加密的攻击者确定的属性。消息完整性是接收器可以检测发送的消息(无论是否加密)在传输中改变的属性。这两个概念是不同的概念,一个可以没有另一个概念。在传输中被更改的加密消息仍然是机密的(攻击者不能确定原始明文),但如果未检测到错误,则不会具有消息完整性。类似地,在传输(和检测到)中被改变的消息可能已经以明文发送,因此不会是机密的。 3409 | 3410 | R2、用户的笔记本电脑和一个web服务器;(ii)两个路由器;(iii)两个DNS名称服务器 3411 | 3412 | R3、对称密钥系统和公钥系统的一个重要区别是 3413 | 对称密钥系统发送者和接收者必须知道相同的(秘密)密钥。 3414 | 3415 | 在公钥系统中,R。这个加密密钥是全世界都知道的(包括发送方),但是解密钥匙只有接收者知道。 3416 | 3417 | R4、在这种情况下,将执行已知的明文攻击。如果发送者加密的消息是由攻击者选择的,那么这将是被选择的明文攻击。 3418 | 3419 | R5、一个8块密码有$2^8$个可能的输入块.每个映射都是两个输入块的排列,所以有$2^8!$可能的映射;所以有$2^8!$可能的钥匙。 3420 | 3421 | R6、如果每个用户想要与N个其他用户通信,则每对用户必须必须具有共享对称密钥。存在n*(n-1)/2这样的对,因此,n*(n-1)/2键。利用公共密钥系统,每个用户具有公共密钥,众所周知,私有密钥(它是秘密的并且仅由用户知道)。在那里因此是公共密钥系统中的2n个密钥。 3422 | 3423 | R7、a mod n=23,b mod n=4 3424 | 3425 | 所以(a*b) mod n=23*4=92 3426 | 3427 | R8、175 3428 | 3429 | R9、消息摘要的一个要求是,给定消息M,很难找到具有相同消息摘要的另一个消息M‘,作为推论,给定消息摘要值很难找到具有该消息摘要值的消息M’‘。我们有“消息完整性”,在某种意义上,我们有合理的信心,即给定消息M及其签名消息摘要,消息没有被更改,因为消息摘要是计算和签名的。Internet校验和不是这样的,我们在图7.18中看到,很容易找到两条具有相同Internet校验和的消息。 3430 | 3431 | R10、没有。这是因为散列函数是单向函数。也就是说,给定任何哈希值,原始消息都无法恢复(给定h,使得h=H(M),则不能从h恢复m)。 3432 | 3433 | R11、这显然是有缺陷的。Truddy,攻击者,可以先嗅探通信并且通过从H(M)S中提取最后一部分数字来获得共享秘密S。然后,Truddy可以通过创建自己的消息T并发送(T,h(t)s)。 3434 | 3435 | R12、假设Bob向Alice发送加密文档。要验证,Alice必须是能够说服自己Bob发送了加密的文档。为了不可伪造,Alice必须能够使自己确信只有Bob可以发送加密的加密文档(例如,没有其他人可以猜出密钥并加密/发送)(文件)为非声誉的,Alice必须能够说服其他人只有鲍勃发了这份文件。为了说明后一种区分,假设Bob和Alice共享密钥,他们是世界上唯一知道的人钥匙。如果Alice接收用密钥加密的文档,并且知道如果她自己没有对文档进行加密,则该文档是已知的可验证和不可伪造(假设适当强的加密系统)使用)。然而,Alice不能说服其他人Bob必须已经发送了文档,因为实际上爱丽丝知道自己的钥匙,并且可能已经加密/发送了文件。 3436 | 3437 | R13、公钥签名的消息摘要是“较好”,其中一个只需要加密(使用私钥)短消息摘要,而不是整个消息。因为公开了使用像RSA这样的技术的密钥加密是昂贵的,需要签名(加密)比大量数据少的数据量。 3438 | 3439 | R14、这是假的。要创建证书,certifier.com将包括数字签名,这是foo.com信息(包括其公共密钥)的散列,并与certifier.com的私钥。 3440 | 3441 | R15、对于基于MAC的方案,Alice必须与每个潜在的接收者建立共享密钥。对于数字签名,她对每个接收者使用相同的数字签名;数字签名是通过用她的私钥签名消息的散列来创建的。数字签名显然是更好的选择。 3442 | 3443 | R16、现时的目的是防范重放攻击。 3444 | 3445 | R17、生命周期中的一次意味着发送nonce的实体将不再使用该值来检查另一个实体是否“活动”。 3446 | 3447 | R18、在中间人攻击中,攻击者将自己置于Alice和Bob之间,改变它们之间发送的数据。如果Bob和Alice共享秘密认证键,然后将检测到任何更改。 3448 | 3449 | R19、Alice提供数字签名,Bob可以从中验证该消息来自艾丽丝。PGP使用数字签名,而不是MAC,用于消息完整性。 3450 | 3451 | R20、是假的。SSL使用隐式序列号。 3452 | 3453 | R21、握手中的随机不连续的目的是为了抵御连接重播攻击。 3454 | 3455 | R22、真的。IV通常是在清除中发送的。在SSL中,它在SSL握手期间发送。 3456 | 3457 | R23、客户端将生成预主密钥(PMS)后,它将用Alice对其进行加密公钥,然后将加密的PMS发送到Truddy。特鲁迪将无法解密PMS,因为她没有Alice的私钥。因此,Truddy将不能够确定共享的认证密钥。她可以猜猜看一个人选择随机密钥。在握手的最后一个步骤中,她向BobA发送所有握手消息的MAC,使用所猜测的验证密钥。当Bob接收MAC,MAC测试将失败,Bob将结束TCP连接。 3458 | 3459 | R24、是假的。通常,在主机A和主机B之间首先建立IPsecSA。然后,流中的分组使用SA。 3460 | 3461 | R25、是假的。IPsec将为其发送的每个数据包增加序列号。 3462 | 3463 | R26、假的。IKE SA用于建立一个或多个IPSec SAS。 3464 | 3465 | R27、01011100 3466 | 3467 | R28、正确 3468 | 3469 | R29、过滤表和连接表。连接表跟踪连接,允许更好地过滤数据包。 3470 | 3471 | R30、正确 3472 | 3473 | R31、正确 3474 | 3475 | R32、如果没有数据包过滤器,则该机构的网络中的用户仍将能够直接连接到机构的网络之外的主机。所述过滤器强制用户首先连接到应用程序网关。 3476 | 3477 | R33、正确 3478 | 3479 | [Back to Index](#目录) 3480 | 3481 |
3482 | 3483 | ## 问题8 3484 | 3485 | P1、“这是一个简单的问题”的编码是“UASI我的cmiw lokngch”。“rmij‘u uamu xyj”的解码是“没有那么有趣”。 3486 | 3487 | P2、如果特鲁迪知道“bob”和“Alice”这两个词出现在文本中,那么她就会知道b,o,a,l,i,c,e的密文(因为“bob”是消息中唯一的回文,而“Alice”是唯一的5个字母。)如果Trudy知道7个字母的密文,那么她只需要尝试19!,而不是26!明文-密文对。19!还有26!差别是26*25*24.*20,等于3315312000,或大约10^9 3488 | 3489 | P3、字母表中的每一个字母出现在短语“快速狐狸跳过懒惰”的短语中。BrownDog."在选定的明文攻击中(攻击者拥有此短语)明文和密文,凯撒密码将被破坏-入侵者将了解每个明文字符的密文字符。然而,Vigenere密码不总是将给定明文字符转换为相同的密文每次字符,因此Vigenere密码将不会立即被打破。此选定的明文攻击。 3490 | 3491 | P4、 3492 | 3493 | A)输出等于00000101次重复八次。 3494 | 3495 | B)输出等于00000101次重复,7次乘以10000101次。 3496 | 3497 | c)我们有(ARBRCR)R=CBA,其中A,B,C是字符串,R是逆运算。因此: 3498 | 3499 | 1.对于(A),输出为10100000次,重复8次; 3500 | 3501 | 2.对于(B),输出为10100001 10100000次,重复7次。 3502 | 3503 | P5、 3504 | 3505 | a)有8个表格。每个表格都有28个条目。每个条目具有8位。每个表*大小的表*大小*每个条目大小=8*28*8=214位 3506 | 3507 | b)有264条目的。每个条目具有64位。271位 3508 | 3509 | P6、 3510 | 3511 | a)100100100=>011011011 特鲁迪将知道三个街区的明文是相同的。 c(i)=KS(m(i)异或c(i-1)) c(1)=KS(100XOR111)=KS(011)=100 c(2)=KS(100XOR100)=KS(000)=110 c(1)=KS(100XOR110)=KS(010)=101。 3512 | 3513 | P7、 3514 | 3515 | a)我们被给予了P-3和Q为11。因此,我们有N-33和Q-11。选择E或9(它也许是个好主意给学生一个提示:9是一个很好的选择,因为所得到的计算不太可能遇到比数值稳定性问题更小的数值稳定性问题。E.)自3和(p.1)*(q/1)*(20)中的其他选择没有共同的因素。选择D或9也使得E*D/81和因此E*D或80完全可被整除。20.现在,我们可以使用N/33、E或9执行RSA加密和解密,并且D/9。 3516 | 3517 | letter m m**e ciphertext = m**e mod 33 3518 | 3519 | d 4 262144 25 3520 | 3521 | o 15 38443359375 3 3522 | 3523 | g 7 40353607 19 3524 | 3525 | ciphertext c**d m = c**d mod n letter 3526 | 3527 | 25 38146972265625 4 d 3528 | 3529 | 3 19683 15 o 3530 | 3531 | 19 322687697779 7 g 3532 | 3533 | 我们首先将每个字母视为5位数字:00100、01111、00111。现在我们将每个字母连接到001000111100111并加密生成的十进制数编号M=4583。级联十进制数m(=4583)大于电流n(=33)。我们需要m 1023 23 any 3707 | 3708 | allow outside of 3709 | 3710 | 222.22/16 222.22/16 TCP 23 > 1023 ACK 3711 | 3712 | x 3713 | 3714 | Allow outside of 3715 | 3716 | 222.22/16 222.22.0.12 TCP >1023 80 Any 3717 | 3718 | Allow 222.22.0.12 outside of 3719 | 3720 | 222.22/16 TCP 80 >1023 Any 3721 | 3722 | deny All all all all all All 3723 | 3724 | 连接表: 3725 | 3726 | |Source address |Dest address |Source port|Dest port| 3727 | |-----|---|---|---|---| 3728 | |222.22.1.7| 37.96.87.123 |12699 |23 | 3729 | |222.22.93.2 |199.1.205.23 |37654| 23 | 3730 | |222.22.65.143 |203.77.240.43 |48712| 23 | 3731 | 3732 | P26、 3733 | 3734 | a) 3735 | ![avater](./img/37.png) 3736 | 3737 | b) 3738 | ![avater](./img/38.png) 3739 | 3740 | c) 3741 | ![avater](./img/39.png) 3742 | 3743 | [Back to Index](#目录) -------------------------------------------------------------------------------- /计算机网络/english/计算机网络:自顶向下(原书第7版)英文配套答案.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XieYSheng/exercises_answers/d4272f4e1c38572e939221c3ff4ce21c93edf18e/计算机网络/english/计算机网络:自顶向下(原书第7版)英文配套答案.pdf --------------------------------------------------------------------------------