You are on page 1of 37

Комуникациски технологии

Протоколи на апликациско ниво


DNS, FTP, SMTP, POP3, HTTP
Вон. проф. д-р Марко Порјазоски

Книга „Податочни и компјутерски комуникации“, Сталингс,


Глава: 22, 23
DNS: Domain Name System
Едноставен DNS пример
root name server

хостот surf.eurecom.fr
бара IP адреса на
gaia.cs.umass.edu 2 4
5 3
1. Контактира со локалниотDNS
server, dns.eurecom.fr
2. dns.eurecom.fr
контактира со root name authorititive name server
local name server dns.umass.edu
server, ако е потребно dns.eurecom.fr
3. root name server го
1 6
контактира authoritative name
server, dns.umass.edu, ако
е потребно
requesting host gaia.cs.umass.edu
surf.eurecom.fr
DNS пример
root name
server
Root name server:
Може да не го знае 2 6
authoritative name server 7 3
Може да го знае
intermediate name server:
кого да контактира за да
го најде authoritative local name intermediate name server
name server dns.umass.edu
server 5
dns.eurecom.fr 4
1 8
authoritative name server
dns.cs.umass.edu
requesting
host
surf.eurecom.fr gaia.cs.umass.edu
DNS записи
DNS: дистрибуирана дата-база чува resource records (RR)
RR format: (name, value, type, ttl)

• Type=A • Type=CNAME
– name е hostname – name is alias name for some
– value е IP адреса “cannonical” (the real) name
www.ibm.com е всушност
Type=NS
servereast.backup2.ibm.com
name е domain (пример,
ova.com) – value е cannonical name
value е IP адреса на
authoritative name server за • Type=MX
овој домен – value е име на mailserver
асоцирано со name
DNS протокол, пораки
DNS протокол : query и reply пораки, двете со ист message format

Name, type
fields
за query
RRs за
одговор на
query
Записи за
authoritative
servers
Додатна корисна
информација
што може да се
искористи
FTP: File Transfer Protocol

FTP Пренос на фајлови


FTP FTP
Кориснички
интерфејс
клиент сервер
Корисник кај
хостот локален далечен
file system file system
Пренос на фајлови од/кон далечен хост
Клиент/сервер модел
клиент: страна која го иницира преносот (од/кон далечниот хост)
сервер: далечен хост
ftp стандард: RFC 959,
ftp сервер: порта 21
Карактеристики на FTP:
Интерактивен пристап
Спецификација на форматот (на пример, ASCII)
Автентикација: пристапот се регулира со корисничко име и лозинка
FTP: користи посебни контролни и податочни
конекции
FTP клиентот го контактира FTP TCP контролна конекција
серверот на порта 21, специфицирајќи го порта 21
TCP како транспортен протокол
Клиентот обезбедува авторизација преку TCP податочна конекција
контролна конекција FTP порта 20 FTP
клиент сервер
Клиентот пребарува (browses) по
оддалечениот директориум со праќање • Серверот отвора втора TCP
команди преку контролната конекција податочна конекција за да
прати друг фајл.
Кога серверот ќе добие команда за
трансфер на фајл, серверот отвора • Контролна конекција: “out of
податочна TCP конекција кон клиентот band”
По испраќањето на еден фајл, серверот • FTP серверот ја одржува
ја затвора (close) конекцијата.
“состојбата”: тековен
директориум, претходна
автентикација.
FTP команди и одговори
Примери на FTP Примери за повратни
команди: кодови (return codes)
Се испраќа како ASCII текст status code и phrase (слично
преку контролен канал како во HTTP)
331 Username OK,
USER username
password се бара
PASS password 125 податочната
LIST враќа листа на фајлови конекција веќе е
во тековниот директориум отворена; започнува
пренос на податоци
RETR filename симнува
(gets) фајл со дадено име 425 не може да се
отвори податочна
STOR filename става (puts) конекција
фајл на оддалечениот хост
452 грешка при
запишување на фајл
FTP команди и одговори
Електронска пошта излезен
бафер на пораки

Три главни компоненти: mailbox

Кориснички агенти агент


mail сервери mail
simple mail transfer protocol: сервер
агент
SMTP SMTP mail
Кориснички агент: server
SMTP агент
a.k.a. “mail читач”
Креирање, едитирање, читање SMTP
на mail пораки mail
сервер агент
Примери: Eudora, Outlook,
Outlook Express
Појдовни, дојдовни пораки се агент
складираат во серверот
агент

