ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼
IL: 失われたプロトコル
-
Upload
ryousei-takano -
Category
Technology
-
view
1.790 -
download
3
description
Transcript of IL: 失われたプロトコル
![Page 1: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/1.jpg)
IL: 失われたプロトコル
oracchaPlan9日記(http://d.hatena.ne.jp/oraccha/)
2010年5月8日 第四回カーネル/VM探検隊
![Page 2: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/2.jpg)
Ken Thompsonに聞く
Q「UNIXを再設計できるとしたら、 何を変えたい?」
A「creat(2)に”e”を付ける」
出典:Ask a google engineer. Ken Thompson,
http://www.google.com/moderator/#15/e=7f3&t=7f3.44&f=7f3.5046
![Page 3: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/3.jpg)
Ken Thompsonに聞く1. ポータビリティ
2. EthernetとIPよりもよい通信
3. プロセス毎の名前空間
4. ファイルシステム用リモートアクセスプロトコル
![Page 4: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/4.jpg)
IL: Internet Link1. ポータビリティ
2. EthernetとIPよりもよい通信
3. プロセス毎の名前空間
4. ファイルシステム用リモートアクセスプロトコル
9P9P
TCP IL
IPIP
EthernetEthernet
![Page 5: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/5.jpg)
IL: Internet Link• 9P向けに設計された軽量でコネクション指向のトランスポートプロトコル
• TCPとUDPの中間的特徴
• 信頼性のあるデータグラム
• 順序保証、再送
• メッセージの区切りの存在
• フロー制御はない
![Page 6: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/6.jpg)
rx(1): リモート実行
• Usage: rx machine command arg...
例)玄柴(plug)で処理を実行
注意:cpu(1)は標準入出力をつなぎ替えないので、上記のような使い方はできない
% rx plug echo 1 2 3 | sed s/1/x/x 2 3
% echo 1 2 3 | rx plug sed s/1/x/(制御が戻らない)
![Page 7: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/7.jpg)
rx(1) over IL
• rxは標準入力がcloseされたとき、0バイトwriteすることでEOFを通知(TCPでは0バイトwriteは無視)
% echo 1 2 3 | rx il!plug!17009 sed s/1/x/x 2 3
% echo 1 2 3 | rx il!plug!17009 sed s/1/x/ |sed s/2/y/x y 3
![Page 8: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/8.jpg)
TCPハーフクローズ• TCPは全二重通信
• shutdown(2)により片方向のみの通信を切断可能
• rsh系コマンドでEOF通知に利用
• Plan 9では未実装... orz
![Page 9: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/9.jpg)
ILの現状
• TCPへの置換えは既定路線だったが、数年前にカーネルからコードが消滅
• 理由:長距離ネットワークへの対応
• ルーティング
• 性能(特にADSLのような非対称網)
![Page 10: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/10.jpg)
ILを使ってみよう
• カーネルの再構築
• /n/sources/extra/il.c
• 参照:http://lufia.org/plan9/doc/inst/il.html
• ndb/cs.cの変更cpu% diff cs.c.orig cs.c164a165> { "il", iplookup, iptrans, 1 },
![Page 11: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/11.jpg)
まとめ• TCPは万能ではない
• メッセージ指向プロトコル
• 例:IL、SCTP、DCCP
• 専用L4プロトコルを作る意義は?
• 例:劣悪な通信環境(モバイル、衛生通信)
SCTP: Stream Control Transport ProtocolDCCP: Data Congestion Control Protocol
![Page 12: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/12.jpg)
続・Ken Thompsonに聞く
Q「Plan 9を再設計できるとしたら、 何を変えたい?」
A「クラウドOS!」
出典:Ask a google engineer. Ken Thompson,
http://www.google.com/moderator/#15/e=7f3&t=7f3.44&f=7f3.5046
![Page 13: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/13.jpg)
続きは懇親会で
Plan9日記(http://d.hatena.ne.jp/oraccha/)
Tokyo Inferno/Plan9 Users Group (TIP9UG)もよろしく!
![Page 14: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/14.jpg)
IL/IPヘッダフォーマットVersion Header
length TOS LengthLengthLengthLength
IdentifierIdentifierIdentifier 0 DF MF Fragment offset
TTLTTL Protocol Header checksumHeader checksumHeader checksumHeader checksum
Source IP addressSource IP addressSource IP addressSource IP addressSource IP addressSource IP addressSource IP address
Destination IP addressDestination IP addressDestination IP addressDestination IP addressDestination IP addressDestination IP addressDestination IP address
IL checksumIL checksumIL checksum Packet lengthPacket lengthPacket lengthPacket length
Packet typePacket type Special Source portSource portSource portSource port
Destination portDestination portDestination port Sequence idSequence idSequence idSequence id
Sequence id (cont.)Sequence id (cont.)Sequence id (cont.) Acked sequenceAcked sequenceAcked sequenceAcked sequence
Acked sequence (cont.)Acked sequence (cont.)Acked sequence (cont.) ----
0 31
![Page 15: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/15.jpg)
Closed
Syncer
Syncee
Established
Closing
![Page 16: IL: 失われたプロトコル](https://reader034.fdocument.pub/reader034/viewer/2022052123/555152ebb4c905e1708b4683/html5/thumbnails/16.jpg)
ipwriteip/devip.c
ilkick
transmit
ipoput4
etherbwrite
ipread
iliput
interrupt
ipiput4
etherread4
ip/il.c
ip/ip.c
ip/ethermedium.c
etheriq
etherbwriteetheroqpc/devether.c
pc/etherxxxx.c
write(2) read(2)
wq rq
in
oq