Linux服务器
文章平均质量分 89
垃圾堆里的程序员
这个作者很懒,什么都没留下…
展开
-
Linux高性能服务器编程(5)HTTP协议详解
反向代理是指用代理服务器来接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从内部服务器上得到的结果返回给客户端。各大网站通常分区域设置了多个代理服务器,在不同的地方ping同一个域名可能获得不同的IP地址,这些IP地址实际上是代理服务器的IP地址。要求客户端自己设置代理服务器的地址。反向代理服务器和真正的Web服务器也位于同一个逻辑网络中,这通常由提供网站的公司来配置和管理。用户访问Internet的数据必然都经过网关,如果在网关是设置代理,则代理对用户来说显然是透明的。原创 2023-05-22 14:33:26 · 80 阅读 · 0 评论 -
Linux高性能服务器编程(4)TCP协议详解
TCP协议更靠近应用层,在应用程序中有更好的可操作性。TCP模块开始发送数据时,发送缓冲区中这些等待发送的数据可能被封装成一个或多个TCP报文段发出。TCP模块发送出的TCP报文段的个数和应用程序执行的写操作次数之间没有固定的数量关系。当接收端收到多个报文段时,,TCP模块将它们携带的应用程序数据按照TCP报文段的序号依次放入TCP接受缓冲区中,并通知应用程序读取数据。接收端可以选择是否一次全读取,也可分多次读取,这取决于用户指定的应用程序缓冲区的大小。原创 2023-05-22 14:41:33 · 785 阅读 · 0 评论 -
Linux高性能服务器编程(11)
定时是指在一段时间之后触发某段代码的机制,我们可以在这段代码中依次处理所有到期的定时器。定时机制是定时器得以被处理的原动力。高效管理定时器的容器:时间轮和时间堆。Linux提供了三种定时方法:①socket选项SO_RCVTIMEO和SO_SNDTIMEO②SIGALRM信号③I/O复用系统调用的超时函数。原创 2023-09-04 17:22:09 · 87 阅读 · 0 评论 -
Linux高性能服务器编程(9)
网络程序如下情况使用I/O复用技术:①客户端程序要同时处理多个socket②客户端程序要同时处理用户输入和网络连接③TCP服务器要同时处理监听socket和连接socket(这是IO复用使用最多的场合)④服务器要同时处理TCP请求和UDP请求。(比如回射服务器)⑤服务器要同时监听多个端口,或者处理多种服务。原创 2023-09-09 15:50:09 · 45 阅读 · 0 评论 -
Linux高性能服务器编程(7)高级I/O函数
在特定的条件下能表现出优秀的性能。这些函数大致分为三类:1.用于创建文件描述符的函数,包括pipe、dup/dup2函数;2.用于读写数据的函数,包括readv/writev、sendfile、mmap/munmap、splice和tee函数;3.用于控制I/O行为和属性的函数,包括fcntl函数。原创 2023-06-01 10:46:37 · 101 阅读 · 0 评论 -
Linux高性能服务器编程(1)
TCP/IP物理模型分析。封装和分用原创 2023-05-11 14:57:07 · 283 阅读 · 0 评论 -
Linux高性能服务器编程(2)
ARP协议可以实现网络层地址到任意物理地址的转换。工作原理:主机向自己所在的网络广播一个ARP请求,该请求包含目标机器的网络地址。此网络上的其他机器都将收到这个请求,但只有被请求的目标机器会回应一个ARP应答,其中包含自己的物理地址。硬件类型字段定义物理地址的类型,它的值为1表示MAC地址协议类型字段表示要映射的协议地址类型,它的值为0x800,表示IP地址硬件地址长度字段和协议地址长度字段,单位是字节。MAC地址长度为6;IPv4地址长度为4.原创 2023-05-22 14:28:10 · 53 阅读 · 0 评论 -
Linux高性能服务器编程(3)IP协议详解
IP头部信息。IP头部信息出现在每个IP数据报中,用于指定IP通信的源端IP地址、目的端IP地址,指导IP分片和重组,以及指定部分通信行为。IP数据报的路由和转发。IP数据报的路由和转发发生在除目标机器之外的所有主机和路由器上。它们决定数据报是否应该转发以及如何转发。IP协议是TCP、IP协议族的动力,它为上层协议提供无状态、无连接、不可靠的服务。**(1)无状态(stateless)**是指IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输和接收都是互相独立、没有上下文关系的。原创 2023-05-22 14:32:02 · 114 阅读 · 0 评论 -
Linux高性能服务器编程(8)
服务器解构为三部分:I/O处理单元、逻辑单元、存储单元是服务器管理客户连接的模块。它通常要完成以下工作:等待并接收新的客户连接,接收客户数据,将服务器响应数据返回给客户端。对一个服务器机群来说,I/O处理单元是一个专门的接入服务器。它实现负载均衡,从所有逻辑服务器中选取负荷最小的一台来为新客户服务。一个一般是一个进程或线程。它分析并处理客户数据,然后将结果传输给I/O处理单元或者直接发送给客户端(具体使用那种方式取决于时间的处理模式)。对服务器机群而言,一个逻辑单元本身就是一台逻辑服务器。原创 2023-06-11 16:36:15 · 320 阅读 · 0 评论 -
Linux高性能服务器编程(6)socket基础
Linux网络编程基础APIsocket地址API。socket最开始的含义是一个IP地址和端口对(ip,port)。它唯一地表示了使用TCP通信地一端。socket基础API。socket地主要API都定义在sys/socket.h头文件中,包括创建socket、命名socket、监听socket、接收连接、发起连接、读写数据、获取地址信息、检测带外标记,以及读取和设置socket选项。网络信息API。原创 2023-05-29 14:20:21 · 302 阅读 · 0 评论 -
Linux高性能服务器编程(10)
Linux下,一个进程给其他进程发送信号的API是kill函数。该函数把信号sig发送给目标进程;目标进程由pid参数指定,其可能的取值及含义如表pid参数含义pid > 0信号发送给PID为pid的进程pid = 0信号发送给本进程组内的其他进程pid = -1信号发送给除init进程外的所有进程,但发送者需要拥有对目标进程发送信号的权限pid < -1信号发送给组ID为-pid的进程组中的所有成员Linux定义的信号值都大于0,如果sig取值为0,则kill函数不发送任何信号。原创 2023-09-09 15:51:12 · 79 阅读 · 0 评论