Chinaunix首页 | 论坛 | 博客
  • 博客访问: 51291
  • 博文数量: 13
  • 博客积分: 1496
  • 博客等级: 上尉
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-10 00:11
文章分类

全部博文(13)

文章存档

2011年(1)

2010年(5)

2009年(7)

我的朋友

分类: LINUX

2010-03-18 19:20:39

 
TCPIP 协议栈分析—整体架构分析<1>

  写于2010年1月12日

    开始分析前讲一个故事,从前有个人他很有梦想,他总是在想着怎么改变世界,

改变他人,他的梦想也极其的伟大,大到他甚至无法企及,但是他依旧梦想着,就这样一直

到他的晚年,结局确是一直庸庸碌碌,当他回首往事,他感慨:如果以前能从改变自己开始,

然后进而改变家人,最后没准能够改变世界。但是他确一直是一个思想的巨人,行动的矮子。一直以来我都是这样子一个人,眼高手低,没有毅力,这是我最悲哀的地方,希望这是我的重新开始,我改变的开始。

1. TCPIP起源与分层模型

   TCP/IP起源于60年代末没人政府资助的一个分组交换的网络研究项目,到90年代已经  发展成为计算机之间最常用应用组网形式,一个真正的开发系统。

      TCP/Ip的一个很大的特点是它的分层思想,按照这种思想将它分为应用层,传输层,网络层,链路层。

   下面是对OSI的7层模型进行分析:

      应用层:该层次定义了一套用户调用的接口函数。既socket套接字接口函数,如socket,

Bind,accept等。这些接口由glibc库提供。

      表示层。会话层:该层对应对应BSD socket 层或者INET Socket层。涉及的文件有socket.c和af_inet.c。

      传输层:该层定义了一些协议,如TCP.udp等,涉及文件有tcp.c,udp.c .icmp.c , igmp.c ,snmp.h 。

      网络层:数据包路由功能实现的一层。Ip协议所在层,RAW套接字也在这一层,使用RAW套接字时,用户要自己创建ip首部和传输层协议首部。

           这一层也实现了SOCKET_PACKET套接字,用户必须创建链路首部,网络层首部,传输层首部所有的创建工作。

        涉及的文件有:ip.c , route.c , ip_fw.c raw.c . packet.c .

      链路层:  这一层主要关心的是支持以太网还是802封装的方式。主要实现的是网络协议栈与底层驱动的一个接口层而存在的。

        涉及到文件有:dev.c , p8022.c .psnap.c , p8023. eth.c , arp.c

“驱动层”: 打上冒号的原因是在OSI七层没有这一层,该层与链路层进行交互完成数据包收发的功能。

 涉及文件在:drivers子目录下的一些网络设备的驱动程序。

 物理层: 协议栈不涉及。

 <基于上的作品创作,转载请注明!>

阅读(1421) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~