自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李海锋的博客

技术路上共勉!

  • 博客(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

转载 并行编程-文集

Linux进程间通信方式简介

2018-07-17 07:58:10 150

原创 软件开发-资源池

资源池介绍资源池,就是在系统初始的时候创建一组资源,放到一个池子里。需要的时候从资源池里面选一个出来工作,用完了放回去。资源池避免了频繁的创建和销毁系统资源的过程,而系统资源的申请和销毁一般都是比较耗时的。所以,设计好的资源池能提高程序并发程序的性能。常见的资源池有线程池、内存池、网络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

mysql 5.6 document

mysql 5.6 document

2016-06-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除