复试知识点
进程之间的通信
面向通信部分的最高层
用户功能中的最底层
提供应用进程之间的逻辑通信
运输层的端口
识别各应用层进程
只具有本地意义:
端口范围:
熟知端口(1~1023)
注册(或登记端口)(1024~49151)
动态(或客户、短暂)端口号:(49152~65535)
UDP
特点
无连接
减少开销和发送时延
尽最大努力交付
面向报文(对报文不拆分不和并)
没有拥塞控制
支持一对一、一对多、多对一、多对多的交互通信
首部开销小。(八个字节)
无编号
TCP
特点
进程到进程间
流交付服务(无结构的字节流)
全双工通信(发送、接收缓存)
复用和分用(发送——复用,接收——分用)
面向连接的服务
可靠的服务(无差错、不丢失、不重复、按序到达)
套接字
IP地址加端口号
TCP连接::={socket1,socket2}
可靠传输的工作原理
停止等待协议(等待确认后再发送)
在发送完一个分组后,必须暂时保留已发送分组的副本。
分组和确认分组都必须进行编号。
超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些。
自动重传请求ARQ
简单,单信道利用率低
连续ARQ协议
发送窗口、累计确认(对按序到达的最后一个分组发送确认)
TCP可靠传输的实现
以字节为单位的窗口滑动
窗口位置由后沿和前沿决定
必须按序确认
发送(接受)缓存>发送(接受)窗口>已发送(按序到达)
例题
一、 选择题
1. ISO传输层中数据传输的任务是在两个传输实体之间( )。
A. 传输用户数据 B. 控制数据 C. 进行数据差错检测 D. A和B
2. 下列关于传输服务的面向连接服务和无连接服务说法中正确的是( )。
A. 面向连接的服务是可靠的服务,无连接的服务也可以提供可靠服务
B. 面向连接的服务是可靠的服务,而无连接的服务只能提供不可靠的服务
C. 面向连接的服务和无连接的服务都是提供不可靠的服务
D. 以上说法都不正确
3. 传输层的数据传输任务一般地( )。
A. 只采用全双工服务
B. 采用全双工服务,个别场合也可采用半双工服务
C. 只采用半双工服务
D. 以上都不正确
4.( )是传输层数据交换的基本单位。
A. 位 B. 分组 C. 帧 D. 报文段
5. 基于TCP/IP 的互联网服务中,IP 协议提供主机之间的不可靠的无连接的分组传输服务。TCP协议提供端口之间的( A )报文传输服务,为了实现可靠的服务,采用超时重传、确认技术。
A.可靠的面向连接的 B.不可靠的面向连接的
C.可靠的无连接的 D.不可靠的无连接的
6. TCP传输中的协议规定,在确认信息中捎带( )的序号以减少通信量。
A.上一个已接收的报文 B.下一个希望接收的报文
C.正在发送的报文 D.下一个将要发送的报文
7. TCP采用( C)技术来实现可靠比特流的传输。
A. 超时重传 B. 肯定确认
C. 超时重传和肯定确认 D. 丢失重传和重复确认
8. TCP协议采用滑动窗口协议解决了端到端的流量控制,滑动窗口协议规定重传未被确认的分组,这种分组的数量最多可以( )。
A. 是任意的 B.大于滑动窗口的大小
C. 1个 D. 等于滑动窗口的大小
9. 在TCP/IP网络中,为各种公共服务保留的端口号范围是( )。
A. 1~255 B. 1~1023 C. 1~1024 D. 1~65535
10.TCP是一个面向连接的协议,它提供连接的功能是( )的。
A. 全双工 B.半双工
C. 单工 D. 不确定
11.为了保证连接的可靠性,TCP通常采用()
A. 3次握手法 B. 窗口控制机制
C. 端口机制 D. 自动重发机制
12. 在TCP/IP协议簇中,UDP协议工作在()
A. 应用层 B. 传输层
C. 网络互联层 D. 网络接口层
13.关于TCP和UDP,下列哪种说法是错误的?()
A. TCP和UDP的端口号是相互独立的
B. TCP和UDP的端口号是完全相同的,没有本质区别
C. 在利用TCP发送数据前,需要与对方建立一条TCP连接
D. 在利用UDP发送数据前,不需要与对方建立连接
14. 三次握手方法用于()
A. 传输层连接的建立 B. 数据链路层的流量控制
C. 传输层的重复检测 D. 传输层的流量控制
15. 传输层可以通过 标识不同的应用()。
A. 物理地址 B. 端口号
C. IP地址 D. 逻辑地址
16基于TCP/IP的因特网服务中,IP协议提供主机之间的() 分组传输服务。
A. 可靠的面向连接的 B. 不可靠的面向连接的
C. 可靠的无连接的 D. 不可靠的无连接的
17. TCP协议提供端口之间的()报文传输服务;
A. 可靠的面向连接的 B. 不可靠的面向连接的
C. 可靠的无连接的 D. 不可靠的无连接的
- TCP是一个面向连接的协议,它提供连接的功能是全双工的,采用()技术来实现可靠数据流的传送。
A. 超时重传
B. 肯定确认(捎带一个分组的序号)
C. 超时重传和肯定确认(捎带一个分组的序号)
D. 丢失重传和重复重传
1920. TCP是因特网中的传输层协议,使用3次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答()。这种建立连接的方法可以防止()。
19. A. SYN,ACK B. FIN,ACK
C. PSH,ACK D. RST,ACK
20. A. 出现半连接 B. 无法连接
C. 假冒的连接 D. 产生错误的连接
21 在TCP 协议中,建立连接时需要将( )字段中的( )标志位位置1。
21.A.保留,ACK B.保留,SYN
C.偏移,ACK D.控制,SYN
22. 关于无连接的通信,下面描述中正确的是( )。
A.由于每一个分组独立地建立和释放逻辑连接,所以无连接的通信不适合 传送大量的数据
B.由于通信对方的通信线路都是预设的,所以在通信过程中无需任何有关 连接的操作
C.目标的地址信息被加到每个发送的分组上
D.无连接的通信协议UDP不能运行在电路交换或租用专线网络上
23. 下面信息中( )包含在TCP头中而不包含在UDP头中。
A.目标端口号 B.顺序号
C.发送端口号 D.校验号
24. TCP段头的最小长度是( )字节。
A.16 B.20 C.24 D.32
25 在TCP 协议中,建立连接时需要将( )字段中的( )标志位位置1。
A.保留,ACK B.保留,SYN
C.偏移,ACK D.控制,SYN
26. 关于无连接的通信,下面描述中正确的是( )。
A.由于每一个分组独立地建立和释放逻辑连接,所以无连接的通信不适合 传送大量的数据
B.由于通信对方的通信线路都是预设的,所以在通信过程中无需任何有关 连接的操作
C.目标的地址信息被加到每个发送的分组上
D.无连接的通信协议UDP不能运行在电路交换或租用专线网络上
27. 下面信息中( )包含在TCP头中而不包含在UDP头中。
A.目标端口号 B.顺序号
C.发送端口号 D.校验号
28. TCP段头的最小长度是( )字节。
A.16 B.20 C.24 D.32
29. TCP是互联网中的传输层协议,TCP协议进行流量控制的方式是(1),当TCP实体发出连接请求(SYN)后,等待对方的(2)相应。
1: A.使用停等ARQ协议 B.使用后退N帧ARQ协议
C.使用固定大小的滑动窗口协议 D.使用可变大小的滑动窗口协议
2. A.SYN B.FIN、ACK C.SYN、ACK D.RST
- 传输层的任务是什么?传输层在OSI中的地位及目的?
1、答:传输层的任务处理一些由网络层引进的错误,如,包丢失和重复包,以及对包进行重新排序、分段和重装,这样可以避免网络层进行低效的分段和重装。另外,这也有助于传输层在网络发生拥塞时可以相应降低发送数据的速率。传输层负责端到端的通信,既是7层体系结构中负责数据通信的最高层,又是面向网络通信的低3层和面向信息处理的最高3层之间的中间层。传输层要达到以下两个主要目的:(1)提供可靠的端到端的通信;(2)向会话层提供独立于网络的传输服务。
- 试用具体例子说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况。
2、答:我们知道,3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。
现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机A和B之间的通信,假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
此外,还可能建立无用的连接。考虑B给A发送一个连接请求分组,但该分组延迟了很长时间才到达A,B已经重发连接建立请求。而延迟的请求分组到达A后,A认为这是一个新的请求,从而建立起无用的连接。
一个TCP报文段的数据部分最多为多少字节?为什么?
3、答:65495字节。此数据部分加上TCP首部的20字节,再加上IP数据报的首部的20字节,正好是IP数据报的最大长度。当然,IP首部包含了选择,则IP首部长度超过20字节,这时TCP报文段的数据部分的长度将小于65495字节。在TCP/IP协议族的传输层中,有两个不同的传输层协议TCP和UDP,为什么设置这样两种不同的协议,试对它们进行比较。
TCP和UDP是工作在传输层的因特网协议,其中TCP(Transmission Control Protocol,传输控制协议)是专门设计用于在不可靠的因特网上提供可靠的、端到端的字节流通信的协议。TCP协议将数据分成可被IP层传输的数据包交IP层传送,或者将从IP层收到的数据包重新组合为完整的消息并进行校验。TCP是面向连接的协议。 UDP(User Datagram Protocol)用户数据报协议。它是TCP/IP协议中的非连接协议。UDP向应用程序提供了一种发送封装的原始IP数据报的方法,并且发送时无需建立连接。它将应用程序产生的数据信息转化成数据包,然后经由IP发送。它不验证消息是否正确发送,其可靠性依赖于产生消息的应用程序自身。 TCP的连接是可靠的,UDP连接是不可靠的。
6、试说明传输层在协议栈中的地位和作用,传输层的通信和网络层的通信有什么重要区
别?为什么传输层是必不可少的?
6、答:传输层在协议栈中的地位和作用:传输层向它上面的应用层提供通信服务,它属于
面向通信部分的最高层,同时也是用户功能中的最低层。
传输层的通信和网络层的通信的区别:网络层是为主机之间提供逻辑通信,传输层是为应用进程之间提供端到端的逻辑通信。
• 传输层是必不可少的,是因为:从IP层来说,通信的两端是主机。但是,两个主机之间真正进行通信的实体是主机中的应用进程。IP协议虽然能够把分组传送到目的主机,但这个分组还在目的主机的网络层,而没有交给应用进程,因而需要设置传输层来对IP分组进行复用和分用。另一方面,低三层的通信没有提供可靠通信。
7、网络层提供数据报或虚电路服务对上面的运输层有何影响?
7、答:网络层所提供的服务越多,传输层协议就可以做得越简单。若网络层提供虚电路服
务,那就能保证报文无差错、不丢失、不重复且按序地进行交互,因而传输协议就很简单。
• 但若网络层提供的是不可靠的数据报服务,则就要求主机上有一个复杂的传输协议。
8、当应用程序使用面向连接的TCP和无连接的IP时,这种传输是面向连接的还是面向无
连接的?
8、答:都是。这要在不同层次来看,在运输层是面向连接的,在网络层则是无连接的
9、如果应用程序愿意使用UDP来完成可靠的传输,这可能吗?请说明理由
9、答:不可能。因为UDP协议只在IP的服务之上增加了很少一点的功能,就是端口的功能和差错检测的功能。所以不可能使用UDP协议实现可靠传输。
10、为什么说UDP是面向报文的,而TCP是面向字节流的?
10、答:发送方UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
• 接收方UDP对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。
• 虽然应用程序和TCP协议的交互是一次一个数据块,但TCP协议把应用程序交下来的数
据看成仅仅是一连串的无结构的字节流,并不知道字节流的含义。
TCP协议不保证接收方应用程序收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系。
• 在报文流中,网络保持对报文边界的跟踪;而在字节流中,网络不做这样的跟踪。例如,一个进程向运输层写了512字节,稍后又写了另外512字节。那么接收方共读了1024字节。对于报文流,接收方将得到两个报文,每个报文512字节。而对于字节流,报文边界不被识别。接收方把全部的1024字节当作一个整体,在此已经体现不出原先有两个不同的报文的事实。
11、端口的作用是什么?为什么端口要划分为三种?
11、答:端口的作用是对TCP/IP体系的应用进程进行统一的标志,使运行不同操作系统的计算机的应用进程能够互相通信。把端口划分为3类是因为:避免端口号重复,无法区分应用进程。二是因特网上的计算机通信都是采用C/S方式,在客户发起通信请求时,必须知道服务器的端口,对于一些主要的应用程序,必须让所有用户知道。
12、某个应用进程使用运输层的UDP,然而继续向下交给IP层后,又封装成IP数据报。
既然都是数据报,可否跳过UDP而直接交给IP层?哪些功能UDP提供了但IP没提提供?
12、答:一般来说仅仅使用IP分组还不够,IP分组包含IP地址,该地址指定一个目的主机,一旦这样的分组到达目的主机,网络控制程序如何知道该把它交给哪个应用进程呢?UDP报文包含一个目的端口,有了它,分组才能被投递给正确的应用进程。UDP提供的端口号和对数据的差错检验功能是IP协议没有提供的。
13、一个应用程序用UDP,到了IP层把数据报再划分为4个数据报片发送出去,结果前两个数据报片丢失,后两个到达目的站。过了一段时间应用程序重传UDP,而IP层仍然划分为4个数据报片来传送。结果这次前两个到达目的站而后两个丢失。试问:在目的站能否将这两次传输的4个数据报片组装成完整的数据报?假定目的站第一次收到的后两个数据报片仍然保存在目的站的缓存中。
13、答:不行。重传时,IP数据报的标识字段会有另一个标识符。仅当标识符相同的IP数据报片才能组装成一个IP数据报。由于前两个IP数据报片的标识符与后两个IP数据报片的标识符不同,因此不能组装成一个IP数据报。
14、一个UDP用户数据的数据字段为8192字节。在数据链路层要使用以太网来传送。试
问应当划分为几个IP数据报片?说明每一个IP数据报字段长度和片偏移字段的值。
14、答: UDP报文的长度=8192+8=8200字节。由于以太网的MTU=1500B,所以IP分组的数据
部分长度为1500-20=1480B。因此需要划分为6个IP数据报片。
• 数据字段的长度:前5个是1480字节,最后一个是800字节。
• 片偏移字段的值分别是:0,185,370,555,740和925。
15、使用TCP对实时话音数据的传输有没有什么问题?使用UDP在传送数据文件时会有什么问题?
15、答:使用TCP传输实时语音数据会有较大的开销和时延,因为TCP是面向连接的。一般使用UDP协议。
• 使用UDP协议传送数据文件时没有可靠性保障,因为UDP协议是无连接的,不保证可靠交付。
16、UDP用户数据报的首部十六进制表示是:06 12 00 45 00 1C E2 17。试求源端口号、目的端口号、用户数据报的总长度、数据部分长度。这个用户数据报是从客户发送给服务器还是从服务器发送给客户?使用UDP的这个服务器程序是什么?
16、答:源端口这1554,目的端口为69,UDP数据报总长度28字节,数据部分长度为20字节。此UDP用户数据报是从客户发给服务器,服务器程序是TFTP。
17、为什么TCP协议要求对每一个TCP数据字节进行编码?
17、TCP 协议是一种可靠的面向连接的协议,它允许将一台主机的字节流( byte stream )无差错地传送到目的主机。发送方主机中的TCP 将来自进程的数据放到该连接的发送缓存里,然后TCP 就会不时从发送缓存里取出一块数据准备发送。TCP 给所有发送的字节都进行编号,并且发送数据的一方希望得到接收数据一方的肯定应答ACK(即接收方告知发送方数据收到)。如果接收方在一定时间内没有收到ACK,则表明数据丢失或延迟,允许重新发送数据。由于数据在运输层是分段传输的,所以只有每个数据段的第一个字节编号被发往目的主机。
18、在一条往返时间为10ms的无拥塞线路上使用慢启动算法效果。接收窗口为24KB,最大数据段长度为2KB。请问需多长时间才能发送满窗口的数据?
18、答:按照慢启动算法,经过10、20、30、40ms 后拥塞窗口大小分别为4、8、16、32,所以在40ms 后将按照min{24,32}=24KB 发送数据。
19、假设TCP的拥塞窗口被设置为18KB,并且出现了一个超时。如果接下来的4次传输全部成功的话,则接收窗口将是多大?假设最大数据段长度为1KB。
19、 由于发生了超时,下一次传输将是1 个最大报文段,然后是2 个、4 个、8 个最大报文段,所以在4 次突发量传输后,拥塞窗口将是8K 字节。
