北京旷视科技有限公司7月招聘面试题176道2020721

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


参考答案:701


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


参考答案:√


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

A、重传重要的数据段

B、放弃该连接

C、调整传送窗口尺寸

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


正确答案:A


● 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


北京旷视科技有限公司7月招聘面试题面试题面试官常问到的一些题目整理如下:问题 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:Django 和 Flask 之间有什么区别?可用的回答 :Flask是一个“微框架”,主要用于具有更简单要求的小型应用程序。在Flask中,必须使用外部库。Django也可以用于更大的应用程序。它包括一个ORM。问题 Q3:如何删除python数组的值?可用的回答 :可以使用pop()或remove()方法删除数组元素。这两个函数之间的区别在于前者返回已删除的值,而后者则不返回。问题 Q4:django 中当一个用户登录 A 应用服务器(进入登录状态),然后下次请求被 nginx 代理到 B 应用服务器会出现什么影响?可用的回答 :如果用户在A应用服务器登陆的session数据没有共享到B应用服务器,那么之前的登录状态就没有了。问题 Q5:如果让你来防范网站爬虫,你应该怎么来提高爬取的难度?可用的回答 : 1. 判断headers的User-Agent; 2. 检测同一个IP的访问频率; 3. 数据通过Ajax获取; 4. 爬取行为是对页面的源文件爬取,如果要爬取静态网页的html代码,可以使用jquery去模仿写html。 问题 Q6:如果让你来防范网站爬虫,你应该怎么来提高爬取的难度?可用的回答 : 1. 判断headers的User-Agent; 2. 检测同一个IP的访问频率; 3. 数据通过Ajax获取; 4. 爬取行为是对页面的源文件爬取,如果要爬取静态网页的html代码,可以使用jquery去模仿写html。 问题 Q7:如何在python中使用三元运算符?可用的回答 :三元运算符是用于显示条件语句的运算符。这包含true或false值,并且必须为其评估语句。其基本语法为:三元运算符是用于显示条件语句的运算符。这包含true或false值,并且必须为其评估语句。其基本语法为:on_true if expression else on_false问题 Q8:遇到过得反爬虫策略以及解决方法?可用的回答 : 反爬虫策略: 1.通过headers反爬虫 2.基于用户行为的发爬虫(同一IP短时间内访问的频率,封IP) 3.动态网页反爬虫(通过ajax请求数据,或者通过JavaScript生成) 4.对部分数据进行加密处理的(数据是乱码) 解决方法: 1. 对于基本网页的抓取可以自定义headers,添加headers的数据 2. 使用多个代理ip进行抓取或者设置抓取的频率降低一些, 3. 动态网页的可以使用selenium + phantomjs 进行抓取 4. 对部分数据进行加密的,可以使用selenium进行截图,使用python自带的pytesseract库进行识别,但是比较慢最直接的方法是找到加密的方法进行逆向推理。 问题 Q9:urllib 和 urllib2 的区别?可用的回答 : urllib 和urllib2都是接受URL请求的相关模块, 但是urllib2可以接受一个Request类的实例来设置URL请求的headers,

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所示。


建立 TCP 连接某个应用进程,在本机端TCP中发送一个FIN=1的分组,不正确的( )

A.当一方完成它的数据发送任务后就可以发送一个FIN字段置1的数据段来终止这个方向的数据发送
B.当另一端收到这个FIN数据段后,必须通知它的应用层“对端已经终止了那个方向的数据传送”
C.本地端进入FIN WAIT 1状态,等待对方的确认
D.当本地端收到对端的ACK数据段后便进入close状态

答案:D
解析:
当客户端收到服务器的ACK数据段后便进入到了FIN WAIT 2状态


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所示。

更多 “北京旷视科技有限公司7月招聘面试题176道2020721” 相关考题
考题 TCP协议使用三次握手来建立连接,TCP协议规定,在对发送端SYN确认信息中,同时捎带()以减少通信的量。A、上一个已接收的报文编号B、下一个希望接受的报文编号C、对发送进程的链接请求SYND、对发送进程的请求确认ACK正确答案:C

考题 TCP会话通过3次握手来建立连接。其中第一次握手:源主机发送一个同步标志位SYN=1的TCP数据段。源主机进入SYN-SENT状态。第二次握手:目标主机接收到SYN包后发回确认数据报文。该数据报文ACK=1。此时目标主机进入(SYN-RCVD)状态,源主机进入( )状态。A.SYN-SENT B.SYN-RCVD C.ESTABLISHED D.CLOSE-WAIT 答案: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所示。

