监听技术的以太网上数据帧的监听剖析

作者&投稿:蒋风 (若有异议请与网页底部的电邮联系)
以太网上只有两个站,它们同时发送数据,产生了碰撞。于是按截断二进制指数退避算法进行重传。重传次数记~

答:将第i次重传成功的概率记为pi。显然
第一次重传失败的概率为0.5,第二次重传失败的概率为0.25,第三次重传失败的概率

为0.125.平均重传次数I=1.637

答:将第i次重传成功的概率记为pi。显然
第一次重传失败的概率为0.5,第二次重传失败的概率为0.25,第三次重传失败的概率

为0.125.平均重传次数I=1.637

以太网上的数据帧主要涉及Tcp/ip协议,针对以下几个协议的分析:IP,ARP,RARP,IPX,其中重点在于ip和 arp协议,这两个协议是多数网络协议的基础,因此把他们研究彻底,就对大多数的协议的原理和特性比较清楚了。 由于各种协议的数据帧个不相同,所以涉及很多的数据帧头格式分析,接下来将一一描述。  在linux 下监听网络,应先设置网卡状态,使其处于杂混模式以便监听网络上的所有数据帧。然后选择用Linux socket 来截取数据帧,通过设置socket() 函数参数值,可以使socket截取未处理的网络数据帧,关键是函数的参数设置,下面就是有关的程序部分:  AF_INET=2 表示 internet ip protocol  SOCK_PACKET=10 表示 截取数据帧的层次在物理层,既不作处理。  htons(0x0003)表示 截取的数据帧的类型为不确定,既接受所有的包。  总的设定就是网卡上截取所有的数据帧。这样就可以截取底层数据帧,因为返回的将是一个指向数据的指针,为了分析方便,我设置了一个基本的数据帧头结构。  Struct etherpacket  {struct ethhdr eth;   struct iphdr ip;   struct tcphdr tcp;   char buff;   } ep;  将返回的指针赋值给指向数据帧头结构的指针,然后对其进行分析。以下是有关协议的报头:ethhdr 这是以太网数据帧的mac报头:  |48bit 目的物理地址 | 48bit 源物理地址 | 16bit协议地址|  相应的数据结构如下  struct ethhdr  unsigned char h_dest[ETH_ALEN];  unsigned char h_source[ETH_ALEN];  unsigned short h_proto;  其中h_dest是48位的目标地址的网卡物理地址,h_source 是48位的源地址的物理网卡地址。H_proto是16位的以太网协议,其中主要有0x0800 ip,0x8035.X25,0x8137 ipx,0x8863-0x8864 pppoe(这是Linux的 ppp),0x0600 ether _loop_back ,0x0200-0x0201 pup等。Iphdr 这是ip协议的报头:  由此可以定义其结构如下:  这是Linux 的ip协议报头,针对版本的不同它可以有不同的定义,我们国内一般用BIG的定义,其中version 是ip的版本,protocol是ip的协议分类主要有0x06 tcp.0x11 udp,0x01 icmp,0x02 igmp等,saddr是32位的源ip地址,daddr是32位的目标ip地址。相应的数据结构:  struct arphdr {unsigned short int ar_hrd;   unsigned short int ar_pro;   unsigned char ar_hln;unsigned char ar_pln;   unsigned short int ar_op;#if 0unsigned char _ar_sha[ETH_ALEN];unsigned char _ar_sip;unsigned char _ar_tha[ETH_ALEN];unsigned char _ar_tip;#end if};  这是linux 的arp 协议报头,其中ar_hrd 是硬件地址的格式,ar_pro协议地址的格式,ar_hln是硬件地址的长度,ar_pln时协议地址的长度,ar_op是arp协议的分类0x001是arp echo 0x0002 是 arp reply.接下来的分别是源地址的物理地址,源ip地址,目标地址的物理地址,目标ip地址。  Tcphdr ip协议的tcp协议报头  以下是相应数据结构:  struct tcphdr  {u_int16_t source;   u_int16_t dest;   u_int32_t seq;   u_int32_t ack_seq;   # if _BYTE_ORDER == _LITTLE _ENDIANu_int16_t resl:4;   u_int16_t doff:4;u_int16_t fin:1;u_int16_t syn:1;   u_int16_t rst:1;u_int16_t psh:1;u_int16_t ack:1;   u_int16_t urg:1;u_int16_t res2:2;   #elif _BYTE _ORDER == _BIG _ENDIANu_int16_t doff:4;   u_int16_t res1:4;u_int16_t res2:2;u_int16_t urg:1;   u_int16_t ack:1;u_int16_t psh:1;u_int16_t rst:1;   u_int16_t syn:1;u_int16_t fin:1;   #else#error Adjust your defines#endifu_int16_t window;   u_int16_t check;u_int16_t urg_ptr;};  这是Linux 下tcp协议的一部分与ip协议相同取BIG,其中source是源端口,dest 是目的端口,seq是s序,ack_seq 是a序号,其余的是tcp的连接标志其中包括6个标志:syn表示连接请求,urg 表示紧急信息,fin表示连接结束,ack表示连接应答,psh表示推栈标志,rst表示中断连接。window是表示接受数据窗口大小,check是校验码,urg ptr是紧急指针。  Udphdr 这是udp协议报头  struct udphdr {u_int16_t source;   u_int16_t dest;u_int16_t len;u_int16_t check;}  这是Linux下ip协议中udp协议的一部分,结构很明显 source 源端口,dest目的端口,len udp 长度,check 是校验码。  Icmphdr 这是ip协议的icmp协议的报头  struct icmphdr{u_int8_t type;u_int8_t code;u_int16_t checksum;union{struct {u_int16_t id;u_int16_t sequence;} echo;u_int32_t gateway;struct{u_int16_t_unused;u_int16_t mtu;}frag;} un;};  这是linux下的ip协议中的icmp的协议,这里面主要的是前两项参数,其中type是icmp协议的类型,而code 则是对type类型的再分析。如:type 0x03 是表示unsearchable,这时code的不同表示了不同的unsearchable :0x00表示网络不可寻,0x01表示主机不可寻,0x02表示协议不可寻,0x03表示端口不可寻,0x05表示源路由失败,0x06网络不可知,0x07主机不可知。  Igmphdr 这是ip协议的igmp协议报头  struct igmphdr{ _u8 type;_u8 code;_u16 csum;_u32 group;};  这是Linux下的ip协议中的igmp协议,协议中主要是前面两个属性,Type表示igmp 协议的信息类型,code表示routing code. 然后,将截取的数据帧的地址赋值给定义的结构.由此可根据不同的结构分析数据,得到我们需要的信息 。



监听技术的以太网上数据帧的监听剖析
答:以太网上的数据帧主要涉及Tcp/ip协议,针对以下几个协议的分析:IP,ARP,RARP,IPX,其中重点在于ip和 arp协议,这两个协议是多数网络协议的基础,因此把他们研究彻底,就对大多数的协议的原理和特性比较清楚了。 由于各种协议的数据帧个不相同,所以涉及很多的数据帧头格式分析,接下来将一一描述。在linux...

网络监听技术的原理是什么
答:传输数据时,包含物理地址的帧从网络接口(网卡)发送到物理的线路上,如果局域网是由一条粗缆或细缆连接而成,则数字信号在电缆上传输,能够到达线路上的每一台主机。当使用集线器时,由集线器再发向连接在集线器上的每一条线路,数字信号也能到达连接在集线器上的每一台主机。当数字信号到达一台主机的网...

共享式网络与交换式网络中,网络监听有何不同?
答:回答:.发生在共享式局域网内的窃听 所谓的“共享式”局域网(Hub-Based Lan),指的是早期采用集线器HUB作为网络连接设备的传统以太网的结构,在这个结构里,所有机器都是共享同一条传输线路的,集线器没有端口的概念,它的数据发送方式是“广播”, 集线器接收到相应数据时是单纯的把数据往它所连接的每一台设...

以太网的核心技术是CSMA/CD,她是怎样的一种技术?
答:CSMA/CD是一种分布式介质访问控制协议,网中的各个站(节点)都能独立地决定数据帧的发送与接收。每个站在发送数据帧之前,首先要进行载波监听,只有介质空闲时,才允许发送帧。这时,如果两个以上的站同时监听到介质空闲并发送帧,则会产生冲突现象,这使发送的帧都成为无效帧,发送随即宣告失败。每个站...

什么是监听
答:对于一台连网的计算机,最方便的是在以太网中进行监听,只须安装一个监听软件,然后就可以坐在机器旁浏览监听到的信息了。以太网协议的工作方式为将要发送的数据包发往连在一起的所有主机。在包头中包含着应该接收数据包的主机的正确地址。因此,只有与数据包中目标地址一致的那台主机才能接收信包。但是...

监听技术的网络监听研究的意义:
答:关于Linux下网络监听技术主要有两个要点:1)如何尽可能完整的截取网络上的数据帧,因为以太网上每时每刻都可能有信息传递,而且根据以太网的规模不同网络上的信息量也变化不大,所以截取数据帧不仅要保证数据帧的完整,而且还要考虑到如何才能减少漏截取数据帧。2)就是对截取的数据帧的过滤分析,所谓...

