-
两数之和,最优方法,哈希表加遍历的时候判断是否已经有目标值
-
博客的4种API
get,post,增删改查 -
介绍一下HTTP
无状态的协议,协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息(这里并不是丢包),则它必须重传
cookie和session机制,解决无状态协议的问题
https://www.cnblogs.com/open-source-java/p/10443918.html
- 进程和线程的区别
- TCP和UDP的区别
- TCP如何保证可靠传输
TCP可靠传输的工作原理
(1)停止等待协议:"停止等待协议"是指每发送完一个分组就停止发送,等待对方的确认,在收到确认后再发送下一个分组。若在规定的时间内没有收到确认,则发送方超时,并重传原始帧。使用确认和重传机制就可以在不可靠的传输网络上实现可靠的通信。使用确认和重传机制实现可靠传输的策略称为自动重传请求(ARQ)
(2)连续ARQ协议
指发送方维持一个一定大小的发送窗口,位于发送窗口内的所有分组可连续发送出去。接收方采用积累确认的方法,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认
(3)回退N帧协议
一旦某帧发生错误,必须重新发送该帧及其后的N个帧(包括了错误的帧与后面正确的帧)
(4)选择重传协议(针对帧出错的情况)
当发送方接收到接收方的状态包括并显示帧有错后,发送方只发送传送发生错误的帧。与回退N帧协议相比,减少了出错帧之后正确的帧都要重传的开销。
(5)选择确认机制(针对失序到达的报文 )
假如接收方收到了一些不连续的字节块,若这些字节的序号都在接收窗口内,那么接收方就先收下这些数据,但是要把这些信息准确地告诉发送方,让发送方不再重复发送这些已收到的数据。选择确认机制只针对失序到达的报文段
https://www.jianshu.com/p/ce8a365e9cb3
https://blog.csdn.net/qq_35733751/article/details/80157509
TCP的流量控制
TCP可采用大小可变的滑动窗口进行流量控制。流量控制是指让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。在通信前,发送方和接收方共同协议窗口的大小,发送方可以在窗口范围内连续发送数据。接收方可以根据接收的数据和自身的接收能力,不断调整窗口的大小,并把窗口的大小反馈给发送方,以便发送方能及时调整发送数据的速率,不会造成接收方无法接收的情况。
另外一种情况,零窗口报文的情况,B向A发送了零窗口报文段,于是A停止发送数据。不久后,B的缓冲区又有了一些存储空间,于是给A发送rwnd=400的报文段,但是这个报文丢失了,于是就出现A一直等待B发送的非零窗口的通知,B一直等待A发送数据的死锁状态。为了处理这种问题,TCP引入了持续计时器。只要TCP连接的一方收到对方的零窗口通知,就启用该计时器。若时间到期则发送一个1字节的探测报文段,对方会在此时回应自身的接收窗口大小,如果窗口仍是零,则重设持续计时器,继续等待。
TCP的拥塞控制
(1)慢开始算法
(2)拥塞避免算法
(3)快重传算法
(4)快恢复算法
https://blog.csdn.net/sinat_21112393/article/details/50810053
- 算法题
题目描述:
输入:
dict_input={'a':1,
'b':{'c':{"d":3}},
'e':4}
输出:
dict_output={{"/a":1},{"/a/b/c":3},{"/e":4}}
dict_output={}
temp_key=''
dict_input={'a':1,
'b':{'c':{"d":3}},
'e':4}
#dict_output={{"/a":1},{"/a/b/c":3},{"/e":4}}
def test(dict_input,temp_key):
for i in dict_input:
temp_key += '/' + "%s" % i
if isinstance(dict_input[i],dict):
test(dict_input[i],temp_key)
else:
dict_output[temp_key]=dict_input[i]
temp_key=''
return dict_output
test(dict_input,temp_key)
print dict_output
- 线程怎么拿进程的资源
写线程函数
二面 hr面
- 你看重什么样的平台
能够提升自己的技术实力,有上升的发展空间,有一个良好氛围的团队。