考研复试-传输层-计算机网络面试题

1.运输层有什么作用?
答:传输层它提供的的是应用进程之间的逻辑通信。
运输层它向它的上一层,也就是应用层,屏蔽了下面网络的细节,所以它使应用进程看见的就是好像是2各传输层实体之间有一条端到端的逻辑通信信道。

2.传输层主要有哪些协议?这些协议又有哪些特点呢?
答:传输层主要有2个主要的协议,分别是TCP和UDP。
TCP的中文名称是传输控制协议,英文名称是Transmission Control Protocol
UDP的中文名称是用户数据报协议,英文名称是User Datagram Protocol

以下是tcp和udp协议的区别
tcp							udp
面向连接						无连接
提供可靠交付的服务	   	    尽最大努力交付,它是不可靠的
面向字节流 					面向报文
每一条TCP连接只能是点对点的   支持一对一,一对多,多对一,多对多通信
首部有20字节					首部只有8字节,首部开销小
							udp是没有拥塞控制的

3.说说你对端口号的理解
答:端口号它只有本地意义,在互联网中的不同的计算机中,相同的端口号它是没有关联的。
2台计算机中的进程要通信,光是知道对方主机的ip地址是不够的,还必须知道对应进程所对应的端口号。需要ip地址是为了找到对方的计算机,而需要端口号是为了找到对方计算机中的应用进程。
运输层的端口号分为服务器使用的端口号和客户端暂时使用的端口号。其中,0-1023是熟知端口。

4.你知道什么是套接字吗?
答:套接字是由ip地址并上端口号组成的。它是用来作为tcp连接的端点的。

5.运输层是如何实现可靠传输的?
答:使用停止等待协议,停止等待协议可以在不可靠的的传输网络上实现可靠的通信。
停止等待协议是这样的,比如a是发送方,b是接收方,此时a给b发送分组,但是a每发送完一个分组就会停止发送下一个分组,它会等待b的确认,只有等到b的确认它才会继续发送下一个分组。

6.那你知道什么是超时重传吗?
答:我认为超时重传是停止等待协议中的一个措施吧。还是前面那个例子,a是发送方,b是接收方。如果a它一直接受不到b的确认,那么a它就会认为刚刚发送的分组丢失了,它就是将刚刚的分组重新发送一遍,这就是超时重传。
所以,如果要实现超时重传,那么必须在每发送完一个分组时设置一个超时计时器
当然,超时计时器设置的重传时间它是应该要比数据在分组传输的平均往返时间要长一点的。
这种自动重传发送常常被称为自动重传请求ARQ
Automatic Repeat Request

7.好的,那你知道ARQ,那就再说说连续ARQ是什么意思吧?
答:连续ARQ的出现实际上是为了提高信道的利用率,普通的ARQ它是一个一个分组的确认,它需要等前一个分组收到确认后再传送下一个分组,这样就导致信道的利用率非常的低,那么连续ARQ它是连续发送多个分组,然后累计多少个报文再确定,比如,它可能规定a发送10个分组后,b这边才会返回一个确认,如果这10个分组中有一个分组出现了问题,那么发送方a就需要重新传送这10个分组。
对了,连续ARQ它发送的确认是对按序到达的最后一个分组。表明到这个分组为止的所有分组都已经正确接收到了

8.请说一说你对TCP报文段首部的了解
答:首先,tcp报文段的首部是有20字节的,而且首部的字段都是固定的。
它主要包含,源端口,目的端口,序号,确认号,数据偏移,保留,6个控制位,窗口,校验和,紧急指针和选项。
其中,6个控制位分别是
SYN,ACK,FIN,URG,PSH,RST
那么在非常著名的三次握手协议中,就用到了SYN,ACK,和FIN字段。
SYN是同步序号,用于在连接建立时同步序号,SYN置为1时,表明这是一个连接请求或连接接受报文。
ACK是确认号,TCP规定,在连接建立后,所有传送的报文段都必须把ACK置1
FIN是终止位,当FIN=1时,表明此报文段的发送方的数据已经发送完毕,并要求释放运输连接。

9.好的,我看你有提到TCP的三次握手协议,你可以说一说TCP三次握手的过程吗?
答:假设a为客户机,b为服务器
a首先向b发送一个连接请求报文,其中SYN=1,ACK=0,seq=x。SYN=1,ACK=0表示这是一个连接请求报文,x为随机的一个序号。
然后b给a返回一个确认报文,其中SYN=1,ACK=1,seq=y,ack=x+1。SYN=1,ACK=1表示这是一个连接接受报文,y为一个随机序号,ack=x+1表示b已经收到序号为x的包了,现在b希望收到序号为x+1的数据包。
a此时再向b返回一个确认的确认,其中ACK=1,seq=x+1,ack=y+1.seq=x+1表示我现在给你发的就是序号为x+1的包,ack=y+1表示我已经收到了序号为y的包,现在我希望收到序号为y+1的包。

