Datorsystem

Datorsystem
Laboration 4: N¨atverk
Senast uppdaterad: 9 mars 2012
Version 1.3
Student:
L¨arare:
Underskrift:
Underskrift:
Datum:
Datorsystem
Laboration 4
1
Inneh˚
all
1 Inledning
1.1 Introduktion . . . . . . . .
1.2 Labbens syfte . . . . . . . .
1.3 Formalia . . . . . . . . . . .
1.4 Litteratur till laborationen .
1.5 Innan du b¨
orjar med labben
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
2
2
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
3
3
3
4
4
4
4
4
4
5
5
5
5
6
6
6
3 Bra att veta
3.1 Telnet i terminalen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 PuTTY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
7
A Att anv¨
anda svenska bokst¨
aver i e-post
8
. . . .
. . . .
. . . .
. . . .
b¨
or du
. . .
. . .
. . .
. . .
ha:
2 Laborationsuppgifter
2.1 Lager . . . . . . . . . . . . . . . . .
2.2 Portar . . . . . . . . . . . . . . . . .
2.3 HTTP . . . . . . . . . . . . . . . . .
2.4 SMTP . . . . . . . . . . . . . . . . .
2.5 DNS . . . . . . . . . . . . . . . . . .
2.6 Wireshark . . . . . . . . . . . . . . .
2.7 Att st¨
alla en fr˚
aga till en webserver .
2.7.1 Deluppgift 1 . . . . . . . . .
2.7.2 Deluppgift 2 . . . . . . . . .
2.7.3 Deluppgift 3 . . . . . . . . .
2.7.4 Felaktiga svar . . . . . . . . .
2.8 De undre lagren . . . . . . . . . . . .
2.8.1 Deluppgift 1 . . . . . . . . .
2.9 Att skicka e-post . . . . . . . . . . .
2.9.1 Deluppgift 1 . . . . . . . . .
2.9.2 Att f˚
a svar fr˚
an [email protected]
2.10 Domain Name System . . . . . . . .
2.10.1 Deluppgift 1 . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Datorsystem
1
Laboration 4
2
Inledning
1.1
Introduktion
Idag finns m˚
anga tj¨
anster som anv¨
ander sig av kommunikationsn¨at s˚
asom internet eller lokala n¨atverk
f¨
or att skicka data mellan olika anv¨
andare. Speciellt f¨or mer avancerade n¨atverkstj¨anster har man stor
nytta av att f¨
orst˚
a hur ett n¨
atverk fungerar och hur de olika protokollen fungerar s˚
a att man kan bygga
en s˚
a bra tj¨
anst som m¨
ojligt.
Efter att du har klarat av den h¨
ar labben ska du ha bekantat dig med n˚
agra n¨atverksprotokoll och
veta hur data skickas o
ver
ett
n¨
a
tverk.
¨
1.2
Labbens syfte
Tanken med denna laboration ¨
ar att den ska l¨ara dig mer om n¨atverk och ge en praktisk f¨orst˚
aelse f¨
or
protokoll och n¨
atverkslagren.
1. F¨
orst˚
aelse f¨
or de olika lagren i TCP/IP-stacken.
2. F¨
orst˚
aelse f¨
or n¨
atverksprotokoll
1.3
Formalia
Denna laboration a
a egen dator hemma eller i
¨r en hemlabb, vilket inneb¨ar att den kan g¨oras antingen p˚
DSV:s datorsalar. Labben ska g¨
oras ensam eller tv˚
a och tv˚
a men redovisas enskilt a¨ven om man arbetat
i par. Bokning av redovisning sker i Daisy.
Under redovisningen f¨
orv¨
antas alla svar finnas p˚
a papper eftersom inga datorer f˚
ar medtagas p˚
a
redovisningen.
Se till att ha med samtliga delsteg i utskriften av era svar s˚
a att ni kan visa hur ni n˚
att ert svar och
kan motivera det.
1.4
Litteratur till laborationen
• HTTP - http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
• Svarskoder i HTTP - http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
• TCP - http://en.wikipedia.org/wiki/Transmission_Control_Protocol
• IP - http://en.wikipedia.org/wiki/IPv4
• DNS - http://en.wikipedia.org/wiki/Domain_Name_System
• SMTP - http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
• Mailformat - http://en.wikipedia.org/wiki/Email#Message_format
• Hur man anv¨
ander Wireshark (video) - http://wiresharkdownloads.riverbed.com/video/wireshark/
introduction-to-wireshark/
1.5
Innan du b¨
orjar med labben b¨
or du ha:
• L¨
ast igenom hela detta lab-PM
• Laddat ned senaste versionen av Wireshark1 . Detta g¨aller om du g¨or labben p˚
a din egen dator.
• Kontrollerat att Wireshark fungerar p˚
a den dator du anv¨ander.
• [Om du k¨
or Mac/Linux] Kontrollerat att du har kommandot telnet i din terminal.
• [Om du k¨
or Windows] Ladda ned PuTTY2 . Detta g¨aller naturligtvis bara om du g¨or laborationen
p˚
a din egen dator. Om du kommer anv¨anda PuTTY b¨or du l¨asa sektion 3.2.
1 http://www.wireshark.org/download.html
2 http://www.chiark.greenend.org.uk/
~sgtatham/putty/download.html
Datorsystem
2
Laboration 4
3
Laborationsuppgifter
2.1
Lager
a) Vilka lager finns det i TCP/IP-modellen och i vilken ordning kommer de?
b) Varf¨
or har man valt att modellera TCP/IP med lager?
2.2
Portar
a) Totalt finns 65536 portar, men man brukar dela in dessa i tre omr˚
aden. Vad brukar dessa omr˚
aden
kallas (engelska namnen g˚
ar utm¨
arkt) och vilka portnummer h¨or till vilka omr˚
aden?
b) Vilka portar anv¨
ands vanligtvis f¨
or HTTP?
c) Vilken port anv¨
ands vanligtvis f¨
or SMTP?
2.3
HTTP
a) Vilken svarskod f˚
ar man fr˚
an en webserver om allt g˚
att v¨al?
b) Vilken svarskod f˚
ar man om webservern inte kan hitta resursen som efterfr˚
agas?
c) Vilken svarskod f˚
ar man om man fr˚
agar efter en resurs som har flyttats?
d) Vad betyder det om man f˚
ar svarskoden 401?
e) Vilka olika f¨
orfr˚
agningar kan man g¨ora med HTTP? Ledning: De kallas ”request methods” p˚
a
engelska.
2.4
SMTP
a) Hur ser kommandot ut f¨
or att ange avs¨andarens namn och adress enligt SMTP?
b) Hur ser kommandot ut f¨
or att ange mottagarens namn och adress enligt SMTP?
c) Hur ser kommandot ut f¨
or att ange sj¨alva texten i ett e-postmeddelande enligt SMTP?
d) Vilket kommando fr˚
agar en SMTP-server om vilka extensions den st¨odjer?
e) Ett e-postmeddelande best˚
ar av tv˚
a delar: Header och Body. Vilka tv˚
a f¨alt m˚
aste alltid finnas i
headern? Ledning: L¨
as om formatet f¨or e-post p˚
a Internet3
2.5
DNS
a) Vilken typ av DNS-post ska man fr˚
aga efter om man vill veta IPv4-adressen f¨or en dom¨an? Ledning:
En post kallas Resource Record p˚
a engelska.
b) Vilken typ av DNS-post ska man fr˚
aga efter om man vill veta IPv6-adressen f¨or en dom¨an?
c) Vilken typ av DNS-post ska man fr˚
aga efter om man vill veta vilken mailserver som finns f¨or en
dom¨
an?
2.6
Wireshark
a) Hur anger man ett filter i Wireshark f¨or att bara se trafik som inneh˚
aller HTTP?
b) Hur f¨
oljer man en specifik TCP-str¨
om i Wireshark?
3 http://en.wikipedia.org/wiki/Email#Message_format
Datorsystem
2.7
Laboration 4
4
Att st¨
alla en fr˚
aga till en webserver
HTTP ¨
ar ett textbaserat protokoll och g˚
ar utm¨arkt att anv¨anda ”f¨or hand”, ¨aven om det naturligtvis ¨
ar
betydligt vanligare att man anv¨
ander en webbl¨asare som sk¨oter HTTP-kommunikationen ˚
at anv¨andaren.
I den h¨
ar delen av labben kommer du att kommunicera med en webserver med hj¨alp av Telnet4 , ett
protokoll f¨
or att skicka data ¨
over TCP.
Telnet anv¨
ands ofta just f¨
or att testa protokoll som skickar data i klartext, exempelvis HTTP, SMTP
och POP3 (de b˚
ada sistn¨
amnda hanterar e-post).
2.7.1
Deluppgift 1
¨
1) Oppna
ett terminalf¨
onster och koppla upp mot webbservern med hj¨alp av telnet. Webbserverns
address ¨
ar da.dsv.su.se och porten ¨ar 80. Om du k¨or Windows ansluter du ist¨allet med hj¨alp av
PuTTY (gl¨
om inte att ansluta i l¨
aget Raw, inte Telnet).
2) Fr˚
aga efter resursen /art.txt.
3) Vilket svar f˚
ar du? Ta med hela konversationen fr˚
an telnet/PuTTY i ditt svar, b˚
ade header och
data.
4) Vad betyder svarskoden du fick?
2.7.2
Deluppgift 2
¨
1) Oppna
ett terminalf¨
onster och koppla upp mot webbservern med hj¨alp av telnet (eller PuTTY).
Webbserverns address ¨
ar da.dsv.su.se och porten ¨ar 80.
2) Fr˚
aga efter resursen /layers.html.
3) Vilket svar f˚
ar du? Ta med hela konversationen fr˚
an telnet/PuTTY i ditt svar, b˚
ade header och
data.
4) Vad betyder svarskoden du fick?
2.7.3
Deluppgift 3
¨
1) Oppna
ett terminalf¨
onster och koppla upp mot webbservern med hj¨alp av telnet (eller PuTTY).
Webbserverns address ¨
ar da.dsv.su.se och porten ¨ar 80
2) Fr˚
aga efter resursen /grades.txt.
3) Vilket svar f˚
ar du? Ta med hela konversationen fr˚
an telnet/PuTTY i ditt svar, b˚
ade header och
data.
4) Vad betyder svarskoden du fick?
2.7.4
Felaktiga svar
Om du f˚
ar svaret 400 Bad Request betyder det att du skickat en felaktig f¨orfr˚
agan. Det ¨ar inte det s¨okta
svaret i labben och du beh¨
over se ¨
over din f¨orfr˚
agan f¨or att se vad som ¨ar fel.
2.8
De undre lagren
I den tidigare uppgiften har du tittat p˚
a hur HTTP fungerar. I den h¨ar uppgiften kommer vi att titta
p˚
a hur protokollen i lagren under applikationslagret ser ut med hj¨alp av Wireshark.
4 http://en.wikipedia.org/wiki/Telnet
Datorsystem
2.8.1
Laboration 4
5
Deluppgift 1
Precis som i f¨
orsta uppgiften kommer vi anv¨anda telnet/PuTTY f¨or att ansluta till en webbserver. Den
h¨
ar g˚
angen kommer vi ocks˚
a att starta Wireshark f¨or att kunna titta p˚
a paketen p˚
a mer ¨an applikationsniv˚
a.
1) Starta Wireshark och starta en ny ”capture” p˚
a det n¨atverksinterface du anv¨ander f¨or att ansluta
till internet. Det h¨
ar ¨
ar olika f¨
or olika operativsystem (och f¨or Linux olika mellan olika distributioner) och uppkopplingss¨
att, s˚
a det b¨asta ¨ar om du provat Wireshark innan s˚
a att du vet vilket
interface du ska anv¨
anda.
2) Starta PuTTY/telnet och anslut till da.dsv.su.se p˚
a port 80 och fr˚
aga efter resursen /art.txt.
3) Stoppa din ”capture” i Wireshark och applicera ett filter f¨or att bara se HTTP-paket.
4) Leta p˚
a paketet d¨
ar du fr˚
agar efter /art.txt.
(a) Mellan vilka IP-adresser skickas paketet?
(b) Mellan vilka portar g˚
ar paketet?
(c) Hur m˚
anga TCP-segment beh¨
ovdes f¨or att skicka hela HTTP-paketet?
(d) Mellan vilka MAC-adresser g˚
ar paketet?
2.9
Att skicka e-post
En av internets ¨
aldsta tj¨
anster ¨
ar e-post, och idag ¨ar protokollen som anv¨ands f¨or att skicka och l¨
asa
e-post bland de vanligaste protokollen. Vanligtvis anv¨ands tre protokoll: SMTP, POP3 och IMAP. SMTP
anv¨
ands f¨
or att skicka e-post medan POP3 och IMAP anv¨ands f¨or att l¨asa e-post. Samtliga protokoll
kan anv¨
andas ¨
over telnet, precis som HTTP, men i labben kommer vi anv¨anda SMTP via telnet f¨or att
skicka ett meddelande medan vi l¨
aser svaret med en klient.
2.9.1
Deluppgift 1
1) Du beh¨
over vara uppkopplad p˚
a DSVs n¨atverk f¨or att g¨ora denna del av labben. Antingen kan
man g¨
ora den h¨
ar delen av labben i en datorsal eller s˚
a fj¨arransluter man till DSV. Anv¨ander man
Windows kan man anv¨
anda programmet Fj¨arranslutning f¨or att ansluta till triton.dsv.su.se och
anv¨
anda PuTTY d¨
arifr˚
an. Anv¨
ander man Mac/Linux kan man SSHa till triton och k¨ora telnet
d¨
arifr˚
an.5
2) Starta en terminal eller PuTTY och anslut till mail.dsv.su.se p˚
a port 25.
3) H¨
alsa p˚
a SMTP-servern. Det spelar egentligen ingen roll vilken host du h¨alsar fr˚
an, men ett tips
ar att anv¨
anda din dators namn.
¨
4) Skicka ett mail till [email protected] med en kopia till dig sj¨alv med rubriken ”Labb 4” och meddelandet
”Jag skickar e-post med SMTP!”.6
Observera att du m˚
aste skicka fr˚
an den e-post-adress du har i Daisy!7
(a) Hur ser konversationen mellan dig och SMTP-servern ut? Ta med hela konversationen fr˚
an
telnet/PuTTY i utskriften av dina svar.
(b) Vad fick du f¨
or svar fr˚
an [email protected]?
5 L¨
as
mer om hur man g¨
ora detta p˚
a http://dsv.su.se/utbildning/it/datorutrustning/atkomst
e-post kan inte hantera svenska tecken (˚
a¨
a¨
o). Den som ¨
ar intresserad kan l¨
asa mer om detta under Att
anv¨
anda svenska bokst¨
aver i e-post.
7 Om du av n˚
agon anledning inte har tillg˚
ang till den adress du har angiven i Daisy m˚
aste du h¨
ora av dig till kursledningen.
6 Standard
Datorsystem
2.9.2
Laboration 4
6
Att f˚
a svar fr˚
an [email protected]
F¨
or att bli godk¨
and p˚
a uppgiften ska man ha f˚
att svar fr˚
an [email protected]. Om man inte f˚
ar det beror
det i regel antingen p˚
a att man skickar fr˚
an en annan adress ¨an den man hade angiven i Daisy n¨
ar
e-postadresserna exporterades, eller p˚
a att man anger en felaktig header. Kontrollera b˚
ada dessa om du
inte f˚
ar svar fr˚
an [email protected].
2.10
Domain Name System
De tidigare applikationslagerprotokollen vi tittat p˚
a har skickat data i klartext. I den h¨ar uppgiften ska
vi titta n¨
armre p˚
a DNS, ett protokoll som inte skickar data i ett format som ¨ar l¨asbart rakt av.
2.10.1
Deluppgift 1
Som vanligt anv¨
ands tv˚
a olika tillv¨
agag˚
angss¨att p˚
a Linux/OS X och Windows. B˚
ada beskrivs i uppgiften,
anv¨
and den som ¨
ar r¨
att f¨
or ditt operativsystem. Vi ska ocks˚
a anv¨anda Wireshark f¨or att kunna inspektera
trafiken p˚
a paketniv˚
a.
1) Starta Wireshark och starta en ny ”capture” p˚
a det interface som du anv¨ander f¨or att ansluta till
internet.
2) Start en terminal/kommandoprompt8 och skriv in f¨oljande:
Windows ipconfig /flushdns
Mac dscacheutil -flushcache
Linux /etc/rc.d/init.d/nscd restart Om du saknar nscd b¨or du kunna forts¨atta till n¨asta steg.
3) Om du k¨
or Linux/OS X (Mac) skriver du dig dsv.su.se. Om du ist¨allet k¨or Windows skriver du
nslookup dsv.su.se.
4) St¨
ang av din ”capture” i Wireshark och applicera ett filter f¨or att bara se DNS-trafik.
5) Leta p˚
a paketet som inneh˚
aller ”Standard query” f¨or dsv.su.se.
(a) Vilken DNS-typ fr˚
agar du efter?
(b) Vad f˚
ar du f¨
or svar i terminalen/kommandoprompten n¨ar du k¨or dig/nslookup?
(c) Vilket transportprotokoll anv¨
ander DNS?
(d) Mellan vilka portar skickas data?
8 http://windows.microsoft.com/sv-SE/windows-vista/Command-Prompt-frequently-asked-questions
Datorsystem
3
3.1
Laboration 4
7
Bra att veta
Telnet i terminalen
Om man anv¨
ander Linux eller OS X (Mac) kan man anv¨anda kommandot telnet f¨or att ansluta till en
webbserver. Kommandot anv¨
ander man genom att skriva telnet adress port i terminalf¨onstret. Exempel:
telnet da.dsv.su.se 80. Observera att det ¨
ar mellanslag mellan telnet och adressen, samt mellan adressen
och porten.
3.2
PuTTY
Om man anv¨
ander Windows g˚
ar det f¨
orvisso att installera kommandot telnet i kommandopromptern, men
det ¨
ar betydligt enklare att ladda hem programmet PuTTY. PuTTY finns att ladda ned p˚
a sidan http://
www.chiark.greenend.org.uk/~sgtatham/putty/download.html och du b¨or v¨alja den versionen som
bara heter PuTTY (putty.ext).
N¨
ar du ska anv¨
anda PuTTY f¨
or denna labb finns det ett par inst¨allningar som beh¨over g¨oras f¨or att
allt ska fungera ordentligt. P˚
a bilden nedan finns fyra f¨alt markerade med inst¨allningar som ¨ar l¨ampliga
f¨
or delar av labben. Host name anger adressen som man ska ansluta till och Port anger portnumret.
Under valen f¨
or Connection type ska ni v¨alja Raw, eftersom det annars kommer skickas extra data som
webbservern inte f¨
orst˚
ar. Under Close window on exit b¨or du v¨alja Never, eftersom PuTTY annars
kommer st¨
anga f¨
onstret s˚
a snart anslutningen st¨angs (vilket den g¨or n¨ar webbservern skickat ett svar).
Gl¨
ommer ni att klicka i Never kommer ni inte hinna l¨asa svaret fr˚
an webbl¨asaren innan anslutningen
st¨
angs.
Figur 1: Startsk¨armen f¨or PuTTY
Datorsystem
A
Laboration 4
8
Att anv¨
anda svenska bokst¨
aver i e-post
E-post kodar inneh˚
allet i ett meddelande enligt standarden American Standard Code for Information
Interchange (ASCII). Som kanske m¨
arks av namnet a¨r standarden amerikansk, och d¨arf¨or finns det inga
¨
svenska tecken i den. Aven
andra europeiska tecken saknas, och man har d¨arf¨or ut¨okat ASCII i flera olika
varianter d¨
ar flera av dessa varianter inneh˚
aller svenska tecken.
F¨
or att kunna skicka e-post med annan teckenkodning ¨an standard ASCII eller som inneh˚
aller bilagor
finns en standard vid namn Multipurpose Internet Mail Extensions (MIME). MIME beskriver hur man
anger i, bland annat, e-post att man anv¨
ander en annan eller flera teckenkodningar. I e-post betyder det
att man anger vissa MIME-relaterade uppgifter i DATA-delen av ett meddelande.
N¨
ar det g¨
aller kodning (encoding p˚
a engelska) finns det flera olika varianter. F¨orst v¨aljer man ett s¨att
att koda ¨
overf¨
oringen av data (Content-Transfer-Encoding), och d¨ar finns ett flertal att v¨alja mellan.
Ska man bara koda text kan man bland annat anv¨anda quoted-printable, vilket ocks˚
a rekommenderas
om ni vill anv¨
anda svenska tecken i denna labb.
Man anger ocks˚
a vilken typ av data (Content-Type) man skickar, och de tv˚
a huvudtyperna ¨ar text
eller bin¨
ar data. H¨
ar skickar vi text, och d˚
a brukar man ocks˚
a tala om vilken teckenkodning man anv¨ander.
¨
Aven
h¨
ar finns flera att v¨
alja mellan, bland annat UTF-8 eller iso-8859-1.
Mer om detta kan du l¨
asa h¨
ar:
• MIME - http://en.wikipedia.org/wiki/MIME
• Quoted-printable - http://techhelp.santovec.us/decode.htm#qp
• Encoding/decoding quoted-printable - http://www.motobit.com/util/quoted-printable-encoder.
asp