Проф. д-р Тони Јаневски,


Internet tehnologii
Електронска пошта: mail сервери
Mail сервери:
Mailbox-от содржи дојдовни пораки за корисникот
Бафер за појдовни mail пораки
SMTP протокол меѓу mail серверите за праќање на email пораки
клиент: mail серверот што праќа
“сервер”: mail серверот што прима порака во моментот

Електронска пошта: SMTP [RFC 2821]


Користи TCP за доверлив пренос на email порака од клиент до сервер, порта 25
Директен пренос на пораките: серверот праќач кон серверот примач
Има три фази на преносот на пораките:
handshaking (greeting)
пренос на пораки
closure
Команда/одговор интеракција:
команди: ASCII текст
одговор: статусен код и фраза
Пораките мораат да бидат во 7-битен ASCII
Сценарио: Трпе праќа порака на Горан
1) Трпе користи UA за да 4) SMTP клиентот ја праќа
компонира порака и “to” пораката на Трпе преку TCP
goran@fakultet.edu.mk конекцијата
2) UA на Трпе праќа порака до 5) Mail серверот на Горан ја
неговиот mail сервер: пораката сместува пораката во mailbox
е сместена во бафер на Горан
3) Клиентската страна на SMTP 6) Горан со помош на својот
отвора TCP конекција со mail кориснички агент ја чита
серверот на Горан пораката

1 mail
mail
сервер сервер
2 агент
агент 3 6
4 5
Пример на SMTP интеракција
S = сервер (server); C = клиент (client)
S: 220 fakultet.edu.mk
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <trpe@crepes.fr>
S: 250 trpe@crepes.fr... Sender ok
C: RCPT TO: <goran@fakultet.edu.mk>
S: 250 goran@fakultet.edu.mk ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Dali doagas?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 fakultet.edu.mk closing connection
Формат на mail порака

SMTP: протокол за размена на Заглавие (header)


празна
email пораки
линија
RFC 822: стандард за форматот
на текстуални пораки:
Линии на заглавието, пример, Тело (body)
To:
From:
Subject:
(Различно од SMTP командите)
Тело (body)
“пораката”, само со ASCII
карактери
Формат на порака: мултимедиски екстензии
MIME: multimedia mail extension, RFC 2045, 2056
Додатни линии во заглавието на пораката го декларираат
MIME типот на содржина

From: trpe@crepes.fr
MIME верзија
To: goran@fakultet.edu.mk
Subject: Slika od planina.
Метод употребен MIME-Version: 1.0
за кодирање на податоците
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
Мултимедиски податоци
тип, подтип,
декларација на параметри base64 encoded data .....
.........................
......base64 encoded data
Кодирани податоци
MIME типови
Content-Type: type/subtype; parameters

Текст Видео
Примери на подтипови: plain, Примери на подтипови : mpeg,
html quicktime

Слики Апликации
Примери на подтипови: jpeg, gif Другите податоци мораат да
бидат процесирани од
соодветната апликација за да
Аудио може да се види содржината
Примери на подтипови: basic (8- Примери на подтипови :
битен u-law кодиран), msword, octet-stream
32kadpcm (32 kbps кодирање)
Формат на порака составена од повеќе
делови (multipart)
Протоколи за пристап до mail
SMTP SMTP пристапен
протокол агент
агент

mail сервер mail сервер


праќач примач

SMTP: врши достава/складирање кон серверот примач


Пристапен протокол за mail: да се добие пораката од серверот
POP: Post Office Protocol [RFC 1939]
авторизација (агент <--> сервер) и download
IMAP: Internet Mail Access Protocol [RFC 1730]
Повеќе својства (покомплексен)
Манипулација со складираните пораки на серверот
HTTP: Hotmail , Yahoo! Mail, итн.
POP3 принцип на работа
Web и HTTP
• Веб страницата е составена од објекти: текст, слики (JPEG, GIF, итн.), Јава аплети:
– Веб страните кои содржат комбинација на текст и други објекти се претставуваат со
помош на HyperText Markup Language – HTML
– HTML документот содржи фајл со текст заедно со т.н. tags кои го одредуваат начинот
на прикажување на веб страната (пример: <b>ало</b> прави bold ало)

• Секоја веб страница има уникатен идентификатор -URL (Uniform Resource Locator)
– Пример за URL: http://www.lokacija.mk/tk/strana.html
• Првиот дел го специфицира протоколот: http
• Хостот-сервер е: www.lokacija.mk
• Патот до веб страницата на тој сервер е: /tk/strana.html
– Генерален пример за http URL:
http: // imenahost [:porta] / pateka [; parametri] [? query]
Пример за web страна