10.好的,那再请你说一下TCP四次挥手的过程。
答:假设a为客户机,b为服务器
a首先给b发送一个连接释放报文,其中FIN=1,seq=u,其中FIN=1表示a要主动关闭连接了。
此时b返回一个确认报文,其中ACK=1,seq=v,ack=u+1,表示b已经知道a要释放连接了。
但是!!此时b并没有释放连接,这个时候a已经不能给b发了,但是b依旧可以给a发送数据。
等b的数据传输结束后,b也会给a发送一个连接释放报文段,此时FIN=1,ACK=1,seq=w,ack=u+1,seq=w表示我现在发送的报文段的序号是w,ack=u+1表示我已经收到序号为u的报文段了,现在我希望收到序号为u+1的数据包。
a此时再向b返回一个确认的确认,其中ACK=1,seq=u+1,ack=w+1,seq=u+1表示我现在发送的数据包序号为u+1,ack=w+1表示我已经收到序号为w的数据包了,现在希望收到序号为w+1的数据包。
至此,四次挥手过程结束。

11.请说一下滑动窗口协议吧。
答:比如a给b发送数据,那么a有一个发送窗口,b有一个接受窗口。
a的发送窗口最大不能超过b的接受窗口,也就是说a的发送窗口是由b的接受窗口决定的。
发送窗口里面的序号表示允许发送的序号,发送窗口后沿的后面部分表示已发送且已收到了确认,而发送窗口前沿的前面部分表示不允许发送。发送窗口后沿的变化情况有2种可能,即不动(没有收到新的确认)和前移(收到了新的确认)。发送窗口前沿通常是不断向前移动的。

12.什么叫做拥塞?
答:就是在某段时间,若对网络中某一资源的需求超过了该资源所能提供的,网络的性能就要变坏。这种情况就叫做拥塞。

13.请说一下TCP的流量控制和拥塞控制的区别。
答:流量控制就是让发送端的发送速率不要太快,要让接收方来得及接收。因为如果发送方把数据发送的过快,接收方可能就来不及接收,这就会造成数据的丢失。
拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
拥塞控制是一个全局性的过程,涉及到所有的主机,所有的路由器,以及与降低网络传输性能有关的所有因素。
相反,流量控制往往是指点对点通信量的控制,是个端到端的问题(接收端控制发送端)流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

14.为什么要使用拥塞控制?
答:有了拥塞控制可以防止网络吞吐量变为0,出现死锁这种情况。

15.TCP的拥塞控制方法是什么?
答:有四个算法,分别是慢开始,拥塞避免,快重传和快恢复。
假设刚开始的时候慢开始的门限值是16,那么刚开始拥塞窗口的值为1,然后以2的倍数增加,即1,2,4,8…,直到拥塞窗口的值变为16,达到慢开始的门限值,此时,拥塞窗口的值不再以2的倍数增加,而是加法增大,就是加一加一的那种,直到出现超时情况。
出现超时情况后,发送端就判断为网络拥塞,就将门限值调整为超时时拥塞窗口的一半,假如此时在cwnd=24时发生了超时的情况,那么门限值应该调整为24/2=12。并且将拥塞窗口的值置为1,再重复前面的过程。

16.在tcp三次握手过程中,tcp连接的前2个数据包足以证明这个网络是畅通的,那为什么A最后还要发送最后一次确认呢?
答:因为会有这样的一种情况,就是发送端a发送了一个连接请求,但是在某些网络节点长时间滞留了,但是a由于长时间收不到确认所以误认为该请求报文丢失了,于是就又重传了一次连接请求。但是此时,之前发的那个报文到连接释放后的某个时间又到达了b。但是此时这个报文是个失效报文。但是b收到这个报文后会以为a又发出了一次新的连接请求,于是就向a发出确认报文段。同意建立连接。假定不采用报文握手,只要b发出确认,新的连接就连接了。

17.四次挥手结束后A还有一个TIME-WAIT要等待2MSL,这样做有什么作用?
答:MSL默认时间是2分钟
TIME-WAIT可以防止a发出的确认报文b没有收到,如果有time-wait,那么a还可以等b再发一次关闭FIN报文。


课后习题

1.端口的作用是什么?为什么要将端口号划分为三种?
答:端口的作用是对tcp/ip体系的应用进程进行统一的标志,使运行不同操作系统的计算机的应用进程之间能够相互通信。
熟知端口,数值一般为0-1023,标记常规的服务进程
登记端口号,数值为1024-49151,标记没有熟知端口号的非常规的服务进程。
客户端暂时使用的端口号。

2.试用具体例子说明为什么在运输连接建立时要使用三报文握手,说明如果不这样做可能会出现什么情况。
答:三次握手完成2个重要的功能
既要双方做好发送数据的准备工作(双方都知道彼此已准备好)
也要允许双方就初始序列进行协商,这个序列号在握手过程中被发送和确认。
假定b给a发送了一个连接请求分组,a收到了这个分组,并发送了确认应答分组,按照2次握手的协定,a认为连接已经成功的建立了,可以开始发送数据分组。可是,b在a的应答分组在传输中被丢失的情况下,将不知道a是否已准备好。这种情况下,b认为连接还未建立成功,将忽略a发来的任何数据分组,只等待连接确认应答分组。而a发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值