发布时间: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_.........【阅读全文】
发布时间: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) */.........【阅读全文】
发布时间: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.........【阅读全文】