- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 网络io之多路复用
selectserver端client端selectserver端server端关键是把server监听套接字srvfd本身当作一个普通套接字,交给select处理。如果对srvfd特殊处理,将会需要非阻塞的accept,然后调用select处理client的连接,这样将两者串行起来了,统一交给select可以实现统一监听,并行操作。把srvfd本身当作一个普通...
2018-07-29 16:53:22 618
翻译 unix网络编程时从write到read发生了什么
1. writepacket transmission in kernel spacepacket transmission in device driver1.1 数据被写入TCP send buff1.2 在TCP send buff里面的数据可用或者ACK被收到时,TCP层构建报文段。1.3 报文段被传递到网络层的IP协议去处理。1.4 IP层将包放入与网卡相关的外出队列qd...
2018-07-24 08:48:11 765
原创 tcp-可靠传输的原理
哪些情况不可靠单个包被损坏单包完整,多包乱序怎么办哪些情况不可靠每次发一个包,单个包被损坏但每次发多个包,单个包没有被你损坏(损坏了由1的情况处理),多个包顺序错乱。单个包被损坏包含三个问题:如何知道一个包有没有被损坏(加校验码,进行校验。校验ok就传递给应用层),发送端如何知道接收端的包的有没有被损坏(会包:接收端校验ok,发ACK;接收端校验失败,回NA...
2018-07-22 18:16:55 882
原创 libkafka的配置项
libkafka的配置项//@fileGlobal configuration properties Property C/P Range Default Description builtin.features * gzip, snappy, ssl, sasl, regex, lz4, sasl_gssapi, sasl_plai...
2018-07-18 20:20:43 4483
原创 unix网络编程中的fd是什么
unix网络编程中的fd是什么 fd全称是file descriptor,维基百科这样描述: In the traditional implementation of Unix, file descriptors index into a per-process file descriptor table maintained by the kernel, that in turn...
2018-07-18 07:59:34 26442
原创 软件开发-资源池
资源池介绍资源池,就是在系统初始的时候创建一组资源,放到一个池子里。需要的时候从资源池里面选一个出来工作,用完了放回去。资源池避免了频繁的创建和销毁系统资源的过程,而系统资源的申请和销毁一般都是比较耗时的。所以,设计好的资源池能提高程序并发程序的性能。常见的资源池有线程池、内存池、网络socket连接池、数据库连接池等。资源池的创建和销毁简单,关键是如何在资源池间进行通信和调度。这里先看看...
2018-07-17 07:30:29 4734
原创 进程和线程的区别
What is the difference between a process and a thread?进程线程最显著的区别是,进程间的内存空间是独立的,同一个进程内的线程间共用同一个虚拟内存空间。 线程间通信可以靠共享的全局变量;但是进程间通信就需要靠消息。What is the difference between a process and a thread?进程...
2018-07-16 08:16:45 202
翻译 tcp三次握手
TCP 三次握手原理,你真的理解吗?tcp_abort_on_overflow 为0表示如果三次握手第三步的时候全连接队列满了那么server扔掉client 发过来的ack(在server端认为连接还没建立起来);1表示第三步的时候如果全连接队列满了,server发送一个reset包给client,表示废掉这个握手过程和这个连接(本来在server端这个连接就还没建立起来)。cat ...
2018-07-15 20:44:58 4089 1
翻译 udp数据包大小问题
参考UDP数据包大小问题 几个关键点: 1. 以太网(Ethernet 在数据链路层)数据帧的长度必须在46-1500字节之间,这个1500字节被称为链路层的MTU(最大传输单元)(已经减去首部和尾部的18字节)这个1500字节就是网络层IP数据报的长度限制.因为IP数据报的首部为20字节,所以IP数据报的数据区长度最大为1480字节.而这个1480字节就是用来放TCP传来的TCP报文段或UD...
2018-07-15 16:31:50 4768 1
原创 tcp ip中的一些术语的含义及其决定方式
MTU maximum transmission unit is the size of the largest protocol data unit (PDU) that can be communicated in a single network layer transaction.The MTU relates to, but is not identical to the maxi...
2018-07-15 15:38:25 488
原创 生成和使用数据库ctags cscope文件
生成和使用数据库ctags cscope文件参考Using Cscope on large projects (example: the Linux kernel) 1. 生成数据库文件:ctags -R --fields=+iaS --extra=+q *mkdir -p ~/.vim/ && ctags --fields=+iaS --extra=+q -R -f ...
2018-07-15 11:37:15 622
原创 网络-tcp报文段首部结构
tcp报文段首部结构基础知识tcp报文段首部结构 tcp首部分为20字节的固定长度首部,和长度可变的选项部分首部。固定长度首部分为5行,每行4字节。首部总体有多长,由固定首部第四行里面的首部长度字段决定(表示有多少个32字节,所以也可以叫首部行数字段)。第一行...
2018-07-15 11:36:07 2664
原创 gcc cas无锁编程和性能测试
[TOC]cas无锁编程介绍gcc文档的5.44 Built-in functions for atomic memory access介绍了一组原子操作,其中有一组compare_and_set函数可以用来实现无锁编程:bool __sync_bool_compare_and_swap (type *ptr, type oldval type newval, ...)type ...
2018-07-13 00:26:22 1778
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人