ЕЛЕКТРОННА ПОЩА 1 Печат

ЕЛЕКТРОННА ПОЩА

Електронната поща е най-разпространената услуга в компютърните мрежи. Най-известните протоколи за тази услуга са:

SMTP - Simple Mail Transfer Protocol

POP - Post Office Protocol

MIME - Multipurpose Internet Mail Extension

Модел на електронната поща

User Agent и Transfer Agent са термини, характерни за протоколите на електронната поща.

User Agent - нормално име на програма за обработка на електронна поща. Нейните основни функции са:

1) визуализиране на пристигналите писма, които чакат в пощенската кутия (mailbox) на потребителя.

2) получаване и изпращане на писма.

3) съхранява пристигащата и изпратена поща в локални файлове.

4) предоставяне на добър редактор за въвеждане текста на писмо.

5) подсказване за предмета на писмото и др.

Пример за User Agent - програмата Pine за Linux. Стилът зависи от конкретните предпочитания и подлежи на стандартизация.

User Agent изпраща писмо като го оформя като съобщение и го запише в опашката на изпращаните съобщения.

Message Transfer Agent (MTA) е приложна програма, която е отговорна за установяване на комуникационна връзка с отдалечените хостове и предаде към тях пощата от опашката на съобщенията. Пощата може да бъде предадена директно между изпращащия MTA, за който е предназначена.Или може да бъде препращана (ретрансмирана) от междинни MTA. Когато писмото се препредава, съдържащото го съобщение се предава към междинния хост (Relay Host), където се съхранява до подходящ момент от време, когато може да бъде изпратено по-нататък.

В приемащия хост пощата се помества във входната опашка и след това се прехвърля в паметта, заделена за пощенска кутия на потребителя. Когато потребителя в приемащия хост стартира User Agent той извежда информация за всички пристигнали и чакащи в пощенската кутия писма.

Имена

В електронната поща потребителите се идентифицират чрез имена, имащи следната основна форма:

userid@host_domain_name

userid - идентификатор на потребителя.

host_domain_name - име на хоста.

ПРОТОКОЛ ЗА ЕЛЕКТРОННА ПОЩА SMTP

SMTP е протокол, разработен за използване от програмите за работа с електронна поща. Той е отговорен за приджижването на пощата между хостовете.

1) SMTP използва TCP като транспортен протокол.

2) SMTP осигурява доставката на пощата от край до край (end-to-end).

3) Изпълнява две роли - изпращане и получаване. Програмата, изпълняваща SMTP изпращане се нарича SMTP клиент. Програмата, изпълняваща SMTP получаване се нарича SMTP сървър.

4) Клиентът установява TCP връзка със сървъра, чийто номер на порт е 25.

5) След установяване на връзката клиентът и сървърът обменят последователност от команди и отговори, т.е осъществяват диалог.

Основните команди на протокола SMTP са:

*0                   Hello - идентифицира хоста на изпращащия SMTP;

*1                   Mail From - идентифицира адреса на изпращача;

*2                   RCPT to - идентифицира адреса на получателя;

*3                   Data - започва предаване на писмо;

*4                   Help - запитване за помощ;

*5                   Quit - край на SMTP сесията.

След установяване на TCP връзка между клиента и сървъра, диалога между тях протича по следния начин:

1. Идентификация на хоста на клиента. Клиента изпраща команда Hello, съдържаща името на неговия хост. Сървърът връща отговор, в който указва възможността за приемане на писмото.

2. Идентифициране на подателя на писмото. Ако сървъра може да приеме писмото, клиентът изпраща команда Mail From, съдържаща името на потребителя, подател на писмото.

3. Идентифициране на получателя на писмото. Клиентът задава една или повече команди RCPT to, които съдържат имената на получателите на писмото.

4. Предаване на данните на писмото. Предаването на самото писмо се извършва от клиента чрез командата Data.

