Интернет програмиране


Категория на документа: Информатика


Физически
Всеки слой на OSI модела изпълнява конкретна задача в процеса на мрежовата комуникация и след това предава данните нагоре или надолу към следващия слой (в зависимост от това дали слоя функционира в предаващия или в приемащия компютър). Тъй като данните се предават през слоевете, всеки слой добавя своя собствена информация под формата на хедъри, които биват добавяни пред оригиналните данни. Процесът на мрежова комуникация работи по следния начин: от изпращащата страна дадено приложение създава данни, които трябва да бъдат предадени по мрежата, след това той ги предава на приложния слой от мрежовия компонент на ОС. Когато данните преминават през слоевете, те биват капсулирани или затваряни в рамките на по-голяма единица, тъй като всеки слой добавя хедърна информация. Когато данните достигнат приемащия компютър, процесът се извършва в обратен ред: информацията се предава нагоре през всеки слой и докато това става, капсулиращата информация постепенно бива премахвана, слой по слой, в ред обратен на реда, в който е била добавяна.

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

Тъй като TCP/IP пакета е разработен преди публикуването на OSI модела, като резултат той не ползва OSI модела като шаблон. TCP/IP е разработен като използва модела на Министерството на отбраната на САЩ (DoD - Department of Defence). Той има 4 слоя и всъщност отговяря на същите въпроси за мрежова комуникация.
Application
Приложен
Transport
Транспортен
Internet
Интернет
Network Interface
Мрежов интерфейс
Когато пишем Java програми, които комуникират по мрежата, ние програмираме най-горния слой от модела, т.е. Application layer. Преносът на данни, предизвикан от нашите Java програми, се осъществява от
Transport layer посредством протоколите TCP и UDP. Транспортният слой използва по-долния мрежов слой за прехвърляне на малки количества информация, наречени IP пакети, от един компютър на друг, а тези пакети се прехвърлят чрез мрежови протоколи и връзки на още по-ниски нива.
4. Приложен слой (Application layer)
Тук се обработват заявките за данни или услуги. Приложенията в този слой чакат заявки, които да обработят и всички приложения "слушат" на определен порт. Приложенията, които вървят в приложния слой взаимодействат с приложенията за текстообработка, таблици, интернет браузъра и др. Два примера за приложения, които вървят в този слой са FTP и HTTP.
На ред с придвижването на пакет нагоре по протоколния стек по пътя си към приложния слой, транспортния насочва пакетите към подходящи портове. Дефиниция: Порта е число, което приложенията в приложния слой използват като адрес за получаване/изпращане. Порта е номериран адрес, където се изпращат заявките и където приложенията "слушат" за тези заявки. Портовете са номерирани от 1 до 65536. Когато заявките правят своя път нагоре по TCP/IP стека, протоколите TCP и UDP в транспортния слой предават заявките към приложния слой.
Запомнете!!! Приложенията са настроени да слушат на точно определен порт и протоколите TCP и UDP предават пакета на този порт в зависимост от информацията в хедъра на пакета.
Двата транспортни протокола TCP и UDP използват по 65536 порта. Например пакета може да определи, че е насочен към TCP порт 80. TCP порт 80 е стандартен порт, където уеб сървърите слушат за HTTP заявки. Веднага след като пакет бива доставен на определен IP адрес, той бива предаван нагоре по стека, за да се убеди, че той е адресиран до хоста който го е получил. После бива предаден към TCP и UDP и после към подходящ порт, за да може приложението в приложния слой да изпълни заявката.
Дефиниция: Тази фуния се нарича сокет. Сокета комбинира три части информация: IP адрес, TCP или UDP и номера на порта. TCP и UDP индикират кой протокол ще се използва. Сокета се записва така:
131.107.2.200:TCP:80
или 131.107.2.200:UDP:69

С придвижване на пакета нагоре по стека IP ще го предаде на TCP или UDP порт. Приложенията слушат на определения им порт, така, когато данните пристигнат те се обработват акуратно (грижливо, точно, старателно). Портовете от 1 до 1024 се смятат за добре познати номера и са резервирани за определени приложения. Портовете от 1025 до 65536 нямат определено предназначение. Програмистите ползват тези портове за приложенията които пишат.
А) File Transfer Protocol (FTP)

