笔试选择题

DDos分布式拒绝服务

解决:

  1. 高防服务器,贵
  2. 黑名单,封锁正常流量,影响到正常业务。
  3. DDos清洗,及时发现DOS攻击等异常流量,在不影响正常业务开展的情况下清洗掉这些异常流量。
  4. CDN加速:CDN 服务将网站访问流量分配到了各个节点中,这样一方面隐藏网站的真实 IP,另一方面即使遭遇 DDoS 攻击,也可以将流量分散到各个节点中,防止源站崩溃。
  5. 又拍云安全防护是针对容易遭受大流量 DDoS 攻击的电商、金融、游戏等类型的客户专门推出的付费增值服务。

数组初始化效率

//1.
char arr[maxSize] = {0};
//2.
char arr[maxSize];
memset(arr, 0, sizeof arr);
//3.
char arr[maxSize];
bzero(arr, sizeof(arr));
  1. 编译是先arrayA[0]赋值为0, 再调用memset初始化其他的数组元素.
  2. 直接初始化
  3. 已经慢慢被弃用 在数组较小的情况下,bzero的效率比memset高;当数组超过一定大小之后,bzero的效率开始比memset低;数组越 大,memset的性能优势越明显。而在数组较小的情况下,memset的性能甚至不如直接for循环对数组中的每一个字节置零的方法。

DHCPv6 Pv6动态主机配置协议

为主机分配IPv6地址/前缀和其他网络配置参数。

优点:

  • 更好地控制IPv6地址的分配。DHCPv6方式不仅可以记录为IPv6主机分配的地址,还可以为特定的IPv6主机分配特定的地址,以便于网络管理。
  • DHCPv6支持为网络设备分配IPv6前缀,便于全网络的自动配置和网络层次性管理。
  • 除了为IPv6主机分配IPv6地址/前缀外,还可以分配DNS服务器IPv6地址等网络配置参数。

差异:

  • DHCPv4基于IPv4包传输,DHCPv6基于IPv6包传输
  • DHCPv6使用ICMPv6 Router Advertisement (RA)和IPv6多播消息,DHCPv4使用广播的IPv4消息
  • DHCPv6中client与relay/server(RFC 6939)通信时使用link-local地址, DHCPv4使用unsolicited广播地址
  • 监听的UDP端口不同, DHCPv4 relay/server监听udp端口67 client监听udp端口68, relay/server监听udp端口547 client监听udp端口546
  • DHCPv6 servers提供随机的接口标识符 (避免攻击者侦查), DHCPv4提供scope/pool中的下一个IPv4地址
  • DHCPv4可以在路由器上配置, stateful DHCPv6一般不能在路由器上配置
  • DHCPv6 servers提供随机的接口标识符 (避免攻击者侦查), DHCPv4提供scope/pool中的下一个IPv4地址
  • DHCPv4可以在路由器上配置, stateful DHCPv6一般不能在路由器上配置
  • DHCPv4为客户端提供默认网关地址,DHCPv6不包含这个option,IPv6节点通过ICMPv6 RA消息学习到first hop路由器地址
  • DHCPv4地址池可能耗尽; DHCPv6网段通常为64位耗尽可能性接近0

数组地址

数组类型 存储地址的计算(a是数组首地址,len是每个数组元素所占长度)
a[n] a[i]的存储地址:a+i*len
a[m-1][n-1],m行n列 按行存储:a+(i*n+j)*len;按列存储:a+(j*m+i)*len
a[n][m][k]首地址a A[x][y][z] = a + (x*m*k + y*k + z)* len

大根堆

  • 堆是一种特殊的完全二叉树
  • 任意非叶子节点不小于其左右孩子节点
  • arr[i] >= arr[2i+1] && arr[i] >=arr[2i+2]

memcpy、strcpy、strncpy

  1. memcpy
void  *memcpy(void *s1,  const void *s2,  size_t  n);

函数memcpy从s2指向的对象中复制n个字符到s1指向的对象中。如果复制发生在两个重叠的对象中,则这种行为未定义。

返回值:函数memcpy返回s1的值。 2. strcpy

char  *strcpy(char *s2, const char *s1);

函数strcpy把s1指向的串(包括空字符)复制到s2指向的数组中。如果复制发生在两个重叠的对象中,则这种行为未定义。

返回值:函数strcpy返回s2的值。 3、strncpy

char  *strncpy(char *s2, const char *s1, size_t n);

函数strncpy从s1指向的数组中最多复制n个字符(不复制空字符后面的字符)到s2指向的数组中。如果复制发生在两个重叠的对象中,则这种行为未定义。

如果s1指向的数组是一个比n短的字符串,则在s2定义的数组后面补空字符,直到写入了n个字符。

返回值:函数strncpy返回s2的值。

全部评论

相关推荐

10-04 17:25
门头沟学院 Java
snqing:Java已经饱和了,根本不缺人。随便一个2000工资的都200人起投递
点赞 评论 收藏
分享
头像
11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务