501
NataHaus.RU COMPUTER NETWORKS 4th edition Andrew S. Tanenbaum Prentice Hall PTR Upper Saddle River, New Jersey 07458 www.phptr.com HARCCMHR COtTlPUTER SCIENCE Э. ТАНЕНБАУМ КОМПЬЮТЕРНЫЕ СЕТИ 4-Е ИЗДАНИЕ Москва • Санкт-Петербург • Нижний Новгород • Воронеж Ростов-на-Дону • Екатеринбург • Самара Киев • Харьков • Минск 2003 NataHaus.RU COMPUTER NETWORKS 4th edition Andrew S. Tanenbaum Prentice Hall PTR Upper Saddle River, New Jersey 07458 www.phptr.com HARCCMHR COtTlPUTER SCIENCE Э. ТАНЕНБАУМ КОМПЬЮТЕРНЫЕ СЕТИ 4-Е ИЗДАНИЕ Москва • Санкт-Петербург • Нижний Новгород • Воронеж Ростов-на-Дону • Екатеринбург • Самара Киев • Харьков • Минск 2003

Компьютерные Сети, Э. ТАНЕНБАУМ, 4-Е ИЗДАНИЕ

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 . ,