Similar presentations:
Передача мультисервисного трафика в IP-сетях. TCP/IP Protocol Stack
1. Передача мультисервисного трафика в IP-сетях
Стек протоколов TCP/IPПроф.В.Ю.Деарт
2. TCP/IP Protocol Stack
Application6
5
Presentation
Session
5
Application
4
4
Transport
3
Network
2
Data Link
Transport
3
Internet
2
Data Link
1
1
Physical
Physical
3. Application Layer Overview
ApplicationTransport
Internet
Data Link
Physical
File Transfer
- TFTP
- FTP
- NFS
- SMTP
Remote Login
- Telnet
- rlogin
Network Management
- SNMP
Name Management
- DNS
4. Transport Layer Overview
ApplicationTransport
Internet
Data Link
Physical
Transmission Control
Protocol (TCP)
ConnectionOriented
User Datagram
Protocol (UDP)
Connectionless
5. Internet Layer Overview
Internet Protocol (IP)Application
Transport
Internet
Internet Control Message
Protocol (ICMP)
Address Resolution
Protocol (ARP)
Data Link
Physical
Reverse Address
Resolution Protocol (RARP)
• OSI network layer corresponds to the
TCP/IP internet layer
6. Структура IP пакета
Версия. Чаше используется версия 40
15
4-bit
ver
4-bit
IHL
TOS
31
16-bit total packet length
flags
3-bit
16-bit identification
TTL
16
Protocol
13-bit Fr offset
Header checksum
Source address
Destination address
Options (+padding)
IHL - IP header length – Длина заголовка
IP. Единица в IHL - 32-битное слово.
Поле состоит из 4х бит =>максимальная
длина заголовка IP 60 байт
TOS - type of service – Тип сервиса
Первые 3 бита образуют подполе
приоритета 4 TOS должен быть равен 0.
Остальные 4 бита TOS:
минимизация задержки
максимизация пропускной
способности
максимизация надежности доставки
минимизация стоимости
Только 1 из этих 4 бит может быть 1
TPL – полная длина пакета в байтах.
Максимальная длина IP пакета 65535.
DATA
IDENTIFICATION – это поле
используется когда IP нуждается в
дефрагментации датаграммы.
Все фрагменты должны иметь
одинаковое значение данного поля.
Продолжение...
7. Структура IP пакета
015
4-bit
ver
4-bit
IHL
TOS
31
16-bit total packet length
flags
3-bit
16-bit identification
TTL
16
Protocol
13-bit Fr offset
Header checksum
Source address
Destination address
Options (+padding)
TTL - time-to-live-время жизни
Предельный срок в течение которого
пакет может пересекаться по сети.Это
поле. Это поле уменьшается каждый раз
при обработке заголовка IP пакета.
Когда поле становится равным 0
датаграмма уничтожается
маршрутизатором и ICMP сообщение
посылается отправителю.
PROTOCOL – поле указывает какому
протоколу верхнего уровня
принадлежит информация в поле
данных пакета.
HEADER CHECKSUM рассчитывается
только по заголовку.
SOURCE и DESTINATION – IP адреса
отправителя и получателя.
DATA
OPTIONS поле переменной длины для
различных опций.Часть из них мы
обсудим позже. В конце поля OPTIONS
должно быть добавлено несколько байт
для выравнивания заголовка пакета по
32х битной границе.
DATA – поле Данных
8. IP Addressing
32 bitsDotted
Decimal
Maximum
Network
255
255
Host
255
255
9. IP Addressing
32 bitsDotted
Decimal
Network
16 17
255
24 25
32
11111111 11111111
11111111 11111111
128
64
32
16
8
4
2
1
128
64
32
16
8
4
2
1
8 9
255
128
64
32
16
8
4
2
1
128
64
32
16
8
4
2
1
1
Binary
255
255
Maximum
Host
10. IP Addressing
32 bitsDotted
Decimal
Network
16 17
255
24 25
32
11111111 11111111
11111111 11111111
128
64
32
16
8
4
2
1
128
64
32
16
8
4
2
1
8 9
255
128
64
32
16
8
4
2
1
128
64
32
16
8
4
2
1
1
Binary
255
255
Maximum
Host
Example
172
16
122
204
Decimal
Example 10101100 00010000 01111010 11001100
Binary
11. IP Address Classes
8 bits8 bits
8 bits
8 bits
Host
Host
Host
Host
Host
• Class A:
Network
• Class B:
Network Network
• Class C:
Network Network Network
• Class D:
Multicast
• Class E:
Research
Host
12. IP Address Classes
Bits:Class A:
Bits:
Class B:
Bits:
Class C:
Bits:
Class D:
1
8 9
0NNNNNNN
16 17
24 25
Host
Host
32
Host
Range (1-126)
1
8 9
10NNNNNN
16 17
Network
Range (128-191)
1
8 9
110NNNNN
Host
16 17
Network
Range (192-223)
1
8 9
1110MMMM
24 25
Host
24 25
Network
16 17
32
32
Host
24 25
32
Multicast Group Multicast Group Multicast Group
Range (224-239)
13. Determining Available Host Addresses
Network0
0
...
...
10101100 00010000 00000000 00000000
00000000 00000001
00000000 00000011
N
1
2
3
...
16
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
172
Host
11111111 11111101
11111111 11111110
11111111 11111111
65534
65535
65536
2
2N-2 = 216-2 = 65534
65534
14. IP Address Classes Exercise
Address10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
Class
Network
Host
15. Subnet Addressing
172.16.2.200172.16.3.5
172.16.3.1
E1
E0
172.16.2.1
172.16.2.2
172.16.3.100
172.16.2.160
172.16
Network
.
2
172.16.3.150
.
160
Subnet Host
New Routing Table
Network
Interface
172.16.2.0
E0
172.16.3.0
E1
16. Subnet Mask
NetworkIP
Address
172
Host
16
0
Network
Default
Subnet
Mask
8-bit
Subnet
Mask
255
0
Host
255
0
0
11111111
11111111
00000000
00000000
Also written as “/16” where 16 represents the number of 1s
in the mask.
Network
Subnet
Host
255
255
255
0
Also written as “/24” where 24 represents the number of 1s
in the mask.
17. Decimal Equivalents of Bit Patterns
128 6432
16
8
4
2
1
0
0
0
0
0
0
0
0
=
0
1
0
0
0
0
0
0
0
=
128
1
1
0
0
0
0
0
0
=
192
1
1
1
0
0
0
0
0
=
224
1
1
1
1
0
0
0
0
=
240
1
1
1
1
1
0
0
0
=
248
1
1
1
1
1
1
0
0
=
252
1
1
1
1
1
1
1
0
=
254
1
1
1
1
1
1
1
1
=
255
18. Subnet Mask without Subnets
NetworkHost
172.16.2.160
10101100
00010000
00000010
10100000
255.255.0.0
11111111
11111111
00000000
00000000
10101100
00010000
00000000
00000000
172
16
0
0
Network
Number
• Subnets not in use—the default
19. Subnet Mask with Subnets
Network172.16.2.160
Host
10101100
00010000
00000010
10100000
11111111
11111111
11111111
00000000
10101100
00010000
00000010
00000000
172
16
128
192
224
240
248
252
254
255
255.255.255.0
Subnet
Network
Number
2
0
• Network number extended by eight bits
20. Subnet Mask with Subnets (cont.)
255.255.255.192Network
Number
Host
10101100
00010000
00000010
10100000
11111111
11111111
11111111
11000000
10101100
00010000
00000010
10000000
128
192
224
240
248
252
254
255
172.16.2.160
Subnet
128
192
224
240
248
252
254
255
Network
172
16
2
128
• Network number extended by ten bits
21. Subnet Mask Exercise
AddressSubnet Mask
172.16.2.10
255.255.255.0
10.6.24.20
255.255.240.0
10.30.36.12
255.255.255.0
Class
Subnet
22. Broadcast Addresses
172.16.3.0172.16.4.0
172.16.1.0
172.16.2.0
172.16.3.255
(Directed broadcast)
255.255.255.255
(Local network broadcast)
172.16.255.255
(All subnets broadcast)
X
23. Addressing Summary Example
172.16.2.160255.255.255.192
172
16
10101100
00010000
2
160
00000010 10100000 Host
1
Mask
Subnet 4
Broadcast
First
Last
24. Специальные IP - адреса
• 0.0.0.0 – используется для загрузки ОС• 127.0.0.1 – внутренний шлейф ПК (loopback)
• Адреса частных локальных сетей (не
маршрутируются в Интернет):
• 10.0.0.0 - 10.255.255.255
• 172.16.0.0 - 172.31.255.255
• 192.168.0.0 - 192.168.255.255
25. Internet Control Message Protocol
ApplicationTransport
1
Destination
Unreachable
ICMP
Echo (Ping)
Internet
Other
Data Link
Physical
26. Address Resolution Protocol
I need theEthernet
address of
176.16.3.2.
172.16.3.1
172.16.3.2
IP: 172.16.3.2 = ???
27. Address Resolution Protocol
I need theEthernet
address of
176.16.3.2.
I heard that broadcast.
The message is for me.
Here is my Ethernet
address.
172.16.3.1
172.16.3.2
IP: 172.16.3.2 = ???
28. Address Resolution Protocol
I need theEthernet
address of
176.16.3.2.
I heard that broadcast.
The message is for me.
Here is my Ethernet
address.
172.16.3.1
172.16.3.2
IP: 172.16.3.2 = ???
IP: 172.16.3.2
Ethernet: 0800.0020.1111
29. Address Resolution Protocol
I need theEthernet
address of
176.16.3.2.
I heard that broadcast.
The message is for me.
Here is my Ethernet
address.
172.16.3.1
172.16.3.2
IP: 172.16.3.2 = ???
IP: 172.16.3.2
Ethernet: 0800.0020.1111
• Map IP
• Local ARP
MAC
30. TCP Segment Format
Bit 0Bit 15 Bit 16
Bit 31
Destination port (16)
Source port (16)
Sequence number (32)
Acknowledgement number (32)
Header
length (4)
Reserved (6) Code bits (6)
Checksum (16)
Window (16)
Urgent (16)
Options (0 or 32 if any)
Data (varies)
20
Bytes
31. Port Numbers
ApplicationLayer
Transport
Layer
F
T
P
T
E
L
N
E
T
S
M
T
P
D
N
S
T
F
T
P
S
N
M
P
R
I
P
21
23
25
53
69
161
520
TCP
UDP
Port
Numbers
32. TCP Port Numbers
SourcePort
Dest.
Port
…
Telnet Z
Host Z
Host A
SP
DP
1028
23
…
Dest. port = 23.
Send packet to my
Telnet
application.
33. TCP Three Way Handshake/Open Connection
Host A1
Host B
Send SYN
(seq=100 ctl=SYN)
SYN received
34. TCP Three Way Handshake/Open Connection
Host A1
Host B
Send SYN
(seq=100 ctl=SYN)
SYN received
SYN received
Send SYN, ACK 2
(seq=300 ack=101 ctl=syn,ack)
35. TCP Three Way Handshake/Open Connection
Host A1
Host B
Send SYN
(seq=100 ctl=SYN)
SYN received
SYN received
3
Established
(seq=101 ack=301 ctl=ack)
Send SYN, ACK 2
(seq=300 ack=101 ctl=syn,ack)
36. TCP Simple Acknowledgment
SenderReceiver
Send 1
Receive 1
Send ACK 2
Receive ACK 2
Send 2
Receive 2
Send ACK 3
Receive ACK 3
Send 3
Receive 3
Send ACK 4
Receive ACK 4
• Window size = 1
37. TCP Sequence and Acknowledgment Numbers
SourcePort
Dest.
Port
I just
sent #10.
Sequence
#
Acknowledgement
#
…
I just got #10,
now I need #11.
Source Dest. Seq. Ack.
1028
23
10
1
Source Dest. Seq. Ack.
23
1028
1
11
38. TCP Sequence and Acknowledgment Numbers
SourcePort
Dest.
Port
I just
sent #11.
Sequence
#
Acknowledgement
#
…
I just got #11,
now I need #12.
Source Dest. Seq. Ack.
1028
23
10
100
Source Dest. Seq. Ack.
23
1028 100
11
Source Dest. Seq. Ack.
1028
23
11
101
Source Dest. Seq. Ack.
23
1028 101
12
39. TCP Windowing
SenderWindow size = 3
Send 1
Receiver
Window size = 3
Send 2
Window size = 3
Send 3
ACK 3
Window size = 2
Packet 3 is
Dropped
40. TCP Windowing
SenderWindow size = 3
Send 1
Receiver
Window size = 3
Send 2
Window size = 3
Send 3
Window size = 3
Send 3
Window size = 3
Send 4
ACK 3
Window size = 2
Packet 3 is
Dropped
41. TCP Windowing
SenderWindow size = 3
Send 1
Window size = 3
Receiver
Window size = 3
Send 2
Window size = 3
Send 3
Packet 3 is
ACK 3
Window size = 2 Dropped
Window size = 3
Send 3
Window size = 3
Send 4
ACK 5
Window size = 2
42.
TCP connection establishment and terminationactive open
Client
Server
passive open
SYN J
SYN_SENT
SYN_RCVD
SYN K, ack J+1
ESTABLISHED
ack K+1
ESTABLISHED
active close
FIN_WAIT_1
passive close
FIN M
ack M+1
CLOSE_WAIT
FIN_WAIT_2
FIN N
LAST_ACK
TIME_WAIT
ack N+1
Client stays in this
state for twice the
MSL
CLOSED
43. TCP соединение с 3-мя повторными запросами
TCP1SYN
TCP2
ACK=0
SN=0
ASK
DATA 2
ACK=1
ACK=1
SN=1
DATA 1
SN=0
SN=1
ACK=1
ACK=301
ACK=301
SN=301
SN=1441
ACK=2881
ACK=301
SN=2881
DATA 4
ACK=301
SN=4321
DATA 6
DATA 7
ACK=301
DUP#1
DATA 8
DUP#2
DATA 9
DUP#3
SN=301
AСK
ACK=5761
ACK=301 SN=5761
X
ACK=301 SN=7201
DATA 5
DATA 0
SN=1
DATA 3
SN=301
SYN/ACK
AСK
Х
Х
SN=8641
ACK=5761
AСK
ACK=301 SN=10081
SN=301
ACK=5761
AСK
ACK=301 SN=11521
SN=301
ACK=5761
DATA 5
ACK=301 SN=5761
DATA 6
ACK=301 SN=7201
SN=301 ACK=12961
AСK
AСK
44. Трассировка ТСР соединения
45. UDP Segment Format
Bit1 0
Bit 15 Bit 16
Bit 31
Destination port (16)
Source port (16)
Length (16)
Checksum (16)
Data (if any)
• No sequence or acknowledgment fields
8
Bytes
46. Формат псевдозаголовка UDP
Source IP addressDestination IP address
Ноль
Protocol
UDP Length
47. Инкапсуляция UDP дейтаграмм
Заголовок UDPЗаголовок IP
Заголовок Ethernet
Область данных UDP
Область данных IP
Область данных кадра
Оконч.
48.
Source IP addressDestination IP address
Ноль
Protocol
UDP Length
49. Сравнение стеков протоколов
• Стек TCP/IP• Стек UDP/IP
• Обеспечивает надежную
доставку данных за счет
повторной передачи
потерянных пакетов
• Вносит задержки
• Используется приложениями
нечувствительными к задеркам, но чувствительными к
потерям кадров:
• HTTP, FTP,SMTP, SNMP
• Не обеспечивает надежной
доставки пакетов
• Не вносит доп. задержек и
доп. избыточность (мал. заг)
• Используется приложениями
чувствительными к задержкам, но менее чувствительными к потерям пакетов:
• VoIP, Video Conference, VoD