欢迎来到天天文库
浏览记录
ID:37073109
大小:422.00 KB
页数:20页
时间:2019-05-16
《网络通讯协议编程1_IP编程基础》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第一章网络编程基础IP协议(InternetProtocol,因特网协议)是目前网络编程的核心。不论在局域网环境(LAN)还是广域网中,IP都是系统之间传输数据的媒介。虽然还有其他Windows网络协议,但是相对于网络设备之间传输数据(尤其是在因特网上时)IP协议提供了一组最健壮,最通用的规范。用IP协议编程开发通常是一个比较复杂的过程,所以在阅读本书前,请适当作好相关网络知识的准备,比如搭建网络的一般常识、网络设备的简单概念等。我们的程序在网络中发送和处理数据有许多需要考虑的因素,比如客户和服务器的数量、网络类型、网络拥塞程度
2、等等。理解他们的原理以及对数据传输的影响至关重要。我们最常见到的问题是,开发者根本没有想到过的各种“意外”情况会不期而至,而我们却往往不知道他是何时、如何发生的——这种时候,大家往往简单地将其统称为:网络不稳定——而事实上,它们的绝大多数出现原因却是因为我们的网络程序编写不当,譬如在编写网络程序的时候没有考虑低速连接用户的网络环境(使用无线上网的QQ2007的用户肯定深有体会),或者忽视了路由器不转发UDP广播的特性等。在此首先声明,很多教材和参考书籍中将ASP.NET或其他网站开发技术称为“网络编程”,我们认为是不严谨的,在本
3、书中如无特殊提示,则“网络编程”均代表“网络协议编程”或“网络协议的实现”。当这种情况发生时,我们怎么办?因此,本章首先介绍如何使用网络调试工具进行网络通讯的分析,以便在今后的学习过程中能尽快找到故障原因。事实上,网络分析是任何一个网络程序开发者、高级网络管理员和黑客的基本功。调试我们的网络网络程序开发和普通开发不同,我们面临的最大困难是不可能准确而及时地知道网络中到底发生了什么。经常出现的情况是,我们编写的程序长期处于一种“有时可用,有时出错”的奇怪状态中。网络分析器是网络程序员必备的工具,它能帮助我们发现“线上”正在发生的事
4、情——或者本该发生却没有发生的事情。通过监视应用程序数据之间的传输,往往可以相对“方便”的探测到编程错误。本节将介绍怎样在Windows上安装使用一个简单的公用网络分析器。说明:虽然Windows2000和以后的Windows服务器操作系统上都已经自带了网络监视器(控制面板——管理工具中,如果没有,可以使用“添加/删除程序”安装),但是为了更广泛的兼容性和更强大的功能,我们选择使用WinPcap和Sniffer作简单讲解。安装WinPcap驱动程序很多朋友都下载并安装过WinPcap程序,但是却无法在开始菜单找到它。这很正常,因
5、为WinPcap并不是一个“应用程序”,而是一个“驱动程序”,就象我们使用的声卡、显卡驱动一样,它可以直接操作我们的底层硬件设备——网卡。在编写本书的时候,WinPcap的最新稳定版本是4.0.1版。我们可以在www.WinPcap.org免费获得该程序及其源代码。安装WinPcap可以使网卡处于一种“混杂方式”中(大多数操作系统平台都可以使用的方式),该方式可以让网卡接受网上所有的通讯,不管是发送到哪里去的,或是从哪里收到的。很多网络分析工具都依赖WinPcap驱动,所以如果你的网络分析工具不能用,请先检查该驱动是否正常安装。
6、以下我们将使用轻量级网络分析工具Commview作为讲解示范,它的作用就是让我们可以容易的看到我们的电脑在对别的电脑“说”些什么,而同时我们的电脑又“听见”了一些什么。其他网络分析工具功能和使用方式基本相同。CommView主界面如图一所示:(图一)我们要分析网络包之前,首先需要设置一个网卡用于捕获——只有经过被选中的网卡的信息才会被捕获到。同时还要明白一点:只有本机的网卡才可以被捕获,捕获远程网卡是不行的。其中Loopback网卡代表本机环回地址,也就是我们通常写的127.0.0.1地址代表一个本地网络地址。通过查看路由表,我
7、们可以知道 NetworkDestinationNetmaskGatewayInterfaceMetric127.0.0.0255.0.0.0127.0.0.1127.0.0.11既然掩码是255.0.0.0,那么所以主机地址127.*.*.*都是127.0.0.0的网络目的地址。他们之间无法被区分,所以往往只使用127.0.0.1。(图二)然后,按下网卡列表框左侧的蓝色的开始按钮,就开始了数据包的捕获过程,此时如果你正在进行网络通讯,就会看到屏幕上飞快滚动的大量数据显示了。图中蓝色箭头表示当前正在进站或者出站的是哪一个通讯地址
8、。使用网卡列表框左侧的蓝色的停止按钮,就可以停止对网络数据包的捕获,这时,我们可以使用“封包”标签卡来查看刚才获取到的各种封包信息。看到这里,应该已经有读者望而生畏了吧。确实,如此复杂的封包列表,显然不是人类大脑所应该处理的。没有关系,我们的Comview有能力
此文档下载收益归作者所有