北京旷视科技有限公司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协议三次握手中的第一步是()A、客户端向服务器主动发送SYN建立连接B、服务器根据客户端SYN回复一个SYN/ACKC、客户端发送ACK确认来自服务器的SYN/ACKD、客户端向服务器主动发送带有FIN标识的数据包正确答案:A

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

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

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

考题 单选题TCP协议使用三次握手来建立连接,TCP协议规定,在对发送端SYN确认信息中,同时捎带()以减少通信的量。A 上一个已接收的报文编号B 下一个希望接受的报文编号C 对发送进程的链接请求SYND 对发送进程的请求确认ACK正确答案:B解析:暂无解析

考题 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.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会话的三次握手完成。接下来,源主机和目标主机可以互相收发数据。

考题 TCP协议使用三次握手来建立连接,TCP协议规定,在对发送端SYN确认信息中,同时捎带()以减少通信的量。A、上一个已接收的报文编号B、下一个希望接受的报文编号C、对发送进程的链接请求SYND、对发送进程的请求确认ACK正确答案:C

考题 单选题下列哪项最恰当地描述了建立TCP连接时“第一次握手”所做的工作()A “连接发起方”向“接收方”发送一个SYN-ACK段B “接收方”向“连接发起方”发送一个SYN-ACK段C “连接发起方”向目标主机的TCP进程发送一个SYN段D “接收方”向源主机的TCP进程发送一个SYN段作为应答正确答案:B解析:暂无解析

考题 主机甲向主机乙发送一个TCP报文段,SYN字段为“1”,序列号字段的值为2000, 若主机乙同意建立连接,则发送给主机甲的报文段可能为。A.(SYN=1,ACK=1, seq=2001 ack=2001) B.(SYN=1 ,ACK=0,seq=2000 ack=2000) C.(SYN=1,ACK=0, seq=2001 ack=2001) D.(SYN=0,ACK=1, seq=2000 ack=2000) 答案:A解析: