Computer Networks - A Systems Approach

Computer Networks - A Systems Approach

von: Larry L. Peterson, Bruce S. Davie

Elsevier Textbooks, 2007

ISBN: 9780080476674 , 848 Seiten

4. Auflage

Format: PDF

Kopierschutz: DRM

Windows PC,Mac OSX Apple iPad, Android Tablet PC's

Preis: 62,95 EUR

Mehr zum Inhalt

Computer Networks - A Systems Approach


 

Front cover

1

Title page

4

Copyright page

5

Foreword

8

Foreword to the First Edition

10

Preface

12

Audience

12

Changes in the Fourth Edition

13

Approach

14

Pedagogy and Features

15

Road Map and Course Use

16

Exercises

18

Supplemental Materials and Online Resources

19

Acknowledgments

19

Table of Contents

22

1 Foundation

31

Problem: Building a Network

31

1.1 Applications

33

1.2 Requirements

35

1.2.1 Connectivity

36

1.2.2 Cost-Effective Resource Sharing

40

1.2.3 Support for Common Services

43

1.3 Network Architecture

48

1.3.1 Layering and Protocols

49

1.3.2 OSI Architecture

55

1.3.3 Internet Architecture

57

1.4 Implementing Network Software

59

1.4.1 Application Programming Interface (Sockets)

60

1.4.2 Example Application

62

1.4.3 Protocol Implementation Issues

66

1.5 Performance

69

1.5.1 Bandwidth and Latency

69

1.5.2 Delay × Bandwidth Product

73

1.5.3 High-Speed Networks

75

1.5.4 Application Performance Needs

77

1.6 Summary

79

Open Issue: Ubiquitous Networking

80

Further Reading

81

Exercises

84

2 Direct Link Networks

93

Problem: Physically Connecting Hosts

93

2.1 Hardware Building Blocks

95

2.1.1 Nodes

95

2.1.2 Links

100

2.2 Encoding (NRZ, NRZI, Manchester, 4B/5B)

108

2.3 Framing

113

2.3.1 Byte-Oriented Protocols (PPP)

113

2.3.2 Bit-Oriented Protocols (HDLC)

116

2.3.3 Clock-Based Framing (SONET)

118

2.4 Error Detection

121

2.4.1 Two-Dimensional Parity

122

2.4.2 Internet Checksum Algorithm

123

2.4.3 Cyclic Redundancy Check

125

2.5 Reliable Transmission

130

2.5.1 Stop-and-Wait

131

2.5.2 Sliding Window

134

2.5.3 Concurrent Logical Channels

144

2.6 Ethernet (802.3)

145

2.6.1 Physical Properties

145

2.6.2 Access Protocol

148

2.6.3 Experience with Ethernet

152

2.7 Rings (802.5, FDDI, RPR)

153

2.7.1 Token Ring Media Access Control

156

2.7.2 Token Ring Maintenance

158

2.7.3 FDDI

159

2.7.4 Resilient Packet Ring (802.17)

160

2.8 Wireless

162

2.8.1 Bluetooth (802.15.1)

165

2.8.2 Wi-Fi (802.11)

166

2.8.3 WiMAX (802.16)

172

2.8.4 Cell Phone Technologies

174

2.9 Summary

176

Open Issue: Sensor Networks

177

Further Reading

178

Exercises

180

3 Packet Switching

195

Problem: Not All Networks Are Directly Connected

195

3.1 Switching and Forwarding

197

3.1.1 Datagrams

199

3.1.2 Virtual Circuit Switching

201

3.1.3 Source Routing

208

3.2 Bridges and LAN Switches

212

3.2.1 Learning Bridges

213

3.2.2 Spanning Tree Algorithm

216

3.2.3 Broadcast and Multicast

221

3.2.4 Limitations of Bridges

222

3.3 Cell Switching (ATM)

224

3.3.1 Cells

224

3.3.2 Segmentation and Reassembly

229

3.3.3 Virtual Paths

234

3.3.4 Physical Layers for ATM

235

3.4 Implementation and Performance

237

3.4.1 Ports

239

3.4.2 Fabrics

243

3.5 Summary

247

Open Issue: The Future of Switching

248

Further Reading

248

Exercises

250

4 Internetworking

261

Problem: There Is More Than One Network

261

4.1 Simple Internetworking (IP)

263

4.1.1 What Is an Internetwork?

263

4.1.2 Service Model

265

4.1.3 Global Addresses

277

4.1.4 Datagram Forwarding in IP

279

4.1.5 Address Translation (ARP)

283

4.1.6 Host Configuration (DHCP)

288

4.1.7 Error Reporting (ICMP)

291

4.1.8 Virtual Networks and Tunnels

291

4.2 Routing

295

4.2.1 Network as a Graph

297

4.2.2 Distance Vector (RIP)

298

4.2.3 Link State (OSPF)

306

4.2.4 Metrics

315

4.2.5 Routing for Mobile Hosts

318

4.2.6 Router Implementation

323

4.3 Global Internet

326

4.3.1 Subnetting

328

4.3.2 Classless Routing (CIDR)

332

4.3.3 Interdomain Routing (BGP)

335

4.3.4 Routing Areas

345

4.3.5 IP Version 6 (IPv6)

347

4.4 Multicast

358

4.4.1 Multicast Addresses

360

4.4.2 Multicast Routing (DVMRP, PIM, MSDP)

361

4.5 Multiprotocol Label Switching

372

4.5.1 Destination-Based Forwarding

373

