面试复盘 |绿盟java软开一面

1、TCP的保活机制

如果在一段时间(保活时间)连接处于非活动状态,开启保活功能的一端将向对方发送一个保活探测报文。如果发送端没有收到响应报文,那么经过一个已经提前配置好的保活时间间隔继续发送一个保活探测报文,直到发送探测报文的次数达到保活探测数,这时对方主机将被确认为不可到达连接也将被中断

2、.class 文件防止反编译

1.Class文件进行加密

为了防止Class文件被直接反编译,许多开发人员将一些关键的Class文件进行加密,例如对注册码、序列号管理相关的类等。在实现时,开发人员往往通过自定义ClassLoader类来完成加密类的装载。自定义的ClassLoader首先找到加密的类,而后进行解密,最后将解密后的类装载JVM当中。

2.转换成本地代码

将程序转换成本地代码(计算机支持的指令集)也是一种防止反编译的有效方法。因为本地代码往往难以被反编译。在使用这种技术保护Java程序的同时,也牺牲了 Java的跨平台特性对于不同的平台,我们需要维护不同版本的本地代码,这将加重软件支持和维护的工作。

3.代码混淆

代码混淆是Class文件进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能(语义)。但是混淆后的代码很难被反编译,即反编译后得出的代码是非常难懂、晦涩的,因此反编译人员很难得出程序的真正语义。

3、路由选择算法-LS算法

1、确认在物理上与之相连的路由器并获得它们的IP地址。当一个路由器开始工作后,它首先向整个网络发送一个“HELLO”分组数据包。每个接收到数据包的路由器都将返回一条消息其中包含它自身的IP地址

2测量相邻路由器的延时(或者其他重要的网络参数,比如平均流量)。为做到这一点,路由器向整个网络发送响应分组数据包。每个接收到数据包的路由器返回一个应答分组数据包。将路程往返时间除以2,路由器便可以计算出延时。(路程往返时间是网络当前延迟的量度,通过一个分组数据包从远程主机返回的时间来测量。)该时间包括了传输和处理两部分的时间——也就是将分组数据包发送到目的地的时间以及接收方处理分组数据包和应答的时间。

3向网络中的其他路由器广播自己的信息,同时也接收其他路由器的信息。在这一步中,所有的路由器共享它们的知识并且将自身的信息广播给其他每一个路由器。这样,每一个路由器都能够知道网络的结构以及状态

4、使用一个合适的算法,确定网络中两个节点之间的最佳路由。在这一步中,路由器选择通往每一个节点的最佳路由。它们使用一个算法来实现这一点,如Dijkstra最短路径算法。在这个算法中,一个路由器通过收集到的其他路由器的信息,建立一个网络图。这个图描述网络中的路由器的位置以及它们之间的链接关系。每个链接都有一个数字标注,称为权值或成本。这个数字是延时和平均流量的函数,有时它仅仅表示节点间的跃点数。例如,如果一个节点与目的地之间有两条链路,路由器将选择权值最低的链路。

4、感想

这个其实不是我面试时的问题,是我总结的大家发的绿盟面试官问的问题中我掌握的比较差的问题,面试官还是很注重计算机网络的
#面试复盘##面经##绿盟#
全部评论
请问楼主base哪里?
点赞 回复 分享
发布于 2021-10-15 19:07
点赞 回复 分享
发布于 2021-10-20 12:12
面试官上来问我操作系统虚拟化,懵了😂
点赞 回复 分享
发布于 2021-10-20 15:47

相关推荐

4 14 评论
分享
牛客网
牛客企业服务