北京紫光华宇软件股份有限公司1月招聘面试题81道202018

TCP报文段中“确认号”字段的作用是“期望收到对方下一个报文段的第一个数据字节的序号”。例如B正确收到了A发送过来的一个报文段,其序号字段值是501,而数据长度是200字节,这表明B正确的收到了A发送的序号从501到700为止的数据。因此,B期望收到A的下一个数据序号是701,于是B发送给A的确认报文段中把确认号置为__________。


参考答案:701


RRC连接建立后,UE通过RRC连接向RNC发送InitialDT,消息中携带UE发送到CN的NAS信息内容。()


参考答案:√


主机A和B使用TCP通信。在B发送过的报文段中,有这样连续的两个:ACK=120 和ACK=100。这可能吗(前一个报文段确认的序号还大于后一个的)?试说明理由。


参考答案:这完全可能。设想A连续发送两个数据报,(SEQ=92,DATA共8字节),(SEQ=100,DATA共20字节),均正确到达B。B连续发送两个确认(ACK=100)和(ACK=120)。但前者在传送时丢失,于是A超时重传第一个报文段并被B收到,然后B发送(ACK=100)到达A。


假定使用连续ARQ协议中,发送窗口大小事3,而序列范围[0.15],而传输媒体保证在接收方能够按序收到分组。在某时刻,接收方,下一个期望收到序号是5,试问:

(1)在发送方的发送窗口中可能有出现的序号组合有哪儿种?

接收方已经发送出去的、但在网络中(即还未到达发送方)的确认分组可能有哪些?说明这些确认分组是用来确认哪些序号的分组。

23、主机A向主机B连续发送了两个TCP报文段,其序号分别为70和100,试问:

(1)第一个报文段携带了多少个字节的数据?

(2)主机B收到第一个报文段后发回的确认中的确认号应当是多少?

(3)如果主机B收到第二个报文段后发回的确认中的确认号是180,试问A发送的第二个报文段中的数据有书少字节?

(4)如果A发送的第一个报文段丢失了,但第二个报文段到达了B,B在第二个报文段到达后向A,发送确认。试问这个确认号应为多少?


答案:(1)第一个报文段的数据序号是70到99,共30字节的数据。
(2)确认号应为100 (3)80字节。(4)70


在发送TCP接收到确认ACK之前,由其设置的重传计时器到时,这时发送TCP会( )

A、重传重要的数据段

B、放弃该连接

C、调整传送窗口尺寸

D、向另一个目标端口重传数据


正确答案:A


