网络服务器
文章平均质量分 77
起个别名
这个作者很懒,什么都没留下…
展开
-
详解计算机网络
虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到广播信息,例如下图中(A1、A2、A3、A4)属于一个虚拟局域网,A1发送的广播会被A2、A3、A4收到,而其它站点收不到。目前的互联网是一种多层次ISP结构,ISP根据覆盖面积的大小分为主干ISP、地区ISP和本地ISP。计算机网络是任何IT从业者必备的基础知识,网络安全工程师也不例外,但事实上,却有许多朋友都不了解,今天用43张图详解计算机网络,包括。应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。原创 2024-06-01 10:29:46 · 324 阅读 · 0 评论 -
epoll最详细的介绍以及与epoll相关的问答题
在现实中,我们当然选择第一种方式,但是在计算机中,情况就要复杂一些。1)对一个fd调用EPOLL_ADD,如果这个fd上有用户关注的激活事件,则这个fd会被添加到readylist. 2)对一个fd调用EPOLL_MOD改变关注的事件,如果新增加了一个关注事件且对应的fd上有相应的事件激活,则这个fd会被添加到readylist. 3)当一个fd上有事件触发时(例如一个socket上有外来的数据)会调用ep_poll_callback(见eventpoll::ep_ptable_queue_proc),原创 2024-05-19 22:07:56 · 975 阅读 · 1 评论 -
详解网络服务器中的IO模型
如何实现这样的高并发?在select/poll时代,服务器进程每次都把这100万个连接告诉操作系统(从用户态复制句柄数据结构到 内核态),让操作系统内核去查询这些套接字上是否有事件发生,轮询完成后,再将句柄数据复制到用 户态,让服务器应用程序轮询处理已发生的网络事件,这一过程资源消耗较大,因此,select/poll一般 只能处理几千的并发连接。同时,epoll_wait的效率也非常高,因为调用epoll_wait时,并没有 向操作系统复制这100万个连接的句柄数据,内核也不需要去遍历全部的连接。原创 2024-05-19 21:48:28 · 1008 阅读 · 1 评论 -
两种多线程编程方式:pthread 和 thread
由于互斥锁只有两种状态,这限制了它的用途,因此 POSIX 又提出了条件变量(Condition Variable)机制。条件变量允许线程在阻塞的时候等待另一个线程发送的信号,当收到信号后,阻塞的线程就被唤醒并试图锁定与之相关的互斥锁。可以看到,条件变量是需要结合互斥锁一起使用的。互斥锁(Mutex)常常被用来保护那些可以被多个线程访问的共享资源,比如可以防止多个线程同时更新同一个数据时出现混乱。POSIX 标准没有规定一个线程的堆栈大小。安全可移植的程序不会依赖于具体实现默认的堆栈限制,而是显式地调用。原创 2024-05-08 09:42:15 · 372 阅读 · 0 评论 -
ifconfig、IP详解
inet:表示IPV4网络地址标准协议,用点分隔的十进制数字表示,我这个电脑先前为自动,一直连不上有线网络,手动设置IPV4的地址、网关、掩码就可以连接成功,反正不能为自动,ifconfig显示也就没有inet,只有inet6。inet6:表示IPV6网络地址标准协议,好像禁用不掉,它是用冒号分隔的十六进制数字表示,相比于IPV4,可以提供更多的地址空间,更高的网络性能。lo:本地环回,不是真正的网卡,而是虚拟的软件实现的本地地址,用于本机的自通信。RUNNING代表网卡的网线被接上。原创 2024-05-06 20:18:12 · 146 阅读 · 1 评论 -
protobuf在rpc网络服务中的使用方法
它是一种序列化和反序列化协议,常见序列化和反序列化协议有XML、JSON、PB,相比于其他是文本存储,PB更有优势:跨平台语言支持,可以由C++传输到java,序列化和反序列化效率高速度快,因为是二进制存储且序列化后体积比XML和JSON都小很多,适合网络传输,XML逐渐弃用,JSON是键值存储方式,有额外的无用信息。原创 2024-05-06 12:42:11 · 400 阅读 · 0 评论 -
详解select、poll、epol
epoll:原创 2024-05-06 12:15:07 · 401 阅读 · 0 评论