摘要:
1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接。client向server发送消息,server回应client,然后一次读写就完成了,这时候双方任何一个都可以发起close操作,不过一般都是cli 阅读全文
阅读排行榜
ln -s 软链接产生Too many levels of symbolic links错误
2011-09-07 21:47 by 后端技术, 18112 阅读, 收藏,
摘要:
今天在linux下编译了一下boost,其中include文件和lib文件都安装在个人目录,为了编译时不必添加额外的-I参数,所以采用ln -s boost /usr/include/boost。编译一个boost测试源文件发现如下的错误:Too many levels of symbolic links。查找一番发现建立软链接时采用的是相对路径,所以才会产生这样的错误,解决方式是采用绝对路径建立软链接:ln -s /home/XX/include/boost /usr/include/boost即可、 阅读全文
mmap与read/write的区别
2011-06-12 13:24 by 后端技术, 8022 阅读, 收藏,
摘要:
在介绍mmap和read/write之前,首先先要介绍一下基础知识,其中包括磁盘,文件系统,内存。 首先说一下文件系统,linux文件系统的三层结构想必大家多少都了解一些,每个进程中都有一个用户文件描述符表,表项指向一个全局的文件表中的某个表项,文件表表项有一个指向内存inode的指针,每个inode唯一标识一个文件。如果同时有多个进程打开同一文件,他们的用户文件描述符表项指向不同的文件表项,但是这些文件表项会指向同一个inode。 此时又会引出另外一个东东:page cache。内核会为每个文件单独维护一个page cache,用户进程对于文件的大多数读写操作会直接作用到page cach. 阅读全文
mmap && madvise的配合使用
2011-06-10 17:25 by 后端技术, 5360 阅读, 收藏,
摘要:
mmap的作用是将硬盘文件的内容映射到内存中,采用闭链哈希建立的索引文件非常适合利用mmap的方式进行内存映射,利用mmap返回的地址指针就是索引文件在内存中的首地址,这样我们就可以放心大胆的访问这些内容了。 使用过mmap映射文件的同学会发现一个问题,search程序访问对应的内存映射时,处理query的时间会有latecny会陡升,究其原因是因为mmap只是建立了一个逻辑地址,linux的内存分配测试都是采用延迟分配的形式,也就是只有你真正去访问时采用分配物理内存页,并与逻辑地址建立映射,这也就是我们常说的缺页中断。 缺页中断分为两类,一种是内存缺页中断,这种的代表是malloc,利用m. 阅读全文
浙公网安备 33010602011771号