北京紫光华宇软件股份有限公司1月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:简述 三次握手、四次挥手的流程?可用的回答 : 三次握手: 初始状态:客户端A和服务器B均处于CLOSED状态,然后服务器B创建socket,调用监听接口使得服务器处于LISTEN状态,等待客户端连接。(后续内容用A,B简称代替) 1、A首先向B发起连接,这时TCP头部中的SYN标识位值为1,然后选定一个初始序号seq=x(一般是随机的), 消息发送后,A进入SYN_SENT状态,SYN=1的报文段不能携带数据,但要消耗一个序号。 2、B收到A的连接请求后,同意建立连接,向A发送确认数据,这时TCP头部中的SYN和ACK标识位值均为1,确认序号为ack=x+1, 然后选定自己的初始序号seq=y(一般是随机的),确认消息发送后, B进 入SYN_RCVD状态,与连接消息一样,这条消息也不能携带数据,同时消耗一个序号。 3、A收到B的确认消息后,需要给B回复确认数据,这时TCP头部中的ACK标识位值为1, 确认序号是ack=y+1,自己的序号在连接请求的序号上加1,也就是seq=x+1, 此时A进入ESTABLISHED状态,当B收到A的确认回复后,B也进入ESTABLISHED状态, 至此TCP成功建立连接,A和B之间就可以通过这个连接互相发送数据了。 四次挥手: 初始状态:客户端A和服务器B之间已经建立了TCP连接,并且数据发送完成,打算断开连接, 此时客户端A和服务器B是等价的,双方都可以发送断开请求,下面以客户端A主动发起断开请求为例。(后续内 容用A,B简称代替) 1、A首先向B发送断开连接消息,这时TCP头部中的FIN标识位值为1,序号是seq=m,m为A前面正常发送数据最后一个字节序号加1得到的, 消息发送后A进入FNI_WAIT_1状态,FIN=1的报文段不能携带数据,但要消耗一个序号。 2、B收到A的断开连接请求需要发出确认消息,这时TCP头部中的ACK标识位值为1,确认号为 ack=m+1, 而自己的序号为seq=n,n为B前面正常发送数据最后一个字节序号加1得到的, 然后B进入 CLOSE_WAIT状态,此时就关闭了A到B的连接, A无法再给B发数据,但是B仍然可以给A发数据,同时B端通知上方应用层,处理完成后被动关闭连接。 然后A收到B的确认信息后,就进入了 FIN_WAIT_2状态。 3、B端应用层处理完数据后,通知关闭连接, B向A发送关闭连接的消息,这时TCP头部中的FIN和ACK标识位值均为1, 确认号ack=m+1,自己的序号为seq=k,消息发送后B进入LACK_ACK状态。 4、A收到B的断开连接的消息后,需要发送确认消息, 这是这时TCP头部中的ACK标识位值为1,确认号ack=k+1,序号为m+1(因为A向B发送断开连接的消息时消耗了一个消息号), 然后A进入TIME_WAIT 状态,若等待时间经过2MSL后,没有收到B的重传请求, 则表明B收到了自己的确认,A进入CLOSED状态, B收到A的确认消息后则直接进入CLOSED状态。至此TCP成功断开连接。 问题 Q2:如何跨模块共享全局变量?可用的回答 :要在单个程序中跨模块共享全局变量,请创建一个特殊模块。在应用程序的所有模块中导入配置模块。该模块将作为跨模块的全局变量提供。问题 Q3:scrapy和scrapy-redis的区别?可用的回答 : scrapy是一个爬虫通用框架,但不支持分布式,scrapy-redis是为了更方便的实现scrapy分布式爬虫,而提供了一些以redis为基础的组件 为什么会选择redis数据库?因为redis支持主从同步,而且数据都是缓存在内存中,所以基于redis的分布式爬虫,对请求和数据的高频读取效率非常高 什么是主从同步?在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项, 让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave), 当客户端向从服务器发送SLAVEOF命令,要求从服务器复制主服务器时,从服务器首先需要执行同步操作,也即是,将从服务器的数据库状态更新至主服务器当前所处的数据库状态 问题 Q4:介绍一下except的用法和作用?可用的回答 : tryexceptexceptelsefinally 执行try下的语句,如果引发异常,则执行过程会跳到except语句。 对每个except分支顺序尝试执行,如果引发的异常与except中的异常组匹配,执行相应的语句。 如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。 try下的语句正常执行,则执行else块代码。如果发生异常,就不会执行 如果存在finally语句,最后总是会执行。 问题 Q5:如何跨模块共享全局变量?可用的回答 :要在单个程序中跨模块共享全局变量,请创建一个特殊模块。在应用程序的所有模块中导入配置模块。该模块将作为跨模块的全局变量提供。问题 Q6:写爬虫使用多进程好,还是用多线程好?可用的回答 : IO密集型代码(文件处理、网络爬虫等), 多线程能够有效提升效率(单线程下有IO操作会进行IO等待,造成不必要的时间浪费,而开启多线程能在线程A等待时,自动切换到线程B,可以不浪费CPU的资源,从而能提升程序执行效率)。 在实际的数据采集过程中,既考虑网速和响应的问题,也需要考虑自身机器的硬件情况,来设置多进程或多线程 问题 Q7:什么是反射?以及应用场景?可用的回答 : 通过字符串获取对象的方法称之为反射 python中可以通过如下方法实现: 1. getattr 获取属性 2. setattr 设置属性 3. hasattr 属性是否存在 4. delattr 删除属性 问题 Q8:描述数组、链表、队列、堆栈的区别?可用的回答 : 数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据;

● TCP 使用三次握手协议来建立连接,设甲乙双方发送报文的初始序号分别为 X和 Y,甲方发送 (69) 的报文给乙方,乙方接收报文后发送 (70) 的报文给甲方,然后甲方发送一个确认报文给乙方便建立了连接。


正确答案:A,C


主机甲向主机乙发送一个TCP报文段,SYN字段为“1”,序列号字段的值为2000,若主机乙同意建立连接,则发送给主机甲的报文段可能为( ),若主机乙不同意建立连接,则( )字段置“1”

A. (SYN=1,ACK=1, seq=2001 ack=2001)B. (SYN=1 ,ACK=0,seq=2000 ack=2000)C (SYN=1,ÁCK=0, seq=2001 ack=2001)C. (SYN=0,ACK=1, seq=2000 ack=2000)A. URG B. RST C. PSH D. FIN


正确答案:A,D


TCP使用三次握手协议来建立连接,设甲乙双方发送报文的初始序号分别为X和 Y,甲方发送(69)的报文给乙方,乙方接收报文后发送(70)的报文给甲方,然后甲方发送一个确认报文给乙方便建立了连接。

(注:ACK的下标为捎带的序号)

A.SYN=1,序号=X

B.SYN=1,序号=X+1,ACKX=1

C.SYN=1,序号=Y

D.SYN=1,序号=Y,ACKY+1=1


正确答案:A


