CN105103523B - The transmission of high efficiency socket - Google Patents

The transmission of high efficiency socket Download PDF

Info

Publication number
CN105103523B
CN105103523B CN201380075127.3A CN201380075127A CN105103523B CN 105103523 B CN105103523 B CN 105103523B CN 201380075127 A CN201380075127 A CN 201380075127A CN 105103523 B CN105103523 B CN 105103523B
Authority
CN
China
Prior art keywords
communication link
socket
completing port
connection status
participant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201380075127.3A
Other languages
Chinese (zh)
Other versions
CN105103523A (en
Inventor
M.R.科克斯
I.D.帕肖夫
J.A.西尔韦拉
P.斯利沃维奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105103523A publication Critical patent/CN105103523A/en
Application granted granted Critical
Publication of CN105103523B publication Critical patent/CN105103523B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

Each embodiment will transmit associated communication link initialization into the connection status between the participant in communication link with data.In some cases, communication link and the first input/output (I/O) completing port are effectively matched to be able to carry out data transmission.Some embodiments by communication link and the first I/O completing port disassociation and reinitialize communication link, while keeping connection status.Alternately or additionally property can match communication link and at least the 2nd I/O completing port.In some cases, the I/O model that the 2nd I/O completing port utilizes from and the associated I/O model of the first I/O completing port it is different.Alternately or additionally property can reconfigure communication link to follow the I/O model for not using IO completing port.

Description

The transmission of high efficiency socket
Background technique
Current technology enables computing device to be connected to each other and transfer data.For example, on the first computing device Application can utilize various forms of communication links, such as Berkley socket connect, with the application on the second computing device Communication.Sometimes, the transmission of these data may be inherently asynchronous, this may cause place inefficient on computing device again Reason.In order to solve this problem, some computing devices use input/output (IO) completing port, they may be coupled directly to One or more communication links simultaneously further manage data transmission associated with (multiple) communication link.Although IO completing port It can be used for quickly handling and communicate and more effectively load central processing unit (CPU), but IO completing port and (multiple) communications Direct-coupling between link there may come a time when that (multiple) communication link and IO completing port are further coupled to same I/O model, So that (multiple) communication link was reduced to a possibility that other application.
Summary of the invention
There is provided the content of present invention be in order to introduce selected concept in simplified form, hereafter in a specific embodiment can be into One step describes them.The content of present invention is not really wanted to point out the key features or essential features of theme claimed.
Each embodiment will communication link initialization associated with data transmission at participant associated with communication link Between connection status.In some cases, communication link and the first input/output (IO) completing port are effectively matched with energy Enough carry out data transmission.In later time point, some embodiments releasing communication links are associated with simultaneously with the first IO completing port Communication link is reinitialized, while keeping connection status.Alternately or additionally property, by communication link and at least the 2nd IO Completing port pairing.In some cases, the I/O model that the 2nd IO completing port utilizes with and the first IO completing port it is associated I/O model it is different.Alternately or additionally property can reconfigure communication link to follow and not use IO completing port I/O model.
Detailed description of the invention
Specific embodiment is described with reference to the drawings.In the accompanying drawings, leftmost (multiple) the digital representation attached drawings of appended drawing reference The figure that label occurs for the first time.In the specification and illustrated in the drawings in different instances using identical appended drawing reference can indicate it is similar or Identical entry.
Fig. 1 is the diagram according to the example computing device of one or more embodiments.
Fig. 2 is the diagram according to the example operations environment of one or more embodiments.
Fig. 3 is comprising the figure according to the exemplary environment of the one example implementation of the communication links of one or more embodiments Show.
Fig. 4 is comprising the figure according to the exemplary environment of the one example implementation of the communication links of one or more embodiments Show.
Fig. 5 is comprising the diagram according to the exemplary environment of the embodiment of the communication links of one or more embodiments.
Fig. 6 shows the flow chart according to one or more embodiments.
Fig. 7 shows the example computing device that can be used for implementing each embodiment described herein.
Specific embodiment
It summarizes
Each embodiment will communication link initialization associated with data transmission at participant associated with communication link Between connection status.In some cases, communication link and the first input/output (IO) completing port are effectively matched with energy Enough carry out data transmission.For example, the communication link with simultaneous asynchronous data transmissions can be entered using IO completing port as processing And/or the more efficient way of the asynchronous nature of outflow data.Sometimes, it may be desirable to reuse and complete end with different IO The connecting link of mouth and/or I/O model, and the connection with associated participant is still kept simultaneously.Some embodiments are by communication link It is released with the association of the first IO completing port and communication link is reinitialized into holding and the connection of associated participant The original state of state.In some cases, the communication link reinitialized can be transmitted for new opplication and/or participant It uses.Alternately or additionally property, communication link can match at least the 2nd IO completing port.In some cases, second The I/O model that IO completing port utilizes from and the first associated I/O model of IO completing port it is different.Alternately or additionally property, After re-initialization, communication link can be reconfigured to utilize different I/O models, and do not complete using IO Port.
In the following discussion, provide the chapters and sections of entitled " example operations environment ", and its description can using one or A kind of environment of multiple embodiments.After this, the chapters and sections description of entitled " reliable socket transmission " is according to one or more real Apply the communication link of example transmission connection.Finally, the chapters and sections description of entitled " example device " can be used for implementing one or more implementations The example device of example.
The general introduction for each embodiment being described below has been provided, considers the model according to one or more embodiments now Example embodiment.
Example operations environment
Fig. 1 is that can operate using the diagram of the example computing device of technology described herein.The example of diagram includes The computing device 102 that can be configured in several ways.For example, computing device 102 can be configured as traditional computer (example Such as, desktop PC, laptop computer etc.), movement station, apparatus for entertainment, the set-top box for being communicably coupled to television set, Radio telephone, net book, game console, hand-held device etc..Therefore, the range of computing device 102 can largely be deposited from having The wholly-owned source device (for example, personal computer, game console) of reservoir and processor resource arrives memory and/or process resource Limited low-resource device (for example, conventional set-top box, handheld game consoles).Computing device 102 further includes making to calculate to fill Set the software of 102 execution one or more operations as described below.
Especially, computing device 102 includes (multiple) processor cores 104.The representative of (multiple) processor cores 104 can It executes the functionality of the processor instruction of machine level, such as branch, jumps, increases, reducing, mobile data etc..Alternatively or Additionally, (multiple) processor cores 104 be configured to and associated other processor cores of computing device 102 it is parallel Ground executes processor instruction.Then, the range of computing device 102 can from uniprocessor computing device to multicore/multiprocessor Computing device.
Computing device 102 further includes one or more computer readable storage mediums 106.Computer readable storage medium can To include, for example, but are not limited to, the volatile and non-volatile memory of form of ownership usually associated with computing device And/or storage medium.Such medium may include ROM, RAM, flash memory, hard disk, removable media etc..Especially, Computer readable storage medium 106 include one or more application 108, (multiple) socket preprocessing module 110 and one or Multiple input/output modules 112.
(multiple) represent using 108 includes that can be answered by the one or more of the instruction of the execution of (multiple) processor cores 104 With.(multiple) using 108 may include functional (multiple) high-grade answering with what is interacted with the user of computing device 102 With may include the instruction of associated with software thread processor cores, and/or may include and (multiple) inferior grade application phase Associated instruction, the inferior grade is applied and is interacted with the inferior grade of computing device 102 and/or basic sides, such as driver is soft Part, Interrupt Service Routine etc..Alternately or additionally property, (multiple) using 108 may include function associated with operating system It can property.Then, computing device 102 may include a variety of (multiple) applications.
(multiple) socket preprocessing module 110 represents function associated with network communication protocol and/or data transmission Property.Especially, (multiple) socket preprocessing module 110 can be applied for example using Application Programming Interface (API) to (multiple) 108 exposure networkings and/or communications portal.One such example includes the Windows Internet of Microsoft (WININET) software module.It can use and/or expose the network communication protocol of any appropriate type, such as Hyper text transfer Agreement (HTTP), File Transfer Protocol (FTP) etc..In some cases, (multiple) socket preprocessing module 110 utilizes high Handshake procedure used by these agreements of grade interface exposure, the interface abstraction agreement connection participant and/or transmission data.It replaces For ground or additionally, (multiple) socket preprocessing module 110 may include being configured to communicate according to one or more I/O models The functionality of link, such as configure communication link to be configured to blocking communication link with simultaneous asynchronous data transmissions, it is configured to non- Blocking communication link is configured to overlapping I/O functionality etc..(multiple) socket preprocessing module 110 can also be matched It is set to creation, return and manages handle associated with communication link, such as the handle of direction socket, file etc..Then, (multiple) socket preprocessing module especially includes and configures and/or manage communication link and the related function of associated agreement Property.
The representative of (multiple) input/output (IO) manager module 112 especially asks (multiple) socket preprocessing module 110 Seek and/or be directed toward the function that the connection between the functionality and interface of (multiple) socket preprocessing module 110 is bridged in hardware Can property, the hardware can assist executing by (multiple) socket processing module 110(and/or in general computing device 102) Request and/or be directed toward (multiple) socket processing module 110(and/or in general computing device 102) I O functionality.It is (more It is a) I/O Manager module 112 is especially abstracted the method for issuing and/or completing IO associated with asynchronous operation.For example, such as Fruit (multiple) socket preprocessing module 110 requests to transmit data to the outside of computing device 102, then (multiple) I/O Manager module 112 can receive the request for data transmission and dock with the associated device driver for transmitting data outward.Make For another example, if data transfer request storing data, (multiple) IO into the file being located on association hard disk drive Manager module 112 can manage the entrance for entering and leaving the module and/or software of facilitating this request.Alternately or additionally Property, the hardware shared by multiple applications, port etc. can be supervised and/or be managed to (multiple) I/O Manager module 112.For example, In some cases, IO completing port can be associated with multiple applications that shared common hardware carries out data transmission.(multiple) I/O Manager module 112 can be with IO completing port more particularly to the creation of managing I/O completing port and (multiple) what application It is associated.
Fig. 2 shows exemplary systems 200, generally are shown as the computing device 102 to be implemented in multiple devices and pass through In the environment of central computing device interconnection.Central computing device can multiple devices local or can be separate in position Multiple devices.In one embodiment, central computing device is " cloud " server farm (server farm) comprising is passed through Network or internet or other means are connected to one or more server computers of multiple devices.
In one embodiment, enable must be throughout the functionality that multiple devices convey to multiple dresses for this interconnection architecture The user set provides public seamless experience.Each of multiple devices can have different desired physical considerations and ability, and Central computing device enables to convey to device and not only adjusts for the device but also be total to for all devices using platform Same experience.In one embodiment, " class " of destination apparatus is created and for the adjustment experience of the general class of each device.It can be by The class of the physical features of device or use or other common features definition devices.For example, as set forth above, it is possible to passing through a variety of differences Mode (such as mobile device 202, the use of computer 204 and television set 206) configure computing device 102.These Each of configuration all has the screen size being generally corresponding to, thus, it is possible to configure this exemplary systems for computing device 102 One of these device classes in 200.For example, computing device 102 can use 202 device class of mobile device comprising mobile electricity Words, music player, game device etc..Computing device 102 can also use 204 device class of computer comprising individual calculus Machine, laptop computer, net book etc..The configuration of television set 206 includes the device configuration for being related to showing in Leisure Environment, example Such as, television set, set-top box, game console etc..Therefore, technique described herein can by computing device 102 these not With the support of configuration, and it is not limited to concrete example described in following sections.
In some embodiments, (multiple) server 208 includes that " cloud " is functional.Herein, cloud 210 is shown as including to use In the platform 212 of web services 214.The hardware (such as server) of 212 abstract cloud 210 of platform and the bottom function of software resource Property, and in may function as " cloud operating system ".For example, platform 212 can be with abstract resource with by computing device 102 and other Computing device connection.Platform 212 can be also used for the scaling of abstract resource, with to the web services 214 implemented via platform 212 The demand encountered provides corresponding horizontal scaling.It is contemplated that arriving various other examples, such as the server in server farm Load balancing, protection etc. for malicious parties (for example, spam, virus and other Malwares)., including cloud then 210 using as being related to via internet or the strategy of other networks software and hardware resource for enabling computing device 102 to use A part.
Alternately or additionally property, computing device 102 include (multiple) socket pretreatment as described above and below Module 110 and (multiple) I/O Manager module 112.Herein, computing device 102 be illustrated as using by cloud 210 by with it is (more It is a) socket preprocessing module 110 and/or the associated connectivity of (multiple) I/O manager module 112 and the function that provides Property.
In general, software, firmware, hardware (such as fixed logic circuit), artificial treatment or these embodiments can be used Combination implement any function described herein.Term " module ", " functionality " and " logic " general generation used herein Table software, firmware, hardware or combinations thereof.For for software implementations the case where, module, functionality or logical representation are in processor The program code of appointed task is executed when executing or be executed by it on (such as one or more CPU).Program code can store In in one or more computer readable storage means.The feature of following gesture technologies is unrelated with platform, this expression can have There are many implement the technology on a variety of commercial computing platforms of processor.
The example operations environment that can use each embodiment has been described, considers now according to one or more embodiments Reliable socket transmission discussion.
Reliable socket transmission
Major applications are transmitted using some form of data.In some cases, data transmission is maintained at computing device The local of storage device and/or.In other cases, data transmission expansion be more than computing device reach external computing device and/ Or storage location.Either this number can be assisted in the inside of computing device or outside, various types of communication links According to transmission.As an example, Berkeley socket utilizes the function tune that each endpoint is implemented as involved in communication link Standardization library.When first end point is wished with the second endpoint communication, first end point can be called by the offer of standardization library API.Assuming that each endpoint implements the interface and/or agreement that each endpoint understands, it is then able to establish communication link.
Different applications may expect the different configurations of associated communication link.For example, the first application can be around logical The data for crossing first set of words are transmitted to design, and first set of words is configured to hinder the execution of application simultaneously in response to request etc. Wait returned data.Second application may be sent around the data transmission scheme by the second socket, the second socket for number According to request, but wait response when do not hinder application execution.Instead second socket may be configured to week Phase property ground poll returned data, but extra process is carried out between poll.Then, different application may expect to be based on attempting to reality The socket and/or communication link for what showing different input/output (I/O) model is utilized to configure.
Some computing devices have while running the ability of several applications.Furthermore, it is possible to configure it is some or all of application with It establishes and/or transmits data using communication link.Although can configure computing device with and meanwhile utilize (multiple) communication link Several applications are run, but computing device can have and transmit less hardware than request application execution data.In these cases, Computing device can have additional IO management and/or ability, and to help to make, data are transmitted and/or hardware resource management is more effective Rate.For example, I/O Manager functionality can be implemented in some computing devices, for example, being answered by operating system component, one or more With and/or I/O subsystem, cooperate with IO completing port, as passing through the shared hardware management data between multiple applications A kind of method of transmission, as further discussed below.
Other than facilitating data to transmit, some communication links can have additional attribute.For example, some participants And/or endpoint can request that and authenticate associated communication link before allowing to carry out data transmission by communication link.But, Identifying procedure usually will increase additional agreement and/or handshake procedure so that using communication link application otherwise do not know this A little or application designer is not intended to be coupled in application to make great efforts to keep application more general.In order to assist these applications, The operating system code and/or general-purpose library that some embodiments are called indirectly to application increase communication link identifying procedure.Then this A little communication links can be initialised, connect and/or be authenticated using operating system code and/or general-purpose library, and next will It is transmitted to recipient using for further use.
Each embodiment will transmit associated communication link initialization between the participant in communication link with data Connection status.In some cases, communication link and the first IO completing port are effectively matched to be able to carry out data transmission.One A little embodiments reinitialize into holding participant by communication link and the first IO completing port disassociation and by communication link Between connection status original state.In some cases, the communication link reinitialized can be transmitted for new opplication It uses.For example, it is contemplated that Fig. 3, it illustrates the exemplary environments 300 for describing socket communication link and the pairing of IO completing port.
Include in environment 300 is application 108a, socket preprocessing module 110 and the I/O Manager module 112 of Fig. 1. As described above, representing the application of any appropriate type using 108a, such as operating system component, user's application, library component etc..For For the sake of simplicity, representing the logical groups for being configured to execute the executable code of certain function used here as term " application ".One In a little situations, this executable code group may imply being capable of independently operated " independence " application.Alternately or additionally property, this Kind code-group, which can imply, can call library and/or operation system function.Then, " application " is intended to imply that is taken various forms visits The wide scope of asking property is functional.It further include showing the socket layer for the multiple sockets for including in environment 300 in environment 300 302, and additionally illustrate the IO completing port 304 of multiple IO completing ports.In this example, using 108a and socket Preprocessing module 110 communicates, as a kind of its mode is initialized and/or accessed to communication link.For example, in some realities It applies in example, as described above, calling API associated with socket processing module 110 using 108a.Herein, socket is located in advance Reason module 110 establishes the socket 306 for being included in socket layer 302.The gray shade of socket 306 is for indicating socket 306 are initialised, and are connected to endpoint and/or associated participant, and the individual IO completing port with IO completing port 304 308 pairings.By similar fashion, IO completing port 308 includes gray shade, to indicate that it is matched with socket 306.Further It is to be noted, that in this example, the individual IO completing port 310 being also included in IO completing port 304 is not connect with socket 306 And/or pairing, such case is indicated followed by no gray shade.
Socket can be bound into IO completing port by any appropriate ways.For example, in some embodiments, socket Word can be represented by socket handle.Socket handle can be especially used as to management socket and realize the program to socket Property access a kind of mode.In some cases, the associated function of socket handle can be called to pass through phase Associated socket realizes data transmission.Socket handle can be used as and be directed toward associated set by alternately or additionally property Connect the identifier and/or pointer of word.In order to which IO completing port is bound to socket, some embodiments transmit socket handle To IO completing port.And IO completing port can safeguard socket handle list, represent IO completing port be responsible for each of Socket and/or socket handle can safeguard the pointer for being directed toward IO completing port.Alternately or additionally property, can will be socketed Words and expressions handle and IO completing port pass to I/O Manager module 112 together.By the way that socket is bound to IO completing port, IO is complete The some functions transmitted and taken the circumstances into consideration for socket monitoring data for socket unloading task are undertaken at port.For example, In some embodiments, IO completing port can receive the notice of input data, and can realize data by any appropriate ways Retrieval, such as to awaiting tasks unloading data retrieval, notify the associated application of input data.
In some embodiments, by socket and/or socket handle be associated with IO completing port be configured with socket with Utilize specific I/O model.For example, in this I/O model, when socket handle is associated with completing port, operating system mark The associated with object of socket handle is remembered, so that all associated with completing port using any IO in future that handle is sent.No It crosses, it is recognized that socket can be associated with without using other I/O models of IO completing port.For example, some I/O models are anti- And use API associated with Berkley socket carries out event notice.There may come a time when it is beneficial using IO completing port. For example, data transmission can be made more efficiently by allowing socket to be tied to associated IO completing port.For example, using IO Completing port model can allow for the caller of socket to obtain the readjustment of system thread pool when can be used on socket in data Function.But, it is more special to may also cause socket/socket handle in this way, and versatility is more for other application It is low.For example, it is contemplated that situation as described above is similar to, wherein routing communication link by the agency of request certification.It is appropriate to realize A kind of mode of certification may include allowing using understanding identifying procedure.But, as described above, will may undesirably answer in this way With being coupled to agency and/or communication link.
In some embodiments, identifying procedure and application can be decoupled.It as described above and as further discussed below, can To carry out initialization and/or among the participants connection communication link to communication link.This may include execute identifying procedure and/ Or by communication link with and the associated first IO completing port of the first I/O model it is associated.Complete initialization and/or certification After process, communication link can be reset and/or reinitialize into original state by some embodiments, while keep associated Connection status between participant.Some embodiments are then by the communication link for resetting and/or reinitializing to second Using and/or the 2nd IO completing port.Alternately or additionally property, the communication link that can will reset and/or reinitialize Being reset to enables communication link state associated at least the 2nd I/O model.
Consider Fig. 4, it illustrates another embodiments of the exemplary environment 300 of previously described Fig. 3.As previously mentioned, Through establishing communication link via socket 306 and associated IO completing port 308.In some cases, it initializes and/or builds Vertical may include the identifying procedure for executing any appropriate type associated with link.This can be managed by any appropriate ways The identifying procedure of seed type.In some embodiments, these processes can be managed via socket processing module 110.Alternatively Or additionally, it can be at least partially based on using the first I/O model and execute initialization and/or foundation.Herein, It establishes after communication link, has made decision with by socket 306 and 308 disassociation of IO completing port, while keeping extremely Connection between few some participants.The association of socket 306 and IO completing port 308 can be realized by any appropriate ways It releases.It in some cases, can the removal socket associated with socket 306 from the list that IO completing port 308 manages Words and expressions handle.Alternately or additionally property, can by communication link associated with the first I/O model that IO completing port 308 uses Any setting resetting and/or be initialised to default conditions.
In order to further illustrate, consider that application is likely to be coupled to the example above of identifying procedure.It is substituted in coupling within application Identifying procedure is closed, some embodiment configuration applications are to request the communication for having passed through identifying procedure and/or process is established Link.In this way more particularly to will apply from including that any knowledge relevant to certification communication link decouples.Herein, socket is pre- Processing module 110 is communicated to I/O Manager module 112, it is desirable to be reset and/or be reinitialized socket 306, while keep it Connection status.In response to (multiple) communications, socket 306 is reset and/or is reinitialized to generally by I/O Manager module 112 Change state, such as any IO completing port association is removed, the label etc. of resetting driving notice.Then, generalized state can weigh Set any suitable parameter associated with the first I/O model.Alternately or additionally property, to reinitialize communication link can solve Except with any pairing of existing I/O port and/or be associated with, such as the association between socket 306 and IO completing port 308.At this In, using the mixed and disorderly pattern masking socket 306 of grey to indicate connection status, and IO completing port 308 is no longer shielded, with table Show that it is no longer associated with socket 306.Then, Fig. 4 shows socket 306 and connect with IO completing port 308, but no longer with its It is associated.
Continue, Fig. 5 shows another embodiment of the exemplary environment 300 of previously described Fig. 3.In Fig. 5, environment 300 include the second application, here shown as 108b is applied, is distinguished with the application 108a with Fig. 3 and 4.As described above, using 108b represents application of any appropriate type, such as application, the library component of operating system component, user's driving etc..In this model In example, the socket for connecting and authenticating is requested from socket preprocessing module 110 using 108b.And socket preprocessing module 110 again to application 108b transmission and/or reallocation socket 306 for using.As a part of this reallocation, sometimes may be used Socket 306 and new IO completing port to be matched.For example, using 108b may be configured to using with for connect and/ Or different the second I/O model of the first I/O model of certification socket 306.In addition, the second I/O model can be completed from different IO Port, such as IO completing port 308 are associated.Due to socket 306 be reinitialized into it is more neutral but connection State, so using 108b socket 306 can be configured according to the second I/O model.As a part of this process, can incite somebody to action Socket 306 and IO completing port 310 match, their association is both indicated with gray shade.Due to socket 306 Connected and/or initialization, so simply using the existing connection of certified socket 306 using 108b.In It is to be initialized initially with the first I/O model and the first IO completing port to socket 306, it is completed into end with the first IO Mouthful and/or the first I/O model disassociation, and using the second I/O model it is transmitted for using and/or by its with The pairing of 2nd IO completing port.
In order to further illustrate, Fig. 6 is considered, it illustrates descriptions according to the step in the method for one or more embodiments Flow chart.This method can be executed by any hardware appropriate, software, firmware or combinations thereof.In at least some embodiments, (such as the socket of Fig. 1 of the appropriately configured software module of one or more that executes on one or more computing devices can be passed through Word preprocessing module 108 and/or I/O Manager module 110) implement this method various aspects.
Step 600 will communication link initialization associated with data transmission at participant associated with communication link it Between connection status.It can use communication link of any appropriate type, such as socket, file etc..In some embodiments, It can be associated with handle by communication link and/or be characterized by handle.As above it is further described that some sockets have correlation The socket handle of connection makes it possible to carry out procedural access to socket.The application for desiring access to socket can pass through Associated socket handle is quoted to do so.In addition, carrying out initialization to communication link may include any appropriate type Functionality, such as the option and/or parameter of communication link associated with I/O model are initialized, by communication link with IO completing port is associated, executes identifying procedure, and setting (multiple) compression options, (multiple) Encryption Options, (multiple) safety are retouched State symbol, (multiple) personification option, network interface affinity etc..Alternately or additionally property, by communication link initialization Cheng Lian Communication link can be placed in its state for being ready for or receiving data transmission by the state of connecing.
Communication link is reinitialized into general state by step 602, and keeps associated with communication link at least one Connection status between a little participants.In some cases, can will option associated with communication link and/or parameter resetting And/or it is initialized to that its example is provided above beneficial to state.For example, in some embodiments, to socket communication link weight New initialization resets socket to use with IO completing port disassociation and/or by parameter associated with configuration socket Specific I/O model.Some embodiments only reset not the option and/or parameter for the connection status for influencing communication link.
Step 604 uses the communication link in connection status at least one other participant.For example, such as Upper described, application can receive the communication link established and/or authenticated.Then, in some embodiments, communication is reconfigured Link is to follow the I/O model different from being used to establish the I/O model of communication link.For example, communication link can be complete with new IO It is associated and/or with being configured to follow the setting of new I/O model at port.Alternately or additionally property, can configure communication Link with for establishing its associated connection same IO completing port and/or I/O model it is associated.
The discussion for alreading have accounted for reliable socket transmission considers the example device that can be used for implementing above-described embodiment now Discussion.
Example device
Fig. 7 shows the various components of example device 700, and device 700 can be implemented as times as described with reference to figures 1 and 2 The portable and/or computer installation of what type, to implement the embodiment of reliable socket transmission described herein.Device 700 Including communication device 702, can be realized device data 704(for example, received data, just in received data, be used for The data grouping etc. of the data, data of broadcast) wired and or wireless communications.Device data 704 or other device contents can be with The media content stored in configuration setting, device including device and/or information associated with device users.On device 700 The media content of storage may include any kind of audio, video and/or image data.Device 700 includes one or more Data input 706, can receive any kind of data, media content and/or input by it, such as at user option defeated Enter, message, music, television media content, recorded video content and from any other of any content and/or data sources Audio, video and/or the image data of type.
Device 700 further includes communication interface 708, can implement these as serial and/or parallel interface, wireless interface, appoint Network interface, the modem of what type be any one or more of and the communication interface of any other type.Communication connects Mouth 708 provides the connection and/or communication link between devices 700 and communication network, other electronics, calculating and communication device pass through It carries out data communication with device 700.
Device 700 includes any one of one or more processors 710(such as microprocessor, controller etc.), place It manages that various computers are executable or readable instruction, with the operation of control device 700 and implements above-described embodiment.Alternately or additionally Property, it can use and be incorporated in the processing that generality identifies at 712 and the hardware that control circuit is realized, firmware or fixed logic electricity Any of or a combination of road implementing device 700.Although being not shown, device 700 may include each in coupling device The system bus or data transmission system of a component.System bus may include any one of different bus architectures or its group It closes, such as utilizes the memory bus or Memory Controller of any one of various bus architectures, peripheral bus, general serial Bus and/or processor or local bus.
Device 700 further includes computer-readable medium 714, such as one or more memory assembly, example include with Machine accesses memory (RAM), nonvolatile memory (for example, read-only memory (ROM), flash memory, EPROM, EEPROM Etc. any one or more of) and disc memory device.Disc memory device may be implemented as any kind of magnetically or optically storage dress It sets, such as hard disk drive, recordable and/or writeable compact disk (CD), any kind of digital versatile disk (DVD) etc..Device 700 can also include large-capacity storage media device 716.
Computer-readable medium 714 provides data storage mechanism, with storage device data 704 and various device applications 718 and any other type relevant to the operating aspect of device 700 information and/or data.For example, can be by operating system 720 maintenances are the computer application that executes with computer-readable medium 714 and on the processor 710.Device can be with using 718 Including device manager (such as control application, software application, signal processing and the intrinsic code of control module, specific device, use In the hardware abstraction layer etc. of specific device) and other application may include web browser, image processing application, for example i.e. When messages application communications applications, text processing application and various other different applications.Device further includes implementing herein using 718 Any system component or module of the embodiment of the technology.In this example, device includes being illustrated as software mould using 718 Block and/or the socket preprocessing module 722 and I/O Manager module 724 of computer application.722 generation of socket preprocessing module Table for realizing to data transmission communication mechanism access software.As described above, socket preprocessing module 722 more particularly to It is abstracted agreement relevant to the initialization of communication link and/or management.I/O Manager module 724 represents the software of managing I/O, example I/O Request such as relevant to socket preprocessing module 722, and the method that also abstract and/or generalization manages asynchronous IO.It replaces Generation ground or additionally, socket preprocessing module 722 and/or I/O Manager module 724 may be implemented as hardware, software, Firmware or any combination thereof.
Device 700 further includes audio and/or video input-output system 726, provides audio number to audio system 728 Video data is provided according to and/or to display system 730.Audio system 728 and/or display system 730 may include processing, display And/or any device of audio, video and image data is presented by other means.Vision signal and audio signal can be via RF(radio frequency) link, S-video link, synthetic video link, component video link, DVI(digital visual interface), analogue audio frequency connect It connects or other similar communication link from device 700 is transmitted to audio devices and/or display device.In embodiment, audio system 728 and/or display system 730 be implemented as the external module of device 700.Alternately, audio system 728 and/or display system System 730 is implemented as the integrated package of example device 700.
Conclusion
Each embodiment will transmit associated communication link initialization between the participant in communication link with data Connection status.In some cases, communication link and the first input/output (IO) completing port are effectively matched to be able to carry out Data transmission.Some embodiments by communication link and the first IO completing port disassociation and reinitialize communication link, Connection status is kept simultaneously.Alternately or additionally property can match communication link and at least the 2nd IO completing port.One In a little situations, I/O model that the 2nd IO completing port utilizes from and the first associated I/O model of IO completing port it is different.Substitution Ground or additionally can reconfigure communication link to follow the I/O model for not using IO completing port.
Although with each embodiment of the distinctive language description of structural features and or methods of action, it is to be understood that appended Each embodiment defined in claim is not necessarily limited to the specific feature or action.On the contrary, specific features and movement are public Open the example forms to realize embodiment claimed.

Claims (6)

1. a kind of the method implemented by computer, comprising:
It is associated with the first input/output (IO) completing port at least through the communication link that will be associated with data transmission, it will The communication link initialization is at the connection status between participant associated with the communication link;
At least through releasing being associated with for the communication link and the first IO completing port, by the communication link again at the beginning of The connection status to begin between chemical conversion general state and holding at least some participants associated with the communication link;And
Communication link in the connection status is used at least one other participant.
2. the method implemented by computer according to claim 1, wherein carrying out initialization to the communication link further includes Realize the certification of the communication link.
3. the method implemented by computer according to claim 1, further includes:
In response to by the communication link in the connection status at least one other participant for using, will be described logical Believe that link is associated with the 2nd IO completing port.
4. the computer-readable storage memory of one or more comprising one or more processors executable instruction, the processing Device executable instruction in response at least one processor execution and be configured to:
It is associated with the first input/output (IO) completing port at least through the communication link that will be associated with data transmission, it will The communication link initialization is at the connection status between participant associated with the communication link;
At least through releasing being associated with for the communication link and the first IO completing port, by the communication link again at the beginning of The connection status to begin between chemical conversion general state and holding at least some participants associated with the communication link;And
Communication link in the connection status is used at least one other participant.
5. the computer-readable storage memory of one or more according to claim 4, further includes being configured to execute such as The instruction of lower operation:
In response to by the communication link in the connection status at least one other participant for using, will be described logical Believe that link is associated with the 2nd IO completing port.
6. the computer-readable storage memory of one or more according to claim 5, further includes being configured to execute such as The instruction of lower operation:
In response to being based at least partially on for the communication link in the connection status at least one other participant Two I/O models configure the communication link.
CN201380075127.3A 2013-03-28 2013-09-12 The transmission of high efficiency socket Active CN105103523B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/852904 2013-03-28
US13/852,904 US9021157B2 (en) 2013-03-28 2013-03-28 Reliable socket transfer based on initializing and re-initializing a communication link and retaining a connected state
PCT/US2013/059331 WO2014158217A1 (en) 2013-03-28 2013-09-12 Efficient socket transfer

Publications (2)

Publication Number Publication Date
CN105103523A CN105103523A (en) 2015-11-25
CN105103523B true CN105103523B (en) 2018-12-07

Family

ID=49253410

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380075127.3A Active CN105103523B (en) 2013-03-28 2013-09-12 The transmission of high efficiency socket

Country Status (4)

Country Link
US (1) US9021157B2 (en)
EP (1) EP2979428B1 (en)
CN (1) CN105103523B (en)
WO (1) WO2014158217A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018102067A1 (en) * 2018-01-30 2019-08-01 Balluff Gmbh Wireless IO-Link communication network with an additional master and method of operation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1649351A (en) * 2004-01-28 2005-08-03 朗迅科技公司 Endpoint address change in a packet network
CN101047716A (en) * 2007-01-04 2007-10-03 华为技术有限公司 Method and device of IP transmission session transport

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680615A (en) 1994-11-04 1997-10-21 International Business Machines Corporation Desktop management of host applications
US6247068B1 (en) 1997-03-07 2001-06-12 Advanced Micro Devices Inc. Winsock-data link library transcoder
AU6507199A (en) 1998-11-30 2000-06-19 Motorola, Inc. Method and apparatus in a data communication system for establishing a reliable internet protocol session
FI20001630A (en) 2000-06-30 2001-12-31 Nokia Mobile Phones Ltd Determining quality of service for data streams
US6711621B1 (en) 2000-10-13 2004-03-23 Hewlett-Packard Development Company, L.P. System and method of implementing netware core protocol within a sockets model
US7225260B2 (en) 2001-09-28 2007-05-29 Symbol Technologies, Inc. Software method for maintaining connectivity between applications during communications by mobile computer terminals operable in wireless networks
US6920501B2 (en) 2001-12-17 2005-07-19 Ntt Docomo, Inc. Communication socket migration among different devices
KR20050043429A (en) 2003-11-06 2005-05-11 삼성전자주식회사 Channel resources management method and apparatus thereof
US7600217B2 (en) 2004-12-14 2009-10-06 Sap Ag Socket-like communication API for Java
US7706895B2 (en) 2005-02-25 2010-04-27 Rockwell Automation Technologies, Inc. Reliable messaging instruction
US8286197B2 (en) * 2008-07-17 2012-10-09 Sharp Laboratories Of America, Inc. Method and system for comprehensive socket application programming interface loopback processing
US8335853B2 (en) 2009-12-17 2012-12-18 Sonus Networks, Inc. Transparent recovery of transport connections using packet translation techniques
US8706889B2 (en) * 2010-09-10 2014-04-22 International Business Machines Corporation Mitigating connection identifier collisions in a communication network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1649351A (en) * 2004-01-28 2005-08-03 朗迅科技公司 Endpoint address change in a packet network
CN101047716A (en) * 2007-01-04 2007-10-03 华为技术有限公司 Method and device of IP transmission session transport

Also Published As

Publication number Publication date
WO2014158217A1 (en) 2014-10-02
US9021157B2 (en) 2015-04-28
EP2979428B1 (en) 2017-10-25
CN105103523A (en) 2015-11-25
EP2979428A1 (en) 2016-02-03
US20140297903A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
Fremantle A reference architecture for the internet of things
US8141125B2 (en) Orchestration of policy engines and format technologies
CN105052078B (en) Extend the routing rule from external service
CN109144660A (en) Micro services framework
WO2021077767A1 (en) Service management method and apparatus
CN107750357A (en) Data handling system with hardware-accelerated plane and software plane
CN108713309A (en) SD-WAN system, use method of SD-WAN system and related device
US7788392B2 (en) Mechanism for universal media redirection control
KR20220088306A (en) Automatic escalation of trust credentials
Tranoris et al. Enabling Cyber-Physical Systems for 5G networking: A case study on the Automotive Vertical domain
Gazis et al. A survey of dynamically adaptable protocol stacks
CN115248692A (en) Device and method for supporting cloud deployment of multiple deep learning framework models
US20210075880A1 (en) Delegating network data exchange
CN110869919B (en) Method for remote node discovery, communication channel confirmation and connection
CN105103523B (en) The transmission of high efficiency socket
Maciel et al. Cloud-network slicing MANO towards an efficient IoT-cloud continuum
US10581994B2 (en) Facilitating communication between an origin machine and a target machine
US10810033B2 (en) Propagating external route changes into a cloud network
WO2023231493A1 (en) X-centric communication infrastructure for supporting anything-as-a-service service model
US11665065B2 (en) Network integration and workflow generation tools for device-driven management
CN110557280B (en) Network acceleration method and block chain platform
US20240129306A1 (en) Service to service communication and authentication via a central network mesh
Le OpenStack and Software-Defined Networking: The Enormous Potential of Open Source Software Collaboration
Subratie A Software-Defined Overlay Virtual Network with Self-Organizing Small-World Topology and Forwarding for Fog Computing
da Silva Service Modelling and End-to-End Orchestration in 5G Networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant