Как работят компютърните мрежи
singu
и TCP/IP върху Ethernet в частност, тъй като това е най-популярната инкарнация на компютърните мрежи напоследък
Когато се появила нуждата от комуникация между компютрите, този проблем бил твърде сложен за да бъде решен наведнъж. Затова било решено проблемът да бъде разбит на няколко по-малки ( тъй де, разделяй и владей ). Така се появил известния 7-слоен модел на ОСИ ( OSI - Open System Interconnection ). Този модел описва комуникацията между 2 компютъра, като дефинира напълно отделни модули или слоеве. Другото уточнение е, че всеки слой е прозрачен за тези над него, тоест каквато информация навлезе в слоя в единият компютър, абсолютно същата ще излезе от съответния слой/модул в приемащия компютър.
И ето и самия ( прословут ) модел:

Всеки от слоевете има конкретна задача/функция:
Приложен слой всъщност е приложението, което изпраща или получава информация през мрежата.
Презентационният слой се грижи за форматирането, представянето, защитата и обмена на файлове.
Сесийният слой се грижи за управлението и статистическото наблюдение на мрежата.
Транспортния слой се грижи за откриване и коригиране на грешки, повторно изпращане на неполучени пакети ( които са напълно допустими )
Мрежовия слой се грижи за управлението и маршрутизирането на пакетите и изграждането на т.нар. “виртуален канал” между изпращащия и получаващия компютър.
Свързващият слой се грижи за пакетирането на изпращаната информация в кадри или пакети.
Физическият слой се грижи да предаде и приеме информацията през дадената физическа среда. В най-често срещания случай - през 4-те медни двойки на Ethernet.
Завъртя ли ви се главата от теория ? Нека да илюстрираме с един пример:
Нека да имаме средностатистически компютър, пред който седи средностатистически 14-годишен младеж ( примерно ). Нека да видим как браузъра на този компютър показва на младежа страницата на поредния модерен сайт с препратки към онази многослойна шашмалогия отгоре:
Сървъра на сайта ( приложен слой ) изпраща данни към браузъра на младежа използвайки HTTP протокол. Тези данни опционално се криптират ( ако се използва HTTPS ), както и се кодират и подготвят за предаване през мрежата ( презентационен слой ). След това данните се поемат от т.нар. TCP стек ( TCP означава Transport Control Protocol ). Този протокол се грижи за изграждането на сесия между сървъра и компютъра на младежа ( сесиен слой ). След това TCP изпраща пакетите, като внимателно ги номерира и следи дали някой от пакетите няма да се загуби по пътя. Ако някой пакет не се получи, TCP се грижи за автоматичното му повторно изпращане. (транспортен слой ). Оттук пакетите се поемат от IP ( Internet Protocol ) който маркира пакетите с адрес на изпращача и получателя ( които са уникални ), изчислява пътя, по който ще мине този пакет - дали получателите са от една мрежа или ако не са, кой компютър ще се погрижи за препредаването на информацията. Следващия етап е т.нар. Ethernet, който функционира като MAC механизъм ( Media Access Control ) - маркира пакетите с MAC адресите на изпращащия и получаващия компютър в конкретната мрежа (свързващ слой). След това физическия слой под формата на мрежови адаптер представя информацията като флуктоации на електрическия ток по проводниците в Ethernet кабела и така информацията достига до приемащият компютър. Тук флуктоациите се преобразуват в цифрофи данни, разпакетират се, проверяват се за грешки, сглобяват се слой след слой и най-накрая достигат до браузъра, който рендва страницата.
Както виждате, при варианта TCP/IP върху Ethernet един модул поема няколко функции от OSI модела.
Кому е нужна цялата тази дандания ? Целия фокус в разслояването и разделянето е, че правейки слоевете прозрачни един за друг, можем да подменим цял слой с друг, който функционира по съвсем различен начин, без да се налага да правим промени в другите слоеве. Например, ако подменим физическия и свързващия слой, можем да се оттървем от досадните жици и да ползваме Wireless мрежа, върху която продължават да си работят същите TCP/IP протоколи, адреси и приложения. Или ако не се притесняваме от това да загубим някой и друг пакет вместо TCP можем да използваме неговия братовчет UDP ( User Datagram Protocol ), който не се грижи за повторното изпращане на неполучените пакети. При UDP също така няма изграждане на сесия и т.н. с цел опростяване. Тъй като интерфейсите на UDP са същите както на TCP, то не се налага да променяме нищо повече.
По подробен преглед на това как работят отделните части от TCP/IP и Ethernet - следващият път.
—
Референции:
1.http://en.wikipedia.org/wiki/Ethernet
2.http://en.wikipedia.org/wiki/Open_Systems_Interconnection
3. http://en.wikipedia.org/wiki/TCP/IP_model














