web-dev-qa-db-ja.com

SMTPはTCPまたはUDPに基づいていますか?

SMTPはTCPまたはUDP?に基づいていますか?私は本当に確認できません。

28
Jerry Cai

理論上、SMTPはTCP、UDP、またはサードパーティのプロトコルのいずれかで処理できます。

RFC 821RFC 2821 、および RFC 5321 で定義されているとおり:

SMTPは特定の送信サブシステムから独立しており、信頼できる順序付けされたデータストリームチャネルのみを必要とします。

さらに、Internet Assigned Numbers Authorityは、SMTPで使用するTCPとUDPの両方に ポート25 を割り当てました。

ただし、実際には、すべてではないにしても、ほとんどの組織およびアプリケーションは、TCPプロトコルの実装のみを選択します。たとえば、 Microsoftのポートリスト では、ポート25はUDPではなくTCPに対してのみリストされます。


ここでTCPを理想的にするTCPとUDPの大きな違いは、TCPがすべてのパケットが受信されていることを確認して再送信することです。 UDPは単にパケットを送信するだけで、受信確認は行いません。これにより、UDPは、すべてのパケットがサーバーからクライアントへの連続的なパケットフローを維持するほど重要ではないストリーミングビデオなどに最適です。

SMTPを考慮すると、UDPでTCPを使用する方が理にかなっています。 SMTPはメール転送プロトコルであり、メールではすべてのパケットが重要です。メッセージの途中でいくつかのパケットが失われた場合、受信者はメッセージを受信することすらできず、パケットが失われた場合、キー情報が失われる可能性があります。これにより、すべてのパケットが確実に配信されるため、TCPがより適切になります。

33
Bad Wolf