基于Jpcap的TCPIP数据包分析2

上传人:mg****2 文档编号:122030077 上传时间:2020-02-29 格式:DOC 页数:35 大小:189.50KB
返回 下载 相关 举报
基于Jpcap的TCPIP数据包分析2_第1页
第1页 / 共35页
基于Jpcap的TCPIP数据包分析2_第2页
第2页 / 共35页
基于Jpcap的TCPIP数据包分析2_第3页
第3页 / 共35页
基于Jpcap的TCPIP数据包分析2_第4页
第4页 / 共35页
基于Jpcap的TCPIP数据包分析2_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《基于Jpcap的TCPIP数据包分析2》由会员分享,可在线阅读,更多相关《基于Jpcap的TCPIP数据包分析2(35页珍藏版)》请在金锄头文库上搜索。

1、基于Jpcap的TCP/IP数据包分析2001 赵新辉目 录第一章 以太网的结构和TCP/IP11 以太网的结构1.1.1 基于网络架构的以太网1.1.2 以太网的数据交换1.1.3 以太网帧的结构12 IP数据报的构成 1.2.1 IP地址1.2.2 路由1.2.3 IP数据报的构成1.2.4 其他报文结构13 TCP/UDP1.3.1 TCP/UDP的作用1.3.2 TCP和UDP报文的结构第二章 Jpcap类库21 Jpcap的使用2.1.1 Jpcap的运行环境的安装2.1.2 Jpcap的开发环境的安装22 Jpcap介绍2.2.1 Packet基类及其子类2.2.2 Jpcap的主

2、要功能第三章 数据包监听程序的设计31 数据包监听原理32 以太网帧的解析3.2.1 获取MAC地址3.2.2 数据包类型的判断33 IP数据报的监听3.3.1 IP数据报的解析3.3.2 ARP和ICMP数据报解析34 TCP和UDP监听3.4.1 TCP数据报的解析3.4.2 UDP数据报的解析第四章 数据包分析41 流量分析4.1.1 数据包大小的表示4.1.2 数据包流量观测42 数据包分类分析4.2.1 数据包过滤4.2.2 利用数据包分析解决网络问题第五章 数据包发送51 构造发送IP数据包5.1.1 IP数据包构造与发送5.1.2 发送结果分析 52 构造发送TCP数据包5.2.

3、1 TCP数据包构造与发送5.2.2 发送结果分析第一章 太网的结构和TCP/IP11 以太网的结构以太网是当今现有局域网采用的最通用的通信协议标准。该标准定义了在局域网(LAN)中采用的电缆类型和信号处理方法。以太网在互联设备之间以10100Mbps的速率传送信息包,双绞线电缆10 Base T以太网由于其低成本、高可靠性以及10Mbps的速率而成为应用最为广泛的以太网技术。许多制造商提供的产品都能采用通用的软件协议进行通信,开放性最好。以太网,属网络低层协议,通常在OSI(open system interconnect reference model)模型的物理层和数据链路层操作。它是总

4、线型协议中最常见的,数据速率为10Mbps(兆比特/秒)的同轴电缆系统。1.1.1 基于网络架构的以太网在计算机网络构成中,一般都实行使用协议进行层与层之间得通信。通常的OSI中,把协议等级分为七层。第一层是物理层,处理关于硬件上的网络协议。第七层为应用层,处理关于应用程序的协议。第二层到第六层按照其间的顺序被依次设置。层名 称规 定 的 内 容高层第七层应用层关于邮件、新闻等应用程序的协议第六层表示层数据语法协议第五层会话层基于网络的管理对话协议低层第四层传输层补充第三层的功能,可靠地在两台计算机间传输数据第三层网络层从网络上多台计算机中选择作为通讯对象地计算机第二层数据链路层在两台计算机上

