网络协议栈
文章平均质量分 65
hacktaojxnu
一生何求
展开
-
网络协议栈实现分析1—整体架构分析
TCPIP 协议栈分析—整体架构分析 写于2010年1月12日 开始分析前讲一个故事,从前有个人他很有梦想,他总是在想着怎么改变世界,改变他人,他的梦想也极其的伟大,大到他甚至无法企及,但是他依旧梦想着,就这样一直到他的晚年,结局确是一直庸庸碌碌,当他回首往事,他感慨:如果以前能从改变自己开始,然后进而改变家人,最后没准能够改变世界。但是他确一直是一个思想的巨人,行动的原创 2010-03-18 19:35:00 · 1446 阅读 · 0 评论 -
网络协议栈实现分析3–BSD层实现分析
BSD层源码分析 写于2010.1.20BSD层主要源码有: net/protocols.c 链路层协议初始化函数及域初始化函数定义 net/socket.c BSD socket 层实现文件 include/linux/net.h 对于BSD 层来说,socket.c 是这节实现的重点。故我们针对这原创 2010-03-18 19:45:00 · 939 阅读 · 0 评论 -
网络协议栈实现分析2–套接字系统调用
作者: hacktao写于2010.1.17 Linux 网络协议栈实现与ISO/OSI网络协议栈七层之间有对应关系。下面我们简单的自上而下的来分析下各部分主要实现的功能及实现的方法。 BSD套接字是我们实现网络通讯的主要方式。他提供我们应用软件开发的接口(socket,bind,connect,send,recv,accept)。因此我们从这里出来,来分析整一原创 2010-03-18 19:43:00 · 823 阅读 · 0 评论 -
网络协议栈实现分析4–两个重要数据结构
两个重要数据结构的比较和分析: struct socket { //当前套接字的类型,如SOCK_STREAM,SOCK_DGRAM和SOCK_RAW short type; /* SOCK_STREAM, ... */ //套接字的当前状态存储在state中,最重要的状态是SS_CONECTING,SS_CONNECTED socket_state stat原创 2010-03-18 20:07:00 · 603 阅读 · 0 评论 -
网络协议栈实现分析5--INET socket 层分析
INET socket 层分析 INET层实现功能:主要实现INET socket套接字,例如(inet_create,inet_bind,inet_accept等),它是实现BSD层的接口函数,这些函数完成相应的检查工作后继续将请求发送给下层传输层函数进行具体的处理。其中涉及主要文件有net/inet/af_inet.c原创 2010-03-18 20:37:00 · 1762 阅读 · 0 评论 -
网络协议栈实现分析6--Wait_queue等待队列
等待队列 进程转入休眠状态等待某个特定事件,该事件发生时该进程就会被唤醒。实现这个技术的是把该事件和等待队列联系起来。需要将转入休眠状态的进程插入队列中。当事件发生后,内核遍历该队列,唤醒休眠任务让他投入运行状态,任务负责将自己从等待队列中删除。 等待队列在内核中广泛存在。Wait _queue结构Include/li原创 2010-03-21 20:01:00 · 753 阅读 · 0 评论 -
网络协议栈实现分析7--Nagle算法
Nagle算法 通常使用Nagle算法来减少小报文数目,这个算法限制发送者任何时候只能有一个发送的小报文段未被确认。 原理: 1. 将小分组包装为更大的帧进行发送,在之前的数据被确认前不再发送数据分组,即Nagle算法需要之前数据接收方的响应。 2. Nagle算法通常在接收端使用延迟确认,在接收到原创 2010-03-21 20:07:00 · 571 阅读 · 0 评论