![](https://img-blog.csdnimg.cn/4d81dc89c42a408ea1c05837dd625836.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
网络
文章平均质量分 63
网络原理、网络编程
鲜花盔甲的主人
大家好!!!
展开
-
TCP协议的可靠性
TCP作为传输层协议,提供可靠的传输服务。可靠性:保证消息不重复、不丢失、不乱序。如何保证可靠性:TCP协议依据面向连接、流量控制、拥塞控制特性达到可靠的目的。原创 2023-02-05 11:35:20 · 1160 阅读 · 0 评论 -
IO多路复用 select、poll 、epoll
IO多路复用指能在同一个线程中同时监听多个文件描述符是否就绪,从而达到高效操作就绪fd的作用。select、poll 、epoll是经常使用的三种多路复用接口。其中select、poll在各系统中基本都有实现, linux有epoll,windows下则有iocp.select、poll 、epoll共同点:提供检测fd就绪的机制,使其可以在一个线程内处理多个客户端消息。原创 2023-01-29 14:48:28 · 642 阅读 · 0 评论 -
网络IO模型
一提到网络IO,甚至一些网络框架,就无法避免遇到阻塞、非阻塞、同步、异步的概念,要理解这些概念,先要清楚网络IO是什么,以及网络IO如何工作。网络IO本质上也是IO的一种,就是数据的输入输出,可以理解为文件fd,这里也可以指socket fd。网络IO的处理流程,涉及到操作系统的用户空间与内核空间,在这两个阶段中发生的不同情况,从而衍生出多种网络IO模型。阻塞/非阻塞 从内核处理系统调用是否挂起用户线程的角度划分。同步/异步 从用户线程系统调用后后续的处理逻辑划分。原创 2023-01-29 11:42:10 · 553 阅读 · 0 评论 -
网络编程基础
3.3.1 TCP三次握手、四次挥手3.3.2 TCP慢启动、拥塞控制3.3.3 TCP滑动窗口3.3.4 TCP状态迁移图。原创 2023-01-28 18:42:15 · 585 阅读 · 0 评论 -
Reactor、Proactor--网络服务器模型发展
1 原始模型 最开始的网络编程服务器是用一个while循环来监听新的套接字连接,然后用一个函数处理。这种方法无法并发,效率太低。如果当前请求没有处理完,那后面的只能被阻塞,服务器的吞吐量太低。随着客户端增多,而引发C10K问题2 基于线程的架构2.1 多线程并发模式一个连接一个线程,服务器每当收到客户端的一个请求, 便开启一个独立的线程来处理,一个线程处理一个连接的全部生命周期一定程度上极大地提高了服务器的吞吐量,由于在不同线程中,之前的请求在read阻塞以后,不会影响到后...原创 2022-01-27 11:11:38 · 2073 阅读 · 4 评论 -
web服务器与web框架
web原创 2022-12-21 16:46:56 · 333 阅读 · 0 评论 -
HTML 响应处理
开始FAW测试这是一个段落原创 2022-12-21 16:06:44 · 334 阅读 · 0 评论 -
muduo 网络库补充
one loop per thread + thread pool 的 reactor模型。每个线程最多可以有一个自己的EventLoop,多个线程间也可以共享一个EventLoop。。工作线程从线程池分配,如果线程池大小为0,则共用一个线程。原创 2022-10-10 17:27:30 · 773 阅读 · 0 评论 -
WIN下nginx启动不起来
分析:上述启动无法看到日志,通过cmd直接运行nginx.exe可看到日志缺少log目录。双击nginx.exe或使用start nginx.exe后,nginx未启动。在当前目录下创建log目录后再次启动。原创 2022-09-23 16:32:58 · 2869 阅读 · 0 评论 -
cpp-httplib 源码剖析
cpp-httplib是一个c++封装的http开源库,仅包含一个头文件,不过代码行数达到8000多行,相比于上一节中讲述的Tinyhttpd ,该库功能就比较完善,并且可以在简单的项目中使用。 cpp-httplib 服务端采用select IO多路复用模型,工作线程池的处理方式,主要包含的类Server、Client、Request、Response。1 该库使用简洁方便 1.1 服务端举例 httplib::Server server; ...原创 2021-12-06 17:42:49 · 4298 阅读 · 0 评论 -
Tinyhttpd 源码剖析
Tinyhttpd 是一个开源超轻量型的Http Server,使用C语言开发,代码仅516行,萌新可以借助它来了解网络编程以及http协议。1 整体处理流程比较简单,参考图。2 流程分析: 服务端通过socket套接字创建、绑定端口、启动监听,对于每一个新客户端请求创建一个线程处理,是一个简单的循环监听分配线程处理请求的服务端模型。 与HTTP协议相关的内容集中在accept_request,分行读取接收到的客户端消息,解析出请求...原创 2021-12-03 15:28:59 · 417 阅读 · 0 评论 -
Wireshark 捕获过滤语句
Wireshark 捕获过滤语句基于IP地址过滤host 192.168.1.1 过滤IP地址基于网段地址过滤net 172.16.0.0/16 过滤网段dst net 172.16.0.0/16 过滤目的网段src net 172.16.0.0/16 过滤源网段not dst net 172.16.0.0/16 过滤除这个网段数据包基于MAC地址过滤ether host aa:aa:aa:aa:aa:aa 过滤MAC地址ether src aa:aa:aa:aa:aa:aa原创 2021-03-25 16:01:48 · 369 阅读 · 0 评论 -
muduo-基于事件的非阻塞TCP网络库
1 结构:typedef std::vector PollFdList pollfds_typedef std::map<int, Channel*> ChannelMap channels_typedef std::vector<Channel*> ChannelList activeChannels2 类:Accepor 生命周期由 TcpServer 控制, TcpServer 直接供用户使用,生命周期由用户可控制。TcpServer .原创 2020-08-19 15:17:24 · 269 阅读 · 0 评论