鳥類キャリアによるIP

鳥類キャリアによるIP（ちょうるいキャリアによるアイピー、）は、伝書鳩などを使ってInternet Protocol のデータ通信を行う伝送規格である。

これは1990年のエイプリルフールにとして発表されたジョークRFCである。
また、文書内には Avian とあるだけで明確に伝書鳩と定めてはいない。

 概要 
最初に鳥類キャリアによるIPに関しての規格文書が発表されたのは1990年4月1日に発表された  "A Standard for the Transmission of IP Datagrams on Avian Carriers"（鳥類キャリアによるIPデータグラムの伝送規格）である。この文書はわずか2ページの短い文書であるが、随所に通信用語と日常用語の重なる部分を織り交ぜて書かれている。

例えば次のような例が挙げられる。
 早春期以外ではキャリアはお互いにそれほど干渉することがない。
 このキャリアは通信データの衝突を自動で回避するため可用性が高い。
 ワームを自動で発見及び除去する機能が組み込まれている。

さらに1999年のエイプリルフールに発表された  "IP over Avian Carriers with Quality of Service"（鳥類キャリアによるIPのサービス品質）は、この通信にQoSを規定するという内容である（1990年との違いとして、Linuxの普及を背景としたペンギンのジョークや、キャリアの鳥を描いたアスキーアートも入っている）。

2011年4月1日には、 " Adaptation of RFC1149 for IPv6"（RFC1149のIPv6対応について）が発表され、RFC1149をIPv6に対応するために、さまざまな観点から考察が行われている（新たに発見されたウイルスの脅威など）。

 プロトコル詳細 
この伝送規格では、以下のような手順でIPデータグラムが送信される。

 伝送すべき IP データグラムを、小さな巻物型の紙に16進数で印字する。
 その小さな巻物を鳥類キャリアの肢に巻き付け、データグラムの端をテープで止める。

受信側は、以下の手順を実行する。

 鳥類キャリアの肢のデータグラムからテープを取り除く。
 巻物に書き写されたデータグラムを光学的に読み取り、電子転送ができるようにする。

 実装例 

2001年4月28日にノルウェーの BLUG（Bergen Linux User Group）と Vesta Pigeon Racing Club によって、このプロトコルがCPIP（Carrier Pigeon Internet Protocol）という名前で実装された。

約5キロメートル離れた通信先に送信された（つまり伝書鳩よって運ばれた）9つのパケットにはそれぞれ1つの Ping（ICMPエコー要求）が含まれていた。

9パケットの要求に対して、4つの応答が受信された。
実際には、6羽の鳩が帰ってきたが、そのうち2羽にはIPパケットがなかった。これは反対側のオペレータが忙しかったため、IPパケットを付ける前に、鳩がケージから逃げてしまったためであった。

最終的なパケット損失率は55％（オペレータのミスを含む）、応答時間は約3000秒（50分）から約6000秒（100分）という結果だった。

BLUGは、実装は成功したと宣言し、相互運用性テストを実施するために別実装を誰かが作成するのを待つ、としている。

以下は、実装実験時の ping のログである。
Script started on Sat Apr 28 11:24:09 2001
vegard@gyversalen:~$ /sbin/ifconfig tun0
tun0      Link encap:Point-to-Point Protocol  
          inet addr:10.0.3.2  P-t-P:10.0.3.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:150  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 
          RX bytes:88 (88.0 b)  TX bytes:168 (168.0 b)

vegard@gyversalen:~$ ping -i 900 10.0.3.1
PING 10.0.3.1 (10.0.3.1): 56 data bytes
64 bytes from 10.0.3.1: icmp_seq=0 ttl=255 time=6165731.1 ms
64 bytes from 10.0.3.1: icmp_seq=4 ttl=255 time=3211900.8 ms
64 bytes from 10.0.3.1: icmp_seq=2 ttl=255 time=5124922.8 ms
64 bytes from 10.0.3.1: icmp_seq=1 ttl=255 time=6388671.9 ms

--- 10.0.3.1 ping statistics ---
9 packets transmitted, 4 packets received, 55% packet loss
round-trip min/avg/max = 3211900.8/5222806.6/6388671.9 ms
vegard@gyversalen:~$ exit

Script done on Sat Apr 28 14:14:28 2001

また、本プロトコルによる実装ではないが、2009年9月9日、南アフリカのIT企業は伝書鳩によるデータ伝送を行った。結果、生後11ヶ月の鳩Winstonは80km先の地点へ4GBのデータを転送するのに2時間6分57秒を要した（データを取り出す時間を含む）。この間、インターネットを経由した通信はその4%を転送するにとどまったという 小型メモリの大容量化に伴い、ブロードバンド環境が整備されていない地域においては、インターネットによるデータ転送速度が物理的な伝送に劣ることを揶揄したもの。。

 関連RFC 

この文書はジョーク系RFCの中でも比較的人気があり、しばしば他のRFC文書に引用されている。

例えば1998年のエイプリルフールに発表された同じジョーク系のRFCである （洗濯ばさみ DHCP による IPアドレスの管理）では遠隔地の通信には鳥類キャリアを使用するということが記述されている。

また RFC文書の書き方を説明している（RFCの書き方）の付録でnroffのマクロを説明する際のサンプル文書として RFC1149 が登場する。

その他、以下の RFC などで直接的、あるいは間接的に言及されている。

  "RITA -- The Reliable Internetwork Troubleshooting Agent" (1998年4月1日)
  "Requirements for Morality Sections in Routing Area Drafts" (2005年4月1日)
  "Regional Broadcast Using an Atmospheric Link Layer" (2011年4月1日)
  "Scenic Routing for IPv6" (2015年4月1日)
  "The Arte of ASCII: Or, An True and Accurate Representation of an Menagerie of Thynges Fabulous and Wonderful in Ye Forme of Character" (2017年4月1日)
  "Software Defects Considered Harmful" (2022年4月1日)

 脚注 

 関連項目 
 Hyper Text Coffee Pot Control Protocol (  )
 Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (  )
 洗濯ばさみ-DHCPによるIPアドレス管理 (  )
 悪意ビット (  )
 西暦10000年問題 (  )
 手旗信号システムによるIP伝送 (  )
 音響伝送メディアによるIP伝送 (  )
 スニーカーネット

 外部リンク 
  "Standard for the transmission of IP datagrams on Avian Carriers" （1990年4月1日）

  "IP over Avian Carriers with Quality of Service" （1999年4月1日）
  "Adaptation of RFC 1149 for IPv6" （2011年4月1日）
 Bergen Linux User Group's CPIC（実装実験の記録、英語）

 参考文献 






  p.4 より

Category:エイプリルフール
Category:コンピュータ・ユーモア
1149
Category:ハト目
Category:鳥に関する文化
Category:ジョーク