<html>
<body>
<p> Slika 1:
Slika 1:
<img src=“slika01.gif" width="144" height="50">
</p> Slika 2:
<p>
Slika 2:
<img src=“slika02.gif" width="48" height="48">
</p> Slika 3:
<p>
Slika 3:
<img src=“slika03.gif" width=“64" height="48">
</p>
</body>
</html>
22
HTTP комуникација
Се користи TCP:
Клиентот иницира TCP конекција (креира сокет) кон серверот, порта 80
Серверот ја прифаќа TCP конекцијата од клиентот
HTTP пораки (на апликациско ниво) се разменуваат меѓу browser-от (HTTP
клиентот) и веб серверот (HTTP сервер)
TCP конекцијата се затвара
HTTP е “stateless”
Серверот не води евиденција за поминатите барања (request-и) од клиентот

HTTP конекции можат да бидат:


Постојани (persistent)
Повеќе објекти може да се пратат преку една TCP конекција (клиент - сервер).
HTTP/1.1 користи постојани конекции во default мод
Непостојани (non-persistent)
Најмногу еден објект може да се прати преку TCP конекција.
HTTP/1.0 користи nonpersistent HTTP
Преглед на HTTP
HTTP: hypertext transfer protocol
Протокол на апликациско ниво
HT
client/server модел TP
req
PC HT ues
client: пребарувач кој ги бара, ги TP t
со IE resp
прима, и ги прикажува Web ons
e
објектите
server: Web сервер кој ги испраќа
објектите кои се побарани од q uest
e
T Pr n se Web
клиентот H T p o
P res server
HTTP 1.0: RFC 1945 T
HT
HTTP 1.1: RFC 2068

PC
со Mozila

24
HTTP пораки
• HTTP има два типа пораки: request (барање) и response (одговор)
• Пребарувачот (browser) праќа HTTP GET request до веб серверот за да добие
конкретна страна од веб серверот со конкретно URL:
– Барањето се состои од линија текст која започнува со клучниот збор GET и по
него следува URL-то и бројот на HTTP верзијата. На пример:
• GET http://www.feit.ukim.edu.mk/test/ HTTP/1.1
– Откако е воспоставена TCP врската, нема потреба потоа да се праќа целата
URL, на пример:
• GET /test/ HTTP/1.0
HTTP се користи меѓу веб пребарувач и веб сервер. Пребарувачот праќа
барање (request) по што серверот враќа одговор (response).

HTTP/1.0 HTTP/1.1
• GET • GET, POST, HEAD
• POST • PUT – го запишува фајлот на локација
• HEAD – бара од серверот да не му специфицирана во URL полето
праќа одговор за даден објект • DELETE – го брише фајлот специфициран
во URL полето
HTTP пораки
• Одговор пораки за грешка (error messages)
– Кога ќе добие неправилно барање, веб серверот му враќа на веб клиентот порака за
грешка со даден код за грешка кај HTTP
• Пораката за грешка е во HTML формат за да може да ја прикаже клиентот
• Постојаните конекции и должините на пораките
– За да може да опстои перзистентна TCP врска за HTTP, потребно е серверот да ја праќа
должината на одговорот пред секој одговор (response). Ако не ја знае должината серверот
го информира клиентот за тоа, го праќа одговорот и ја затвара TCP конекцијата.
– Како веб серверот ја праќа информацијата за должината на пораките?
• HTTP го позајмува основниот формат од email (RFC 822), секоја порака има заглавие
(header), празна линија (blank line) и содржина (data)
• Секоја линија во заглавието содржи клучен збор (keyword), потоа две точки (:) и
информација

Заглавие (Header) Значење (Meaning)


