[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: SMTP: TCP oder UDP



On Fri, Oct 17, 2003 at 11:13:49PM +0200, Thorsten Haude wrote:
> Ist klar. Jetzt mal Klartext: Wir hatten eine kontroverse Diskussion
> über dieses Thema, mein Gegenüber meinte, daß SMTP beinahe immer mit
> UDP benutzt wird, ich bin nach wie vor der Meinung, daß UDP allenfalls
> in skurillen Ausnahmesituationen eingesetzt wird. Die fehlende
> Übermittlungssicherheit bei UDP würde von SMTP ausgeglichen werden.
> Sein Argument: Mails brauchen mal eine Minute, mal zwei Stunden, eben
> weil UDP unzuverlässig ist.

Ornö.  SMTP erklärt, wie sich Client und Server unterhalten müssen.
Also so Dinge wie:
    C               S
    connect()
                    220 ESMTP
    EHLO pc12
                    250 Hello pc12 [192.168.1.1]
    MAIL FROM: <x@y.de>
                    250 <x@y.de> is syntactically correct

    ...

Um diese Informationen zu übertragen, ist ein Transport-Protokoll
notwendig.  Und das ist normalerweise TCP (könnte rein technisch gesehen
aber auch UDP sein).

Unsicherheiten von UDP sind nicht größer als die TCP.  Ein totes Paket
ist ein totes Paket, egal ob's UDP oder TCP war.  Diese Verluste werden
in normalerweise Größenordnungen von wenigen Sekunden ausgeglichen.


> auch eine Quelle, mit der sich die Antwort belegen läßt. Gibt es eine
> technische oder standardmäßige Bindung von SMTP an TCP oder UDP? Gibt
> es ein Ausschlußkriterium, warum SMTP nur sinnvoll mit dem einen oder
> anderen zusammenarbeiten kann?

Nein.
Belegen?  Wenigstens finde ich mit google keine Implementation von SMTP
über UDP.

> Bonusfrage: Warum braucht eine Mail mal eine Minute, mal eine Stunde?
Die Mails brauchen (mal abgesehen von Megamails, die einfach für den
Transport von einem Server zum nächsten so lange brauchen, weil die
Leitung zu dünn ist) nicht für den Transport so lange, sie liegen halt
mitunter auf den Servern rum.  Mail ist "Store and Forward".  Also -
jeder bringt sie zum nächsten Mailserver, von dem er denkt, er ist
besser geeignet.   (Wenn Du Dir die Received-Header der Mail ansiehst,
dann erkennst Du das.)  Und aus verschiedenen Gründen kann es sein, daß
dann nicht sofort weitergeleitet wird.  (Last, Zielhost down,
Viren/Spam-Scanner, ...)


> >Eher wichtig scheint mir, daß wahrscheinlich kein bekannter SMTP-Server
> >SMTP über UDP unterstützen wird.  Es wäre zu anstrengend für den, der's
> >implementieren muß.
> Ok, aber warum?

Was "warum"?  Warum's zu anstrengend ist, oder warum's keiner macht?

Bei UDP schickst Du Pakete durch die Welt.  Der Gegenüber bekommt diese.
UDP garantiert Dir lediglich, daß die Pakete unverstümmelt ankommen.
Aber nichts über die Reihenfolge.  Schlimmer - es garaniert ja nicht
mal, *daß* sie ankommen.

Damit Daten auszutauschen, die größer als ein Paket sind, ist sehr
mühsam, denn die Anwendung müßte die Reihenfolge und Vollständigkeit
dieser Pakete selbst managen.  Wer will das?

(DNS hat's da einfacher: Die Frage paßt in ein Paket und die Antwort
normalerweise auch.  Ich muß dann nur noch rausfinden, ob ich früher
oder später für alle Fragen auch Antworten bekommen habe (bzw. die
Antworten, die ich erhalte auch zuordnen.)  Für diesen Zweck ist UDP
sehr gut geeignet, weil's auch keinen "Verbindungsaufbau" gibt (der bei
TCP ein 3maliges Hin&Her ist, was bei langen Laufzeiten störend sein
kann und Overkill ist, wenn ich mal eben nur eine Frage habe)).

Will ich UDP nutzen für den Mailtransport, würde es also so enden, daß
ich alles das, was TCP bietet, nochmal nachbaue.  TCP stellt mir eine
"virtuelle" Verbindung dar.  Ich connect()e mich und schicken dann meine
Daten dort einfach rein und das war's.  Und gehe davon aus, daß der
TCP-Stack auf beiden Seiten die Vollständigkeit (Reihenfolge und
Vollzähligkeit) selbst klärt, mich das also nicht mehr angeht..)


    Best regards from Dresden
    Viele Gruesse aus Dresden
    Heiko Schlittermann
-- 
 SCHLITTERMANN.de ------------------ internet & unix support -
 <a href="http://debian.schlittermann.de/";> Debian DVD/CD </a>
 Heiko Schlittermann HS12-RIPE -------------------------------
 pgp: A1 7D F6 7B 69 73 48 35  E1 DE 21 A7 A8 9A 77 92 -------
 gpg: 3061 CFBF 2D88 F034 E8D2  7E92 EE4E AC98 48D0 359B -----

Attachment: pgpkIESM0CIb7.pgp
Description: PGP signature


Reply to: