《Winsock和QOS 英文本》PDF下载

  • 购买积分:23 如何计算积分?
  • 作  者:(美)Microsoft公司著
  • 出 版 社:北京:北京大学出版社
  • 出版年份:2000
  • ISBN:7301020406
  • 页数:892 页
图书介绍:本书是NETWORKING SERVICES DEVELOPERS REFERENCE LIBARY(微软网络编程与开发影印丛书)中的一本。主要内容包括程序设计指南和远程访问。讲述了远程访问服务(KAS),以及Microsoft Windows NT Server 4.0和Microsoft Windows 2000 Server所支持的路由与远程访问服务(RRAS)中内嵌的远程访问服务功能。有了RAS API以及RRAS API中内嵌的远程访问组件,您就可以创建应用程序来把远程客户计算机连接到局域网,还可以实现虚拟专用网(VPN),这样远程计算机在网络上运行时就象 在本地上接入一样。

Chapter1: Getting Around in the Networking Services Library 1

Part1 1

How the Networking Services Library Is Structured 2

How the Networking Services Library Is Designed 3

Chapter2: What s In This Volume? 5

Winsock 6

Quality of Service 7

Chapter3: Using Microsoft Reference Resources 9

The Microsoft Developer Network 10

Comparing MSDN with MSDN Online 11

MSDN Subscriptions 13

MSDN Library Subscription 13

MSDN Universal Subscription 14

Purchasing an MSDN Subscription 14

MSDN Professional Subscription 14

Using MSDN 15

Navigating MSDN 16

Quick Tips 18

Using MSDN Online 20

Navigating MSDN Online 22

MSDN Online Features 23

MSDN Online Registered Users 29

The Windows Programming Reference Series 30

Chapter4: Finding the Developer Resources You Need 31

Developer Support 31

Online Resources 33

Internet Standards 34

Learning Products 35

Other Resources 37

Conferences 37

Chapter5: Writing Great IrDA Applications(with Winsock) 39

What Is an Ad-Hoc Networking-Enabled Application? 39

What Is IrDA? 40

What Is IrDA-C(Previously Known as IrBus)? 40

What Is Unique about IrDA? 41

IrDA Core Protocols and Services 41

Serial IrDA(SIR)Physical Layer(115Kb/s) 41

Fast IrDA(FIR)Physical Layer(4 Mb/s) 41

IrLAP Data Link Layer 42

IrLMP and TinyTP 42

IrCOMM 43

IrCOMM Modes 44

Windows 2000 Support for IrCOMM Through Winsock 45

No IrCOMM Virtual Serial Ports on Windows 2000 45

IrDA and the Windows Sockets API 46

Talking to Non-Windows Devices 46

Application Addressing 46

Data Transfer and Connection Close 47

IrDA and Winsock Reference 49

WSAStartup 49

af_irda.h 49

socket 49

SOCKADDR_IRDA Structure 50

bind 50

listen 51

accept 51

getsockopt(,,IRLMP_ENUMDEVICES,,)and connect() 52

closesocket 52

send and recv 52

IAS 54

IrCOMM Client 57

Windows 2000 IrDA Architecture 60

IrDA Hardware Drivers 60

Windows 2000 Multiple-Adapter Support 61

Part2 63

Chapter6: Winsock2 API Overview 63

Welcome to Windows Sockets 2 63

Using the Windows Sockets 2 API Document 63

Overview of Windows Sockets 2 63

Windows Sockets 2 Features 64

Socket Handles for Windows Sockets 2 65

Microsoft Extensions and the Windows Sockets 2 API 65

Conventions for New Functions 65

New Concepts, Additions, and Changes for Windows Sockets 2 66

Windows Sockets 2 Architecture 66

Simultaneous Access to Multiple Transport Protocols 66

Backward Compatibility for Windows Sockets 1.1 Applications 67

Making Transport Protocols Available to Windows Sockets 69

