Source: http://www.google.com/patents/US6725311?dq=5311516
Timestamp: 2014-10-24 07:11:25
Document Index: 5947058

Matched Legal Cases: ['art 1', 'art 2', 'art 3', 'art 4', 'art 5', 'art 6']

Patent US6725311 - Method and apparatus for providing a connection-oriented network over a ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsA method and apparatus provides a method and apparatus for treating a serial bus, such as an IEEE 1394 bus, as a connection-oriented network. In one embodiment, an application programming interface (API) permits different protocols (e.g., TCP/IP, IPX, and others) to connect to the 1394 bus and to make...http://www.google.com/patents/US6725311?utm_source=gb-gplus-sharePatent US6725311 - Method and apparatus for providing a connection-oriented network over a serial busAdvanced Patent SearchPublication numberUS6725311 B1Publication typeGrantApplication numberUS 09/662,155Publication dateApr 20, 2004Filing dateSep 14, 2000Priority dateSep 14, 2000Fee statusPaidPublication number09662155, 662155, US 6725311 B1, US 6725311B1, US-B1-6725311, US6725311 B1, US6725311B1InventorsJoseph M Joy, Arvind Murching, Aditya Dube, Alireza DabaghOriginal AssigneeMicrosoft CorporationExport CitationBiBTeX, EndNote, RefManPatent Citations (23), Non-Patent Citations (32), Referenced by (16), Classifications (9), Legal Events (4) External Links: USPTO, USPTO Assignment, EspacenetMethod and apparatus for providing a connection-oriented network over a serial busUS 6725311 B1Abstract A method and apparatus provides a method and apparatus for treating a serial bus, such as an IEEE 1394 bus, as a connection-oriented network. In one embodiment, an application programming interface (API) permits different protocols (e.g., TCP/IP, IPX, and others) to connect to the 1394 bus and to make use of various 1394 features, such as isochronous packet transmission, without knowledge of hardware-specific idiosyncrasies. A call is made to set up a connection (a �virtual circuit�) over the serial bus, and, thereafter, a connection �handle� is used to communicate over the bus using the connection. Different types of connections can be provided, including a node-specific connection; a channel-specific connection; and a receiving connection (e.g., for incoming data). In one embodiment, a programming interface hides details of the connection set-up, and includes packet fragmentation and reassembly functions. Because multiple protocols can share common communication facilities, code re-use is maximized.
TECHNICAL FIELD This invention relates generally to the use of a serial bus as a means of packet communication in a computer system. More particularly, the invention provides a method and apparatus for using a serial bus, such as an IEEE 1394 bus, to transmit data packets using a connection-oriented interface.
BACKGROUND OF THE INVENTION The use of serial buses in computer systems is well known. A recently developed serial bus, referred to as the IEEE 1394 bus, is based on the internationally adopted ISO/IEC 13213 (ANSI/IEE 1212) CSR Architecture Specification and the IEEE 1394-1995 Serial Bus Specification, both of which are publicly available documents. A typical system conforming to the IEEE 1394 standard includes a plurality of nodes that are interconnected via point-to-point links, such as cables, that each connect a single node of the serial bus to another node of the serial bus. The nodes are addressable entities that can be independently reset and identified. The 1394 bus provides both asynchronous and isochronous (time-guaranteed delivery) capabilities.
SUMMARY OF THE INVENTION The invention provides a method and apparatus for treating a serial bus, such as the IEEE 1394 bus, as a connection-oriented network. In one embodiment, an application programming interface (API) permits different protocols and applications to connect to the 1394 bus and to make use of various 1394 features, such as isochronous packet transmission, without knowledge of hardware-specific idiosyncrasies. More generally, the invention allows network clients that conventionally use network-oriented protocols to communicate over a non-networked medium, such as a serial bus.
A. Communicating over the 1394 Broadcast Channel The 1394 broadcast channel is a special channel, typically channel 31, reserved for broadcast-based protocol use. It may be used by any 1394 device and is not restricted to a specific protocol. Every packet sent on the broadcast channel uses a special header, the GASP header, which is used to identify the destination endpoint. More details on the 1394 broadcast channel and the GASP header are available in RFC 2734.
EXAMPLE Protocol 1 sets up a send and receive broadcast virtual circuit, specifying �0� in its RecvFrameTypes field. Protocol 2 also sets up a send and receive broadcast virtual circuit, but its RecvFrameTypes field is set to (NIC1394_FRAMETYPE_ARP | NIC1394_FRAMETYPE_IPV4). Packets of type �ARP� and �IPV4� are indicated to both Protocol 1 and Protocol 2. All other packets are indicated to Protocol 1 and may not be (at the discretion of the miniport implementation) indicated to Protocol 2.
B. Communicating over a Specific Channel A protocol can set up a virtual circuit to send or receive packets on a specific channel (a channel other than the broadcast channel). The following NIC1394_MEDIA_PARAMETER field values can be specified:
C. Receiving from Multiple Channels A protocol can receive packets on multiple channels by setting up individual virtual circuits for each channel. However, some 1394 bus driver hardware may have limitations regarding the number of individual channels that may be used for receiving. Some 1394 bus driver hardware works around this limitation by allowing the software to specify a bitmap of channels�any packets addressed to any channel on this bitmap are indicated up to the software. In one embodiment, the NDIS 1394 miniport supports this feature.
D. Isochronous Channel Support A protocol sets up an isochronous (delay bounded) virtual circuit using the same parameters as for setting up a best effort virtual circuit (Section B above), with the following differences:
E. Point-to-point Communication A protocol can communicate with its peer on another device using 1394 bus asynchronous write operations. To send data to a remote device, the protocol sets up a �FIFO send VC� and then sends packets on this virtual circuit. A FIFO send VC is associated with a specific 64-bit address offset on a specific remote device. To set up a 64-bit address on the local machine and then receive data written to this address by remote devices, the protocol sets up a �FIFO receive VC.� NDIS indicates received data as NDIS packets on this virtual circuit.
Data Fragmentation and Reassembly The 1394 bus allows devices of differing packet-size capability to communicate with each other. This adds complication to the communications software, because the software has to deal with the differing capabilities of the devices. The NDIS1394 miniport can hide this complexity from protocols. The miniport allows protocols to send and receive packets with their peers on other devices, under the simplifying assumption that all devices have the same maximum packet size, or �maximum transfer unit� (MTU).
Plug and Play Features The detection and installation of a 1394 host controller automatically triggers the installation of the associated NIC1394 miniport. Likewise, the removal of the host controller automatically triggers the removal of the associated miniport. Clients desiring to avail themselves of connection-oriented functionality over NIC1394 miniport need not include any 1394-specific code to take advantage of plug and play. Protocols (i.e. clients) are notified via standard NDIS plug'n'play notifications when the NIC1394 miniport is added or removed in response to a local 1394 host controller being added or removed from the system.
Virtual Circuit Mapping FIG. 5 shows one possible approach for constructing an NDIS 1394 miniport according to the inventive principles. NDIS 1394 miniport 501 maintains a virtual circuit table 510 that maps virtual circuit handles to 1394-specific routing information. As each client (or protocol driver) makes calls to NdisCoCreateVc 502 (shown conceptually as part of NDIS 1394 miniport 1394), it sets up a new virtual circuit in table 510. Each virtual circuit is assigned a handle that is used by the clients to reference a particular virtual circuit. This handle can be a memory pointer to the virtual circuit entry in the table. Each virtual circuit entry contains routing information that indicates where the packets should be sent (e.g., outgoing node identifier, channel number, or client identifier for incoming packets). The routing information could, for example, indicate that multiple clients are to receive a single packet, and in such a situation, miniport 501 replicates the packet before providing a copy to each client.
DETAILED NDIS FUNCTIONS The following describes in more detail certain functions that can be used in conjunction with certain aspects of the inventive principles. Details of NDIS and related functions are available in documentation publicly available from Microsoft Corporation of Redmond, Wash.
REFERENCE The following reference information provides additional details for one possible implementation.
1. NDIS 1394 OIDS The protocols send object identifiers (OIDS) down to the miniport using the NDIS function NdisCoRequest. OIDS are sent to query for 1394-specific information, as well as to perform certain 1394-specific tasks, such as issuing a bus reset, or changing the characteristics of an established VC.
2. NDIS 1394 Structures 2.1. NIC1394_ADDRESS_TYPE
CONCLUSION What has been described above is merely illustrative of the application of the principles of the present invention. Other arrangements and methods can be implemented by those skilled in the art without departing from the spirit and scope of the present invention. Any of the methods of the invention can be implemented in software that can be stored on computer disks or other computer-readable media for execution in a host or target computer. While an electrical medium has been described as the communications channel, the principles can also be applied using RF, fiber optic, or other media. No claim should be interpreted to be in means plus function format. Numbered steps in method claims should not be interpreted to require a particular ordering of the steps.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS5845152Mar 19, 1997Dec 1, 1998Apple Computer, Inc.Method for transmission of isochronous data with two cycle look aheadUS5911059Dec 18, 1996Jun 8, 1999Applied Microsystems, Inc.Method and apparatus for testing softwareUS5938735 *Oct 21, 1997Aug 17, 1999Ricoh Company, Ltd.In an integrated services digital network computer-based systemUS5953511Apr 8, 1997Sep 14, 1999National Instruments CorporationPCI bus to IEEE 1394 bus translatorUS5978902Dec 17, 1997Nov 2, 1999Advanced Micro Devices, Inc.Debug interface including operating system access of a serial/parallel debug portUS5991520 *Feb 2, 1996Nov 23, 1999Sony CorporationApplication programming interface for managing and automating data transfer operations between applications over a bus structureUS6088364 *Jul 14, 1997Jul 11, 2000Yamaha CorporationInterface apparatus connecting between multimedia network and music networkUS6094530Apr 29, 1998Jul 25, 2000Intel CorporationRemotely monitoring execution of a programUS6134662 *Jun 26, 1998Oct 17, 2000Vlsi Technology, Inc.Physical layer security manager for memory-mapped serial communications interfaceUS6279123Sep 15, 1998Aug 21, 2001Lucent Technologies, Inc.System for viewing and monitoring embedded processor operationUS6347337 *Aug 20, 1999Feb 12, 2002Intel CorporationCredit based flow control scheme over virtual interface architecture for system area networksUS6353898May 18, 2000Mar 5, 2002Novell, Inc.Resource management in a clustered computer systemUS6374399Apr 21, 1999Apr 16, 2002Advanced Micro Devices, Inc.Apparatus and method for providing list and read list capability for a host computer systemUS6378000 *Apr 29, 1999Apr 23, 2002Mitsubish Electric Research Laboratories, IncAddress mapping in home entertainment networkUS6430635Sep 27, 1999Aug 6, 2002Lg Electronics IncProtocol interfacing methodUS6434117Mar 5, 1999Aug 13, 2002Nec CorporationIEEE-1394 serial bus network capable of multicast communicationUS6496509 *Aug 3, 1998Dec 17, 2002Advanced Micro Devices, Inc.System for transmitting data packets between computers via an IEEE-1394 network mediumUS6522654 *May 15, 1998Feb 18, 2003Harris-Exigent, Inc.Method for hosting the internet protocol suite on the IEEE-1394 high speed serial busUS6538758May 11, 1999Mar 25, 2003Canon Kabushiki KaishaImage output apparatus and method thereof, and image output systemUS6600756Jun 14, 1999Jul 29, 2003Hewlett-Packard Development Company, Lp.Method of improving the performance of a bus which is asynchronous-traffic intensiveUS20020133632Mar 5, 2002Sep 19, 2002Salloum Salazar Antonio EliasSystem of apparatuses that communicate via a bus structureUS20020141418Mar 19, 1999Oct 3, 2002Avner Ben-DorTunneling between a bus and a networkUS20030078063Jan 26, 2001Apr 24, 2003Yvon LegallaisMethod for isochronous resource management in a network based on hiperlan 2 techonology* Cited by examinerNon-Patent CitationsReference1"P1394.1 Draft Standard for High Performance Serial Bus Bridges", The Institute of Electrical and Electronics Engineers, Inc., Feb. 7, 1999, pp. 9-34.2Arun Ayyagari et al., "IEEE 802.11 Quality of Service", white paper, Mar. 2000, 10 pages.3Cisco Systems Inc., "Quality of Service (QoS) Networking", http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/qos.htm, Jun. 1999.4Congruent Software, Inc., P. Johansson, "RFC 2734: Ipv4 over IEEE 1394", Dec. 1999.5D. Plummer, "RFC 826: An Ethernet Address Resolution Protocol", http://cie.motor.ru/RFC/Orig/rfc826.txt, Nov. 1982, pp. 1-8.6D. Steinberg, et al., "An Empirical Analysis of the IEEE-1394 Serial bus Protocol", IEEE Jan. 2000, pp. 58-64.7G. Hoffman et al., IEEE 1394: A Ubiquitous Bus, COMPCON '95, Mar. 5, 1995, pp. 1-9, www.skipstone.com/comcon.html.8IEEE std 1394-1995, IEEE Standard for a High Performance Serial Bus, 1996, pp. 1-45.9IETF, T. Saito, et al., "'IP over iso1394' and 'AV over iso1394' controlled by an extension of MCAP", http://search.ietf.org/internet-drafts/draft-ietf-ip1394-ip-over-iso1394-00.txt, pp. 1-11, Sep. 1999.10IETF, T. Saito, et al., "�IP over iso1394� and �AV over iso1394� controlled by an extension of MCAP", http://search.ietf.org/internet-drafts/draft-ietf-ip1394-ip-over-iso1394-00.txt, pp. 1-11, Sep. 1999.11International Electrotechnical Commission, "Consumer audio/video equipment- Digital interface- Part 1: General", IEC First edition, Feb. 1998, Reference No. 61883-1, pp. 7-78.12International Electrotechnical Commission, "Consumer audio/video equipment- Digital Interface- Part 2: SD-DVCR data transmission", IEC First edition, Feb. 1998, Reference No. 61883-2, pp. 5-15.13International Electrotechnical Commission, "Consumer audio/video equipment- Digital interface- Part 3: HD-DVCR data transmission", IEC First edition, Feb. 1998, Reference No. 61883-3, pp. 5-13.14International Electrotechnical Commission, "Consumer audio/video equipment- Digital interface- Part 4: MPEG2-TS data transmission", IEC First edition, Feb. 1998, Reference No. 61883-4, pp. 5-23.15International Electrotechnical Commission, "Consumer audio/video equipment- Digital interface- Part 5: SDL-DVCR data transmission", IEC First edition, Feb. 1998, Reference No. 61883-5, pp. 5-17.16International Electrotechnical Commission, "Consumer Audio/Video Equipment- Digital Interface- Part 6: Audio and music data transmission protocol", IEC Reference No. 61883-6/WD2, Nov. 1999, pp. 1-23.17J. Postel, et al., "RFC 1042: A Standard for the Transmission of IP Datagrams over IEE 802 Networks", http://IEC,motor.ru/RFC/Orig/rfc1042.txt, Feb. 1988, pp. 1-14.18Microsoft Corporation, "A Short Overview of QoS Mechanisms and Their Interoperation", 1999, pp. 1-7.19Microsoft Corporation, "NdisClCloseCall", http://www.microsoft.com/hwdev/ddk/DDKdocs/Win2K103ndisx_7rsi.htm, Apr. 1999.20Microsoft Corporation, "NdisSendPackets", http://www.Microsoft.com/ddk/DDKdocs/Win2K/103ndisx_88s2.htm, Apr. 1999.21Microsoft Corporation, "Quality of Service Technical White Paper", 1999.22Microsoft Corporation, "SBP-2 Support and Windows 2000", http://agent.microsoft.com/hwdev/print/sbp2_w2000.htm, Mar. 25, 1999.23Microsoft Corporation, "Windows 2000 Driver Development Kit Documentation", http://www.microsoft.com/ddk/ddkdocs/win2K/vdd_24px.htm, et al., Apr. 1999.24Microsoft Corporation, "Windows 2000 Driver Development Kit Documentation", http://www.microsoft.com/hwdev/ddk/DDKdocs/Win2k/102gen_9eg7.htm, et al., Apr. 1999.25Microsoft Corporation, "Windows 2000 Driver Development Kit Documentation", www.microsoft.com/hwdev/ddk/DDKdocs/Win2K/102gen_9ffr.htm, et al., Apr. 1999.26Microsoft Corporation, "Windows 2000 Driver Development Kit Documentation", www.microsoft.com/hwdev/ddk/DDKdocs/Win2k/202mini_60yv.htm, Apr. 1999.27MindShare, Inc., D. Anderson, "Fire Wire System Architecture IEEE 1394a Second Edition PC System Architecture Series", Dec. 1998, pp. 13-34.28Search Report.29The Promoters of the 1394 Open HCI, "1394 Open Host Controller Interface Specification", Sep. 29, 1997, pp. 1-168.30Unibrain S.A., "The IEEE-1394 Development Toolkit for Windows NT 4.0/98/98SE", http://www.unibrain.com/products/ieee-1394/fireapi.htm, Apr. 14, 2000.31Unibrain S.A., "Unibrain FireAPI(TM) Documentation, 1394 Class Driver, User Mode Interface", Apr. 4, 2000, pp. 1-281.32Unibrain S.A., "Unibrain FireAPI� Documentation, 1394 Class Driver, User Mode Interface", Apr. 4, 2000, pp. 1-281.Referenced byCiting PatentFiling datePublication dateApplicantTitleUS6820150Apr 11, 2001Nov 16, 2004Microsoft CorporationMethod and apparatus for providing quality-of-service delivery facilities over a busUS6977939 *Jan 26, 2001Dec 20, 2005Microsoft CorporationMethod and apparatus for emulating ethernet functionality over a serial busUS7009939 *May 21, 2001Mar 7, 2006Lucent Technologies Inc.Adaptive resource management in a communication systemUS7073000 *Jun 28, 2002Jul 4, 2006Canon Kabushiki KaishaCommunication system and communication control apparatus and methodUS7093044Oct 25, 2004Aug 15, 2006Microsoft CorporationMethod and apparatus for providing quality-of-service delivery facilities over a busUS7209989Sep 29, 2004Apr 24, 2007Intel CorporationTransfer acknowledgement mechanism for an MSL architectureUS7224690 *Dec 21, 2001May 29, 2007Yamaha CorporationMethod and apparatus for managing transmission and reception of data over a networkUS7317734Jan 14, 2005Jan 8, 2008Microsoft CorporationMethod and apparatus for emulating ethernet functionality over a serial busUS7363405Jun 28, 2002Apr 22, 2008Canon Kabushiki KaishaCommunication control apparatus and methodUS7555584Sep 29, 2004Jun 30, 2009Intel CorporationProviding additional channels for an MSL architectureUS7630398 *Jan 11, 2006Dec 8, 2009Intel CorporationSubnet independent transparent bridgeUS7684353Mar 7, 2007Mar 23, 2010Yamaha CorporationMethod and apparatus for managing transmission and reception of data over a networkCN100514319CSep 1, 2005Jul 15, 2009英特尔公司Transfer acknowledgement for a mobile scalable link (MSL) architectureWO2006039049A1 *Sep 1, 2005Apr 13, 2006Intel Corp A Corp Of DelawareProviding additional channels for a mobile scalable link (msl) architectureWO2006039056A1 *Sep 1, 2005Apr 13, 2006Intel CorpTransfer acknowledgement for a mobile scalable link (msl) architectureWO2011075238A1 *Nov 9, 2010Jun 23, 2011Qualcomm IncorporatedMethods and apparatus for using a distributed message bus for ad hoc peer-to-peer connectivity* Cited by examinerClassifications U.S. Classification710/305, 370/409, 710/105International ClassificationH04L29/08, H04L29/06Cooperative ClassificationH04L69/08, H04L69/32European ClassificationH04L29/08A, H04L29/06ELegal EventsDateCodeEventDescriptionSep 14, 2011FPAYFee paymentYear of fee payment: 8Sep 17, 2007FPAYFee paymentYear of fee payment: 4Aug 9, 2005CCCertificate of correctionSep 14, 2000ASAssignmentOwner name: MICROSOFT CORPORATION, WASHINGTONFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:JOY, JOSEPH M.;MURCHING, ARVIND;DUBE, ADITYA;AND OTHERS;REEL/FRAME:011118/0177Effective date: 20000913RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google