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

Re: SMTP: TCP oder UDP



Hallo, Thorsten!

* Thorsten Haude <debian@thorstenhau.de> [2003-10-17 23:44]:
> 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.

Dein Gegenüber liegt komplett falsch. Du wohl ein bisschen, denn mir ist
überhaupt keine Implementation von SMTP bekannt, die UDP benutzt, es
köme mir auch ziemlich sinnlos vor...
Wenn ich mich in dem Punkt irre, würde ich mich über Links freuen :)

> Die fehlende
> Übermittlungssicherheit bei UDP würde von SMTP ausgeglichen werden.

*LOL* Einen Bonuspunkt für Einfallsreichtum...
Mich würde echt interessieren, woher er sowas hat...

> Sein Argument: Mails brauchen mal eine Minute, mal zwei Stunden, eben
> weil UDP unzuverlässig ist.

Das ist kein Argument (aus verschiedenen Gründen)...

> Was ich suche, ist jetzt zunächst mal eine Antwort, klar, aber eben
> auch eine Quelle, mit der sich die Antwort belegen läßt.

Also in RFC2821 (ftp://ftp.rfc-editor.org/in-notes/rfc2821.txt) steht:
----snip---
SMTP is independent of the particular transmission subsystem and
requires only a reliable ordered data stream channel.  While this
document specifically discusses transport over TCP, other
transports are possible.  Appendices to RFC 821 describe some of them.
----snip---

Das sagt eingentlich schon alles. "a reliable ordered data stream
channel" ist UDP jedenfalls nicht.

Als weitere Quelle sind wohl sämliche Implementierungen von SMTP-Servern
und Clients zu nennen...

> Gibt es eine
> technische oder standardmäßige Bindung von SMTP an TCP oder UDP?

Ja, s.o.

> Gibt
> es ein Ausschlußkriterium, warum SMTP nur sinnvoll mit dem einen oder
> anderen zusammenarbeiten kann?

Ja. Mal vereinfacht gesprochen:
UDP => Pakete können verloren gehen, Reihenfolge undefiniert.
TCP => Ankunft der Pakete oder Fehlermeldung garantiert, Reihenfolge ist
bei der Anknft die gleiche wie beim Absenden.

Die UDP-Eigenschaften nimmt man eigentlich nur dann in Kauf, wenn
Geschwindigkeit wichtiger ist als die TCP-Eigenschaften, die man
eigentlich immer gern haben möchte (z.B. Video, Audio, Quake, etc.)

Bei Mail macht es nun überhaupt keinen Sinn UDP zu nehmen, weil man ja
keine Mail haben will, wo die Bytes durcheinandergeraten sind und einige
fehlen. Daher müsste man bei UDP die TCP-Eigenschaften quasi emulieren
und dann kann man eigentlich auch gleich TCP nehmen :)

> Bonusfrage: Warum braucht eine Mail mal eine Minute, mal eine Stunde?

Naja, ganz so nichtdeterministisch ists ja nun meist auch nicht.
Normalerweise dauert das Versenden einer Mail vom gleichen Sender zum
gleichen Empfänger etwa zum selben Zeitpunkt auch etwa gleich lang.

Bei verschiedenen Sendern oder Empfängern oder Zeitpunkten können
verschiedene Probleme auftauchen. Davon nur mal zwei:
1) Einer der beteiligten Mailserver kann gerade ziemlich ausgelastet
sein und die Mail erstmal zurückstellen. Oder er ist ganz down, die Mail
wird zum Backup-MX geleitet, der erstmal wartet, bis der normale
Mailserver wieder tut.
2) Es können diverse DNS-Probleme auftreten, die für Verzögerung sorgen
können.

> Ok, aber warum?

Weil er (quasi) TCP emulieren müsste.

Gruß,
 Mika



Reply to: