[Winpcap-users] Problem with automatic modification of the length/type field of mac frames

Guy Harris guy at alum.mit.edu
Mon Jul 31 09:12:04 GMT 2006


Eduardo Escudero Sánchez wrote:
> So then as far as i have understand is the operative system the one who 
> is modifying me the length field.

It might be doing that.  It might happen in the driver for the network 
adapter, for example.

> I pass to PacketInitPacket the length 
> of all the MAC frame wgich includes: header with the source and 
> destination addresses(12 bytes), length /type field which are two bytes, 
> the data which i want to send (suppose three bytes) and the pad (43 
> bytes).

Don't do that.

Pass it the length of an *UNPADDED* MAC frame, which includes: header 
with the source and destination addresses (12 bytes), length/type field 
which are two bytes, and the data you want to send (3 bytes, for 
example), but *NOT* the pad.

> In the length / type field i put a value of three (which is the 
> length of the data) but i pass to packetsendpacket a length value of 60 
> (the length of all the frame);
> If i have understand you you are saying me the i must not put the pad by 
> myself, i must put only the data and then the operative system will put 
> the pad for me. I already have done that.

Right.

> But when the frame is received 
> in the other side its received also without pad.

I.e., you've written code that sends an 802.3 frame with 3 bytes of 
data, and passes to PacketInitPacket() a length of 12+2+3 = 17, and the 
packet, when received by the other side, doesn't include any padding, 
*and if you capture on some third machine on the network, other than the 
machine sending the packet or the machine receiving the packet* (using, 
for example, a port on a hub, or a mirrored port on a switch), the 
packet on the network has only 17 bytes in it?

Or do you just mean that the software on the *receiving* machine gets a 
packet with only 17 bytes of data (not just a packet with a length field 
of 5, but a packet with only 17 bytes of data)?

(I.e, you've *actually tried sending the frame without any padding, and 
it arrives without padding*?  You're not just saying that *will* happen, 
which isn't necessarily the case - it might not happen, if the padding 
is added by, for example, the driver for the network adapter.)


More information about the Winpcap-users mailing list