默默的一块石头
发布时间:2019-11-19 15:50:26
使用socket(AF_INET, SOCK_STREAM, 0)创建socket/* Upon startup we insert all the elements in inetsw_array[] into * the linked list inetsw. */static struct inet_protosw inetsw_array[] ={ { .type = SOCK_STREAM, .protocol = IPPROTO_TCP, .prot =&nbs.........【阅读全文】
发布时间:2019-11-18 20:03:46
本文介绍了ip选项的相关知识,并详细分析了主机设置ip选项到发送syn包connect的过程,本文分析的内核版本是 linux-2.6.18-194......【阅读全文】
发布时间:2019-11-18 17:16:01
发送TCP数据包 与UDP一样,要从用户控件中创建的TCP套接字发送数据包,可使用多个系统调用,包括:send()、sendto()、sendmsg()和write()。这些系统调用最终都由方法tcp_sendmsg()(net/ipv4/tcp.c)来处理。它将来自用户空间的有效负载复制到内核,并将其作为TCP数据段进行发送。这个方法比方法udp_sendmsg(.........【阅读全文】
发布时间:2019-11-13 15:02:26
最近正在看网络代码,书中说内核子系统在初始化时候会注册到自己感兴趣事件的notification chains上。然后在events发生时候,由notifier_call_chain()函数产生,并遍历所有回调函数,调用此event回调函数来处理事件的变化对该子系统的影响。但是当事件发生的时候,谁来触发调用notifier_call_chain()函数呢.........【阅读全文】
发布时间:2019-11-11 15:05:12
内核中的很多子系统都是联系很紧密的,因此有可能某个子系统的某些事件,其他多个子系统都很感兴趣,此时就需要用到notification chain.举个具体的例子,比如说一台主机由于某个网卡的损坏或其他原因不能使用,从而导致连接此网卡的网络不能使用,这个时侯就是notification chain.来通知路由表去除这个网络的路由表项。.........【阅读全文】