Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86405
  • 博文数量: 15
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 210
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-05 15:27
文章分类

全部博文(15)

文章存档

2014年(15)

我的朋友

发布时间:2014-03-30 10:25:17

简单的一个udp的服务程序主要有如下几步:1:调用socket函数创建socket2:调用bind函数指定在什么地址监听什么端口3:调用recvfrom以及sendto进行首发包#include #include #include #include #include ......【阅读全文】

阅读(2678) | 评论(0) | 转发(0)

发布时间:2014-03-21 00:01:28

GRO是一种优化机制,让包尽可能在底层合并,给上层呈现一个大的数据包驱动调用napi_gro_receive触发GRO流程首先初始化GRO相应的分量,然后根据__napi_gro_receive的返回值做不同的处理:如果能够合并或者保留,则不需要往上层协议栈送,否则就上报。gro_result_t napi_skb_finish(gro_result_t ret, struct sk.........【阅读全文】

阅读(4139) | 评论(0) | 转发(0)

发布时间:2014-03-16 12:24:43

分析网络协议栈的代码,如果不看驱动代码的话,总是感觉没有完全落到实处。由于手头上只有rtl8169的网卡设备,为了方便调试和分析,因此选择该款设备对应的驱动进行分析:r8169.ko,内核代码还是基于3.1.3对于协议栈而言:1)发包的最后步骤为调用驱动注册的ndo_start_xmit钩子函数,具体如何实现由驱动完成2)收包由中.........【阅读全文】

阅读(3101) | 评论(0) | 转发(1)

发布时间:2014-03-01 16:30:48

IP头限制一个包最大为64K,但是实际上一般没法一次发送这么大的包,以太网一般有MTU限制一次发包的大小MTU一般为1500字节。因此发包过程涉及packet ?fragmentation,该流程在L3层完成TCP把类似的操作提到了L4层,引入了MSS的概念,这个一般是根据MTU生成的。随着网卡速度的提升,网络收发包会占用大量cpu,为了尽量.........【阅读全文】

阅读(3027) | 评论(0) | 转发(0)

发布时间:2014-02-09 16:55:57

先看一下socket系统调用涉及的相关流程:int socket(int domain, int type, int protocol);domain指定协议族,protocol family,如:/* Supported address families. */#define AF_UNSPEC    0#define AF_UNIX       &.........【阅读全文】

阅读(3038) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册