docs/diploma

changeset 71:49b6b611c3d6

reworked and completed chapter 1; added references
author meillo@marmaro.de
date Thu, 23 Oct 2008 22:02:05 +0200
parents 177cf1937554
children 85925a92668f
files thesis/bib/thesis.bib thesis/bib/websites.bib thesis/tex/1-Introduction.tex
diffstat 3 files changed, 128 insertions(+), 67 deletions(-) [+]
line diff
     1.1 --- a/thesis/bib/thesis.bib	Thu Oct 23 13:49:07 2008 +0200
     1.2 +++ b/thesis/bib/thesis.bib	Thu Oct 23 22:02:05 2008 +0200
     1.3 @@ -42,7 +42,7 @@
     1.4  	note = "ISBN: 1-56592-724-9. Also available at {\small\url{http://catb.org/esr/writings/cathedral-bazaar/cathedral-bazaar/} (2008-10-14)}",
     1.5  }
     1.6  
     1.7 -@book{sendmail,
     1.8 +@book{costales97,
     1.9  	author = "Bryan Costales and Eric Allman",
    1.10  	title = "sendmail",
    1.11  	year = "1997",
    1.12 @@ -51,6 +51,15 @@
    1.13  	note = "ISBN: 1-56592-222-0",
    1.14  }
    1.15  
    1.16 +@book{vixie01,
    1.17 +	author = "Paul A. Vixie and Frederick M. Avolio",
    1.18 +	title = "Sendmail: Theory and Practice",
    1.19 +	year = "2001",
    1.20 +	edition = "Second",
    1.21 +	publisher = "Digital Press",
    1.22 +	note = "ISBN: 1-55558-229-X. The first chapter ``Background and History'' is available online at {\small\url{http://smtap.al.org/ch01.pdf} (2008-10-23)}",
    1.23 +}
    1.24 +
    1.25  
    1.26  
    1.27  =====================================
     2.1 --- a/thesis/bib/websites.bib	Thu Oct 23 13:49:07 2008 +0200
     2.2 +++ b/thesis/bib/websites.bib	Thu Oct 23 22:02:05 2008 +0200
     2.3 @@ -100,3 +100,80 @@
     2.4  	title = "\emph{Definition for ``mail transfer agent''}",
     2.5  	howpublished = "On the Internet: {\small\url{http://www.kayian.freeserve.co.uk/page7.htm} (2008-10-15)}",
     2.6  }
     2.7 +
     2.8 +
     2.9 +@misc{faqs:mmdf,
    2.10 +	author = "FAQs.org",
    2.11 +	title = "\emph{The MMDF Frequently Asked Questions List (FAQ)}",
    2.12 +	howpublished = "On the Internet: {\small\url{http://www.faqs.org/faqs/mail/mmdf-faq/part1/} (2008-10-23)}",
    2.13 +}
    2.14 +
    2.15 +
    2.16 +# email history
    2.17 +@misc{email:griffiths,
    2.18 +	author = "Richard T. Griffiths",
    2.19 +	title = "\emph{History of the Internet, Internet for Historians (and just about everyone else)}",
    2.20 +	chapter = "3",
    2.21 +	howpublished = "On the Internet: {\small\url{http://www.let.leidenuniv.nl/history/ivh/chap3.htm} (2008-10-23)}",
    2.22 +}
    2.23 +
    2.24 +@misc{email:crocker,
    2.25 +	author = "Dave Crocker",
    2.26 +	title = "\emph{Email History, How Email Was Invented}",
    2.27 +	howpublished = "On the Internet: {\small\url{http://www.livinginternet.com/e/ei.htm} (2008-10-23)}",
    2.28 +}
    2.29 +
    2.30 +@misc{email:vleck,
    2.31 +	author = "Tom van Vleck",
    2.32 +	title = "\emph{The History of Electronic Mail}",
    2.33 +	howpublished = "On the Internet: {\small\url{http://www.multicians.org/thvv/mail-history.html} (2008-10-23)}",
    2.34 +}
    2.35 +
    2.36 +@misc{email:akkad,
    2.37 +	author = "Jay Akkad",
    2.38 +	title = "\emph{The History of Email}",
    2.39 +	howpublished = "On the Internet: {\small\url{http://www.cs.ucsb.edu/~almeroth/classes/F04.176A/homework1_good_papers/jay-akkad.html} (2008-10-23)}",
    2.40 +}
    2.41 +
    2.42 +@misc{email:murakami,
    2.43 +	author = "Gary J. Murakami",
    2.44 +	title = "\emph{The History of ihnp4 and The Growth of the Email Network}",
    2.45 +	howpublished = "On the Internet: {\small\url{http://www.nobell.org/~gjm/about/ihnp4.html} (2008-10-23)}",
    2.46 +}
    2.47 +
    2.48 +@misc{email:tomlinson,
    2.49 +	author = "Ray Tomlinson",
    2.50 +	title = "\emph{The First Network Email}",
    2.51 +	howpublished = "On the Internet: {\small\url{http://openmap.bbn.com/~tomlinso/ray/firstemailframe.html} (2008-10-23)}",
    2.52 +}
    2.53 +
    2.54 +@misc{wikipedia:uucp,
    2.55 +	author = "Wikipedia",
    2.56 +	title = "\emph{UUCP}",
    2.57 +	howpublished = "On the Internet: {\small\url{http://en.wikipedia.org/w/index.php?title=UUCP&oldid=238072862} (2008-10-23)}",
    2.58 +}
    2.59 +
    2.60 +@misc{wikipedia:arpanet,
    2.61 +	author = "Wikipedia",
    2.62 +	title = "\emph{ARPANET}",
    2.63 +	howpublished = "On the Internet: {\small\url{http://en.wikipedia.org/w/index.php?title=ARPANET&oldid=247162321} (2008-10-23)}",
    2.64 +}
    2.65 +
    2.66 +@misc{wikipedia:email,
    2.67 +	author = "Wikipedia",
    2.68 +	title = "\emph{E-mail}",
    2.69 +	howpublished = "On the Internet: {\small\url{http://en.wikipedia.org/w/index.php?title=E-mail&oldid=247092569} (2008-10-23)}",
    2.70 +}
    2.71 +
    2.72 +@misc{wikipedia:historyoftheinternet,
    2.73 +	author = "Wikipedia",
    2.74 +	title = "\emph{History of the Internet}",
    2.75 +	howpublished = "On the Internet: {\small\url{http://en.wikipedia.org/w/index.php?title=History_of_the_Internet&oldid=245178555} (2008-10-23)}",
    2.76 +}
    2.77 +
    2.78 +@misc{unix-mail-intro,
    2.79 +	author = "Network Computing",
    2.80 +	title = "\emph{Introducing Unix Mail}",
    2.81 +	howpublished = "On the Internet: {\small\url{http://www.networkcomputing.com/unixworld/tutorial/810.txt.html} (2008-10-23)}",
    2.82 +}
    2.83 +
     3.1 --- a/thesis/tex/1-Introduction.tex	Thu Oct 23 13:49:07 2008 +0200
     3.2 +++ b/thesis/tex/1-Introduction.tex	Thu Oct 23 22:02:05 2008 +0200
     3.3 @@ -3,71 +3,44 @@
     3.4  
     3.5  \section{History of electronic mail}
     3.6  %TODO: have a quote from Bell Labs about email here
     3.7 -%FIXME: add references to text
     3.8  
     3.9 -Electronic mail\index{electronic mail} (short: \name{email}) is a basic concept in \unix.
    3.10 -On \unix\ machines, a lot of information is distributed by \name{system mail}, which is email sent by the operating system.
    3.11 -Beside that, email is the common communication system between humans working on computers.
    3.12 +Electronic mail\index{electronic mail} (short: \name{email})\citeweb{wikipedia:email} is a basic concept in \unix.\citeweb{unix-mail-intro} On \unix\ machines, a lot of information is distributed by \name{system mail}, which is email sent by the operating system. Beside that, email is the common communication system between humans working on computers.
    3.13  
    3.14 -The \unix\ operating system supports email through the \name{mail user agent} (\NAME{MUA}) \name{/bin/mail}.
    3.15 +The \unix\ operating system supports email through the \name{mail user agent} (short: \NAME{MUA}) \name{/bin/mail}.
    3.16  
    3.17 -As generally known, development of \unix\ was not only made in the \name{Bell Labratories} of \NAME{AT\&T}.
    3.18 -The \name{Univerity of California at Berkeley} worked on their version of a \unix\ operating system, too.
    3.19 -It is refered to as \NAME{UCB} \unix, or \name{Berkeley} \unix\index{Berkeley Unix}.
    3.20 +Development of \unix\ was not only made in the \name{Bell Labratories} of \NAME{AT\&T}. The \name{Univerity of California at Berkeley} worked on their version of a \unix\ operating system, too. It is refered to as \NAME{UCB} \unix, or \name{Berkeley} \unix\index{Berkeley Unix}.
    3.21  
    3.22 -The few features of \name{/bin/mail} lead to a second \NAME{MUA} from Berkeley: \name{Mail} (with a capital `M').
    3.23 -Later, the superior functionality of \name{Mail} went back to \name{Bell Labs} and into the program \name{mailx}, the successor of \name{/bin/mail}.
    3.24 -The different programs for handling mail are a good example for the problem of standardization of \unix.
    3.25 +The few features of \name{/bin/mail} lead to a second \NAME{MUA} from Berkeley: \name{Mail} (with a capital `M'). Later, the superior functionality of \name{Mail} went back to \name{Bell Labs} and into the program \name{mailx}, the successor of \name{/bin/mail}. %The different programs for handling mail are a good example for the problem of standardization of \unix. %TODO: need that last sentence?
    3.26  
    3.27  Nowadays, \name{mailx} and \name{Mail} are quite equivalent and \name{/bin/mail} is linked to either of them---whichever is installed.
    3.28  
    3.29 -For transporting mail in between two systems, the \NAME{UUCP} program and protocol suite (for ``\unix\ to \unix\ copy'') was invented at \name{Bell Labs}.
    3.30 -Berkeley however had an own creation called \name{Berknet} in use. %FIXME: why? license issues? closed source?
    3.31 -Further more there was a third important network type: the \NAME{ARPAnet}, based on the \name{transmission control protocol} (\NAME{TCP}). %FIXME: where did it came from?
    3.32 +At that time, computers were connected by various kinds of networks. \name{Bell Labs} had invented the \NAME{UUCP} program and protocol suite (for ``\unix\ to \unix\ copy'')\citeweb{wikipedia:uucp}. Berkeley however had an own creation called \name{Berknet} in use. And the \name{United States Department of Defence Advanded Research Projects Agency}'s (\NAME{ARPA}) effort on designing a new wide area network, led to the \NAME{ARPANET}\citeweb{wikipedia:arpanet}, based on the \name{transmission control protocol} (\NAME{TCP}). There were also other, minor, kinds of networks in use.
    3.33  
    3.34 -Each of the three network types could transfer email between different machines.
    3.35 -The file transfer itself was made using \NAME{FTP}, but the higher layered logic of the transfer was different in each.
    3.36 -For example was the addressing schema not the same: \NAME{UUCP} used a flat-style schema, while \NAME{ARPAnet} was hierachical.
    3.37 +Email was transfered between different machines within the same networks. The file transfer itself was made uniformly using \NAME{FTP}, but the higher layered logic of the transfer was different. For example was addressing done different: \NAME{UUCP} used a flat-style schema, while \NAME{ARPANET}'s was hierachical.
    3.38  
    3.39 -Mail transport from one machine using one kind of network to a second machine using another kind was a problem.
    3.40 -This showed up at Berkeley where some departments of the university had switched to \NAME{ARPAnet}, and some to \NAME{UUCP}, while the rest was \name{Berknet}.
    3.41 +Mail transport from one machine connected to one kind of network to a second machine connected to another was a problem. This showed up at Berkeley where some departments of the university had switched to \NAME{ARPANET}, and some to \NAME{UUCP}, while the rest used \name{Berknet}.
    3.42  
    3.43 -It was around 1982, when Eric Allman, then a student at Berkeley, wrote \name{delivermail}.
    3.44 -Its purpose was to transform email from one network to another.
    3.45 -\name{delivermail} like its successor, the more flexible \sendmail, intermediated between the different networks.
    3.46 -They were able to transform email messages from any network to any other.
    3.47 +It was around 1982, when Eric Allman, then a student at Berkeley, wrote \name{delivermail}. Its purpose was to transform email from one network to another. \name{delivermail}, like its successor---the more flexible \sendmail---intermediated between the different networks. They were able to transform email messages from any network to any other.
    3.48  
    3.49 -Todays email structure is basicly the same as then.
    3.50 -The major difference is the uniformity of the underlying network, which is nearly always the \NAME{ARPAnet}-based \name{Internet}.
    3.51 -Most other differences are organized as extensions to the old model of electronic mail.
    3.52 +Todays email structure is basicly the same as then. The major difference is the uniformity of the underlying network, which is nearly always the \NAME{ARPANET}-based \name{Internet}. Hence lowering the importance of the transformation capabilities of \MTA{}s, that was essential to \sendmail's success---yet being the primary motivation for the program.
    3.53  
    3.54 -More information about electronic mail and its history can be found at:
    3.55 -%FIXME: add books and websites here
    3.56 +More information about the history of electronic mail can be found at: \citeweb{email:griffiths}, \citeweb{email:crocker}, \citeweb{email:vleck}, \citeweb{email:akkad}, \citeweb{email:murakami}, and \citeweb{email:tomlinson}. A good starting point for general information on internet history is \citeweb{wikipedia:historyoftheinternet}.
    3.57 +%TODO: check the websites which ones are the important ones; remove unnessesary ones
    3.58  
    3.59 -% http://www.helpdesk.umd.edu/documents/4/4804/
    3.60 -% http://www.networkcomputing.com/unixworld/tutorial/810.txt.html
    3.61 -% http://www.livinginternet.com/i/iw_unix_war.htm
    3.62 -% http://www.nobell.org/~gjm/about/ihnp4.html
    3.63 -% http://en.wikipedia.org/wiki/E-mail
    3.64 -% http://en.wikipedia.org/wiki/UUCP
    3.65 -% http://en.wikipedia.org/wiki/ARPAnet
    3.66 -% http://en.wikipedia.org/wiki/History_of_the_Internet
    3.67 -% http://www.multicians.org/thvv/mail-history.html
    3.68 -% http://openmap.bbn.com/~tomlinso/ray/firstemailframe.html
    3.69 -% http://www.livinginternet.com/e/ei.htm
    3.70 -% http://www.cs.ucsb.edu/~almeroth/classes/F04.176A/homework1_good_papers/jay-akkad.html
    3.71  
    3.72  
    3.73  \section{Transporting mail}
    3.74 -%TODO: include definitions from others here (cites)
    3.75  %TODO: when was the term ``mail transfer agent'' established?
    3.76 -The basic job of a \name{mail transfer agent} (or \index{mail transport agent|see{mail transfer agent}}\name{mail transport agent}, short \NAME{MTA}) is to transfer/transport \name{electronic mail} (short \name{email}) from one host to another.
    3.77  
    3.78 -Here are definitions from various sources:
    3.79 +This thesis is about a \name{mail transfer agent} (or \index{mail transport agent|see{mail transfer agent}}\name{mail transport agent}, short \NAME{MTA}): \masqmail. \sendmail\ is one too---the most important one.
    3.80 +
    3.81 +The basic job of a \mta\ is to transfer/transport electronic mail from one host to another.
    3.82 +
    3.83 +Here are definitions from others:
    3.84  
    3.85  \begin{quotation}
    3.86 -A mail transfer agent (MTA) is a highly specialized program that delivers mail and transports it between machines, like the post office. Usually there is only one MTA on a machine. The sendmail program is an MTA.
    3.87 -\cite{sendmail}
    3.88 +A mail transfer agent (MTA) is a highly specialized program that delivers mail and transports it between machines, like the post office.
    3.89 +\cite{costales97}
    3.90  \end{quotation}
    3.91  
    3.92  \begin{quotation}
    3.93 @@ -81,39 +54,41 @@
    3.94  \end{quotation}
    3.95  
    3.96  \begin{quotation}
    3.97 -Message Transfer Agent - (MTA, Mail Transfer Agent) Any program responsible for delivering e-mail messages. Upon receiving a message from a Mail User Agent or another MTA, often by SMTP over the Internet, it stores it temporarily locally and analyses the recipients and delivers it to any local addressees and/or forwards it to other remote MTAs (routing) for delivery to remote recipients. In either case it may edit and/or add to the message headers.
    3.98 -
    3.99 -The most widely used MTA for Unix is sendmail, which communicates using SMTP.
   3.100 -
   3.101 -RFC 2821 (SMTP) expands MTA as ``Mail Transfer Agent'' though this is less common. Alternatives with ``Transport'' are also seen but less correct.
   3.102 +Message Transfer Agent - (MTA, Mail Transfer Agent): Any program responsible for delivering e-mail messages. Upon receiving a message from a Mail User Agent or another MTA, [...] it [...] delivers it to any local addressees and/or forwards it to other remote MTAs (routing) for delivery to remote recipients.
   3.103 +%Any program responsible for delivering e-mail messages. Upon receiving a message from a Mail User Agent or another MTA, often by SMTP over the Internet, it stores it temporarily locally and analyses the recipients and delivers it to any local addressees and/or forwards it to other remote MTAs (routing) for delivery to remote recipients. In either case it may edit and/or add to the message headers.
   3.104 +%
   3.105 +%The most widely used MTA for Unix is sendmail, which communicates using SMTP.
   3.106 +%
   3.107 +%RFC 2821 (SMTP) expands MTA as ``Mail Transfer Agent'' though this is less common. Alternatives with ``Transport'' are also seen but less correct.
   3.108  \citeweb{website:thefreedictionary}
   3.109  \end{quotation}
   3.110  
   3.111 -\begin{quotation}
   3.112 -mail transfer agent (MTA) The program responsible for delivering e-mail messages. Upon receiving a message from a mail user agent or another MTA it stores it temporarily locally and analyses the recipients and either delivers it (local addressee) or forwards it to another MTA. In either case it may edit and/or add to the message headers. A widely used MTA for Unix is sendmail. 
   3.113 -\citeweb{website:faqs}
   3.114 -\end{quotation}
   3.115 +Common is the transfer of mail to other machines; this is the actual job. \MTA{}s work with mail, received from local users and/or remote machines. Mail delivery however is \emph{not} what \mta{}s are for, although probably every \MTA\ is able to deliver mail, and many do. \name{mail delivery agents} (short: \NAME{MDA}) are the programs for this job. Two of the best known \NAME{MDA}s are \name{procmail} and \name{maildrop}.
   3.116  
   3.117 -\begin{quotation}
   3.118 -Mail Transfer Agent (MTA): The means by which mail messages are transferred between machines over the Internet.
   3.119 -\citeweb{website:freeserve.co.uk}
   3.120 -\end{quotation}
   3.121  
   3.122  
   3.123  \section{\sendmail}
   3.124  \label{sec:sendmail}
   3.125 -\name{sendmail} is the de facto standard for \name{mail transfer agents}.
   3.126  
   3.127 -% FIXME: is that true?
   3.128 -It was the first \NAME{MTA} and had no real alternative for a long time.
   3.129 +Allman wrote it to transfer emails between different networks, thus giving \sendmail\ mighty address rewriting abilities. In contrast to its predecessor \name{delivermail}, was \sendmail\ designed to offer greatest flexiblity in configuration; this enabled it to deal with any type of network.
   3.130  
   3.131 -Most other existing substitutes (on \unix\ systems), which are mainly \name{postfix}, \name{exim}, \name{qmail} and the here regarded \name{masqmail}, mimic \name{sendmail}'s interface.
   3.132 -Especially, they all create a symbolic link named ``sendmail'' pointing to their own executable.
   3.133 -This is because a lot of programs assume there is an executable called ``sendmail'' on every computer system existing.
   3.134 +\sendmail\ was, and still is, very successful. So successful that it stands, like no other, for the whole group of \MTA{}s: \name{sendmail} actually is the \emph{de facto standard} for \mta{}s.
   3.135  
   3.136 -Besides being the ``standard'', \name{sendmail} probably is the most scalable and powerful solution for transfering emails and definately the most flexible one.
   3.137 +Its author, Allman, sees three reasons for the huge success: the ``sloopy'' approach (accepting badly formed messages); its focus on the routing function; and the flexible configuration (this was important in \sendmail's early days).
   3.138 +\cite[page xviii]{costales97}
   3.139  
   3.140 +Others see \sendmail's success more critical. One of them is quoted in the \name{MMDF} FAQs \citeweb{faqs:mmdf}:
   3.141 +\begin{quotation}
   3.142 +Sendmail was once compared by one old Internet hand to ``those killer bees that escaped from the laboratory---and now they're everywhere and you can't get rid of 'em''.
   3.143 +\end{quotation}
   3.144 +He definately hints here at \sendmail's many security vulnerabilities that came to light and on its complexity, in particular its obscure configuration file \path{sendmail.cf}.
   3.145 +
   3.146 +No matter how \sendmail\ is seen, one must admit its influence on \unix\ emailing programs. Most existing substitutes mimic \sendmail's interface and behavior. Most notable, they create a symbolic link named ``sendmail'' pointing to their own executable. The reason herefor are the many programs assuming an executable called ``sendmail'' on every computer system existing.
   3.147 +
   3.148 +\sendmail\ is not only ported to many platforms, even including \name{Microsoft Windows}, but also it is still the prefered \MTA\ on many systems.
   3.149 +
   3.150 +For deeper knowledge on \sendmail's history, see \cite{costales97} and \cite{vixie01}.
   3.151  
   3.152  
   3.153  \section{(a look at Windows)}
   3.154 -
   3.155 +% TODO: add content here