Pythonクイックリファレンス 第4版
by Alex Martelli, Anna Martelli Ravenscroft, Steve Holden, Paul McGuire, 鈴木 駿, 株式会社クイープ
18章ネットワークの基礎
コネクション型(connection-oriented)プロトコルは、電話をかけるのと同じような仕組みになっている。(誰かの電話番号にダイヤルするのと同じように)特定のネットワークエンドポイントに対する接続をリクエストすると、相手が応答することもあれば、応答しないこともある。相手が応答してきた場合は、相手に話しかけたり、相手の話を聞いたりできる(必要であれば、それらを同時に行うこともできる)。そうしたとしても、失うものは何もない。会話が終わったら別れの挨拶を交わして電話を切るため、その終了イベントが発生しなかった(たとえば、突然相手の声が聞こえなくなった)としたら、何か問題が起きたことは明らかである。TCP(Transmission Control Protocol)は、インターネットの主要なコネクション型トランスポートプロトコルであり、Webブラウザ、セキュアシェル、電子メール、およびその他多くのアプリケーションで使われている。
コネクションレス型(connectionless)プロトコルまたはデータグラム(datagram)プロトコルは、ハガキを送ってやり取りするのと同じような仕組みになっている。ほとんどの場合、メッセージは相手に届くが、何が問題が起きた場合はその結果に対処する覚悟が求められる。このプロトコルはメッセージが受信されたかどうかを通知せず、メッセージは正しい順序で届かないことがある。短いメッセージを交換して応答を受け取る場合、サービス全体がたまに中断しても対処できるのであれば、データグラムプロトコルのほうがコネクション型プロトコルよりもオーバーヘッドが少ない。たとえば、DNS(Domain Name Service)サービスは応答しないことがある。ほとんどのDNS通信は、最近までコネクションレス型だった。UDP(User ...