5、进行一对一数据通信第一层物理层电气信号、连接器规格等关于硬件地协议 OSI参考模型以太网是20世纪70年代,施乐(Xerox)公司地Palo Alto研究所设计的,其后在80年代由施乐、英特尔、DEC(后被康柏收购)三家公司总结了面向局域网(LAN)的协议集合。而以太网的规格是由美国电气和电子工程师协会(Institute of Electrical and Electronics Engineers)中专门讨论规格的802委员会,从1980年开始标准化讨论的。并把IEEE802.3作为标准规格,其后ISO(International Standard Organization)把它作为ISO

6、802.3标准。旧的以太网设备是用同轴电缆作为传送媒体的。使用同轴电缆的以太网,设备之间的连接不需要网络集线器,但必须在同轴电缆上讲设备连接起来,是同轴电缆成为多台设备间共享信号的总线(bus),这种网络连接形式被称为总线型。现在,广为使用的传送媒体为双绞线。通常使用的是被称为第五类的双绞线,拥有100Mbit/s的通信速度。在用双绞线连接时要使用被称为网络集线器的设备。它是为实现多台计算机的连接,把多根双绞线相互连接起来的设备。在使用网络集线器的网络重,计算机以网络集线器为中心呈放射状连接,这样的网络被称为星型网络。由于以太网中集线器的转发功能,也就使得进行数据包监听可以在局域网内进行。本文

7、中的数据包监听程序都是在局域网内进行的。当然,数据包监听也可以在网关等数据包的进出口进行。1.1.2 以太网的数据交换在以太网中,数据是以被称为帧的数据结构体为单位进行交换的。通常在计算机网络上交换的数据结构体的单位是数据包,而在以太网中把使用的数据包称为帧。数据包包含着发送给对方所必需信息的报头部分和记录着传送给接收端信息内容的报文部分组成的。报头包含接收端的地址、发送端的地址、数据错误检查和改正所必需的错误检验和修正码。数据包被传送到网络上,通过网络中继装置传送到接收端。帧是被称为带碰撞检测的载波侦听多址访问(CSMA/CD: Carrier Sense Multiple Access w

8、ith Collision Detection)发送的。在CSMA/CD技术中,如果网络上没有数据,则任何时候都可以将数据传送出去。因此,传送数据的网络设备,首先要确认网络上是否有数据在传送。如果没有数据则可以将数据发送到网络上。如果网络被使用,那就要等到网络空闲后发送。上面的工作相当于CSMA/CD的CSMA部分。在这种方法中,同时发送数据的网络设备会同时认为网络是空闲的,这样就会产生发送冲突。因此,在CSMA/CD技术中会经常一边检测数据冲突,一边发送数据。如果检测出冲突,为强调冲突的发生,要等待发送出32位数据所必需的时间之后,在等待一个随机决定的时间,而后重新发送。这样同时开始发送的两

9、台网络设备中,随机数小的网络设备先进行发送,随机数大的网络设备要等到网络空闲下来才能发送。这种等到时间被称为补偿时间。网络拥挤和多次反复发生冲突,就可能造成数据无法发送。因此,为有效利用网络资源,在网络空闲和拥挤时,对等待的最大值进行调整。空闲时即冲突次数少的情况下,把等待时间的最大值缩小;拥挤和冲突频繁发生时,把等待时间的最大值扩大。等待时间的最大值可以用下面的公式表示: T=Ts2k式中Ts为发送512位数据所必需的时间(被称为Slot时间),k为冲突次数和数字10中最小的数字。这样,在CSMA/CD技术中,网络空间的情况下,任何时候都可以将数据发送出去,万一发生冲突造成发送失败时,可以重

10、新发送帧。所以CSMA/CD在网络比较空闲的情况下是一种高效的通信协议。但是在网络拥挤的情况下恰好相反。CSMA/CD发生冲突时,在等待和再次发送等方面花费过多的时间,会造成网络反复发送无用的数据,网络设备和传送线路等网络资源被白白占用,结果导致通信效率降低。在冲突频繁发生的以太网上,CSMA/CD的通信效率非常低,因为无法预测什么时候会发生冲突,因此不能保证对方在一定的限制时间内能接收到数据。这样,在进行声音和图像等对时间依赖性很强的多媒体数据的实时通信的情况下,存在着致命缺陷。所以采用CSMA/CD的以太网不能进行面向多媒体数据的通信。帧在网络上传输,由网卡接收。一般而言,网卡有几种接收数

