概述下什么是DDOS攻击和SYN洪水攻击
带宽攻击
极大的冲剂量去攻击网络,使网络资源耗尽,合法用户无法访问,大量的攻击需要很多肉鸡才能做的到
连通性攻击
大量的连接请求去冲击服务器,使得可使用的资源被耗尽(SYN洪水攻击)
哪些应用比较适合用UDP实现
直播、多播
udt 是udp的自己在应用层自己实现了可靠性的传输 一般使用的地方是:海量数据在高速宽带 多用于广域光纤
tcp用于4g、5g 、无线wifi 比udt快
HTTP和HTTPS的区别
ssl、报文裸奔、报文加密 80、443 加密
TCP 粘包/拆包的原因及解决方法
拆包:1m数据 分几份
粘包:一起发送发2b、3b、4b数据,然后合并一起通过一个请求发送(粘包发送的3中方法)
- 数据头定义总共长度
- 消息的定长比如每次10个字节 不全补齐
- 特殊的分隔符 回车换行符 (netty实现)
请概要介绍下序列化
转换成机器可识别的0101代码
序列化以后注意码流大小(如果从10b 变成 50b需要注意)、性能、夸语言
jdk 提供的不太好内存会变大,夸语言不常用
fastjson 不推荐 bug很多
facebook thrift 大数据用的比较多
谷歌 protobuf/protostuff 后者不需要描述文件
kyro 只限于java
Parcelable 在内存中直接进行读写
Netty是如何解决JDK中的Selector BUG的
cup 100% jdk1.8莫个版本以后才解决
如何让单机下基于Netty的应用程序支持几十万乃至百万长连接
c10k 问题、更改ulimit、软限制、硬限制
select、poll、epoll的区别
都是多路复用机制
1所有操作系统都支持 最大(32位)1024连接数 数组
2、3只有liunx支持 链表
1、2随着连接数增大性能极速下降- 用户空间拷贝到内核空间-连接数少、连接活跃(性能比较好)
3 活动连接数有关系(无限制,高效)-共享内存-使用了大量的会掉函数(少量连接建议使用1、2)
什么是水平触发(LT)和边缘触发(ET)
lt缓存器没读完 会一直触发。select、poll、epoll(默认)
et缓存器没读完 不会一直通知,直到下次有数据进入缓存区。epoll