关键词: 进程之间的信道、两个基本协议(TCP/IP)、分用和复用、停止等待协议、连续ARQ协议、可靠与不可靠传输、TCP的传输效率、拥塞控制、滑动窗口、超时重传机制、流量控制、三报文和四报文握手
问题概述:
- 关于运输层你有那些基本的认识?
- 你能说说你对TCP和UDP的基本了解知识?
- 什么是运输层的端口?
- 你能在上述 2 问题的基础上谈谈你对UDP的更多认识吗?
- 你能在上述 2 问题的基础上谈谈你对TCP的更多认识吗?
- 请简要叙述TCP的首部是怎么样的?
- 我们知道TCP的可靠传输依靠于滑动窗口、超时确认重传机制等等,那关于滑动窗口你有那些理解?
- 什么是TCP的流量控制,你对它有什么了解?
- TCP的流量控制和拥塞控制好像都是针对于发送方,那它们的区别是什么?
- 你能说出TCP的拥塞控制方法有哪四种吗?
- 你能用自己的话说说TCP建立连接和释放连接是怎么样的一个过程?
一、大话问题解答
-
关于运输层你有那些基本的认识? 答:1.它属于面向通信部分的最高层,同时也是用户功能中的最低层,在路由器中不存在运输层 。2.从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。也就是说,端到端的通信是应用进程之间的通信。3.根据应用程序的不同需求,运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP 。 -
你能说说你对TCP和UDP的基本了解知识? 答:TCP,用户数据报协议,基本数据单元是:报文段,它面向连接的,也就是说两台主机中的某进程进行通信必须经历三个过程:1.建立连接 2.传送数据 3.释放连接,也正因为如此TCP不提供广播和多播服务。并且其中包含的:流量控制,确认重传机制等等这些限制条件保证了可靠的传输。 而UDP,传输控制协议,基本数据单元:用户数据报,它是无连接的,提供不可靠的传输(尽最大努力的交付) -
什么是运输层的端口? 答:它用一个 16 位端口号进行标志,其实运输层的每一个端口就像相当于一道门,它对应着每一个应用程序的进程(一个应用程序可以有多个进程),这点和运输层的分用和复用有着紧密的联系。熟知的端口号或者全球通用端口号:0—1023;登记的端口号:1024—49151; 客户端的端口号:49152—65535。常用的熟知端口: -
你能在上述 2 问题的基础上谈谈你对UDP的更多认识吗? 答: 1.UDP 的首部开销十分小,只有 8 个字节,比 TCP 的 20 个字节的首部要短。的 2.UDP也没有堵塞控制,可靠传输等等,其可以是一对一、一对多、多对一以及多对多的服务,主要用于传输视频等流媒体,像我们打视频电话的时候卡顿了,当恢复时已经不再是卡顿时的画面,而是当前时刻。3.应用层交给 UDP 多长的报文,UDP 就按照此长度加上首部发送给网络层多少,即一次发送一个报文,其字段格式为:源端口+目的端口+长度+校验和; -
你能在上述 2 问题的基础上谈谈你对TCP的更多认识吗? 答:TCP是全单工的通信方式,面向字节流的。TCP的信息的交付不在是UDP的端口,而是套接字,我们通常有: 套接字 Socket= (IP地址:端口号)例如:192.3.4.5:80, 注意:同一个IP地址可以有多条不同的TCP连接,同一个端口也可以有多条不同的TCP连接 -
请简要叙述TCP的首部是怎么样的? 答:TCP的固定首部有20个字节,后面的4n个字节是根据需要而增加的项,因此TCP首部的最短长度为20字节。TCP的格式示例图如下:
各个字段的注意事项总结:1、序号与确认号是对应的关系,确认号是期望对方(发送方)发送的第一个数据字节的序号开始。例如:A 向 B发送了一个开始序列号是501的报文段,其数据长度是200.即(序号 501—701),B 如果全部收到了这200个字节(没有丢失数据出现),则 B 向 A 发送的确认号为701。 “701” 表明 B 给 A说:前面的700个字节我都收到了,我希望下一个字节序号是从701开始的。总之就是:确认号 = 开始序列号+数据长度。 2、数据偏移代表的就是首部长度,数据偏移最大的值为60字节(首部长度不能超过60字节,可选部分的长度不能超过40字节)。 3、申请建立连接时报文段用:ACK = 0,SYN = 1;同意建立连接时报文段用:ACK = 1,SYN = 1。 4、MSS (Maximum Segment Size)是 TCP 报文段中的数据字段的最大长度,而不是TCP报文段(数据字段+首部)。所以,MSS 是 “TCP 报文段长度减去 TCP 首部长度”。
-
我们知道TCP的可靠传输依靠于滑动窗口、超时确认重传机制等等,那关于滑动窗口你有那些理解? 答:(1)滑动窗口是以字节为传输单位的 (2)注意窗口中的下标的开始与结束 (3)我们使用的是三个指针来表示窗口大小和其中的内容,例如:p1、p2、p3,注意这里的 p3 指向的是滑动窗口外的一个字节(51),p2指向的是可以发送但未发送的开始部分,P1指向的是可以发送的开始。示例图如下所示: -
什么是TCP的流量控制,你对它有什么了解? 答:其实就是让发送方不要发送的太快了,让接受方可以接受的过来。它是针对于发送方的流量控制。示例图: -
TCP的流量控制和拥塞控制好像都是针对于发送方,那它们的区别是什么? 答:它们本质产生的原因是不一样的,流量控制是由于接收方的接受窗口或者说是接受缓存不能够和发送的发送速率匹配,从而希望发送方可以发送的慢一些;而拥塞控制是由于网络中(传输过程发送了延时堵塞等等),希望发送方可以发送的慢一些。 -
你能说出TCP的拥塞控制方法有哪四种吗? 答:慢开始、拥塞避免、快重传、快恢复。这几个词语很形象的描述了对于拥塞控制它们各自是怎么处理的。注意:(1)超时确认时可能说明出现了拥塞,而超时确认重传一定是出现了拥塞。对于上述四个拥塞控制方法采取的形式大致这样简述: (1):慢开始时刻,最初的拥塞窗口:一般是较小的,根据协议和网络转态等因素确定的。但慢开始阶段的拥塞窗口确是成倍的增加的(1-2-4-8-16),直到遇到慢开始的门限(根据协议和网络转态等因素动态确定的)。(2)此时一般开始执行避免拥塞算法即增长数度由成倍的降到每次加 1(17-18-19-20),持续增加如果网络出现超时重传,则执行慢开始从最小的拥塞窗口开始,并将慢开始的门限值设置为:超时重传时的拥塞窗口/2;当到达新的门限时,则又执行避免拥塞算法,但是如果说遇到3个确认号情况,我们则执行快恢复算法,即将拥塞开始窗口和慢开始的门限均设置为:超时重传时的拥塞窗口/2。如图所示; -
你能用自己的话说说TCP建立连接和释放连接是怎么样的一个过程? 答:用于内容较多,请网络查阅参考了解,示例图如图所示: TCP建立连接: TCP释放连接:
二、习题探索
-
在采用TCP连接的数据传输阶段,如果发送端的发送窗口值由1000变为2000,那么发送端在收到一个确认之前可以发送( )。 A. 2000B B. 1000B C. 2000个TCP报文段 D. 1000个TCP报文段 正确答案:A -
以下说法错误的是( )。 A. 传输层提供的是主机间的点到点数据传输 B. 传输层是OSI模型的第四层 C. TCP是面向连接的,UDP是无连接的 D. TCP进行流量控制和拥塞控制,而UDP既不进行流量控制,又不进行拥塞控制 正确答案: A,运输层是进程与进程之间的,端到端的通信 -
A和B建立了TCP连接,当A收到确认号为100的确认报文段时,表示( )。 A. 末字节序号为100的报文段已收到 B. 报文段100已收到 C. 末字节序号为99的报文段已收到 D. 报文段99已收到 正确答案: C,注意这里的:末字节序号为99的报文段和报文段99的不同,前者是99以前的报文段都收到了,后者是报文段99收到了。 -
UDP数据报比IP数据报多提供了( )服务。 A. 端口功能 B. 流量控制 C. 拥塞控制 D. 路由转发 正确答案: A,参见 UDP 的头部文件格式 -
使用UDP的网络应用,其数据传输的可靠性由( )负责。 A. 应用层 B. 传输层 C. 网络层 D. 数据链路层 正确答案: A, 传输层和网络层均不可靠了,只有靠应用层的某些软件设计来保证可靠性的传输 -
下列关于传输层协议中面向连接的描述,( )是错误的。 A. 面向连接的服务提供了一个可靠的数据流 B. 面向连接的服务可以保证数据到达的顺序是正确的 C. 面向连接的服务有很高的效率和时间性能 D. 面向连接的服务需要经历3个阶段:连接建立、数据传输以及连接释放 正确答案:C,UDP才具有很高的效率和时间性能,因为不用进行确认,对于A答案我觉得也有一点问题,到达的顺序是正确的,我认为不一定,TCP中的可选项首部里面就有一个选择确认及其它的相关知识说明,不一定到达的顺序是正确的,并且每个报文段可能发送的路由路径可能是不一样的,也就是延时拥塞等等也可能导致顺序不一致。但如果说是顺序交付给应用层我认为就是对的,运输层根据收到的数据序号使用相关算法对其顺序化后再交付为应用层。因此,数据的到达不一定是正确的顺序,但是交付给应用层一定是正确的顺序(不考虑其他冗余等因素)。 -
在TCP通信中使用源端口号的目的是什么? A. 查询未接收的数据段 B. 组装未按顺序到达的数据段 C. 跟踪设备之间的多个会话 D. 通知远程设备对话已结束 正确答案: C,解析:同一个IP地址可以有多条不同的TCP连接,同一个端口也可以有多条不同的TCP连接 -
TCP可靠传输的实现中,不包括( )。 A. 超时重传时间的选择 B. TCP报文选项部分的选择确认(SACK)字段 C. TCP报文的紧急指针字段 D. 以字节为单位的滑动窗口 正确答案: C,解析:注意题目给的可靠传输的实现,这里的紧急指针是加紧派送的意思,就像寄快递的时候的水果等易变质的物品先派送一样。
|