Дефиниция:Този протокол дефинира как файл може да бъде трансфериран (прехвърлен) от един хост на друг. За да бъде прехвърлен един файл от един хост до друг, FTP на иницииращия хост създава заявка за файл, а FTP при FTP сървъра изпълнява заявката за файл. Два хоста участват в една FTP сесия, единия иска файл, а другия има копие на файл и изпраща копие на искания файл към искащия го хост. Файла може да бъде трансфериран в текстов или двуичен формат. Хоста, който иска услугата се нарича клиент, а хоста, който предлага услугата - сървър. Иницииращия хост използва приложение, за да поиска файла. Това приложение може да е FTP приложение от команден ред или FTP команден интерпритатор. FTP приложението от команден ред позволява на хост да се свърже към FTP сървър като потребителя просто въвежда FTP команда в командния ред. FTP се свързва към сървъра и от потребителя се иска да се логне. Потребителя трябва да въведе потребителско име и парола.
Как работи FTP?
Първия пакет, който е изпратен от иницииращия хост до FTP сървъра е пакет, който иска да бъде изградена връзка. Този пакет се изпраща до ТСР порт 21 на FTP сървъра. Иницииращият хост избира "не добре познат порт" на който да слуша за отговор. Например той избира порт 1177 като порт за обратна връзка и ще слуша на този порт за отговор изпратен до този номер порт. FTP приложението слуша порт 21. Когато получава запитването приложението изпраща обратно FTP/TCP/IP пакет, за да установи връзка и да попита клиента за потребителското име и парола за вход. FTP/TCP/IP пакет е пакет, който има FTP хедър върху TCP хедър върху IP хедър. При този върнат пакет FTР сървъра е източника, а FTP клиента е получателя. FTP изпраща отговора на порт 1177 както е поискал клиента. В FTP хедъра, който сървъра е направил той предава информация към FTP клиента. Диалога продължава като FTР сървъра отговаря на запитванията на клиента. Клиента ще има възможност да види списък с файлове които са налични и да поиска един или няколко от тях да му бъдат изпратени. FTP клиента от команден ред изисква от потребителя да знае FTP команди и как да ги използва. Друг начин на потребителя да се свърже към FTP сървъра без да има нужда да знае FTP команди е като ползва FTP команден интерпретатор.
Б) Hypertext Transfer Protocol(HTTP)

Дефиниция: Този протокол е набор от правила за обмяна на файлове в интернет. Това е протокола, който вашия уеб браузър ползва за сърфиране в интернет. Той е направен така, че да изисква възможно най-малка намеса от потребителя. HTTP приложения се изпълняват на Web сървъра и слушат за заявки и отговарят на тези заявки като изпращат файлове обратно към този, който ги е поискал. Уеб сървъра е сървър, който има HTTP сервизно приложение което върви на него. HTTP слуша TCP порт, обикновенно 80 за заявки и изпраща поисканите файлове към искащия ги. Поискалия ги хост показва тези файлове в най-различни уеб браузър приложения. Клиента прави HTTP заявки като въвежда команди в уеб браузъра си. Тази команда представлява въвеждането на URL (Uniform Resource Locator), т.е. адреса на уеб страницата, напр. www.info.bg в адресната лента, може директно и от хипервръзка. Дефиниция: хипервръзка е дума в уеб страница, която води до друг документ на уеб сървъра или дори дори до друг уеб сървър или сайт. Уеб браузъра форматира клиентските заявки в HTTP/TCP/IP пакети с адрес порт 80. HTTP/TCP/IP пакет е пакет, който има HTTP хедър върху TCP хедър върху IP хедър. На уеб сървъра HTTP приложението слуша на порт 80 за някакви заявки. След като пакета бива получен, поискания файл се намира и пакетира за изпращане към клиент. Пакетите напускат уеб сървъра и при пристигането им при клиента, уеб браузъра декодира HTML файл и го показва на екрана в нужния формат.
Освен FTP и HTTP в приложния слой се изпълняват и други приложения като:
Simple Network Management Protocol - SNMP
Telnet
Simple Mail Transfer Protocol - SMTP
Trivial File Transfer Protocol (TFTP)
Интересно: Когато пакет получава достъп до мрежата, преди физическото пристигане при дестинацията му, може да бъде използван firewall за предпазване на хоста дестинация от злонамерен пакет. Firewall - а ще отхвърли пакети с неразрешен адрес и порт на получателя.

