tcp\/ip网络编程课后答案任泰明(tcpip协议与网络编程任泰明)

http://www.itjxue.com  2023-02-10 12:52  来源:未知  点击次数: 

Python网络编程 -- TCP/IP

首先放出一个 TCP/IP 的程序,这里是单线程服务器与客户端,在多线程一节会放上多线程的TCP/IP服务程序。

这里将服务端和客户端放到同一个程序当中,方便对比服务端与客户端的不同。

TCP/IP是因特网的通信协议,其参考OSI模型,也采用了分层的方式,对每一层制定了相应的标准。

网际协议(IP)是为全世界通过互联网连接的计算机赋予统一地址系统的机制,它使得数据包能够从互联网的一端发送至另一端,如 130.207.244.244,为了便于记忆,常用主机名代替IP地址,例如 baidu.com。

UDP (User Datagram Protocol,用户数据报协议) 解决了上述第一个问题,通过端口号来实现了多路复用(用不同的端口区分不同的应用程序)但是使用UDP协议的网络程序需要自己处理丢包、重包和包的乱序问题。

TCP (Transmission Control Protocol,传输控制协议) 解决了上述两个问题,同样使用端口号实现了复用。

TCP 实现可靠连接的方法:

socket通信模型及 TCP 通信过程如下两张图。

[图片上传失败...(image-6d947d-1610703914730)]

[图片上传失败...(image-30b472-1610703914730)]

socket.getaddrinfo(host, port, family, socktype, proto, flags)

返回: [(family, socktype, proto, cannonname, sockaddr), ] 由元组组成的列表。

family:表示socket使用的协议簇, AF_UNIX : 1, AF_INET: 2, AF_INET6 : 10。 0 表示不指定。

socktype: socket 的类型, SOCK_STREAM : 1, SOCK_DGRAM : 2, SOCK_RAW : 3

proto: 协议, 套接字所用的协议,如果不指定, 则为 0。 IPPROTO_TCP : 6, IPPRTOTO_UDP : 17

flags:标记,限制返回内容。 AI_ADDRCONFIG 把计算机无法连接的所有地址都过滤掉(如果一个机构既有IPv4,又有IPv6,而主机只有IPv4,则会把 IPv6过滤掉)

AI _V4MAPPED, 如果本机只有IPv6,服务却只有IPv4,这个标记会将 IPv4地址重新编码为可实际使用的IPv6地址。

AI_CANONNAME,返回规范主机名:cannonname。

getaddrinfo(None, 'smtp', 0, socket.SOCK_STREAM, 0, socket.AP_PASSIVE)

