Annotation of embedaddon/libnet/doc/RAWSOCKET_NON_SEQUITUR, revision 1.1.1.1
1.1 misho 1: ===============================================================================
2: $Id: RAWSOCKET_NON_SEQUITUR,v 1.2 2004/01/03 20:31:00 mike Exp $
3: LIBNET 1.1 (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
4: http://www.packetfactory.net/libnet
5: ===============================================================================
6:
7: Raw sockets are horribly non-standard across implementations. Here is
8: an incomplete list of some of the differences (corrections welcomed):
9:
10: Linux 2.2+:
11:
12: IP fragmentation: performed if packet is larger than MTU
13: IP checksum: always filled in
14: IP total length: always filled in
15: IP ID: filled in when zero
16: IP source address: filled in when zero
17: IP destination address: filled in when zero
18: Max packet size before kernel complains: 1500 bytes
19:
20: Solaris 2.6+:
21:
22: IP fragmentation bits: can't specify
23: IP fragmentation: performed if packet is larger than MTU
24: IP DF bit: always set
25: IP checksum: always filled in
26: Max packet size before kernel complains: ?
27:
28: OpenBSD 2.8+:
29:
30: IP fragmentation: performed if packet is larger than MTU
31: Max packet size before kernel complains: 8192 bytes
32:
33: Solaris,
34: for example, has terrible support for this packet interface. Older OpenBSD
35: versions and recent FreeBSD versions have the BSD_BYTE_SWAP issue where
36: the ip_len and ip_frag fields need to be in little endian order. Linux
37: apparently doesn't allow for the injection of broadcast IP datagrams.
38: Whenever complete control over the IP header is desired, use the link
39: layer API.
40:
41: EOF
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>