В) заявяване на услуга в TCP/IP стека
Искате да направите заявка към тази компанията, която се намира в тази сграда. Трябва да знаете адреса и етажа. Влизате в общото фоaйе, но трябва да знаете кой асансьор ще използвате. Например качвате се на TCP асансьор и отивате на 80 етаж. Там ви посреща портиер и дава заявката ви за обработка. TCP порт 80 обработва HTTP услуга. Когато клиента изпраща пакет до сървъра, който хоства услуга, клиента трябва да направи запитването към коректния порт. Ако услугата слуша на порт 80 а клиента отправи запитването на порт 81, заявката няма да бъде обработена, защото няма услуга която да слуша там. На всички етажи, където върви услуга има взети мерки за сигурност, вградени в тази услуга, но на етажите без услуга е възможно да влезе нарушител. Затова повечето администратори използват firewall - комбинация от хардуер и софтуер инсталиран на границата на локалната мрежа. В локалната мрежа трябва да има защитна стена на всяко място с връзка към интернет. Когато на пакет бива разрешен достъп до нея, той може да пристигне при желания хост и да се качи до 21 -я етаж, вратите на асансьора ще се отворят и пакета ще има достъп до хоста. Администратора създава тези правила, например може да забрани връзки към порт 21.
5. Транспортен слой Transport layer
Този слой определя дали изпращача и получателя ще изградят връзка преди започване на комуникацията и колко често ще изпращат потвърждение за тази връзка. Тук има само два протокола: TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Протоколите от транспортното ниво доставят данни и получават данни от протоколите на транспортното ниво на останалите хостове. Другите хостове могат да са в същата мрежа или в мрежа в другия край на света. В някои документи транспортния слой се нарича хост - до- хост слой.
А) TCP (Transmission Control Protocol) предлага връзково - ориентирана(установява връзка преди започване на комуникацията), гарантирана (ще бъдат изпратени съобщения за потвърждение обратно към хоста изпращач, за да се потвърди, че е получен пакет) комуникация, т.е той е връзков протокол. Двете страни знаят един за друг и първото, което трябва да определят е: как ще комуникират, къде ще изпращат данните, как ще ги получават. Всеки пакет има TCP хедър, който включва пореден номер на пакета, номер за потвърждение, адрес и друга информация.
Б) UDP (User Datagram Protocol) предлага безвръзкова (не се установява връзка преди да започне изпращането на данните, изпращащият хост не изпраща никакъв пакет за установяване параметри на изпращането, той просто започва да предава информация), негарантирана (не се изпращат потвърждения, че информацията е получена) комуникация, т.е той просто изстрелва пакетите с данни.
6. Слой мрежов интерфейс Network Interface и Интернет
Основната задача на този слой е да определи как компютъра се свързва към мрежата. Когато даден пакет е получен в този слой се определя дали пакета да се предаде нагоре по нивата за дообработка, като се базира на хардуерния адрес от мрежовата карта. В този слой на всеки пакет се добавя хедър, който съдържа адресна информация. Тази адресна информаця идва от физическия адрес отпечатан на всяка мрежова карта при производството й. Понятията хардуерен адрес, физически адрес, адрес на мрежовата карта, МАС адрес (Media Access Control) означават едно и също нещо.
МАС адреса представлява 12 цифрено шестнадесетично число. То се записват по следния начин: ММ:MM:MM:SS:SS:SS или MM-MM-MM-SS-SS-SS.Например: 00:A0 :C9:F1:C3:A3. Първата половина съдържа идентификационния номер на производителя на мрежовата карта, а втората част - сериен номер на адаптера, произведен от съответния производител.
За да може пакет от данни да бъде доставен, той трябва да съдържа хардуерния адрес на получателя. Всеки пристигнал при мрежовата карта пакет, бива преглеждан за информация касаеща хардуерния адрес, за да се определи дали пакета е бил предназначен за този хост. Ако хардуерния адрес съвпада с хардуерния адрес на получилата го мрежова карта или ако пакета е броудкаснат(пакет, предназначен за всички хостове в мрежата), той бива предаван на горните нива за обработка. Ако адреса на пакета се различава той бива игнориран.



Сподели линка с приятел:





Яндекс.Метрика
Интернет програмиране 9 out of 10 based on 2 ratings. 2 user reviews.