传统I/O : 硬盘—>内核缓冲区—>用户缓冲区—>内核 Socket 缓冲区—>协议引擎 sendfile :硬盘—>内核缓冲区—>内核 Socket 缓冲区—>协议引擎 sendfile(DMA 收集拷贝):硬盘—>内核缓冲区—>协议引擎 零拷贝(Zero-Copy):一种高效的数据传输机制 m... ...
分类:
其他好文 时间:
2020-09-09 19:02:36
阅读次数:
40
netlink_kernel_create内核函数用于创建 内核socket用用户态通信 static inline struct sock * netlink_kernel_create(struct net *net, intunit, struct netlink_kernel_cfg *cf ...
分类:
Web程序 时间:
2020-06-24 23:26:13
阅读次数:
100
一、序言 Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”,而TCP socket则是网络编程的主流,即便您没有直接使用到net中有 ...
分类:
编程语言 时间:
2019-04-06 17:02:08
阅读次数:
159
转载自:http://blog.csdn.net/zhangxiaopeng0829/article/details/7646639 自己在年假中空闲之余翻译的内核中Socket CAN的文档,原文地址在: http://lxr.linux.no/linux+v2.6.34/Documentatio ...
分类:
系统相关 时间:
2017-10-09 16:50:26
阅读次数:
186
Linux内核socket优化项 vi /etc/sysctl.confnet.core.netdev_max_backlog = 30000 每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目net.core.somaxconn = 262144 用来限制监听( ...
分类:
系统相关 时间:
2016-06-07 14:28:41
阅读次数:
423
Linux的IO操作中数据的写函数int nwrite = write(int fd,void* buf ,int len)表示向fd文件描述符写入len个字节长度的数据报文,但是这并不能保证真正向内核缓冲区写入了len个数据。比如当内核socket缓冲区不足,小于len个字节,则会只写入其中的一部 ...
分类:
系统相关 时间:
2016-05-25 20:44:44
阅读次数:
271
一、 UDP C/S的典型函数调用
UDP没有像TCP那样的连接,客户端直接sendto向某服务器发送数据,服务器端一直recvfrom阻塞,以接收任何客户端发送的数据。
二、 sendto和recvfrom函数
int sendto(int sockfd, const void* buff, size_t nbytes, int flag, const struct sock...
分类:
其他好文 时间:
2015-07-09 17:59:45
阅读次数:
202
1. socket函数
int socket(int family, int type,int protocol)
成返回一个套接字描述符。错误返回-1
其中family指定协议族,一般IPv4为AF_INET, IPv6为AF_INET6。
其中type指定套接字类型,字节流:SOCK_STREAM. 数据报:SOCK_DGRAM。
一般情况下通过family和type的组合都可以...
分类:
其他好文 时间:
2015-05-27 17:20:13
阅读次数:
158
本地应用程序利用socket(AF_INET)通信的数据在内核中的流向...
分类:
Web程序 时间:
2015-04-12 14:51:14
阅读次数:
239
在内核中为什么要有structsocket结构体呢?structsocket结构体的作用是什么?下面这个图,我觉得可以回答以上两个问题。由这个图可知,内核中的进程可以通过使用structsocket结构体来访问linux内核中的网络系统中的传输层、网络层、数据链路层。也可以说structsocket是内核中的..
分类:
其他好文 时间:
2014-12-02 09:07:03
阅读次数:
282