IL (network protocol)
{{Short description|A transport-layer protocol designed at Bell Labs for the Plan 9 operating system}}
{{primary sources|date=August 2015}}
{{Infobox networking protocol
| title = Internet Link
| logo =
| logo alt =
| image =
| image alt =
| caption =
| is stack =
| abbreviation = IL
| purpose =
| developer = Bell Labs
| date =
| based on =
| influenced =
| osilayer = Transport layer (4)
| ports =
| rfcs =
| hardware =
}}
{{IPstack}}
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.{{cite web |url=https://9p.io/sys/doc/release4.html |title=Plan 9 — Fourth Edition Release Notes |publisher=Lucent Technologies |date=June 2003 |access-date=August 3, 2018 |quote=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. }}
Header
{{APHD|start|title=IL header format}}
{{APHD|0|bits1=8|bits2=8|bits3=16|field1=Version and header length|field2=Type of service|field3=Packet length}}
{{APHD|4|bits1=16|bits2=16|field1=Identification|field2=Fragment information}}
{{APHD|8|bits1=8|bits2=8|bits3=16|field1=Time to live|field2=Protocol|field3=Header checksum}}
{{APHD|12|bits1=32|field1=IP source}}
{{APHD|16|bits1=32|field1=IP destination}}
{{APHD|20|bits1=16|bits2=16|field1=Checksum including header|field2=Packet length}}
{{APHD|24|bits1=8|bits2=8|bits3=16|field1=Packet type|field2=Special|field3=Src port}}
{{APHD|28|bits1=16|bits2=32|field1=Dst port|field2=Sequence id|border2=right}}
{{APHD|34|bits1=32|field1=Acked sequence|border1=left}}
{{APHD|end}}
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
References
{{Reflist}}
Further reading
- {{cite web
| url = http://doc.cat-v.org/plan_9/4th_edition/papers/il/
| title = The IL protocol
|author1=Dave Presotto
|author-link=Dave Presotto
|author2=Phil Winterbottom
|author2-link=Phil Winterbottom
}}—The original paper describing IL
Category:Inferno (operating system)
Category:Internet Protocol based network software
Category:Plan 9 from Bell Labs
Category:Transport layer protocols
{{Telecomm-stub}}