在TCP段中,若ACK和SYN字段的值均为“1”时,表明此报文为 ( )报文

A.主动打开,发送连接建立请求
B.被动打开,建立连接
C.连接关闭请求
D.连接关闭应答,文明关闭

答案:B
解析:
当SYN标志位置1时,表示主动发起连接请求。当报文中的SYN和ACK标志位同时置1时,表示是对连接请求的回应,此时接收端表示被动打开。


TCP会话通过3次握手来建立连接。其中第一次握手:源主机发送一个同步标志位SYN=( )的TCP数据段。源主机进入SYN_SENT状态。第二次握手:目标主机接收到SYN包后发回确认数据报文。该数据报文ACK=1。

A.0
B.1
C.2
D.3

答案:B
解析:
TCP会话通过三次握手来建立连接。三次握手的目标是使数据段的发送和接收同步,同时也向其他主机表明其一次可接收的数据量(窗口大小)并建立逻辑连接。这三次握手的过程可以简述如下:双方通信之前均处于CLOSED状态。(1)第一次握手源主机发送一个同步标志位SYN=1的TCP数据段。此段中同时标明初始序号(Initial Sequence Number,ISN)。ISN是一个随时间变化的随机值,即SYN=1,SEQ=x。源主机进入SYN-SENT状态。(2)第二次握手目标主机接收到SYN包后发回确认数据报文。该数据报文ACK=1,同时确认序号字段表明目标主机期待收到源主机下一个数据段的序号,即ACK=x+1(表明前一个数据段已收到且没有错误)。此外,在此段中设置SYN=1,并包含目标主机的段初始序号y,即ACK=1,确认序号ACK=x+1,SYN=1,自身序号SEQ=y。此时目标主机进入SYN-RCVD状态,源主机进入ESTABLISHED 状态。(3)第三次握手源主机再回送一个确认数据段,同样带有递增的发送序号和确认序号(ACK=1,确认序号ACK=y+1,自身序号SEQ),TCP会话的三次握手完成。接下来,源主机和目标主机可以互相收发数据。三次握手的过程如图 4所示。

更多 “北京紫光华宇软件股份有限公司1月招聘面试题81道202018” 相关考题
考题 建立 TCP 连接某个应用进程,在本机端TCP中发送一个FIN=1的分组,不正确的( )A.当一方完成它的数据发送任务后就可以发送一个FIN字段置1的数据段来终止这个方向的数据发送 B.当另一端收到这个FIN数据段后,必须通知它的应用层“对端已经终止了那个方向的数据传送” C.本地端进入FIN WAIT 1状态,等待对方的确认 D.当本地端收到对端的ACK数据段后便进入close状态 答案:D解析:当客户端收到服务器的ACK数据段后便进入到了FIN WAIT 2状态

考题 BTS软件装载流程中,为加快软件装载速度,加载时BSC连续发送()个Load_Data_Segment(数据段装载)后,BTS发送Load_Data_Segment_Ack对最后一个数据段装载进行确认,BSC收到确认消息后,再继续发送。A、2B、4C、5D、6正确答案:B

考题 TCP会话通过( )次握手来建立连接。其中第一次握手:源主机发送一个同步标志位SYN=( )的TCP数据段。源主机进入( )状态。第二次握手:目标主机接收到SYN包后发回确认数据报文。该数据报文ACK=( )。此时目标主机进入( )状态,源主机进入( )状态。而TCP释放连接可以分为( )次断开A.一 B.二 C.三 D.四 答案:C解析: TCP会话通过三次握手来建立连接。三次握手的目标是使数据段的发送和接收同步,同时也向其他主机表明其一次可接收的数据量(窗口大小)并建立逻辑连接。这三次握手的过程可以简述如下:双方通信之前均处于CLOSED状态。(1)第一次握手源主机发送一个同步标志位SYN=1的TCP数据段。此段中同时标明初始序号(Initial Sequence Number,ISN)。ISN是一个随时间变化的随机值,即SYN=1,SEQ=x。源主机进入SYN-SENT状态。(2)第二次握手目标主机接收到SYN包后发回确认数据报文。该数据报文ACK=1,同时确认序号字段表明目标主机期待收到源主机下一个数据段的序号,即ACK=x+1(表明前一个数据段已收到且没有错误)。此外,在此段中设置SYN=1,并包含目标主机的段初始序号y,即ACK=1,确认序号ACK=x+1,SYN=1,自身序号SEQ=y。此时目标主机进入SYN-RCVD状态,源主机进入ESTABLISHED 状态。(3)第三次握手源主机再回送一个确认数据段,同样带有递增的发送序号和确认序号(ACK=1,确认序号ACK=y+1,自身序号SEQ),TCP会话的三次握手完成。接下来,源主机和目标主机可以互相收发数据。三次握手的过程如图 4所示。