5. Отговор на сървъра. На всяка команда сървърът изпраща съответен отговор. Протоколът SMTP гарантира получаването на писмото в отдалечения хост, но не осигурява процедура, която да гарантира получаването му от потребителя, за когото е предназначено. Когато обменът приключи TCP връзката може да бъде използвана за прехвърляне на друго писмо. Ако няма повече писма за изпращане, връзката може да бъде затворена.

6. Затваряне на връзката. Клиентът затваря връзката чрез командата Quit. Двете страни изпълняват TCP операцията Close, с което връзката се прекъсва.

SMTP добавя към писмото информация:

- от кого е изпратено;

- дата и време на изпращане;

- дата и време на получаване в компютъра на получателя;

- запис на всички препредаващи хостове, чрез които е преминало писмото. В този запис при всяко пристигане в препредаващ хост се отбелязва:

*6                   идентификатор на хоста - изпращач;

*7                   идентификатор на хоста - получател;

*8                   дата и време на получаване.

ПРОТОКОЛ РОР (POST OFFICE PROTOKOL)

Използва се за да се прехвърли съдържанието на пощенската кутия на потребителя от пощенския сървър към системата на потребитля. Има две версии на протокола - POP 2 и POP 3. Двата използват различни команди.

Функциониране: Потребителя изпълнява Telnet към хоста на пощенския сървър и задава съответните РОР команди, работейки с Telnet.

РОР 2 команди:

- HELLO - задава името и паролата на пощенската кутия;

- READ - четене на писмата от пощенската кутия;

- ACK - потвърждаване получаването на писмо;

- QUIT - прекратяване на връзката.

ОБСЛУЖВАНЕ ИМЕНАТА НА ДОМЕЙНИТЕ

Имена и адреси.

Обслужването на имената на домейните DNS (Domain Name Service) е протокол на приложния слой. DNS е услуга за именоване, тъй като извлича и осигурява информация за имената и адресите на хостовете в дадена мрежа. Всеки хост в Интернет, свързан към TCP/IP мрежа се идентифицира с уникален 32 битов IP адрес. Освен чрез IP адрес всеки хост се идентифицира и със своето име. В сравнение с числовите адреси имената са по-лесни за запомняне и писане. Те се присвояват за удобство на хората, но мрежовия софтуер не се нуждае от тях.

Образуването на имената се плучава на база на йерархична структура. Интернет се разделя на части, наречени домейни. Имена в рамките на домейн се присвояват от администратора на домейна. Той може да създава подомейни, като те също могат да бъдат разделени и т.н. до необходимата дълбочина. На всеки домейн се присвоява име. То съдържа информация за държавата, в която се намира даден хост и за организацията към която принадлежи.

Домейните от най-високо ниво биват географски и организационни. Географските домейни се отнасят за страните в целия свят и се идентифицират със стандартен двубуквен код. Например - bg - България, ru - Русия, uk - Великобритания и др.

В САЩ и други страни домейните от най-високо ниво имат кодове, отговарящи на различните видове организации - com (комерсиален), edu (образователен), net (мрежови оператори), gov (правителство) и др.

Така нареченото напълно определено име на хоста се състои от името на домейна, името на поддомейна и т.н към които хоста принадлежи. Следователно имената се конструират като верига от конкатенирани имена на домейн и поддомейни, разделени с точка.

Пример: linux . tu-varna . acad . bg

Най- вдясно се намира името на домейна от най-високо ниво, а най-вляво името на хоста.

Йерархично дърво на домейните

Имената и IP адресите са взаимозаменяеми. Например за Telnet сесия може да се въведе или IP адреса или името на хоста.

Telnet 39.13.4.97  е еквивалентно на Telnet info . ripe . net

Преди да се осъществи връзката името се преобразува в IP адрес. Има два метода за това:

1) таблица на хостовете (по-стар метод);

2) разпределена база данни, наречена "Обслужване имената на домейните" (Domain Name Service - DNS).

Таблица на хостовете

Тя е обикновен текстов файл, който съпоставя IP адреси на имената на хостовете. Всеки ред на таблицата съдържа IP адрес следван от едно или повече имена, отговарящи на този адрес.