Layered Protocols and Protocol Chains 69

Using Multiple Protocols 70

Multiple Provider Restrictions on Select 71

Function Extension Mechanism 72

Debug and Trace Facilities 72

Name Resolution 73

Overlapped I/O and Event Objects 73

Event Objects 74

Receiving Completion Indications 75

Asynchronous Notification Using Event Objects 76

Flow Specification Quality of Service 77

QOS Templates 77

Default Values 77

Socket Groups 77

Shared Sockets 77

Enhanced Functionality During Connection Setup and Teardown 78

Extended Byte-Order Conversion Routines 79

Support for Scatter/Gather I/O in the API 79

Protocol-Independent Multicast and Multipoint 79

Summary of New Socket Options 80

Summary of New Socket Ioctl Opcodes 81

Summary of New Functions 82

Socket Data Type 85

Deviation from Berkeley Sockets 85

Windows Sockets Programming Considerations 85

Select and FD_* 86

Error Codes—errno, h_errno and WSAGetLastError 86

Pointers 87

Renamed Functions 87

Maximum Number of Sockets Supported 87

Include Files 88

Return Values on Function Failure 88

Service Provided Raw Sockets 88

Byte Ordering 89

Windows Sockets Compatibility Issues 89

Default State for a Socket s Overlapped Attribute 90

Windows Sockets 1.1 Blocking Routines and EINPROGRESS 90

Graceful Shutdown, Linger Options, and Socket Closure 92

Protocol-Independent Out-of-Band Data 93

Socket Functions 96

Summary of Windows Sockets 2 Functions 96

Microsoft Windows-Specific Extension Functions 97

Registration and Name Resolution 99

Protocol-Independent Name Resolution 100

Name Resolution Model 100

Summary of Name Resolution Functions 103

Name Resolution Data Structures 105

Compatible Name Resolution for TCP/IP in the Windows Sockets 1.1 API 108

Basic Approach for GetXbyY in the API 109

getprotobyname and getprotobynumber Functions in the API 109

getservbyname and getservbyport Functions in the API 109

gethostbyname Function in the API 110

gethostbyaddr Function in the API 110

Multipoint Taxonomy 111

gethostname Function in the API 111

Multipoint and Multicast Semantics 111

Windows Sockets 2 Interface Elements for Multipoint and Multicast 112

Attributes in WSAPROTOCOL_INFO Structure 113

Flag Bits for WSASocket 113

SIO_MULTIPOINT_LOOPBACK Command Code for WSAloctl 114

SIO_MULTICAST_SCOPE Command Code for WSAloctl 114

Semantics for Joining Multipoint Leaves 114

Using WSAJoinLeaf 115

Semantic Differences Between Multipoint Sockets and Regular Sockets 116

How Existing Multipoint Protocols Support These Extensions 117

IP Multicast 117

ATM Point to Multipoint 118

Socket Option for Windows NT 4.0 Only 119

Socket Options Specific to Microsoft Service Providers 119

Additional Windows Socket Information 119

Windows Sockets 2 API Header File—Winsock2.h 119

Socket Option for Windows NT 4.0 and Windows 95 120

Additional Documentation 121

Chapter7: Error Codes in the Winsock API 123

Error Codes 123

Chapter8: Winsock 2 Functions 133

Windows Sockets 2 Functions 133

Chapter9: Winsock 2 Structures and Enumerations 377

Windows Sockets Structures in the API 377

Windows Sockets Enumeration in the API 413

Overview of the Windows Sockets 2 SPI 415

Using the SPI Document 415

Welcome to Windows Sockets 2 SPI 415

Chapter10: Winsock 2 SPI Overview 415

Windows Sockets 2 SPI Features 416

Microsoft Extensions and the Windows Sockets 2 SPI 417

Socket Handles for the Windows Sockets 2 SPI 417

Windows Sockets 2 Architectural Overview 418

