Вовед во мрежна терминологија, интерфејси и протоколи
Вовед
Разбирањето на вмрежувањето е важно за секој што управува со сервер. Не само што е од суштинско значење за добивање на вашите услуги онлајн и непречено функционирање, туку ви дава и увид за дијагностицирање на проблемите.
Оваа статија ќе даде преглед на некои вообичаени концепти за вмрежување. Ќе разговараме за терминологијата, заедничките протоколи, како и за одговорностите и карактеристиките на различните слоеви на вмрежување.
Овој водич е агностички за оперативниот систем, но треба да биде многу корисен при имплементирање на функции и услуги кои користат вмрежување на вашиот сервер.
Поимник за вмрежување
Прво, ќе дефинираме некои вообичаени термини што ќе ги видите низ овој водич, како и во други водичи и документација во врска со вмрежувањето.
Овие термини ќе бидат проширени во соодветните делови што следат:
- Поврзување: во вмрежувањето, врската се однесува на делови од поврзани информации кои се пренесуваат преку мрежа. Општо земено, врската се воспоставува пред преносот на податоци (со следење на процедурите наведени во протоколот) и може да се деконструира на крајот од преносот на податоците.
- Пакет: пакетот е најмалата единица што намерно се пренесува преку мрежа. Кога комуницирате преку мрежа, пакетите се пликови што ги носат вашите податоци (на парчиња) од една до друга крајна точка.
Пакетите имаат заглавие кој содржи информации за пакетот вклучувајќи го изворот и дестинацијата, временските ознаки, мрежните скокови итн. Главниот дел од пакетот ги содржи вистинските податоци што се пренесуваат. Понекогаш се нарекува тело или носивост.
- Мрежен интерфејс: мрежниот интерфејс може да се однесува на секаков вид софтверски интерфејс до мрежен хардвер. На пример, ако имате две мрежни картички на вашиот компјутер, можете да го контролирате и конфигурирате секој мрежен интерфејс поврзан со нив поединечно.
Мрежен интерфејс може да биде поврзан со физички уред или може да биде претстава на виртуелен интерфејс. Уредот \loopback, кој е виртуелен интерфејс достапен во повеќето околини на Linux за повторно поврзување со истата машина, е пример за ова.
- LAN: LAN е кратенка за \локална мрежа. Се однесува на мрежа или дел од мрежа што не е јавно достапна за поширокиот интернет. Домашна или канцелариска мрежа е пример за LAN.
- WAN: WAN е кратенка за \мрежа со широка површина. Тоа значи мрежа што е многу пообемна од LAN. Додека WAN е релевантен термин што треба да се користи за општо опис на големи, дисперзирани мрежи, тој обично е наменет да значи интернет, како целина.
Ако се каже дека интерфејсот е поврзан со WAN, генерално се претпоставува дека е достапен преку интернет.
- Протокол: Протоколот е збир на правила и стандарди кои дефинираат јазик што уредите можат да го користат за да комуницираат. Има голем број протоколи кои се користат интензивно во вмрежувањето, и тие често се имплементираат во различни слоеви.
Некои протоколи на ниско ниво се TCP, UDP, IP и ICMP. Некои познати примери на протоколи на апликациски слој, изградени на овие пониски протоколи, се HTTP (за пристап до веб содржина), SSH и TLS/SSL.
- Порта: порта е адреса на една машина што може да се поврзе со одреден дел од софтверот. Тоа не е физички интерфејс или локација, но му овозможува на вашиот сервер да може да комуницира користејќи повеќе од една апликација.
- Firewall: Заштитниот ѕид е програма која одлучува дали сообраќајот што доаѓа или оди од серверот треба да биде дозволен. Заштитниот ѕид обично работи со креирање правила за тоа кој тип на сообраќај е прифатлив на кои пристаништа. Општо земено, заштитните ѕидови ги блокираат портите што не се користат од одредена апликација на серверот.
- NAT: NAT значи превод на мрежна адреса. Тоа е начин за препакување и испраќање дојдовни барања до рутирачки сервер до соодветните уреди или сервери на LAN. Ова обично се имплементира во физичките LAN како начин за насочување на барањата преку една IP адреса до потребните задни сервери.
- VPN: VPN значи виртуелна приватна мрежа. Тоа е средство за поврзување на посебни LAN мрежи преку интернет, притоа одржувајќи ја приватноста. Ова се користи за поврзување на далечински системи како да се на локална мрежа, често од безбедносни причини.
Има многу други термини на кои ќе наидете, а оваа листа не е исцрпна. Ќе објасниме и други поими како што ни се потребни. Во овој момент, треба да разберете некои концепти на високо ниво што ќе ни овозможат подобро да разговараме за темите што доаѓаат.
Мрежни слоеви
Додека вмрежувањето често се дискутира во однос на топологијата на хоризонтален начин, помеѓу домаќините, неговата имплементација е слоевита на вертикален начин во секој даден компјутер или мрежа.
Ова значи дека постојат повеќе технологии и протоколи кои се изградени еден врз друг за да функционира комуникацијата. Секој последователен, повисок слој ги апстрахира необработените податоци малку повеќе.
Исто така, ви овозможува да ги искористите пониските слоеви на нови начини без да вложувате време и енергија за развивање на протоколи и апликации кои се справуваат со тие видови сообраќај.
Јазикот што го користиме за да зборуваме за секоја од шемите на слоеви значително варира во зависност од тоа кој модел го користите. Без оглед на моделот што се користи за дискусија за слоевите, патеката на податоците е иста.
Како што податоците се испраќаат од една машина, тие започнуваат на врвот на магацинот и се филтрира надолу. На најниско ниво, се случува вистински пренос на друга машина. Во овој момент, податоците патуваат назад низ слоевите на другиот компјутер.
Секој слој има можност да додаде своја „обвивка“ околу податоците што ги добива од соседниот слој, што ќе им помогне на слоевите што доаѓаат потоа да одлучат што да прават со податоците кога ќе бидат предадени.
TCP/IP модел
Моделот TCP/IP, попознат како пакет на Интернет протоколи, е широко прифатен модел на слоеви. Ги дефинира четирите посебни слоеви:
- Апликација: во овој модел, слојот на апликацијата е одговорен за создавање и пренос на кориснички податоци помеѓу апликациите. Апликациите можат да бидат на далечински системи и треба да изгледаат како да работат како локално до крајниот корисник. Се вели дека оваа комуникација се одвива помеѓу врсници.
- Транспорт: транспортниот слој е одговорен за комуникација помеѓу процесите. Ова ниво на вмрежување користи пристаништа за адресирање на различни услуги.
- Интернет: Интернет слојот се користи за транспорт на податоци од јазол до јазол во мрежата. Овој слој е свесен за крајните точки на врските, но не се занимава со вистинската врска потребна за да се стигне од едно до друго место. IP адресите се дефинирани во овој слој како начин за допирање на далечински системи на адресибилен начин.
- Поврзување: Слојот за врска ја имплементира вистинската топологија на локалната мрежа што му овозможува на интернет-слојот да претстави адресибилен интерфејс. Воспоставува врски помеѓу соседните јазли за испраќање податоци.
Како што можете да видите, моделот TCP/IP е апстрактен и флуиден. Ова го направи популарно да се имплементира и овозможи да стане доминантен начин на категоризација на мрежните слоеви.
Интерфејси
Интерфејсите се мрежни комуникациски точки за вашиот компјутер. Секој интерфејс е поврзан со физички или виртуелен мрежен уред.
Вообичаено, вашиот сервер ќе има еден мрежен интерфејс што може да се конфигурира за секоја Ethernet или безжична интернет картичка што ја имате.
Дополнително, тој ќе дефинира виртуелен мрежен интерфејс наречен \loopback или интерфејс за локален хост. Ова се користи како интерфејс за поврзување на апликации и процеси на еден компјутер со други апликации и процеси. Можете да го видите ова референцирано како\lo“ интерфејс во многу алатки.
Многу пати, администраторите конфигурираат еден интерфејс за сервисирање на сообраќајот на интернет и друг интерфејс за LAN или приватна мрежа.
Во центрите за податоци со овозможено приватно вмрежување (вклучувајќи ги и DigitalOcean Droplets), вашиот VPS ќе има два мрежни интерфејси. Интерфејсот \eth0 ќе биде конфигуриран да управува со сообраќајот од интернет, додека интерфејсот \eth1 ќе работи за да комуницира со приватна мрежа.
Протоколи
Вмрежувањето функционира со поставување на голем број различни протоколи еден врз друг. На овој начин, еден податок може да се пренесе со користење на повеќе протоколи инкапсулирани еден во друг.
Ќе започнеме со протоколи имплементирани на пониските мрежни слоеви и ќе продолжиме до протоколи со поголема апстракција.
Контрола на пристап до среден
Контрола на пристап со средна вредност е комуникациски протокол што се користи за разликување на одредени уреди. Секој уред треба да добие уникатна, тврдокодирана адреса за контрола на пристап до медиумите (MAC адреса) кога е произведен што го разликува од секој друг уред на интернет.
Адресирањето на хардверот преку MAC адресата ви овозможува да упатувате на уред со единствена вредност дури и кога софтверот на врвот може да го промени името на тој специфичен уред за време на работата.
MAC адресирањето е еден од единствените протоколи од слојот за врски на ниско ниво со кој најверојатно ќе комуницирате на редовна основа.
IP
IP протоколот е еден од основните протоколи што овозможуваат работа на интернетот. IP-адресите се единствени на секоја мрежа и им овозможуваат на машините да се обраќаат меѓусебно преку мрежата. Се имплементира на интернет слојот во моделот TCP/IP.
Мрежите може да се поврзат заедно, но сообраќајот мора да се насочува при преминување на границите на мрежата. Овој протокол претпоставува несигурна мрежа и повеќе патеки до истата дестинација меѓу кои може динамички да се менува.
Постојат голем број на различни имплементации на протоколот. Најчеста имплементација денес се IPv4 адресите, кои ја следат шемата 123.123.123.123
, иако IPv6 адресите, кои ја следат шемата 2001:0db8:0000:0000:0000:ff00:0042:8329
, расте популарноста поради ограничениот број достапни IPv4 адреси.
ICMP
ICMP е кратенка за протокол за пораки за контрола на интернет. Се користи за испраќање пораки помеѓу уреди за да се покаже нивната достапност или условите за грешка. Овие пакети се користат во различни мрежни дијагностички алатки, како што се ping
и traceroute
.
Обично ICMP пакетите се пренесуваат кога различен вид пакет наиде на проблем. Тие се користат како механизам за повратни информации за мрежните комуникации.
TCP
TCP е кратенка за протокол за контрола на пренос. Се имплементира во транспортниот слој на моделот TCP/IP и се користи за воспоставување сигурни врски.
TCP е еден од протоколите што ги инкапсулира податоците во пакети. Потоа ги пренесува овие на оддалечениот крај на врската користејќи ги методите достапни на долните слоеви. Од друга страна, може да провери дали има грешки, да бара одредени делови повторно да се испратат и повторно да ги собере информациите во едно логично парче за да ги испрати до слојот на апликацијата.
Протоколот создава врска пред преносот на податоци користејќи систем наречен тринасочно ракување. Ова е начин двата краја на комуникацијата да го потврдат барањето и да се договорат за методот за обезбедување веродостојност на податоците.
Откако ќе се испратат податоците, врската се прекинува со помош на слично четиринасочно ракување.
TCP е протокол на избор за многу од најпопуларните употреби на интернет, вклучувајќи WWW, SSH и е-пошта.
UDP
UDP значи протокол за кориснички датаграм. Тој е популарен придружнички протокол на TCP и исто така е имплементиран во транспортниот слој.
Основната разлика помеѓу UDP и TCP е тоа што UDP нуди несигурен пренос на податоци. Не потврдува дека податоците се примени на другиот крај на врската. Ова може да звучи како лоша работа, и за многу цели, тоа е. Сепак, тоа е исто така исклучително важно за некои функции.
Бидејќи не е потребно да се чека потврда дека податоците се примени и принудени повторно да се испратат податоци, UDP е многу побрз од TCP. Не воспоставува врска со оддалечениот домаќин, само испраќа податоци без потврда.
Бидејќи е јасна трансакција, таа е корисна за комуникации како што е барањето мрежни ресурси. Исто така, не одржува состојба, што го прави одличен за пренос на податоци од една машина до многу клиенти во реално време. Ова го прави идеален за VOIP, игри и други апликации кои не можат да си дозволат одложувања.
HTTP
HTTP е кратенка за протокол за пренос на хипертекст. Тоа е протокол дефиниран во апликацискиот слој кој ја формира основата за комуникација на веб.
HTTP дефинира голем број на глаголи кои му кажуваат на далечинскиот систем што барате. На пример, GET, POST и DELETE сите комуницираат со бараните податоци на поинаков начин. За да видите пример за различни HTTP барања во акција, погледнете во Како да се дефинираат маршрути и методи за барање HTTP во Express.
DNS
DNS е кратенка за систем за име на домен. Тоа е протокол за апликациски слој кој се користи за да обезбеди механизам за именување пријателски за луѓето за интернет ресурсите. Тоа е она што го поврзува името на доменот со IP адресата и ви овозможува да пристапите до страниците по име во вашиот прелистувач.
SSH
SSH се залага за безбедна школка. Тоа е шифриран протокол имплементиран во апликацискиот слој кој може да се користи за комуникација со оддалечен сервер на безбеден начин. Многу дополнителни технологии се изградени околу овој протокол поради неговото шифрирање од крај до крај и сеприсутност.
Има многу други протоколи што не ги опфативме, а се подеднакво важни. Сепак, ова треба да ви даде добар преглед на некои од основните технологии кои го овозможуваат интернетот и вмрежувањето.
Заклучок
Во овој момент, треба да бидете запознаени со некоја мрежна терминологија и да можете да разберете како различни компоненти можат да комуницираат едни со други. Ова треба да ви помогне да ги разберете другите написи и документацијата на вашиот систем.
Следно, за пример за читање на високо ниво на светот, можеби ќе сакате да прочитате Како да направите барања за HTTP во Go.