Upload
sergiu-panico
View
102
Download
18
Embed Size (px)
DESCRIPTION
sxgjfjh
Citation preview
NataHaus.RU
COMPUTERNETWORKS
4th edition
Andrew S. Tanenbaum
Prentice Hall PTRUpper Saddle River, New Jersey 07458www.phptr.com
HARCCMHR COtTlPUTER SCIENCE
.
4-
- --
2003
NataHaus.RU
COMPUTERNETWORKS
4th edition
Andrew S. Tanenbaum
Prentice Hall PTRUpper Saddle River, New Jersey 07458www.phptr.com
HARCCMHR COtTlPUTER SCIENCE
.
4-
- --
2003
NataHaus.RU
32.973.202
681.324
18
18 . 4- . / . . .: , 2003. 992 :. ( computer science).
ISBN 5-318-00492-
, - . , , .
- , , . , - , ATM .
32.973.202
681.324
-|5
-\j
1. 21
2. -4
3. 222
4. 291
5. 399
6. 551
7. 658
8. 814
9. 941
971
, , , . , , , .
ISBN 0-13-066102-3 (.)ISBN 5-318-00492-
2003, 1996 Pearson Education, Inc. , , 2003 , , , 2003
NataHaus.RU
16
17
20
1. 21
23
23 26 31 35
37
39 40 42 44 46 49
50 50 54
56 58 61
62
OSI 62 TCP/IP 66 OSI TCP 69 OSI 70 TCP/IP 73
74 75 : .25, , ATM 86
Ethernet 92 : 802.11 95
98 99 102 104
106
107
108
110
2. 114
115
115 115 118
119
119 120 121 122
129
130 133 134 138 138
140
141 145 145 148
149
150 153 : , ADSL, 156 171 182
187
: 189
: 193
: . . . . 203
NataHaus.RU
COMPUTERNETWORKS
4th edition
Andrew S. Tanenbaum
Prentice Hall PTRUpper Saddle River, New Jersey 07458www.phptr.com
HARCCMHR COtTlPUTER SCIENCE
.
4-
- --
2003
NataHaus.RU
32.973.202
681.324
18
18 . 4- . / . . .: , 2003. 992 :. ( computer science).
ISBN 5-318-00492-
, - . , , .
- , , . , - , ATM .
32.973.202
681.324
-|5
-\j
1. 21
2. -4
3. 222
4. 291
5. 399
6. 551
7. 658
8. 814
9. 941
971
, , , . , , , .
ISBN 0-13-066102-3 (.)ISBN 5-318-00492-
2003, 1996 Pearson Education, Inc. , , 2003 , , , 2003
NataHaus.RU
16
17
20
1. 21
23
23 26 31 35
37
39 40 42 44 46 49
50 50 54
56 58 61
62
OSI 62 TCP/IP 66 OSI TCP 69 OSI 70 TCP/IP 73
74 75 : .25, , ATM 86
Ethernet 92 : 802.11 95
98 99 102 104
106
107
108
110
2. 114
115
115 115 118
119
119 120 121 122
129
130 133 134 138 138
140
141 145 145 148
149
150 153 : , ADSL, 156 171 182
187
: 189
: 193
: . . . . 203
NataHaus.RU
206
207
208 209 211ADSL ? 214
215
216
3. 222
223
, 224 227 230 231
232
233 236
240
245 246 248
252
254 257 264
270
270 273
276
HDLC 276 280
4. 291
295 ALOHA
285
286
292
292
294
295 300
9
304 307 . . . . 310 313
Ethernet 317 Ethernet 317 321 Ethernet 322 325 802.3 326 Ethernet 329 Ethernet 330 Ethernet 334 IEEE 802.2: LLC 339 Ethernet 340
341
802.11: 341 802.11: 342 802.11: . . . . 345 802.11: 350 351
353
802.11 802.16 354 802.16: 355 802.16: 356 802.16: MAC 358 802.16: 360
Bluetooth 361
Bluetooth 362 Bluetooth 363Bluetooth: 365Bluetooth: 367Bluetooth: 367Bluetooth: L2CAP 368Bluetooth: 369
370
802.x 802. 372 375 377 378, , , ,
379 382
391
394
NataHaus.RU
10
' 5. 399
400 4 0 0
, 401 402 404
405
406
408 409 412 413 417 424 426 428 430 433 439
444
446 448 450 451 454 456
458
458 460 472 475 MPLS 478
481
483 484 486 487 489 490 492
495
IP 498IP- 501 515 OSPF 520
BGP 526 528 IP 529 IPv6 532
542
543
6. 551
551, 552 554 557 :
- 559
563
564 567 573 577 582 583
585
585 587 595
: UDP 598
UDP 598 600 603
: TCP 607
TCP 607 TCP 608 TCP 610 TCP- 611 TCP- 614 TCP 616 TCP- 616 619 TCP 623 TCP 626 TCP UDP 629 TCP 632
633 634 637
NataHaus.RU
1 2
6 4 0
TPDU- 644
648
652
653
7. 658 DNS 658
DNS 659 662 665
668
670 672 675 683 686
(WWW) 693
694 - 712 - 727HTTP 735 741 748l-mode 750
760
761 764 767- 771 IP 774 782 786 795 803
807
808
8. 814 818
819 821 823 824 830
13
832
DES 834 DES 836 AES 837 841 847 848
849
RSA 850 852
853
853 855 856 861
863
864.509 866 867
871
IPsec 871 876 879 881
886
, 887 :
892 894 Kerberos 897 900
901
PGP 901 906S/MIME 907
907
908 909SSL 916 920
923
924 927 931
NataHaus.RU
9.
. 934
. 935
941. 941. 942. 943
, , ,
. .' .' .' . . . . .
. . . .
946. 947. 949. 950. 951
. 952
971
NataHaus.RU
- - . -, . ,. (, - , -). .
, , . - , . - www.cs.vu.nl/globe. , , 2003 , . .
. (Amsterdam Compiler Kit), - , MINIX, UNIX, . Amoeba, - . MINIX Amoeba .
, , - . .
IEEE, - , - 1994 , ACM/SIGCSE 1997 Texty 2002 . . http://www.cs.vu.nl/~ast/.
. - . , 1980 , - , . (1988 ) , . 1996 , , , . , - .
, , - . 90- LAN WAN -. 2003 , LAN, Ethernet, WAN , . .
, , , . - : 802.11, , 2G 3G, Bluetooth, WAP, i-mode - , . , .
1, , , - . , - , Ethernet, , - . .
2 . , - , - ( , , ). : - , , . , ADSL, , , DOCSIS.
.o^ate...
NataHaus.RU
18
3 - (point-to-point) . . - , .
(MAC) - , 4. , Ethernet, Ethernet. - , - , , Bluetooth, ( MPLS).
5 , ATM, , . - . , , . , - NAT .
6 - , - . , . - , . - - -, . - , . RTP, -/ .
7, , . - DNS , : e-mail, Web . - . , Web 60 , : - -, HTTP, CGI-, , cookie--, -. , XML, XSL, XHTML, PHP . . , . -, i-mode WAP. , , , , --, IP.
, 100 . 8 ( , , .509), (-, e-mail, Web). , ( ), ( - SHA-1).
19
9 - , 350 , . 200 , 2000 .
. . : ADSL, AES, AMPS, AODV, ARP, ATM, BGP,CDMA, CDN, CGI, CIDR, DCF, DES, DHCP, DMCA, FDM, FHSS, GPRS, GSM,HDLC, HFC, HTML, HTTP, ICMP, IMAP, ISP, ITU, LAN, LMDS, MAC, MACA,MIME MPEG, MPLS, MTU, NAP, NAT, NSA, NTSC, OFDM, OSPF, PCF, PCM,PGP PHP, PKI, POTS, PPP, PSTN, QAM, QPSK, RED, RFC, RPC, RSA, RSVP,RTP, SSL, TCP, TDM, UDP, URL, UTP, VLAN, VPN, VSAT, WAN, WAP,WDMA, WEP, WWW XML. , - . .
, , :
;
, ;
Power Point ;
3 ( );
- (-, , . .).
( !) Prentice Hall. http://www.prenhall.com/tanenbaum. - .
- , . (Ross Anderson), - (Elizabeth Belding-Royer), - (Steve Bellovin), (Chatschik Bisdikian), (KeesBot), (Scott Bradner), (Jennifer Bray), (Pat Cain), (Ed Felten), (Warwick Ford), (Kevin Fu), (Ron Fulle), (Jim Geier), (Mario Gerla), (Nathalie Giroux), (Steve Hanna), (Jeff Hayes), (Amir Herzberg), (PhilipHomburg), (Philipp Hoschka), (David Green), (Bart Jacobs), (Frans Kaashoek), (Steve Kent), (Roger Kermode), (Robert Kinicki), - (Shay Kutten), (Rob Lanphier), (Marcus Leech), (Tom Maufer), (Brent Miller), (Shivakant Mishra), (Thomas Nadeau), (ShlomoOvadia), (Kaveh Pahlavan), (Radia Perlman), - (Guilaumme Pierre), (Wayne Pleasant), (Patrick Powell), (Thomas Robertazzi), (Medy
NataHaus.RU
20
Sanadidi), (Christian Schmutzer), (Henning Schulzrinne), (Paul Sevinc), (MihailSichitiu), (Bernard Sklar), (Ed Skodius), - (Bob Strader), (George Swallow), (George Thiruvathukal), (Peter Tomsu), (PatrickVerkaik), (Dave Vittali), (Spyros Voulgaris),- (Jan-Mark Warns), (Ruediger Weis), - (Bert Wijnen), (Joseph Wilkes), (Leendertvan Doom) (Maarten van Steen).
(Trudy Levine), , - . (Shivakant Mishra) , - . (Andy Dornan) - . (Jan Looyen) . . (Dr. F. de Nies) - . (Mary Franz) Prentice Hall, , , - 7 , .
, : (Suzanne), (Barbara) - (Marvin). , , . , ( , ), . .
.
1
, [email protected] ( , ).
! web- -
http://www.piter.com.
- . XVIII - . XIX . XX , -. - , , - , .
. , -, . - , , - , . , - .
NataHaus.RU
22 1.
(, -), . , , -. , - . - - , . - , - 20 - , .
- . , , . , , , , - . . - .
-. , - . - . , , . . , , (WWW) . , -. : -, .
. , - - . , . ( ), - . (World Wide Web), , , (-).
, - . , - . , - , .
23
, -
. , -
. . , - - ( ), .
. , - , . , -.
, - . - : ., . . - . .: , 2003 (Tannenbaum and van Steen, 2002).
, , - . , , - . - , -, , , .
, . , , , - . - , - { , - .
, , , , - . - , , . , , , -, , .
NataHaus.RU
24 1.
, , , - (, , --), . , , , - . -, , , , . - , , , -. - . , , , , .
, , . -, , - . , -, , . , , - 15 , . , .
, . - , . - . , , - , -, . ( - . , , , .) - , . 1.1. : - , . - . - , .
- . . - , , - . , --, . - , . .
25
. 1.1. ,
- , , : . . . - , . . 1.2.
-
. 1.2. -
, . , . , - (e-mail), - . , - , : , .
e-mail , . . , , (on-line), , -
NataHaus.RU
26 1.
. - .
. , , , - , , . , , ( ). - , , . - , -. - , .
- . -. , , , , . - . -, -, .
-. . -, , , -., , - , - , . - , (on-line) . - .
1977 (Ken Olsen) DEC (DigitalEquipment Corporation), (IBM) , . , DEC , -: , ., , , - , DEC -. ? . , , , -. , , :
;
;
27
;
.
. . , - . , , , ,, , , , , , - . , .
, -. , , , , , -, , . , -, , , . , , , , - .
. , (www.acm.org) IEEE (www.computer.org), - . - . , , , , - . , .
. - , XXI XIX . , - . - , -, - .
- (). , , talk, UNIX 1970 . - . , - , , , .
, , , , - . ,
NataHaus.RU
2 8 1.
, - , , . , , , - . -, , , -, .
(peer-to-peer). -(Parameswaran ., 2001). , , . , , . . 1.3.
2000 , Napster. - 50 (!) , - , , , . -. , Napster. - - - , -, , . Napster , , . .
. 1.3.
, , , - . . , - Napster, , -
29
- . , , , . , , , - .
. . , , - -. , , - , , , . . , , . , - - e-mail . , .
, , . . . , . .? -, , - . , , (, ), -, , - -, . , , - ? .
, , IP-, , -. . - . , , , - 8 , . - -.
, - . -. - - -. , - ( - ?) , - . , . .
NataHaus.RU
30 1.
, - . , . - - , - , -. -, - - .
- . - . , , - -, - , . -, , . - , , , .
: - . , - . - , , .
, - , - . , - , . - , -, ( - ). - , . 1.1. ( to, ?, ?, , 2 (two). .)
1.1.
2
2
G2C
2
2
(Business-to-Consumer)
(Business-to-Business)
(Government-to-Client)
(Client-to-Client)
(Peer-to-Peer)
on-line
31
, . . 10 , - , SMS-, -, , - ?
, - . -, , -, , . - ; . - ( , ), . - , - , -.
(PDA) , . , . , - , -, . - .
, ? . , , , - , . - -. , . , , - . , , -, .
, , , -. -
NataHaus.RU
32 1. 33
, ., -, - . . , - -. - . , , .
. - .
-, . . 1.2. , . - . -, , , - .
, . , - , , - . , - , . , , , - . , - , .
1.2.
,
; PDA,
, - PDA, -, . , , - . - , , -, PDA .
. . , -
, , -. , . -, ( - ), , . -, 10 (Harte ., 2000). , , , , , , , .
, - , - . , . . - - , , -. , ,, , - .
, - , . -, , , . . - , , . , , -, . , , , - - .
, - , PDA. - PDA, - . - WAP 1.0 (, ). - , , , . WAP 2.O.
, , (m-commerce). - PDA - . , , PDA -. , -. --
NataHaus.RU
34 1.
. . , . , , -: , , PDA , . , PDA - , -.
, , - , . , , . . ? , , : ,, ? , .
, , - - . , - . - , - , . - , , -. , .
, , , . - . IBM - Linux ( XII). , (Narayanaswami ., 2002). - , . - -. . - PIN- - . - -- (, ). - .
, (DickTracy) 1946 . , , . - 1 (Warneke ., 2001). - -, , !
35
, - . , - , , . , - . , - - , , , .
, , - , , . , , . . , , , . -. , , (, ) . - ; , .
, - , . , - , , -. , , , , , , . , .
, - . , , -, , . .
- , - ? ? 1994 (CarnegieMellon University) , - , - ( 18 ). , .
-. , - , , ,
NataHaus.RU
36 1. 37
(Blaze, Bellovin, 2000; Sobel, 2001; Zacks, 2001). - Carnivore ( . . .), -. DCS 1000. . . -, - . , 54 -- XXI , , XXII .
, . , , -. cookie-, , , - - - (Berghel, 2001).
-. . , , , - , , , . , - , . - .
, 500 , - . - , .
. , . - , ? , - , , , . - . , , , , , e-mail . , --, -. , , .
, , . . . , , , - . , - -
. - .
, . - , , , . , - , 8. , , , , . - ( ), . . , , . , , , - , . , , , -, .
- . -, , , : . .
, :
;
4- .
, - . , , , . , . . , . , , .
, - : , . . () -, . . - , - 644 12.
. - , . -
NataHaus.RU
38 1.
. , . - . -1 -. , . , , .
, , . , - , . , - . ( ) , - - , . , .
. . 1.4 - -. , , . , , , . PDA, -, . - . , - . .
. 1.4.
1
100
1
10
100
1000
10 000
39
. - , . , . - .
, , , - - . - (, ) . : -, .
, . , - . , - .
, - , . - , . 10 100 /, ( ) . - , 10 /. - - (1 1 000 000 ) (1 1 000 000 000 ).
- . . 1.5 . ( ) (master) .
. - - , -, . - . , IEEE 802.3, Ethernet, - , - 10 / 10 /. Ethernet . - , - .
NataHaus.RU
40 1. 41
9 9 9 9 9 9\.
. 1.5. : (); ()
. , . , . , - . . IEEE 802.5 ( ) , 4 16 /. FDDI ( ).
- . - , - . , , . ( ) .
. , - , . - . , - . , - , . -, .
(metropolitan area network, MAN) - . . ,
. - - , .
, - . - , . - , . - . , , , -- . . 90- - .
, - , , , - , - ( ) . . MAN , . 1.6. , - , . . .
-
ffiSE fflffi fflffi
| I |
I ss | si as .
. 1.6.
, . - , , MAN, IEEE802.16. 2.
NataHaus.RU
42 1. 43
(wide area network, WAN) - , . -, ( -). . , . ( ), . , -. , () - (), .
-: . , , . - , - . , . . (router), , . , - router doubter, , - router rooter ().
, . 1.7, , , . - ( ) .
. 1.7.
(subnet). - , . , - ( 5). , -, . , - , . , .
, . - , . - , - , , , . -, , (store-and-forward) (packet-switched). ( -) . - (cell).
- , . , - , , , -. - . . . 1.8.
, D
. 1.8.
, , ABDE ACDE. - . -.
NataHaus.RU
44 1.
. , , - . -. , 5.
. - - . , . - , , . , - . , .
. 1901 (Guglielmo Marconi) , , . - , .
:
;
(LAN);
(WAN).
- . : ,, , ... , , . , - , - ? - , , , . - Bluetooth, , . , Bluetooth - , , . , - , . , - , . , -
45
, . .
- . - , . -? , -, , , . . Bluetooth - 4.
( ). - , . , , - , , . - , - Ethernet , , , , , - . IEEE 802.11, . 4.
. , - . - . . , , , - . , , , , . , , . - 50 / , 1 /, -, . 2 .
-, - . : , - . . . -, IEEE 802.16, 4.
- , - , , , . - . , . 1.9, -
NataHaus.RU
46 1.
, , , . - . (. 1.9, ). Ethernet, . , - , . . - , , , .
, - (., , Bi ., 2001; Leeper, 2001; Varshey Vetter,2000), , ., , Ethernet (Bob Metcalfe) 1995 -: - . , - -. . , , , IBM . . (. J. Watson), 1945 , : - , 2000 -- .
\
. 1.9. (); ()
. , , , , - . , , , (, , - ), , , .
47
, . :
( , , PDA, );
(, DVD, VCR, -, , -);
+ (, , - , );
( , , , - , , );
(, , -, ).
, , . . , - - , . , , , , - , , -. , , , , - . - ( ). . , . , - , . , - , , - , PDA. - , , - , , , , .
, . -, . - ; . - - , . :
+ ;
;
NataHaus.RU
48 1. 49
, , ;
4- - .
, - Windows -.
- - , , . - , - , - , , . , , , -. , - .
-, . , - (, , ), - . , , , . , -, .
-, . , - . $50 --, . , .
-, , , - . , - . -, - 320x240 10 , . Ethernet - . , - : - , . .
-, , - , - . , . , , IEEE 1394 (FireWire), , USB 2.0 . . - , ( ) .
-, . , - , e-mail, , PDA - .
, . : , , ,, , - . , -. , . -, , , . , , , . 8 , , -, , . , , , , .
, . , . , , , , . - .
- . , , , - . . - , , - , . . - , (internet, ) , - ( ).
, - . , . 1.7 , . - . - , . -, , . , .
NataHaus.RU
50 1.
, . - , , . - , , -. , - . ( ) . . - . .
. , - , . - : , , . (, ), , .
, , - . - . . , . - .
, . - , , . - . - .
computer science . - , , - - . - - .
. , , -
51
. , . , - , . , , , , . , , .
. 1.10 . , - , , -, , , . .
1 2
4/5
3/4
2/3
1/2
5
t
1
1
. 1.10. ,
. - , , . - , . . 1.10 , - .
, - , -. ,
NataHaus.RU
54 1.
. .
5
>4
-4
5
4
3
2 2
4
>
4
Mi
Mi 2 2 2
3
2
4 2
i
2
2
2
2
- -
. 1.12. 5
. 4,, , 4-. SendToOtherSide( ) GetFromOtherSide ( ), , 3/4.
. -, .
, , - -. - , .
, - , . - .
55
-. , - , , , . -, .
. , . - , , . - : .
, . , , , . , - , -, .
-. , - , . , : , ?
, : , ? - , . - , - . . .
, , . : , - , ? -.
, - . , -, , ., , , .
NataHaus.RU
56 1.
, . . , - , , - , . -.
: . , .
- . -, , , . - : - , - . : , . - .
, - : , . , -, .
, - . - , . , , - .
. , . , - , , . - . , , .
. , - , -
57
. - , - , -.
: - . . 1 , 1 - . , . 2048 , , - 2 , 1 2048 - . , , , - . , - - .
, , , - , . . - , -, ., - , .
. , - . 100-- , , . , , -, . ( ) - , - , .
, , , . - . . -, , , -.
, , , , ., , - -. - -: , - . . 1.13.
NataHaus.RU
58 1.
<
. 1.13.
- . , , ? -, ( , , -) . , Ethernet . , . -, , - , , . - .
() , . - . ( ), - . - , - , .
. , - . . 1.3 , - -.
. LISTEN, , . - . , .
59
1.3. ,
LISTEN ()
CONNECT ()
RECEIVE ()
SEND ()
DISCONNECT ()
CONNECT, - . , - . , . - , . 1.14 (1). . , , . , -, . -: (2). - . , . , (2) - , . - , , . . , LISTEN.
(1)
(2)
(3)
(4)
(5)
(6)
?s
Im
I. 1.14.
- () . -
NataHaus.RU
60 1.
, - , . . , , .
RECEIVE, - . (LISTEN), , . RECEIVE .
SEND, (3) RECEIVE, .
, . SEND, (4). , - . -, . - DISCONNECT. DISCONNECT , , (5). DISCONNECT, , . , , -, . - .
, . -, - (, CONNECT - LISTEN). , , , . , - -- . - . 1.14.
, , -, ? - : , , , , . (, ), -, , . ., - . , , , ? , - ? , . 1 1 , - ? , -- . 3 -, , . : .
61
, - . , , , . ( ) - (), -< , , , - . , - , -.
, , , , - . - . , , -. , -.
, -, , , . . 1.15. .
. - - - . , , , . - , , - .
+ 1
,
I
+ 1
I
- 1 - 1
. 1.15.
. SEND PACKET, . , . - .
NataHaus.RU
62 1.
, -. - OSI TCP/IP. , OSI, , , , , . TCP/IP , -. , , -. , .
OSI OSI ( ) . 1.16. - (International Organization for Standardization, ISO) - , (Day Zimmerman, 1983). 1995 (Day, 1995). - ISO (ISO OSI (Open System Interconnection) Reference Model), , , - . OSI.
OSI . .
1. -.
2. .
3. - .
4. , - .
5. , - , -, .
, . - : OSI , , . , . ISO - , - . - .
6 3
7
^
6
Y
^
5
i
4
3
>
2
1
i
--
--
-
-
--
-
f
-
I>
>
>
i
i
1
1
-
-
I
i
- - >
- -
t\
-
-
APDU
SPDU
TPDU
. 1.16. OSI
. , , , . : - , ; - ; -; , ; - . - , , , .
- , -
NataHaus.RU
64 1.
. - , . - , .
, ( ), , - . - , - . - .
: . - .
. - . - . , , - . , -, .
-, , . . - ( , , -).
. , , , . -, . , . . , .
, - .
-, , - , . , ,
65
- -.
, - , , . - , , . - , - . - . ( , . , - , .)
, - . , - - . - - , . 1- 3-, -, 4- 7-, , . 1.16.
- . , ( - ), ( - ) ( , , ).
, - , . - , - , -. , (, ).
, . -
NataHaus.RU
6 6 1.
HTTP (HyperText Transfer Protocol), - . -, () , HTTP. . , , .
TCP/IP , ARPANET, , -, . ARPANET - , . ARPANET , - . - . - , . - . , . TCP/IP - . - Cerf (1974). , Leiner . 1985 . Clark, 1988.
, , - , - , - , , . , -, , - , . , , -, .
- , - . , - , . , (, ). -, . -, . , -
67
, .
. , -, -. , - , . ( ) , - , .
, - IP (Internet Protocol). - IP- . . - , TCP/IP - OSI. . 1.17.
TCP/IP
7
6
5
4
3
2
1
OSI
. 1.17. TCP/IP
, TCP/IP, , . , , - OSI. . , TCP (Transmission Control Protocol ), , - - . . - TCP- . , TCP , - .
NataHaus.RU
68 1.
, UDP (User Data Protocol - ), -, TCP . - - , - , , . - IP, TCP UDP . 1.18. IP .
TCP/IP . , OSI : - . "
( OSI)
++
69
(, -). , , - , , .
, , , , ix . , [ . , , . - . . -ia .
-1 , , , -
2 2 3
. , . - -. , - .
. :
> ;
;
, - .
, -, . - , . . 3.1. . - .
>
i
. 3 . 1 .
- , , , , . , - . , , - . , - .
3
2 ( ). , . , , - (, -). , , - , , .
, , , , . , . , , . - . . - .
- , , , -
2 2 3
. , . - -. , - .
. :
;
;
, - .
, -, . - , . . 3.1. . - .
t
J. 3 . 1 .
- , , , , . , - . , , - . , - .
224 3.
, - . - . - , , . - - , , . 3.2, . , - . 3.2, , -, . , - . 3.2, .
1 2
s
4
3
2
1
1
i
2
^
I
1
. 3.2. (); ()
. - . -.
1. , .
2. , .
3. , .
.
, ,
225
. -. - - , . . , , - . -, , , . - - .
-, . - , . -, , . , . - , , .
, , - , . - . - , . , , - . - . , 10 20 % , . , . , , , -, , .
, - , -. , - , . , , - . , , . , , -, , , . .
2 2 6 3. 227
- . , , , , . . , , , - .
: , -, . , ( - , ) ( - ). , , , , , - , . - , . - . 3.3.
|
. 3.3.
, -, . , . - - , . -, , - .
, . -. . - , ; , . , , .
. ( - .) , . , , - , (, - ).
- , . - , , . , , , -, .
- , . - .
1. .
2. .
3. .
4. .
- . - , , , , . . 3.4, 5, 5, 8 8 .
, . , 5 - 7, . 3.4, , . ( ) -, , , . , , - . .
2 2 8 3. 2 2 9
\
5 1 2 3 4 5 6 7 8 9 8 0 1 2 4 5 6 8 7 8 9 0 1 2 3
15
25
8
48
1 2 3 4 7 7 8 9 8 0 1 2 3 4 5 6 9 7 9 0 1 2 3 1
()
. 3.4. : (); ()
- . , - , . - . 3.5, FLAG. , , , - . , - .
FLAG FLAG
FLAG
ESC
ESC FLAG
ESC ESC
ESC FLAG
ESC ESC
ESC ESC ESC FLAG
ESC ESC ESC ESC
. 3.5. , (); ()
, . , - . , , . - escape- ( , ESC) - . escape-, - . . , ESC.
: , ESC ? : escape- . ESC escape--, , . . 3.6, . , .
, . 3.5, - , -. .
, 8- . - 8 . , UNICODE 16- . - . , ./ , . . , 01111110 ( ). , . -, escape-.
, - , . , -, -. (01111110) , 011111010, - : 01111110. . 3.6 - .
. -
2 3 0 3.
, , - , - .
0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0
0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0
0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0
. 3.6. : (); ();, ()
, , . , -. 1 (- ), 0 , ( ). - , . ( ) , .
, - - . , - . , . - , .
, : . , , , -. - , -.
2 3 1
- , . , - . , , . , , , - - .
, - - (, ) . - , , -, . .
, - . , - , . - , - , -, .
, - , . . - . , - , .
, , , , , - . .
( - ) , , - , . , - ( ) , . - , - . - . , - - .
2 3 2 3.
. , , , , , , . , - , , - , . . - , - (, 5).
, - . - , , - . , , , . , - : -, , . , .
2, -, . - . - , . , . , , , - . : . .
, , (, ) , . , . - , . 1000 0,001 . , . , 100 , 100 . , -, .
233
. - - . , , . , , ( ) . , , - . . - -.
, , . - , , - ., , , - , , , , . , , , , - .
, , - , . - ( ) . ( = + ). , , - .
, 10001001 10110001, .
/ 3 . 2 ( ) - , :
10001001
10110001
00111000
, , - , (Hamming, 1950). , - d, - d .
2 , 2" . , - ,
2 3 4 3.
. , .
- . d , d + 1, - d - , . , , - . , d , Id + 1, d - , , , , - .
, . - , - ( ). , 10110101 101101011, 10110001 - 101100010. -, 2, . - .
, :
0000000000, 0000011111, 1111100000 1111111111
, 5, , . 0000000111, , 0000011111. - 0000000000 0000000111, .
, , . 2"' , 1. - . , 2'" - + 1 . - 2", , ( + 1)2 < 2". = + , ( + + 1) < . - .
- (1950). - , 1. , 2 (1, 2, 4,8, 16 . .), . (3, 5, 6, 7, 9, 10 . .) - .
2 3 i
( ) , . , , : k- , k 2. , 11 = 8 + 2 + 1 29 =16 + 8 + 4 + 1. , (, 11- 1, 2 8).
, . k (k = 1, 2, 4, 8,...) . , k . : , , . . , 1, 2 8, , 11, : , 1, 2 8. . 3.7 ! ASCII-, 11- . , 3, 5, 6, 7, 9, 10 11.
ASCII
m
m
i
n
g
d
e
1001000
1100001
1101101
1101101
1101001
1101110
1100111
0100000
1100011
1101111
1100100
1100101 x
00110010000
10111001001
11101010101
11101010101
01101011001
01101010110
01111001111
10011000000
11111000011
10101011111
11111001100
' 00111000101
. 3.7.
. . k , . , . ,
234 3.
. , .
- . d , d + 1, - d - , . , , - . , d , 2d + 1, d - , , , , - .
, . - , - ( ). , 10110101 101101011, 10110001 - 101100010. -, 2, . - .
, :
0000000000, 0000011111, 1111100000 1111111111
, 5, , . 0000000111, , 0000011111. - 0000000000 0000000111, .
, , . 2 , 1. - . , 2 - + 1 . - 2", , ( +1)2 < 2". = + , ( + + 1) < 2. - .
- (1950). - , 1. , 2 (1, 2, 4,8, 16 . .), . (3, 5, 6, 7, 9, 10 . .) - .
235
( ) , . - , . , k- , k 2. , 11 = 8 + 2 + 1, 29 =16 + 8 + 4 + 1. -, (, 11- - 1, 2 8).
, . - k(k = \, 2, 4, 8, ...) . - , k . , , . . , - 1, 2 8, , 11, , 1, 2 8. . 3.7 ASCII-, 11- . -, 3, 5, 6, 7, 9, 10 11.
ASCII
m
m
i
n
g
d
e
1001000
1100001
1101101
1101101
1101001
1101110
1100111
0100000
1100011
1101111
1100100
1100101
00110010000
10111001001
11101010101
11101010101
01101011001
01101010110
01111001111
10011000000
11111000011
10101011111
11111001100
' 00111000101
. 3.7.
. . k , . , . - , -
236 3.
. . - k , . ., . 3.7. , . , - , 1 . , - . , km - .
, , , - - . -, , . , -, , .
, - 1(6 . 1000 . , , 10 - . 10 000 - . 1- , - . 1000 (1001 ). , - 2001 10 000 , -.
, 0,5, - . , - ( ). . . , . , . , .
- , 1 . + 1 , - , .( , , ,
237
.) -, , ( -), 0,5, 2~".
, - , CRC (Cyclic Redundancy Check ). , 0 1. - 1, k *~
. ( ) ~, ~2, . . , 110001 - 6 , , 1, 1, 0, 0, 0 1: 5 + 4 + .
- 2 . . , - (XOR):
10011011 00110011 11110000 01010101
+ 11001010 +11001101 -10100110 -10101111
01010001 11111110 01010110 11111010
, -, , 2, .
, G(x). - 1. - , (), , . , G(x) -. , , , - G(x). .
:
1. G(x). , + ?().
2. 2 , x'Mix), , G{x).
3. 2 ( ) , (). - , ().
. 3.8 1101011011 - G(x) = + + 1.
238 3.
: 1 1 0 1 0 1 1 0 1 1
: 10 0 11
4 : 1 1 0 1 0 1 1 0 1 1 0 0 0 0
1 1 0 0 0 0 1 0 1 0
1 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 0
1 0 0 1 1 I
1 0 0 1 11 0 0 1 1
0 0 0 0 1
0 0 0 0 0
0 0 0 1 0
0 0 0 0 0
0 0 1 0 1
0 0 0 0 0
0 1 0 1 1
0 0 0 0 0
1 0 1 1 0
1 0 0 1 1
0 1 0 1 0
0 0 0 0 0
1 0 1 0 0
1 0 0 1 1
0 1 1 1 0
0 0 0 0 0
1 1 1 0
: 1 1 0 1 0 1 1 0 1 1 1 1 1 0
. 3.8.
^ 6R I T b ' ( 2) G(x) , , - . ,
TZ!"f3^Zo^a 10 941> 2399
-
2399 210 278, (207 879) 10 941 -.
. .' , , () () + (). () . -
239
() k 1, , k . - , , 0.
G(x), [() + E(x)]/G(x). T(x)/G(x) 0, - E(x)/G(x). , - G(x), -, .
, () = 1, i - . G(x) , () , - .
() =* + 1, i >j, () = '('~-' +1). , - G(x) , G(x) * + 1 k 1 i - j, . - , . , 15 + + 1 * + 1 k 1 32 768.
, () - (, 5 + *+ 1, 2 + 1). -, 2 - + 1. , + 1, -, .
, + 1, , () - + 1. , () - () = ( + l)Q(x). = 1: (1) = (1 + l)Q(l). 1 + 1 = 0 ( 2), (1) 0. () , 1 1. , - , + 1.
, , - < . k ^*"1 +...+ 1), i , - . - G(x) , 1 , G(x), .
+ 1, , G(x). , 1, -
2 4 0 3. 2 4 1
, - 1 - . , - (1/2)~'.
, + 1 - (1/2) , .
., , , IEEE 802:
: - 32 , .
, (Peterson) (Brown) 1961 , - . - , .
, , , . . - , -. , , (Part-ridge ., 1995).
- . - (. ). , , - . , -, , . - -, - . (, --; , , . .). , - , .
, - , - . , . , - , , . , -. ( .)
, . , , .
, - , , - . , , .
, , - (. . 3.1). , , ( -) ( ). - . - , , to_physical Jayer from_physical_layer . ( ), . , - , .
. , -, - .
-=wait_for_event(&event). , - (, ). event , . - . , - , , , . - . , - , .
, . ( ), (event = cksum_err). , - (euew=frame_arrival), - from_physical_layer.
L,
242 3.
, , - , , - . .
- : - . , , - . - , - .
3.1 ( ), - , . : boolean,seq_nr, packet, framejdnd frame. boolean , true false. seq_nr , . - 0 MAX_SEQ -, , . packet - , - . _ , .
frame : kind, seq, ack info, , , . - .
kind , - , , , . seq ack . - . , info, . info . info , .
. , . , - info . , . , , .
3.1 . -, , - . , wait_for_event - . to_network_layer from_network_layer
2 4 3
- . : from_physical_layer to_phy s i 1 _1 aye , tojietworkjayer from_networkjayer - . , tojietworkjayer from_networkj ayer 2 3, - from_physical_layer to_physical_1ayer - 1 2.
-, . - , , . , - -, .
event=timeout, wait_for_event. - start_timer stop_timer . timeout , . start_timer - . - , ( -, - ).
start_ack_timer stop_ack_timer -.
enable_network_layer disable_network_layer , , . - , -, . event=network_layer_ready. , - . , , - , .
0 _SEQ (). MAX_SEQ . - 1 ( - MAXJSEQ) inc. , , . , . - -, . , _SEQ , , , . .
2 4 4 3. 2 4 5
3 . 1 . . protocol.h
#define MAX_PKT 1024 /* */
typedef enum {false, true} boolean; /* boolean */typedef unsigned int seqjir: /* */typedef struct {unsigned char data[MAX_PKT];} packet; /* */typedef enum {data, ack. nak} frante_kind: /* */
typedef struct {*/
frame_kind kind;seqjir seq;seqjir ack;packet info;
} frame;
/*
/* *//* *//* *//* */
/* event */void wait_for_event(event_type *event):
/* */void from_network_layer(packet *p);
/* */void to_network_layer(packet *p);
/* */void from_physical_layer(frame *r);
/* */void to_physical_layer(frame *s);
/* timeout */void start_timer(seqjir k);
/* timeout */void stop_timer(seq_nr k);
/* ack_timeout */void start_ack_timer(void):
/* ack timeout */void stop_ack_timer(void);
/* network_layer_ready */void enable_network_layer(void):
/* network layer ready */void disable_network_layer(void):
/* inc : */fdefine inc(k) if ( < MAX SEQ) = + 1; else = 0
3.1 . ,, , . - #include - protocol.h, .
. - . - . - . . , . , , 3.2.
, sender () receiver (-). sender -, receiver . , , _SEQne . frame_arrival ( ).
sender , - while, -. : ( ) , s . - info, , .
. , - , - . -, wait_for_event , event frame_arriva1 ( ). from_physi ca 1 _1 . , , - .
3.2.
/* 1 () - . , . , . */
typedef enum {frame_arrival} event_type:
A
246 3.
#include "protocol.h"
void senderl(void)
{frame s;packet buffer;
*/
while (true) {from_network_layer(&buffer);
s.info = buffer;to_physical_1ayer(&s):
/* *//* */
/*
/* s */
/* s *//* , .
.
- . V, v */
void receiverl(void){
frame r;event_type event; /* ,
*/
while (true) {
wait_for_event(&event); /* - , frame_arrival */
from_physical_layer(&r): /* */to_network_layer(&r.info); /* */
, - 1, (, , - , ). , . .
, , -, , . t, - from_physica1_layer to_network_layer, , t. -, , - , , from_physical_layer. - .
247
(, , - ) 1, , . , , , - . - , - , . . . - .
-. , - , . -, , .
, , , . 3.3 - .
3.3.
/* 2 ( ) . . , . , , , . , . */
typedef enum {frame_arrival} event_type;finclude "protocol.h"
void sender2(void){frame s:
packet buffer;event_type event:
frame arrival)*/
/* *//* *//* - (
while (true) {from network layer(&buffer):
* /
s.info = buffer:to_physi cal_layer(&s);wait_for_evint(&event);
*/
/*
/* s *//* , , *//* ,
2 4 8 3, 2 4 9
void receiver2(void)
frame , s;event_type event;
*/while (true) {
wait_for_event(&event);( frame_arriva1)*/
from_physical_layer(&r);to_network_1ayer(&r.info);to_physical_layer(&s);
*/
/* *//* frame arrival
/* -
/* *//* *//* ,
1, , . - , 1, - , . : , - : .
receiver2 receiverl , receiver2 - , . , , -.
: , . , . -, , - . , , , - ( ) .
, - 2. - . . , . , , , - .
. , , .
, , , - . , - - . , - , , .
.
1. 1 . . .
2. . - . , - , , -, .
3. - . , , , .
4. - . , , , - . , .
5. , , . - - . - , .
, - : , ? - + 1. - , . , -. . - , , - + 1.
+ 2 - + 1. , - . , .
, ( 0 1). -
250 3.
. . , - , - 2 ( 0 1, 1 0).
3.4. , , - , PAR (Positive Acknowledgementwith Retransmission ) ARQ (Automatic Repeat reQuest -). 2, -.
3.4.
/* 3 (PAR) . */
fdefine MAX_SEQ I /* 3 1 */typedef enum {frame_arrival, cksum_err, timeout} event_type;#iinclude "protocol .h"
void sender3(void)
*/seq_nr next_frame_to_send:/frame s;packet buffer;event_type event:
next_frame_to_send = 0; */from_network_layer(&buffer):while (true) {
s.info = buffer;s.seq = next_frame_to_send:to_physical_layer(&s):start_timer(s.seq);
/*
/* */
/* */
/*
/* */
/* *//* *//* *//* */
wait_for_event(&event): /* frame_arrival, cksum_err timeout */if (event == frame_arrival) {
from_physical_layer(&s): /* */if (s.ack = next_frame_to_send) {
from_network_layer(&buffer); /* */
inc(next_frame_to_send); /* next_frame_to_send */
}
void receiver3(void){seqjir frame_expected:frame r. s:
2 5 1
event_type event;
frame expected = 0;while~(true) {
wait_for_event(&event); /* : frame_arrival. cksum_err
*/if (event == frame_arrival) {
/* */from_physical_layer(&r);
if (r.seq = frame_expected) {
to_network_layer(&r.info);
i nc(frame_expected); */
}s.ack = 1 - frame_expected;
*/
to_physical_layer(&s);}
/* *//* */
/* *//*
/* ,
/* */
, , . - next_frame_to_send, - frame_expected. -.
, . , . , -, -. , , , . , -, , , . - , .
- -. : -, , - . . , . - , , .
, . , , . .
252 3. 253
. - . - , . , - . - . - , .
. , 2 3 , - , . - . - kind .
, . , , , - . - . . piggybacking (, , ).
. - , . , , , , , , ( ). - - 1 . - .
. , ? - , , , . -, , -. , , , (, ), - .
, - .
- (sliding window). , , . ( 0 ). , 2" 1. , - 0 1, .
, -, , . , . , , . . , - .
, , , , -. , - . , , - .
, , . , - . , . , - .
, , - , - . , , - . , , .
, . , , - . , - , , -
2 5 4 3. 2 5 5
. , . , , . , , , .
. 3.9 1. , -.
. 3.9. 1 3- : (); (); ();
()
, , 1. -, , , , , .
3.5. , - . next_f rame_to_send - , . - frame_expected , . 0 1.
- . , - to_physica1_layer start_timer . , -
. - , . ( ) , , , 3. , -, .
3 . 5 . 1-
/* 4 ( ) , 3.
*/
fdef ine MAX_SEQ I /* 4 1 */typedef enum {frame_arr ival. cksum_err, timeout} event_type;f include "protocol.h"
void protocol4 (void){seq_nr next_frame_to_send:seq_nr frame_expected;frame r. s:packet buffer;event_type event:
next_frame_to_send = 0:frame_expected = 0;from_network_layer(&buffer);s.info = buffer:s.seq = next_frame_to_send;s.ack = 1 - frame_expected:
*/to_physical_layer(&s):start_timer(s.seq);
while (true) {wait_for_event(&event):
"err timeout */if (event = frame_arrival)
from_physical_layer(&r);
/* 0 1 *//* 0 1 *//* *//* */
/* *//* *//* *//* *//* *//* ,
/* *//* */
/* : frame_arr ival, cksum_
/* *//* */
if (r.seq == frame_expected) {/* */to_network_layer(&r. info); /* */inc(frame_expected); /* ,
*/
*/
*/
if (r.ack == next_frame_to_send) { /* */from_network_layer(&buffer): /*
inc(next_frame_to_send): /*
j .
256 3. 257
*/
s.info = buffer:s.seq = next_frame_to_send;s.ack = 1 - frame_expected;
to_physica1_layer(&s);startjtimer(s.seq):
/* *//* *//*
/* */
/* */
. , , , , . - .
4 , - . , , 0 . , -. , - seq=0 ack=l.
, , frame_expected 1. - , - 1, 0. , =1, - 0, .
, , - , seq=O =. , - ,
(0, 1, )
(, , )* (1, , 1)
(1, 1, 1)* (0, 1, 2)
(, , 2)* (1,0, A3)
(0, 1, )* (0, 0, )
(1, 0, 1)*8 (1, 1, 1)
(0,1, 2)* (0, , 2)
(1, 0, A3)* (1,1, )
(0, 1, ) \/ (0, 1, )/** (0, 1, )*
/ . (0, 0, )
* / (0, 1, )* / (0, 0, ) -vC^w
/ * (0, 0, ) (1, , 1)
(0, 0, ) (1, 0, 1) - -__sw
^ " " ^ (1, 0, 1 )* (1, 1, 1)
(1, 0, 1)* (1, 1, 1)
(1, 1,1) (0, 1, 2)
. 3.10. 4: (); ().: (seq, ack, ). ,
. - - , , .
, -, , . 3.10. . . , , - , . . , - 6. - . - , . - , -. , , .
, , - , , - , . - . - . - 50 / , , 500 . 4 1000 . t = 0 .
~1= 20 . = 270 . 520 . , - , - . , 500/520, 96 % . -, 4 % . , , -.
, - , . , . - , , , -
258 3. 259
. w , - . w , , 26. , , 0. , 26 ( t = 520 ), 0. - 20 . , . - 25 26 , ,
26. . -
/, / , - 1/ . R . R/2 R/2 . - R . 1/ - R , //(/ + ). / < bR 50 %. - , - . , - .
. -, , - ? - , , . , , , , - ? , - , . . 3.11 , - . .
- . , . - . - 1. , - , , - . , , . , - , , - , . - .
. 3.11, . 0 1 , . 2 . - , 2. - , - 2 ( 2, 3, 4 . .)
,
>
!
2-8
. 3 . 1 1 . : 1 (); > 1 ()
-, , , - , - . . , - ( -), , , . 3.11, . , - , - . -
2 6 0 3. 2 6 1
(NAK Negative Acknowledgement) ,, - . NAK , - . , - .
. 3.11, 0 1 , 2 . 3 , . 2 NAK, 3 . 4 5, . NAK 2 , 2. , - 2, 3, 4 5, . , - , . NAK , - 2 2 ( !), - , NAK. -, NAK .
1. , , . - . 3.6.
I* 5 () . MAX_SEQ , . , , , . network_layer_ready */
#define MAX_SEQ 7 /* 2An-l */
typedef enum {frame_arrival. cksum_err, timeout, network_layer_ready} event_type:
linclude "protocol,h"
static boolean between(seqjir a, seq_nr b, seqjir c)
/* true, (a
2 6 2 3.
while (between(ack_expected, r a c k , next_frame_to_send)) {/* */nbuffered = nbuffered - 1; /* */stop_timer(ack_expected): /* ;
*/inc(ack_expected):
}break;
case cksum_err: ;break;
/* */
/* */
case timeout: /* ;
*/
next_frame_to_send = ack_expected: /* */
for (i = 1; i
264 3.
. 3.12, - . , 100 . 10:00:00.0, -, 10:00:00.5,10:00:01.3 10:00:01.9. , -, - . , - -, , . 3.12, . - , start_timer stop_timer . - , , .
5 , , - , . - , - , . , - .
, - . - , MAX_SEQ. , , , MAX_SEQ. , . , , . , between , . , . - , , - . , -. 3.7.
3.7.
/* ( ) , , . . , , 5. */
/* 2*-1 */#define MAX_SEQ 7#define NR_BUFS ((MAX_SEQtypedef enum {frame_arr ival, cksum_err, timeout, network_layer_ready, ack_timeout}event_type:l inc iude "protocol,h"
265
boolean nojiak = true;*/seq_nr oldest_frame = MAX_SEQ+1:
/* (nak)
/* */
static boolean between(seq_n a. seqjir b, seqjir c)
/* . 5, */return ((
266 3. 267
wait_for_event(&event): /* : . event_type
*/
*/
switch(event) {
case network_layer_ready: /* ,
nbuffered = nbuffered + 1 ; /* */from_network_layer(&out_buf[next_frame_to_send % NRJ3UFS]): /*
*/
send_frame(data, next_frame_to_send. frame_expected, out_buf): /*
*/
inc(next_frame_to_send): /* */
break;
*/
timer!);
case frame_arrival: /* */from_physical_1ayer(&r); /*
if ( . k i n d = data) {/* */if ( (r .seq != frame_expected) && nojiak)
send_frame(nak, 0. frame_expected, out_buf): else start_ack_
BUFS] == fa lse)) {
*/
*/
if (between(frame_expected, r.seq. too_far) && (arrived[r.seq^NR_
/* */
arrived[r.seq % NRJ3UFS] = true; /*
in_buf[r.seq % NRJ3UFS] = .info: /*
while (arrived[frame_expected % NR_BUFS]) {/* */to_network_layer(&in_buf[frame_expected % NRJ3UFS]);nojiak = true:arrived[frame_expected % NR_BUFS] = false:inc(frame_expected): /* inc(too_far); /*
start_ack_timer(); /* , */
}
*/
*/
}
if(Cr.kind-nak) && between(ack_expected.(r.ack+l)UMAX_SEQ+l).next_
send_frame(data. (r.ack+1) % (MAX_SEQ + 1). frame_expected. out_frame_to_send))
buf);
while (between(ack_expected. r.ack. next_frame_to_send)) {
nbuffered = nbuffered - 1: /*
*/ *,stop timerCack expected % NR_BUFS): /* /inc(ack_expectid); /* /
}break:
case cksum_err: if (no_nak) send_frame(nak, 0, frame_expected, out_buf);break: /* */
case timeout: send_frame(data, oldest_frame. frame_expected. out_buf);break: /* */
case ack_timeout: send_frame(ack.O.frame_expected, out_buf): /* : */
}
if (nbuffered < NR_BUFS) enable_network_layer(); else disable_network_layer():
, , . - . , 3 , , - . - . 3.13, . 0 6. - 0 6 . , - 7, 0, 1, 2, 3, 4 5, - . 3.12, . .
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
'' . 3.13. 7 (); 7 , (); 4 (); ,
4 , ()
- , - . , , 0. , 0 - (. 3.13, ). - 6, 0 6.
, - , 7, 0, 1, 2, 3, 4 5. 7 - , . 0, . , ; , .
2 6 8 3. 269
, - . , - ( ), ( ). - .
, - . ( . 3.13, ). , 4 -, 0 15. - . -, 0 7 8 15, ( 0 7) ( 8 15). 6 (MAX_SEQ + 1 )/2.
: ? , - . , . 4- 0 7. - , mod 8. , i ( + 8), 8, , - , 9.
, . , . , - .
5 , . , . . - , . , - , MAX__SEQ , - .
6 . - start_ack_timer . , , . ack_timeout. - , , , . . start_ack_timer,
, .
, - . - , .
, 5. , , (NAK). - : , ( - ). - , , NAK . 6 no_nak, true, NAK ( f rame_expected) . NAK -, , , , - . NAK - , no_nak true . , () .
, , , -. -. , . , , -, . , .
- . , -, . - . , - , (NAK) . - , - .
- - , -. 5
270 3.
ack_expected, . 6 , . -, 0 4, : 01234 ( ). , , 5(), 1 2, 6( ). 3405126, . - , . -, . -, oldest_frame - - , .
. - - () -. . , .
, , - . , ( ) . -, .
. , 3, : 0 - 1. , . , - ( wait (event) ). - . 2", , , .
. . 3 - : 0 1, -, , ,
271
. - , 16 .
. , - , , . , - , , . - , from_physical_layer .
(0 ) . - -. , , - , . . : - , . , , - , .
. - , . - (, ) - . (, ), -, , . - (Lin ., 1987). .
- (5, , /, ), S , ; , - ; / ; -
* . .
, , , . - . , .
. , - - , , , , ( ). , ( ), (). - , - ( ). .
272 3.
. 3.14, . 3, , - , . 16 , . - . .
: SRC, S 0 1 , ; R 0 1 , , 0, 1, (-), -. (000). - 0, 0, 0 .
012345678
?
( )
0
1
01
(-)(-)
1
0
01
_
-
--
. 3.14. 3 (); ()
. 3.14 . 0 - . 1 , - 0 , 0 -
273
, 1 . . 3.14, . , - 3.
1, 2, 3 4 . , - , 0. 0, (000) (00-). ( 7), (000). , - 7 5 ( 8 6 ).
, 1- - , , , , . . 3.14 : - , , 1 - 3 , . - , .
, - (, 0 1 0) . , , , . - .
. - , ( ) .
_ - , - :
1. .
2. , -.
, . , 3 .
. (Danthine, 1980). :, , ( ). -, . . 3.15
274 3.
, , , . - , () . . , - , , - .
. 3.15.
, . -, . . , . , , . , . 3.15, - (, : , -, , , . .). , - .
. 3.16 , , - 3.4. , -. , . 1 2 ( -) 0. 3 4 , 1. 5, 6 7 0, 1. 8 9 - . 10 11 - - .
, , - . , - 10 11 , , . .
, - . . - . . 3.16 , - 11 . , . , - . 3.16, :
275
BE
1 : BD2 : A -3 : AD4 : - > 5 : - >6 : D -*7 : - >8 : CF - DF9 : EG - > DG1 0 : CG - > DF1 1 : EF - > DG
1
1
: 0 D: : 1
1
1
0
7
. 3.16. 3
, 11 , - .
-, , . , , -, () . (-) , . 3.16, ACG, , , 10
276 3. _
(CG > DF) , 3 {AD - BE) , D .
- . , - - HDLC, . , , , - .
HDLC -, , . - , IBM , SDLC (SynchronousData Link Control ). - SDLC IBM ANSI ISO . ANSI ADCCP (Advanced DataCommunication Control Procedure - ), a ISO HDLC (High-level DataLink Control ). CCITT, HDLC LAP (Link Access Procedure ), .25, LAPB, HDLC. , , . , .
. - -, , - . , , , . -- . - .
- , - . 3.17. Address () - , . , - .
277
Control ( ) - , , .
8
0 1 1 1 1 1 1 0
8
8
i 0
16
8
0 1 1 1 1 1 1 0
. 3.17. -
Data () . - , - - .
Checksum ( ) , .
(01111110). , -, . - , 32 , .
: , - . Control - . 3.18. 3- . - . Seq . 3.18, - . Next -. , Next ( ). , , , . , .
1
0
3
Seq
1
P/F
3
Next
1 0 P/F Next
1 1 P/F Modifier
. 3.18. : (); (); ()
2 7 8 3.
P/F Poll/Final (/). , ( ) . - . , , , P/F . F.
P/F, , . .
. = 0, , . - RECEIVE READY ( ). .
= 1 , - REJECT (). . Next - ( , ). , Next. 5, 6.
- 2 RECEIVE NOT READY ( ). , - RECEIVE READY, Next-i, - , . - , - - , . - , , - .
= 3 SELECTIVE REJECT ( ). - . - 6, 5, , - . , , SELECTIVE REJECT. HDLC ADCCP , SDLC LAPB , , 3 .
. - , , , . , - -, . 5 , - , 32 .
2 7 9
DISC (DISConnect ), , (, ). , -, (on-line), . - SNRM (Set Normal Response Mode -). , , . ( ) , - (master), (slave). SNRM , - , , , . , HDLC LAPB SABM (Set Asynchronous Balanced Mode ), - . , - SABME SNRME, SABM SNRM , 7-
3-. , , FRMR
(FRaMe Reject ), , - , . , - 3 LAPB, 32 , , . . , - , .
, - , . , UA (UnnumberedAcknowledgement ). - , , .
, - . , , UI (Unnumbered Information). , .
, HDLC - . , ,. (Fiorini ., 1994).
( ) - . - , -
2 8 0 3.
, . 4, , - .
. -, - , ( -, , . .) - ( ). . - , - . - , .
, -, , - . - , , , -. - , , , . , , . 3.19. - , - .
I
, TCP/IP!
-, SLIP
. 3.19. ,
, , - , - , . -
2 8 1
, , . .
, , - . (Point-to-Point Protocol ), RFC 1661 RFC (,RFC 1662 1663). , - , IP- , , .
:
1. , . -.
2. , , , - , . LCP (Link Cont-rol Protocol). , - - .
3. , . - (NCP, Network Control Protocol).
, , -, , . . - , , , LCP-na- -. - .
, NCP- . - TCP/IP, IP-. - IP- , , -. IP-, , . IP- NCP IP.
- IP- , .
282 3. Z83
, NCP , IP-. LCP . , , .
, , HDLC. - HDLC, -. , , - . , - 30,25 , HDLC. , SONET - HDLC- (, , - ). . 3.20.
1 2 2 4
Flag01111110
Address11111111
Control00000011 Protocol
-Payload-
Checksum Flag01111110
. 3.20.
- HDLC (01111110). , . Address (), - 11111111, , . .
Control, 00000011. . , . , , . RFC 1663, .
Address Control -, LCP 0 , , 2 .
Protocol (). , (Payload). LCP,NCP, IP, IPX, AppleTalk . , , IP,IPX, OSI CLNP, XNS, 0. 1 , - . LCP, NCP - . Protocol 2 , - LCP 1 .
Payload ( , ) - , . LCP, 1500 . - .
Payload Checksum ( ), 2 , 4.
, , , -, HDLC, SONET - . , , , , , HDLC.
. - . 3.21 , - , . , .
NCP
. 3 . 2 1 .
: (DEAD), , . , ESTABLISH(). - LCP.
284 3. 285
AUTHENTICATE (). , . NETWORK () NCP . - , OPEN (), . , TERMINATE (), DEAD (), .
LCP (ESTABLISH). , -. - . , - , , . , LCP - , .
RFC 1661 LCP-. . 3.1. , Configure- (-), (I) -, (R) . , . LCP-.
, Terminate (), - , . Code-reject ( -) Protocol-reject ( ) -, - . , - LCP. , Echo (), - . , Discard-request . , -, , .
3 . 1 . LCP-
Configure-request
Configure-ack
Configure-nak
Configure-reject
Terminate-request
Terminate-ack
Code-reject
Protocol-reject
Echo-request
Echo-reply
Discard-request
( )
, , , , -.
NCP . - -, . , IP - IP-.
- , , , . , , . - , . - . .
- . . 1 , , -, , , .
. 1 - , , , -. 2 , , . 3 . 4 . 5 - . , 6 - (NAK).
L
286 3.
, - ( ). - .
- - SDLC, HDLC, ADCCP LAPB. , , , - . . - .
1. 10 ,
80 %. - , - ?
2. :
: 01000111; : 11100011; FLAG: 01111110; ESC: 11100000, , - , , ESC, FLAG, :
;
; .
3. , -, :
ESC ESC FLAG FLAG D. ?
4. , , , - - , . . - ?
5. - : 0111101111101111110?
6. , - -? , ? , ? ?
7. (, ) , - ?
287
8. , , , , . ?
9. 16- . - , ? - : 1101001100110101? -, .
10. - , 10101111. ?
11. 12- , - 0xE4F. ( ) - ? , - 1 .
12. - k . ? ? ?
13. k . , 4 ?
14. 1 + X" + 1 X" + 1 ?
15. 10011101 - (CRC), . - 3'+ 1. -? , ., .
16. CRC , . ?
17. 4 /, - 20 . 50 %?
18. 1 3000 64- 5. 6 /, ?
19. 3 , - ? , ? , ?
288 3. 289
20. , , - . ?
21. , between 5 < < < b < . ? .
22. , 6 , nojiak true. NAK. - . , - else. ?
23. , 6 - while. ? .
24. , case, - , switch 6. ?
25. 6 , frame_arrival, , (NAK). , - NAK, . -, .
26. , - , , . - HDLC 3- 7 . - , - . 1 , , - ? , - ?
27. 6 1 /. 1000 . - . - 10 . - , -. ?
28. 6 MAX_SEQ=2" - 1. , , , . , , MAX_SEQ=4?
29. 1000 1 /. - . . 3- - . :
1) ;
2) 5;
3) 6.
30. - 6 - 50 /. 40- 3960 . - 270 . -. NAK 40 . 1 %, NAK . 8 .
31. , - 64 / 512- , - . , 1, 7, 15 127? 270 .
32. 100 1. 2/3 . -?
33. 4 . - ? ? - ( )? .
34. , - . 3.16, (000),(01), (01-), (010), (01) . 3.14. , .
35. : -+,-, CD-^E E-+CD. - , ACD. - -?
36. HDLC . - , HDLC . , - .
37. IP- - ? , IP.
2 9 0 3.
38. (CRC), . : (generator) (verifier). - - , ASCII-. ^- ( ASCII). + k -, , . - , . -- , , . , (alter), , (, , -, 1). - . generator
292 4.
, .
, , -, , MAC(Medium Access Control ). MAC - , - . , , . . - , , , - MAC.
- , , , 3. , - , , , . .
, , - , . . - .
, FDM (Frequency Division Multiplexing ). N N - (. . 2.27), . - -, . , (, ), - .
. - ,
293
, . -, , -, , -, , .
, -- , - . , - -, . , , . , - ( 1000:1)., -.
, -, . /, X - . , 1/ . X , \. . , -
\iC-k
, , 100 /, - 1/ = 10 000 , X = 5000 . = 200 . : - , 10 000 100 /, - : 100 . - .
N , C/N /. X/N . - , :
1 N - = NT. (4.1)
\i(C/N)-(\/N)
, N , , - .
294 4. 295
(TDM, TimeDivision Multiplexing ). - -. , . . 100- 10-, -, 200 2 .
, - , .
- , . .
1. . JV (-, , . .), . - . At Akt, ( ). , , .
2. . . . - , .
3. . , - , . - , . -. . , , , .
4. . -. , .
46. . (). - . 0, 1 , -, .
5. . , , . , - , .
56. . , , . -. , . .
, -. , , , - . - , , - .
, , . . , .
, - ( ) , . , - , token ring ( ), - , - , . , . .
. (4), , - .
, . , , - , - - . -, . . , 1.
. .
ALOHA 70- (Norman Abramson) - .
carrier () . . .
2 9 6 4.
(Abramson, 1985). , ALOHA, - , , .
ALOHA: -. , , - , . ALOHA - , .
ALOHA ALOHA : -, . , , . , . , . , - 270 , , - . , - . . - -. , , , - .
. 4.1 ALOHA. , .
D
. 4 . 1 . ALOHA
, -. - , .
2 9 7
. ( ) . .
ALOHA. , - ? - , (). -: . . , , . , -, , . - , . , .
, ( , ). , - , - : N . ( , -, N -.) N> 1, , , , . , 0 < N< 1.
, , - . , k - - G . , G>N. ( N 0) , - , G&N. , , G> N. , 5 G, , S = GPQ, , .
, - , . 4.2. ? t , . - - t0 t0 +1, . , , , ALOHA , , . - , t0 +1 tu + 2t, .
298 4.
I
.
to+2t ( + 3 f
. 4.2.
, k , :
[*] = - (4.2)
, - ~. , - , 2G. , , = e~
2G. , 5 = GP0, :
S=Ge-2C.
. 4.3. 5= 1/2, 0,184 G = 0,5. , , , 18 %. , , , , .
ALOHA 1972 . (Roberts) , - ALOHA (Roberts, 1972). - , . . , - .
299
ALOHA: S = Ge~G
I00 3,00,5 1,0 1,5 2,0
G ( )
. 4.3. ALOHA
, ALOHA, ALOHA , Enter. - . , ALOHA . , , , ~. :
S=Ge~c. (4.3)
. 4.3, ALOHA G = 1. S = 1/, 0,368, , ALOHA. ALOHA 37 % ,37 % 26 % . G , . , , . , - , ~. , , - . - , 1 - e~G. k ( k - 1 , - ),
pk = ke' ' =
300 4. 3 0 1
- G, - .
ALOHA , . 1970- , - , . , - . ALOHA. He , (, - , - ), - , . , , , , - . -, .
ALOHA -, , 1/. -, , , , . . - , . , 1/. , - .
, - , . . (Kleinrock) (Tobagi) 1975 . .
CSMA , , 1-- CSMA (Carrier Sense Multiple Access ). , , , . , - , , . , . -
, , , , . CSMA 1, - 1, , .
- . , , - . - , , , , . , .
-. , - - , , , , . , - . ALOHA, , - . , ALOHA.
CSMA. , . -, . -, . , , , , . , -. , , CSMA - 1.
, , , CSMA . - . , . - , . q-\-p . - , - . , . , - . , , -. . 4.4 , ALOHA.
3 0 2 4.
CSMA 0,01
CSMA
CSMA 0,1
CSMA 0,5
3 4 5 6 7 8 9
G ( )
. 4.4.
CSMA CSMA, , - ALOHA, , , , . - , , . , , , , , . , , - . - . , CSMA/CD (Carrier-Sense MultipleAccess with Collision Detection ), - MAC. , Ethernet, - CSMA/CD.
CSMA/CD, - , , . 4.5. - t0 . -, , . , . - .
, , , , . , CSMA/CD -
3 0 3
, - ( ).
1
t
.
*
1
,I I I I I I I I II
. 4.5. CSMA/CD : ,
., t0. , , -? , -, . - .
, , , , - , , . , , , . - . . , , . - t0 . - , , , - . , , , , 2 - . , , - , , 2 - . ALOHA 2. - 1 * 5 . , 2 1 . -, , 1 2 .
, -. . , , , , , , .
3 0 4 4, 305
(, ). .
, - , . CSMA/CD . - , - .
, MAC . (, - ).
CSMA/CD , , . , ( ) . CSMA/CD - . , - , .
N , - 0 N- 1. , , -. , - . : ? - , . 4.5, .
, , , N . 0 , - 0- . - . 1 1 , , 1 0. N , . (. 4.6).
, , . , , - , N . - ( ) - , , ,
. , , -.
8
0 1
1
2 31
4 6 6 /1
8
0 1 2 3 4 5 6 7
1
0 1 2 3 4 5 6 7
1 3 7 1 1 1 5 1 2
L
. 4.6.
. , d . - - , .
, -, 0 1. , -, - -. N/2 N () -, , , .
. - (N/2 ). . 1,5JV, ^ N/2 , N . - . - JV , d d/(N + d).
, - , N N . - , d/(d +1). - N(d + l)/2 , .
- 1 . , - . , , - , . , . - ( ). -
306 4.
. Datakit (Fraser, 1987). , , - .
: 0 , 0 - , . , 0010, 0100, 1001 1010 , 0, 0, 1 1 . 1. , 0010 0100 - , 1001 1010 .
0 , . 1, 1001 . 1010, . , - , . - . 4.7. , . - , .
0 1 2 3
307
0 0 1 0 0
| 0 1 0 01 0
1 0 0 1| 1 0 0 -
1 0 1 0 1 0 1 0
1 0 1 0
\ 0010
0100
1001
. 4 .7. .
d/(d + g^ , - , logjiV - 100 %.
() (Ward) 1979 , , -. . , , - 0, , . , , , D, A, G, , , F - 7, 6, 5, 4, 3, 2, 1 0 , - D , 0.
(7 6), 1 (, 4, 5). , : , , A, G, , , F, D. D , .
, - , . , - - .
, : , CSMA, . - : . - ( ALOHA) , . , , . . , , - , , .
, , - . . , .
- , - . , , - .
, . , k . - . , - , kp(l -'1- , , . , 1/k. 1/k, - :
[ ] = . (4-4)
3 0 8 4, 3 0 9
. 4.8. - , , , 1/.
1,0
0,8
0,6
0,4
0,2
0,0 20 255 10 15
. 4.8.
, -- , . . ( ). - 0 0. - , . , 1 1, . . , - (. ).
, . - , . - . , - . - (, ). , . , -, 2, . - , -, , . , ( ALOHA). - - ( , ), - .
-, - (Dorfman, 1943). N. - . . , . , . , .
(Capetanakis, 1979) - , . 4.9. - . - , 4 . , - , , 2 . ,