Windows Sockets 2 as a WOSA Component 418

Windows Sockets 2 DLLs 419

Function Interface Model 419

Naming Conventions 420

Windows Sockets 2 Service Providers 420

Transport Service Providers 420

Namespace Service Providers 422

Data Transport Providers 424

Transport Division of Responsibilities Between DLL and Service Providers 424

Windows Sockets 2 Identifiers 424

Transport Mapping Between API and SPI Functions 426

Function Extension Mechanism in the SPI 427

Transport Configuration and Installation 428

Name Resolution Providers 429

Name Resolution Model for the SPI 429

Name Resolution Division of Responsibilities Between DLL and Service Providers 432

Name Resolution Mapping Between API and SPI Functions 433

Name Resolution Configuration and Installation 433

Windows Sockets 2 Transport Provider Requirements 434

Service Provider Activation 434

Initialization 434

Error Reporting and Parameter Validation 436

Byte Ordering Assumptions 436

Cleanup 436

Socket Creation and Descriptor Management 437

Descriptor Allocation 437

Socket Attribute Flags and Modes 438

Closing Sockets 438

Blocking Operations 438

Pseudo vs. True Blocking 439

Blocking Hook 439

Canceling Blocking Operations 440

Event Objects in the Windows Sockets 2 SPI 440

Creating Event Objects 440

Using Event Objects 441

Destroying Event Objects 441

Notification of Network Events 441

Required Socket Grouping Behavior 442

Socket Group Operations 442

Recommended Socket Grouping Behavior 442

Windows Messages 442

Event Object Signaling 442

Selects 442

Socket Groups in the Windows Sockets 2 SPI 442

Quality of Service in the Windows Sockets 2 SPI 443

Socket Connections on Connection-Oriented Protocols 443

Binding to a Local Address 443

Protocol Basics: Listen, Connect, Accept 443

Determining Local and Remote Names 444

Enhanced Functionality at Connect Time 444

Connection Shutdown 445

Reconnecting and Disconnecting 448

Socket I/O 448

Using Sendto While Connected 448

Connecting to a Default Peer 448

Socket Connections on Connectionless Protocols 448

Blocking Input/Output 449

Nonblocking Input/Output 449

Overlapped Input/Output 449

Support for Scatter/Gather Input/Output in the SPI 453

Out-of-Band Data in the SPI 453

Shared Sockets in the SPI 455

Multiple Handles to a Single Socket 456

Reference Counting 456

Precedence Guidelines 457

Protocol-Independent Multicast and Multipoint in the SPI 457

Multipoint Taxonomy and Glossary 458

Multipoint Socket Attributes 459

Multipoint Attributes in the WSAPROTOCOL_INFOW Structure 459

SIO_MULTICAST_SCOPE Ioctl 460

SPI Semantics for Joining Multipoint Leaves 460

SIO_MULTIPOINT_LOOPBACK Ioctl 460

Using WSP JoinLeaf 461

Semantic Differences Between Multipoint Sockets and Regular Sockets in the SPI 462

Socket Options and IOCTLs 463

Summary of Socket Ioctl Opcodes 465

Summary of SPI Functions 466

Generic Data Transport Functions 466

Upcalls Exposed by Windows Sockets 2 DLL 468

Installation and Configuration Functions 471

Name Resolution Service Provider Requirements 471

Summary of Namespace Provider Functions 471

Service Installation in the Windows Sockets 2 SPI 472

Namespace Provider Configuration and Installation 472

Namespace Provider Initialization and Cleanup 472

Service Query 473

Helper Functions in the SPI 473

Name Resolution Data Structures in the SPI 474

Compatible Name Resolution for TCP/IP in the Windows Sockets 1.1 SPI 477

Basic Approach for getXbyY in the SPI 478

getprotobyname and getprotobynumber Functions in the SPI 478

getservbyname and getservbyport Functions in the SPI 478