以太网的什么对载波监听产生影响
答:以太网的传播时延对载波监听产生影响。由于传播时延(数据帧在信道中传播一定距离所需花费的时间)的存在,仍存在冲突。这样明显造成了信道的浪费,加大了通信开销。以太网中使用了CSMA/CD(载波监听多路访问/冲突检测)工作机制,可以防止各站点无序地争用信道。

以太网帧长
答:讨论以太网的帧长,就不得不先提一下以太网的大名鼎鼎的CSMA/CD协议。 CSMA/CD是英文carrier sense multiple access/collision detected 的缩写,可把它翻成“载波监听多路访问/冲突检测”,或“带有冲突检测的载波侦听多路访问”。 所谓载波监听(carrier sense),意思就是以太网络上的各个工作站在发送数据前,都要监听...

网络连接器的状态的监听是什么
答:因此,网络监听用来监视网络的状态、数据流动情况以及网络上传输的信息等。当信息以明文的形式在网络上传输时,使用监听技术进行攻击并不是一件难事,只要将网络接口设置成监听模式,便可以源源不断地将网上传输的信息截获。 1.1广播式以太网中的网络监听 广播式以太网在逻辑上由一条总线和一群挂在总线上的节点组成。

以太网数据帧中为什么不存在帧校验
答:共同保证帧完整性。以太网数据帧中不存在帧校验的原因是因为以太网采用广播通信方式,每个节点都可以接收并处理所有帧。帧的完整性由发送方和接收方共同保证,通过CRC(循环冗余校验)和CSMA/CD(载波监听多路访问/冲突检测)协议来检测和解决错误和冲突。不要在帧本身中包含帧校验码。