中国IT动力,最新最全的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
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 网络与通信
运行于以太网的基础协议
作者:未知 时间:2005-07-20 14:17 出处:VC知识库 责编:chinaitpower
              摘要:运行于以太网的基础协议

运行于以太网的基础协议


作者 张志强

下载源代码


1、引言
    前段时间编写了一个网络监听工具。为了分析抓到的数据包,要熟悉各种网络协议。本人痛苦的发现网上很少有集中讲解这方面的文章,而图书大部分讲解得不够仔细,小部分专门研究网络协议的图书又太大,不适合我们的要求。故把常用的以太网协议写出来和大家分享。

2、以太网的特点
    以太网采用的是CSMA/CD技术,即带碰撞检测的载波侦听多址访问。在CSMA/CD技术中,如果网络上没有数据,则任何时候都可以将数据传送出去。如果网络被使用,那就要等到网络空闲时再传送。在以太网中传输的数据是无选择的发送到所有网卡的。这就为网络监听创造了条件。

3、以太网数据包
    在以太网中,数据是以被称为帧的数据结构体为单位进行交换的。这种数据包结构如下图所示:
 

报头 报文

    在以太网桢的报头中包含接收端及发送端的地址,桢的报文部分包含的是数据种类。最后放置的是错去校验和修正码。通常我们抓到的数据包已经去掉了同步码和桢分界符。下面先给出报头部分的定义:

以太网桢报头格式
接收端MAC地址(48位) 发送端MAC地址(48位) 类型字段(16位)

注意:这里提到的是位,一位就是二进制数据中的一位。通常,一个字节是由8位组成的。

类型字段意义(参考RFC1700)
类型(十六进制) 协议
0800 IP
0806 ARP
8035 RARP
809B Appletalk
8137-8138 Novell
814C SNMP

4、IP数据报的构成
    当以太网数据桢的类型字段为十六进制0800时,表示以太桢报文部分是一个IP数据报。其格式如下所示,其中报头部分存储了版本、头长度、生存时间、接收和发送端IP地址等重要信息。
 
报头 报文


IP数据报报头定义
字段 位数 说明
版本 4 表示IP的版本。现目前的版本号为4
报头长度 4 表示报头的长以32位为一个单位
服务类型 8 优先级和可靠性等服务品质要求的数值
数据报长度 16 IP数据报的全部长度,以8位(字节)为单位
标识 16 识别IP数据报的编号
标志 3 标示有无碎块
数据块偏移 13 产生碎块时应该比达到的数据块早到的数据块大小
生存时间 8 存放控制IP数据报寿命长短的数值
协议 8 标示上层协议
报头校验码 16 检查报头错误用的校验码
发送端地址 32 发送端的IP地址
目的地地址 32 接收端的IP地址
 

5、TCP协议
    传输控制协议(TCP)是在传输层使用的协议。当IP数据报的协议字段的值为6时,表示本IP数据报的报文部分是TCP数据报。

TCP数据报头定义
字短名 长度(位) 意 义
发送端端口 16 发送端及客户夫端程序的端口号
接收端端口 16 接收端及服务器端程序得端口号
顺序号 32 标示消息段的数据位于全体数据块的眸字节的数值
确认号 32 表示接受端对于发送端接收到的数据块数值
数据偏移 4 报头长,以32位为一个单位
预留 6 扩展用(预留)
控制位 6 表示某字段意义的位
窗口 16 窗口的大小(一次可以发送的数据量)
校验码 16 错误检查用
紧急数据指针 16 插入信号等紧急数据的结束位置
选项和填充 32 选相等


6、UDP数据报
    当IP数据报的协议字段的值等于17,表示IP数据报的报文部分携带的是UDP数据报。下面是UDP数据报头的构造。

UDP数据报  
发送端端口(16位) 接收端端口(16位) 数据报长度(16位) 校验码(16位) 数据

7、关于程序
    为了更好的理解本文提到的协议,及它们之间的一些简单关系,作者开发了一个简单的网络监控软件,读者可以参照程序的运行理解本文。

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