考题 TCP/IP通过“三次握手”机制建立一个连接,其中第二次握手过程为:目的主机B收到源主机A发出的连接请求后,如果同意建立连接,则会发回一个TCP确认,确认报文的确认位ACK如何设置?()A、ACK翻转B、ACK不变C、ACK置1D、ACK置0正确答案:C

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

考题 填空题当接收到INVITE消息的()时,发送这个INVITE消息的客户端将发送一个ACK消息进行确认正确答案:最终应答解析:暂无解析

考题 关于随机接入,以下说法错误的是()A、UE根据FPACH信息调整时间和功率后,在PRACH上发起RRC CONNECTION REQUESTB、RNS在收到RRC连接建立请求后,会立即给UE分配RNTIC、RNS在确认后,会在下行DPCH上发送RRC CONNNECTION SETUP消息D、UE收到RRC CONNNECTION SETUP后,在上行DPCH上发送RRC CONNECTION SETUP COMPLETE消息正确答案:C

考题 主机甲向主机乙发送了一个 TCP 连接建立请求,主机乙给主机甲的响应报文中,标志字段正确的是( )。A.SYN=1,ACK=1,FIN=0 B.SYN=1,ACK=1,FIN=1 C.SYN=0,ACK=1,FIN=0 D.SYN=1,ACK=0,FIN=0 答案:A解析:双方通信之前均处于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+1),TCP会话的三次握手完成。接下来,源主机和目标主机可以互相收发数据。

考题 问答题假设下图中的H3访问Web服务器S时,S为新建的TCP连接分配了20KB(K=1024)的接收缓存,最大段长MSS=1KB,平均往返时间RTT=200ms。H3建立连接时的初始序号为100,且持续以MSS大小的段向S发送数据,拥塞窗口初始阈值为32KB;S对收到的每个段进行确认,并通告新的接收窗口。假定TCP连接建立完成后,S端的TCP接收缓存仅有数据存入而无数据取出。请回答下列问题  (1)在TCP连接建立过程中,H3收到的S发送过来的第二次握手TCP段的SYN和ACK标志位的值分别是多少?确认序号是多少?  (2)H3收到的第8个确认段所通告的接收窗口是多少?此时H3的拥塞窗口变为多少?H3的发送窗口边为多少?  (3)当H3的发送窗口等于0时,下一个待发送的数据段序号是多少?H3从发送第1个数据段到发送窗口等于0时刻为止,平均数据传输速率是多少(忽略段的传输延时)?  (4)若H3与S之间通信已经结束,在t时刻H3请求断开该连接,则从t时刻起,S释放该连接的最短时间是多少?正确答案:(1)分析:TCP连接的建立分三个阶段。首先,H3向Web服务器S发出连接请求报文段,这时首部中的SYN=1,ACK=0,同时选择一个初始序号为seq=100,SYN报文段不能携带数据,但是需要消耗一个序号。接着,S收到连接请求,自己选择一个初始序号为seq=y的,向A发送确认,这个报文段是SYN=1,ACK=1,seq=y,确认号ack=100+1。最后,H3收到S的确认报文之后,还要向S给出确认。上述便是完整的TCP三次握手过程。 第二次握手TCP段的SYN=1,ACK=1;确认序号是101。 (2)分析:在慢开始算法中,发送方H3先设置拥塞窗口cwnd=1,接下来每收到一个对新报文段的确认就使发送方的拥塞窗口加1,H3共收到8个确认段,即拥塞控制窗口变为8+1。发送窗口=min{拥塞窗口,接受窗口}。 H3收到的第8个确认段所通告的接收窗口是12KB;此时H3的拥塞窗口变为9KB; H3的发送窗口变为9KB。 (3)分析:H3从发送第1个段到发送窗口等于0时刻为止,总共经过5个传输轮次,每个传输轮次的时间就是往返时间RTT。 当H3的发送窗口等于0时,下一个待发送段的序号是20K+101=20×1024+101=20581;H3从发送第1个段到发送窗口等于0时刻为止,平均数据传输速率是20KB/(5×200ms)=20KB/s=20.48kbps。 (4)分析:从t时刻起,S释放该连接的最短时间是:H3的连接释放报文段传送到S的时间+S的连接释放报文段传送到H3的时间+H3的确认报文段传送到S的时间。 从t时刻起,S释放该连接的最短时间是:1.5×200ms=300ms。解析:暂无解析

考题 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所示。

考题 单选题主机甲向主机乙发送一个(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与确认号、甲请求报文段的序号没有任何关系。