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:Network protocols

Category:Plan 9 from Bell Labs

Category:Transport layer protocols

{{Telecomm-stub}}