网络
文章平均质量分 93
奄奄不息
加油
展开
-
accept和epoll惊群问题剖析
文章目录惊群问题1. 不使用epoll/select的情况下多进程是如何共享端口监听的?2. epoll下共享监听端口的行为3. 内核对惊群效应的解决惊群问题1. 不使用epoll/select的情况下多进程是如何共享端口监听的?不使用多路复用的情况,进程要接收TCP连接必然要调用accept并且被阻塞,直到有一条连接到达。单进程:一次只能处理一个连接,业务处理完毕之后close掉客户端连接,然后再调用accept。多进程一:一个主进程accept连接,来了一个连接再fork一个子进程,把来的连原创 2021-09-17 16:38:58 · 1662 阅读 · 0 评论 -
muduo总结
文章目录baseSingletonThreadLocalThreadLocalSingletonnetSocketSocketOpsInetAddressPollerPollPollerselect和poll在内核态的遍历:EPollPollerepoll水平触发和边缘触发的区别:epoll优点epoll机制:Channel定时器TimerIdTimerTimerQueueBufferreadFd函数的优点:前方添加(prepend)AcceptorEventLoopEventLoopThreadEvent原创 2021-09-03 11:55:49 · 805 阅读 · 0 评论 -
提升服务器的并发能力
文章目录什么是服务器并发处理能力有什么方法衡量服务器并发处理能力1. 吞吐率2. 压力测试压力测试前提考虑的条件压力测试中关心的时间又细分以下2种:怎么提高服务器的并发处理能力1. 提高CPU并发计算能力多进程 & 多线程减少进程切换减少使用不必要的锁考虑进程优先级考虑系统负载考虑CPU使用率2. 减少系统调用3. 考虑减少内存分配和释放4. 考虑使用持久连接5. 改进I/O 模型6. 改...转载 2019-08-07 21:28:30 · 670 阅读 · 0 评论 -
查看IP地址的命令
1. ifconfig命令2. ip addr命令 这个命令显示了这台机器上所有的网卡。大部分网卡都会有一个IP地址,如上图192.168.43.111就是一个IP地址,总共32位。 IP地址后面有个scope,对于ens33...原创 2019-08-04 09:35:05 · 26155 阅读 · 0 评论 -
TCP异常情况
1.服务器主机崩溃 客户端在给服务器发送数据时,由于收不到服务器端回传的ACK确认报文,正常情况下,客户端TCP均会进行超时重传,一般为重传12次大约9分钟后才放弃重传,并关闭客户端TCP链接。2.服务器主机崩溃后重启 如果服务器主机在崩溃重启的这段时间里,客户端没有向服务器发送数据...原创 2019-07-24 20:03:20 · 3262 阅读 · 0 评论 -
高级IO之select、poll、epoll
目录IO分两步五种IO模型同步通信VS异步通信阻塞VS非阻塞I/O多路转接之selectselect函数select就绪条件select的特点select缺点I/O多路转接之pollpoll函数原型socket就绪条件同selectpoll的优点poll的缺点I/O多路转接之epollepoll有三个相关的系统调用int epol...原创 2019-03-13 17:40:05 · 2773 阅读 · 0 评论 -
网络层IP协议
主机:配有IP地址,但是不进行路由控制的协议。路由器:配有IP地址,又能进行路由控制节点:主机和路由器的统称网络层提供的服务:地址管理和路由选择:有在复杂的网络环境中确定一个合适的路径的能力,将数据从主机A跨网络送到主机B网络层IP协议4位版本号:可能是IPv4,就是4;也可能是IPv6,IPv6没有推广起来; 4位首部长度:最大是60字节,标准长度是20个字节;默认是5...原创 2019-01-23 18:23:33 · 641 阅读 · 0 评论 -
TCP可靠性和提高性能的机制
确认应答机制TCP将每个字节的数据都进行了编号,即为序列号; 每一个ACK都带有对应的确认序列号,意思是告诉发送者,我已经收到了哪些数据,下一次你从哪里开始发。超时重传机制主机A发送数据给主机B之后,可能因为网络拥堵等原因,数据无法到达主机B; 如果主机A在一个特定时间间隔内没有收到B发来的确认应答,就会进行重发。也有可能是ACK丢失了,此时主机A仍会重发,主机B利用序列号来达到去...原创 2019-07-18 18:27:07 · 487 阅读 · 0 评论 -
三次握手和四次挥手以及面试题
在正常情况下,TCP要经过三次握手建立连接,四次挥手断开连接。各个状态的意义如下:LISTEN - 侦听来自远方TCP端口的连接请求; SYN_SENT -在发送连接请求后等待匹配的连接请求; SYN_RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认; ESTABLISHED- 代表一个打开的连接,数据可以传送给用户; FIN_WAIT_1 - 客...原创 2019-01-21 19:08:30 · 226 阅读 · 0 评论 -
网络基础【一】
目录【前言】协议网络传输流程图同一局域网内,两台主机可以通信不同局域网内,两台主机可以通信【前言】网络也属于操作系统的一部分。寄快递和收快递TCPIP协议栈,是用C语言写的。网络是层状的硬件角度:发送消息的路径:键盘输入-->QQ进程把数据拿到内存-->CPU加工处理(封包)-->结果写到内存上-->再刷新到外设上:网卡...原创 2018-12-23 20:56:53 · 136 阅读 · 0 评论 -
URL、HTTP、UDP、TCP
我们所写的网络程序,都是在应用层。HTTP协议就是大佬写的应用层协议之一。序列化和反序列化协议是一种“约定”,socket,api等接口都是按“字符串”来接发数据的,如果需要传输“结构化的数据”,此时就有了序列化和反序列化。本质上讲,序列化就是把实体对象状态按照一定的格式写入到有序字节流,反序列化就是从有序字节流重建对象,恢复对象状态。序列化的目的:以某种存储形式使自定义对象持...原创 2019-01-16 23:12:17 · 1756 阅读 · 0 评论