考题 单选题主机甲向主机乙发送一个(SYN=1,seq=11220)的TCP段,期望与主机乙建立TCP连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的TCP段可能是(  )。A (SYN=0,ACK=0,seq=11221,ack=11221)B (SYN=1,ACK=1,seq=11220,ack=11220)C (SYN=1,ACK=1,seq=11221,ack=11221)D (SYN=0,ACK=0,seq=11220,ack=11220)正确答案:D解析:主机乙收到连接请求报文后,如同意连接,则向甲发送确认。在确认报文段中应把SYN位和ACK位都置1,确认号是甲发送的TCP段的初始序号seq=11220加1,即ack=11221,同时也要选择并消耗一个初始序号seq,seq值由主机乙的TCP进程确定,本题取seq=11221与确认号、甲请求报文段的序号没有任何关系。

考题 下列关于TCP/IP关闭连接的流程,说法正确的是()。A、主机A在完成数据发送任务后,会主动向主机B发送释放连接请求报文段。该报文段的首部中终止位FIN和确认为ACK均为1B、主机B受到主机A发送的释放连接请求包后,将主机A发送确认报文,以关闭该向上的TCP连接C、主机B在完成数据发送任务后也会向主机A发送一个释放连接请求报文,请求关闭B到A这个方向上的TCP连接D、主机A在受到主机B发送的释放连接请求报文后,将对主机B发送确认信息,以关闭该方向上的TCP连接正确答案:A,B,C,D

考题 TCP协议三次握手中的第一步是()A、客户端向服务器主动发送SYN建立连接B、服务器根据客户端SYN回复一个SYN/ACKC、客户端发送ACK确认来自服务器的SYN/ACKD、客户端向服务器主动发送带有FIN标识的数据包正确答案:A

考题 单选题主机甲与乙之间已建立一个TCP连接,双方持续有数据传输,且数据无差错与丢失。若甲收到1个来自乙的TCP段,该段的序号为1913、确认序号为2046、有效载荷为100字节,则甲立即发送给乙的TCP段的序号和确认序号分别是(  )。A 2046、2012B 2046、2013C 2047、2012D 2047、2013正确答案:C解析:若甲收到1个来自乙的TCP段,该段的序号seq=1913、确认序号ack=2046、有效载荷为100字节,则甲立即发送给乙的TCP段的序号seq1=ack=2046和确认序号ack1=seq+100=2013,答案为B。

考题 AN发起连接成功次数统计消息为AN向AT发送寻呼消息之后,AN收到PCF在A9接口上发来的“UpdateA9ACK”消息。正确答案:错误

考题 TCP会话通过三次握手来建立连接。其中第一次握手:源主机发送一个同步标志位SYN=1的TCP数据段。源主机进入SYN-SENT 状态。第二次握手:目标主机接收到SYN包后发回确认数据报文。该数据报文ACK=1。此时目标主机进入( )状态。A.SYN-SENT B.SYN-RCVD C.ESTABLISHED D.CLOSE-WAIT 答案:B解析: TCP会话通过三次握手来建立连接。三次握手的目标是使数据段的发送和接收同步,同时也向其他主机表明其一次可接收的数据量(窗口大小)并建立逻辑连接。这三次握手的过程可以简述如下:双方通信之前均处于CLOSED状态。(1)第一次握手源主机发送一个同步标志位SYN=1的TCP数据段。此段中同时标明初始序号(Initial Sequence Number,ISN)。ISN是一个随时间变化的随机值,即SYN=1,SEQ=x。源主机进入SYN-SENT状态。(2)第二次握手目标主机接收到SYN包后发回确认数据报文。该数据报文ACK=1,同时确认序号字段表明目标主机期待收到源主机下一个数据段的序号,即ACK=x+1(表明前一个数据段已收到且没有错误)。此外,在此段中设置SYN=1,并包含目标主机的段初始序号y,即ACK=1,确认序号ACK=x+1,SYN=1,自身序号SEQ=y。此时目标主机进入SYN-RCVD状态,源主机进入ESTABLISHED 状态。(3)第三次握手源主机再回送一个确认数据段,同样带有递增的发送序号和确认序号(ACK=1,确认序号ACK=y+1,自身序号SEQ),TCP会话的三次握手完成。接下来,源主机和目标主机可以互相收发数据。三次握手的过程如图 4所示。

考题 以下关于TCP连接“三次握手”过程的描述中,错误的是()A、客户进程发送“连接建立请求报文”不携带数据,需要给报文一个序号seqB、“连接建立请求报文”的序号seq值x是随机产生的,可以为0C、服务器进程同意建立连接,则发送SYN=1、ACK=1的“连接建立请求确认报文”D、客户进程用“连接建立请求确认报文”来确认TCP连接建立正确答案:B