Virtual Interface Architecture (original) (raw)
The Virtual Interface Architecture (VIA) is an abstract model of a user-level zero-copy network, and is the basis for InfiniBand, iWARP and RoCE. Created by Microsoft, Intel, and Compaq, the original VIA sought to standardize the interface for high-performance network technologies known as System Area Networks (SANs; not to be confused with Storage Area Networks). Networks are a shared resource. With traditional network APIs such as the Berkeley socket API, the kernel is involved in every network communication. This presents a tremendous performance bottleneck when latency is an issue.
Property | Value |
---|---|
dbo:abstract | The Virtual Interface Architecture (VIA) is an abstract model of a user-level zero-copy network, and is the basis for InfiniBand, iWARP and RoCE. Created by Microsoft, Intel, and Compaq, the original VIA sought to standardize the interface for high-performance network technologies known as System Area Networks (SANs; not to be confused with Storage Area Networks). Networks are a shared resource. With traditional network APIs such as the Berkeley socket API, the kernel is involved in every network communication. This presents a tremendous performance bottleneck when latency is an issue. One of the classic developments in computing systems is virtual memory, a combination of hardware and software that creates the illusion of private memory for each process. In the same school of thought, a virtual network interface protected across process boundaries could be accessed at the user level. With this technology, the "consumer" manages its own buffers and communication schedule while the "provider" handles the protection. Thus, the network interface card (NIC) provides a "private network" for a process, and a process is usually allowed to have multiple such networks. The virtual interface (VI) of VIA refers to this network and is merely the destination of the user's communication requests. Communication takes place over a pair of VIs, one on each of the processing nodes involved in the transmission. In "kernel-bypass" communication, the user manages its own buffers. Another facet of traditional networks is that arriving data is placed in a pre-allocated buffer and then copied to the user-specified final destination. Copying large messages can take a long time, and so eliminating this step is beneficial. Another classic development in computing systems is direct memory access (DMA), in which a device can access main memory directly while the CPU is free to perform other tasks. In a network with "remote direct memory access" (RDMA), the sending NIC uses DMA to read data in the user-specified buffer and transmit it as a self-contained message across the network. The receiving NIC then uses DMA to place the data into the user-specified buffer. There is no intermediary copying and all of these actions occur without involvement of the CPUs, which has an added benefit of lower CPU utilization. For the NIC to actually access the data through DMA, the user's page must be in memory. In VIA, the user must "pin-down" its buffers before transmission, so as to prevent the OS from swapping the page out to the disk. This action—one of the few that involve the kernel—ties the page to physical memory. To ensure that only the process that owns the registered memory may access it, the VIA NICs require permission keys known as "protection tags" during communication. So essentially VIA is a standard that defines kernel bypassing and RDMA in a network. It also defines a programming library called "VIPL". It has been implemented, most notably in cLAN from Giganet (now Emulex). Mostly though, VIA's major contribution has been in providing a basis for the InfiniBand, iWARP and RoCE standards. (en) |
dbo:wikiPageExternalLink | http://www.emulex.com/ https://noggin.intel.com/intelpress/categories/books/virtual-interface-architecture https://www.teleres.com.au/plan-design-optimize-enterprise-networks/ https://books.google.com/books%3Fid=i_NCY1kVq7kC&pg=PA193 http://www.cs.uml.edu/~bill/cs520/VI_spec.pdf http://www.usenix.org/publications/library/proceedings/als00/2000papers/papers/full_papers/rangarajan/rangarajan_html/node3.html |
dbo:wikiPageID | 8837430 (xsd:integer) |
dbo:wikiPageLength | 4241 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1043357162 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Kernel_(computer_science) dbr:InfiniBand dbr:Compaq dbr:Computer_network dbr:Berkeley_sockets dbr:Storage_Area_Network dbr:Latency_(engineering) dbr:Zero-copy dbr:Direct_memory_access dbr:RDMA_over_Converged_Ethernet dbr:Remote_direct_memory_access dbc:Computer_networks dbc:Supercomputing dbr:Intel dbr:Microsoft dbr:Virtual_memory dbr:IWARP |
dbp:wikiPageUsesTemplate | dbt:ISBN dbt:More_citations_needed |
dct:subject | dbc:Computer_networks dbc:Supercomputing |
gold:hypernym | dbr:Model |
rdf:type | dbo:Person yago:WikicatComputerNetworks yago:WikicatSupercomputers yago:Artifact100021939 yago:Computer103082979 yago:ComputerNetwork103085333 yago:Device103183080 yago:DigitalComputer103196324 yago:Instrumentality103575240 yago:Machine103699975 yago:Mainframe103711711 yago:Network103820728 yago:Object100002684 yago:PhysicalEntity100001930 yago:Supercomputer104358117 yago:System104377057 yago:Whole100003553 |
rdfs:comment | The Virtual Interface Architecture (VIA) is an abstract model of a user-level zero-copy network, and is the basis for InfiniBand, iWARP and RoCE. Created by Microsoft, Intel, and Compaq, the original VIA sought to standardize the interface for high-performance network technologies known as System Area Networks (SANs; not to be confused with Storage Area Networks). Networks are a shared resource. With traditional network APIs such as the Berkeley socket API, the kernel is involved in every network communication. This presents a tremendous performance bottleneck when latency is an issue. (en) |
rdfs:label | Virtual Interface Architecture (en) |
owl:sameAs | freebase:Virtual Interface Architecture yago-res:Virtual Interface Architecture wikidata:Virtual Interface Architecture https://global.dbpedia.org/id/4xHPb |
prov:wasDerivedFrom | wikipedia-en:Virtual_Interface_Architecture?oldid=1043357162&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Virtual_Interface_Architecture |
is dbo:wikiPageDisambiguates of | dbr:Via |
is dbo:wikiPageWikiLink of | dbr:Virtual_network_interface dbr:PARAM dbr:Remote_direct_memory_access dbr:Harold_T._Martin dbr:Kai_Li dbr:Via dbr:User_Direct_Access_Programming_Library dbr:IWARP dbr:ServerNet |
is foaf:primaryTopic of | wikipedia-en:Virtual_Interface_Architecture |