4.5.2 Explicit Routing

379

4.5.3 Virtual Private Networks and Tunnels

381

4.6 Summary

385

Open Issue: Deployment of IPv6

387

Further Reading

388

Exercises

389

5 End-to-End Protocols

409

Problem: Getting Processes to Communicate

409

5.1 Simple Demultiplexer (UDP)

411

5.2 Reliable Byte Stream (TCP)

413

5.2.1 End-to-End Issues

414

5.2.2 Segment Format

416

5.2.3 Connection Establishment and Termination

419

5.2.4 Sliding Window Revisited

423

5.2.5 Triggering Transmission

429

5.2.6 Adaptive Retransmission

432

5.2.7 Record Boundaries

436

5.2.8 TCP Extensions

437

5.2.9 Alternative Design Choices

439

5.3 Remote Procedure Call

440

5.3.1 RPC Fundamentals

441

5.3.2 RPC Implementations (SunRPC, DCE)

448

5.4 Transport for Real-Time Applications (RTP)

455

5.4.1 Requirements

457

5.4.2 RTP Details

458

5.4.3 Control Protocol

462

5.5 Performance

466

5.6 Summary

469

Open Issue: Application-Specific Protocols

470

Further Reading

471

Exercises

472

6 Congestion Control and Resource Allocation

485

Problem: Allocating Resources

485

6.1 Issues in Resource Allocation

487

6.1.1 Network Model

487

6.1.2 Taxonomy

491

6.1.3 Evaluation Criteria

493

6.2 Queuing Disciplines

496

6.2.1 FIFO

497

6.2.2 Fair Queuing

498

6.3 TCP Congestion Control

503

6.3.1 Additive Increase/Multiplicative Decrease

503

6.3.2 Slow Start

506

6.3.3 Fast Retransmit and Fast Recovery

512

6.4 Congestion-Avoidance Mechanisms

515

6.4.1 DECbit

515

6.4.2 Random Early Detection (RED)

516

6.4.3 Source-Based Congestion Avoidance

522

6.5 Quality of Service

528

6.5.1 Application Requirements

529

6.5.2 Integrated Services (RSVP)

535

6.5.3 Differentiated Services (EF, AF)

545

6.5.4 Equation-Based Congestion Control

551

6.6 Summary

553

Open Issue: Inside versus Outside the Network

554

Further Reading

555

Exercises

556

7 End-to-End Data

571

Problem: What Do We Do with the Data?

571

7.1 Presentation Formatting

573

7.1.1 Taxonomy

574

7.1.2 Examples (XDR, ASN.1, NDR)

578

7.1.3 Markup Languages (XML)

582

7.2 Data Compression

586

7.2.1 Lossless Compression Algorithms

588

7.2.2 Image Compression (JPEG)

590

7.2.3 Video Compression (MPEG)

595

7.2.4 Transmitting MPEG over a Network

600

7.2.5 Audio Compression (MP3)

604

7.3 Summary

605

Open Issue: Computer Networks Meet Consumer Electronics

606

Further Reading

607

Exercises

608

8 Network Security

615

Problem: Security Attacks

615

8.1 Cryptographic Tools

618

8.1.1 Principles of Ciphers

618

8.1.2 Symmetric-Key Ciphers

620

8.1.3 Public-Key Ciphers

622

8.1.4 Authenticators

624

8.2 Key Predistribution

628

8.2.1 Predistribution of Public Keys

628

8.2.2 Predistribution of Symmetric Keys

633

8.3 Authentication Protocols

633

8.3.1 Originality and Timeliness Techniques

634

8.3.2 Public-Key Authentication Protocols

635

8.3.3 Symmetric-Key Authentication Protocols

636

8.3.4 Diffie-Hellman Key Agreement

640

8.4 Secure Systems

642

8.4.1 Pretty Good Privacy (PGP)

642

8.4.2 Secure Shell (SSH)

644

8.4.3 Transport Layer Security (TLS, SSL, HTTPS)

647

8.4.4 IP Security (IPsec)

651

8.4.5 Wireless Security (802.11i)

654

8.5 Firewalls

655

8.5.1 Strengths and Weaknesses of Firewalls

658

8.6 Summary

660

Open Issue: Denial-of-Service Attacks

661

Further Reading

662

Exercises

663

9 Applications

669

Problem: Applications Need Their Own Protocols

669

9.1 Traditional Applications

671

9.1.1 Electronic Mail (SMTP, MIME, IMAP)

672

9.1.2 World Wide Web (HTTP)

679

9.1.3 Name Service (DNS)

686

9.1.4 Network Management (SNMP)

695

9.2 Web Services

697

9.2.1 Custom Application Protocols (WSDL, SOAP)

699

9.2.2 A Generic Application Protocol (REST)

705

9.3 Multimedia Applications

707

9.3.1 Session Control and Call Control (SDP, SIP, H.323)

708

9.3.2 Resource Allocation for Multimedia Applications

717

9.4 Overlay Networks

722

9.4.1 Routing Overlays

724

9.4.2 Peer-to-Peer Networks (Gnutella, BitTorrent)

731

9.4.3 Content Distribution Networks

743

9.5 Summary

748

Open Issue: New Network Architecture

749

Further Reading

750

Exercises

751

Solutions to Select Excercises

758

Chapter 1

758

Chapter 2

759

Chapter 3

761

Chapter 4

762

Chapter 5

764

Chapter 6

765

Chapter 7

771

Glossary

772

Bibliography

798

Index

814