The basic network transmission protocol of the Internet and every network based on TCP/IP.
This is the C structure that represents an IP header (version 4):
struct iphdr {
#if defined(__LITTLE_ENDIAN_BITFIELD)
__u8 ihl:4,
version:4;
#elif defined (__BIG_ENDIAN_BITFIELD)
__u8 version:4,
ihl:4;
#else
#error "Please fix <asm/byteorder.h>"
#endif
__u8 tos;
__u16 tot_len;
__u16 id;
__u16 frag_off;
__u8 ttl;
__u8 protocol;
__u16 check;
__u32 saddr;
__u32 daddr;
/*The options start here. */
};
The IP protocol is the part of TCP/IP that allows packets of data to pass from one host to another.
It's possible to think at an IP packet as a piece of data with a source and destination address attached,
at every point of it's trip the destination address is used to select the right way in order to
reach the destination host.
In a TCP/IP network, hosts are identified by IP addresses. An IP address in the IPv4 protocol is a 4 byte number,
usually represented as four 8-bit numbers separated by a point (example: 192.168.1.6).
The IP protocol works in a best effort fashion. This means that there is no guarantee that packets will eventually
reach the destionation. They may be lost, duplicated, out of sequence. Higher level protocols like TCP add the reliability
abstraction using the IP protocol as a base.
A protocol strictly related to the IP protocol is the ICMP.
See Also: IPID and Idle scan.
|