gethostbyname Function in the SPI 479

gethostbyaddr Function in the SPI 479

gethostname Function in the SPI 480

Sample Code for a Service Provider 480

Service Provider Ordering 495

Additional Windows Sockets 2 SPI Concerns 495

Windows Sockets SPI Header File-Ws2spi.h 496

Chapter11: Winsock 2 SPI Reference 497

Winsock 2 SPI Reference 497

Chapter12: Winsock 2 Protocol-Specific Annex 657

Using the Annex 657

Overview of Windows Sockets 2 657

Microsoft Extensions and Windows Sockets 2 658

Socket Handles for Windows Sockets 2 658

TCP/IP 658

TCP/IP Introduction 658

TCP/IP Overview 659

TCP/IP Data Structures 659

TCP/IP Socket Options 660

UNIX Ioctls 660

TCP/IP Controls 660

TCP/IP Function Details 663

Multicast 663

TCP/IP Raw Sockets 663

IPv6 Support 664

Text Representation of IPv6 Addresses 665

TCP/IP Header File 666

IPX/SPX 666

IPX/SPX Introduction 666

IPX/SPX Overview 666

AF_IPX Address Family 667

IPX Family of Protocol Identifiers 667

All Routes Broadcast 668

Directed Broadcast 668

Broadcast to Local Network 668

About Media Packet Size 669

How Packet Size Affects Protocols 669

IPX/SPX Data Structures 670

IPX/SPX Controls 674

NSPROTO_IPX Socket Options 675

DECnet 676

DECnet Overview 676

DNPROTO_NSP Protocol Family 677

AF_DECnet Address Families 677

Manifest Constants(Winsock2.h) 678

Data Structures(Ws2dnet.h) 678

Manifest Constants(Ws2dnet.h) 678

DECnet Data Structures 678

SOCK_SEQPACKET Socket Type 678

DECnet Function Details 680

Connections Using Accept/WSAAccept/WSPAccept 680

Structure Information for Bind/WSPBind 682

Connections Using Connect/WSAConnect/WSPConnect 682

Addressing with GetPeerName/WSPGetPeerName 684

Receiving Local Name With getsockname/WSPGetSockName 684

Using Getsockopt/WSPGetSockOpt 685

Using Socket/WSASocket/WSPSocket 686

DECnet Out-of-Band Data 686

DECnet-Specific Extended Functions Identifiers 686

dnet_addr 687

dnet_eof 687

dnet_htoa 688

dnet_getalias 688

dnet_getacc 688

dnet_ntoa 689

getnodeadd 689

getnodebyaddr 689

getnodebyname 690

getnodename 690

DECnet Header File 691

Open Systems Interconnection(OSI) 691

OSI Introduction 691

International Organization for Standardization(IOS) 691

ISO Reset 692

OSI Quality of Service 692

Option Profiles 692

ISO Qualified Data 692

OSI Expedited Data 692

Address Format 693

OSI Data Structures 693

OSI Controls 693

loctls 694

Socket Options 694

OSI Function Specifics 695

Quality of Service 695

OSI Header File 695

ATM-Specific Extensions 695

ATM Introduction 695

ATM Overview 696

ATM Data Structures 696

Using the ATM_ADDRESS Structure 698

ATM_BLLI Structure and Associated Manifest Constants 699

ATM Controls 701

ATM-BHLI Structure and Associated Manifest Constants 701

ATM Function Specifics 702

ATM-Specific Quality of Service Extension 702

AAL Parameters 703

ATM Traffic Descriptor 704

Broadband Bearer Capability 705

Broadband High Layer Information 706

Broadband Lower Layer Information 706

Called Party Number 707

Called Party Subaddress 707

Calling Party Number 707

Transit Network Selection 708

Quality of Service Parameter 708

Calling Party Subaddress 708

Cause 709

ATM Header File 711

Other Windows Sockets 2 Considerations 711

