| 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:
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]
| 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 | |||||||||||||||||||||||||||||||||||||||||||||||
structIPIL{bytevihl;/* Version and header length */bytetos;/* Type of service */bytelength[2];/* packet length */byteid[2];/* Identification */bytefrag[2];/* Fragment information */bytettl;/* Time to live */byteproto;/* Protocol */bytecksum[2];/* Header checksum */bytesrc[4];/* Ip source */bytedst[4];/* Ip destination */byteilsum[2];/* Checksum including header */byteillen[2];/* Packet length */byteiltype;/* Packet type */byteilspec;/* Special */byteilsrc[2];/* Src port */byteildst[2];/* Dst port */byteilid[4];/* Sequence id */byteilack[4];/* Acked sequence */};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.