分类: LINUX
2010-03-18 19:20:39
写于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子目录下的一些网络设备的驱动程序。
物理层: 协议栈不涉及。
<基于上的作品创作,转载请注明!>