2015百度校园招聘软件研发类笔试题(笔试时间:2014-9-14,西安、哈尔滨、大连站)

一,tcp-ip三次握手四次挥手

答:第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端接收到服务器的SNY+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

四次挥手:

主动方发送Fin+Ack报文,并置发送序号为X

被动方发送ACK报文,并置发送序号为Z,在确认序号为X+1

被动方发送Fin+ACK报文,并置发送序号为Y,在确认序号为X。

主动方发送ACK报文,并置发送序号为X,在确认序号为Y。

 

在关闭连接时,当服务器端收到Fin报文时,很可能并不会立即关闭socket,所以只能先回复一个ack报文,告诉client端,“你发的fin报文我收到了”。只有等到server端的所有报文都发送完了,才发送fin报文,因此不能fin和ack一起发送,所以需要四次挥手。

 

为什么会有Time_Wait状态,且需要经过2MSL才返回到ClOSE状态?

答案:因为网络原因,主动关闭的一方发送的ACK包可能延迟,从而触发被动连接一方重传FIN包。在极端的情况下,这一去一回,就是2倍的MSL时长。如果主动关闭的一方跳过TIME_WAIT直接进入CLOSED,或者在TIME_WAIT停留的时长不足两倍的MSL,那么当被动关闭的一方早先发出的延迟包到达后,就可能出现类似下面的问题:

1.       旧的TCP连接已经不存在了,系统此时只能返回RST包。

2.       新的TCP连接建立起来了,延迟包可能干扰新的连接。

 

TCP的三次握手可以明确连接请求的有效性,防止已过期的连接再次传到被连接的主机。

http://www.cppentry.com/bencandy.php?fid-56-id-2686-page-1.htm

 

二,操作系统的内存管理淘汰算法有哪些?

FIFO先进先出算法:这个算法总是选择在内存驻留时间最长的一页将其淘汰。

LRU 最近最少使用算法:当需要淘汰某页,选择离当前最近的一段时间内最近没有使用的页先淘汰。

OPT 最佳淘汰算法:这个算法淘汰在访问串中将来最不常用的页。

LFU 最少访问页面算法:这个算法首先淘汰到当前为止,被访问次数最少的那一页。

NUR 最近最不经常使用算法:这个算法从那些最近一个时期内未被访问的页中任选一页淘汰。

http://cache.baiducontent.com/c?m=9d78d513d9d430a94f9be7697d10c0111d4381132ba7db0209a5843991732c37506793ac56530772d5d20d1616dc3f4beb802103471457b68cb88d5daeb1866f6fd6286e365ac45613a004b28e0360d620e700baf24cbae6a56ad4b9d2a4830315d700453c9df38f510b17cb6d&p=806dc64ad48602e402bd9b7b0a4e&newp=8e3fc64ad4934eaa5fb78e65544d92695803ed6338d2d0&user=baidu&fm=sc&query=%C4%DA%B4%E6%B9%DC%C0%ED%CC%D4%CC%AD%CB%E3%B7%A8&qid=93c29121000043bf&p1=1

 

三,数据库设计时通常需要遵守哪些范式,请列出并说明?

第一范式1NF,确保每一列不可再分,即原子性。

例如,顾客表(姓名,编号,地址),其中“地址”列还可以细分为国家,省等.

第二范式2NF,确保每一列都需要和和主键相关,且是完全依赖。

例如,订单表(订单编号,产品编号,订购日期,价格,….),“订单编号“为主键,产品编号和主键列没有直接的关系,即“产品编号”列不依赖于主键列,应删除该列。

第三范式3NF,区别每一列与主键直接相关而不是间接相关,不存在传递依赖。

例如,假设A,B和C的关系R的三个属性,如果A->B且B->C,则这些依赖函数中可以得出A->C。

 

第二部分,算法与程序设计题

1.      寻找一个单向链表的中项(中间项),如果存在两个则返回前一个。请给出算法描述和代码。

(1)快慢指针

2.      在由N个正整数的集合S中,找出最大元素C,满足C=A+B,其中A,B都是集合S中的元素,请给出算法和描述。

(2)先对数组哈希,然后再查找

 

3.      使用堆栈来模拟队列的功能,要求数据必须存储在堆栈内部。需要完成入队,出队,判空三个功能。给出单元测试。

(3)两个栈模拟队列

 

第三部分,系统设计题目

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值