The Simple Mail Transfer Protocol, og du
En av de mest attraktive delene av internett og datamaskiner for mange mennesker er muligheten til å sende og motta e-post. Hvordan dette sending og mottak av e-post fungerer selv er i stor grad et mysterium for mange. Hva skal vi snakke om i denne artikkelen er protokollen ansvarlig for sending av e-post. At protokollen ville være SMTP, eller som det også kalles, Simple Mail Transfer Protocol. Denne protokollen skal lytte på port 25, eller mer presist SMTP-serveren vil bli lyttet til klienttilkoblinger på port 25. Den mest kjente e-postserver i bruk i dag er Microsoft Exchange.
Vel, som alltid jeg prøver å bruke den OSI referansemodell for å kartlegge protokoller til, og dette er intet unntak. SMTP ville i seg selv være et program laget protokollen. Den bruker TCP som transportprotokoll, og i sin tur bruker IP for ruting. Mye som HTTP, har SMTP-protokollen flere statuskoder for å forbedre det er funksjonalitet. Disse statuskodene brukes til å videresende spesifikke forhold mellom klient og server. Ja du er faktisk rett! Denne protokollen er i overensstemmelse med den mye omtalte klient /server modell. Tenk på Microsoft Outlook som klient, og Microsoft Exchange som server.
Videre til statuskoder som SMTP bruker det finnes også en rekke SMTP-kommandoer. Kommandoer som "AUTH" for autentisering, og «EHLO» for utvidet hallo. Disse kommandoene er den måten at e-postklienten og server snakke med hverandre. Jeg har alltid si at det å se er å tro så la oss se et eksempel på klienten og serveren å snakke med hverandre.
Gi meg pakker!
Vi kan se i under bemerket at SMTP kommandopakken "HELO" er til stede. Denne kommandoen er utstedt når TCP /IP tre håndtrykk er fullført mellom klienten og serveren. Hva betyr HELLO egentlig mener om. Vel det er faktisk ganske mye står for hva det høres ut som. E-postklienten er å si hei og følge HELO kommando er domenet at klienten kommer fra. Vi kan se domenet i under bemerket ASCII innhold og det er uthevet for klarhet.
Kommandoen HELLO har blitt erstattet av den EHLO kommandoen. EHLO står for "utvidet hallo". Når EHLO kommandoen er sendt, vil dette føre til at e-postserveren til å annonsere alle sine funksjoner. Funksjoner som å være i stand til å transportere andre tegn så trygge ASCII-tegn. I virkeligheten skjønt, har EHLO ikke erstattet HELO som det ville innebære at HELLO ikke lenger brukes. Det er veldig mye i bruk i dag, og alle e-postservere er fortsatt nødvendig å akseptere en enkel HELLO.
06/09/2005 06: 10: 46,595221 192.168.1.100.40565 > 192.168.1.200.25: P [tcp sum ok] 159505509: 159 505 543 plakater (34) ack 578397676 seier 33304 < nop, NOP, tidsstempel 310237481 108030715 > (DF) (ttl 52, id 34293, len 86)
0x0000 4500 0056 85f5 4000 3406 5235 c0a8 0164 E..V .. @. 4.R5B ...
0x0010 c0a8 01c8 9e75 0019 0981 dc65 2 279 a5ec ..... u ..... e "y ..
0x0020 8018 8218 0449 0000 0101 080a 127d d929 ..... jeg .......}.)
0x0030 0670 6afb 4845 4c4f 2 077 6562 3334 3231 .pj. HELLO
. web3421
0x0040 332e 6d61 696c 2e6d 7564 2e79 6168 6f6f 3.mail.mud.yahoo
0x0050 2e63 6f6d 0d0a .com
..
Vel, hva som skjer etter HELLO har blitt utstedt til e-postserveren? Hva skjer nå er at e-postklienten vil si at det har post fra noen. Vi kan se dette i under bemerket pakken. Jeg har understreket "MAIL FROM" i ASCII innhold. tilbakegang tilbake litt her til TCP /IP vi kan se fra TCP sekvensnummer i over og under pakke at TCP sekvensnumrene følger hverandre, som de burde. Vi kan også slutte fra dette at mailserveren har ennå til å erkjenne enten pakke som vist ovenfor og nedenfor.
06/09/2005 06: 10: 46,641311 192.168.1.100.40565 > 192.168.1.200.25: P [tcp sum ok] 159505543: 159 505 580 plakater (37) ack 578397699 seier 33304 < nop, NOP, tidsstempel 310237486
108030720
> (DF) (ttl 52, id 35311, len 89)
0x0000 4
500 0059 89ef 4000 34 06
4e38 c0a8 0164 E..Y .. @. 4.N8B ...
0x0010 c0a8 01c8 9e75 0019 0981 dc87 2279 a603 ..... u ...... "y ..
0x0020 8
018 8218 053c 0000 0101
080a
127d d92e
..... < .......} ..
0x0030 0670 6b00
4d41
494c 2 046 524f 4d3a xxxx
.pk MAIL.FROM Bilde:. < x
0x0040 xxxx xxxx xxxx xxxx xxxx xxxx 4079 6168
xxxxxxxxxxxx yah
0x0050 6f6f 2e63 6f6d 3e0d 0a
oo.com >. ..
Nå kan undersøke pakken over en litt lenger Noen raske skritt for å orientere oss er som følger vi. vet at vi har en IP-header i starten, som bruker IPv4 som erklært av den understrekede 4. Også kan vi se at transportprotokollen er TCP, som erklært av den understrekede 06 i IP header. Fra understreket 8 i TCP header vi ser at vi har 12 byte av TCP vil valg. Fra bytes 4d41 og utover er der vi har vår faktiske SMTP applikasjonslaget data start. Jeg har uthevet de bytes.
Nok en gang kan ta en mulighet til å backtrack litt til TCP. I pakken ovenfor, har vi to ulike TCP alternativer. Spesielt har vi NOP (ingen operasjon) og tidsstempel, som det er vist i ASCII ovenfor. Nå kan ryker ut disse alternativene på hex nivå.
Fra bytes 0101 vist ovenfor, og som er understreket, tilsvarer det alternativet TCP 01 og lengden av nevnte alternativ er 01 byte i lengde ie: en byte. Etter dette har vi byte 08, som representerer tidsstempelet alternativet som sett på bunnen av TCP /IP og tcpdump flyger funnet på bunnen av denne siden. Etter dette byte er byte 0a som representerer lengden av tidsstempelet alternativet som målt i byte. 0a tilsvarer ti i desimal. Til slutt, etter dette er bytes 127d d92e, og dette representerer den første systemtidverdi av 310237486. Deretter er bytes 0670 6b00, og som representerer den endelige systemtidverdi av 108030720. Den tidsstempel alternativet er ikke en som du alltid se så jeg ønsket å benytte anledningen til å vise det til deg, og hvordan det ser ut.
Kan komme tilbake til det!
Akkurat da, la oss komme tilbake til å diskutere SMTP seg selv og hvordan det fungerer. Vi sist dekket det andre trinnet som en klient tar når du sender e-post til en e-postserver. Dette vises i ovennevnte pakke av "MAIL FROM:" ASCII innhold. Hva er neste skjønt i kjeden av hendelser? Vel, den neste pakken vil inneholde selve e-postmeldingen selv. Inneholdt også ville være epost kropp og header felt. Med "e kropp" Jeg mener det faktiske innholdet i e-posten selv. Det siste trinnet tatt av klienten er "QUIT" kommandoen, og dermed kutte forbindelsen til webserveren.
Sammendrag
Det er, i et nøtteskall, er hvordan SMTP fungerer og hvordan den leverer post for deg. Det er selvsagt mer til SMTP så hva jeg har nevnt her. Jeg vil absolutt oppfordre deg til å lese den aktuelle RFC vedrørende SMTP. Pokker, kan du selv grensesnitt med en mail server direkte hvis du ønsker, og leke med utstede kommandoer til den. Jeg håper at denne smaken av SMTP er nok til å skjerpe appetitten, og kanskje lede deg til videre lesing på denne protokollen. Som alltid Jeg håper denne artikkelen var til nytte for, og jeg har alltid velkommen tilbakemeldinger. Til neste gang!