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

全部博文(15)

文章存档

2014年(15)

我的朋友

发布时间:2014-04-19 18:21:16

SOCK_RAW给了用户更大的主动性,可以自己构造L4甚至L3的头,直接和内核进行交互,略过上层的协议栈,如ping命令:socket(PF_INET, SOCK_RAW, IPPROTO_ICMP) = 3同时SOCK_RAW可以从驱动层直接获取报文,因此可以应用与网络包的分许,如tcpdump命令:socket(PF_PACKET, SOCK_RAW, 768) = 3 //ETH_.........【阅读全文】

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

发布时间:2014-04-19 00:03:04

NAPI是网络收包流程上的一种优化机制,简单而言,就是同时利用中断和轮询的优点,在一个中断中尽量接收多的报文,而不是一个中断接收一个报文。目前主流的网卡驱动都是使用这种机制的,同时内核也保持着对于普通方式的兼容。对于每一个中断向量,驱动都需要维护一个napi_struct的数据结构:struct napi_struct {.........【阅读全文】

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

发布时间:2014-04-12 22:12:18

在IP头、UDP头、TCP头以及ICMP头中都有校验相关的字段,用于检测数据传输过程中是否出错了。IP头校验只校验头本身,ICMP头校验包含ICMP头以及负载,而UDP、TCP头校验不仅包含相应的头和负载,同时包含了伪头部:/**  * csum_tcpup_magic - Compute an IPv4 pseudo header checksum.&.........【阅读全文】

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

发布时间:2014-04-07 21:40:38

struct iovec数据结构在网络和IO的很多地方都使用,数据结构比较简单:struct iovec{    void __user *iov_base; /* BSD uses caddr_t (1003.1g requires void *) */    __kernel_size_t iov_len; /* Must be size_t (1003.1g) */.........【阅读全文】

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

发布时间:2014-04-03 23:38:38

当一个ip报文超过MTU的时候,发送端会进行fragment,接收端反过来需要进行defrag发送20K的数据的时候,接收端tcpdump输出如下:22:39:47.521105 IP 100.100.100.11.51389 > 100.100.100.2.8888: UDP, length 1000022:39:47.521189 IP 100.100.100.11 > 100.100.100.2: ip-proto-1722:39:47.........【阅读全文】

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

登录 注册