Content-Length Големина во октети (Size of Item)
Content-Type Тип на содржината (Type of the item)
Content-Encoding Тип кодирање (Encoding used for item)
Content-Language Јазик или јазици (Language(s) used in item)
Пример на HTTP response порака
HTTP/1.1 200 OK
Date: Fri, Wed, 11 Apr 2007 12:11:13 GMT+01:00
Server: Apache/1.3.29 (FEIT)
HTTP Last-Modified: Wed, 11 Apr 2007 11:15:36 GMT+01:00
заглавие ETag: "58db37-89-407fb25f"
Accept-Ranges: bytes
Content-Length: 137
Connection: close
Content-Type: text/html
Празна линија
<html>
<body>
<p>Zdravo</p>
Податоци <img src=“smiley.gif">
</body>
</html>
HTTP принцип на работа
Клеинтот отвара TCP
конекција со серверот
Клиентот испраќа барање
до серверот за одреден
ресурс. Барањето се состои
од HTTP заглавје и податоци
ако корисникот доставува податоци кон серверот.
Формат на HTTP порака
HTTP пораката има почетна линија,
0 или неколку линии со заглавја и тело.
Почетната линија на HTTP барањето
(HTTP request) се состои од HTTP метода,
URL патека и HTTP верзија,
на пример
GET /page1.html HTTP/1.1
Почетната редица на одговорот се состои
од HTTP верзија, код на статус и
причина (за таквиот исход на одговорот)
HTTP /1.1 200 OK
На сликата десно горе е даден пример за
HTTP барање, а на сликата десно долу
пример за HTTP одговор.
HTTP заглавје
HTTP заглавјата ја имаат синтаксата:
name: value
Постојат неколку предефинирани заглавја, а дозволено е да се
додаваат и нови.
Примери за заглавја во HTTP барање:
Host – адресата или името на доменот на примачот (серверот)
User-Agent – користениот прелистувач на страната на корисникот и
оперативниот систем.
Content-Length – Должина на телото на пораката во Bytes.
Connection – keep-alive
Примери за заглавја во одговорот:
Content-Length – должината на телото на пораката во Bytes
Content-Type – тип на податоци што се испраќаат , му помагаат на
примачот да ја интерпретира содржината
text/html HTML markup
text/plain Plain text
image/png png image
video/ogg ogg video.
HTTP методи
HTTP 1.1 има осум различни методи кои бараат соодветна
реакција/одговор од серверот:
GET – Серверот треба да го достави бараниот ресурс идентификуван со
зададеното URL.
POST – Серверот треба да ги земе податоците од телот на барањето и да ги достави
до ресурсот специфициран со URL-то
PUT – Серверот треба да ги зачува податоците испратени во телото на пораката во
фајл(ресурс) специфициран со URL-то.
DELETE – Серверот го брише ресурсот (фајлот) зададен со URL-то од барањето
HEAD – Слично како GET, само како одговор ги враќа заглавја
TRACE – Го враќа текстот на испратената порака еден тип на ехо.
OPTIONS – Кажува која HTTP метода може да се користи со зададеното URL.
CONNECT – се поврзува со друг хост, клиентот да го користи серверот како Proxy

Методите GET И POST се најкористени


Статусни кодови
HTTP одговорот содржи код на статус кој го покажува исходот
на барањето.
Постојат 5 категории на статусни кодови:
1xx – одговорот е од информативен карактер, на пример 101, Switch
Protocol
2xx – Успешно остварено барање, на пример 200 ОК.
3xx – Пренасочување, на пример 301, трајно преместен
4xx – Грешка на страната на клиентот, на пример 404, рсурсот не е
најден (Not Found).
5xx – Серверска грешка, на пример 500, Интерна серверска грешка
HTTP барања
GET /hello.htm? city=Stocholm&country=Sweeden HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

POST /cgi-bin/process.cgi HTTP/1.1


User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

city=Stocholm&country=Sweeden
HTTP барања

POST /cgi-bin/process.cgi HTTP/1.1


User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

<?xml version="1.0" encoding="utf-8"?>


<string xmlns="http://clearforest.com/">string</string>
HTTP одговори

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Content-Length: 88
Content-Type: text/html
Connection: Closed

<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>
HTTP одговори

HTTP/1.1 404 Not Found


Date: Sun, 18 Oct 2012 10:36:20 GMT
Server: Apache/2.2.14 (Win32)
Content-Length: 230
Connection: Closed
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head> <title>404 Not Found</title> </head>
<body>
<h1>Not Found</h1>
<p>The requested URL /t.html was not found on this server.</p>
</body> </html>
HTTP одговори

HTTP/1.1 400 Bad Request


Date: Sun, 18 Oct 2012 10:36:20 GMT
Server: Apache/2.2.14 (Win32)
Content-Length: 230 Content-Type: text/html; charset=iso-8859-1
Connection: Closed
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>400 Bad Request</title>
</head>
<body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.</p>
<p>The request line contained invalid characters following the protocol string.</p>
</body> </html>

You might also like