网站首页 区块链学习

趣链面试----惨不忍睹问题大集合

发布时间:2021-3-10 15:16 Wednesday编辑:admin阅读(510)

    一、tcp和udp的区别,如何设计可靠udp传输

    转载自:https://www.cnblogs.com/williamjie/p/11133180.html

    UDP不属于连接协议,具有资源消耗少,处理速度快的优点,所以通常音频,视频和普通数据在传送时,使用UDP较多,因为即使丢失少量的包,也不会对接受结果产生较大的影响。

    传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。

    最简单的方式是在应用层模仿传输层TCP的可靠性传输。下面不考虑拥塞处理,可靠UDP的简单设计。

    • 1、添加seq/ack机制,确保数据发送到对端
    • 2、添加发送和接收缓冲区,主要是用户超时重传。
    • 3、添加超时重传机制。

    详细说明:送端发送数据时,生成一个随机seq=x,然后每一片按照数据大小分配seq。数据到达接收端后接收端放入缓存,并发送一个ack=x的包,表示对方已经收到了数据。发送端收到了ack包后,删除缓冲区对应的数据。时间到后,定时任务检查是否需要重传数据。

    目前有如下开源程序利用udp实现了可靠的数据传输。分别为RUDP、RTP、UDT

    二、RSA算法设计

    三、https过程

    HTTP的请求过程:

    1、TCP建立连接后,客户端会发送报文给服务端;

    2、服务端接收报文并作出响应;

    3、客户端收到响应后解析给用户;

     

    HTTPS的请求过程:

    1、客户端发送请求到服务端;

    2、服务器返回证书和公钥;

    3、客户端验证证书和公钥的有效性,如果有效,则生成对称密钥并使用公钥加密发送到服务端;

    4、服务端使用私钥解密报文,并使用收到的对称密钥加密报文,发送到客户端;

    5、客户端使用对称密钥解密报文;

    6、SSL加密建立

    四、tendermint共识

    五、以太坊EVM是否熟悉