getaddrinfo('', 'ftp', 0, 'socket.SOCK_STREAM, 0, socket.AI_ADDRCONFIG | socket.AI_V4MAPPED)

利用已经通信的套接字名提供给getaddrinfo

mysock = server_sock.accept()

addr, port = mysock.getpeername()

getaddrinfo(addr, port, mysock.family, mysock.type, mysock.proto, socket.AI_CANONNAME)

TCP 数据发送模式:

由于 TCP 是发送流式数据,并且会自动分割发送的数据包,而且在 recv 的时候会阻塞进程,直到接收到数据为止,因此会出现死锁现象,及通信双方都在等待接收数据导致无法响应,或者都在发送数据导致缓存区溢出。所以就有了封帧(framing)的问题,即如何分割消息,使得接收方能够识别消息的开始与结束。

关于封帧,需要考虑的问题是, 接收方何时最终停止调用recv才是安全的?整个消息或数据何时才能完整无缺的传达?何时才能将接收到的消息作为一个整体来解析或处理。

适用UDP的场景:

由于TCP每次连接与断开都需要有三次握手,若有大量连接,则会产生大量的开销,在客户端与服务器之间不存在长时间连接的情况下,适用UDP更为合适,尤其是客户端太多的时候。

第二种情况: 当丢包现象发生时,如果应用程序有比简单地重传数据聪明得多的方法的话,那么就不适用TCP了。例如,如果正在进行音频通话,如果有1s的数据由于丢包而丢失了,那么只是简单地不断重新发送这1s的数据直至其成功传达是无济于事的。反之,客户端应该从传达的数据包中任意选择一些组合成一段音频(为了解决这一问题,一个智能的音频协议会用前一段音频的高度压缩版本作为数据包的开始部分,同样将其后继音频压缩,作为数据包的结束部分),然后继续进行后续操作,就好像没有发生丢包一样。如果使用TCP,那么这是不可能的,因为TCP会固执地重传丢失的信息,即使这些信息早已过时无用也不例外。UDP数据报通常是互联网实时多媒体流的基础。

参考资料:

TCP/IP习题求答案!!!!!!!!

1,1200-1176=24 ,20字节是IP头,4个字节为UDP头,可以判断这是一个UDP的报文。

2,头部当然不能小于5了,5表示5个32bit长,那就是20个字节,刚好是IP头部的最小长度。小于5长度的IP头部都是坏的。

3,原头是5的长,现在是7,7-5=2,2*32bit=64bit 64bit/8=8个字节,选项大小个8个字节。

4,36-5=31 ,31*32bit=992bit 992bit/8=124个字节。

5,没有选项,那就是20个字节的头,头长度字段等于5,1024应该是指传输层大小(如果包含IP头,1024-20=1004,1004除以32除不尽),1024字节除以32,刚好是32,所以总长度字段等于32+5=37

2016 福师《TCP/IP协议原理与编程》在线作业一、二 以及离线作业 全部答案???

福师《TCP/IP协议原理与编程》在线作业一的参考答案:

一、单选题

1、D 2、C 3、C 4、B 5、D 

1. 关于UDP的说法不正确的是()。

A. UDP提供不可靠的服务

B. UDP源端口是可选的

C. UDP是无连接的

D. UDP目的端口是可选的

2. 按照OSI参考模型分层,其第2层,第4层分别为( )

A. 数据链路层,会话层

B. 数据链路层,网络层

C. 数据链路层,传输层

D. 网络层,会话层

3. IP地址202.100.80.110是()地址。

A. A类

B. B类

C. C类

D. D类

4. 下面协议是动态路由协议的是()。

A. UDP

B. RIP

C. ARP

D. TCP

5. RIP协议是使用()进行传输的。

A. TCP

B. HTTP

C. ICMP

D. UDP

6. UDP校验和的计算方法是将数据分为16位长的段,然后对它们进行()。

A. 与运算

B. 或运算

C. 同或运算

D. 异或运算

7. 提供可靠的端到端的服务是()。

A. 物理层

B. 数据链路层

C. 网络层

D. 传输层

8. TCP滑动窗口的功能是什么?

A. 使得窗口尺寸更大,以便一次可以发送更多的数据,从而更加有效地利用带宽。

B. 窗口的尺寸根据每个数据报进行滑动以接收数据,从而更有效地利用带宽。

C. 在TCP会话过程中,允许动态协商窗口尺寸的大小,从而更加有效地利用带宽。

D. 限制进入的数据,使得分段必须逐个发送,不是有效的带宽的利用方式。

9. IP协议提供的是()。

A. 面向连接的数据报服务

B. 无连接的数据报服务

C. 面向连接的虚电路服务

D. 无连接的虚电路服务

10. 你是公司网管,网络中包括一个单独的IP子网,使用DHCP分配IP。你安装了WINS服务以减少名称解析中的广播交通。过了一些天,用户报告网络太慢了。你调查发现广播没有减少。下一步应如何查看?

A. 检查WINS服务器是否有客户机的注册记录

B. 检查WINS服务器是否有其他WINS服务器的注册记录

C. 检查WINS服务器服务是否开启

D. 检查WINS服务器是否存在静态记录

11. 下列哪种说法是错误的()。

A. IP层可以屏蔽各个物理网络的差异。

B. IP层可以代替各个物理网络的数据链路层工作。

C. IP层可以隐藏各个物理网络的实现细节。

D. IP层可以为用户提供通用的服务。

12. 关于PPP协议, 下列哪一句(或几句)话是错误的?

A. 支持IPX及AppleTalk协议

B. 提供面向连接服务

C. 支持身份认证

D. 动态IP地址分配可由NCP完成

13. 关于网络协议,下列()选项是正确的。

A. 是网民们签订的合同

B. 协议,简单的说就是为了网络信息传递,共同遵守的约定

C. TCP/IP协议只是用于Internet,不能用于局域网

D. 拨号网络对应的协议是IPX/SPX

14. IP校验和的计算方法是将数据分为16位长的段,然后对它们进行()。

A. 同或运算

B. 异或运算

C. 与运算

D. 或运算

15. 接收端发现有差错时,设法通知发送端重发,直到正确的码字收到为止,这种差错控制方法称为()

A. 前向纠错

B. 自动请求重发

C. 冗余检验

D. 混合差错控制

16. IP头部中,"总长"字段指的是()。

A. 数据长度

B. 头部长度+选项长度

C. 头部长度+数据长度

D. 选项长度

17. 传输数据时,FTP服务器和FTP客户机之间建立了()连接。

A. 1个

B. 2个

C. 3个

D. 4个

18. 安装Windows 2003时,TCP/IP网络协议是默认安装的。按照OSI协议,有关该协议的工作层,下面的哪项描述是正确的?

A. TCP在会话层进行工作,IP在传输层进行工作

B. TCP在传输层进行工作,IP在网络层进行工作

C. TCP在网络层进行工作,IP在传输层进行工作

D. TCP和IP都在传输层进行工作

19. IGMP的长度是固定的,其大小为()。

A. 8位

B. 16位

C. 32位

D. 64位

20. IP头部中,"目的IP地址"字段的长度是()。

A. 8位

B. 16位

C. 32位

D. 64位

21. 在OSI模型中表示层的功能由对应TCP/IP层次模型的哪一层完成:

A. 应用层

B. 传输层

C. 网络层

D. 物理层

22. 停-等协议的主要缺点是()。

A. 通信不可靠

B. 信道利用率不高

C. 不能进行全双工通信

D. 需要大容量的存储器

23. 假定MAC地址不在ARP表中,如何找到目的地址的MAC地址()。

A. 发送广播信息到整个局域网

B. 发送广播信息到整个网络

C. 以上都不是

D. A和B都是

24. 各种网络在物理层互连时要求()。

A. 数据传输率和链路协议都相同

B. 数据传输率相同,链路协议可不同

C. 数据传输率可不同,链路协议相同

D. 数据传输率和链路协议都可不同

25. 关于ARP的说法错误的是()。

A. 使用询问/回答机制

B. 缓存用于减少地址解析需要的通信

C. 从物理地址到IP地址的映射

D. 在同一个物理网络中使用

26. "TimeToLive"字段的最大值是()。

A. 127

B. 128

C. 255

D. 256

27. 在DNS区域中创建邮件交换记录时,需要设置优先级来指明邮件服务器的优先选择顺序。请问,哪个数字表示服务器具有最高的优先级?

A. 10

B. 9

C. 1

D. 0

28. Intranet技术主要由一系列的组件和技术构成,Intranet的网络协议核心是()。

A. ISP/SPX

B. PPP

C. TCP/IP

D. SLIP

29. 流量控制实际上是对()的控制。

A. 发送方数据流量

B. 接收方数据流量

C. 发送方和接收方数据

D. 以上都不对

30. 某台客户机手工静态设置了WINS服务器的地址,但同时在DHCP服务器中,又通过服务器选项、作用域选项和客户保留选项分别指定了不同WINS服务器的地址。在客户机进行名称解析时,会采用哪个配置的WINS服务器的地址?

A. 手工静态设置的WINS服务器地址

B. 服务器选项指定的WINS服务器地址

C. 作用域选项指定的WINS服务器地址

D. 客户保留选项指定的WINS服务器地址

31. 对已经是分片的IP数据包再进行分片后得到的每个分片中的标志位是()。

A. 一定是1

B. 一定是0

C. 可能是0

D. 以上皆错

32. 形式为202.117.35.170的IP地址按分类方法划分属于()。

A. A类

B. B类

C. C类

D. D类

33. 您的一台WINS服务器出现复制故障。您希望检查"计算机管理"控制台中的WINS统计资料。下列各项统计信息中,哪一项所显示的信息是关于WINS服务器在最后一次指定复制间隔到来时所启动的复制过程的?

A. 最后一次周期复制。

B. 最后一次手动复制。

C. 最后一次网络复制更新。

D. 以上都不对。

34. 一个网络中的计算机要与其他计算机直接通信,必须有什么?()。

A. 使用相同的操作系统

B. 使用相同的硬件

C. 使用相同的协议

D. 在同一公司内部

35. ping命令就是利用()协议来测试网络的连通性。

A. TCP

B. ICMP

C. ARP

D. IP

36. 在互连网中,以下哪些设备具备路由选择功能()。

A. 具有单网卡的主机

B. 具有多网卡的宿主主机

C. 路由器

D. 以上设备都需要

37. 浏览器和WWW服务器之间传输网页使用的协议是()。

A. IP

B. HTTP

C. FTP

D. Telnet

38. 域名服务器上存放有internet主机的()。

A. 域名

B. IP地址

C. 域名和IP地址

D. E-mail地址

39. ICMP的类型字段中,字段值为0表示的是()。

A. 超时

B. 目标不可达

C. 回显应答

D. 回显请求

40. 网络协议主要要素为()。

A. 数据格式、编码、信号电平

B. 数据格式、控制信息、速度匹配

C. 语法、语义、同步

D. 编码、控制信息、同步

简单理解TCP/IP协议

转自:

假如你是一台电脑,你的名字叫 A

????经过 《如果让你来设计网络,你会把它弄成啥样?》 这篇文章中的一番折腾,只要你知道另一位伙伴 B 的 IP 地址,且你们之间的网络是通的,无论多远,你都可以将一个数据包发送给你的伙伴 B。

这就是物理层、数据链路层、网络层这三层所做的事情。

站在第四层的你,就可以不要脸地利用下三层所做的铺垫,随心所欲地发送数据,而不必担心找不到对方了。

虽然你此时还什么都没干,但你还是给自己这一层起了个响亮的名字,叫做 传输层 。

你本以为自己所在的第四层万事大吉,啥事没有,但很快问题就接踵而至。

问题来了

前三层协议只能把数据包从一个主机搬到另外一台主机,但是,到了目的地以后,数据包具体交给哪个 程序 (进程)呢?

所以,你需要把通信的进程区分开来,于是就给每个进程分配一个数字编号,你给它起了一个响亮的名字: 端口号 。

然后你在要发送的数据包上,增加了传输层的头部, 源端口号 与 目标端口号 。

OK,这样你将原本主机到主机的通信,升级为了 进程和进程之间的通信 。

你没有意识到,你不知不觉实现了? UDP 协议 !

(当然 UDP 协议中不光有源端口和目标端口,还有数据包长度和校验值,我们暂且略过)

就这样,你用 UDP 协议无忧无虑地同 B 进行着通信,一直没发生什么问题。

但很快,你发现事情变得非常复杂......

丢包问题

由于网络的不可靠,数据包可能在半路丢失,而 A 和 B 却无法察觉。

对于丢包问题,只要解决两个事就好了。

第一个,A 怎么知道包丢了?

答案:让 B 告诉 A

第二个,丢了的包怎么办?

答案:重传

于是你设计了如下方案,A 每发一个包,都必须收到来自 B 的 确认 (ACK),再发下一个,否则在一定时间内没有收到确认,就 重传 这个包。

你管它叫 停止等待协议 。只要按照这个协议来,虽然 A 无法保证 B 一定能收到包,但 A 能够确认 B 是否收到了包,收不到就重试,尽最大努力让这个通信过程变得可靠,于是你们现在的通信过程又有了一个新的特征, 可靠交付 。

????停止等待虽然能解决问题,但是效率太低了,A 原本可以在发完第一个数据包之后立刻开始发第二个数据包,但由于停止等待协议,A 必须等数据包到达了 B ,且 B 的 ACK 包又回到了 A,才可以继续发第二个数据包,这效率慢得可不是一点两点。

于是你对这个过程进行了改进,采用 流水线 的方式,不再傻傻地等。

但是网路是复杂的、不可靠的。

有的时候 A 发出去的数据包,分别走了不同的路由到达 B,可能无法保证和发送数据包时一样的顺序。

在流水线中有多个数据包和ACK包在 乱序流动 ,他们之间对应关系就乱掉了。

难道还回到停止等待协议?A 每收到一个包的确认(ACK)再发下一个包,那就根本不存在顺序问题。应该有更好的办法!

A 在发送的数据包中增加一个 序号 (seq),同时 B 要在 ACK 包上增加一个 确认号 (ack),这样不但解决了停止等待协议的效率问题,也通过这样标序号的方式解决了顺序问题。

而 B 这个确认号意味深长:比如 B 发了一个确认号为 ack = 3,它不仅仅表示 A 发送的序号为 2 的包收到了,还表示 2 之前的数据包都收到了。这种方式叫 累计确认 或 累计应答 。

注意,实际上 ack 的号是收到的最后一个数据包的序号 seq + 1,也就是告诉对方下一个应该发的序号是多少。但图中为了便于理解,ack 就表示收到的那个序号,不必纠结。

有的时候,A 发送数据包的速度太快,而 B 的接收能力不够,但 B 却没有告知 A 这个情况。

怎么解决呢?

很简单,B 告诉 A 自己的接收能力,A 根据 B 的接收能力,相应控制自己的 发送速率 ,就好了。

B 怎么告诉 A 呢?B 跟 A 说"我很强"这三个字么?那肯定不行,得有一个严谨的规范。

于是 B 决定,每次发送数据包给 A 时,顺带传过来一个值,叫 窗口大小 (win),这个值就表示 B 的 接收能力 。同理,每次 A 给 B 发包时也带上自己的窗口大小,表示 A 的接收能力。

B 告诉了 A 自己的窗口大小值,A 怎么利用它去做 A 这边发包的流量控制呢?

很简单,假如 B 给 A 传过来的窗口大小 win = 5,那 A 根据这个值,把自己要发送的数据分成这么几类。

图片过于清晰,就不再文字解释了。

当 A 不断发送数据包时, 已发送的最后一个序号 就往右移动,直到碰到了窗口的上边界,此时 A 就无法继续发包,达到了流量控制。

但是当 A 不断发包的同时,A 也会收到来自 B 的确认包,此时 整个窗口 会往右移动,因此上边界也往右移动,A 就能发更多的数据包了。

以上都是在窗口大小不变的情况下,而 B 在发给 A 的 ACK 包中,每一个都可以 重新设置 一个新的窗口大小,如果 A 收到了一个新的窗口大小值,A 会随之调整。

如果 A 收到了比原窗口值更大的窗口大小,比如 win = 6,则 A 会直接将窗口上边界向右移动 1 个单位。

如果 A 收到了比原窗口值小的窗口大小,比如 win = 4,则 A 暂时不会改变窗口大小,更不会将窗口上边界向左移动,而是等着 ACK 的到来,不断将左边界向右移动,直到窗口大小值收缩到新大小为止。

OK,终于将流量控制问题解决得差不多了,你看着上面一个个小动图,给这个窗口起了一个更生动的名字, 滑动窗口 。

但有的时候,不是 B 的接受能力不够,而是网络不太好,造成了 网络拥塞 。

拥塞控制与流量控制有些像,但流量控制是受 B 的接收能力影响,而拥塞控制是受 网络环境 的影响。

拥塞控制的解决办法依然是通过设置一定的窗口大小,只不过,流量控制的窗口大小是 B 直接告诉 A 的,而拥塞控制的窗口大小按理说就应该是网络环境主动告诉 A。

但网络环境怎么可能主动告诉 A 呢?只能 A 单方面通过 试探 ,不断感知网络环境的好坏,进而确定自己的拥塞窗口的大小。

拥塞窗口大小的计算有很多复杂的算法,就不在本文中展开了,假如 拥塞窗口的大小为 ?cwnd ,上一部分流量控制的 滑动窗口的大小为 rwnd ,那么窗口的右边界受这两个值共同的影响,需要取它俩的最小值。

窗口大小 = min(cwnd, rwnd)

含义很容易理解,当 B 的接受能力比较差时,即使网络非常通畅,A 也需要根据 B 的接收能力限制自己的发送窗口。当网络环境比较差时,即使 B 有很强的接收能力,A 也要根据网络的拥塞情况来限制自己的发送窗口。正所谓受其 短板 的影响嘛~

有的时候,B 主机的相应进程还没有准备好或是挂掉了,A 就开始发送数据包,导致了浪费。

这个问题在于,A 在跟 B 通信之前,没有事先确认 B 是否已经准备好,就开始发了一连串的信息。就好比你和另一个人打电话,你还没有"喂"一下确认对方有没有在听,你就巴拉巴拉说了一堆。

这个问题该怎么解决呢?

地球人都知道, 三次握手 嘛!

A:我准备好了(SYN)

B:我知道了(ACK),我也准备好了(SYN)

A:我知道了(ACK)

A 与 B 各自在内存中维护着自己的状态变量,三次握手之后,双方的状态都变成了 连接已建立 (ESTABLISHED)。

虽然就只是发了三次数据包,并且在各自的内存中维护了状态变量,但这么说总觉得太 low,你看这个过程相当于双方建立连接的过程,于是你灵机一动,就叫它 面向连接 吧。

注意:这个连接是虚拟的,是由 A 和 B 这两个终端共同维护的,在网络中的设备根本就不知道连接这回事儿!

但凡事有始就有终,有了建立连接的过程,就要考虑释放连接的过程,又是地球人都知道, 四次挥手 嘛!

A:再见,我要关闭了(FIN)

B:我知道了(ACK)

? ? ?给 B 一段时间把自己的事情处理完...

B:再见,我要关闭了(FIN)

A:我知道了(ACK)

????以上讲述的,就是 TCP 协议的核心思想,上面过程中需要传输的信息,就体现在 TCP 协议的头部,这里放上最常见的 TCP 协议头解读的图。

不知道你现在再看下面这句话,是否能理解:

TCP 是

面向连接的、可靠的、基于字节流的

传输层通信协议

面向连接、可靠,这两个词通过上面的讲述很容易理解,那什么叫做基于字节流呢?

很简单,TCP 在建立连接时,需要告诉对方 MSS(最大报文段大小)。

也就是说,如果要发送的数据很大,在 TCP 层是需要按照 MSS 来切割成一个个的? TCP 报文段? 的。

切割的时候我才不管你原来的数据表示什么意思,需要在哪里断句啥的,我就把它当成一串毫无意义的字节,在我想要切割的地方咔嚓就来一刀,标上序号,只要接收方再根据这个序号拼成最终想要的完整数据就行了。

在我 TCP 传输这里,我就把它当做一个个的 字节 ,也就是基于字节流的含义了。

一提到 TCP,可能很多人都想起被三次握手和四次挥手所支配的恐惧。但其实你跟着文中的思路你就会发现,三次握手与四次挥手只占 TCP 所解决的核心问题中很小的一部分,只是因为它在面试中很适合作为知识点进行考察,所以在很多人的印象中就好像 TCP 的核心就是握手和挥手似的。

如果你能从问题出发,真正理解 TCP 所想要解决的问题,你会发现很多原理就好像生活常识一样顺其自然,并不复杂,希望你读完本文能有所收获~

计算机网络第一章课后答案

1-01 计算机网络向用户可以提供那些服务?

答: 连通性和共享

1-02 简述分组交换的要点。

答:(1)报文分组,加首部

(2)经路由器储存转发

(3)在目的地合并

1-03 试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。

答:(1)电路交换:端对端通信质量因约定了通信资源获得可靠保障,对连续传送大量数据效率高。

(2)报文交换:无须预约传输带宽,动态逐段利用传输带宽对突发式数据通信效率高,通信迅速。

(3)分组交换:具有报文交换之高效、迅速的要点,且各分组小,路由灵活,网络生存性能好。

1-04 为什么说因特网是自印刷术以来人类通信方面最大的变革?

答: 融合其他通信网络,在信息化过程中起核心作用,提供最好的连通性和信息共享,第一次提供了各种媒体形式的实时交互能力。

1-05 因特网的发展大致分为哪几个阶段?请指出这几个阶段的主要特点。

答:从单个网络APPANET向互联网发展;TCP/IP协议的初步成型

  建成三级结构的Internet;分为主干网、地区网和校园网;

  形成多层次ISP结构的Internet;ISP首次出现。

1-06 简述因特网标准制定的几个阶段?

答:(1)因特网草案(Internet Draft) ——在这个阶段还不是 RFC 文档。

  (2)建议标准(Proposed Standard) ——从这个阶段开始就成为 RFC 文档。

(3)草案标准(Draft Standard)

(4) 因特网标准(InternetStandard)

1-07小写和大写开头的英文名字 internet 和Internet在意思上有何重要区别?

答:(1) internet(互联网或互连网):通用名词,它泛指由多个计算机网络互连而成的网络。;协议无特指

(2)Internet(因特网):专用名词,特指采用 TCP/IP 协议的互联网络

区别:后者实际上是前者的双向应用

1-08 计算机网络都有哪些类别?各种类别的网络都有哪些特点?

答:按范围:(1)广域网WAN:远程、高速、是Internet的核心网。

(2)城域网:城市范围,链接多个局域网。

(3)局域网:校园、企业、机关、社区。

(4)个域网PAN:个人电子设备

按用户:公用网:面向公共营运。专用网:面向特定机构。

1-09 计算机网络中的主干网和本地接入网的主要区别是什么?

答:主干网:提供远程覆盖\高速传输\和路由器最优化通信

本地接入网:主要支持用户的访问本地,实现散户接入,速率低。

1-10 试在下列条件下比较电路交换和分组交换。要传送的报文共x(bit)。从源点到终点共经过k段链路,每段链路的传播时延为d(s),数据率为b(b/s)。在电路交换时电路的建立时间为s(s)。在分组交换时分组长度为p(bit),且各结点的排队等待时间可忽略不计。问在怎样的条件下,分组交换的时延比电路交换的要小?(提示:画一下草图观察k段链路共有几个结点。)

答:线路交换时延:kd+x/b+s, 分组交换时延:kd+(x/p)*(p/b)+ (k-1)*(p/b)

其中(k-1)*(p/b)表示K段传输中,有(k-1)次的储存转发延迟,当s(k-1)*(p/b)时,电路交换的时延比分组交换的时延大,当xp,相反。

1-11 在上题的分组交换网中,设报文长度和分组长度分别为x和(p+h)(bit),其中p为分组的数据部分的长度,而h为每个分组所带的控制信息固定长度,与p的大小无关。通信的两端共经过k段链路。链路的数据率为b(b/s),但传播时延和结点的排队时间均可忽略不计。若打算使总的时延为最小,问分组的数据部分长度p应取为多大?(提示:参考图1-12的分组交换部分,观察总的时延是由哪几部分组成。)

答:总时延D表达式,分组交换时延为:D= kd+(x/p)*((p+h)/b)+ (k-1)*(p+h)/b

D对p求导后,令其值等于0,求得p=[(xh)/(k-1)]^0.5

1-12 因特网的两大组成部分(边缘部分与核心部分)的特点是什么?它们的工作方式各有什么特点?

答:边缘部分:由各主机构成,用户直接进行信息处理和信息共享;低速连入核心网。

  核心部分:由各路由器连网,负责为边缘部分提供高速远程分组交换。

1-13 客户服务器方式与对等通信方式的主要区别是什么?有没有相同的地方?

答:前者严格区分服务和被服务者,后者无此区别。后者实际上是前者的双向应用。

1-14 计算机网络有哪些常用的性能指标?

答:速率,带宽,吞吐量,时延,时延带宽积,往返时间RTT,利用率

1-15 假定网络利用率达到了90%。试估计一下现在的网络时延是它的最小值的多少倍?

解:设网络利用率为U。,网络时延为D,网络时延最小值为D0

U=90%;D=D0/(1-U)----D/D0=10

  现在的网络时延是最小值的10倍

1-16 计算机通信网有哪些非性能特征?非性能特征与性能特征有什么区别?

答:征:宏观整体评价网络的外在表现。性能指标:具体定量描述网络的技术性能。

1-17 收发两端之间的传输距离为1000km,信号在媒体上的传播速率为2×108m/s。试计算以下两种情况的发送时延和传播时延:

(1) 数据长度为107bit,数据发送速率为100kb/s。

(2) 数据长度为103bit,数据发送速率为1Gb/s。

从上面的计算中可以得到什么样的结论?

解:(1)发送时延:ts=107/105=100s

传播时延tp=106/(2×108)=0.005s

(2)发送时延ts=103/109=1μs

传播时延:tp=106/(2×108)=0.005s

结论:若数据长度大而发送速率低,则在总的时延中,发送时延往往大于传播时延。但若数据长度短而发送速率高,则传播时延就可能是总时延中的主要成分。

1-18 假设信号在媒体上的传播速度为2×108m/s.媒体长度L分别为:

(1)250px(网络接口卡)

(2)100m(局域网)

(3)100km(城域网)

(4)5000km(广域网)

试计算出当数据率为1Mb/s和10Gb/s时在以上媒体中正在传播的比特数。

解:(1)1Mb/s:传播时延=0.1/(2×108)=5×10-10

比特数=5×10-10×1×106=5×10-4

1Gb/s: 比特数=5×10-10×1×109=5×10-1

(2)1Mb/s: 传播时延=100/(2×108)=5×10-7

比特数=5×10-7×1×106=5×10-1

1Gb/s:比特数=5×10-7×1×109=5×102

(3) 1Mb/s: 传播时延=100000/(2×108)=5×10-4

比特数=5×10-4×1×106=5×102

1Gb/s:比特数=5×10-4×1×109=5×105

(4)1Mb/s:传播时延=5000000/(2×108)=2.5×10-2

比特数=2.5×10-2×1×106=5×104

1Gb/s:比特数=2.5×10-2×1×109=5×107

1-19 长度为100字节的应用层数据交给传输层传送,需加上20字节的TCP首部。再交给网络层传送,需加上20字节的IP首部。最后交给数据链路层的以太网传送,加上首部和尾部工18字节。试求数据的传输效率。数据的传输效率是指发送的应用层数据除以所发送的总数据(即应用数据加上各种首部和尾部的额外开销)。

若应用层数据长度为1000字节,数据的传输效率是多少?

解:(1)100/(100+20+20+18)=63.3%

(2)1000/(1000+20+20+18)=94.5%

1-20 网络体系结构为什么要采用分层次的结构?试举出一些与分层体系结构的思想相似的日常生活。

答:分层的好处:

①各层之间是独立的。某一层可以使用其下一层提供的服务而不需要知道服务是如何实现的。

②灵活性好。当某一层发生变化时,只要其接口关系不变,则这层以上或以下的各层均不受影响。

③结构上可分割开。各层可以采用最合适的技术来实现

④易于实现和维护。

⑤能促进标准化工作。

与分层体系结构的思想相似的日常生活有邮政系统,物流系统。

1-21 协议与服务有何区别?有何关系?

答:网络协议:为进行网络中的数据交换而建立的规则、标准或约定。由以下三个要素组成:

(1)语法:即数据与控制信息的结构或格式。

(2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。

(3)同步:即事件实现顺序的详细说明。

协议是控制两个对等实体进行通信的规则的集合。在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,而要实现本层协议,还需要使用下面一层提供服务。

协议和服务的概念的区分:

1、协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服务用户是透明的。

2、协议是“水平的”,即协议是控制两个对等实体进行通信的规则。但服务是“垂直的”,即服务是由下层通过层间接口向上层提供的。上层使用所提供的服务必须与下层交换一些命令,这些命令在OSI中称为服务原语。

1-22 网络协议的三个要素是什么?各有什么含义?

答:网络协议:为进行网络中的数据交换而建立的规则、标准或约定。由以下三个要素组成:

(1)语法:即数据与控制信息的结构或格式。

(2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。

(3)同步:即事件实现顺序的详细说明。

1-23 为什么一个网络协议必须把各种不利的情况都考虑到?

答:因为网络协议如果不全面考虑不利情况,当情况发生变化时,协议就会保持理想状况,一直等下去!就如同两个朋友在电话中约会好,下午3点在公园见面,并且约定不见不散。这个协议就是很不科学的,因为任何一方如果有耽搁了而来不了,就无法通知对方,而另一方就必须一直等下去!所以看一个计算机网络是否正确,不能只看在正常情况下是否正确,而且还必须非常仔细的检查协议能否应付各种异常情况。

1-24 论述具有五层协议的网络体系结构的要点,包括各层的主要功能。

答:综合OSI 和TCP/IP 的优点,采用一种原理体系结构。各层的主要功能:

物理层物理层的任务就是透明地传送比特流。(注意:传递信息的物理媒体,如双绞

线、同轴电缆、光缆等,是在物理层的下面,当做第0 层。)物理层还要确定连接电缆插头的定义及连接法。

数据链路层数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。每一帧包括数据和必要的控制信息。

网络层网络层的任务就是要选择合适的路由,使发送站的运输层所传下来的分组能够

正确无误地按照地址找到目的站,并交付给目的站的运输层。

运输层运输层的任务是向上一层的进行通信的两个进程之间提供一个可靠的端到端

服务,使它们看不见运输层以下的数据通信的细节。

应用层应用层直接为用户的应用进程提供服务。

1-25 试举出日常生活中有关“透明”这种名词的例子。

答:电视,计算机视窗操作系统、工农业产品

1-26 试解释以下名词:协议栈、实体、对等层、协议数据单元、服务访问点、客户、服务器、客户-服务器方式。

答:实体(entity)表示任何可发送或接收信息的硬件或软件进程。

协议是控制两个对等实体进行通信的规则的集合。

客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户是服务的请求方,服务器是服务的提供方。

客户服务器方式所描述的是进程之间服务和被服务的关系。

协议栈:指计算机网络体系结构采用分层模型后,每层的主要功能由对等层协议的运行来实现,因而每层可用一些主要协议来表征,几个层次画在一起很像一个栈的结构.

对等层:在网络体系结构中,通信双方实现同样功能的层.

协议数据单元:对等层实体进行信息交换的数据单位.

服务访问点:在同一系统中相邻两层的实体进行交互(即交换信息)的地方.服务访问点SAP是一个抽象的概念,它实体上就是一个逻辑接口.

1-27 试解释everything over IP 和IP over everthing 的含义。

TCP/IP协议可以为各式各样的应用提供服务 (所谓的everything over ip)

答:允许IP协议在各式各样的网络构成的互联网上运行(所谓的ip over everything)

(责任编辑:IT教学网)

更多