Linux环境网络编程
文章平均质量分 78
Andrew_37
对自己学过的知识,进行整理总结。
展开
-
reactor与单台服务器并发
reactor单反应堆实现百万并发1.对并发概念的理解服务器并发概念:服务器同时能承载的客户端数量。服务器并发的基本要求:(1)5w以上的响应请求, 这些请求,可能是对数据库的操作,磁盘的操作。(2)cpu占用率在60%左右(3)内存占用率在80%左右对并发理解的误区:(1)QPS:服务器每秒的吞吐量(2)服务器处理客户端请求的数量 -----> 没有限定时间2.五元组保证唯一的网络 IO五元组定义 描述源IP 客户端IP目的IP 服务端IP源端口 客户端port:0~65原创 2021-07-19 22:20:35 · 228 阅读 · 0 评论 -
用户态协议中之epoll的实现
1、在网络编程的时候,有以下这些接口,socket 、listen、 bind、 accept、recv、 send、 close、connect ````请问有哪些接口,被调用的时候,会给对端发送一个数据呢?send、connect、close2、 epoll 需要检测哪些地方?1)accept队列有了节点,即三次握手成功, 就会回调epoll2)客户端发送数据到tcp协议栈的时候,且返回了ACK给客户端的时候,回调epoll3)tcp协议栈调用了send函数, 给客户端发送消息之后 ,tc原创 2021-07-11 23:04:57 · 246 阅读 · 0 评论 -
TCP/IP、拥塞、慢启动
用户态协议栈TCP/IP 滑动窗口 拥塞慢启动为什么普遍使用TCP?TCP协议头如何保证必达,有序3次握手TCP 11种状态转化图TCP怎么保证高效TCP 是怎么保证顺序的?为什么还有UDP传输?拥塞控制是怎么样的?如果遇到拥塞,滑动窗口怎么算?RTT怎么计算?TCP四次挥手为什么普遍使用TCP?1、数据可靠、必达2、传输效率不低3、顺序TCP协议头每个TCP包,都会有这个协议头。问:sequence Number 的初始值是多少?有没有可能有溢出的现象?答:sequence num原创 2021-07-10 13:05:43 · 186 阅读 · 0 评论 -
用户态协议栈TCP/IP的实现
在上一篇文章中,知道了为什么要有用户态协议栈,它具备什么功能。今天来讲述,如何实现一个用户态协议栈。它的原理就是, 将TCP/UDP到达网卡经解析后的数据,存储起来, 然后存储的位置通过映射的方法,直接到达应用程序处理。网络协议栈请问,网卡是属于哪一层协议栈?先解释一下,物理层 传输的是 物理信号, 即 光电信号。数据链路层 , 对应的是 数字信号。而从物理层的 光电信号 转化为 数据链路层的 数字信号, 靠的是 网卡。网卡, 也可将 数字信号转为 光电信号。所以,网卡并不属于网络协原创 2021-07-09 16:35:06 · 905 阅读 · 3 评论 -
用户态协议栈基础知识
每一个客户端给服务器发送数据时,都会先经过服务器的网卡,通过网卡解析之后,然后网卡有一块数据,能够把解析后的数据存储起来。接着,再从网卡存储的数据拷贝到内核协议栈,最后,再从内核协议栈拷贝到应用程序。...原创 2021-07-08 11:00:01 · 522 阅读 · 0 评论 -
epoll 的 reactor模型
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <sys/epoll.h>#include <arpa/inet.h>#include <fcntl.h>#include <unistd.h>#include <errno.h>#define BUFF原创 2021-07-06 20:59:18 · 200 阅读 · 0 评论 -
网络IO管理
5种网络IO模型1、非阻塞IO2、阻塞IO3、多路复用IO4、异步IO5、信号驱动IO信号驱动IO#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <string.h>#include <unistd.h>#include <signal.h>#in原创 2021-07-01 15:54:10 · 120 阅读 · 0 评论