Page 1
Б01-1
Структура на TCP сегмент
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 31
0 Source Port порт на изпращача
Destination Port порт на получателя
32 Sequence Number пореден номер на сегмент на изпращача
64 Acknowledgment Number потвърждение – очакван пореден номер на сегмент
96 Data
offset отместване
0 0 0 0
C
R
W
E
C
E
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
Window
Размер на прозореца
128Checksum
контролна сума Urgent Pointer
указател Важни данни
160Options опции
0 0 0 0 0 0 0 0
160
192
Data данни
Source Port Порт на източника – определя порта, от който е изпратен сегмента;
Destination Port Порт на назначение – определя порта, към който е изпратен сегмента;
Sequence Number Последователен номер – ако е установен флага SYN, това е началната стойност
на поредния номер на сегмент на изпращача увеличена с единица. Иначе –
стойност на поредния номер.
Acknowledgment Number Номер на потвърждение – ако е установен флага ACK, това поле съдържа
очаквания при следващото изпращане пореден номер на сегмент (номера на
последния успешно получен сегмент, увеличен с единица). Този сегмент е
потвърждение за получаване.
Data offset Отместване на данните – това поле съдържа размера на заглавието (header) на
TCP сегмента, в брой 32-битови думи. Може да бъде от 5 до 15 думи (20 до 60
байта).
CWR (Congestion Window Reduced) Флаг – битово поле. Размерът на прозореца е намален – в отговор на получен
сегмент с флаг ECE.
ECE (ECN-Echo) Флаг – битово поле. Явно уведомяване за претоварване;
URG
Флаг – битово поле. Стойността на полето Urgent Pointer е установена;
ACK
Флаг – битово поле. Стойността на полето Acknowledgment Number е установена;
PSH Флаг – битово поле. — инструктира получателя да изпрати получените данни,
съхранени в приемния буфер на приложението ползвател незабавно.
RST Флаг – битово поле. Рестартиране на връзката. Почистване на буферите.
SYN Флаг – битово поле. Синхронизация на поредния номер на сегмент.
FIN Флаг – битово поле. Затваряне (прекратяване) на връзката.
Window Размер на прозореца. Сегментите при получаване се поставят в прозорец –
буфер, съдържащ поне 8 сегмента. Полето указва на изпращача колко е
Page 2
Б01-2
свободното място в прозореца. Стойност 0 указва препълване на буфера,
изпращачът трябва да изчака преди да изпрати отново данни.
Checksum Контролна сума. 16 битова сума на всички 16-битови думи в заглавието и
данните на сегмента. Съхранява се в допълнителен код. За стойност 0 се
приема FFFF(16). Ако сегмента съдържа нечетен брой байтове (октети),
последният октет се допълва с нули в дясно за изравняване до 16-битовата
граница. При изчисляване самото поле контролна сума се приема за 0.
Urgent Pointer Указател до важни данни. 16 битово положително отместване в данните, в
байтове (октети). Указва последния номер на октет, с който завършват важните
(urgent) данни. Има значение само за сегменти с установен флаг URG.
Page 3
Б02-1
Структура на UDP сегмент
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 31
0
Source Port порт на изпращача
Destination Port порт на получателя
32
Length дължина
Checksum
контролна сума
64
Data данни
Source Port Порт на изпращача. Попълва се, ако се очаква UDP сегмент – отговор.
Destination Port Порт на получателя. Определя програмата, която да получи сегмента.
Length Дължина на съобщението в брой байтове – на цялата дейтаграма – заглавие и
данни.
Checksum Контролна сума.
Data Тяло на съобщението.
Page 4
Б03-1
Статус на TCP сесия
CLOSED Начално състояние.
LISTEN Сървърът очаква изграждане на съединение.
SYN-SENT Клиент е изпратил заявка за изграждане на сесия, очаква отговор.
SYN-RECEIVED Сървърът е получил заявка за изграждане, изпратил е отговор на
заявка и очаква потвърждение
ESTABLISHED Сесията е изградена.
FIN-WAIT-1 Една от страните (Host1) в сесията е изпратила заявка за прекратяване,
сегмент с флаг FIN.
CLOSE-WAIT
Другата страна (Host2) преминава в състояние ‘изчакване на
затварянето’, изпраща сегмент ACK, продължава едностранно
предаването на данни.
FIN-WAIT-2 Host1 получава ACK, продължава четенето, очаква сегмент с флаг
FIN.
LAST-ACK Host2 завършва предаването и изпраща сегмент с флаг FIN.
TIME-WAIT Host1 е получил сегмент с флаг FIN, изпратил е сегмент с флаг ACK и
чака 2*MSL секунди преди окончателно да разруши сесийния канал.
CLOSING Закрита сесия.
Page 5
Б04-1
Таймер за забавено потвърждение В протокола TCP се удостоверява получаването на сегментите. В най-простия случай би
трябвало да се изпраща потвърждение за всеки получен сегмент. Това би натоварило с трафик
мрежата. За да се избегне това, в TCP се потвърждава само последния от последователно
получените сегменти. За целта се подържа за всеки получен сегмент таймер за забавено
потвърждение. Когато този таймер за сегмент № 1 изтече, се създава и изпраща в отговор
сегмент ACK. TCP проверява колко сегмента с последователни поредни номера след № 1 са
получени и в полето Acknowledgement Number записва следващия пореден номер. Примерно,
ако в рамките на времето за забавено потвърждение се получат сегменти �����,
следващият пореден номер, който ще бъде поискан е �.
Page 6
Б05-1
Структура на IP пакет (IPv4)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 31
0
Version версия
Header
length Type of Service
тип на услугата
Total Length дължина на пакета
32
Identification идентификатор
Flags флагове
Fragment Offset отместване на
фрагмента
64
Time To Life брой преходи
Protocol номер на порт
Header Checksum
контролна сума на заглавието
96
Source IP Address IP адрес на изпращача
128
Destination IP Address IP адрес на получателя
160
Options опции
0 0 0 0 0 0 0 0 0
192
Data данни
Version Версия. За IPv4 стойността на полето трябва да бъде 4.
Internet Header Length (IHL) Дължина на заглавието на IP-пакета в брой 32-битови думи.
Type of Service (TOS) Това поле съдържа информация как този пакет да бъде обработван от мрежовото
оборудване. Битове 0-2, precedence - важност на пакета, по-голяма стойност
означава по-висок приоритет. Бит 3 delay – закъснение; бит 4 throughput –
пропускателна способност; бит 5 – reliability – надеждност. Обикновено и
трите полета съдържат 0. Стойност 1 на всички полета означава избор на най-
добър маршрут – с малко закъснение, висока пропускателна способност и висока
надеждност.
Total Length Дължина на пакета – съдържа обща дължина – на заглавието и на данните в
пакета.
Identification Използва се при фрагментиране на пакети, всички фрагменти имат еднакъв
идентификатор.
Flags Използва се при фрагментиране на пакети, три флага, първият не се използва и
е 0, вторият е DF (don’t fragment) забрана за фрагментация, третия е
единица, ако този пакет е фрагмент от дейтаграма.
Fragment Offset Текущият пакета е фрагмент от дейтаграма. Съдържа отместване на данните от
началото на сегмента. Фрагментите пристигат при получателя в случаен ред.
TCP използва това поле, за да възстанови оригиналния ред и да сглоби
фрагментираното съобщение.
Time To Life (TTL) Време за живот. Полето показва през колко маршрутизатора (рутера) може да
премине пакета. Windows използва 128 за начална стойност. При преминаване на
пакета през рутер, стойността на TTL се намалява с единица. Когато това поле
стане 0, пакетът се отхвърля, изпращача се уведомява чрез ICMP съобщение.
Protocol Идентификатор на използвания протокол. IGMP е с номер 1, TCP е 6, UDP е 17.
Пълен списък с поддържаните протоколи и техните номера във Windows система
се намира на ‘\windows\system32\drivers\etc\protocol’. Същия файл в Unix/Linux
система е ‘/etc/protocol’.
Page 7
Б05-2
Header Checksum Контролна сума. Отнася се само за заглавната част. След всяко преминаване
през рутер контролната сума се преизчислява поради промяната на TTL.
Source IP Address 32-битов IP адрес на източника – изпращач.
Destination IP Address 32-битов IP адрес на получателя.
Options Допълнителна информация. Всяка опция е с дължина 8 бита, един пакет може да
съдържа няколко опции. Пакетът се допълва с нули (padding) do шестнадесет
бита (до четен брой байтове).
Page 8
Б06-1
Структура на IP пакет (IPv6)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 31
0
Version версия
Traffic class приоритет
Flow Label управление на QoS
32
Payload length дължина на данните
Next Header протокол
Hop Limit макс.бр.преходи
64
96
128
160
Source IP Address IP адрес на изпращача
192
224
256
288
Destination IP Address IP адрес на получателя
320
Data данни
Version Версия. За IPv6 стойността на полето трябва да бъде 6.
Traffic class Приоритет на пакета.
Flow Label Управление на QoS (Quality of Service) – качество на услугата, за приложения
работещи в реално време.
Payload Length Дължина на данните в брой байтове, заглавието не се включва.
Next Header Следващият капсулиращ протокол – от следващо ниво. Еквивалент на полето
protocol в IPv4.
Hop Limit Заменя TTL IPv4.
Source IP Address 128-битов IP адрес на източника – изпращач.
Destination IP Address 128-битов IP адрес на получателя.
Page 9
Б07-1
Структура на ICMP пакет (IPv4)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 31
0
Type тип
Code под-тип
Checksum
контролна сума
32
ID идентификатор
Sequence пореден номер
Type Тип на съобщението. 1 – ехо отговор (примерно на ping пакет), 3 – адреса е
недостъпен и т.н.
Code Под-тип пояснение за причината на произтеклото събитие.
Checksum Контролна сума.
ID Идентификатор на пакета, трябва да се върне от ECHO отговора.
Sequence Пореден номер на пакета, трябва да се върне от ECHO отговора.
Page 10
Б08-1
Структура на ICMP пакет (IPv6)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 31
0
Type тип
Code под-тип
Checksum
контролна сума
32
Message Body съобщение
Type Тип на съобщението. 1 – получателя е недостъпен, 2 – пакета е твърде голям и
т.н.
Code Под-тип.
Checksum Контролна сума.
Message Body Тяло на съобщението.
Page 11
Б09-1
Anycast, broadcast, multicast, unicast anycast Метод на изпращане на пакети, реализиран в IPv6. Съобщението се
предава на най-близкия от група получатели;
broadcast Предаване на пакети до всички устройства в локална или в част от
глобална мрежа. При предаване пакета се изпраща еднократно,
получават го всички участници в мрежата. Ако пакета изисква отговор,
то е възможно това да генерира голям обем трафик;
multicast Изпращане на пакет до зададена група получатели. Например,
програмата за архивиране и възстановяване на информация от твърдите
дискове Norton Ghost има възможност, използвайки multicast с едно
предаване на информацията в локалната мрежа да се възстановят от
архив дисковете на много компютри едновременно, без да се претоварва
мрежата с трафик;
unicast Метод на изпращане на пакети, реализиран в IPv6. Съобщението се
предава на единствения адресант.
Page 12
Б10-1
Конфликт на IP адреси
Всяко устройство/компютър в една локална мрежа трябва да има уникален IP адрес.
Windows не допуска въвеждане на статичен IP адрес, ако е присвоен на друг компютър.
Извежда се съобщение за грешка:
Ако два (или повече) компютри в мрежата имат еднакъв адрес, възниква конфликт –
мрежовите карти на компютрите, разпознали конфликта се изключват до неговото разрешаване.
Page 13
Б11-1
Предистория на DNS
Интернет води началото си от мрежата ARPANET. DNS е внедрен през 1984 г. с основно
предназначение да поддържа нарастващия обем на комуникацията с електронна поща.
Именуването на компютрите е въведено в ARPANET още от нейното създаване. Използването
на имена има редица неоспорими предимства – те са по-лесно запомнящи се, остават постоянни
и след преструктуриране на мрежата. Първоначално е съществувал един основен файл
HOSTS.TXT на компютър с име SRI-NIC. Другите компютри са си копирали файла. При
добавяне на компютър в мрежата неговия адрес и име (IP:NAME) се въвеждали във файла. През
70-те години на миналия век мрежата е наброявала неколкостотин компютъра. С разрастването
на мрежата, файла започва да става прекалено голям, SRI-NIC се превръща в тясното място на
мрежата.
Page 14
Б12-1
Рекурсивно търсене на име с TCP/IP помощната програма
NSLOOKUP
Ще използваме помощната програма nslookup за да онагледим примера в Тема 13
„Реверсивен DNS lookup”
1. Въвеждаме “nslookup www.dir.bg” Server: sws-ha-3.btc-net.bg
Address: 212.39.90.42
Non-authoritative answer:
Name: dir.bg
Address: 194.145.63.12
Aliases: www.dir.bg
Адресът 212.39.90.42 е на първия DNS сървър, зададен в TCP/IP настройките. nslookup му
изпраща рекурсивна DNS заявка, той открива името и връща отговор.
Да открием името нерекурсивно. Използваме име на root именен сървър. Виж:
http://en.wikipedia.org/wiki/Dns_root_servers
2. Въвеждаме “nslookup www.dir.bg 192.228.79.201”, вторият параметър е конкретния
DNS сървър, към който да се направи запитването.
C:\Documents and Settings\Inet>nslookup www.dir.bg 192.228.79.201
192.in-addr.arpa nameserver = CHIA.ARIN.NET
192.in-addr.arpa nameserver = DILL.ARIN.NET
192.in-addr.arpa nameserver = BASIL.ARIN.NET
192.in-addr.arpa nameserver = HENNA.ARIN.NET
192.in-addr.arpa nameserver = INDIGO.ARIN.NET
192.in-addr.arpa nameserver = EPAZOTE.ARIN.NET
192.in-addr.arpa nameserver = Y.ARIN.NET
192.in-addr.arpa nameserver = Z.ARIN.NET
*** Can't find server name for address 192.228.79.201: No information
Server: UnKnown
Address: 192.228.79.201
Name: www.dir.bg
Served by:
- NS.REGISTER.bg
192.92.129.99
bg
- NS2.REGISTER.bg
193.68.3.232
bg
- NS-BG.RIPE.NET
193.0.12.34
bg
- SUNIC.SUNET.SE
192.36.125.2
bg
- NS-EXT.VIX.COM
204.152.184.64
bg
Получаваме списъка с именни сървъри, поддържащи .BG областта. Търсим информация
от основния сървър за областта: ns.register.bg
3. Въвеждаме “nslookup www.dir.bg ns.register.bg”, вторият параметър е конкретния
DNS сървър, към който да се направи запитането.
C:\Documents and Settings\Inet>nslookup www.dir.bg ns.register.bg
(root) nameserver = M.ROOT-SERVERS.NET
(root) nameserver = A.ROOT-SERVERS.NET
(root) nameserver = B.ROOT-SERVERS.NET
Page 15
Б12-2
(root) nameserver = C.ROOT-SERVERS.NET
(root) nameserver = D.ROOT-SERVERS.NET
(root) nameserver = E.ROOT-SERVERS.NET
(root) nameserver = F.ROOT-SERVERS.NET
(root) nameserver = G.ROOT-SERVERS.NET
(root) nameserver = H.ROOT-SERVERS.NET
(root) nameserver = I.ROOT-SERVERS.NET
(root) nameserver = J.ROOT-SERVERS.NET
(root) nameserver = K.ROOT-SERVERS.NET
(root) nameserver = L.ROOT-SERVERS.NET
A.ROOT-SERVERS.NET internet address = 198.41.0.4
A.ROOT-SERVERS.NET AAAA IPv6 address = 2001:503:ba3e::2:30
B.ROOT-SERVERS.NET internet address = 192.228.79.201
C.ROOT-SERVERS.NET internet address = 192.33.4.12
D.ROOT-SERVERS.NET internet address = 128.8.10.90
E.ROOT-SERVERS.NET internet address = 192.203.230.10
F.ROOT-SERVERS.NET internet address = 192.5.5.241
F.ROOT-SERVERS.NET AAAA IPv6 address = 2001:500:2f::f
G.ROOT-SERVERS.NET internet address = 192.112.36.4
H.ROOT-SERVERS.NET internet address = 128.63.2.53
H.ROOT-SERVERS.NET AAAA IPv6 address = 2001:500:1::803f:235
I.ROOT-SERVERS.NET internet address = 192.36.148.17
J.ROOT-SERVERS.NET internet address = 192.58.128.30
*** Can't find server name for address 192.92.129.99: No information
Server: UnKnown
Address: 192.92.129.99
Name: www.dir.bg
Served by:
- ns.dir.bg
194.145.63.2
dir.bg
- ns2.dir.bg
194.145.63.13
dir.bg
Откриваме DNS сървърите, поддържащи областта ‘dir.bg’. Отправяме запитване към
ns.dir.bg
4. Въвеждаме “nslookup www.dir.bg ns.dir.bg”
C:\Documents and Settings\Inet>nslookup www.dir.bg ns.dir.bg
Server: ns.dir.bg
Address: 194.145.63.2
Name: dir.bg
Address: 194.145.63.12
Aliases: www.dir.bg
Получаваме точен отговор. Търсения IP адрес е: ‘194.145.63.12’.
Да направим обратното запитване. Да потърсим името, отговарящо на адреса
‘194.145.63.12’.
4. Въвеждаме “nslookup 194.145.63.12”
C:\Documents and Settings\Inet>nslookup 194.145.63.12
Server: sws-ha-3.btc-net.bg
Address: 212.39.90.42
Name: dir.bg
Address: 194.145.63.12
Отговорът е: ‘dir.bg’.
Page 16
Б13-1
Кеширане и кеш памети Кеш-памет (cache memory) е спомагателна памет за ускоряване на трансфера. Използва
се за ускоряване на достъпа до данни, съхранени на периферните устройства или на мрежов
трафик.
Оперативната памет е много по-бърза и от най-бързото периферно устройство. При
създаване на дисков кеш, част от оперативната памет се заделя за целта. При зареждане на
порция данни от диска в паметта, тя се съхранява в кеша (с допълнителна служебна
информация, например времето за последен достъп). При повторно четене, не се изпълнява
дискова операция, а се връща страницата от кеш паметта. При промяна (запис) се актуализират
данните в кеша. Възможно е записа на твърдия диск на променената порция данни да се
отложи, приложението извършило промяната да продължи своята работа без да изчаква
приключване на дисковата операция. При препълване на кеша трябва част от информацията да
се изхвърли. Има различни стратегии за избор на данни за изхвърляне. Това може да е
страницата, чието време за последен достъп е най-малко („тя е най-стара”).
В компютърните архитектури се използва кеш памет за ускоряване на трансфера между
процесора и оперативната памет. Процесорът работи много по-бързо от възможността паметта
да достави данни. Кеш паметта не е просто друг вид RAM, тя е асоциативна памет. В нея се
съхраняват, както прочетените данни, така и техният адрес и друга служебна информация. При
наличие на търсения адрес в кеша, той връща данните. Първичната кеш памет е на-бързата
памет в компютърната архитектура. За да осигури най-висока скорост, тя се намира в самия
процесор.
Кеш памет използват и някои мрежови протоколи, примерно DNS. В част от паметта се
съхраняват последните успешно изпълнени заявки. Това облекчава DNS сървърите от
изпълняване на последователни еднакви DNS заявки от мрежовите приложения.
Page 17
Б14-1
Интернет протоколите и OSI модела
Съществуват разногласия, как да се впише модела TCP/IP в модела OSI, тъй като нивата им не
съвпадат. В OSI модела няма допълнително ниво „Internetworking” между транспортния и
мрежовия слой. Пример за спорен протокол е протокола ARP.
№ Слой Протоколи 7 Приложен HTTP, SNMP, NFS, RTSP, DHCP, IRC, DNS, NNTP, XMPP, SIP,
BitTorent, XDR, IPP; ел.поща: SMTP, POP3, IMAP4; файлов
трансфер: FTP, TFTP, SFTP; отдалечен достъп: rLogin, Telnet,,
SSH, RDB
6 Представителен XML, XDR, ASN.1, SMB, AFP
5 Сесиен TLS, SSL, ISO 8327 / CCITT X.225, RPC, NetBIOS, ASP
4 Транспортен TCP, UDP, RTP, SCTP, SPX, ATP, DCCP, BGP, GRE, RUDP
3 Мрежов IPv4, IPv6, ICMP, IGMP, CLNP, ARP, RARP, RARP, OSPF, RIP,
IPX, DDP
2 Канален Ethernet, Token ring, FDDI, PPP, SLIP, HDLC, X.25, Frame relay,
ISDN, ATM, DTM, SMDS, MPLS, 802.11, Wi-Fi
1 Физически Серийни: v.28 (RS-232), v.11 (EIA-422), v.35; Телефонни: v.92;
DSL, ISDN; IRDA физ.слой; FireWare; Цифрови линии: T1, T2,
…, T5, E1, E2, …, E5; Ethernet физ.слой: 10BASE-T, 10BASE2,
10BASE5, 100BASE-TX, 100BASE-FX, 100BASE-T, 1000BASE-
T, 1000BASE-SX, Радио-вълни: IEEE 802.11x физ.слой, Bluetooth
физ.слой, GSM радио интерфейс; лазер: FSO
Page 18
Б15-1
Протоколите на OSI
OSI моделът е дефинират от ISO в документ 7498 и в стандартите ITU X.200, X.207,
X.210, X.211, X.212, X.213, X.214, X.215, X.217 and X.800
Протоколите, базирани на OSI модела са:
Приложен слой
ACSE: Association Control Service Element
CMIP: Common Management Information Protocol
CMIS: Common Management Information Service
CMOT: CMIP over TCP/IP
FTAM: File Transfer Access and Management
ROSE: Remote Operation Service Element
RTSE: Reliable Transfer Service Element Protocol
VTP: ISO Virtual Terminal Protocol
X.400: Message Handling Service (ISO email
transmission service) Protocols
X.500: Directory Access Service Protocol (DAP)
Представителен слой ISO-PP: OSI Presentation Layer Protocol
ASN.1: Abstract Syntax Notation One
Сесиен слой ISO-SP: OSI Session Layer Protocol
Транспортен слой ISO-TP: OSI Transport Protocols: TP0, TP1, TP2,
TP3, TP4
Мрежов слой
ISO-IP: CLNP: Connectionless Network Protocol
CONP: Connection-Oriented Network Protocol
ES-IS: End System to Intermediate System Routing
Exchange protocol
IDRP: Inter-Domain Routing Protocol
IS-IS: Intermediate System to Intermediate System
Физически слой HDLC: High Level Data Link Control protocol
LAPB: Link Access Procedure Balanced for X.25