电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 网络编程 -> C#/CSHARP教程
ip数据包的校验和算法c#版_c#应用
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 

为做伪IP,特地做了一个IP包,用C#改写IP头的校验和算法。
资料一:
IP头格式:
 版本号 (4位)
 IP头长度 (4位)
 服务类型 (8位)
 数据包长度 (16位)
 标识段 (16位)
 标志段 (16位)
 生存时间 (8位)
 传输协议 (8位)
 头校验和 (16位)
 发送地址 (16位)
 目标地址 (16位)
 选项
 填充

资料二:
IP 协议采用统一的校验算法,其计算比较简单:设校验和初值为0,然后对数据每16位求异或,结果取反,便得校验和。校验时将数据(含校验和)按同样的算法求和,结果为0则数据正确,不为0表示通讯出错,需要丢弃该数据包。

算法源代码:

   public static UInt16 checksum(UInt16[] buffer,int size)
  {
   Int32 cksum=0;
   int counter;
   counter=0;
   while(size>0)
   {
        UInt16 val=buffer[counter];
        cksum+=Convert.ToInt32(buffer[counter]);
        counter+=1;
        size=-1;
   }
   cksum=(cksum>>16)+(cksum&0xffff);
   cksum+=(cksum>>16);
   return (UInt16)(~cksum);
  }

注意:buffer数组为整个ip包数组,需要转换成UInt16[];size为buffer数组的长度。
关于byte[]转换成UInt16[]的方法比较简单,在此不介绍了。
http://www.cnblogs.com/tuyile006/archive/2006/12/06/583949.html


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·c#程序模拟鼠标操作 [simulate mouse movement and click programmatically] _c#应用
·用c#写的asp+域名查询程序_c#应用
·c#.net网络程序开发-socket篇 _c#应用
·c# socket编程_c#应用
·c#和vb.net语法对比图_c#教程
·c#的四个基本技巧 _c#教程
·c#基础—关于类 _c#教程
·漫谈c#编程中的多态与new关键字_c#教程
·c# namespace_c#教程
·c# 正确读取存储中文,以及如何获取字节流编码_c#应用

最新文章
·利用c#远程存取access数据库_c#应用
·c# 3.0新特性系列:隐含类型var_c#教程
·c#动态生成树型结构的web程序设计_c#应用
·论c#变得越来越臃肿是不可避免的_c#应用
·用c#监控并显示cpu状态信息_c#应用
·c#中实现vb中的createobject方法_c#应用
·photoshop给花瓶打造彩绘效果_photoshop教程
·使用c#创建sql server的存储过程_c#应用
·c#数据库操作的3种典型用法_c#应用
·c#调用oracle存储过程返回结果集及函数_c#应用


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号