IL (network protocol)
Appearance
	
	
| Communication protocol | |
| Abbreviation | IL | 
|---|---|
| Developer(s) | Bell Labs | 
| OSI layer | Transport layer (4) | 
| Internet protocol suite | 
|---|
| Application layer | 
| Transport layer | 
| Internet layer | 
| Link layer | 
The Internet Link protocol or IL is a connection-based transport-layer protocol designed at Bell Labs originally as part of the Plan 9 operating system and is used to carry 9P. It is assigned the Internet Protocol number of 40. It is similar to TCP but much simpler.
Its main features are:
- Reliable datagram service
- In-sequence delivery
- Internetworking using IP
- Low complexity, high performance
- Adaptive timeouts
As of the Fourth Edition of Plan 9, 2003, IL is deprecated in favor of TCP/IP because it doesn't handle long-distance connections well.[1]
Header
[edit]| Offset | Octet | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Octet | Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | ||||||||||||||||
| 0 | 0 | Version and header length | Type of service | Packet length | |||||||||||||||||||||||||||||||||||||||||||||
| 4 | 32 | Identification | Fragment information | ||||||||||||||||||||||||||||||||||||||||||||||
| 8 | 64 | Time to live | Protocol | Header checksum | |||||||||||||||||||||||||||||||||||||||||||||
| 12 | 96 | IP source | |||||||||||||||||||||||||||||||||||||||||||||||
| 16 | 128 | IP destination | |||||||||||||||||||||||||||||||||||||||||||||||
| 20 | 160 | Checksum including header | Packet length | ||||||||||||||||||||||||||||||||||||||||||||||
| 24 | 192 | Packet type | Special | Src port | |||||||||||||||||||||||||||||||||||||||||||||
| 28 | 224 | Dst port | Sequence id↴ | ||||||||||||||||||||||||||||||||||||||||||||||
| 34 | 272 | ↪Acked sequence | |||||||||||||||||||||||||||||||||||||||||||||||
struct IPIL
{
    byte    vihl;       /* Version and header length */
    byte    tos;        /* Type of service */
    byte    length[2];  /* packet length */
    byte    id[2];      /* Identification */
    byte    frag[2];    /* Fragment information */
    byte    ttl;        /* Time to live */
    byte    proto;      /* Protocol */
    byte    cksum[2];   /* Header checksum */
    byte    src[4];     /* Ip source */
    byte    dst[4];     /* Ip destination */
    byte    ilsum[2];   /* Checksum including header */
    byte    illen[2];   /* Packet length */
    byte    iltype;     /* Packet type */
    byte    ilspec;     /* Special */
    byte    ilsrc[2];   /* Src port */
    byte    ildst[2];   /* Dst port */
    byte    ilid[4];    /* Sequence id */
    byte    ilack[4];   /* Acked sequence */
};
See also
[edit]References
[edit]- ^ "Plan 9 — Fourth Edition Release Notes". Lucent Technologies. June 2003. Retrieved August 3, 2018. We are phasing out the IL protocol since it doesn't handle long-distance connections well (and long-distance networks don't handle it well, either). IL is still used by fs(4) but TCP has become the standard protocol for all other services. 
Further reading
[edit]- Dave Presotto; Phil Winterbottom. "The IL protocol".—The original paper describing IL
 
	