11、据帧的状态,如unicast,broadcast,multicast,promiscuous等,unicast是指网卡在工作时接收目的地址是本机硬件地址的数据帧。Broadcast是指接收所有类型为广播报文的数据帧。Multicast是指接收特定的组播报文。Promiscuous则是通常说的混杂模式,是指对报文中的目的硬件地址不加任何检查,全部接收的工作模式。当局域网内的主机都通过HUB等方式连接时,一般都称为共享式的连接,这种共享式的连接有一个很明显的特点:就是HUB会将接收到的所有数据向HUB上的每个端口转发,也就是说当主机根据mac地址进行数据包发送时,尽管发送端主机告知了目标主机的地址

12、,但这并不意味着在一个网络内的其他主机听不到发送端和接收端之间的通讯,只是在正常状况下其他主机会忽略这些通讯报文而已!如果这些主机不愿意忽略这些报文,网卡被设置为promiscuous状态的话,那么,对于这台主机的网络接口而言,任何在这个局域网内传输的信息都是可以被侦听到的。1.1.3 以太网帧的结构以太网帧的结构是这样。开始的64位是前同步码(preamble)和帧首定界符(start frame delimiter)。前同步码是使发送端和接收端在数据的交接上步调一致的信号。发送端以56位(1010101010)反复发送1和0信号。接收端接收到这种信号后,准备读取发送来的信号。前同步码结束后

13、使表示帧的真正开始的8位(10101011)位列。帧首定界符之后是地址等报头信息。帧首定界符后面是接收端及及发送端的MAC地址。只有在接收端的MAC地址是自己的MAC地址的情况下,才能进行帧的接收;MAC地址为其他机器的情况下,将不接收改帧。但当接收端地址全部都为1时,在同一以太网内连接的所有设备,都要接收该帧。地址全部为1的MAC地址称为广播地址。接收端和发送端的MAC地址后面是16位的类型字段(type field)。类型字段中存放的是以太网帧中传送数据的上层协议的种类代码。以太网帧的报文部最大能存放12000位,即1500字节。以太网是物理层及数据链路层的协议。以太网帧所传送的数据是网络

14、层规定的数据包。如果要使用IP网络协议,则IP数据包就将存储在以太网帧的报文处。帧的尾部是检查数据错误的错误校验及修正码。一般错误的检验方法有奇偶校验等方法,但以太网中常使用循环冗余校验(CRC: Cyclic Redundancy Check)检查错误。CRC中,将表示帧的位列作为多项式。把多项式与准备好的特定多项式相除,得出的结果与数据一同发送。在接收端重新进行一次除法运算,用其结果确认传送来的数据正确与否。使用CRC不但能检查出是否有错误,而且还能在接收端修正错误。但是,以太网在检查出错误时,该帧将被删除重新发送。转发网络集线器是不能识别MAC地址的,它将以太网帧向全部端口中继。开关网络

15、集线器也被称为二层开关。这是因为开关网络集线器是按照数据链路层协议即第二层协议来解释以太网帧的。使用开关网络集线器与计算机一对一连接起来后,通信线路也完全变成一对一。即发生不了CSMA/CD所预想的冲突。这时接收和发送是并行的,这样的通信称为全双工通信。而普通的以太网通信线路称为半双工通信。因为在全双工通信中,接收和发送能并列进行,所以通信速度是半双工的2倍。12 IP数据报的构成以太网帧中的数据段通常IP数据报或与IP有关的其他协议,包括ARP(Address Resolution Protocol)、ICMP(Internet Control Message Protocol)等。1.2.1 IP地址通常所说IP地址是指现在所使用的第四版本的Ipv4地址协议。其中的IP是以32位的二进制数来表示的。通常按8位分成4段,用十进制的数值表示,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号