Пример:

194.141.0.3                            amigo.acad.bg      mailhost

127.0.0.1                localhost

194.141.0.2                            bgcict.acad.bg

194.141.0.9                            unicom.acad.bg   ftp

Недостатък:

- системите свързани с Интернет трябва да имат прекалено голяма таблица;

- таблицата трябва непрекъснато да се актуализира.

Целесъобразно е да се използва:

- в малки мрежи, които не са свързани в Интернет, тъй като информацията за хостовете в тях се мени рядко и не е необходимо те да комуникират с отдалечени хостове през TCP/IP.

- повечето системи имат малка таблица с имената и адресите на важни машини в локалната мрежа. Тя се използва, когато DNS-а не работи, например при стартиране на системата.

Обслужване имената на домейните - DNS

1) DNS може да съдържа практически неограничен брой хостове. Разрастването на базата данни не е проблем.

2) DNS гарантира, че информацията за новите хостове ще бъде разпространена в цялата мрежа, когато това е необходимо. При това:

- информацията се разпространява автоматично;

- разпространява се само към хостове, които имат нужда от нея.

3) DNS е разпределена (а не централизирана) йерархична система за преобразуване на имената в IP адреси. Информацията е разпределена между хиляди сървъри на имена (Name Server), организирани в йерархия подобна на файлова система. Тя съответства на йерархичното ниво на домейните.

DNS има един домейн - корен (Root Domain) на върха на йерархията. Той се обслужва от група сървъри на имена, наречени Коренни сървъри (Root Servers). Само коренните сървъри имат пълна информация за домейните от първо ниво.

Домейните от второ ниво се  обслужват от сървъри за това ниво.

Никой сървър (дори и коренните) нямат информация за всички домейни. Но коренните сървъри поддържат указатели към сървърите, обслужващи домейните от второ ниво. Така те ако не могат да обслужат дадена заявка за преобразуване на име, те знаят към кого да се обърнат.

Сървърите на имена се клацифицират в следните категории:

*9                  главен сървър (master server). Главните сървъри поддържат всички данни, отнасящи се до даден домейн. Те са най-достоверния източник с информация за него и понякога се наричат отговорни сървъри. Данните за даден домейн трябва да са инсталирани поне на два сървъра като един от тях е определен като първичен, а останалите като вторични. Вторичния сървър съдържа резервно копие на данните, в случай че първия отпадне или е претоварен.

*10               първичен сървър (primary server). Това е сървъра, от който се извличат всички данни за даден домейн. За даден домейн има само един първичен сървър. Данните се зареждат от администратора на домейна.

*11               вторични сървъри (secondary servers). Те прехвърлят цялата база данни от първичните периодично. Файлът, който съдържа базата данни за даден домейн се нарича зонов файл.

*12               кеширащи сървъри. Те получават отговорите на всички запитвания за имена от други сървъри и ги запазват. Те използват кешираната информация при следващи запитвания, на които вече те самите отговарят. Кеширането е единствената техника за изграждането на базата данни за домейна при този тип сървъри. Те са неотговорни сървъри, защото информацията им е "от втора ръка".

При добавяне на нова система към мрежата просто се модифицира базата данни за DNS на първичния сървър. След това информацията автоматично се разпространява към другите сървъри чрез прехвърляне на зоновия файл, или чрез кеширане на отделните отговори.

В DNS програмата, която издава заявка за разрешение на името (която задава въпросите) се нарича транслатор на имена. Той е библиотека от програмни модули, които се свързват към всяка програма, която има нужда да направи съответствие между име и адрес. Чрез данни от тази библиотека се извършват запитвания към DNS сървърите. Всички компютри използват транслатор на имена, но не на всички работи DNS сървър. Компютър, който няма DNS сървър разчита на други системи за всички услуги, свързани с имена. Той се нарича Resover - Only система, т.е. такава която има само транслатор на имена.