Secure Sockets Layer(SSL) 711

RSVP 711

Chapter13: QOS Overview 713

QOS Documentation Structure 713

Determining Which Discussion Is for You 714

Additional Information on QOS 715

About Quality of Service 715

Introduction to QOS 715

Windows 2000 Quality of Service Defined 716

What QOS Solves 716

Quality of Service Defined 716

How Windows 2000 QOS Works 718

Windows 98 QOS Notes 718

QOS Header Files 720

QOS Components 720

Application-Driven QOS Components 721

Network-Driven QOS Components 724

Policy-Driven QOS Components 726

RSVP and QOS 729

Chapter14: QOS Programming 731

Basic QOS Operations 731

QOS-Enabling Your Application 731

Opening a QOS-Enabled Socket 732

Invoking the RSVP SP 732

Providing the RSVP SP with QOS-specific Parameters 733

Receiving QOS-Enabled Data 734

Sending QOS-Enabled Data 735

Closing the QOS Connection 736

QOS Templates 736

Enumerating Available QOS Templates 737

Applying a QOS Template 737

Installing a QOS Template 738

Removing a QOS Template 738

Built-in QOS Templates 738

RSVP SP Error Codes 739

Error Codes 739

Error Values 740

Service Types 749

CONTROLLED LOAD 750

GUARANTEED 750

Primary Service Types 750

BEST EFFORT 750

QUALITATIVE 751

Secondary Service Types 751

SERVICETYPE_NOTRAFFIC 751

SERVICETYPE_GENERAL_INFORMATION 752

SERVICETYPE_NOCHANGE 752

SERVICE_NO_TRAFFIC_CONTROL 752

SERVICE_NO_QOS_SIGNALING 753

Using Service Types 753

Directional Implications of Service Types 753

Examples of Setting the Service Type 754

Use of the ProviderSpecific Buffer as a Receiver 755

Use of the ProviderSpecific Buffer as a Sender 755

Structure of the ProviderSpecific Buffer 755

Using the ProviderSpecific Buffer 755

Understanding Traffic Control 756

How the RSVP SP Invokes TC 756

Using SIO-CHK-QOS 757

Disabling Traffic Control 758

QOS Events 758

Listening for FD_QOS Events 759

Using WSAEventSelect or WSAAsyncSelect 759

Using Overlapped WSAloctl(SIO_GET_QOS) 759

QOS Event Codes 760

RSVP SP and RSVP 761

Basic RSVP Operations 761

Invoking RSVP 761

Confirming RSVP Reservations 762

Using the RSVP_RESERVE_INFO Object 762

Disabling RSVP Signaling 763

RSVP Reservation Styles 763

Base RSVP Reservation Styles 763

Default RSVP Filter Style Settings 764

Overriding Default RSVP Filter Style Settings 765

Mapping RSVP SP Parameters to RSVP 766

RSVP PATH and RESV Messages 767

Tspec, FlowSpec, and Adspec 769

Mapping QOS Call Sequences to RSVP 771

Sending Applications 771

Receiving Applications 775

Receiver Reservation Semantics 778

Using WSAConnect to Join Unicast RSVP Sessions 778

Using WSAJoinLeaf to Join Multicast RSVP Sessions 780

Using WSAloctl(SIO_SET_QOS)During RSVP Sessions 781

Use of Sendto and WSASendTo by Multicast Senders 781

Chapter15: QOS API Reference 783

QOS Functions 783

QOS Structures 791

QOS Objects 798

Chapter16: Traffic Control API Reference 807

Traffic Control Functions 807

Entry Points Exposed by Clients of the Traffic Control Interface 829

Traffic Control Structures 834

Traffic Control Objects 855

Chapter17: Local Policy Module API Reference 859

LPM Functions 859

LPM Structures 875

Part3 879

Index: Networking Services Programming Elements-Alphabetical Listing 879