2024-08-23 12:47
腾讯_PCG平台与内容事业群_后台开发 0 点赞 评论 收藏
分享
2024-04-17 13:12
腾讯_PCG平台与内容事业群_后台开发 0 点赞 评论 收藏
分享
C++好难啊:SYN洪泛攻击发生在TCP三次握手的第二次握手,此时客户端的连接信息被服务端记录在半连接表中(表的大小由listen第二个参数指定)。然后服务端会发送SYN+ACK两个报文给客户端,如果客户端迟迟不回应,那么这个半连接表里面的数据就会一直占用。如果表满了,那么服务端就不能和新的客户端进行连接握手了。
抵御SYN洪泛攻击的一种方法就是开启SYNCookies,这个会立刻清空半连接表里面的信息。然后在发送SYN+ACK报文的时候,Cookies会生成一个随机SYN来代替原来的SYN。然后客户端发来ACK请求,如果这个ACK和SYN匹配上了,就是握手成功。
投递腾讯等公司10个岗位 >
0 点赞 评论 收藏
分享
C++好难啊:I/O多路复用是Linux五种I/O模型之一,其他几种分别为同步阻塞IO、同步非阻塞IO、信号驱动IO、异步IO。其中除了调用特殊的api接口之外,都是同步的。IO多路复用在Linux下目前常用有三种实现:select、poll、epoll。其中目前最为流行的就是epoll,其是在内核中维护了一颗红黑树存储socket信息,也就是要监听的socket。同时,还有一个链表负责存放发生事件的socket。调用epoll_wait函数,当监听的socket中发生事件之后,就会从epoll_wait返回发生事件的文件描述符。
除此之外,epoll还有两种模式,分别是ET和LT模式。其中ET模式就是事件只会触发一次,如果没有处理的话,下次这个事件不会再次返回。LT模式则是,这个事件没有被多次处理,下次还会返回回来。ET才是真正的高效,而LT则可以看成一个高效的Poll。但是muduo中就采用了LT模式(扩展知识,可以展开讲muduo)。
poll是一个改良版的select,这里就从select讲起。select维护了个32个整型的数组,每个数组有8位,每一位都可以表示一个文件描述符,总共也就可以监听32*32=1024个socket。当调用select监听的之前,每次都要先把这个数组清空,然后对不同的socket注册不同的感兴趣事件。当select返回的时候,我们就需要轮询这个数组,判断每个描述符其是否是发生了事件。
而poll也是这一套机制,不过其使用了一个结构体将描述符fd和感兴趣事件event联系起来,同时其突破了1024的限制,最大可监听数达到了65535。
投递字节跳动等公司10个岗位 >
0 点赞 评论 收藏
分享
牛客497305393号:一面就offer 太厉害了吧!!!
投递京东等公司10个岗位 >
0 点赞 评论 收藏
分享
投递字节跳动等公司10个岗位 >
0 点赞 评论 收藏
分享
ymkzpx:要让type相同的节点 不 靠在一起,如何实现?
是 不 靠在一起?
投递快手等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了: