
Linux高性能服务器编程
文章平均质量分 67
amoscykl
Casablanca!
展开
-
IP协议详解
从两个方面讨论IP协议:1.IP头部信息。用于指定IP通信的源端IP地址,目的端IP地址,指导IP分片和重组以及指定部分通信行为。2.IP数据报的路由和转发。 IPv4头部结构 IP路由 当IP模块接收到来自数据链路层的IP数据报时,首先对该数据报的头部做CRC校验,确认无误之后就分析其头部的具体信息。若该I...原创 2018-06-11 23:14:52 · 268 阅读 · 0 评论 -
TCP协议详解
TCP头部结构 16位端口号:告知主机该报文段的源端口和目的端口。32位序号:一次TCP通信过程中某一个传输方向上的字节流的每个字节的编号。32位确认号:用作对另一方发送来的TCP报文段的相应。其值是收到的TCP报文段的序号值加1。4位头部长度:标示该TCP头部有多少个32bit字(4字节)。因为4位最大能表示15,所以TCP头部最长是60字节。6位标志位: ....................原创 2018-06-11 23:15:03 · 233 阅读 · 0 评论 -
TCP/IP通信案例:访问Internet上的Web服务器
Web客户端和服务器之间使用HTTP协议通信。 HTTP代理服务器的工作原理在HTTP通信链上,客户端和目标服务器之间通常存在某些中转代理服务器,它们提供对目标资源的中转访问。一个HTTP请求可能被多个代理服务器转发,后面的服务器称为前面服务器上的上游服务器。代理服务器按照其使用方式和作用,分为正向代理服务器,反向代理服务器和透明代理服务器。 正向代理:要求客户端自己设置代理服务器的地址。客户的每...原创 2018-06-11 23:15:09 · 3372 阅读 · 0 评论 -
TCP/IP协议族
数据链路层:两个常用的协议是ARP协议(地址解析协议)和RARP协议,实现IP地址和机器物理地址(MAC地址)的转换。网络层使用IP地址寻找机器,而数据链路层使用物理地址寻找机器,因此网络层必须先将IP地址转化成其物理地址。网络层:实现数据包的选路和转发。网络层最核心的协议是IP协议,IP协议根据数据包的目的IP地址来决定如何投递它。传输层:为两台主机上的应用程序提供端到端的通信。传输层只关心...原创 2018-06-11 23:14:42 · 461 阅读 · 0 评论 -
线程池的原理及C++线程池的封装实现
线程池原理介绍 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。 线程池的组成部分: 线程池管理器(ThreadPoolManager):用于创建并管理线程池 工作线程(WorkThread): 线程池中线程 任务接口(Task):每个任务必须实现的接口...原创 2018-10-08 17:24:04 · 4498 阅读 · 0 评论 -
常见的多线程并发服务器设计模型
一、3点基础知识 1、一个主机的端口号为所有进程所共享,但普通用户进程绑定不了一些特殊端口号如20、80等。 2、每个进程都有自己的文件描述符(包括file fd, socket fd, timer fd, event fd, signal fd),一般是1024,可以通过ulimit -n 设置,但所有进程打开的文件描述符总数有上限,跟主机的内存有关。 3、一个进程内的所有线程共享进程的...转载 2018-10-18 15:57:10 · 446 阅读 · 0 评论 -
常见的并发网络服务程序设计方案
摘要陈硕老师的“Linux多线程服务端编程 - 使用muduo C ++网络库”12种并发服务器模型,特整理于此,备学习使用。 方案0:接受+读/写一次服务一个客户 这个不是并发服务器。 方案1:接受+ fork()进程每个连接 这个是传统的UNIX并发网络编程方案,也叫过程每次connextion。这种方案适合并发连接数不...原创 2018-10-21 23:59:31 · 677 阅读 · 0 评论