My FAQ,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 未整理篇
tcp/ip系列(一)
作者:zhwh 时间:2003-02-13 11:09 出处:互联网 责编:MyFAQ
              摘要:tcp/ip系列(一)

这是我在csdn blog 上写的第一篇文章,所以就从自己最喜欢的 tcp/ip 开始吧!

如何理解tcp/ip呢?
从我个人的理解看,应该是这样:

1:地址:软件地址,如ip地址;硬件地址,如MAC。
    地址在tcp/ip中的作用就像:小王要到小李家吃饭,小王要知道小李的家庭住址才能吃到饭啊是不是?在tcp/ip的最底端是“物理的”地址,硬件地址提供了最起码的通信基础;光有硬件地址是不够的,功能受限制。所以就有了与硬件地址对应(并非一一对应)的软件地址:ip地址。有了硬件和软件两个地址,通信功能就比较大了。在tcp/ip最下两层:链路层和ip层函数主要就是围绕如何处理地址间的关系展开的。

2:路由:路由其实更应该叫寻址。
   路由分链路层级(硬件地址),和ip层级(软件地址)。举个例子:当一个内网局域网的主机A要发送报文到外网C时,首先要寻找外网C的ip级路由,查询本机路由表(ip级),得知需要把报文发往内网的路由器B的ip后,根据ip查找路由器B的硬件地址,这时就用到了链路级路由,如果查询本机A(链路级)路由表未查到B的硬件地址的话,就会向本局域网发送一个ARP广播报文,路由器B收到ARP广播了,就会回复一个带有自己ip,mac地址数据的ARP回复报文,A收到回复报文后就会把B的ip,mac 都存入本机的路由表中。然后根据这个路由发送数据到B,由B转发到外网。

3:内存:内核级,应用级。tcp/ip是要为应用层的通信服务的。
    一:在一般情况下,一个应用程序在客户进程构造好自己的数据,然后通过一个内存处理函数,把数据拷贝到内核内存,这样数据报文就交给内核进程tcp/ip处理了,tcp/ip“从上至下”从传输层,ip层,链路层,逐层处理直至硬件发送出去。
   二:上面是一般的情况,如果不想走一般路线的话,可以在tcp/ip链路层加一个hook,从应用层把数据拷贝到内核,但是直接走链路层函数处理发送报文。sniffer就利用了这个原理。

 


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有