P. 1
OpenFlow: High-impact Strategies - What You Need to Know: Definitions, Adoptions, Impact, Benefits, Maturity, Vendors

OpenFlow: High-impact Strategies - What You Need to Know: Definitions, Adoptions, Impact, Benefits, Maturity, Vendors

|Views: 351|Likes:
Published by Emereo Publishing
The Knowledge Solution. Stop Searching, Stand Out and Pay Off. The #1 ALL ENCOMPASSING Guide to OpenFlow.An Important Message for ANYONE who wants to learn about OpenFlow Quickly and Easily...""Here's Your Chance To Skip The Struggle and Master OpenFlow, With the Least Amount of Effort, In 2 Days Or Less...""OpenFlow is a communications protocol that gives access to the forwarding plane of a switch or router over the network. In simpler terms, OpenFlow allows the path-of-network-packets-through-the-network-of-switches to be determined by software running on a separate server. This separation of the control from the forwarding allows for more sophisticated traffic management than feasible today using ACLs and routing protocols. OpenFlow is considered an enabler of Software Defined Networking.Get the edge, learn EVERYTHING you need to know about OpenFlow, and ace any discussion, proposal and implementation with the ultimate book - guaranteed to give you the education that you need, faster than you ever dreamed possible!The information in this book can show you how to be an expert in the field of OpenFlow.Are you looking to learn more about OpenFlow? You're about to discover the most spectacular gold mine of OpenFlow materials ever created, this book is a unique collection to help you become a master of OpenFlow.This book is your ultimate resource for OpenFlow. Here you will find the most up-to-date information, analysis, background and everything you need to know.In easy to read chapters, with extensive references and links to get you to know all there is to know about OpenFlow right away. A quick look inside: Openflow Switching Protocol, Web Services for Devices, Communications protocol, Internetwork protocol, List of network protocols, 10PASS-TS, 2BASE-TL, 4in6, 6in4, 9P, Access Stratum, Advanced Message Queuing Protocol, Alcatel Business Communications, Alternating bit protocol, AMX192, Anything In Anything, Apple Filing Protocol, Apple Sleep Proxy Service (Bonjour Sleep Proxy), AppleTalk, Appliance Link Protocol, ARCNET, Art-Net, ATA over Ethernet, ATM adaptation layer, ATM Adaptation Layer 2, ATM Adaptation Layer 5, Automatically switched optical network, Autonegotiation, Available Bit Rate, BACnet, Bandwidth allocation protocol, BBN Report 1822, Bearer Independent Call Control, BEEP, Binary protocol, BIP-8, Bonjour (software), Cache Discovery Protocol, CAIF, CAN Kingdom, CANopen, CcTalk, Cell relay, CIMD, Cisco WAAS, Coloured Book protocols, Common Industrial Protocol, Connection-oriented protocol, Connectionless communication, Connectionless protocol, Constrained Shortest Path First, Constraint-based Routing Label Distribution Protocol, Content Vectoring Protocol, ControlNet, Converged Network Adapter, Convergence (telecommunications), CRC-based framing, D54 (protocol), Data Stream Interface, DCE PC, DECnet, Decode-Encode Language, Delay-tolerant networking, Dense multicast, Devices Profile for Web Services, DH 485, DICOM, Digital Audio Access Protocol, Digital Data Communications Message Protocol, Digital Private Network Signalling System, Direct Client-to-Client, DirectAccess, Distributed data flow, Distributed Multi-Link Trunking, Distributed Universal Number Discovery, DMX512, DNET, DNP3, DOCSIS, DREAM (protocol), Dynamic synchronous transfer mode, EMI (protocol), Encapsulation (networking), ERIPAX, Ethernet Automatic Protection Switching, Ethernet over SDH, Ethernet Private Line, Ethernet Virtual Private Line, Fiber Distributed Data Interface, Fibre Channel over Ethernet, Financial Information eXchange, FINS, FLEX (protocol), FlexRay, FMIPv6...and Much, Much More!This book explains in-depth the real drivers and workings of OpenFlow. It reduces the risk of your technology, time and resources investment decisions by enabling you to compare your understanding of OpenFlow with the objectivity of experienced professionals - Grab your copy now, while you still can.
The Knowledge Solution. Stop Searching, Stand Out and Pay Off. The #1 ALL ENCOMPASSING Guide to OpenFlow.An Important Message for ANYONE who wants to learn about OpenFlow Quickly and Easily...""Here's Your Chance To Skip The Struggle and Master OpenFlow, With the Least Amount of Effort, In 2 Days Or Less...""OpenFlow is a communications protocol that gives access to the forwarding plane of a switch or router over the network. In simpler terms, OpenFlow allows the path-of-network-packets-through-the-network-of-switches to be determined by software running on a separate server. This separation of the control from the forwarding allows for more sophisticated traffic management than feasible today using ACLs and routing protocols. OpenFlow is considered an enabler of Software Defined Networking.Get the edge, learn EVERYTHING you need to know about OpenFlow, and ace any discussion, proposal and implementation with the ultimate book - guaranteed to give you the education that you need, faster than you ever dreamed possible!The information in this book can show you how to be an expert in the field of OpenFlow.Are you looking to learn more about OpenFlow? You're about to discover the most spectacular gold mine of OpenFlow materials ever created, this book is a unique collection to help you become a master of OpenFlow.This book is your ultimate resource for OpenFlow. Here you will find the most up-to-date information, analysis, background and everything you need to know.In easy to read chapters, with extensive references and links to get you to know all there is to know about OpenFlow right away. A quick look inside: Openflow Switching Protocol, Web Services for Devices, Communications protocol, Internetwork protocol, List of network protocols, 10PASS-TS, 2BASE-TL, 4in6, 6in4, 9P, Access Stratum, Advanced Message Queuing Protocol, Alcatel Business Communications, Alternating bit protocol, AMX192, Anything In Anything, Apple Filing Protocol, Apple Sleep Proxy Service (Bonjour Sleep Proxy), AppleTalk, Appliance Link Protocol, ARCNET, Art-Net, ATA over Ethernet, ATM adaptation layer, ATM Adaptation Layer 2, ATM Adaptation Layer 5, Automatically switched optical network, Autonegotiation, Available Bit Rate, BACnet, Bandwidth allocation protocol, BBN Report 1822, Bearer Independent Call Control, BEEP, Binary protocol, BIP-8, Bonjour (software), Cache Discovery Protocol, CAIF, CAN Kingdom, CANopen, CcTalk, Cell relay, CIMD, Cisco WAAS, Coloured Book protocols, Common Industrial Protocol, Connection-oriented protocol, Connectionless communication, Connectionless protocol, Constrained Shortest Path First, Constraint-based Routing Label Distribution Protocol, Content Vectoring Protocol, ControlNet, Converged Network Adapter, Convergence (telecommunications), CRC-based framing, D54 (protocol), Data Stream Interface, DCE PC, DECnet, Decode-Encode Language, Delay-tolerant networking, Dense multicast, Devices Profile for Web Services, DH 485, DICOM, Digital Audio Access Protocol, Digital Data Communications Message Protocol, Digital Private Network Signalling System, Direct Client-to-Client, DirectAccess, Distributed data flow, Distributed Multi-Link Trunking, Distributed Universal Number Discovery, DMX512, DNET, DNP3, DOCSIS, DREAM (protocol), Dynamic synchronous transfer mode, EMI (protocol), Encapsulation (networking), ERIPAX, Ethernet Automatic Protection Switching, Ethernet over SDH, Ethernet Private Line, Ethernet Virtual Private Line, Fiber Distributed Data Interface, Fibre Channel over Ethernet, Financial Information eXchange, FINS, FLEX (protocol), FlexRay, FMIPv6...and Much, Much More!This book explains in-depth the real drivers and workings of OpenFlow. It reduces the risk of your technology, time and resources investment decisions by enabling you to compare your understanding of OpenFlow with the objectivity of experienced professionals - Grab your copy now, while you still can.

More info:

Published by: Emereo Publishing on Nov 05, 2012
Copyright:Traditional Copyright: All rights reservedISBN:9781743444764
List Price: $31.96

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
This book can be read on up to 6 mobile devices.
Full version available to members
See more
See less

02/05/2016

589

9781743444764

Topic relevant selected content from the highest rated entries, typeset, printed and shipped.

Combine the advantages of up-to-date and in-depth knowledge with the convenience of
printed books.
A portion of the proceeds of each book will be donated to the Wikimedia Foundation to
support their mission: to empower and engage people around the world to collect and
develop educational content under a free license or in the public domain, and to disseminate
it effectively and globally.
The content within this book was generated collaboratively by volunteers. Please be advised
that nothing found here has necessarily been reviewed by people with the expertise
required to provide you with complete, accurate or reliable information. Some information in
this book maybe misleading or simply wrong. The publisher does not guarantee the validity
of the information found here. If you need specifc advice (for example, medical, legal,
fnancial, or risk management) please seek a professional who is licensed or knowledgeable
in that area.
Sources, licenses and contributors of the articles and images are listed in the section
entitled “References”. Parts of the books may be licensed under the GNU Free
Documentation License. A copy of this license is included in the section entitled “GNU Free
Documentation License”
All used third-party trademarks belong to their respective owners.
Contents
Articles
Openflow Switching Protocol 1
Web Services for Devices 2
Communications protocol 2
Internetwork protocol 18
List of network protocols 20
10PASS-TS 24
2BASE-TL 25
4in6 26
6in4 26
9P 27
Access Stratum 29
Advanced Message Queuing Protocol 30
Alcatel Business Communications 36
Alternating bit protocol 37
AMX192 37
Anything In Anything 38
Apple Filing Protocol 40
Apple Sleep Proxy Service (Bonjour Sleep Proxy) 43
AppleTalk 45
Appliance Link Protocol 51
ARCNET 52
Art-Net 55
ATA over Ethernet 56
ATM adaptation layer 59
ATM Adaptation Layer 2 60
ATM Adaptation Layer 5 64
Automatically switched optical network 66
Autonegotiation 68
Available Bit Rate 73
BACnet 74
Bandwidth allocation protocol 77
BBN Report 1822 77
Bearer Independent Call Control 78
BEEP 79
Binary protocol 80
BIP-8 80
Bonjour (software) 81
Cache Discovery Protocol 85
CAIF 85
CAN Kingdom 86
CANopen 87
ccTalk 93
Cell relay 94
CIMD 95
Cisco WAAS 96
Coloured Book protocols 97
Common Industrial Protocol 99
Connection-oriented protocol 99
Connectionless communication 100
Connectionless protocol 101
Constrained Shortest Path First 102
Constraint-based Routing Label Distribution Protocol 103
Content Vectoring Protocol 103
ControlNet 104
Converged Network Adapter 105
Convergence (telecommunications) 107
CRC-based framing 109
D54 (protocol) 110
Data Stream Interface 112
DCE/RPC 115
DECnet 117
Decode-Encode Language 120
Delay-tolerant networking 120
Dense multicast 124
Devices Profile for Web Services 124
DH 485 126
DICOM 126
Digital Audio Access Protocol 134
Digital Data Communications Message Protocol 137
Digital Private Network Signalling System 137
Direct Client-to-Client 139
DirectAccess 144
Distributed data flow 146
Distributed Multi-Link Trunking 148
Distributed Universal Number Discovery 149
DMX512 150
DNET 157
DNP3 160
DOCSIS 162
DREAM (protocol) 167
Dynamic synchronous transfer mode 167
EMI (protocol) 169
Encapsulation (networking) 170
ERIPAX 171
Ethernet Automatic Protection Switching 171
Ethernet over SDH 172
Ethernet Private Line 173
Ethernet Virtual Private Line 174
Fiber Distributed Data Interface 174
Fibre Channel over Ethernet 176
Financial Information eXchange 178
FINS 182
FLEX (protocol) 182
FlexRay 183
FMIPv6 186
Forward-confirmed reverse DNS 187
Frame Relay 189
Free protocol 194
FRF.12 194
FUDI 195
G.9963 196
G.9970 197
G.9972 198
G.hn 199
Generalized Multi-Protocol Label Switching 209
GPRS Tunnelling Protocol 210
H4 (protocol) 216
Handshaking 216
Header Error Control 217
Heartbeat message 217
Highway Addressable Remote Transducer Protocol 218
Higig 220
Hop-by-hop transport 221
HTTP body data 222
HTTP Live Streaming 223
HyperSCSI 226
IBM Advanced Peer-to-Peer Networking 227
IBM Advanced Program-to-Program Communication 228
IBM LU6.2 229
IBM Network Control Program 230
IBM Systems Network Architecture 230
IF-MAP 235
IL (network protocol) 237
Inter-server 238
Internet Data Exchange 238
Internet Fibre Channel Protocol 239
Internet Gateway Device Protocol 240
Internet Listing Display 241
Internet Printing Protocol 242
Internet Protocol Device Control 244
Internet Storage Name Service 244
InterPlaNet 246
InterStream Transit Protocol 246
Irsc 247
ISO 11783 247
JXTA 248
Kinetics Internet Protocol 251
Label Distribution Protocol 251
Lantastic 252
Lightweight protocol 253
Line Printer Daemon protocol 253
Link Layer Discovery Protocol 254
Link Layer Topology Discovery 257
Link-local Multicast Name Resolution 258
List of network protocol stacks 259
List of P2P protocols 260
List of software using Digital Audio Access Protocol 261
Live distributed object 262
Local Area Transport 265
Local Peer Discovery 266
LocalTalk 267
LocalTalk-to-Ethernet bridge 268
Lockstep protocol 269
LonTalk 270
Loose Source Routing 271
Lower layer protocol 272
MambaNet 272
Master/slave (technology) 275
Media Object Server 276
Media Stream Broadcast 277
Medium dependent interface 277
Messaging pattern 279
Microcom Networking Protocol 281
Microsoft Host Integration Server 285
Microsoft RPC 286
Miredo 288
mLAN 289
Mobile IP 290
MPLS-TP 293
Multimedia Exchange Network over Satellite (MENOS) 296
Multiwavelength optical networking 296
NAK (protocol message) 297
NAT Port Mapping Protocol 297
NAT traversal 299
National Information Standards Organization Circulation Interchange Protocol 301
Netatalk 302
NetBIOS 303
NetBIOS Frames protocol 307
NetBIOS over TCP/IP 310
NetWare Core Protocol 312
NetWare Link Services Protocol 313
Network Control Program 313
Network Device Control Protocol 314
Next generation network 315
Next Hop Resolution Protocol 318
NMEA 0183 318
Non Access Stratum 322
Non-broadcast multiple-access network 323
NWLink 324
Object storage device 325
OFTP 327
OpenLLDP 328
OpenWire (binary protocol) 329
Optical burst switching 329
Optical mesh network 331
Overlay multicast 336
Packet over SONET/SDH 337
Packet-switched network 338
Packetized Ensemble Protocol 345
Parallel Redundancy Protocol 345
PAROLI 346
Peer Distributed Transfer Protocol 348
Peer Name Resolution Protocol 349
Peer-to-Peer Protocol (P2PP) 350
Photuris (protocol) 352
Picture Transfer Protocol 352
PIM Dense Mode 354
PIM Sparse Mode 355
PL-3 357
PL-4 358
PME Aggregation Function 359
Point-to-Point Tunneling Protocol 361
Private IP 363
Proprietary protocol 363
Protected Streaming 364
Protocol implementation conformance statement 366
Protocol pipelining 366
Protocol stack 367
Protocol versioning 368
Proximity-1 Space Link Protocol 368
Proxy Mobile IP 369
PTMP 371
Precision Time Protocol 371
Provider Backbone Bridge Traffic Engineering 378
QuickFIX 380
R-SMLT 380
RANAP 382
Real Estate Transaction Standard 382
Real Time Messaging Protocol 383
Really Simple Discovery 391
RelayNet 393
Reliability (computer networking) 394
Remote Audio Output Protocol 395
Request-response 396
Retransmission (data networks) 397
Ring latency 398
RNSAP 398
Router alert label 398
Routing in delay-tolerant networking 399
Routing Table Maintenance Protocol 404
RP-570 404
RSM-A 405
RTPS protocol 406
Secure multicast 406
Secure Socket Tunneling Protocol 407
Security service (telecommunication) 409
Segmentation and Reassembly 414
Server Message Block 414
Service Advertising Protocol 422
Session (computer science) 422
Session ID 424
Short message peer-to-peer protocol 425
Signaling protocol 427
Simple Gateway Monitoring Protocol 428
Simple Network Paging Protocol 428
Simple Sensor Interface protocol 429
Simple Service Discovery Protocol 432
Simple Update Protocol 433
Singulation 433
Skypix 435
SNDCP 436
Sockets Direct Protocol 437
Sorcerer's Apprentice Syndrome 438
Source-specific multicast 439
Spanning Tree Protocol 440
SPI-3 449
SPI-4.2 450
Split multi-link trunking 451
Protocol spoofing 454
STAMP 456
Standard Interchange Protocol 456
Stateless protocol 457
Stimulus protocol 458
Store and forward 458
Structured Stream Transport 459
SWIFTNet InterAct Realtime 460
SWIFTNet InterAct Store and Forward 461
Switch56 462
Synchronous Ethernet 463
Synchronous optical networking 464
System Packet Interface 474
T-MPLS 476
TDMoIP 478
Telecommunications Management Network 481
Telelocator Alphanumeric Protocol 483
Telocator Alphanumeric input Protocol 483
Terminal Identifier – Address Resolution Protocol 484
Third Party Control Protocol 484
TransferJet 485
Transparent Network Substrate 487
Transport Driver Interface 487
Transport Sample Protocol 488
Traversal Using Relay NAT 488
Triangular routing 490
Trillium digital systems 490
Tunnel Setup Protocol 499
TV Network Protocol 500
TZSP 501
UniPro 504
UniPro protocol stack 510
Unitary controller 520
Universal Communication Format 520
Universal Plug and Play 521
Upper layer protocol 529
User Location Service 529
UUCP 530
Variant object 534
Verse protocol 535
Virtual circuit 536
Virtual Interface Adapter 538
Virtual Leased Line 538
Virtual Link Aggregation Control Protocol 539
Virtual Private LAN Service 540
Virtual Rendezvous 543
VoFR 544
VT1.5 545
Waffle (BBS software) 546
WAN optimization 546
Windows Rally 549
Wireless Internet Protocol 551
X.PC 552
XCAST 552
Xebra (medical imaging software) 554
Xerox Network Systems 555
XOT 557
Zero configuration networking 557
Zeta Instrument Processor Interface 562
References
Article Sources and Contributors 565
Image Sources, Licenses and Contributors 577
Article Licenses
License 579
Openflow Switching Protocol
1
Openflow Switching Protocol
OpenFlow is a communications protocol that gives access to the forwarding plane of a switch or router over the
network
[1]
. In simpler terms, OpenFlow allows the path-of-network-packets-through-the-network-of-switches to be
determined by software running on a separate server. This separation of the control from the forwarding allows for
more sophisticated traffic management than feasible today using ACLs and routing protocols. OpenFlow is
considered an enabler of Software Defined Networking
[2]
.
OpenFlow has been implemented by a number of network switch and router vendors including Arista Networks,
IBM, Juniper Networks, Hewlett-Packard, and NEC
[3]
. Similarly, recent network control plane implementations use
the protocol to manage the network forwarding elements
[4]
.
The current version of the OpenFlow protocol is 1.1.0 which was released on February 28, 2011. The standard
specification is currently maintained by the OpenFlow Switch Consortium
[5]
at Stanford University, however it has
been announced that the Open Networking Foundation is taking over development of the standard in the future
[6]
Indiana University in May of 2011 launched the SDN Interoperability Lab
[7]
in conjunction with the Open
Networking Foundation to test how well different vendors' Software-Defined Networking and OpenFlow products
work together.
References
[1] Nick McKeown et al. (2008-04). "OpenFlow: Enabling innovation in campus networks" (http:// portal.acm. org/ citation. cfm?id=1355734.
1355746). ACM Communications Review. . Retrieved 2009-11-02.
[2] Kate Greene (2009-04). "TR10: Software-Defined Networking" (http:// www. technologyreview.com/ biotech/ 22120/ ). MIT Technology
Review. . Retrieved 2009-11-02.
[3] Tim Greene (2008-10-29). "Researchers show off advanced network control technology" (http:/ / www.networkworld.com/ news/ 2008/
102908-openflow.html). Network World. . Retrieved 2009-11-02.
[4] Teemu Koponen et. al (2010-10-04). "Onix: A Distributed Control Platform for Large-scale Production Networks" (http:// www. usenix. org/
events/ osdi10/ tech/ tech. html). USENIX OSDI 2010. . Retrieved 2010-10-01.
[5] http:// www.openflowswitch. org/
[6] "Open Networking Foundation Press Release" (http:/ / www. opennetworkingfoundation.org/?p=7). 2011-03-2011. .
[7] http:// incntre.iu. edu/ initiatives/ sdnlab/ index. php
Web Services for Devices
2
Web Services for Devices
Web Services for Devices or Web Services on Devices (WSD), is a Microsoft standard for connectivity to web
service enabled devices.
[1]
References
[1] Web Services on Devices Reference (http:/ / msdn. microsoft. com/ en-us/ library/bb821811.aspx) at msdn.microsoft.com.
Communications protocol
A communications protocol is a system of digital message formats and rules for exchanging those messages in or
between computing systems and in telecommunications. A protocol may have a formal description.
Protocols may include signaling, authentication and error detection and correction capabilities.
A protocol definition defines the syntax, semantics, and synchronization of communication; the specified behaviour
is typically independent of how it is to be implemented. A protocol can therefore be implemented as hardware or
software or both.
Introduction
While there is no generally accepted formal definition of "protocol" in computer science, an informal definition,
based on the previous, could be "a set of procedures to be followed when communicating". In computer science the
word algorithm is a synonym for the word procedure so a protocol is to communications what an algorithm is to
mathematics.
Communicating systems use well-defined formats for exchanging messages. Each message has an exact meaning
intended to provoke a defined response of the receiver. A protocol therefore describes the syntax, semantics, and
synchronization of communication. A programming language describes the same for computations, so there is a
close analogy between protocols and programming languages: protocols are to communications what programming
languages are to computations.
[1]
The communications protocols in use on the Internet are designed to function in very complex and diverse settings.
To ease design, communications protocols are structured using a layering scheme as a basis. Instead of using a single
universal protocol to handle all transmission tasks, a set of cooperating protocols fitting the layering scheme is
used.
[2]
Figure 2. The TCP/IP model or Internet layering scheme and its
relation to some common protocols.
The layering scheme in use on the Internet is called the
TCP/IP model. The actual protocols are collectively
called the Internet protocol suite. The group responsible
for this design is called the Internet Engineering Task
Force (IETF).
Obviously the number of layers of a layering scheme
and the way the layers are defined can have a drastic
impact on the protocols involved. This is where the
analogies come into play for the TCP/IP model,
because the designers of TCP/IP employed the same
techniques used to conquer the complexity of
Communications protocol
3
programming language compilers (design by analogy) in the implementation of its protocols and its layering
scheme.
[3]
Communications protocols have to be agreed upon by the parties involved. To reach agreement a protocol is
developed into a technical standard.
Communicating systems
The information exchanged between devices on a network or other communications medium is governed by rules or
conventions that can be set out in a technical specification called a communication protocol standard. The nature of
the communication, the actual data exchanged and any state-dependent behaviors are defined by the specification.
In digital computing systems, the rules can be expressed by algorithms and data structures. Expressing the
algorithms in a portable programming language, makes the protocol software operating system independent.
Operating systems are usually conceived of as consisting of a set of cooperating processes that manipulate a shared
store (on the system itself) to communicate with each other. This communication is governed by well-understood
protocols. These protocols can be embedded in the process code itself as small additional code fragments.
[4]

[5]
In contrast, communicating systems have to communicate with each other using shared transmission media, because
there is no common memory. Transmission is not necessarily reliable and can involve different hardware and
operating systems on different systems.
To implement a networking protocol, the protocol software modules are interfaced with a framework implemented
on the machine's operating system. This framework implements the networking functionality of the operating
system.
[6]
The best known frameworks are the TCP/IP model and the OSI model.
At the time the Internet was developed, layering had proven to be a successful design approach for both compiler
and operating system design and, given the similarities between programming languages and communication
protocols, layering was applied to the protocols as well.
[7]
This gave rise to the concept of layered protocols which
nowadays forms the basis of protocol design.
[8]
Systems typically do not use a single protocol to handle a transmission. Instead they use a set of cooperating
protocols, sometimes called a protocol family or protocol suite.
[9]
Some of the best known protocol suites include:
IPX/SPX, X.25, AX.25, AppleTalk and TCP/IP.
The protocols can be arranged based on functionality in groups, for instance there is a group of transport protocols.
The functionalities are mapped onto the layers, each layer solving a distinct class of problems relating to, for
instance: application-, transport-, internet- and network interface-functions.
[10]
To transmit a message, a protocol has
to be selected from each layer, so some sort of multiplexing/demultiplexing takes place. The selection of the next
protocol is accomplished by extending the message with a protocolselector for each layer.
[11]
Basic requirements of protocols
Messages are sent and received on communicating systems to establish communications. Protocols should therefore
specify rules governing the transmission. In general, much of the following should be addressed:
[12]
• Data formats for data exchange. Digital message bitstrings are exchanged. The bitstrings are divided in fields and
each field carries information relevant to the protocol. Conceptually the bitstring is divided into two parts called
the header area and the data area. The actual message is stored in the data area, so the header area contains the
fields with more relevance to the protocol. Bitstrings longer than the maximum transmission unit (MTU) are
divided in pieces of appropriate size.
[13]
• Address formats for data exchange. Addresses are used to identify both the sender and the intended receiver(s).
The addresses are stored in the header area of the bitstrings, allowing the receivers to determine whether the
bitstrings are intended for themselves and should be processed or should be ignored. A connection between a
Communications protocol
4
sender and a receiver can be identified using an address pair (sender address, receiver address). Usually some
address values have special meanings. An all-1s address could be taken to mean an addressing of all stations on
the network, so sending to this address would result in a broadcast on the local network. The rules describing the
meanings of the address value are collectively called an addressing scheme.
[14]
• Address mapping. Sometimes protocols need to map addresses of one scheme on addresses of another scheme.
For instance to translate a logical IP address specified by the application to an Ethernet hardware address. This is
referred to as address mapping.
[15]
• Routing. When systems are not directly connected, intermediary systems along the route to the intended
receiver(s) need to forward messages on behalf of the sender. On the Internet, the networks are connected using
routers. This way of connecting networks is called internetworking.
• Detection of transmission errors is necessary on networks which cannot guarantee error-free operation. In a
common approach, CRCs of the data area are added to the end of packets, making it possible for the receiver to
detect differences caused by errors. The receiver rejects the packets on CRC differences and arranges somehow
for retransmission.
[16]
• Acknowledgements of correct reception of packets is required for connection oriented communication.
Acknowledgements are sent from receivers back to their respective senders.
[17]
• Loss of information - timeouts and retries. Packets may be lost on the network or suffer from long delays. To cope
with this, under some protocols, a sender may expect an acknowledgement of correct reception from the receiver
within a certain amount of time. On timeouts, the sender must assume the packet was not received and retransmit
it. In case of a permanently broken link, the retransmission has no effect so the number of retransmissions is
limited. Exceeding the retry limit is considered an error.
[18]
• Direction of information flow needs to be addressed if transmissions can only occur in one direction at a time as
on half-duplex links. This is known as Media Access Control. Arrangements have to be made to accommodate the
case when two parties want to gain control at the same time.
[19]
• Sequence control. We have seen that long bitstrings are divided in pieces, and then sent on the network
individually. The pieces may get lost or delayed or take different routes to their destination on some types of
networks. As a result pieces may arrive out of sequence. Retransmissions can result duplicate pieces. By marking
the pieces with sequence information at the sender, the receiver can determine what was lost or duplicated, ask for
necessary retransmissions and reassemble the original message.
[20]
• Flow control is needed when the sender transmits faster than the receiver or intermediate network equipment can
process the transmissions. Flow control can be implemented by messaging from receiver to sender.
[21]
Getting the data across a network is only part of the problem for a protocol. The data received has to be evaluated in
the context of the progress of the conversation, so a protocol has to specify rules describing the context. These kind
of rules are said to express the syntax of the communications. Other rules determine whether the data is meaningful
for the context in which the exchange takes place. These kind of rules are said to express the semantics of the
communications. Both intuitive descriptions as well as more formal specifications in the form of finite state machine
models are used to describe the expected interactions of the protocol.
[22]
Formal ways for describing the syntax of
the communications are Abstract Syntax Notation One (a ISO standard) or Augmented Backus-Naur form (a IETF
standard).
Communications protocol
5
Protocols and programming languages
Protocols are to communications what algorithms or programming languages are to computations.
[23]

[1]
This analogy has important consequences for both the design and the development of protocols. One has to consider
the fact that algorithms, programs and protocols are just different ways of describing expected behaviour of
interacting objects. A familiar example of a protocolling language is the HTML language used to describe web pages
which are the actual web protocols.
In programming languages the association of identifiers to a value is termed a definition. Program text is structured
using block constructs and definitions can be local to a block. The localized association of an identifier to a value
established by a definition is termed a binding and the region of program text in which a binding is effective is
known as its scope.
[24]
The computational state is kept using two components: the environment, used as a record of
identifier bindings, and the store, which is used as a record of the effects of assignments.
[25]
In communications, message values are transferred using transmission media. By analogy, the equivalent of a store
would be a collection of transmission media, instead of a collection of memory locations. A valid assignment in a
protocol (as an analog of programming language) could be Ethernet:='message' , meaning a message is to be
broadcast on the local ethernet.
On a transmission medium there can be many receivers. For instance a mac-address identifies an ether network card
on the transmission medium (the 'ether'). In our imaginary protocol, the assignment
ethernet[mac-address]:=message value could therefore make sense.
[26]
By extending the assignment statement of an existing programming language with the semantics described, a
protocolling language could easily be imagined.
Operating systems provide reliable communication and synchronization facilities for communicating objects
confined to the same system by means of system libraries. A programmer using a general purpose programming
language (like C or ADA) can use the routines in the libraries to implement a protocol, instead of using a dedicated
protocolling language.
Universal protocols
The nice thing about standards is that you have so many to choose from.
—Andrew S. Tanenbaum in Computer Networks
[27]
Despite their numbers, networking protocols show little variety, because all networking protocols use the same
underlying principles and concepts, in the same way. So, the use of a general purpose programming language would
yield a large number of applications only differing in the details.
[28]
A suitably defined (dedicated) protocolling
language would therefore have little syntax, perhaps just enough to specify some parameters or optional modes of
operation, because its virtual machine would have incorporated all possible principles and concepts making the
virtual machine itself a universal protocol. The protocolling language would have some syntax and a lot of semantics
describing this universal protocol and would therefore in effect be a protocol, hardly differing from this universal
networking protocol. In this (networking) context a protocol is a language.
The notion of a universal networking protocol provides a rationale for standardization of networking protocols;
assuming the existence of a universal networking protocol, development of protocol standards using a consensus
model (the agreement of a group of experts) might be a viable way to coordinate protocol design efforts.
Networking protocols operate in very heterogeneous environments consisting of very different network technologies
and a (possibly) very rich set of applications, so a single universal protocol would be very hard to design and
implement correctly. Instead, the IETF decided to reduce complexity by assuming a relatively simple network
architecture allowing decomposition of the single universal networking protocol into two generic protocols, TCP and
Communications protocol
6
IP, and two classes of specific protocols, one dealing with the low-level network details and one dealing with the
high-level details of common network applications (remote login, file transfer, email and web browsing). ISO choose
a similar but more general path, allowing other network architectures, to standardize protocols.
Protocol design
Communicating systems operate in parallel. The programming tools and techniques for dealing with parallel
processes are collectively called concurrent programming. Concurrent programming only deals with the
synchronization of communication. The syntax and semantics of the communication governed by a low-level
protocol usually have modest complexity, so they can be coded with relative ease. High-level protocols with
relatively large complexity could however merit the implementation of language interpreters. An example of the
latter case is the HTML language.
Concurrent programming has traditionally been a topic in operating systems theorie texts.
[29]
Formal verification
seems indispensable, because concurrent programs are notorious for the hidden and sophisticated bugs they
contain.
[30]
A mathematical approach to the study of concurrency and communication is referred to as
Communicating Sequential Processes (CSP).
[31]
Concurrency can also be modelled using finite state machines like
Mealy- and Moore machines. Mealy- and Moore machines are in use as design tools in digital electronics systems,
which we encounter in the form of hardware used in telecommunications or electronic devices in general.
[32]
This kind of design can be a bit of a challenge to say the least, so it is important to keep things simple. For the
Internet protocols, in particular and in retrospect, this meant a basis for protocol design was needed to allow
decomposition of protocols into much simpler, cooperating protocols.
Concurrent programming
A concurrent program is an abstraction of cooperating processes suitable for formal treatment and study. The goal of
the abstraction is to prove correctness of the program assuming the existence of some basic synchronization or data
exchange mechanisms provided by the operating system (or other software) or hardware. The mechanisms are
complex, so more convenient higher level primitives are implemented with these mechanisms. The primitives are
used to construct the concurrent program. The basic primitive for synchronization is the semaphore. All other
primitives (locks, reentrant mutexes, semaphores, monitors, message passing, tuple space) can be defined using
semaphores. The semaphore is sufficiently elementary to be successfully studied by formal methods.
[33]
In order to synchronize or exchange data the processes must communicate by means of either a shared memory, used
to store data or access-restricted procedures, or the sending/receiving of signals (message passing) using a shared
transmission medium. Most third generation operating systems implement separate processes that use special
instructions to ensure only one process can execute the restricted procedures. On distributed systems there is no
common central memory so the communications are always by means of message passing. In this case the processes
simply have to wait for each other (synchronization by rendezvous) before exchanging data.
[4]
Conceptually, the concurrent program consists of several sequential processes whose execution sequences are
interleaved. The execution sequences are divided into sections. A section manipulating shared resources is called a
critical section. The interleaving scheme makes no timing assumptions other than that no process halts in its critical
section and that ready processes are eventually scheduled for execution. For correct operation of the program, the
critical sections of the processes need to be properly sequenced and synchronized. This is achieved using small code
fragments (protocols) at the start and the end of the critical sections. The code fragments determine whether the
critical sections of two communicating processes should execute in parallel (rendezvous of processes) or should be
executed sequentially (mutual exclusion of processes).
A concurrent program is correct if it does not violate some safety property such as mutual exclusion or rendezvous of
critical sections and does not suffer of liveness properties such as deadlock or lockout. Correctness of the concurrent
program can only be shown using a mathematical argument. Specifications of concurrent programs can be
Communications protocol
7
formulated using formal logics (like CSP) which make it possible to prove properties of the programs. Incorrectness
can be shown using execution scenarios.
[5]
Mutual exclusion is extensively studied in the mutual exclusion problem. The rendezvous is studied in the
producer-consumer problem in which a producer process only produces data if and only if the consumer process is
ready to consume the data. Although both problems only involve two processes, their solutions require rather
complex algorithms (Dekker's algorithm, Lamport's bakery algorithm). The readers-writers problem is a
generalization of the mutual exclusion problem. The dining philosophers problem is a classical problem sufficiently
difficult to expose many of the potential pitfalls of newly proposed primitives.
[34]
A basis for protocol design
Systems do not use a single protocol to handle a transmission. Instead they use a set of cooperating protocols,
sometimes called a protocol family or protocol suite.
[9]
To cooperate the protocols have to communicate with each
other, so some kind of conceptual framework is needed to make this communication possible. Also note that
software is needed to implement both the 'xfer-mechanism' and a protocol (no protocol, no communication).
In literature there are numerous references to the analogies between computer communication and programming. By
analogy we could say that the aforementioned 'xfer-mechanism' is comparable to a cpu; a 'xfer-mechanism' performs
communications and a cpu performs computations and the 'framework' introduces something that allows the
protocols to be designed independent of one and another by providing separate execution environments for the
protocols. Furthermore, it is repeatedly stated that protocols are to computer communication what programming
languages are to computation.
[35]

[36]
Layering
Many communications protocols can be viewed as layered protocols where each layer gives a service to the protocol
of the layers above and requires service from layers below.
Typically, a (best-effort) hardware delivery mechanism layer is used to build a connectionless packet delivery
system on top of which a reliable transport layer is built, on top of which is the application software. Layers below
and above these can be defined, and protocols are very often stacked to give tunnelling, for example the internet
protocol can be tunnelled across an ATM network protocol to provide connectivity by layering the internet protocol
on top of the ATM protocol transport layer.
The delivery system is defined by the IP protocol and the transport system by the TCP protocol.
[37]
Protocol layering
Figure 3. Message flows using a protocol suite.
Protocol layering now forms the basis of protocol design.
[8]
It allows
the decomposition of single, complex protocols into simpler,
cooperating protocols, but it is also a functional decomposition,
because each protocol belongs to a functional class, called a protocol
layer.
[2]
The protocol layers each solve a distinct class of
communications problems. The Internet protocol suite consists of the
following layers: application-, transport-, internet- and network
interface-functions.
[10]
Together, the layers make up a layering scheme
or model.
In computations, we have algorithms and data, and in communications,
we have protocols and messages, so the analog of a data flow diagram
would be some kind of message flow diagram.
[23]
To visualize
Communications protocol
8
protocol layering and protocol suites, a diagram of the message flows in and between two systems, A and B, is
shown in figure 3.
The systems both make use of the same protocol suite. The vertical flows (and protocols) are in system and the
horizontal message flows (and protocols) are between systems. The message flows are governed by rules, and
dataformats specified by protocols. The blue lines therefore mark the boundaries of the (horizontal) protocol layers.
The vertical protocols are not layered because they don't obey the protocol layering principle which states that a
layered protocol is designed so that layer n at the destination receives exactly the same object sent by layer n at the
source. The horizontal protocols are layered protocols and all belong to the protocol suite. Layered protocols allow
the protocol designer to concentrate on one layer at a time, without worrying about how other layers perform.
[36]
The vertical protocols neednot be the same protocols on both systems, but they have to satisfy some minimal
assumptions to ensure the protocol layering principle holds for the layered protocols. This can be achieved using a
technique called Encapsulation.
[38]
Usually, a message or a stream of data is divided into small pieces, called messages or streams, packets, IP
datagrams or network frames depending on the layer in which the pieces are to be transmitted. The pieces contain a
header area and a data area. The data in the header area identifies the source and the destination on the network of
the packet, the protocol, and other data meaningful to the protocol like CRC's of the data to be send, data length, and
a timestamp.
[39]

[40]
The rule enforced by the vertical protocols is that the pieces for transmission are to be encapsulated in the data area
of all lower protocols on the sending side and the reverse is to happen on the receiving side. The result is that at the
lowest level the piece looks like this: 'Header1,Header2,Header3,data' and in the layer directly above it:
'Header2,Header3,data' and in the top layer: 'Header3,data', both on the sending and receiving side. This rule
therefore ensures that the protocol layering principle holds and effectively virtualizes all but the lowest transmission
lines, so for this reason some message flows are coloured red in figure 3.
To ensure both sides use the same protocol, the pieces also carry data identifying the protocol in their header.
The design of the protocol layering and the network (or Internet) architecture are interrelated, so one cannot be
designed without the other.
[41]
Some of the more important features in this respect of the Internet architecture and the
network services it provides are described next.
• The Internet offers universal interconnection, which means that any pair of computers connected to the Internet is
allowed to communicate. Each computer is identified by an address on the Internet. All the interconnected
physical networks appear to the user as a single large network. This interconnection scheme is called an
internetwork or internet.
[42]
• Conceptually, an Internet addresses consists of a netid and a hostid. The netid identifies a network and the hostid
identifies a host. The term host is misleading in that an individual computer can have multiple network interfaces
each having its own Internet address. An Internet Address identifies a connection to the network, not an
individual computer.
[43]
The netid is used by routers to decide where to send a packet.
[44]
• Network technology independence is achieved using the low-level address resolution protocol (ARP) which is
used to map Internet addresses to physical addresses. The mapping is called address resolution. This way physical
addresses are only used by the protocols of the network interface layer.
[45]
The TCP/IP protocols can make use of
almost any underlying communication technology.
[46]
Communications protocol
9
Figure 4. Message flows in the presence of a router
Physical networks are interconnected by routers.
Routers forward packets between interconnected
networks making it possible for hosts to reach hosts on
other physical networks. The message flows between
two communicating system A and B in the presence of
a router R are illustrated in figure 4. Datagrams are
passed from router to router until a router is reached
that can deliver the datagram on a physically attached
network (called direct delivery).
[47]
To decide whether
a datagram is to be delivered directly or is to be send to
a router closer to the destination, a table called the IP
routing table is consulted. The table consists of pairs of
networkids and the paths to be taken to reach known
networks. The path can be an indication that the
datagram should be delivered directly or it can be the
address of a router known to be closer to the destination.
[48]
A special entry can specify that a default router is
chosen when there are no known paths.
[49]
• All networks are treated equal. A LAN, a WAN or a point-to-point link between two computers are all considered
as one network.
[50]
• A Connectionless packet delivery (or packet-switched) system (or service) is offered by the Internet, because it
adapts well to different hardware, including best-effort delivery mechanisms like the ethernet. Connectionless
delivery means that the messages or streams are divided in pieces that are multiplexed separately on the high
speed intermachine connections allowing the connections to be used concurrently. Each piece carries information
identifying the destination. The delivery of packets is said to be unreliable, because packets may be lost,
duplicated, delayed or delivered out of order without notice to the sender or receiver. Unreliability arises only
when resources are exhausted or underlying networks fail.
[51]
The unreliable connectionless delivery system is
defined by the Internet Protocol (IP). The protocol also specifies the routing function, which chooses a path over
which data will be send.
[52]
It is also possible to use TCP/IP protocols on connection oriented systems.
Connection oriented systems build up virtual circuits (paths for exclusive use) between senders and receivers.
Once build up the IP datagrams are send as if they were data through the virtual circuits and forwarded (as data)
to the IP protocol modules. This technique, called tunneling, can be used on X.25 networks and ATM
networks.
[53]
• A reliable stream transport service using the unreliable connectionless packet delivery service is defined by the
transmission control protocol (TCP). The services are layered as well and the application programs residing in the
layer above it, called the application services, can make use of TCP.
[54]
Programs wishing to interact with the
packet delivery system itself can do so using the user datagram protocol (UDP).
[55]
Communications protocol
10
Software layering
Having established the protocol layering and the protocols, the protocol designer can now resume with the software
design. The software has a layered organization and its relationship with protocol layering is visualized in figure 5.
Figure 5: Protocol and software layering
The software modules implementing the protocols are
represented by cubes. The information flow between the
modules is represented by arrows. The (top two horizontal)
red arrows are virtual. The blue lines mark the layer
boundaries.
To send a message on system A, the top module interacts with
the module directly below it and hands over the message to be
encapsulated. This module reacts by encapsulating the
message in its own data area and filling in its header data in
accordance with the protocol it implements and interacts with
the module below it by handing over this newly formed
message whenever appropriate. The bottom module directly
interacts with the bottom module of system B, so the message
is send across. On the receiving system B the reverse happens, so ultimately (and assuming there were no
transmission errors or protocol violations etc.) the message gets delivered in its original form to the topmodule of
system B.
[56]
On protocol errors, a receiving module discards the piece it has received and reports back the error condition to the
original source of the piece on the same layer by handing the error message down or in case of the bottom module
sending it across.
[57]
The division of the message or stream of data into pieces and the subsequent reassembly are handled in the layer that
introduced the division/reassembly. The reassembly is done at the destination (i.e. not on any intermediate
routers).
[58]
TCP/IP software is organized in four layers.
[59]
• Application layer. At the highest layer, the services available across a TCP/IP internet are accessed by application
programs. The application chooses the style of transport to be used which can be a sequence of individual
messages or a continuous stream of bytes. The application program passes data to the transport layer for delivery.
• Transport layer. The transport layer provides communication from one application to another. The transport layer
may regulate flow of information and provide reliable transport, ensuring that data arrives without error and in
sequence. To do so, the receiving side sends back acknowledgments and the sending side retransmits lost pieces
called packets. The stream of data is divided into packets by the module and each packet is passed along with a
destination address to the next layer for transmission. The layer must accept data from many applications
concurrently and therefore also includes codes in the packet header to identify the sending and receiving
application program.
• Internet layer. The Internet layer handles the communication between machines. Packets to be send are accepted
from the transport layer along with an identification of the receiving machine. The packets are encapsulated in IP
datagrams and the datagram headers are filled. A routing algorithm is used to determine if the datagram should be
delivered directly or send to a router. The datagram is passed to the appropriate network interface for
transmission. Incoming datagrams are checked for validity and the routing algorithm is used to decide whether the
datagram should be processed locally or forwarded. If the datagram is addressed to the local machine, the
datagram header is deleted and the appropriate transport protocol for the packet is chosen. ICMP error and control
messages are handled as well in this layer.
• Network interface layer. The network interface layer is responsible for accepting IP datagrams and transmitting
them over a specific network. A network interface may consist of a device driver or a complex subsystem that
Communications protocol
11
uses its own data link protocol.
Program translation has been divided into four subproblems: compiler, assembler, link editor, and loader. As a result,
the translation software is layered as well, allowing the software layers to be designed independently. Noting that the
ways to conquer the complexity of program translation could readily be applied to protocols because of the analogy
between programming languages and protocols. The designers of the TCP/IP protocol suite were keen on imposing
the same layering on the software framework. This can be seen in the TCP/IP layering by considering the translation
of a pascal program (message) that is compiled (function of the application layer) into an assembler program that is
assembled (function of the transport layer) to object code (pieces) that is linked (function of the Internet layer)
together with library object code (routing table) by the link editor, producing relocatable machine code (datagram)
that is passed to the loader which fills in the memory locations (ethernet addresses) to produce executeable code
(network frame) to be loaded (function of the network interface layer) into physical memory (transmission medium).
To show just how closely the analogy fits, the terms between parentheses in the previous sentence denote the
relevant analogs and the terms written cursively denote data representations. Program translation forms a linear
sequence, because each layer's output is passed as input to the next layer. Furthermore, the translation process
involves multiple data representations. We see the same thing happening in protocol software where multiple
protocols define the datarepresentations of the data passed between the software modules.
[3]
The network interface layer uses physical addresses and all the other layers only use IP addresses. The boundary
between network interface layer and Internet layer is called the high-level protocol address boundary.
[60]
The
modules below the application layer are generally considered part of the operating system. Passing data between
these modules is much less expensive than passing data between an application program and the transport layer. The
boundary between application layer and transport layer is called the operating system boundary.
[61]
Strict layering
Strictly adhering to a layered model, a practice known as strict layering, is not always the best approach to
networking.
[62]
Strict layering, can have a serious impact on the performance of the implementation, so there is at
least a trade-off between simplicity and performance.
[63]
Another, perhaps more important point can be shown by
considering the fact that some of the protocols in the Internet Protocol Suite cannot be expressed using the TCP/IP
model, in other words some of the protocols behave in ways not described by the model.
[64]
To improve on the
model, an offending protocol could, perhaps be split up into two protocols, at the cost of one or two extra layers, but
there is a hidden caveat, because the model is also used to provide a conceptual view on the suite for the intended
users. There is a trade-off to be made here between preciseness for the designer and clarity for the intended user.
[65]
Protocol development
For communication to take place, protocols have to be agreed upon. Recall that in digital computing systems, the
rules can be expressed by algorithms and datastructures, raising the opportunity of hardware independency.
Expressing the algorithms in a portable programming language, makes the protocolsoftware operating system
independent. The sourcecode could be considered a protocol specification. This form of specification, however is not
suitable for the parties involved.
For one thing, this would enforce a source on all parties and for another, proprietary software producers would not
accept this. By describing the software interfaces of the modules on paper and agreeing on the interfaces,
implementers are free to do it their way. This is referred to as source independency. By specifying the algorithms on
paper and detailing hardware dependencies in an unambiguous way, a paper draft is created, that when adhered to
and published, ensures interoperability between software and hardware.
Such a paper draft can be developed into a protocol standard by getting the approval of a standards organization. To
get the approval the paper draft needs to enter and successfully complete the standardization process. This activity is
referred to as protocol development. The members of the standards organization agree to adhere to the standard on a
Communications protocol
12
voluntary basis. Often the members are in control of large market-shares relevant to the protocol and in many cases,
standards are enforced by law or the government, because they are thought to serve an important public interest, so
getting approval can be very important for the protocol. It should be noted though that in some cases protocol
standards are not sufficient to gain widespread acceptance i.e. sometimes the sourcecode needs to be disclosed
enforced by law or the government in the interest of the public.
The need for protocol standards
The need for protocol standards can be shown by looking at what happened to the bi-sync protocol (BSC) invented
by IBM. BSC is an early link-level protocol used to connect two separate nodes. It was originally not intended to be
used in a multinode network, but doing so revealed several deficiencies of the protocol. In the absence of
standardization, manufacturers and organizations felt free to 'enhance' the protocol, creating incompatible versions
on their networks. In some cases, this was deliberately done to discourage users from using equipment from other
manufacturers. There are more than 50 variants of the original bi-sync protocol. One can assume, that a standard
would have prevented at least some of this from happening.
[6]
In some cases, protocols gain market dominance without going through a standardization process. Such protocols are
referred to as de facto standards. De facto standards are common on emerging markets, niche markets, or markets
that are monopolized (or oligopolized). They can hold a market in a very negative grip, especially when used to scare
away competition. From a historical perspective, standardization should be seen as a measure to counteract the
ill-effects of de facto standards. Positive exceptions exist; a 'de facto standard' operating system like GNU/Linux
does not have this negative grip on its market, because the sources are published and maintained in an open way,
thus inviting competition. Standardization is therefore not the only solution for open systems interconnection.
Standards organizations
Some of the standards organizations of relevance for communications protocols are the International Organization
for Standardization (ISO), the International Telecommunications Union (ITU), the Institute of Electrical and
Electronics Engineers (IEEE), and the Internet Engineering Task Force (IETF). The IETF maintains the protocols in
use on the Internet. The IEEE controls many software and hardware protocols in the electronics industry for
commercial and consumer devices. The ITU is an umbrella organization of telecommunications engineers designing
the public switched telephone network (PSTN), as well as many radio communication systems. For marine
electronics the NMEA standards are used. The World Wide Web Consortium (W3C) produces protocols and
standards for Web technologies.
International standards organizations are supposed to be more impartial than local organizations with a national or
commercial self-interest to consider. Standards organizations also do research and development for standards of the
future. In practice, the standards organizations mentioned, cooperate closely with each other.
[66]
The standardization process
The standardization process starts off with ISO commissioning a sub-committee workgroup. The workgroup issues
working drafts and discussion documents to interested parties (including other standards bodies) in order to provoke
discussion and comments. This will generate a lot of questions, much discussion and usually some disagreement on
what the standard should provide and if it can satisfy all needs (usually not). All conflicting views should be taken
into account, often by way of compromise, to progress to a draft proposal of the working group.
The draft proposal is discussed by the member countries' standard bodies and other organizations within each
country. Comments and suggestions are collated and national views will be formulated, before the members of ISO
vote on the proposal. If rejected, the draft proposal has to consider the objections and counter-proposals to create a
new draft proposal for another vote. After a lot of feedback, modification, and compromise the proposal reaches the
status of a draft international standard, and ultimately an international standard.
Communications protocol
13
The process normally takes several years to complete. The original paper draft created by the designer will differ
substantially from the standard, and will contain some of the following 'features':
• Various optional modes of operation, for example to allow for setup of different packet sizes at startup time,
because the parties could not reach consensus on the optimum packet size.
• Parameters that are left undefined or allowed to take on values of a defined set at the discretion of the
implementor. This often reflects conflicting views of some of the members.
• Parameters reserved for future use, reflecting that the members agreed the facility should be provided, but could
not reach agreement on how this should be done in the available time.
• Various inconsistencies and ambiguities will inevitably be found when implementing the standard.
International standards are reissued periodically to handle the deficiencies and reflect changing views on the
subject.
[67]
Future of standardization (OSI)
A lesson learned from ARPANET (the predecessor of the Internet) is that standardization of protocols is not enough,
because protocols also need a framework to operate. It is therefore important to develop a general purpose,
future-proof framework suitable for structured protocols (such as layered protocols) and their standardization. This
would prevent protocol standards with overlapping functionality and would allow clear definition of the
responsibilities of a protocol at the different levels (layers).
[68]
This gave rise to the ISO Open Systems
Interconnection reference model (RM/OSI), which is used as a framework for the design of standard protocols and
services conforming to the various layer specifications.
[69]
In the OSI model, communicating systems are assumed to be connected by an underlying physical medium
providing a basic (and unspecified) transmission mechanism. The layers above it are numbered (from one to seven);
the n
th
layer is referred to as (n)-layer. Each layer provides service to the layer above it (or at the top to the
application process) using the services of the layer immediately below it. The layers communicate with each other by
means of an interface, called a service access point. Corresponding layers at each system are called peer entities. To
communicate, two peer entities at a given layer use a (n)-protocol, which is implemented by using services of the
(n-1)-layer. When systems are not directly connected, intermediate peer entities (called relays) are used. An address
uniquely identifies a service access point. The address naming domains need not be restricted to one layer, so it is
possible to use just one naming domain for all layers.
[70]
For each layer there are two types of standards: protocol
standards defining how peer entities at a given layer communicate, and service standards defining how a given layer
communcates with the layer above it.
In the original version of RM/OSI, the layers and their functionality are (from highest to lowest layer):
• The application layer may provide the following services to the application processes: identification of the
intended communication partners, establishment of the necessary authority to communicate, determination of
availability and authentication of the partners, agreement on privacy mechanisms for the communication,
agreement on responsibility for error recovery and procedures for ensuring data integrity, synchronization
between cooperating application processes, identification of any constraints on syntax (e.g. character sets and data
structures), determination of cost and acceptable quality of service, selection of the dialogue discipline, including
required logon and logoff procedures.
[71]
• The presentation layer may provide the following services to the application layer: a request for the establishment
of a session, data transfer, negotiation of the syntax to be used between the application layers, any necessary
syntax transformations, formatting and special purpose transformations (e.g. data compression and data
encryption).
[72]
• The session layer may provide the following services to the presentation layer: establishment and release of
session connections, normal and expedited data exchange, a quarantine service which allows the sending
presentation entity to instruct the receiving session entity not to release data to its presentation entity without
Communications protocol
14
permission, interaction management so presentation entities can control whose turn it is to perform certain control
functions, resynchronization of a session connection, reporting of unrecoverable exceptions to the presentation
entity.
[73]
• The transport layer provides reliable and transparent data transfer in a cost effective way as required by the
selected quality of service. It may support the multiplexing of several transport connections on to one network
connection or split one transport connection into several network connections.
[74]
• The network layer does the setup, maintenance and release of network paths between transport peer entities.
When relays are needed, routing and relay functions are provided by this layer. The quality of service is
negotiated between network and transport entities at the time the connection is setup. This layer is also
responsible for (network) congestion control.
[75]
• The data link layer does the setup, maintenance and release of data link connections. Errors occurring in the
physical layer are detected and may be corrected. Errors are reported to the network layer. The exchange of data
link units (including flow control) is defined by this layer.
[76]
• The physical layer describes details like the electrical characteristics of the physical connection, the transmission
techniques used, and the setup, maintenance and clearing of physical connections.
[77]
In contrast to the TCP/IP layering scheme, which assumes a connectionless network, RM/OSI assumed a connection
oriented network. Connection oriented networks are more suitable for wide area networks and connectionless
networks are more suitable for local area networks. Using connections to communicate implies some form of session
and (virtual) circuits, hence the (in the TCP/IP model lacking) session layer. The constituent members of ISO were
mostly concerned with wide area networks, so development of RM/OSI concentrated on connection oriented
networks and connectionless networks were only mentioned in an addendum to RM/OSI.
[78]
At the time, the IETF
had to cope with this and the fact that the Internet needed protocols which simple were not there. As a result the
IETF developed its own standardization process based on "rough consensus and running code".
[79]
The
standardization process is described by RFC2026
[80]
.
Nowadays, the IETF has become a standards organization for the protocols in use on the Internet. RM/OSI has
extended its model to include connectionless services and because of this, both TCP and IP could be developed into
international standards.
Taxonomies
Classification schemes for protocols usually focus on domain of use and function. As an example of domain of use,
connection-oriented protocols and connectionless protocols are used on connection-oriented networks and
connectionless networks respectively. For an example of function consider a tunneling protocol, which is used to
encapsulate packets in a high-level protocol, so the packets can be passed across a transport system using the
high-level protocol.
A layering scheme combines both function and domain of use. The dominant layering schemes are the ones
proposed by the IETF and by ISO. Despite the fact that the underlying assumptions of the layering schemes are
different enough to warrant distinguishing the two, it is a common practice to compare the two by relating common
protocols to the layers of the two schemes.
[81]
For an example of this practice see: List of network protocols.
The layering scheme from the IETF is called Internet layering or TCP/IP layering. The functionality of the layers
has been described in the section on software layering and an overview of protocols using this scheme is given in the
article on Internet protocols.
The layering scheme from ISO is called the OSI model or ISO layering. The functionality of the layers has been
described in the section on the future of standardization and an overview of protocols using this scheme is given in
the article on OSI protocols.
Communications protocol
15
Common types of protocols
The Internet Protocol is used in concert with other protocols within the Internet Protocol Suite. Prominent members
of which include:
• Transmission Control Protocol (TCP)
• User Datagram Protocol (UDP)
• Internet Control Message Protocol (ICMP)
• Hypertext Transfer Protocol (HTTP)
• Post Office Protocol (POP3)
• File Transfer Protocol (FTP)
• Internet Message Access Protocol (IMAP)
Other instances of high level interaction protocols are:
• IIOP
• RMI
• DCOM
• DDE
• SOAP
Notes
[1] Comer 2000, Sect. 11.2 - The Need For Multiple Protocols, p. 177, "They (protocols) are to communication what programming languages are
to computation"
[2] Comer 2000, Sect. 11.2 - The Need For Multiple Protocols, p. 177, introduces the decomposition in layers.
[3] Comer 2000, Sect. 11.2 - The need for multiple protocols, p. 178, explains similarities protocol software and compiler, assembler, linker,
loader.
[4] Ben-Ari 1982, chapter 2 - The concurrent programming abstraction, p. 18-19, states the same.
[5] Ben-Ari 1982, Section 2.7 - Summary, p. 27, summarizes the concurrent programming abstraction.
[6] Marsden 1986, Section 6.1 - Why are standards necessary?, p. 64-65, uses BSC as an example to show the need for both standard protocols
and a standard framework.
[7] Comer 2000, Sect. 11.2 - The Need For Multiple Protocols, p. 177, explains this by drawing analogies between computer communication and
programming languages.
[8] Sect. 11.10 - The Disadvantage Of Layering, p. 192, states: layering forms the basis for protocol design.
[9] Comer 2000, Sect. 11.2 - The Need For Multiple Protocols, p. 177, states the same.
[10] Comer 2000, Sect. 11.3 - The Conceptual Layers Of Protocol Software, p. 178, "Each layer takes responsibility for handling one part of the
problem."
[11] Comer 2000, Sect. 11.11 - The Basic Idea Behind Multiplexing And Demultiplexing, p. 192, states the same.
[12] Marsden 1986, Chapter 3 - Fundamental protocol concepts and problem areas, p. 26-42, explains much of the following.
[13] Comer 2000, Sect. 7.7.4 - Datagram Size, Network MTU, and Fragmentation, p. 104, Explains fragmentation and the effect on the header of
the fragments.
[14] Comer 2000, Chapter 4 - Classful Internet Addresses, p. 64-67;71.
[15] Marsden 1986, Section 14.3 - Layering concepts and general definitions, p. 187, explains address mapping.
[16] Marsden 1986, Section 3.2 - Detection and transmission errors, p. 27, explains the advantages of backward error correction.
[17] Marsden 1986, Section 3.3 - Acknowledgement, p. 28-33, explains the advantages of positive only acknowledgement and mentions
datagram protocols as exceptions.
[18] Marsden 1986, Section 3.4 - Loss of information - timeouts and retries, p. 33-34.
[19] Marsden 1986, Section 3.5 - Direction of information flow, p. 34-35, explains master/slave and the negotiations to gain control.
[20] Marsden 1986, Section 3.6 - Sequence control, p. 35-36, explains how packets get lost and how sequencing solves this.
[21] Marsden 1986, Section 3.7 - Flow control, p. 36-38.
[22] Comer 2000, Glossary of Internetworking Terms and Abbreviations, p. 704, term protocol.
[23] Comer 2000, Sect. 1.3 - Internet Services, p. 3, "Protocols are to communication what algorithms are to computation"
[24] Tennent 1981, Section 2.3.1 - Definitions, p.15, defines scope and binding.
[25] Tennent 1981, Section 2.3.2 Environments and stores, p.16, the semantics of blocks and definitions are described using environments and
stores.
[26] Hoare (1985), Ch. 4 - Communication, p. 133, In the introduction: a communication is an event described by a pair c.v where c is the name
of the communication channel and v is the value of the message.
Communications protocol
16
[27] Tanenbaum, Andrew S. (2003). Computer networks (http:/ / books. google.com/ books?id=Pd-z64SJRBAC& pg=PA235). Prentice Hall
Professional. p. 235. ISBN 9780130661029. . Retrieved 22 June 2011.
[28] Comer 2000,Foreword To The First Edition By The Late Jon Postel, xxv, "The principles of architecture, layering, multiplexing,
encapsulation, addressing and address mapping, routing, and naming are quite similar in any protocol suite, though of course, different in
detail.".
[29] Ben-Ari 1982, in his preface, p. xiii.
[30] Ben-Ari 1982, in his preface, p. xiv.
[31] Hoare 1985, Chapter 4 - Communication, p. 133, deals with communication.
[32] S. Srinivasan, NPTEL courses:::: Electronics & Communication Engineering :: Digital Circuits and Systems, available online: http:/ / nptel.
iitm. ac. in/ video. php?courseId=1005&p=3
[33] Ben-Ari 1982, Section 1.7 - An overview of the book, p. 12, states the same.
[34] Ben-Ari 1982, Section 4.3 - The producer-consumer problem, p. 56, explains the rendezvous variant in the absence of common memory.
[35] Comer 2000, Sect. 11.2 - The Need For Multiple Protocols, p. 177, states more or less the same, using other analogies.
[36] Comer 2000, Sect. 11.7 - The Protocol Layering Principle, p. 187, explains layered protocols.
[37] Comer 2000, Section 7.3 - Internet Architecture And Philosophy, p. 96, describes service layering.
[38] Comer 2000, Glossary of Internetworking terms, p.686: term encapsulation.
[39] Comer 2000, Sect. 11.5.1 - The TCP/IP 5-Layer Reference Model, p. 184, Describes the transformations of messages or streams that can be
observed in the protocol layers.
[40] Comer 2000, Sect. 2.4.10 - Ethernet Frame Format, p. 30, Ethernet frames are used as an example for administrative data for the protocol
itself.
[41] Comer 2000, Sect. 11.4 - Functionality Of The Layers, p. 181, states the same about the software organization.
[42] Comer 2000, Sect. 3.3 - Network-Level Interconnection, p. 55, explains universal interconnection and internetworking.
[43] Comer 2000, Sect. 4.4 - Addresses Specify Network Connections, p. 86, explains this.
[44] Comer 2000, Sect. 4.3 - The Original Classful Addressing Scheme, p. 64, explains the address scheme, netid and routing.
[45] Comer 2000, Sect. 5.13 - Summary, p. 86, explains ARP.
[46] Comer 2000, Sect. 2.11 - Other Technologies Over Which TCP/IP Has Been Used, p. 46, states the same.
[47] Comer 2000, Sect. 8.3.2 - Indirect Delivery, p. 118, states the same.
[48] Comer 2000, Sect. 8.5 - Next-Hop Routing, p. 120, gives details on the routing table.
[49] Comer 2000, Sect. 8.6 - Default Routes, p. 121, explains default routing and its use.
[50] Comer 2000, Sect. 3.8 - All Networks Are Equal, p. 59, states the same.
[51] Comer 2000, Sect. 7.5 - Connectionless Delivery System, p. 97, explains the delivery system.
[52] Comer 2000, Sect. 7.6 - Purposes Of The Internet Protocol, p. 97, states the same.
[53] Comer 2000, Sect. 2.11.1 - X25NET And Tunnels, p. 46-47, explains tunneling X.25 and mentions ATM.
[54] Comer 2000, Sect. 13.1 - Introduction, p. 209, introduces TCP.
[55] Comer 2000, Sect. 12.10 - Summary, p. 206, explains UDP.
[56] Comer 2000, Sect. 11.3 - The Conceptual Layers Of Protocol Software, p. 179, the first two paragraphs describe the sending of a message
through successive layers.
[57] Comer 2000, Sect. 9.3 - Error Reporting vs. Error Correction, p. 131, describes the ICMP protocol that is used to handle datagram errors.
[58] Comer 2000, Sect. 7.7.5 - Reassembly Of Fragments, p. 104, describes reassembly of datagrams.
[59] Comer 2000, Sect. 11.5.1 - The TCP/IP 5-Layer Reference Model, p. 184, explains functionality of the layers.
[60] Comer 2000, Sect. 11.9.1 - High-Level Protocol Boundary, p. 191, describes the boundary.
[61] Comer 2000, Sect. 11.9.1 - Operating System Boundary, p. 192, describes the operating system boundary.
[62] IETF 1989, Sect 1.3.1 - Organization, p. 15, 2nd paragraph: many design choices involve creative "breaking" of strict layering.
[63] Comer 2000, Sect. 11.10 - The Disadvantage Of Layering, p. 192, explains why "strict layering can be extremely inefficient" giving
examples of optimizations.
[64] IETF 1989, Sect 1.3.1 - Organization, p. 15, 2nd paragraph, explaining why "strict layering is an imperfect model"
[65] IETF 1989, Sect 1.3.1 - Organization, p. 15, states: This layerist organization was chosen for simplicity and clarity.
[66] Marsden 1986, Section 6.3 - Advantages of standardisation, p. 66-67, states the same.
[67] Marsden 1986, Section 6.4 - Some problems with standardisation, p. 67, follows HDLC to illustrate the process.
[68] Marsden 1986, Section 6.1 - Why are standards necessary?, p. 65, explains lessons learned from ARPANET.
[69] Marsden 1986, Section 14.1 - Introduction, p. 181, introduces OSI.
[70] Marsden 1986, Section 14.3 - Layering concepts and general definitions, p. 183-185, explains terminology.
[71] Marsden 1986, Section 14.4 - The application layer, p. 188, explains this.
[72] Marsden 1986, Section 14.5 - The presentation layer, p. 189, explains this.
[73] Marsden 1986, Section 14.6 - The session layer, p. 190, explains this.
[74] Marsden 1986, Section 14.7 - The transport layer, p. 191, explains this.
[75] Marsden 1986, Section 14.8 - The network layer, p. 192, explains this.
[76] Marsden 1986, Section 14.9 - The data link layer, p. 194, explains this.
[77] Marsden 1986, Section 14.10 - The physical layer, p. 195, explains this.
Communications protocol
17
[78] Marsden 1986, Section 14.11 - Connectionless mode and RM/OSI, p. 195, mentions this.
[79] Comer 2000, Section 1.9 - Internet Protocols And Standardization, p. 12, explains why the IETF did not use existing protocols.
[80] http:/ / tools. ietf. org/html/ rfc2026
[81] Comer 2000, Sect. 11.5.1 - The TCP/IP 5-Layer Reference Model, p. 183, states the same.
References
• Radia Perlman: Interconnections: Bridges, Routers, Switches, and Internetworking Protocols. 2nd Edition.
Addison-Wesley 1999, ISBN 0-201-63448-1. In particular Ch. 18 on "network design folklore", which is also
available online at http:/ / www. informit.com/ articles/ article.aspx?p=20482
• Gerard J. Holzmann: Design and Validation of Computer Protocols. Prentice Hall, 1991, ISBN 0-13-539925-4.
Also available online at http:/ / spinroot.com/ spin/ Doc/ Book91. html
• Douglas E. Comer (2000). Internetworking with TCP/IP - Principles, Protocols and Architecture (4th ed.).
Prentice Hall. ISBN 0-13-018380-6. In particular Ch.11 Protocol layering. Also has a RFC guide and a Glossary
of Internetworking Terms and Abbreviations.
• Internet Engineering Task Force abbr. IETF (1989): RFC1122, Requirements for Internet Hosts --
Communication Layers, R.Braden (ed.), Available online at http:// tools. ietf. org/ html/ rfc1122.Describes
TCP/IP to the implementors of protocolsoftware. In particular the introduction gives an overview of the design
goals of the suite.
• M. Ben-Ari (1982): Principles of concurrent programming 10th Print. Prentice Hall International, ISBN
0-13-701078-8.
• C.A.R. Hoare (1985): Communicating sequential processes 10th Print. Prentice Hall International, ISBN
0-13-153271-5. Available online via http:/ / www.usingcsp. com
• R.D. Tennent (1981): Principles of programming languages 10th Print. Prentice Hall International, ISBN
0-13-709873-1.
• Brian W Marsden (1986): Communication network protocols 2nd Edition. Chartwell Bratt, ISBN 0-86238-106-1.
• Andrew S. Tanenbaum (1984): Structured computer organization 10th Print. Prentice Hall International, ISBN
0-13-854605-3.
External links
• Javvin's Protocol Dictionary (http:// www. javvin.com/ protocolsuite.html)
• Network Protocol Index (http:// www. networkdictionary.com/ protocols/ )
• Overview of protocols in telecontrol field with OSI Reference Model (http:/ / www. ipcomm.de/ protocols_en.
html)
• List of Data Communication Protocols (http:/ / www.zframez.com/ protocolsuite.html)
• PDF-Chart showing the Protocols and the OSI reference layer (http:// www.wildpackets. com/ elements/ misc/
WP_encapsulation_chart. pdf)
ltg:Datu puorlaidis protokols
Internetwork protocol
18
Internetwork protocol
In networking, a communications protocol or network protocol is the specification of a set of rules for a particular
type of communication.
Multiple protocols often describe different aspects of a single communication. A group of protocols designed to
work together are known as a protocol suite; when implemented in software they are a protocol stack. The terms are
often intermingled; people may use the term "protocol" to refer to a software implementation, or use "protocol stack"
to refer to the specification.
Most recent protocols are assigned by the IETF for Internet communications, and the IEEE, or the ISO organizations
for other types. The ITU-T handles telecommunications protocols and formats for the PSTN. As the PSTN and
Internet converge, the two sets of standards are also being driven towards convergence.
Network protocol design principles
Systems engineering principles have been applied to create a set of common network protocol design principles.
Protocol layering
In modern protocol design, protocols are "layered". Layering is a design principle which divides the protocol design
into a number of smaller parts, each of which accomplishes a particular sub-task, and interacts with the other parts of
the protocol only in a small number of well-defined ways.
For example, one layer might describe how to encode text (with ASCII, say), while another describes how to inquire
for messages (with the Internet's simple mail transfer protocol, for example), while another may detect and retry
errors (with the Internet's transmission control protocol), another handles addressing (say with IP, the Internet
Protocol), another handles the encapsulation of that data into a stream of bits (for example, with the point-to-point
protocol), and another handles the electrical encoding of the bits, (with a V.42 modem, for example).
Layering allows the parts of a protocol to be designed and tested without a combinatorial explosion of cases, keeping
each design relatively simple. Layering also permits familiar protocols to be adapted to unusual circumstances. For
example, the mail protocol above can be adapted to send messages to aircraft. Just change the V.42 modem protocol
to the INMARS LAPD data protocol used by the international marine radio satellites.
The reference model usually used for layering is the OSI seven layer model, which can be applied to any protocol,
not just the OSI protocols. In particular, the Internet Protocol can be analysed using the OSI model.
Error detection and correction
It is a truism that communication media are always faulty. The conventional measure of quality is the number of
failed bits per bit transmitted. This has the wonderful feature of being a dimensionless figure of merit that can be
compared across any speed or type of communication media.
In telephony, failure rates of 10
-4
bit per bit are faulty (they interfere with telephone conversations), while 10
-5
bit
per bit or more should be dealt with by routine maintenance (they can be heard).
Communication systems correct errors by selectively resending bad parts of a message. For example, in TCP (the
internet's Transmission Control Protocol), messages are divided into packets, each of which has a checksum. When a
checksum is bad (meaning the checksum on the receiver does not match the checksum on the sender), the packet is
discarded. When a packet is lost, the receiver acknowledges all of the packets up to, but not including the failed
packet. Eventually, the sender sees that too much time has elapsed without an acknowledgement, so it resends all of
the packets that have not been acknowledged. At the same time, the sender backs off its rate of sending, in case the
packet loss was caused by saturation of the path between sender and receiver. (Note: this is an over-simplification:
Internetwork protocol
19
see TCP and congestion collapse for more detail)
In general, the performance of TCP is severely degraded in conditions of high packet loss (more than 0.1%), due to
the need to resend packets repeatedly. For this reason, TCP/IP connections are typically either run on highly reliable
fiber networks, or over a lower-level protocol with added error-detection and correction features (such as modem
links with ARQ). These connections typically have uncorrected bit error rates of 10
-9
to 10
-12
, ensuring high TCP/IP
performance.
Resiliency
Another form of network failure is topological failure, in which a communications link is cut, or degrades below
usable quality. Most modern communication protocols periodically send messages to test a link. In phones, a framing
bit is sent every 24 bits on T1 lines. In phone systems, when "sync is lost", fail-safe mechanisms reroute the signals
around the failing equipment.
In packet switched networks, the equivalent functions are performed using router update messages to detect loss of
connectivity.
Protocol families
Various protocol stacks or families:
• PUP
• Internet protocol suite
• AppleTalk
• DECnet
• IPX/SPX
• Open Systems Interconnection (OSI)
• Systems Network Architecture (SNA)
Further reading
• Radia Perlman, Interconnections: Bridges, Routers, Switches, and Internetworking Protocols (2nd Edition).
Addison-Wesley 1999. ISBN 0-201-63448-1. In particular Ch. 18 on "network design folklore".
• Gerard J. Holzmann, Design and Validation of Computer Protocols. Prentice Hall, 1991. ISBN 0-13-539925-4.
Also available online at http:/ / spinroot.com/ spin/ Doc/ Book91. html
External links
• Javvin's Protocol Dictionary
[1]
References
[1] http:/ / www.javvin. com/ protocolsuite. html
List of network protocols
20
List of network protocols
This is a list of network protocols, categorized by their nearest Open Systems Interconnection (OSI) model layers.
Many of these protocols, however, are originally based on the Internet Protocol Suite (TCP/IP) and other models and
they often do not fit neatly into OSI layers.
Layer 1+2 protocols (Physical)
• Ethernet
• GFP ITU-T G.7041 Generic Framing Procedure
• OTN ITU-T G.709 Optical Transport Network also called Optical Channel Wrapper or Digital Wrapper
Technology
Layer 2 protocols (Data Link Layer)
• ARCnet Attached Resource Computer NETwork
• ARP Address Resolution Protocol
• RARP Reverse Address Resolution Protocol
• CDP Cisco Discovery Protocol
• DCAP Data Link Switching Client Access Protocol
• Distributed Multi-Link Trunking
• Distributed Split Multi-Link Trunking
• Dynamic Trunking Protocol
• Econet
• FDDI Fiber Distributed Data Interface
• Frame Relay
• ITU-T G.hn Data Link Layer
• HDLC High-Level Data Link Control
• IEEE 802.11 WiFi
• IEEE 802.16 WiMAX
• LattisNet
• LocalTalk
• L2F Layer 2 Forwarding Protocol
• L2TP Layer 2 Tunneling Protocol
• LAPD Link Access Procedures on the D channel
• LLDP Link Layer Discovery Protocol
• LLDP-MED Link Layer Discovery Protocol - Media Endpoint Discovery
• PPP Point-to-Point Protocol
• PPTP Point-to-Point Tunneling Protocol
• Q.710 Simplified Message Transfer Part
• Multi-link trunking Protocol
• RPR IEEE 802.17 Resilient Packet Ring
• SLIP Serial Line Internet Protocol (obsolete)
• StarLAN
• STP Spanning Tree Protocol
• Split multi-link trunking Protocol
• Token ring is not a protocol but is a topology
• VTP VLAN Trunking Protocol
List of network protocols
21
Layer 2+3 protocols
• ATM Asynchronous Transfer Mode
• Frame relay, a simplified version of X.25 welcome
• MPLS Multi-protocol label switching
• SPB Shortest Path Bridging
• X.25
Layer 1+2+3 protocols
• MTP Message Transfer Part
• NSP Network Service Part
Layer 3 protocols (Network Layer)
• CLNP Connectionless Networking Protocol
• EGP Exterior Gateway Protocol
• EIGRP Enhanced Interior Gateway Routing Protocol
• ICMP Internet Control Message Protocol
• IGMP Internet Group Management Protocol
• IGRP Interior Gateway Routing Protocol
• IPv4 Internet Protocol version 4
• IPv6 Internet Protocol version 6
• IPSec Internet Protocol Security
• IPX Internetwork Packet Exchange
• Routed-SMLT
• SCCP Signalling Connection Control Part
• AppleTalk DDP
Layer 3 protocols (Network Layer management)
• IS-IS Intermediate System-to-Intermediate System
• OSPF Open Shortest Path First
• BGP Border Gateway Protocol
• RIP Routing Information Protocol
• ICMP Router Discovery Protocol: Implementation of RFC 1256
• NDP Neighbor Discovery Protocol
• Gateway Discovery Protocol (GDP) is a Cisco protocol similar to IRDP\
• IGRP
• EIGRP
List of network protocols
22
Layer 3.5 protocols
• HIP Host Identity Protocol
Layer 3+4 protocol suites
• AppleTalk
• DECnet
• IPX/SPX
• Internet Protocol Suite
• Xerox Network Systems
Layer 4 protocols (Transport Layer)
• AH Authentication Header over IP or IPSec
• ESP Encapsulating Security Payload over IP or IPSec
• GRE Generic Routing Encapsulation for tunneling
• IL Originally developed as transport layer for 9P
• SCTP Stream Control Transmission Protocol
• Sinec H1 for telecontrol
• SPX Sequenced Packet Exchange
• TCP Transmission Control Protocol
• UDP User Datagram Protocol
• DCCP Datagram Congestion Control Protocol
Layer 5 protocols (Session Layer)
• 9P Distributed file system protocol developed originally as part of Plan 9
• NCP NetWare Core Protocol
• NFS Network File System
• SMB Server Message Block
• SOCKS "SOCKetS"
Ok
Other protocols
• Controller Area Network (CAN)
Layer 7 protocols (Application Layer)
• ADC, A peer-to-peer file sharing protocol
• AFP, Apple Filing Protocol
• BACnet, Building Automation and Control Network protocol
• BitTorrent, A peer-to-peer file sharing protocol
• BOOTP, Bootstrap Protocol
• CAMEL, an SS7 protocol tool for the home operator
• Diameter, an authentication, authorization and accounting protocol
• DICOM includes a network protocol definition
• DICT, Dictionary protocol
• DNS, Domain Name System
List of network protocols
23
• DSM-CC Digital Storage Media Command and Control
• DHCP, Dynamic Host Configuration Protocol
• ED2K, A peer-to-peer file sharing protocol
• FTP, File Transfer Protocol
• Finger, which gives user profile information
• Gnutella, a peer-to-peer file-swapping protocol
• Gopher, a hierarchical hyperlinkable protocol
• HTTP, Hypertext Transfer Protocol
• IMAP, Internet Message Access Protocol
• Internet Relay Chat (IRC)
• ISUP, ISDN User Part
• LDAP Lightweight Directory Access Protocol
• MIME, Multipurpose Internet Mail Extensions
• MSNP, Microsoft Notification Protocol (used by Windows Live Messenger)
• MAP, Mobile Application Part
• NetBIOS, File Sharing and Name Resolution protocol - the basis of file sharing with Windows.
• NNTP, Network News Transfer Protocol
• NTP, Network Time Protocol
• NTCIP, National Transportation Communications for Intelligent Transportation System Protocol
• POP3 Post Office Protocol Version 3
• RADIUS, an authentication, authorization and accounting protocol
• RDP, Remote Desktop Protocol
• Rlogin, a UNIX remote login protocol
• rsync, a file transfer protocol for backups, copying and mirroring
• RTP, Real-time Transport Protocol
• RTSP, Real-time Transport Streaming Protocol
• SSH, Secure Shell
• SISNAPI, Siebel Internet Session Network API
• SIP, Session Initiation Protocol, a signaling protocol
• SMTP, Simple Mail Transfer Protocol
• SNMP, Simple Network Management Protocol
• SOAP, Simple Object Access Protocol
• SMB, Microsoft Server Message Block Protocol
• STUN, Session Traversal Utilities for NAT
• TUP, Telephone User Part
• Telnet, a remote terminal access protocol
• TCAP, Transaction Capabilities Application Part
• TFTP, Trivial File Transfer Protocol, a simple file transfer protocol
• WebDAV, Web Distributed Authoring and Versioning
• XMPP, an instant-messaging protocol
List of network protocols
24
Protocol description languages
• Abstract Syntax Notation One (ASN.1)
• Abstract Syntax Notation Two (ASN.2)
Further reading
• Network Protocols Handbook
[1]
. Javvin Technologies. 2005. ISBN 9780974094526.
External links
• Protocol Encapsulation Chart
[2]
- A PDF file illustrating the relationship between common protocols and the OSI
Reference Model.
• Network Protocols Acronyms and Abbreviations
[3]
- list of network protocols with abbreviations order by index.
References
[1] http:/ / books. google. com/ books?id=D_GrQa2ZcLwC
[2] http:// www.wildpackets. com/elements/ misc/ WP_encapsulation_chart.pdf
[3] http:// www.all-acronyms.com/ tag/ network_protocol
10PASS-TS
10PASS-TS is an IEEE 802.3-2008 Physical Layer (PHY) specification for a full-duplex short reach point-to-point
Ethernet link over voice-grade copper wiring, used in Ethernet in the first mile applications.
10PASS-TS PHYs deliver a minimum of 10 Mbit/s over distances of up to 750 metres (2460 ft), using ITU-T
G.993.1 (VDSL) technology over a single copper pair. These PHYs may also support an optional aggregation or
bonding of multiple copper pairs, called PME Aggregation Function (PAF).
Details
Unlike other Ethernet physical layers that provide a single rate such as 10, 100 or 1000 Mbit/s, 10PASS-TS link rate
can vary, depending on the copper channel characteristics, such as length, wire diameter (gauge), wiring quality, the
number of pairs if the link is aggregated and other factors.
VDSL is a short range technology designed to provide broadband over distances less than 1km of voice-grade copper
twisted pair line, but connection data rates deteriorate quickly as the line distance increases. This has led to VDSL
being referred to as a "Fibre to the curb" technology, because it requires fibre backhaul to connect with a carrier
network over greater distance.
VDSL Ethernet in the first mile services using may be a useful way to standardise functionality on Metro Ethernet
networks, or potentially to distribute internet access services over voice-grade wiring in MDU buildings. However,
VDSL2 has already proven to be a versatile and faster standard with greater reach than VDSL.
10PASS-TS
25
External links
• Get IEEE 802.3
[1]
- "IEEE Standard for Information technology - Telecommunications and information exchange
between systems - Local and metropolitan area networks - Specific requirements - Part 3: Carrier Sense Multiple
Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications", IEEE Std
802.3-2008, November 2008.
• IEEE 802.3ah
[2]
- Ethernet in the First Mile Task Force archive
10PASS-TS Equipment Manufacturers
• Extreme Copper, Inc. (http:/ / www. extremecopper.com)
10PASS-TS Chip Vendors
• Broadcom (http:/ / www. broadcom.com)
• Lantiq (http:/ / www. lantiq.com)
• Ikanos (http:/ / www. ikanos. com)
References
[1] http:/ / standards. ieee. org/ getieee802/ 802. 3. html
[2] http:/ / www.ieee802. org/3/ ah/
2BASE-TL
2BASE-TL is an IEEE 802.3-2008 Physical Layer (PHY) specification for a full-duplex long reach point-to-point
Ethernet link over voice-grade copper wiring. 2BASE-TL is used in Ethernet in the first mile applications.
Rates and Distances
Unlike 10BASE-T, 100BASE-T and 1000BASE-T PHYs, providing a single rate of 10, 100 or 1000 Mbit/s
respectively, 2BASE-TL link rate can vary, depending on the copper media characteristics (such as length, wire
diameter or gauge, number of pairs if the link is aggregated, amount of crosstalk between the pairs, etc.), desired link
parameters (such as desired SNR margin, Power Back-Off, etc.), and regional spectral limitations.
2BASE-TL PHYs deliver a minimum of 2 Mbit/s over distances of up to 2.7 kilometres (8900 ft), using ITU-T
G.991.2 (G.SHDSL.bis) technology over a single copper pair. These PHYs may also support an optional aggregation
or bonding of multiple copper pairs, called PME Aggregation Function (PAF).
For a single pair, the minimum possible link bitrate is 192 kbit/s (3 x 64 kbit/s) and the maximum bitrate is
5.7 Mbit/s (89 x 64 kbit/s). On a 0.5 mm wire with 3 dB noise margin and no spectral limitations, the max bitrate can
be achieved over distances of up to 1 kilometre (3300 ft). At 6 kilometres (20000 ft) the max achievable bitrate is
about 850 kbit/s.
The throughput of a 2BASE-TL link is lower than the link's bitrate by an average 5%, due to 64/65-octet encoding
and PAF overhead, both factors depend on packet size.
[1]
2BASE-TL
26
References
[1] Implementation and Applications of DSL Technology (book), Auerbach Publications 2008, ISBN 0849334233, Table 13.6.
External links
• IEEE 802.3ah (http:// www. ieee802. org/3/ ah/ ) - Ethernet in the First Mile Task Force archive
• Metro Ethernet Forum (http:/ / www. metroethernetforum.org/ )
4in6
4in6 refers to tunneling of IPv4 in IPv6. It is an Internet interoperation mechanism allowing Internet Protocol
version 4 (IPv4) to be used in an IPv6 only network. 4in6 uses tunneling to encapsulate IPv4 traffic over configured
IPv6 tunnels as defined in RFC 2473. 4in6 tunnels are usually manually configured but they can be automated using
protocols such as TSP to allow easy connection to a tunnel broker.
References
• RFC 2473, Generic Packet Tunneling in IPv6 Specification, A. Conta and S. Deering 1998
6in4
6in4 is an Internet transition mechanism for migrating from Internet Protocol version 4 (IPv4) to IPv6. 6in4 uses
tunneling to encapsulate IPv6 traffic over explicitly-configured IPv4 links as defined in RFC 4213 (obsoletes RFC
2893 and RFC 1933). The 6in4 traffic is sent over the IPv4 Internet inside IPv4 packets whose IP headers have the
IP protocol number set to 41. This protocol number is specifically designated for IPv6 encapsulation.
[1]
In 6in4, the
IPv4 packet header is immediately followed by the IPv6 packet being carried. This means that the encapsulation
overhead is simply the size of the IPv4 header of 20 bytes. With an Ethernet Maximum Transmission Unit (MTU) of
1500 bytes, one can thus send IPv6 packets of 1480 bytes without fragmentation. 6in4 tunneling is also referred to as
proto-41 static because the endpoints are configured statically. Although 6in4 tunnels are generally manually
configured, for example the utility AICCU can configure tunnel parameters automatically after retrieving
information from a Tunnel Information and Control Protocol (TIC) server.
There are similarly named methods, namely 6to4 or 6over4, which describe a different mechanism. The method 6to4
makes use of proto-41 too, but instead of static configuration of the endpoints, the endpoint IPv4 address information
is derived from the IPv6 addresses within the IPv6 packet header.
Network address translators (NAT)
When an endpoint of a 6in4 tunnel is behind a NAT, one can in some cases still make use of the DMZ feature of a
NAT router. The NAT router will then forward all incoming proto-41 packets to the configured host, thus making
the tunnel work. Some NAT devices even allow transparent operation of 6in4.
Dynamic 6in4 tunnels and heartbeat
Even though 6in4 tunnels are static in nature, with the help of for example the heartbeat protocol
[2]
one can still have
dynamic tunnel endpoints. The heartbeat protocol signals the other side of the tunnel with its current endpoint
location. A tool such as AICCU can then update the endpoints, in effect making the endpoint dynamic while still
using the 6in4 protocol. These kind of tunnels are generally called 'proto-41 heartbeat' tunnels.
6in4
27
Security issues
The 6in4 protocol has no security features, thus one can easily inject IPv6 packets by spoofing the source IPv4
address of a tunnel endpoint and sending it to the other endpoint. This problem can partially be solved by
implementing network ingress filtering or with IPsec. Another solution is to use a secure protocol such as AYIYA or
other tunneling methods that compute digital signatures for each packet thus facilitating verification of packet
authenticity.
The mentioned packet injection loophole of 6in4 was exploited for a research benefit in a method called IPv6 Tunnel
Discovery
[3]
which allowed the researchers to discover operating IPv6 tunnels around the world.
References
• RFC 1933, Transition Mechanisms for IPv6 Hosts and Routers, R. Gilligan and E. Nordmark, 1996
[1] "Protocol Numbers" (http:// www. iana. org/assignments/ protocol-numbers/protocol-numbers.xml). .
[2] Heartbeat Protocol (http:/ / www. sixxs. net/ tools/ heartbeat/), J. Massar and P. van Pelt
[3] IPv6 Tunnel Discovery (http:/ / www. dia. uniroma3. it/ ~compunet/ tunneldiscovery), L. Colitti, G. Di Battista, and M. Patrignani
External links
• How do I configure my machine to setup an IPv6 in IPv4 tunnel (http://www. sixxs. net/ faq/connectivity/
?faq=ossetup)
• 6in4 and other tunnel setups on Debian (http:/ / wiki.debian.org/DebianIPv6)
• 6in4 setup on Plan9 OS (http:/ / www. cs. bell-labs.com/ magic/man2html/ 8/6in4)
9P
9P (or the Plan 9 Filesystem Protocol or Styx) is a network protocol developed for the Plan 9 from Bell Labs
distributed operating system as the means of connecting the components of a Plan 9 system. Files are key objects in
Plan 9. They represent windows, network connections, processes, and almost anything else available in the operating
system. Unlike NFS, 9P encourages caching and also serving of synthetic files (e.g. /proc to represent processes).
9P was revised for the 4th edition of Plan 9 under the name 9P2000 that contained various fundamental
improvements. The latest version of the Inferno operating system also uses 9P2000. The Inferno file protocol was
originally called Styx, but technically it has always been a variant of 9P.
A server implementation of 9P for Unix, called u9fs, is included in the Plan 9 distribution. A kernel client driver for
Linux is part of the v9fs project. 9P and its derivatives have also found application in embedded environments, such
as the Styx on a Brick project
[1]
.
Server applications
Many of Plan 9's applications take the form of 9P servers. Noteworthy examples include:
• acme: a user interface for programmers
• rio: the Plan 9 windowing system.
• plumber: interprocess communication
• wikifs: a wiki
9P
28
Implementation
9P sends the following messages between clients and servers.
[2]
These messages correspond to the entry points in the
Plan 9 vfs layer that any 9P server must implement.
version
Negotiate protocol version
[3]
error
Return an error
[4]
flush
Abort a message
[5]
auth, attach
Messages to establish a connection
[6]
walk
Descend a directory hierarchy
[7]
create, open
Prepare a fid for I/O on an existing or new file
[8]
read, write
Transfer data from and to a file
[9]
clunk
Forget about a fid
[10]
remove
Remove a file from a server
[11]
stat, wstat
Inquire or change file attributes
[12]
References
[1] http:/ / doc. cat-v.org/ inferno/4th_edition/ styx-on-a-brick/
[2] 9p protocol (http:/ / man. cat-v.org/ plan_9/ 5/ intro)
[3] http:/ / man.cat-v.org/ plan_9/ 5/ version
[4] http:/ / man.cat-v.org/ plan_9/ 5/ error
[5] http:/ / man.cat-v.org/ plan_9/ 5/ flush
[6] http:/ / man.cat-v.org/ plan_9/ 5/ attach
[7] http:/ / man.cat-v.org/ plan_9/ 5/ walk
[8] http:/ / man.cat-v.org/ plan_9/ 5/ open
[9] http:/ / man.cat-v.org/ plan_9/ 5/ read
[10] http:/ / man. cat-v.org/ plan_9/ 5/ clunk
[11] http:/ / man. cat-v.org/ plan_9/ 5/ remove
[12] http:/ / man. cat-v.org/ plan_9/ 5/ stat
9P
29
External links
• 9P Resources (http:/ / 9p. cat-v.org/) page at cat-v.org.
• 9P Manual (http:/ / man. cat-v.org/ plan_9/ 5/ intro).
• The Styx Architecture for Distributed Systems (http:// doc. cat-v. org/ inferno/4th_edition/styx) by Rob Pike
and Dennis Ritchie.
• The Organization of Networks in Plan 9 (http:/ / doc. cat-v.org/plan_9/ 4th_edition/ papers/ net/ ) by Dave
Presotto and Phil Winterbottom.
Access Stratum
Access Stratum (AS) is a functional layer in the Wireless Telecom protocol stack between Radio Network and User
Equipment. The radio network is also called access network.
+- - - - - -+ +- - - - - - -+
| HTTP | | Application |
+- - - - - -+ +- - - - - - -+
| TCP | | Transport |
+- - - - - -+ +- - - - - - -+
| IP | | Internet |
+- - - - - -+ +- - - - - - -+
| NAS | | Network Layer|
+- - - - - -+ +- - - - - - -+
| AS | | Link Layer |
+- - - - - -+ +- - - - - - -+
| Channels | | Physical |
+- - - - - -+ +- - - - - - -+
Advanced Message Queuing Protocol
30
Advanced Message Queuing Protocol
The Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol for
message-oriented middleware. The defining features of AMQP are message orientation, queuing, routing (including
point-to-point and publish-and-subscribe), reliability and security
[1]
.
AMQP mandates the behaviour of the messaging provider and client to the extent that implementations from
different vendors are truly interoperable, in the same way as SMTP, HTTP, FTP, etc. have created interoperable
systems. Previous attempts to standardize middleware have happened at the API level (e.g. JMS) and this did not
create interoperability
[2]
. Unlike JMS, which merely defines an API, AMQP is a wire-level protocol. A wire-level
protocol is a description of the format of the data that is sent across the network as a stream of octets. Consequently
any tool that can create and interpret messages that conform to this data format can interoperate with any other
compliant tool irrespective of implementation language.
Overview
AMQP was originally designed to provide a vendor-neutral (i.e. interoperable across multiple vendors) protocol for
managing the flow of messages across an enterprise's business systems.
AMQP is middleware to provide a point of rendezvous between back-end systems (data stores and services) and
front end systems such as end user applications. The first applications were for trading desks in the financial
industry, where real time order and market data are transmitted. Though originally used inside of enterprises, AMQP
can easily be used to move messages between organizations.
AMQP lets system architects build common messaging patterns out of a simpler underlying model. Typical
messaging patterns are: request-response, in which messages are sent to or from specific recipients,
publish-and-subscribe, in which information is distributed to a set of recipients according to various subscription
criteria, and round-robin, in which tasks are distributed fairly among a set of recipients. Realistic applications
combine these, e.g. round-robin for distributing work plus request-response for sending back responses.
The protocol specification defines a binary wire protocol used between a client and server (also known as a broker).
In addition the specification outlines a message queuing model and services that an implementation must provide.
The queuing model of AMQP provides for a wide range of messaging use-cases and further refines the functions of
the clients and brokers. The function of brokers can be usefully broken into two kinds: exchanges and message
queues. Message queues store messages, and various implementations can achieve various quality of service. For
example a slow but tornado-proof message queue would keep redundant copies in multiple geographic regions while
a fast but fragile message queue might keep everything in a single process's RAM. To help improve interoperability
some of these aspects of the message queues are specified in the protocol, e.g. you can state what you need when
asking a message queue broker implementation to create a new queue.
The standard AMQP exchanges have no semantics for storing messages. They route them to queues, which store
them on behalf of recipients. Exchanges implement a range of message routing techniques: one-to-one message
passing (like email to one recipient), one-to-N (like an email list), one-to-one-of-N (like a queue for the next open
checkout), and so on. Since all exchanges accept messages from N senders, AMQP allows all one-to-any routing to
be N-to-any. The rules that configure an exchange, known as bindings, can range from very simple (pass everything
into this message queue) to procedural inspections of message content. AMQP allows arbitrary exchange semantics
through custom exchanges (which can queue, generate, consume, and route messages in any way desired by the
implementation).
Messages consist of an envelope of properties used in routing and by applications and a content, of any size. AMQP
message contents are opaque binary blobs. Messages are passed between brokers and clients using the protocol
commands Basic.Publish and Basic.Deliver. These commands are asynchronous so that conditions that arise from a
Advanced Message Queuing Protocol
31
command's evaluation are signalled by sending additional commands back on the channel that carried the command
originally. AMQP also provides a synchronous message delivery command, Basic.Get/Get-Ok.
Examples of error conditions include signalling by an exchange that it could not route a message because no route
was found, or signalling that a message queue declined to accept a message (say because it was full). Message
brokers may be configured to handle exceptions in different ways. For example, routing the associated message to a
dead letter queue or even bringing the broker to a hard stop.
Development
AMQP was developed from mid-2004 to mid-2006 by JPMorgan Chase & Co. and iMatix Corporation who also
developed implementations in C/C++ and Java. JPMorgan Chase & Co. and iMatix documented the protocol as an
interoperable specification and assigned to a working group that included Red Hat, Cisco Systems, TWIST, IONA
Technologies, and iMatix. As of November 2009, the working group consists of Bank of America, Barclays, Cisco
Systems, Credit Suisse, Deutsche Börse Systems, Envoy Technologies, Inc., Goldman Sachs, Progress Software,
iMatix Corporation, JPMorgan Chase Bank Inc. N.A, Microsoft Corporation, Novell, Rabbit Technologies Ltd., Red
Hat, Inc., Solace Systems, Tervela Inc., TWIST Process Innovations ltd, WS02 and 29West Inc.
A notable design goal of AMQP was to enable the creation of open standard protocol stacks for business messaging
both within and between firms by combining AMQP with one of the many open standards describing business
transactions, such as FpML or more generically as a reliable transport for SOAP.
Whilst AMQP originated in the financial services industry, it has general applicability to a broad range of
middleware problems.
The AMQP model
AMQP defines a number of entities. From a connection perspective the relevant ones are:
• Message broker: a server to which AMQ clients connect using the AMQ protocol. Message brokers can run in a
cluster but these details are implementation specific and are not covered by the specification.
• User: a user is an entity that, by providing credentials in form of a password, may or may not be authorized to
connect to a broker.
• Connection: a physical connection e.g. using TCP/IP or SCTP. A connection is bound to a user.
• Channel: a logical connection that is tied to a connection. Hence communication over a channel is stateful. Clients
that perform concurrent operations on a connection should maintain a distinct channel for each of those. Clients
that use a threaded model of concurrency can for example encapsulate the channel declaration in a thread-local
variable.
Entities in the AMQP model used for message
transfer
The entities used for the actual sending and receiving of messages are
all declared on a channel. A declaration assures the issuing client that
the entity exists (or was previously declared by another client). Any
attempt to declare a named entity with different properties than it was
declared before will result in an error. In order to change the properties
of such an entity it must be deleted prior to a re-declaration (with
changed properties).
Some of these entities are named. The naming must be unique within
the scope of the entity and its broker. Since clients usually (at least no
such operations are defined in the AMQP specification) do not have
the means to get a list of all available named entities, the knowledge of
an entity name is what allows the client to perform operations on it.
Advanced Message Queuing Protocol
32
Names are encoded in UTF-8, must be between 1 and 255 characters in length and must start with a digit, a letter or
an underscore character.
Exchanges
Exchanges are the entities to which messages are sent. They are named and have a type as well as properties such as:
• passive: the exchange will not get declared but an error will be thrown if it does not exist.
• durable: the exchange will survive a broker restart.
• auto-delete: the exchange will get deleted as soon as there are no more queues bound to it. Exchanges to which
queues have never been bound will never get auto deleted.
Queues
Queues are the entities which receive messages. They are named and have properties but not a type. Clients can
subscribe to queues to the effect that the message broker delivers (pushes) the contents of the queue to the client.
Alternatively clients can pop (pull) messages from the queue as they see fit.
Messages are guaranteed to be delivered in the order that they were first delivered to a queue, unless certain kinds of
rerouting operations (e.g. due to failures) occur.
The properties of queues are:
• alternate-exchange: when messages are rejected by a subscriber or orphaned by queue deletion, its messages get
routed to this exchange and get removed from the queue.
• passive: the queue will not get declared but an error will be thrown if it does not exist.
• durable: the queue will survive a broker restart.
• exclusive: there can only be one client for this specific queue.
• auto-delete: the queue will get deleted as soon as no more subscriptions are active on it. This shares the same
constraint as the auto-delete property for exchanges: if no subscription has been ever active on the queue it will
not get auto-deleted. An exclusive queue however will always get auto-deleted when the client terminates its
session.
Note that queues are scheduled to replace exchanges in AMQP/1.0.
Messages
Messages are unnamed and are published to an exchange. They consist of a header and a content body. While the
body is opaque data the header contains a number of optional properties:
• routing-key: this field is used in ways dependent on the type of the exchange.
• immediate: the message will get handled as unroutable if at least one of the queues which would receive the
message has no subscription on it.
• delivery-mode: indicates that a message might need persistence. Only for such messages the broker makes a
best-effort to prevent a loss of the message before consumption. If there is uncertainty on the broker's end about
the successful delivery of a message (e.g. in case of errors) it might deliver a message more than once. Non
persistent delivery modes do not show this kind of behavior.
• priority: an indicator (a range between 0 and 9) that a message has higher precedence than others.
• expiration: the duration in milliseconds before the broker may handle the message as unroutable.
Advanced Message Queuing Protocol
33
Bindings
A binding is a relationship between one queue and one exchange that specifies how messages flow from the
exchange to the queue. The binding properties match the routing algorithm used in exchanges. Bindings (and
exchange algorithms) can be placed on a curve of increasing complexity:
• Unconditional - the binding has no properties and requests "all" messages from the exchange.
• Conditional on a fixed string - the binding has one property, the routing key and requests all messages that have
an identical routing key.
• Conditional on a pattern match - the binding has one property, the routing key and requests all messages that
match the routing key using a pattern-matching algorithm. Arbitrary pattern syntaxes could be used. AMQP
implements topic matching.
• Conditional on multiple fixed strings - the binding has a table of properties, the arguments and requests all
messages whose headers match these arguments, using logical ANDs or ORs to combine matches.
• Conditional on multiple patterns - the binding has a table of properties, the arguments and requests all messages
whose headers match these arguments, using a pattern matching algorithm and logical combinations.
• Conditional on algorithmic comparison - the binding has an algorithmic expression (like an SQL SELECT
WHERE clause) and requests all messages whose headers match that expression.
• Conditional on content inspection - the binding specifies arbitrary criteria that are resolved by inspection of the
actual message content.
Not all these are implemented as standard, or by all implementations.
Exchange types and the effect of bindings
These four entities form the basic model of the AMQP. The key to understand how a message is passed to a queue
lies in the relationship between the type of an exchange and the resulting interpretation of the routing key.
An exchange will deliver up to one copy of a message to a queue if the routing key in the message matches a binding
(subsequent semantically identical bindings will not lead to duplicate copies). What constitutes a match however is
solely dependent on the type of an exchange:
• a direct exchange matches when the routing key property of a message and the key of the binding are identical.
• a fanout exchange always matches, even on bindings without a key.
• a topic exchange matches the routing key property of a message on binding key words. Words are strings which
are separated by dots. Two additional characters are also valid: the *, which matches 1 word and the #, which
matches 0..N words. Example: *.stock.# matches the routing keys usd.stock and eur.stock.db but not
stock.nasdaq.
• a headers exchange matches on the presence of keys as well as key–value pairs which can be concatenated with
logical and–or connections in a messages header. In this case the routing key is not a criterion for matching that is
considered by the exchange. Neither does the binding carry a single routing key but special format which contains
header keys and / or key-value-pairs which match on the header key being present or the header key being present
and the value being the same respectively.
Other e.g. vendor-specific exchanges are explicitly permitted in the specification.
The concept of binding named queues to named exchanges has powerful properties (with binding making those two
entities independent of each other). It is, for instance, possible to bind a single queue with multiple bindings to the
same or to different exchanges. Or multiple consumers can share the name of a queue and bind to it with the same
parameters and will therefore get only message that the other consumers did not consume. Or multiple consumers
can declare independent queues but share the bindings and get all the message every other consumer would get on
the bound exchange with these bindings.
Advanced Message Queuing Protocol
34
Specification revisions and the future of AMQP
The following specifications of the AMQ protocol have been published, in chronological order:
• 0-8 in June 2006
• 0-9 in December 2006
• 0-10 (documents are undated)
• 0-9-1 in November 2008
• 1.0 draft
[3]
in May 2010
The draft 1.0 specification changes the AMQP model illustrated above by removing the concepts of exchanges and
bindings, and replacing these with queues and links. This change aims to remedy two problems with the previous
approach:
1. The publisher needs to know too much about the receivers topology (what exchanges and exchange types are
available).
2. Producer flow control is challenging - if an Exchange is routing a message to 2 different queues, one empty and
the other nearly full, what flow control information should be relayed to the producer and how would that be
determined?
According to John O'Hara[4] however, JPMorganChase and RedHat introduced links into AMQP/1.0 simply to solve
an operational problem of slow consumers causing memory build up in brokers.
Other changes include the introduction of a queue addressing schema similar to E-mail and XMPP. This raises
addresses to first-class entities, and allows for the publication of service location records using the DNS.
The process of bringing the 1.0 Specification to a Standard involves a requirement elicitation phase, then the release
of a "public review" spec (PR) which should be reviewed and asked for comments, optionally resulting in further
modifications. When there are no substantive changes to the PR, it is voted to be the 1.0 Recommendation. When
there are at least two implementations that pass a special test coverage, the Recommendation is voted to be 1.0
Standard
[5]
. As of 29 December 2010, a Recommendation spec has been produced and is waiting for two or more
implementations proven to interoperate
[6]
.
Implementations
These are the known publicly available AMQP implementations:
• OpenAMQ
[7]
, an open-source implementation of AMQP, written in C by iMatix. Runs on Linux, AIX, Solaris,
Windows, OpenVMS. APIs in C/C++ and Java JMS. Discontinued by iMatix
[8]
after their switching to ØMQ.
• StormMQ, currently the only hosted message queuing service using AMQP. It is offered as a commercial
managed service.
• RabbitMQ, an independent open-source implementation bought by VMware in 2010. The server is written in
Erlang.
• Apache Qpid, a project in the Apache Foundation. Bindings to many languages without the use of DLLs.
• Red Hat Enterprise MRG
[9]
implements the latest version of AMQP 0-10 providing rich set of features like full
management, federation, Active-Active clustering using Apache Qpid as upstream, adds a web console and many
enterprise features. Also available in the latest 3 versions of Fedora as AMQP Infrastructure
[10]
.
Advanced Message Queuing Protocol
35
Clients
There are many clients, including:
• DE.SETF.AMQP
[11]
, a Common Lisp client library for AMQP.
• libamqp
[12]
a C client for AMQP 1.0.
Comparative specifications
These are the known open specifications that cover the same or similar space as AMQP:
• Stomp, a text-based pub-sub protocol developed at Codehaus; uses the JMS-like semantics of 'destination'.
• RestMS
[13]
, an HTTP-based message routing and queuing protocol that provides AMQP interoperability through
an optional profile.
• XMPP, the Extensible Messaging and Presence Protocol.
There are also vendor specific, proprietary specifications includes those by the Amazon Simple Queue Service, IBM
WebSphere MQ, Microsoft Message Queuing, JMS and the OpenWire as used by ActiveMQ.
There has not as yet been a formal comparison of these and other protocols in the same space, although an informal
comparison of XMPP and AMQP may be found here
[14]
. JMS, the Java Messaging service, is often compared to
AMQP. However, JMS is an API specification (part of the Java EE specification) that defines how message
producers and consumers are implemented. JMS does not guarantee interoperability between implementations, and
the JMS-compliant messaging system in use may need to be deployed on both client and server. On the other hand,
AMQP is a wire-level protocol specification. In theory AMQP provides interoperability as different
AMQP-compliant software can be deployed on the client and server sides. Note that, like HTTP and XMPP, AMQP
does not have a standard API.
References
[1] O'Hara, J. (2007). "Toward a commodity enterprise middleware" (http:// www.acm. org/ acmqueue/ digital/ Queuevol5no4_May2007.pdf).
Acm Queue 5: 48–55. doi:10.1145/1255421.1255424. .
[2] Vinoski, S. (2006). "Advanced Message Queuing Protocol" (http:/ / steve. vinoski. net/pdf/IEEE-Advanced_Message_Queuing_Protocol.
pdf). Ieee Internet Computing 10: 87–89. doi:10.1109/MIC.2006.116. .
[3] http:/ / www.amqp. org/confluence/ download/ attachments/ 4489238/ amqp-1-0-recommendation-draft.pdf?version=1&
modificationDate=1274281100000
[4] http:// lists. amqp. org/pipermail/ amqp-pmc/2010-May/ 001319.html
[5] http:// www.amqp. org/confluence/ display/ AMQP/ Process+ SIG
[6] http:// www.amqp. org/confluence/ display/ AMQP/ AMQP+ Specification
[7] http:// www.openamq. org/
[8] http:/ / www.h-online.com/ open/ news/ item/ iMatix-to-drop-OpenAMQ-support-by-2011-968262.html
[9] http:// www.redhat.com/ mrg
[10] http:// fedoraproject.org/ wiki/ Features/ AMQP_Infrastructure
[11] http:// github. com/ lisp/ de. setf.amqp
[12] http:/ / libamqp. org
[13] http:/ / www. restms. org/
[14] http:/ / www. opensourcery.co. za/ 2009/ 04/ 19/ to-amqp-or-to-xmpp-that-is-the-question/
Advanced Message Queuing Protocol
36
External links
• AMQP Website (http:/ / www. amqp. org/)
• Original background whitepaper (http:// www.openamq. org/ doc:amqp-background)
• OMG Analysis of AMQP and comparison with DDS-RTPS (http:/ /www. omg. org/news/ meetings/ workshops/
RT-2007/04-3_Pardo-Castellote-revised.pdf)
• Google Tech Talk, with video and slides, about RabbitMQ (http:/ /google-ukdev.blogspot. com/ 2008/ 09/
rabbitmq-tech-talk-at-google-london.html)
• Presentation of AMQP and RestMS messaging at FOSDEM 2009 (http:/ /www. slideshare.net/ pieterh/
fosdem-2009)
• What is wrong with AMQP (and how to fix it) (http:// www. imatix. com/ articles:whats-wrong-with-amqp) —
iMatix secession reasons
• List of AMQP clients (http:/ / www. delicious. com/ alexisrichardson/ AMQP+ client)
Alcatel Business Communications
Alcatel Business Communications (ABC) is a proprietary communications protocol written by Alcatel-Lucent that
is based on QSIG. ABC is supported over a variety of network types: IP, ATM, frame relay, PSTN, ISDN, or leased
line.
The ABC protocol is based on four modules and offers the following services:
• ABC-F: Telephone Features. Provides telephone feature transparency; features available in a single system are
available across the entire network.
• ABC-A: Applications. Offers network-wide applications as both centralized and distributed solutions.
• ABC-R: Routing. An adaptive routing mechanism that optimizes the size of network links and improves security.
Designed to use: least-cost routing, automatic route selection, forced on-net, break-in, break-out, and link
optimization on transfer.
• ABC-M: Management. Guarantees consistency of databases among all Alcatel OmniPCXs. It is used to inform
the whole network about configuration changes and provides centralized alarms.
References
• Alcatel-Lucent OmniPCX 4400 Specifications
[1]
• Alcatel-Lucent OmniPCX 4400 Networking
[2]
References
[1] http:/ / www1.alcatel-lucent.com/ industry_analysts/ pdf/ pcx_spec.pdf
[2] http:// www.pentagon. ro/docs/ net. pdf
Alternating bit protocol
37
Alternating bit protocol
Alternating bit protocol (ABP) is a simple network protocol operating at the data link layer that retransmits lost or
corrupted messages.
Messages are sent from transmitter A to receiver B. Assume that the channel from A to B is initialized and that there
are no messages in transit. Each message from A to B contains a data part and a one-bit sequence number, i.e., a
value that is 0 or 1. B has two acknowledge characters that it can send to A: ACK0 and ACK1.
When A sends a message, it resends it continuously, with the same sequence number, until it receives an
acknowledgment from B that contains the same sequence number. When that happens, A complements (flips) the
sequence number and starts transmitting the next message.
When B receives a message that is not corrupted and has sequence number 0, it starts sending ACK0 and keeps
doing so until it receives a valid message with number 1. Then it starts sending ACK1, etc.
This means that A may still receive ACK0 when it is already transmitting messages with sequence number one. (And
vice-versa.) It treats such messages as negative-acknowledge characters (NAKs). The simplest behaviour is to ignore
them all and continue transmitting.
The protocol may be initialized by sending bogus messages and acks with sequence number 1. The first message
with sequence number 0 is a real message.
References
This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed
under the GFDL.
AMX192
AMX192 (often referred to simply as AMX) is an analog lighting communications protocol used to control stage
lighting. It was developed by Strand Century in the late 1970s. Originally, AMX192 was only capable of controlling
192 discrete channels of lighting. Later, multiple AMX192 streams were supported by some lighting desks.
AMX192 has now all but been replaced in favour of DMX, and is typically only found in legacy hardware.
History
The name AMX192 is derived from an acronym of Analog MultipleXing and the maximum number of controllable
lighting channels (192). AMX was developed to address a significant problems in controlling dimmers. In order to
send a control signal from a lighting control unit to the dimmer units, for many years, the only method was to
provide a dedicated wire from the control unit to each dimmer (analogue control) where the voltage present on the
wire was varied by the control unit to set the output level of the dimmer. In the late 1970s the AMX192 serial
analogue multiplexing standard was developed in the US, permitting one cable to control several dimmers.
At about the same time, D54 was developed in the United Kingdom, and differed from AMX192 in that it used an
embedded clocking scheme. AMX192 used a separate differential clock with a driver circuit similar to RS485, but
current limited on each leg with 100Ω resistors.
AMX192
38
External links
• Strand Lighting Corporate
[1]
• University of Exeter - Strand Archive
[2]
References
[1] http:/ / www.strandlight. com/
[2] http:/ / www.strandarchive.co. uk/
Anything In Anything
Anything In Anything or AYIYA is a tunneling protocol for connecting islands of IP traffic with each other. The
protocol addresses the following problems:
• Tunneling of any protocol in any protocol - This is where the name is derived from
• Security - The tunneled packets should not be spoofable or replayable
• NAT awareness - The tunnel should work over a NAT
• Mobility - The endpoint of at least one of the two hosts should be able to change
The draft itself covers the deep details on how this is accomplished and how the protocol works in detail. Below are
some scenarios on how this protocol can be used to solve some problems.
Using AYIYA for tunnel brokers
Many users are currently located behind NATs which prohibit
[1]

[2]
the usage of protocol 41 tunnels (IPv6 tunnelled
in IPv4, either RFC 4213 or RFC 3056) unless they manually reconfigure their NAT setup. In some cases, this is
impossible as the NAT cannot be configured to forward protocol 41 to a specific host. There might also be cases
when multiple endpoints are behind the same NAT, when multiple NATs are used, or when the user has no control at
all over the NAT setup. This is an undesired situation as it limits the deployment of IPv6, which was meant to solve
the problem of the disturbance in end to end communications caused by NATs, which were created because of
limited address space in the first place.
This problem can be solved by tunneling the IPv6 packets over either UDP, TCP or even SCTP. Taking into
consideration that multiple separate endpoints could be behind the same NAT and/or that the public endpoint can
change on the fly, there is also a need to identify the endpoint that certain packets are coming from and endpoints
need to be able to change e.g. source addresses of the transporting protocol on the fly while still being identifiable as
the same endpoint. The protocol described in this document is independent of the transport and payload's protocol.
An example could be IPv6-in-UDP-in-IPv4, which is a typical setup that can be used by IPv6 tunnel brokers.
Using AYIYA for mobility
AYIYA could be used in a mobility situation for tunneling its Home Address back to the Home Agent, thus acting as
a normal tunnel situation and for the Remote Host it seems the communication is happening directly. In this case the
remote host doesn't need to support AYIYA. When the Remote Host does support AYIYA, it could also directly
setup a tunnel with the mobile host, circumventing that traffic is sent over the Home Agent. The Remote Host can
determine if a host supports AYIYA by looking up properties in DNS and use a Public/Private Key algorithm to
authenticate the packets without prior information, e.g. the keys, needing to be available. The following diagram
illustrates this.
Anything In Anything
39
Using AYIYA to provide IPv6 for an endhost is in effect already providing mobility for that endhost as it can take its
IPv6 address along anywhere it wants to go as it signals the Home Agent when the tunnel endpoint changes so that
the Home Agent knows where to send new packets.
Packet format
Bits 0 - 3 4 - 7 8 - 11 12 - 15 16 - 19 20 - 23 24 - 31
0 Identity Length Identity Type Signature Length Hash Method Authentication Method Operation Code Next Header
32 Epoch Time
Identity
Signature
For IPv6 over IPv4-UDP operation, as in general use, the Identity is the IPv6 Address of the endpoint (16 bytes) and
the signature is an SHA1 hash (20 bytes). The header is then a total of 8 + 16 + 20 = 52 bytes. This allows an MTU
of 1428 over Ethernet (MTU : 1500).
More details on the SixXS site, and of course in the draft.
[1]
Implementations
The following implementations are available: AICCU
References
[1] AYIYA (http:// www. sixxs. net/ tools/ ayiya/ )
[2] RFC 4891
External links
• SixXS (http:// www. sixxs. net)
Apple Filing Protocol
40
Apple Filing Protocol
The Apple Filing Protocol (AFP) is a network protocol that offers file services for Mac OS X and original Mac OS.
In Mac OS X, AFP is one of several file services supported including Server Message Block (SMB), Network File
System (NFS), File Transfer Protocol (FTP), and WebDAV. AFP currently supports Unicode file names, POSIX and
access control list permissions, resource forks, named extended attributes, and advanced file locking. In Mac OS 9
and earlier, AFP was the primary protocol for file services.
Compatibility
AFP versions 3.0 and greater rely exclusively on TCP/IP (port 548 or 427) for establishing communication,
supporting AppleTalk only as a service discovery protocol. The AFP 2.x family supports both TCP/IP (using Data
Stream Interface) and AppleTalk for communication and service discovery. Many third-party AFP implementations
use AFP 2.x, thereby supporting AppleTalk as a connection method. Still earlier versions rely exclusively on
AppleTalk. For this reason, some older literature refers to AFP as "AppleTalk Filing Protocol". Other literature may
refer to AFP as "AppleShare," the name of the Mac OS 9 (and earlier) AFP client.
Notable current compatibility topics are:
1. Mac OS X v10.4 and later eliminates support for AFP servers that rely solely on AppleTalk for communication.
2. Computers using original Mac OS can connect to AFP 3.x servers, with some limitations. For example, the
maximum file size in Mac OS 8 is 2 gigabytes. Typically, Mac OS 9.1 or later is recommended for connecting to
AFP 3.x servers; for versions of original Mac OS prior to 9.1, installation of the AppleShare client 3.8.8 is
required.
3. AFP 3.0 and later is required for network home directories, since Mac OS X requires POSIX permissions on user
home directories. Single sign-on using Kerberos requires AFP 3.1.
History
Early implementations of AFP server software were available in Mac OS starting with System 6, in AppleShare and
AppleShare IP, and in early "1.x" releases of Mac OS X Server. In client operating systems, AFP was called
"Personal File Sharing", and supported up to ten simultaneous connections.
[1]
These AFP implementations relied on
version 1.x or 2.x of the protocol. AppleShare IP 5.x, 6.x, and the "1.x" releases of Mac OS X Server introduced
AFP version 2.2. This was the first version to offer transport connections using TCP/IP as well as AppleTalk. It also
increased the maximum share point size from four gibibytes to two tebibytes,
[1]
although the maximum file size that
could be stored remained at two gibibytes due to limitations in the original Mac OS.
[2]
Changes made in AFP since version 3.0 represent major advances in the protocol, introducing features designed
specifically for Mac OS X clients.
However, like the AppleShare client in original Mac OS, the AFP client in Mac OS X continues to support type and
creator codes, along with filename extensions.
AFP 3.0 was introduced in Mac OS X Server 10.0.3, and was used through Mac OS X Server 10.1.5. It was the first
version to use the UNIX-style POSIX permissions model and Unicode UTF-8 file name encodings. Version 3.0
supported a maximum share point and file size of two tebibytes, the maximum file size and volume size for Mac OS
X until version 10.2.
[3]
(Note that the maximum file size changed from version 2.2, described above.) Before AFP
3.0, 31 bytes was the maximum length of a filename sent over AFP.
AFP 3.1 was introduced in Mac OS X Server version 10.2. Notable changes included support for Kerberos
authentication, automatic client reconnect, NFS resharing, and secure AFP connections via Secure Shell (SSH). The
maximum share point and file size increased to 8 tebibytes with Mac OS X Server 10.2,
[3]

[4]
and then to 16 tebibytes
Apple Filing Protocol
41
with Mac OS X Server 10.3.
[3]

[5]
AFP 3.2 adds support for Access Control Lists and extended attributes in Mac OS X Server 10.4. Maximum share
point size is at least 16 tebibytes, although Apple has not published a limits document for Mac OS X Server 10.4.
AFP 3.2+ was introduced in Mac OS X Leopard and adds case sensitivity support and improves support for Time
Machine (synchronization, lock stealing, and sleep notifications).
AFP 3.3 mandates support for Replay Cache functionality (required for Time Machine).
The Mac OS X client
In Mac OS X Tiger, users can connect to AFP servers by browsing for them in the Network globe or entering an
AFP Uniform Resource Locator (URL) into the Connect to Server dialog. In OS X Leopard, AFP shares are
displayed in the Finder side-bar. AFP URLs take the form: afp://<server>/<share>, where <server> is the server's
IP address, Domain Name System (DNS) name, or Bonjour name, and <share> is the name of the share point. In
Snow Leopard, a URL of the form afp://<server>/<share>/<path> can be used to mount a subdirectory underneath
a share point.
Mac OS X also offers Personal File Sharing, a "light" implementation of the current version of AFP. In Mac OS X
10.4 client, users can share the contents of their Public folders by checking Personal File Sharing in the Sharing
section of System Preferences.
AFP URLs for AppleTalk servers took the form: afp:/at/<AppleTalk name>:<AppleTalk zone>. For networks
without AppleTalk zones, an asterisk (*) would be substituted for the zone name.
Third-party implementations
Third party server implementations of AFP are available from a number of companies.
• An open source AFP server called Netatalk (AFP 3.3) is available for Unix-like operating systems.
• Novell Open Enterprise Server supports AFP.
• Microsoft includes AFP 2.2 server support as an option in some versions of Windows (NT, 2000 & 2003).
Windows NT Server (3 and 4) only supported AppleTalk, 2000 added AppleShare over IP; Services for
Macintosh (SFM), was removed from Windows Server 2008 onwards.
• Novell's NetWare supports AFP.
• HELIOS UB+
[6]
supports AFP on a whole array of different Unix based platforms.
• The open source Filesystem in Userspace (FUSE
[7]
) and command-line client implementation afpfs-ng
[8]
for
Linux and Unix-like operating systems
• ExtremeZ-IP (AFP 3.3) and MacServerIP
[9]
for Windows offer AFP 3.x support.
• A few NAS solutions support AFP mostly by means of Netatalk: LaCie EtherNet Disk & 12big (AFP 3.3)
[10]
,
NETGEAR's ReadyNAS
[11]
(AFP 3.2
[12]
), QNAP
[13]
(AFP 3.x), Synology's Disk Stations
[14]
(AFP 3.1),
Thecus
[15]
(AFP 3.x), Adaptec's Snap Server
[16]
(AFP 3.1), Exanet's ExaStore (AFP 3.1), Iomega's Home Media
Network Hard Drive
[17]
, and Apple's Time Capsule (AFP 3.2)
[18]
being commercial examples and FreeNAS
(which uses Netatalk) being a free software example.
• Jaffer
[19]
is a Java implementation of Appletalk File Protocol v3.1.
• Xinet
[20]
has a product, ka-share, that has been a main stay on Solaris (on Sparc only) and Irix platforms for the
last decade.
• Columbia AppleTalk Protocol (CAP) was an open source implementation of AFP and AppleTalk from Columbia
University that has been discontinued and has fallen out of use.
Apple Filing Protocol
42
References
[1] "AppleShare & AppleShare IP File Sharing: Chart of All Limitations" (http:// docs. info.apple. com/ article. html?artnum=15460). .
Retrieved 2011-07-23.
[2] "Mac OS 8, 9: Mac OS Extended Format - Volume and File Limits" (http:/ /docs. info.apple. com/ article. html?artnum=24601). . Retrieved
2011-07-23.
[3] "Mac OS X: Mac OS Extended Format - Volume and File Limits" (http:/ /docs. info. apple. com/ article. html?artnum=25557). . Retrieved
2011-07-23.
[4] "Mac OS X Server 10.2: Tested and theoretical maximums (limits)" (http:/ / docs. info. apple. com/ article.html?artnum=107323). . Retrieved
2011-07-23.
[5] "Mac OS X Server 10.3: Tested and theoretical maximums (limits)" (http:/ / docs. info. apple. com/ article.html?artnum=107684). . Retrieved
2011-07-23.
[6] http:/ / www.helios. de
[7] http:/ / fuse. sourceforge.net
[8] http:/ / sourceforge.net/ projects/ afpfs-ng
[9] http:// www.cyansoftware.com/ MacServerIP.htm
[10] http:// www. lacie. com/ us/ products/ range. htm?id=10007
[11] http:/ / www. netgear.com
[12] http:/ / www. readynas. com/ ?p=4662
[13] http:// qnap. com/ Products. asp
[14] http:// www. synology. com/
[15] http:/ / www. thecus. com/ products_index. php?set_language=english
[16] http:/ / www. snapserver. com/
[17] http:/ / go. iomega. com/ en-us/ products/ network-storage-desktop/home-network-hard-drives/home-media/
[18] http:// www. apple. com/ timecapsule/
[19] http:// giantlaser. com/ jaffer/
[20] http:/ / www. xinet. com/
• File Services Manual for Mac OS X Server 10.4 (http:// manuals. info.apple. com/ en/ File_Services_v10. 4.pdf)
• Apple Filing Protocol Programming Guide (http:// developer.apple.com/ mac/ library/documentation/
Networking/ Conceptual/ AFP/ Introduction/Introduction.html)
• Apple Filing Protocol Reference (http:/ / developer.apple. com/ mac/ library/documentation/ Networking/
Reference/ AFP_Reference/ Reference/reference.html)
• Mac OS X: Some Mac OS X Applications and Services Require AFP 3.0 or Later (http:/ / docs. info.apple.com/
article. html?artnum=107326)
• Inside AppleTalk - original specification for the AppleTalk protocol stack including AFP (http:// developer.
apple. com/ MacOs/ opentransport/ docs/ dev/ Inside_AppleTalk. pdf)
• Glossary of Networking Terms (http:// www. accsystems. com/ glossary. htm)
• NewsFactor Network article, A (http:// www.newsfactor.com/ story.
xhtml?story_title=How_Secure_Is_OS_X_& story_id=23467)
• Macintosh: File System Specifications and Terms (http:/ / docs. info. apple.com/ article.html?artnum=8647)
• Apple Technical Note TN1150 on the HFS Plus Volume Format (http:// developer.apple.com/ technotes/ tn/
tn1150. html)
Apple Sleep Proxy Service (Bonjour Sleep Proxy)
43
Apple Sleep Proxy Service (Bonjour Sleep Proxy)
The Apple Sleep Proxy Service is an open source
[1]
component of zero configuration networking, designed to assist
in reducing power consumption of networked electronic devices.
[2]
A device acting as a sleep proxy server will
respond to Multicast DNS queries for another, compatible device which has gone into low power mode. The
low-power-mode device remains asleep while the Sleep Proxy Server responds to any Multicast DNS queries.
[2]
When the Sleep Proxy Server sees a query which requires the low-power-mode device to wake up, the Sleep Proxy
Server sends a special wake-up-packet ("magic packet") to the low-power-mode device. Finally, communication
parameters are updated via Multicast DNS and normal communications proceed.
[2]
Apple Inc. describes the service as Bonjour Sleep Proxy in their support documents.
[3]
The service supports the
Wake on Demand feature, first offered in Mac OS X Snow Leopard.
[4]
Details
Address resolution protocol
The sleep proxy service responds to address resolution protocol requests on behalf of the low-power-mode device:
"When a Sleep Proxy sees an IPv4 ARP or IPv6 ND Request for one of the sleeping device's addresses, it answers on
behalf of the sleeping device, without waking it up, giving its own MAC address as the current (temporary) owner of
that address."
[2]
This may appear confusing to network administrators who are not expecting the behaviour of changing MAC
addresses.
Wireless magic packet
In case the low-power-mode device is communicating via Wi-Fi, the wake-up-packet is sent via Wireless
Multimedia Extensions (WMM).
[4]
. This was not possible in previous implementations of Wake on LAN (WoL).
The wireless hardware must be updated enough to include WMM support.
[4]
. Apple provides instructions for
checking compatibility with this feature for Macintosh computers.
[3]
Supported services and examples
The sleep proxy service is able to advertise any Bonjour-supported services, while the host computer sleeps. Some
examples of supported services are:
[3]
• File sharing: a host supporting the sleep proxy service, which offers file services, may go to sleep as needed.
When someone needs to access shared files, the host will wake up automatically.
• iTunes library sharing: the computer hosting the iTunes library may go to sleep, and will automatically wake
when someone wishes to browse the iTunes library from a different PC.
• Printer sharing: a printer may be connected and shared from a computer supporting sleep proxy service. The
computer can go to sleep when not in use, but will wake when needed to service a print job being sent from a
different computer.
• SSH: a computer offering SSH access may go to sleep, and awaken via the sleep proxy service when an SSH
login is initiated. On Darwin or Macintosh computers, the host can be put back to sleep using the command line
instruction: pmset sleepnow.
• Desktop sharing: similar to above examples.
Apple Sleep Proxy Service (Bonjour Sleep Proxy)
44
Implementations
Implementations on a local area network can be seen with Bonjour Browser.
This list is incomplete.
• Apple AirPort Express with firmware version 7.4.1 or 7.4.2
[3]
• Apple AirPort Extreme with firmware version 7.4.1 or 7.4.2
[3]
• Legacy AppleTVs (confirmed for version 3.0.2)
• Apple Time Capsule
[3]
• Computers running Mac OS X Snow Leopard act as a Bonjour sleep proxy server when Internet sharing is
enabled.
[5]
References
[1] Note: see mDNSResponder source code at www.macosforge.org, which includes a full implementation of the DNS-SD/mDNS Sleep Proxy
Service, available under the Apache 2.0 Open Source license. (http:// tools. ietf.org/ html/ draft-cheshire-dnsext-multicastdns)
[2] Marc Krochmal (2010-03-23). "Internet Draft: draft-cheshire-dnsext-multicastdns-11" (http:// tools. ietf. org/ html/
draft-cheshire-dnsext-multicastdns). Apple Inc.. . Retrieved 2010-05-30.
[3] "Mac OS X v10.6: About Wake on Demand (Apple Article HT3774)" (http:// support.apple. com/ kb/ HT3774) (in several languages).
Apple. 2009-08-27. . Retrieved 2009-09-15. "Setting up Wake on Demand", "Setting up a Bonjour Sleep Proxy"
[4] Glenn Fleishman (2009-08-28). "Wake on Demand lets Snow Leopard sleep with one eye open" (http:/ / www. macworld.com/ article/
142468/2009/ 08/ wake_on_demand. html). Macworld.com. . Retrieved 2009-09-15. "How it works", "Energy Saver preference pane"
[5] Apple Inc. Worldwide Developers Conference (WWDC) 2009, Session 508, Zero Configuration Networking Using Bonjour (http:/ /
devimages.apple. com/ products/ video/ wwdc09/ wwdc09iphonesessionlist. pdf)
External links
• US 7107442 (http:// v3. espacenet. com/ textdoc?DB=EPODOC& IDX=US7107442), see Mosaics tab for figures
• US 7330986 (http:// v3. espacenet. com/ textdoc?DB=EPODOC& IDX=US7330986), see Mosaics tab for figures
• US 7447757 (http:// v3. espacenet. com/ textdoc?DB=EPODOC& IDX=US7447757), see Mosaics tab for figures
• Fscklog.com: Snow Leopard und 2009er Macs: Wake on WLAN (German, Deutsch) (http:// www. fscklog. com/
2009/ 08/ snow-leopard-und-2009er-macs-wake-on-wlan.html)
• Macrumors.com: A Closer Look at Snow Leopard's Wake on Demand Feature (http:/ / www. macrumors.com/
2009/ 08/ 28/ a-closer-look-at-snow-leopards-wake-on-demand-feature/)
• opensource.apple.com: Open-source mDNS implementation including the sleep proxy service (http:/ / www.
opensource. apple.com/ source/ mDNSResponder/ mDNSResponder-212. 1/ mDNSMacOSX/ )
• UC San Diego: SleepServer: A Software-Only Approach for Reducing the Energy Consumption of PCs within
Enterprise Environments (http:// mesl. ucsd.edu/yuvraj/ research/documents/ Agarwal-Usenix10-SleepServers.
pdf) 22 June 2010. Usenix 2010.
• Microsoft Research: Sleepless In Seattle No Longer (http:/ / research. microsoft.com/ apps/ pubs/ default.
aspx?id=131390) 22 June 2010. Usenix 2010.
AppleTalk
45
AppleTalk
AppleTalk is a proprietary suite of protocols developed by Apple Inc. for networking computers. It was included in
the original Macintosh released in 1984, but is now unsupported as of the release of Mac OS X v10.6 in 2009
[1]
in
favor of TCP/IP networking. AppleTalk's Datagram Delivery Protocol corresponds closely to the Network layer of
the Open Systems Interconnection (OSI) communication model.
Design
The AppleTalk design rigorously followed the OSI model of protocol layering. Unlike most of the early LAN
systems, AppleTalk was not built using the archetypal Xerox XNS system. The intended target was not Ethernet, and
it did not have 48-bit addresses to route. Nevertheless, many portions of the AppleTalk system have direct analogs in
XNS.
One key differentiation for AppleTalk was it contained three protocols aimed at making the system completely
self-configuring. The AppleTalk address resolution protocol (AARP) allowed AppleTalk hosts to automatically
generate their own network addresses, and the Name Binding Protocol (NBP) was a dynamic system for mapping
network addresses to user-readable names. Although systems similar to AARP existed in other systems, Banyan
VINES for instance, nothing like NBP has existed until recently.
Both AARP and NBP had defined ways to allow "controller" devices to override the default mechanisms. The
concept was to allow routers to provide the information or "hardwire" the system to known addresses and names. On
larger networks where AARP could cause problems as new nodes searched for free addresses, the addition of a
router could reduce "chattiness." Together AARP and NBP made AppleTalk an easy-to-use networking system. New
machines were added to the network by plugging them and optionally giving them a name. The NBP lists were
examined and displayed by a program known as the Chooser which would display a list of machines on the local
network, divided into classes such as file-servers and printers.
History
AppleTalk was intended to be part of a project known as Macintosh Office, which would consist of a host machine
providing routing, printer sharing and file sharing. However this project was canceled in 1986. Despite this, the
LaserWriter included built-in AppleTalk. Apple later released an AppleTalk server suite known as AppleShare, and
included basic AppleTalk features as the default network protocol in later releases of "classic" Mac OS (System).
With the introduction of Mac OS X, AppleTalk was largely displaced. Internet-based protocols were used as the
defaults, although AppleTalk was supported for backwards compatibility at first. Mac OS X v10.5 was the last Apple
OS to support AppleTalk.
[1]
Addressing
An AppleTalk address was a 4-byte quantity. This consisted of a two-byte network number, a one-byte node number,
and a one-byte socket number. Of these, only the network number required any configuration, being obtained from a
router. Each node dynamically chose its own node number, according to a protocol (originally the LocalTalk Link
Access Protocol LLAP and later the AppleTalk Address Resolution Protocol, AARP)
[2]
which handled contention
between different nodes accidentally choosing the same number. For socket numbers, a few well-known numbers
were reserved for special purposes specific to the AppleTalk protocol itself. Apart from these, all application-level
protocols were expected to use dynamically-assigned socket numbers at both the client and server end.
Because of this dynamism, users could not be expected to access services by specifying their address. Instead, all
services had names which, being chosen by humans, could be expected to be meaningful to users, and also could be
AppleTalk
46
sufficiently long enough to minimize the chance of conflicts.
Note that, because a name translated to an address, which included a socket number as well as a node number, a
name in AppleTalk mapped directly to a service being provided by a machine, which was entirely separate from the
name of the machine itself. Thus, services could be moved to a different machine and, so long as they kept the same
service name, there was no need for users to do anything different to continue accessing the service. And the same
machine could host any number of instances of services of the same type, without any network connection conflicts.
Contrast this with A records in the DNS, where a name translates only to a machine address, not including the port
number that might be providing a service. Thus, if people are accustomed to using a particular machine name to
access a particular service, their access will break when the service is moved to a different machine. This can be
mitigated somewhat by insistence on using CNAME records indicating service rather than actual machine names to
refer to the service, but there is no way of guaranteeing that users will follow such a convention. (Some newer
protocols, such as Kerberos and Active Directory use DNS SRV records to identify services by name, which is much
closer to the AppleTalk model.)
Protocols
AppleTalk Address Resolution Protocol
AARP resolves AppleTalk addresses to physical layer, usually MAC, addresses. It is functionally equivalent to ARP.
AARP is a fairly simple system. When powered on, an AppleTalk machine broadcasts an AARP probe packet asking
for a network address, intending to hear back from controllers such as routers. If no address is provided, one is
picked at random from the "base subnet", 0. It then broadcasts another packet saying "I am selecting this address",
and then waits to see if anyone else on the network complains. If another machine has that address, it will pick
another address, and keep trying until it finds a free one. On a network with many machines it may take several tries
before a free address is found, so for performance purposes the successful address is "written down" in NVRAM and
used as the default address in the future. This means that in most real-world setups where machines are added a few
at a time, only one or two tries are needed before the address effectively become constant.
AppleTalk Data Stream Protocol
This was a comparatively late addition to the AppleTalk protocol suite, done when it became clear that a TCP-style
reliable connection-oriented transport was needed. Significant differences from TCP were:
• a connection attempt could be rejected
• there were no "half-open" connections; once one end initiated a tear-down of the connection, the whole
connection would be closed (i.e., ADSP is full-duplex, not dual simplex).
Apple Filing Protocol
The Apple Filing Protocol (AFP), formerly AppleTalk Filing Protocol, is the protocol for communicating with
AppleShare file servers. Built on top of AppleTalk Session Protocol (for legacy AFP over DDP) or the Data Stream
Interface (for AFP over TCP), it provides services for authenticating users (extensible to different authentication
methods including two-way random-number exchange) and for performing operations specific to the Macintosh HFS
filesystem. AFP is still in use in Mac OS X, even though most other AppleTalk protocols have been deprecated.
AppleTalk
47
AppleTalk Session Protocol
ASP was an intermediate protocol, built on top of ATP, which in turn was the foundation of AFP. It provided basic
services for requesting responses to arbitrary commands and performing out-of-band status queries. It also allowed
the server to send asynchronous attention messages to the client.
AppleTalk Transaction Protocol
ATP was the original reliable transport-level protocol for AppleTalk, built on top of DDP. At the time it was being
developed, a full, reliable connection-oriented protocol like TCP was considered to be too expensive to implement
for most of the intended uses of AppleTalk. Thus, ATP was a simple request/response exchange, with no need to set
up or tear down connections.
An ATP request packet could be answered by up to eight response packets. The requestor then sent an
acknowledgement packet containing a bit mask indicating which of the response packets it received, so the responder
could retransmit the remainder.
ATP could operate in either "at-least-once" mode or "exactly-once" mode. Exactly-once mode was essential for
operations which were not idempotent; in this mode, the responder kept a copy of the response buffers in memory
until successful receipt of a release packet from the requestor, or until a timeout elapsed. This way, it could respond
to duplicate requests with the same transaction ID by resending the same response data, without performing the
actual operation again.**
Datagram Delivery Protocol
DDP was the lowest-level data-link-independent transport protocol. It provided a datagram service with no
guarantees of delivery. All application-level protocols, including the infrastructure protocols NBP, RTMP and ZIP,
were built on top of DDP.
Name Binding Protocol
NBP was a dynamic, distributed system for managing AppleTalk names. When a service started up on a machine, it
registered a name for itself on that machine, as chosen by a human administrator. At this point, NBP provided a
system for checking that no other machine had already registered the same name. Then later, when a client wanted to
access that service, it used NBP to query machines to find that service. NBP provided browseability ("what are the
names of all the services available?") as well as the ability to find a service with a particular name.
Names were human readable, containing spaces, upper and lower case letters, and including support for searching.
Printer Access Protocol
PAP was the standard way of communicating with PostScript printers. It was built on top of ATP. When a PAP
connection was opened, each end sent the other an ATP request which basically meant "send me more data". The
client's response to the server was to send a block of PostScript code, while the server could respond with any
diagnostic messages that might be generated as a result, after which another "send-more-data" request was sent. This
use of ATP provided automatic flow control; each end could only send data to the other end if there was an
outstanding ATP request to respond to.
PAP also provided for out-of-band status queries, handled by separate ATP transactions. Even while it was busy
servicing a print job from one client, a PAP server could continue to respond to status requests from any number of
other clients. This allowed other Macintoshes on the LAN that were waiting to print to display status messages
indicating that the printer was busy, and what the job was that it was busy with.
AppleTalk
48
Routing Table Maintenance Protocol
RTMP was the protocol by which routers kept each other informed about the topology of the network. This was the
only part of AppleTalk that required periodic unsolicited broadcasts: every 10 seconds, each router had to send out a
list of all the network numbers it knew about and how far away it thought they were.
Zone Information Protocol
ZIP was the protocol by which AppleTalk network numbers were associated with zone names. A zone was a
subdivision of the network that made sense to humans (for example, "Accounting Department"); but while a network
number had to be assigned to a topologically-contiguous section of the network, a zone could include several
different discontiguous portions of the network.
Physical implementation
The initial default hardware implementation for AppleTalk was a high-speed serial protocol known as LocalTalk that
used the Macintosh's built-in RS-422 ports at 230.4 kbit/s. LocalTalk used a splitter box in the RS-422 port to
provide an upstream and downstream cable from a single port. The topology was a bus: cables were daisy-chained
from each connected machine to the next, up to the maximum of 32 permitted on any LocalTalk segment. The
system was slow by today's standards, but at the time the additional cost and complexity of networking on PC
machines was such that it was common that Macs were the only networked personal computers in an office. Other
larger computers, such as UNIX or VAX workstations, would commonly be networked via Ethernet.
Other physical implementations were also available. One common replacement for LocalTalk was PhoneNet, a 3rd
party solution (from a company called Farallon, now called Netopia) that also used the RS-422 port and was
indistinguishable from LocalTalk as far as Apple's LocalTalk port drivers were concerned, but ran over the two
unused wires in standard four-wire phone cabling. PhoneNet was considerably less expensive to install and maintain.
Ethernet and Token Ring was also supported, known as EtherTalk and TokenTalk respectively. EtherTalk in
particular gradually became the dominant implementation method for AppleTalk as Ethernet became generally
popular in the PC industry throughout the 1990s. Besides AppleTalk and TCP/IP, any Ethernet network could also
simultaneously carry other protocols such as DECnet, NetBEUI, and IPX.
Networking model
AppleTalk
49
OSI Model Corresponding AppleTalk layers
Application Apple Filing Protocol (AFP)
Presentation Apple Filing Protocol (AFP)
Session Zone Information Protocol (ZIP)
AppleTalk Session Protocol (ASP)
AppleTalk Data Stream Protocol (ADSP)
Transport AppleTalk Transaction Protocol (ATP)
AppleTalk Echo Protocol (AEP)
Name Binding Protocol (NBP)
Routing Table Maintenance Protocol (RTMP)
Network Datagram Delivery Protocol (DDP)
Data link EtherTalk Link Access Protocol (ELAP)
LocalTalk Link Access Protocol (LLAP)
TokenTalk Link Access Protocol (TLAP)
Fiber Distributed Data Interface (FDDI)
Physical LocalTalk driver
Ethernet driver
Token Ring driver
FDDI driver
Versions
AppleTalk version Apple Filing Protocol Corresponds to Notes
56 System 7.0
57.0.4 System 7.12
58.1.1 System 7.1.2
58.1.3 System 7.5
60.3 Mac OS 7.6.1 Open Transport 1.3
60.0a6 Mac OS 8.6 Open Transport 2.0.3
3.0 Mac OS X 10.0.3
3.1 Mac OS X v10.3
3.2 Mac OS X v10.4
Cross-platform solutions
When AppleTalk was first introduced the dominant office computing platform was the PC compatible running
MS-DOS. The "TOPS Teleconnector"
[3]
system enabled MS-DOS PCs to communicate over AppleTalk network
hardware; it comprised an AppleTalk interface card for the PC and a suite of networking software allowing such
functions as file, drive and printer sharing. As well as allowing the construction of a PC-only AppleTalk network, it
allowed communication between PCs and Macs with TOPS software installed. (Macs without TOPS installed could
use the same network but only to communicate with other Apple machines.) The Mac TOPS software did not match
the quality of Apple's own either in ease of use or in robustness and freedom from crashes, but the DOS software
was relatively simple to use in DOS terms, and was robust.
The BSD and Linux operating systems support AppleTalk through an open source project called Netatalk, which
implements the complete protocol suite and allows them to both act as native file or print servers for Macintosh
AppleTalk
50
computers, and print to LocalTalk printers over the network.
The Windows Server operating systems supported AppleTalk starting with Windows NT and ending after Windows
Server 2003. Miramar included AppleTalk in its PC MacLAN product which was discontinued by CA in 2007.
Group Logic continues to bundle its AppleTalk protocol with its ExtremeZ-IP server software for
Macintosh-Windows integration which supports Windows 2008 Server and Windows Vista as well prior versions.
HELIOS Software GmbH
[4]
offers a proprietary implementation of the AppleTalk protocol stack, as part of their
HELIOS UB2 server. This is essentially a File and Print Server suite that runs on a whole range of different
platforms.
In addition, Columbia University released the Columbia AppleTalk Package (CAP) which implemented the protocol
suite for various Unix flavors including Ultrix, SunOS, *BSD and IRIX. This package is no longer actively
maintained.
Ports Used
Sample
[5]
iptables rules to allow Netatalk access
# Netatalk needs a flock of ports.
# This is the one-line-per-port example, and should work with
# older versions of iptables.
-A UVAfw -s 128.143.0.0/16 -p tcp --dport 427 -j ACCEPT
-A UVAfw -s 128.143.0.0/16 -p udp --dport 427 -j ACCEPT
-A UVAfw -s 128.143.0.0/16 -p tcp --dport 548 -j ACCEPT
-A UVAfw -s 128.143.0.0/16 -p tcp --dport 201 -j ACCEPT
-A UVAfw -s 128.143.0.0/16 -p tcp --dport 202 -j ACCEPT
-A UVAfw -s 128.143.0.0/16 -p tcp --dport 204 -j ACCEPT
-A UVAfw -s 128.143.0.0/16 -p tcp --dport 206 -j ACCEPT
#-A UVAfw -s 137.54.0.0/16 -p tcp --dport 427 -j ACCEPT
#-A UVAfw -s 137.54.0.0/16 -p udp --dport 427 -j ACCEPT
#-A UVAfw -s 137.54.0.0/16 -p tcp --dport 548 -j ACCEPT
#-A UVAfw -s 137.54.0.0/16 -p tcp --dport 201 -j ACCEPT
#-A UVAfw -s 137.54.0.0/16 -p tcp --dport 202 -j ACCEPT
#-A UVAfw -s 137.54.0.0/16 -p tcp --dport 204 -j ACCEPT
#-A UVAfw -s 137.54.0.0/16 -p tcp --dport 206 -j ACCEPT
# Multiport variant of the netatalk ports above.
# I'm not quite sure why 427 is missing.
-A UVAfw -m multiport -s 128.143.0.0/16 -p tcp --dports 548,201,202,204,206 -j ACCEPT
AppleTalk
51
References
[1] "Mac OS X v10.6: Mac 101 – Printing" (http:/ /support. apple. com/kb/ HT3771). Retrieved on 2009-09-02.
[2] Sidhu, Gursharan; Rick Andrews and Alan Oppenheimer (1990). Inside AppleTalk, Second Edition. Reading, Mass.: Addison Wesley.
pp. 1–1ff. ISBN 0-201-55021-0.
[3] TOPS Teleconnector (http:/ / www. cbronline.com/ news/ tops_unveils_interface_to_link_ms_dos_micros_to_appletalk_networks_1)
MS-DOS networking system over AppleTalk
[4] http:// www.helios. com
[5] http:/ / defindit.com/ readme_files/ iptables. html
a
External links
• AppleTalk – Directory & Informational Resource (http:// softtechinfo.com/ network/ apt. html)
• System 7.x.x: AppleTalk and ADSP Versions (http:/ / docs. info.apple. com/ article.html?artnum=10151&
coll=ap)
Appliance Link Protocol
The Appliance Link Protocol (ALP) is used by Sun Ray ultra thin clients to talk to Sun Ray servers. The closed
source implementation of the Sun Ray Server Software (srss) is developed and distributed by Sun Microsystems. The
software bundle is often referred to as SRS (Sun Ray Software).
ALP consists of several components:
Session Protocol (ALSP)
Client -> Server TCP port 7009
ASCII/text based
Render Protocol (ALRP)
GFX: Server UDP port g <-> Client UDP port c
AUDIO: Server UDP port a <-> Client UDP port c
random ports (g, a, c); binary protocol
The client tells the server via the Session Protocol which UDP port (c) to use.
A different set of packet sequence numbers are used for the GFX and AUDIO commands.
Device Protocol (ALDP)
Client -> Server TCP port 7011
The protocol can be seen with a network scanner, if the ray server and client are communicating unencrypted (man
utpolicy).
Look at SoftRay for an open (work in progress) implementation in Java. Details about ALP can be found there as
well.
Sun has released a (closed source) client in SRS5 (Sun Ray Software 5: srss-4.2 / srwc-2.2). Suns client is limited to
connect from Windows and Mac OS X (can work from Linux via Wine) to a SRS5 server only.
ARCNET
52
ARCNET
ARCNET (also CamelCased as ARCnet, an acronym from Attached Resource Computer NETwork) is a local area
network (LAN) protocol, similar in purpose to Ethernet or Token Ring. ARCNET was the first widely available
networking system for microcomputers and became popular in the 1980s for office automation tasks. It has since
gained a following in the embedded systems market, where certain features of the protocol are especially useful.
History
ARCNET was developed by principal development engineer John Murphy at Datapoint Corporation in 1976 and
announced in 1977.
[1]
It was the first loosely-coupled LAN-based clustering solution, making no assumptions about
the type of computers that would be connected. This was in contrast to contemporary larger and more expensive
computer systems such as DECnet or SNA, where a homogeneous group of similar or proprietary computers were
connected as a cluster.
The token-passing bus protocol of that I/O device-sharing network was subsequently applied to allowing processing
nodes to communicate with each other for file-serving and computing scalability purposes. An application could be
developed in DATABUS, Datapoint's proprietary COBOL-like language and deployed on a single computer with
dumb terminals. When the number of users outgrew the capacity of the original computer, additional 'compute'
resource computers could be attached via ARCNET, running the same applications and accessing the same data. If
more storage was needed, additional disk resource computers could also be attached. This incremental approach
broke new ground and by the end of the 1970s (before the first cassette-based IBM PC was announced in 1981) over
ten thousand ARCnet LAN installations were in commercial use around the world, and Datapoint had become a
Fortune 500 company. As microcomputers took over the industry, well-proven and reliable ARCNET was also
offered as an inexpensive LAN for these machines.
ARCNET remained proprietary until the early-to-mid 1980s. This did not cause concern at the time, as most network
architectures were proprietary. The move to non-proprietary, open systems began as a response to the dominance of
International Business Machines (IBM) and its Systems Network Architecture (SNA). In 1979, the Open Systems
Interconnection Reference Model (OSI Model) was published. Then, in 1980, Digital, Intel and Xerox (the DIX
consortium) published an open standard for Ethernet that was soon adopted as the basis of standardization by the
IEEE and the ISO. IBM responded by proposing Token Ring as an alternative to Ethernet but kept such tight control
over standardization that competitors were wary of using it. ARCNET was less expensive than either, more reliable,
more flexible, and by the late 1980s it had a market share about equal to that of Ethernet.
When Ethernet moved from co-axial cable to twisted pair and an "interconnected stars" cabling topology based on
active hubs, it became much more attractive. Easier cabling, combined with the greater raw speed of Ethernet (10
Mbit/s, as compared with 2.5 Mbit/s for ARCnet) helped to increase Ethernet demand, and as more companies
entered the market the price of Ethernet started to fall—and ARCNET (and Token Ring) volumes tapered off.
In response to greater bandwidth needs, and the challenge of Ethernet, a new standard called ARCnet Plus was
developed by Datapoint, and introduced in 1992. ARCnet Plus ran at 20 Mbit/s, and was backward compatible with
original ARCnet equipment. However, by the time ARCnet Plus products were ready for the market, Ethernet had
captured the majority of the network market, and there was little incentive for users to move back to ARCnet. As a
result, very few ARCnet Plus products were ever produced. Those that were built, mainly by Datapoint, were
expensive, and hard to find.
ARCNET was eventually standardized as ANSI ARCNET 878.1. It appears this was when the name changed from
ARCnet to ARCNET. Other companies entered the market, notably Standard Microsystems who produced systems
based on a single VLSI chip, originally developed as custom LSI for Datapoint, but later made available by Standard
Microsystems to other customers. Datapoint eventually found itself in financial trouble and eventually moved into
ARCNET
53
video conferencing and (later) custom programming in the embedded market.
Even though ARCNET is not used anymore, there are still a few references left in common. The American movie
Hackers (1995) for example still uses some old computer protocols, including ARCNET. When you fast forward to
00:48:20 you can see that ARCNET is being used.
Description
Original ARCNET used RG-62/U coax cable of 93 Ω impedance and either passive or active hubs in a star-wired bus
topology. At the time of its greatest popularity ARCNET enjoyed two major advantages over Ethernet. One was the
star-wired bus; this was much easier to build and expand (and was more readily maintainable) than the clumsy linear
bus Ethernet of the time. Another was cable distance – ARCNET coax cable runs could extend 610 m (2000ft)
between active hubs or between an active hub and an end node, while the RG-58 (50Ω) ‘thin’ Ethernet most widely
used at that time was limited to a maximum run of 183 m (600ft) from end to end. Of course, ARCNET required
either an active or passive hub between nodes if there were more than two nodes in the network, while thin Ethernet
allowed nodes to be spaced anywhere along the linear coax cable, but the ARCNET passive hubs were very
inexpensive. Passive hubs limited the distance between node and active hub to 30 m (100ft). More importantly, the
"interconnected stars" cabling topology made it easy to add and remove nodes without taking the whole network
down, and much easier to diagnose and isolate failures within a complex LAN.
To mediate access to the bus, ARCNET, like Token Ring, uses a token passing scheme, rather than the carrier sense
multiple access approach of Ethernet. When peers are inactive, a single "token" message is passed around the
network from machine to machine, and no peer is allowed to use the bus unless it has the token. If a particular peer
wishes to send a message, it waits to receive the token, sends its message, and then passes the token on to the next
station. Because ARCNET is implemented as a distributed star, the token cannot be passed machine to machine
around a ring. Instead, each node is assigned an 8 bit address (usually via DIP switches), and when a new node joins
the network a "reconfig" occurs, wherein each node learns the address of the node immediately above it. The token is
then passed directly from one node to the next.
Historically, each approach had its advantages: ARCNET added a small delay on an inactive network as a sending
station waited to receive the token, but Ethernet's performance degraded drastically if too many peers attempted to
broadcast at the same time, due to the time required for the slower processors of the day to process and recover from
collisions. ARCNET had slightly lower best-case performance (viewed by a single stream), but was much more
predictable. ARCNET also has the advantage that it achieved its best aggregate performance under the highest
loading, approaching asymptotically its maximum throughput. While the best case performance was less than
Ethernet, the general case was equivalent and the worst case was dramatically better. An Ethernet network could
collapse when too busy due to excessive collisions. An ARCNET would keep on going at normal (or even better)
throughput. Throughput on a multi-node collision-based Ethernet was limited to between 40% and 60% of
bandwidth usage (depending on source). Although 2.5 Mbit/s ARCNET could at one time outperform a 10 Mbit/s
Ethernet in a busy office on slow processors, ARCNET ultimately gave way to Ethernet as improved processor
speeds reduced the impact of collisions on overall throughput, and Ethernet costs dropped.
In the early 1980s ARCNET was much cheaper than Ethernet, in particular for PCs. For example in 1985 SMC sold
ARCNET cards for around 300 USD whilst an Ungermann-Bass Ethernet card plus transceiver could cost 500 USD.
Another significant difference is that ARCNET provides the sender with a concrete acknowledgment (or not) of
successful delivery at the receiving end before the token passes on to the next node, permitting much faster fault
recovery within the higher level protocols (rather than having to wait for a timeout on the expected replies). ARCnet
also doesn't waste network time transmitting to a node not ready to receive the message, since an initial inquiry
(done at hardware level) establishes that the recipient is able and ready to receive the larger message before it is sent
across the bus.
ARCNET
54
One further advantage that ARCNET enjoyed over collision-based Ethernet is that it guarantees equitable access to
the bus by everyone on the network. Although it might take a short time to get the token depending on the number of
nodes and the size of the messages currently being sent about, you will always receive it within a predictable
maximum time; thus it is deterministic. This made ARCNET an ideal real-time networking system, which explains
its use in the embedded systems and process control markets. Token Ring has similar qualities, but is much more
expensive to implement than ARCNET.
In spite of ARCNET's deterministic operation and historic suitability for real-time environments such as process
control, the general availability of switched gigabit Ethernet and Quality of service capabilities in Ethernet switches
has all but eliminated ARCNET today.
At first the system was deployed using RG-62/U coax cable (commonly used in IBM mainframe environments to
connect 3270 terminals and controllers), but later added support for twisted-pair and fibre media. At ARCNET's
lower speeds (2.5 Mbit/s), Cat-3 cable is good enough to run ARCNET. Some ARCNET twisted-pair products
supported cable runs over 2000' on standard Cat-3 cable, far beyond anything Ethernet could do on any kind of
copper cable.
In the early 90s, Thomas-Conrad Corporation developed a 100 Mbit/s topology called TCNS based on the ARCNET
protocol, which also supported RG-62, twisted-pair, and fiber optic media. TCNS enjoyed some success until the
availability of lower-cost 100 Mbit/s Ethernet put an end to the general deployment of ARCNET.
References
[1] "History", ARCNET Trade Association (http:/ / www. arcnet.com/ abtarc.htm#history)
External links
• ARCNET Trade Association (http:// www. arcnet.com/ )
• History of Datapoint, including ARCnet / ARCnet Plus Development (http:/ / www.fundinguniverse.com/
company-histories/Datapoint-Corporation-Company-History.html)
Art-Net
55
Art-Net
Art-Net is a proprietary protocol for transmitting DMX512-A (with RDM) over UDP/IP. The protocol was
developed by Wayne Howell and his company, Artistic Licence (UK) Ltd.
Technical
Art-Net is a "broadcast" protocol in which messages are broadcast to all connected devices. Up to sixteen DMX512
universes can be accessed through one IP subnet.
By default, the protocol operates on the 2.0.0.0/8 network. This network address is problematic when used in LANs
having Internet gateways, because it falls within the range of IP addresses allocated for public networks.
[1]
Protocol
revision Q works around this problem by adding the 10.0.0.0/8 private network as an optional, secondary addressing
scheme.
See Also
• Architecture for Control Networks, a network protocol for theatrical control over UDP/IP
• Protocol for Stage Illumination (PSI), an open protocol for native communication over IP networks
External links
• Art-Net protocol specification
[2]
References
[1] "IANA IPv4 Address Space Registry" (http:/ / www. iana.org/ assignments/ ipv4-address-space/ ). .
[2] http:/ / www.artisticlicence. com/ WebSiteMaster/ User%20Guides/ art-net. pdf
ATA over Ethernet
56
ATA over Ethernet
ATA over Ethernet (AoE) is a network protocol developed by the Brantley Coile Company
[1]
, designed for simple,
high-performance access of SATA storage devices over Ethernet networks. It is used to build storage area networks
(SANs) with low-cost, standard technologies.
Operating system support
The following operating systems provide ATA over Ethernet (AoE) support:
OS Support Third-party drivers
Linux Native (2.6.11+)
Coraid
[2]
Windows Third-party
StarWind Software AoE Initiator
[3]
, WinAoE
[4]
, and WinVBlock
[5]
Mac OS X 10.4 and up Third-party
2DegreesFrost
[6]
Mac OS X 10.5 and 10.6 Third-party
Small Tree Communications
[7]
Solaris Third-party
Coraid
[8]
FreeBSD Third-party
Coraid
[9]
(outdated)
OpenBSD Native (4.5-current)
VMware Third-party
Coraid
[10]
Plan 9 from Bell Labs
[11] Native
Linux target support
Linux can function as an AoE target using one of these independently-developed implementations:
• vblade[12], a userspace daemon that is part of the aoetools package.
• kvblade[13], a Linux kernel module.
• ggaoed[14], a userspace daemon that takes advantage of Linux-specific performance features.
• qaoed[15], a multithreaded userspace daemon.
Hardware support
The Coraid
[16]
company offers an array of AoE SAN appliances under the EtherDrive brand, along with diskless
gateways that add network-attached storage functionality, using the NFS or SMB protocols, to one or more AoE
appliances.
In 2007 LayerWalker
[17]
announced the world's first single-chip AoE hardware solution called miniSAN
[18]
running
at both Fast and Gigabit Ethernet grades. The miniSAN product family offers standard AoE server functions plus
other management features that targets PC, consumer and SMB markets.
ATA over Ethernet
57
Protocol description
AoE runs on layer 2 Ethernet. AoE does not use internet protocol (IP), it cannot be accessed over the Internet or
other IP networks. In this regard it is more comparable to Fibre Channel over Ethernet than iSCSI.
This approach makes AoE more lightweight (with less load on the host), makes it easier to implement, provides a
layer of inherent security, and offers higher performance. The AoE specification is 12 pages
[1]
compared with
iSCSI's 257 pages.
[19]
ATA encapsulation
SATA (and older PATA) hard drives use the Advanced Technology Attachment (ATA) protocol to issue commands,
such as read, write, and status. AoE encapsulates those commands inside Ethernet frames and lets them travel over
an Ethernet network instead of a SATA or 40-pin ribbon cable. By using an AoE driver, the host operating system is
able to access a remote disk as if it were directly attached.
The encapsulation of ATA provided by AoE is simple and low-level, allowing the translation to happen either at
high performance or inside a small, embedded device, or both.
Routability
AoE runs directly on top of Ethernet, instead of an intermediate protocol such as TCP/IP. This reduces the
significant CPU overhead of TCP/IP. However, this means that routers cannot be used to route a packet across
disparate networks (such as the Internet). Instead, AoE packets can travel within a single local Ethernet storage area
network (eg, a set of computers connected to the same switch or in the same VLAN).
Security
The non-routability of AoE is the only security mechanism (ie, an intruder can't connect through a router—they must
physically plug into the local Ethernet switch where Ethernet frame tunneling over routed networks is not in use).
However, there are no AoE-specific mechanisms for password verification or encryption. From a home-use
perspective, this is fine. There are more serious concerns for a larger/enterprise environment. Certain AoE targets
such as Coraid Storage appliances, vblade and GGAOED, support access lists ("masks") allowing connections only
from specific MAC addresses (which can be spoofed).
Config string
The AoE protocol provides a mechanism for host-based cooperative locking. When more than one AoE initiator is
using an AoE target they must communicate to avoid interfering with one another as they read and write the config
string data on the shared AoE device. Without this cooperation file-system corruption and data loss is likely, unless
access is strictly read-only or a cluster file system is used).
One option provided by AoE is to use the storage device itself as the mechanism for determining specific host
access. This is the AoE "config string" feature
[20]
. The config string can record who is using the device, as well as
other information. If more than one host tries to set the config string simultaneously, only one succeeds. The other
host is informed of the conflict.
ATA over Ethernet
58
Related concepts
Although AoE is a simple network protocol, it opens up a complex realm of storage possibilities. To understand and
evaluate these storage scenarios, it helps to be familiar with a few concepts.
Storage area networks
A SAN allows the physical hard drive to be removed from the server that uses it, and placed on the network. A SAN
interface is similar in principle to non-networked interfaces such as SATA or SCSI. Most users will not use a SAN
interface directly. Instead, they will connect to a server that uses a SAN disk instead of a local disk. Direct
connection, however, can also be used.
When using a SAN network to access storage, there are several potential advantages over a local disk:
• It is easier to add storage capacity and the amount of storage is practically unlimited.
• It is easier to reallocate storage capacity.
• Data may be shared.
• Additionally, compared to other forms of networked storage, SANs are low-level and high performance
Utilizing storage area networks
To utilize a SAN disk, the host must format it with a filesystem. However, unlike a SATA or SCSI disk a SAN hard
drive may be accessed by multiple machines. This is a source of both danger and opportunity.
Traditional filesystems (such as FAT or ext3) are designed to be accessed by a single host, and will cause
unpredictable behavior if accessed by multiple machines. Such filesystems may be used, and AoE provides
mechanisms whereby an AoE target can be guarded against simultaneous access (see: Config String).
Shared disk file systems allow multiple machines to use a single hard disk safely by coordinating simultaneous
access to individual files. These filesystems can be used to allow multiple machines access to the same AoE target
without an intermediate server or filesystem (and at higher performance).
References
• S. Hopkins, B. Coile. ATA over Ethernet Specification
[21]
. Technical Report The Brantley Coile Company, Inc..
• Marshall Kirk McKusick, William N. Joy, Samuel J. Leffler and Robert S. Fabry. A Fast File System for UNIX
[22]
. Technical Report Computer Systems Research Group, Computer Science Division, Department of Electrical
Engineering and Computer Science, University of California, Berkeley, Berkeley, CA 94720.
[1] S. Hopkins, B. Coile (2009-02). "AoE (ATA over Ethernet)" (http:// support.coraid. com/ documents/ AoEr11.txt). . Retrieved 2011-01-23.
[2] Linux Support for EtherDrive (R) Storage (http:/ / support. coraid.com/ support/ linux/ )
[3] StarWind Free AoE Initiator for Microsoft Windows (http:/ / www. starwindsoftware.com/ aoe-ataoverethernet-initiator)
[4] WinAoE Driver (http:// winaoe. org/): A bootable, open source AoE initiator
[5] WinVBlock Driver (http:/ / www. boot-land.net/ forums/ index.php?showtopic=8168): A WinAoE fork capable of booting AoE targets,
file-backed disks and RAM disks created with MEMDISK and GRUB4DOS
[6] Home (http:/ / www. 2degreesfrost.com/ )
[7] Small Tree - The Mac Network Experts (http:// www. small-tree.com/ )
[8] Coraid Solaris Support (http:// support. coraid.com/ support/ solaris/ )
[9] FreeBSD Support (http:/ / support. coraid.com/ support/ freebsd/ )
[10] CORAID Support - EtherDrive ESX HBA Driver (http:/ / support.coraid.com/support/ esx/ )
[11] Plan 9 from Bell Labs (http:/ / cm. bell-labs. com/ plan9/ )
[12] http:// sourceforge.net/ projects/ aoetools/ vblade
[13] http:// sourceforge.net/ projects/ aoetools/ kvblade
[14] http:// code. google. com/ p/ ggaoed/
[15] http:/ / code. google. com/ p/ qaoed/
[16] CORAID EtherDrive: Ethernet SAN for Virtualization, Cloud, and Enterprise Storage (http:/ /www. coraid.com/ )
[17] LayerWalker Technology, Inc. - AoE Experts (http:// www. layerwalker.com/ )
[18] http:// www. layerwalker.com/ download/ miniSAN-brief-1.0.pdf
ATA over Ethernet
59
[19] http:/ / www. ietf.org/ rfc/rfc3720.txt
[20] Quanstrom, Erik. "aoecfg(8) - Linux man page" (http:/ /linux.die. net/ man/ 8/ aoecfg). die.net. . Retrieved 5 July 2011.
[21] http:/ / support. coraid.com/ documents/ AoEr11.txt
[22] http:/ / www. cs. berkeley.edu/ ~brewer/cs262/ FFS. pdf
External links
• Articles:
• ATA Over Ethernet: Putting Hard Drives on the LAN (http:// www. linuxjournal. com/ article/8149) —
Linux Journal (28 April 2005)
• ATA-over-Ethernet enables low-cost Linux-oriented SAN (http:/ / linuxdevices. com/ news/ NS3189760067.
html) — LinuxDevices.com (23 June 2004)
• The ATA over Ethernet (AoE) Protocol (http:// www. linux-mag.com/ id/ 2028/ ) — Linux Magazine (June
15, 2005)
• The ATA over Ethernet Protocol Official Document from Coraid (http:/ / support.coraid. com/ pdfs/
documentation/ AoEDescription.pdf) Coraid.com (01 June 2009)
• Protocol:
• AoE protocol specification (http:// support.coraid.com/ documents/ AoEr11.pdf) (PDF file)
• AoE protocol specification (http:/ / support.coraid.com/ documents/ AoEr11.txt)
• HowTos:
• Using ATA Over Ethernet On Debian Etch (http:/ /www. howtoforge.com/ ata_over_ethernet_debian_etch)
ATM adaptation layer
The use of Asynchronous Transfer Mode (ATM) technology and services creates the need for an adaptation layer in
order to support information transfer protocols, which are not based on ATM. This adaptation layer defines how to
segment and reassemble higher-layer packets into ATM cells, and how to handle various transmission aspects in the
ATM layer.
Examples of services that need adaptations are Gigabit Ethernet, IP, Frame Relay, SONET/SDH, UMTS/Wireless,
etc.
The main services provided by AAL (ATM Adaptation Layer) are:
• Segmentation and reassembly
• Handling of transmission errors
• Handling of lost and misinserted cell conditions
• Timing and flow control
The following ATM Adaptation Layer protocols (AALs) have been defined by the ITU-T.
[1]
It is meant that these
AALs will meet a variety of needs. The classification is based on whether a timing relationship must be maintained
between source and destination, whether the application requires a constant bit rate, and whether the transfer is
connection oriented or connectionless.
• AAL Type 1 supports constant bit rate (CBR), synchronous, connection oriented traffic. Examples include T1
(DS1), E1, and x64 kbit/s emulation.
• AAL Type 2 supports time-dependent Variable Bit Rate (VBR-RT) of connection-oriented, synchronous traffic.
Examples include Voice over ATM. AAL2 is also widely used in wireless applications due to the capability of
multiplexing voice packets from different users on a single ATM connection.
• AAL Type 3/4 supports VBR, data traffic, connection-oriented, asynchronous traffic (e.g. X.25 data) or
connectionless packet data (e.g. SMDS traffic) with an additional 4-byte header in the information payload of the
ATM adaptation layer
60
cell. Examples include Frame Relay and X.25.
• AAL Type 5 is similar to AAL 3/4 with a simplified information header scheme. This AAL assumes that the data
is sequential from the end user and uses the Payload Type Indicator (PTI) bit to indicate the last cell in a
transmission. Examples of services that use AAL 5 are classic IP over ATM, Ethernet Over ATM, SMDS, and
LAN Emulation (LANE). AAL 5 is a widely used ATM adaptation layer protocol. This protocol was intended to
provide a streamlined transport facility for higher-layer protocols that are connection oriented.
AAL 5 was introduced to:
• reduce protocol processing overhead.
• reduce transmission overhead.
• ensure adaptability to existing transport protocols.
The AAL 5 was designed to accommodate the same variable bit rate, connection-oriented asynchronous traffic or
connectionless packet data supported by AAL 3/4, but without the segment tracking and error correction
requirements.
References
[1] Cisco Systems Guide to ATM Technology (http:/ / www. cisco. com/ univercd/cc/ td/ doc/ product/ atm/ c8540/ 12_1/ pereg_1/atm_tech/
techgd. pdf) (2000). Section "Service-dependent ATM Adaptation Layers". Accessed 2011-06-01.
External links
• ATM forum (http:// www. atmforum.com/ )
• International Telecommunication Union (http:/ / www. itu.int/ )
ATM Adaptation Layer 2
ATM Adaptation Layer 2 (AAL2) is an ATM adaptation layer for Asynchronous Transfer Mode (ATM), used
primarily in telecommunications; for example, it is used for the Iu interfaces in the Universal Mobile
Telecommunications System, and is also used for transporting digital voice. The standard specifications related to
AAL2 are ITU standards I.363.2 and I366.1.
What is AAL2?
AAL2 is a variable bitrate, connection-oriented, low latency service originally intended to adapt voice for
transmission over ATM. Like other ATM adaptation layers, the purpose of AAL2 is to define how to segment and
reassemble higher-layer packets into ATM cells, in this case packets of data containing voice and control
information. AAL2 is further separated into two sub-layers that helps with the mapping from upper layer services to
ATM cells: the Service Specific Convergence Sub-layer (SSCS) and the Common Part Sub-layer (CPS).
The objective of the AAL2 protocol, as compared to other ATM Adaptation Layers, is to pack lots of small packets
efficiently into one standard-sized ATM cell (53 bytes). This way, if you have a one-byte packet, you don't have an
overhead ratio of 52/53 (i.e. 98%). With this smallest packet size of 1 byte, there can be a total of 11 CPS packets
(plus 3/4 of a 12th CPS packet) squeezed into a single cell. Of course, there can be a mixture of other CPS packet
sizes with other CIDs, too, and when the transmission is ready, the CPS packets are all multiplexed together into a
single cell which is then transported over existing standard ATM network infrastructure. The transport networks for
ATM are well standardized fiber optic (SDH/Sonet, i.e. STM-1/OC-3 or higher) or copper cable (PDH, i.e.
E1/T1/JT1 or higher bandwidth fixed lines) based synchronous networks with built-in redundancy and OAM-related
network features which Ethernet networks never had originally (in order to keep things simple) but are sorely missed
ATM Adaptation Layer 2
61
in metro Ethernet standard networks.
Efforts to improve Ethernet networks are in a sense trying to reinvent the wheel à la ATM. AAL2 is one example of
a useful benefit of ATM, as a general standard for Layer 2 protocols. This is because ATM/AAL2 handles small
packets efficiently, whereas with Ethernet, there is a minimum payload size of 48 bytes vs a 1-byte minimum size for
an AAL2 CPS packet.
AAL2 is the standard layer 2 protocol used in all Iu interfaces, i.e. the interfaces between UMTS base stations and
UMTS Radio Network Controllers (RNCs) (Iu-B), inter-RNCs (Iu-R), UMTS RNCs and UMTS Serving GPRS
Support Nodes (SGSNs) (Iu-PS), and UMTS RNCs and media gateways (MGWs) (Iu-CS).
[1]
AAL2 and the ATM Cell
The basic component of AAL2 is the CPS packet. A CPS packet is an unanchored unit of data, that can cross ATM
cells, and starts from any location within the payload of the ATM cell, other than the STF (start field) which is the
first byte of the 48 byte ATM payload. The STF tells which byte index into the ATM cell (of 48 bytes) the first CPS
packet in this cell begins. The data from byte 1 ... (STF+1), [where byte 0 is the location of the STF itself] would be
the remaining straddled portion of the previous ATM cell's final CPS packet. If the STF is 0, then the first byte of the
cell after the STF is also the location of the start of the first CPS packet.
The format for the 1 byte STF at the beginning of the ATM cell is the following:
• 6 bits - OSF (offset field)
• 1 bit - SN (sequence number)
• 1 bit - P (parity)
OSF
This is the Offset Field and carries the binary value of the offset in octets between the end of the P bit and the start of
the CPCS-PDU Payload. Values of greater than 47 are not allowed.
SN
This is a Sequence Number used to number the stream of CPCS-PDUs.
P
This is a Parity bit used to detect error in the OSF and SN fields.
Additionally, if the ATM cell has less CPS packet data than 47 bytes, the remainder of the ATM cell will be filled by
padding.
AAL2u
One common adaptation of AAL2 is known as AAL2u which doesn't use the STF field at all. In this case, there will
be one single CPS packet which is aligned to the beginning of the cell. AAL2u is not used in standardized interfaces,
but rather in proprietary equipment implementations where the multiplexing/demultiplexing, etc. that needs to be
done for standard AAL2 is either too strenuous, unsupported, or too much overhead (i.e. the 1 byte of STF) from the
internal system point of view. Most computer chips do not have AAL2 support in them. And therefore stripping this
layer away makes it easier to interwork between the ATM interface and the rest of the network equipment computer
system.
ATM Adaptation Layer 2
62
ATM AAL2 Cell Diagram
The following is diagram of the AAL2 ATM cell:
AAL2 and the CPS Packet
A CPS packet has a 3 byte header and a 1-45 octet payload. There is also a 64 octet mode defined by the standard,
but it is not commonly used in real 3G networks.
The 3 byte CPS header has following fields
• 8 bits - CID (channel identifier)
• 6 bits - LI (length indicator)
• 5 bits - UUI (user to user indication)
• 5 bits - HEC (header error control)
CID
This is a Channel Identifier which identifies the user of the channel. The AAL2 channel is a bi-directional channel
and the same value of channel identification is used for both directions.
LI
This is a Length Indicator that indicates the length of the CPCS information field between 1 and 45 (default) or 1 and
64 octets. For a given CID all channels must be of the same maximum length (either 45 or 64 octets)
UUI
This is User to User Indication. It conveys specific information transparently between the users. For example, in
SSSAR, UUI is used to indicate that this is the final CPS packet for the SSSAR PDU.
ATM Adaptation Layer 2
63
HEC
This is Header Error Control and checks for errors in the CID, LI and UUI fields. The generator polynomial for the
CPS HEC is the following:
ATM AAL2 CPS Packet Diagram
The following is diagram of the CPS packet:
References
[1] Bo Karlander; Szilveszter Nádas; Sandor Rácz; Jonas Reinius (2002). "AAL2 switching in the WCDMA radio access network" (http:/ / www.
ericsson. com/ ericsson/ corpinfo/publications/ review/ 2002_03/ files/ 2002033.pdf) (PDF). Ericsson Review (Ericsson) (03). .
External links
• Broadband Forum - ATM Forum Technical Specifications (http:// broadband-forum.org/technical/ atmtechspec.
php)
• AAL2 ITU Standard (http:/ / www. itu. int/rec/T-REC-I.363.2/ en)
ATM Adaptation Layer 5
64
ATM Adaptation Layer 5
ATM Adaptation Layer 5 (AAL5) is an ATM adaptation layer used to send variable-length packets up to 65,535
octets in size across an Asynchronous Transfer Mode (ATM) network.
Unlike most network frames, which place control information in the header, AAL5 places control information in an
8-octet trailer at the end of the packet. The AAL5 trailer contains a 16-bit length field, a 32-bit cyclic redundancy
check (CRC) and two 8-bit fields labeled UU and CPI that are currently unused.
Each AAL5 packet is divided into an integral number of ATM cells and reassembled into a packet before delivery to
the receiving host. This process is known as Segmentation and Reassembly (see below). The last cell contains
padding to ensure that the entire packet is a multiple of 48 octets long. The final cell contains up to 40 octets of data,
followed by padding bytes and the 8-octet trailer. In other words, AAL5 places the trailer in the last 8 octets of the
final cell where it can be found without knowing the length of the packet; the final cell is identified by a bit in the
ATM header (see below), and the trailer is always in the last 8 octets of that cell.
Convergence, segmentation, and reassembly
When an application sends data over an ATM connection using AAL5, the host delivers a block of data to the AAL5
interface. AAL5 generates a trailer, divides the information into 48-octet pieces, and transfers each piece across the
ATM network in a single cell. On the receiving end of the connection, AAL5 reassembles incoming cells into a
packet, checks the CRC to ensure that all pieces arrived correctly, and passes the resulting block of data to the host
software. The process of dividing a block of data into cells and regrouping them is known as ATM segmentation and
reassembly (SAR).
By separating the functions of segmentation and reassembly from cell transport, AAL5 follows the layering
principle. The ATM cell transfer layer is classified as "machine-to-machine" because the layering principle applies
from one machine to the next (e.g., between a host and a switch or between two switches). The AAL5 layer is
classified as "end-to-end" because the layering principle applies from the source to the destination - AAL5 presents
the receiving software with data in exactly the same size blocks as the application passed to the AAL5 on the
sending end.
The AAL5 on the receiving side knows how many cells comprise a packet because the sending AAL5 uses the
low-order bit of the "PAYLOAD TYPE" field of the ATM cell header to mark the final cell in a packet. This final
cell header can be thought of as an "end-to-end bit". Thus, the receiving AAL5 collects incoming cells until it finds
one with an end-of-packet bit set. ATM standards use the term "convergence" to describe mechanisms that recognize
the end of a packet. Although AAL5 uses a single bit in the cell header for convergence, other ATM adaptation layer
protocols are free to use other convergence mechanisms.
Packet type and multiplexing
The AAL5 trailer does not include a type field. Thus, an AAL5 frame is not identifying its content. This means that
either the two hosts at the ends of a virtual circuit must agree a priori that the circuit will be used for one specific
protocol (e.g., the circuit will only be used to send IP datagrams), or the two hosts at the ends of a virtual circuit must
agree a priori that some octets of the data area will be reserved for use as a type field to distinguish packets
containing one protocol's data from packets containing another protocol's data.
RFC 2684, Multiprotocol Encapsulation over ATM, describes two encapsulation mechanisms for network traffic,
one of which implements the former scheme and one of which implements the latter scheme.
The former scheme, in which the hosts agree on the high-level protocol for a given circuit, is referred to in RFC 2684
as "VC Multiplexing". It has the advantage of not requiring additional information in a packet, which minimises the
ATM Adaptation Layer 5
65
overhead. For example, if the hosts agree to transfer IP, a sender can pass each datagram directly to AAL5 to
transfer, nothing needs to be sent besides the datagram and the AAL5 trailer. The chief disadvantage of such a
scheme lies in duplication of virtual circuits: a host must create a separate virtual circuit for each high-level protocol
if more than one protocol is used. Because most carriers charge for each virtual circuit, customers try to avoid using
multiple circuits because it adds unnecessary cost.
The latter scheme, in which the hosts use a single virtual circuit for multiple protocols, is referred to in RFC 2684 as
"LLC Encapsulation". The standards suggest that hosts should use a standard IEEE 802.2 Logical Link Control
(LLC) header, followed by a Subnetwork Access Protocol (SNAP) header if necessary. This scheme has the
advantage of allowing all traffic over the same circuit, but the disadvantage of requiring each packet to contain octets
that identify the protocol type, which adds overhead. The scheme also has the disadvantage that packets from all
protocols travel with the same delay and priority.
RFC 2684 specifies that hosts can choose between the two methods of using AAL5. Both the sender and receiver
must agree on how the circuit will be used, the agreement may involve manual configuration.
Datagram encapsulation and IP MTU size
Internet Protocol (IP) can use AAL5, combined with one of the encapsulation schemes described in RFC 2684, to
transfer datagrams across an ATM network, as specified in RFC 2225. Before data can be sent, a virtual circuit (PVC
or SVC) must be in place to the destination host and both ends must agree to use AAL5 on the circuit. To transfer a
datagram, the sender passes it to AAL5 along with the VPI/VCI identifying the circuit. AAL5 generates a trailer,
divides the datagram into cells, and transfers the cells across the network. At the receiving end, AAL5 reassembles
the cells, checks the CRC to verify that no bits were lost or corrupted, extracts the datagram, and passes it to the IP
layer.
AAL5 uses a 16-bit length field, making it possible to send 65,535 (2^16-1) octets in a single packet. However, RFC
2225 specifies a default MTU of 9180 octets per datagram, so, unless the hosts on both ends of the virtual circuit
negotiate a larger MTU, IP datagrams larger than 9180 octets will be fragmented.
References
• "ITU-T Recommendation I.363.5 (08/96), B-ISDN ATM Adaptation Layer specification: Type 5 AAL"
[1]
.
Retrieved 2007-12-09.
References
[1] http:/ / www.itu. int/ rec/dologin_pub. asp?lang=e& id=T-REC-I.363.5-199608-I!!PDF-E&type=items
Automatically switched optical network
66
Automatically switched optical network
ASON (Automatically Switched Optical Network) is a concept for the evolution of transport networks which allows
for dynamic policy-driven control of an optical or SDH network based on signaling between a user and components
of the network.
[1]
Its aim is to automate the resource and connection management within the network. The IETF
defines ASON as an alternative/supplement to NMS based connection management.
[2]
The Need for ASON
In an optical network without ASON, whenever a user requires more bandwidth, there is a request for a new
connection
[By whom?, To Whom?]
. The service provider must then manually plan and configure the route in the
network. This is not only time consuming, but also wastes bandwidth if the user sparingly uses the connection.
Bandwidth is increasingly becoming a precious resource and expectations from future optical networks are that they
should be able to efficiently handle resources as quickly as possible. ASON fulfills some of the requirements of
optical networks such as:
• Fast and automatic end-to-end provisioning
• Fast and efficient re-routing
• Support of different clients, but optimized for IP
• Dynamic set up of connections
• Support of Optical Virtual Private Networks (OVPNs)
• Support of different levels of quality of service
( These requirements are not restricted to optical networks and can be applied to any transport network (including
SDH Networks). )
[3]
Logical Architecture of An ASON
Logical Architecture of ASON
The logical architecture of an ASON can be divided into 3 planes:
• Transport Plane
• Control Plane
• Management Plane
The Transport Plane contains a number of switches (optical or
otherwise) responsible for transporting user data via connections.
These switches are connected to each other via PI (Physical Interface).
The Control Plane is responsible for the actual resource and
connection management within an ASN network. It consists of a series
of OCC (Optical Connection Controllers), interconnected via NNIs
(Network to Network Interfaces). These OCCs have the following functions:
• Network topology discovery (resource discovery)
• Signaling, routing, address assignment
• Connection set-up/tear-down
• Connection protection/restoration
• Traffic engineering
• Wavelength assignment
[3]
The Management Plane is responsible for managing the Control plane. Its responsibilities include Configuration
Management of the Control Plane Resources, Routing Areas, Transport resource in Control Plane and Policy. It also
Automatically switched optical network
67
provides Fault Management, Performance Management, Accounting and Security Management functions.
[4]
The
Management Plane contains the Network Management Entity which is connected to an OCC in Control Plane via the
NMI-A ( Network Management Interface for ASON Control Plane) and to one of the switches via NMI-T ( Network
Management Interface for the Transport Network).
The traffic from user connected to an ASON network contains data for both Transport and Control Plane. The user is
connected to Transport plane via a PI (Physical Interface), while it communicates with the Control plane via a UNI (
User Network Interface).
[3]
The Role of IETF
While ITU has worked on the requirements and architecture of ASON based on the requirements on its members, it
is explicitly aiming to avoid the development of new protocols, when existing ones will work fine. The IETF, on the
other hand , has been tasked with the development of new protocols in response to general industry requirement.
Therefore, while ITU already include the PNNI protocol for signaling in the Control plane, IETF has been
developing GMPLS as a second option protocol to be used in the Control Plane for signalling.
[5]
As a product of
IETF, GMPLS (Generalized MPLS) uses IP to communicate between different components in the Control Plane.
[6]
ITU-T documentation for ASON standardization
The following is a list and description of architecture and requirements as published by ITU-T
• G.8080/Y.1304, Architecture for the automatically switched optical network (ASON)
• G.807/Y.1302, Requirements for automatic switched transport networks (ASTN) Call and Connection
Management
• G.7713/Y.1704, Distributed call and connection management (DCM)
• G.7713.1/Y.1704.1, DCM signalling mechanism using PNNI/Q.2931
• G.7713.2/Y.1704.2, DCM signalling mechanism using GMPLS RSVP-TE
• G.7713.3/Y.1704.3, DCM signalling mechanism using GMPLS CR-LDP Discovery and Link Management
• G.7714/Y.1705, Generalized automatic discovery techniques
• G.7715/Y.1706, Architecture and requirements of routing for automatic switched transport network
• G.7716/Y.1707, Architecture and requirements of link resource management for automatically switched transport
networks
• G.7717/Y.1708, ASTN connection admission control. Other Related Recommendations
• G.872, Architecture of optical transport networks
• G.709/Y.1331, Interface for the optical transport network (OTN)
• G.959.1, Optical transport network physical layer interfaces
• G.874, Management aspects of the optical transport network element
• G.874.1, Optical transport network (OTN) protocolneutral management information model for the network
element view.
• G.875, Optical transport network (OTN) management information model for the network element view
• G.7041/Y.1303, Generic framing procedure (GFP)
• G.7042/Y.1305, Link capacity adjustment scheme (LCAS) for virtual concatenated signals
• G.65x, series on optical fibre cables and test methods
• G.693, Optical interfaces for intra-office systems
• G.7710/Y.1701, Common equipment management function requirements
• G.7712/Y.1703, Architecture and specification of data communication network.
• G.806, Characteristics of transport equipment . Description methodology and generic functionality.
[1]
Automatically switched optical network
68
References
[1] ITU-T Promotional Document (http://www. itu. int/itudoc/ gs/ promo/ tsb/ 80686.pdf)
[2] Automatically Switched Optical Networks (ASON) and Generalized MPLS (GMPLS," Route into Common Future" - Slide 6 (http:// www.
ietf.org/ proceedings/ 01dec/ slides/ plenary-2/sld006. htm)
[3] Automatic Switched Optical Networks: functionality and architectural components, Roberto Clemente and Giuseppe Ferraris , 2nd Eurescom
WDM Hungarian Workshop Budapest, March 27th 2001 (http:/ /www. eurescom.de/ ~projects-workspace/P1000-series/ P1012/
presentations/ pdf/2nd Hungarian WDM workshop. pdf)
[4] Management of ASON-capable Network and its Control Plane, by H. Kam LAM, ITU-T Workshop “NGN and its Transport Networks“ Kobe,
20-21 April 2006 (http:/ / www. itu. int/ ITU-T/worksem/ ngn/ 200604/ presentation/ s4_lam. pdf)
[5] ASON AND GMPLS - THE BATTLE OF THE OPTICAL CONTROL PLANE, Nick Larkin, Data Connection Ltd. Whitepaper (http:/ /
www.dataconnection. com/ network/ download/ whitepapers/ asongmpls. pdf)
[6] Automatically Switched Optical Networks (ASON) and Generalized MPLS (GMPLS) Route into Common Future - Slide 2 (http:/ / www.
ietf.org/ proceedings/ 01dec/ slides/ plenary-2/sld002. htm)
Autonegotiation
Autonegotiation is an Ethernet procedure by which two connected devices choose common transmission
parameters, such as speed, duplex mode, and flow control. In this process, the connected devices first share their
capabilities regarding these parameters and then choose the highest performance transmission mode they both
support. In the OSI model, autonegotiation resides in the physical layer.
Autonegotiation was originally defined as an optional component in the fast Ethernet standard. It is backwards
compatible with 10BASE-T. The protocol was significantly extended in the gigabit Ethernet standard, and is
mandatory for 1000BASE-T gigabit Ethernet over copper.
[1]
Overview
In 1995, a standard was released to allow connected network adapters to negotiate the best possible shared mode of
operation. The initial autonegotiation standard contained a mechanism for detecting the speed but not the duplex
setting of Ethernet peers that did not use autonegotiation.
Autonegotiation can be used by devices that are capable of different transmission rates, different duplex modes (half
duplex and full duplex), and/or different standards at the same speed (though in practice only one standard at each
speed is widely supported). Each device declares its technology abilities, that is, its possible modes of operation, and
the best mode is chosen from those shared by them, with higher speed preferred over lower, and full duplex preferred
over half duplex at the same speed.
Parallel detection is used when a device that is capable of autonegotiation is connected to one that is not. This
happens if the other device does not support autonegotiation or autonegotiation is administratively disabled. In this
condition, the device that is capable of autonegotiation can determine and match speed with the other device. This
procedure cannot determine the presence of full duplex, so half duplex is always assumed.
The standards for 1000BASE-T and 1000BASE-TX require autonegotiation to be always present and enabled. Other
than speed and duplex mode, autonegotiation is used to communicate the port type (single port or multiport) and the
master-slave parameters (whether it is manually configured or not, whether the device is master or slave if this is the
case, and the master-slave seed bit otherwise).
Autonegotiation
69
Electrical signals
A sequence of normal link pulses, used by
10BASE-T devices to establish link integrity.
Autonegotiation is based on pulses similar to those used by 10BASE-T
devices to detect the presence of a connection to another device. These
pulses are sent by a device when it is not sending or receiving any data.
They are unipolar positive-only electrical pulses of a duration of 100 ns
nominally, with a maximum pulse width of 200 ns,
[2]
generated at
intervals of 16 ms (with a tolerance of 8 ms). These pulses are called
link integrity test (LIT) pulses in the 10BASE-T terminology, and are
referred to as normal link pulses (NLP) in the autonegotiation
specification.
Three trains of fast link pulses, used by
autonegotiating devices to declare their
capabilities.
A device detects the failure of a link (which can be due to a failure of
the transmission medium or a failure of the other device) if neither a
packet nor one of the pulses is received for 50-150 ms. The presence of
a valid link is signaled by the receipt of a valid frame or two
consecutive link integrity test pulses. For this to work, devices send
link integrity test pulses even when not receiving any.
Autonegotiation uses similar pulses. These are still unipolar,
positive-only, and of the duration of 100 ns, but each one is replaced
by a train of between 17 and 33 pulses. Each such train is called a fast
link pulse (FLP) burst. The time interval between the start of each burst is the same as the distance between normal
link pulses, that is, 16 ms with a tolerance of 8 ms.
How a link code word (a 16 bit word) is encoded
in a fast link pulse burst
The fast link pulse burst is made as follows: there are 17 clock pulses
at a distance of 125 µs (with a tolerance of 14 µs). Between each set of
two consecutive clock pulses, a data pulse may or may not be present.
The presence of a data pulse represents a logical 1, the absence a
logical 0. As a result, every burst represents a logical word of 16 bits.
This word is called a link code word (LCW). The bits of the link code
word are numbered from 0 to 15, where bit 0 corresponds to the first
possible pulse in time and bit 15 to the last.
The base link code word
Every fast link pulse burst transmits a word of 16 bits known as a link code word. The first such word is known as a
base link code word, and its bits are used as follows:
• 0–4: selector field: it indicates which standard is used between IEEE 802.3 and IEEE 802.9;
• 5–12: technology ability field: this is a sequence of bits that encode the possible modes of operations among the
100BASE-T and 10BASE-T modes;
• 13: remote fault: this is set to one when the device is detecting a link failure;
• 14: acknowledgement: the device sets this to one to indicate the correct reception of the base link code word from
the other party; this is detected by the reception of at least three identical base code words;
• 15: next page: this bit is used to indicate the intention of sending other link code words after the base link code
word;
The technology ability field is composed of eight bits. For IEEE 802.3, these are as follows:
• bit 0: device supports 10BASE-T
• bit 1: device supports 10BASE-T in full duplex
Autonegotiation
70
• bit 2: device supports 100BASE-TX
• bit 3: device supports 100BASE-TX in full duplex
• bit 4: device supports 100BASE-T4
• bit 5: pause
• bit 6: asymmetric pause for full duplex
• bit 7: reserved
The acknowledgement bit is used to signal the correct reception of the base code word. This corresponds to having
received three identical copies of the base code word. Upon receiving these three identical copies, the device sends a
link code word with the acknowledge bit set to one from six times to eight times.
The link code words are also called pages. The base link code word is therefore called a base page. The next page bit
of the base page is 1 when the device intends to send other pages, which can be used to communicate other abilities.
These additional pages are sent only if both devices have sent base pages with a next page bit set to 1. The additional
pages are still encoded as link code words (using 17 clock pulses and up to 16 bit pulses).
Message and unformatted next page
The base page (the base link code word) is sufficient for devices to advertise which ones among the 10BASE-T,
100BASE-TX and 100BASE-T4 modes they support. For gigabit Ethernet, two other pages are required. These
pages are sent if both devices have sent base pages with a next page bit set to one.
The additional pages are of two kinds: message pages and unformatted pages. These pages are still 16-bit words
encoded as pulses in the same way as the base page. Their first eleven bits are data, while their second-to-last bit
indicates whether the page is a message page or an unformatted page. The last bit of each page indicates the presence
of an additional page.
The 1000BASE-T supported modes and master-slave data (which is used to decide which of the two devices acts as
the master, and which one acts as the slave) are sent using a single message page, followed by a single unformatted
page. The message page contains:
• half duplex capability
• whether the device is single port or multiport
• whether master/slave is manually configured or not
• whether the device is manually configured as master or slave
The unformatted page contains a 10-bit word, called a master-slave seed value.
Priority
Upon receipt of the technology abilities of the other device, both devices decide the best possible mode of operation
supported by both devices. The priority among modes specified in the 2002 edition of 802.3 is as follows:
1. 1000BASE-T full duplex
2. 1000BASE-T half duplex
3. 100BASE-T2 full duplex
4. 100BASE-TX full duplex
5. 100BASE-T2 half duplex
6. 100BASE-T4
7. 100BASE-TX half duplex
8. 10BASE-T full duplex
9. 10BASE-T half duplex
In other words, among the modes that are supported by both devices, each device chooses the one that is the topmost
in this list.
Autonegotiation
71
Interoperability problems
The first version of the autonegotiation specification, IEEE 802.3u, was open to different interpretations. Although
most manufacturers implemented this standard in one way, some others, including network giant Cisco, implemented
it in a different way. Autonegotiation between devices that implemented it differently failed. This led many network
administrators to not depend on autonegotiation and instead manually set the speed and duplex mode of each
network interface card. Even Cisco recommended its customers not to use autonegotiation. However, the use of
manually set configuration often led to duplex mismatches, in particular when two connected devices are:
• One manually set to half duplex and one manually set to full duplex
• One set to autonegotiation and one manually set to full duplex
• Both sides manually set to full duplex where one side still expects an autonegotiating link partner and the other
side has autonegotiation completely disabled (the side that expects an autonegotiating link partner will fall back to
half duplex because it does not detect a partner capable of full duplex)
Duplex mismatch problems are difficult to diagnose because the network is apparently working, and simple
programs used for network tests such as ping report a valid connection; however, the network is much slower than
expected.
The debatable portions of the autonegotiation specifications were eliminated by the 1998 release of 802.3. This was
later followed by the release of IEEE 802.3ab in 1999. The new standard specified that gigabit Ethernet over copper
wiring requires autonegotiation. Currently, all network equipment manufacturers—including Cisco
[3]
—recommend
to use autonegotiation on all access ports. Cisco also recommends that you check back with them yearly for any
potential changes in their recommendation as this has caused much confusion over the years.
[4]
In some large installations that have had to deal with negotiation issues, network staff may believe that
"autonegotiation doesn't work", and consider turning it off a best-practice. This should be avoided - once
autonegotiation is turned off, it will not work by definition, creating a self-enforcing problem.
Duplex mismatch
A duplex mismatch occurs when two connected devices are configured in different duplex modes. This may happen
for example if one is configured for autonegotiation while the other one has a fixed mode of operation that is full
duplex (no autonegotiation). In such conditions, the autonegotiation device correctly detects the speed of operation,
but is unable to correctly detect the duplex mode. As a result, it sets the correct speed but starts using the half duplex
mode.
When a device is operating in full duplex while the other one operates in half duplex, the connection works at a very
low speed if both devices attempt to send frames at the same time. This is because data can be sent in both directions
at the same time in full duplex mode, but only in one direction at a time in half duplex mode. As a result, a full
duplex device may transmit data while it is receiving. However, if the other device is working in half duplex, it does
not expect to receive data (because it is currently sending); therefore, it senses a collision and attempts to resend the
frame it was sending. Depending on timing the half duplex device may sense a late collision, which it will interpret
as a hard error rather than a normal consequence of CSMA/CD and will not attempt to resend the frame. On the
other hand, the full duplex device does not detect any collision and does not resend the frame, even if the other
device has discarded it as corrupted by collision. Still, the full duplex device, not expecting incoming frames to be
truncated by collision detection, will report frame check sequence errors. This combination of late collisions
reported at the half-duplex end and FCS errors reported by the full duplex end can be used as an indication that a
duplex mismatch is present.
This packet loss happens when both devices are transmitting at the same time. This may happen even when the link
is used, from the user's perspective, in one direction only. A TCP stream requires all packets sent to be
acknowledged by the receiving device. As a result, even if actual data is sent in one direction only, collision may be
Autonegotiation
72
generated with acknowledgement packets traveling in the other direction.
History
The protocol that became IEEE 802.3 clause 28 was developed from a patented technology by National
Semiconductor known as NWay. The company gave a letter of assurance for anyone to use their system for a one
time license fee.
[5]
Another company has since bought the rights to that patent.
[6]
Patents
Autonegotiation is covered by the US patents U.S. Patent 5,617,418
[7]
; U.S. Patent 5,687,174
[8]
; E U.S. Patent
RE39,405 E
[9]
; E U.S. Patent RE39,116 E
[10]
; 971,018 (filed 1992-11-02); 146,729 (filed 1993-11-01); 430,143
(filed 1995-04-26)
[6]
European Patent Applications SN 93308568.0 (DE, FR, GB, IT, NL); Korean Patent No. 286791, Taiwanese Patent
No. 098359, Japanese Patent No. 3705610; Japanese Patent 4234. Applications SN H5-274147; Korean Patent
Applications SN 22995/93; Taiwanese Patent Applications SN 83104531;
References
[1] IEEE. "Part 3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) access method and Physical Layer specifications" (http:/
/ standards. ieee. org/getieee802/ download/ 802. 3-2008_section2.pdf). SECTION TWO: This section includes Clause21 through Clause 33
and Annex 22A through Annex 33E.. . Retrieved 2010-02-18.
[2] "IEEE Link Task Force Autodetect, Specification for NWay Autodetect" (http:// www. negotiateddata.com/ files/
NWay_Specification_041094.pdf). p. 57. . 100615 negotiateddata.com
[3] "Catalyst 2970 Switch Software Configuration Guide, 12.2(18)SE - Configuring Interface Characteristics [Cisco Catalyst 2970 Series
Switches] - Cisco Systems" (http:// www.cisco. com/ en/ US/ docs/ switches/ lan/ catalyst2970/ software/release/ 12.2_18_se/
configuration/ guide/ swint. html#wp1080632). Cisco.com. . Retrieved 2009-03-13.
[4] "Best Practices for Catalyst 4500/4000, 5500/5000, and 6500/6000 Series Switches Running CatOS Configuration and Management". http:/ /
www.cisco. com/ en/ US/products/ hw/switches/ ps663/ products_tech_note09186a0080094713.shtml#auto_neg.
[5] http:/ / www.negotiateddata. com/ files/ Grant_Letter_060794.pdf
[6] Negotiated Data Solutions LLC. "NWay/IEEE Standard Patent License Offer | Negotiated Data Solutions LLC" (http:/ /www.
negotiateddata.com/ node/ 2). Negotiateddata.com. . Retrieved 2010-02-02.
[7] http:/ / www.google. com/ patents?vid=5,617,418
[8] http:// www.google. com/ patents?vid=5,687,174
[9] http:// www.google. com/ patents?vid=RE39,405
[10] http:// www. google. com/ patents?vid=RE39,116
External links
• Ethernet Autonegotiation Best Practices (http:// www. sun. com/ blueprints/ 0704/ 817-7526.pdf)
• Gigabit Ethernet autonegotiation (http:// www.dell.com/ content/ topics/ global.aspx/ power/en/
ps1q01_hernan?c=us& cs=555& l=en&s=biz) ( PDF version (http:// www. ethermanage. com/ ethernet/pdf/
dell-auto-neg. pdf))
• What is autonegotiation? (http:/ / www. iol. unh.edu/ training/ge/ 1000BASE-T/ANEG_brief.php)
• Cisco Catalyst Config Guide (http:/ / www. cisco. com/ en/ US/ docs/ switches/ lan/ catalyst2970/ software/
release/12. 2_18_se/ configuration/guide/ swint. html#wp1080632)
Available Bit Rate
73
Available Bit Rate
See also Traffic contract - ABR
Network Architecture Service Model Guarantee ? Congestion Feedback
Bandwidth Loss Order Timing
Internet best effort none no no no no (inferred via loss)
ATM CBR constant rate yes yes yes no congestion
ATM VBR guarantee rate yes yes yes no congestion
ATM ABR guarantee minimum no yes no yes
ATM UBR none no yes no no
Available Bit Rate (ABR) is a service used in ATM networks when source and destination don't need to be
synchronized. ABR does not guarantee against delay or data loss. ABR mechanisms allow the network to allocate
the available bandwidth fairly over the present ABR sources. ABR is one of five service categories defined by the
ATM Forum for use in an ATM Network.
The network switches use locally available information to determine the explicit allowable rates or relative rate
(increase/decrease) for the source. The newly calculated rates are then being sent to the sources using Resource
Management records (RM-cells). RM-cells are generated by the source and travel along the data path to the
destination and sent back. ABR sets a Minimum Cell Rate (MCR) and a Peak Cell Rate (PCR). When transfers
exceed the PCR, cells are dropped.
Many implementers consider ABR to be overly complex, and its adoption has been modest.
External links
• Understanding the Available Bit Rate (ABR) Service Category for ATM VCs
[1]
References
[1] http:/ / www.cisco. com/ en/ US/ tech/ tk39/ tk51/ technologies_tech_note09186a00800fbc76.shtml
BACnet
74
BACnet
BACnet is a communications protocol for building automation and control networks. It is an ASHRAE, ANSI, and
ISO standard protocol.
BACnet was designed to allow communication of building automation and control systems for applications such as
heating, ventilating, and air-conditioning control, lighting control, access control, and fire detection systems and their
associated equipment. The BACnet protocol provides mechanisms for computerized building automation devices to
exchange information, regardless of the particular building service they perform.
History
The development of the BACnet protocol began in June, 1987, in Nashville, Tennessee,
[1]
at the inaugural meeting
of the Standard Project Committee (SPC). The committee worked at reaching consensus using working groups to
divide up the task of creating a standard. The working groups focused on specific areas and provided information
and recommendations to the main committee. The first three working groups were the Data Type and Attribute
Working Group, Primitive Data Format Working Group, and the Application Services Working Group.
BACnet became ASHRAE/ANSI Standard 135 in 1995, and ISO 16484-5
[2]
in 2003. The Method of Test for
Conformance to BACnet was published in 2003 as BSR/ASHRAE Standard 135.1. BACnet is under continuous
maintenance by the ASHRAE Standing Standard Project Committee 135.
BACnet had an almost immediate impact on the HVAC controls industry. In 1996 Alerton announced a complete
BACnet product line for HVAC controls, from the operator's workstation down to small VAV controllers.
Automated Logic Corporation and Delta Controls soon followed suit. As of May 30, 2011, 515 Vendor IDs have
been issued and are distributed internationally. Those vendor identifiers can be viewed at the BACnet website
[3]
.
H. Michael (Mike) Newman, Manager of the Computer Section of the Utilities and Energy Management Department
at Cornell University, served as the BACnet committee chairman until June, 2000, when he was succeeded by his
vice-chair of 13 years, Steven (Steve) Bushby from NIST. During Steve Bushby's four-year term as committee chair
the BACnet standard was republished twice, in 2001 and 2004, each time with new capabilities added to the
standard. The 2001 version featured, among other things, extensions to support fire / life-safety systems. In June,
2004, 17 years after the first BACnet meeting and back in Nashville, William (Bill) Swan (a.k.a. "BACnet Bill")
from Alerton began his four-year stint as committee chair. During his term the number of committee working groups
grew to 11, pursuing areas such as support for lighting, access control, energy utility/building integration and
wireless communications. In June 2008, in Salt Lake City, Dave Robin from Automated Logic Corporation took
over the reins as the new committee chair after serving 4 years as vice chair.
In January 2006 the BACnet Manufacturers Association and the BACnet Interest Group of North America combined
their operation in a new organization called BACnet International
[4]
.
Protocol Overview
The BACnet protocol defines a number of services that are used to communicate between building devices. The
protocol services include Who-Is, I-Am, Who-Has, I-Have, which are used for Device and Object discovery.
Services such as Read-Property and Write-Property are used for data sharing.
The BACnet protocol defines a number of Objects that are acted upon by the services. The objects include Analog
Input, Analog Output, Analog Value, Binary Input, Binary Output, Binary Value, Multi-State Input, Multi-State
Output, Calendar, Event-Enrollment, File, Notification-Class, Group, Loop, Program, Schedule, Command, and
Device.
BACnet
75
The BACnet protocol defines a number of data link / physical layers, including ARCNET, Ethernet, BACnet/IP,
Point-To-Point over RS-232, Master-Slave/Token-Passing over RS-485, and LonTalk.
BACnet Objects
The standard specifies 49 types of objects
Access Credential Access Door Access Point Access Rights Access User
Access Zone Accumulator Analog Input Analog Output Analog Value
Averaging Binary Input Binary Output Binary Value Bit String Value
Calendar Command Character String Value Date Pattern Value Date Value
Date Time Pattern Value Date Time Value Device Event Enrollment Event Log
File Global Group Group Integer Value Large Analog Value
Life Safety Point Life Safety Zone Load Control Loop Multi-state Input
Multi-state Output Multi-state Value Network Security Notification Class Octet String Value
Positive Integer Value Program Pulse Converter Schedule Structured-View
Time Pattern Value Time Value Trend Log Trend Log Multiple
• Analog Input - Sensor input
• Analog Output - Control output
• Analog Value - Setpoint or other analog control system parameter
• Binary Input - Switch input
• Binary Output - Relay output
• Binary Value - control system parameter
• Calendar - a list of dates, such as holidays or special events, for scheduling.
• Command - Writes multiple values to multiple objects in multiple devices to accomplish a specific purpose, such
as day-mode to night-mode, or emergency mode.
• Device - Properties tell what objects and services the device supports, and other device-specific information such
as vendor, firmware revision, etc.
• Event Enrollment - Describes an event that might be an error condition (e.g., "Input out of range") or an alarm
that other devices to know about. It can directly tell one device or use a Notification Class object to tell multiple
devices.
• File - Allows read and write access to data files supported by the device.
• Group - Provides access to multiple properties of multiple objects in a read single operation.
• Multi-state Input - Represents the status of a multiple-state process, such as a refrigerator's On, Off, and Defrost
cycles.
• Multi-state Output - Represents the desired state of a multiple-state process (such as It's Time to Cool, It's Cold
Enough and it's Time to Defrost).
• Notification Class - Contains a list of devices to be informed if an Event Enrollment object determines that a
warning or alarm message needs to be sent.
• Loop - Provides standardized access to a "PID control loop".
• Program - Allows a program running in the device to be started, stopped, loaded and unloaded, and reports the
present status of the program.
• Schedule - Defines a weekly schedule of operations (performed by writing to specified list of objects with
exceptions such as holidays. Can use a Calendar object for the exceptions.
BACnet
76
BACnet Testing
BACnet Testing Laboratories was established by BACnet International to test products as per BACnet standard and
support compliance testing and interoperability testing activities and consists of BTL Manager and the BTL-WG.
The general activities of the BTL are:
• Publish the BTL Implementation Guidelines document
• Certifying the products as per BACnet guidelines
• Support the activities of the BTL-WG,
• Maintaining the BTL test packages for technical support for use of pre-testing
• Approves Testing Laboratories for BTL Testing
The BTL also provides testing services through its managed BACnet laboratory. BACnet International and BTL
have reached an agreement with SoftDEL Systems to establish and maintain a test lab for BACnet products.
[5]
SoftDEL is headquartered in Pune, India where the test facility operates BTL. The BTL Manager and BTL working
group of BACnet International will administer the test lab. This BACnet lab is ISO 17025 accredited
[6]
References
[1] BACnet protocol June, 1987, in Nashville, Tennessee (http:/ / tc14. ashraetcs. org/ pdf/tc14-04a.pdf)
[2] http:/ / www.iso. org/ iso/ iso_catalogue/ catalogue_tc/ catalogue_detail.htm?csnumber=37298
[3] http:// www.bacnet. org/VendorID/BACnet%20Vendor%20IDs. htm
[4] http:/ / www.bacnetinternational.org/
[5] "BACnet test lab at SoftDEL" 4 April 2006 (http:/ / www.csemag. com/ article/179148-New_BACnet_Test_Lab_Established. php)
[6] "SoftDEL BACnet Testing Laboratory achieves ISO accreditation." 6 Apr 2010 (http:/ / www. automation.com/ content/
softdel-bacnet-testing-laboratory-achieves-iso-accreditation)
External links
• BACnet website (http:/ / www. bacnet.org)
• BACnet International (http:// www. bacnetinternational.org)
Bandwidth allocation protocol
77
Bandwidth allocation protocol
The Bandwidth Allocation Protocol, along with its control protocol, the Bandwidth Allocation Control Protocol, is
used to add and remove links in a multilink bundle over PPP, and specifying which peer is responsible for making
decisions regarding bandwidth management. The protocol was originally conceived by Craig Richards and Kevin
Smith of Shiva Corporation and Ascend Communications respectively in 1997
[1]
and has since been implemented on
a number of routers, including in Cisco IOS
[2]
.
References
[1] http:/ / www.ietf.org/ rfc/rfc2125.txt
[2] Bandwidth Allocation Control Protocol (http:/ / www. cisco. com/ univercd/cc/ td/ doc/ product/ software/ios112/ pppbacp.htm)
BBN Report 1822
BBN Report 1822 specifies the method for connecting a host computer to an ARPANET router, called an Interface
Message Processor (IMP). This connection and protocol is generally referred to as 1822, the report number.
The initial version of the 1822 protocol was developed in 1969: since it predates the OSI model by a decade, 1822
does not map cleanly into the OSI layers. However, it is accurate to say that the 1822 protocol incorporates the
physical layer, the data link layer, and the network layer. The interface visible to the host system passes network
layer addresses directly to a physical layer device.
To transmit data, the host constructs a message containing the numeric address of another host on the network
(similar to an IP address on the Internet) and a data field, and transmits the message across the 1822 interface to the
IMP. The IMP routes the message to the destination host using protocols that were eventually adopted by Internet
routers. Messages could store a total length of 8159 Bits, of which the first 96 were reserved for the header
("leader").
[1]
While packets transmitted across the Internet are assumed to be unreliable, 1822 messages were guaranteed to be
transmitted reliably to the addressed destination. If the message could not be delivered, the IMP sent the originating
host a message indicating that the delivery failed. In practice, however, there were (rare) conditions under which the
host could miss a report of a message being lost, or under which the IMP could report a message as lost when it had
in fact been received.
References
[1] BBN Report 1822, Specifications for the interconnection of a host and a IMP (http:/ / www. bitsavers. org/ pdf/bbn/ imp/
BBN1822_Jan1976. pdf)
Further reading
• Frank Heart, Robert Kahn, Severo Ornstein, William Crowther, David Walden (1970). "The Interface Message
Processor for the ARPA Computer Network". Proc. 1970 Spring Joint Computer Conference. 36. AFIPS.
pp. 551–567.
• BBN (May 1978). Interface Message Processor -- Specifications for the Interconnection of a Host and an IMP.
BBN Report 1822. Bolt, Beranek, and Newman, Inc..
• Hubert Zimmermann (April 1980). "OSI Reference Model—The ISO Model of Architecture for Open Systems
Interconnection" (http:// www. comsoc. org/livepubs/ 50_journals/ pdf/RightsManagement_eid=136833. pdf)
(PDF). IEEE Transactions on Communications 28 (4): 425–432. doi:10.1109/TCOM.1980.1094702.
Bearer Independent Call Control
78
Bearer Independent Call Control
The Bearer Independent Call Control (BICC) is a signaling protocol based on N-ISUP that is used for supporting
narrowband ISDN service over a broadband backbone network. BICC is designed to interwork with existing
transport technologies. BICC is specified in ITU-T recommendation Q.1901.
BICC signaling messages are nearly identical to those in ISUP; the main difference being that the narrowband
Circuit Identification Code (CIC) has been removed from the header. The BICC architecture consists of
interconnected Serving Nodes that provide the Call Service Function and the Bearer Control Function. The Call
Service Function uses BICC signaling for call setup and may also interwork with ISUP. The Bearer Control Function
receives directives from the Call Service Function via BICC Bearer Control Protocol (ITU-T recommendation
Q.1950) and is responsible for setup and teardown of bearer paths on a set of physical transport links. Transport links
are most commonly TDM, ATM or IP.
According to the ITU, the completion of the BICC protocols is a historic step toward broadband multimedia
networks because it enables the seamless migration from circuit-switched TDM networks to high-capacity
broadband multimedia networks.
The Third Generation Partnership Project (3GPP) has included BICC CS 2 in the Universal Mobile
Telecommunications Service (UMTS) release 4.
References
• ITU-T Recommendation Q.1901
[1]
: Bearer Independent Call Control protocol
• ITU-T Recommendation Q.1902.1
[2]
: Bearer Independent Call Control protocol (Capability Set 2): Functional
description
• ITU-T Recommendation Q.1950
[3]
: Bearer independent call bearer control protocol
• ITU-T Press Release
[4]
: Agreement on BICC protocols: a historic step for evolution towards next-generation
server-based networks
• 3GPP TS 29.205
[5]
: Application of Q.1900 series to Bearer Independent CS Network architecture; Stage
3---------------------------
References
[1] http:/ / www.itu. int/ rec/T-REC-Q.1901/ en
[2] http:/ / www.itu. int/ rec/T-REC-Q.1902. 1/ en
[3] http:// www.itu. int/ rec/T-REC-Q.1950-200212-I/en
[4] http:/ / www.itu. int/ newsarchive/ press_releases/ 2001/ 13.html
[5] http:// www.3gpp. org/FTP/ Specs/ html-info/29205. htm
BEEP
79
BEEP
In computer networking, BEEP (Blocks Extensible Exchange Protocol) is a framework for creating network
application protocols. It includes an application protocol kernel for connection-oriented asynchronous interactions,
and can be used both for binary and text messages within the context of a single application user identity.
[1]
BEEP is intended to abstract-out the common features that have traditionally been duplicated in each protocol
implementation. BEEP (formerly called BXXP) typically runs on top of TCP and allows the exchange of messages
called 'frames'. Unlike HTTP (and similar protocols), either end of the connection can send a frame at any time, and
'questions' and 'replies' can be interleaved easily. BEEP also includes facilities for encryption and authentication, and
is highly extensible.
BEEP was designed by Marshall Rose, who also worked on the POP3, SMTP, and SNMP protocols.
[2]
References
[1] "BEEP: Blocks Extensible Exchange Protocol" (http:// www. javvin. com/ protocolBEEP.html). : Javvin network management and security.
. Retrieved 2010-03-01.
[2] Carolyn Duffy Marsan (2000-06-26). "'HTTP on steroids' to ease protocol work" (http:// www. networkworld.com/ news/ 2000/ 0626bxxp.
html). Network World. . Retrieved 2008-12-18.
External links
• Official website (http:// http:/ / beepcore.org)
• Introduction to BEEP (http:/ / www-128.ibm.com/ developerworks/ webservices/ library/x-beep/) at IBM.com
• RFC 3080 The Blocks Extensible Exchange Protocol Core
• RFC 3081 Mapping the BEEP Core onto TCP
• RFC 3117 On the Design of Application Protocols, design considerations of the BXXP protocol as told by its
creators
Binary protocol
80
Binary protocol
A binary protocol is a protocol which is intended or expected to be read by a machine rather than a human being, as
opposed to a plain text protocol such as IRC, SMTP, or HTTP. Binary protocols have the advantage of terseness,
which translates into speed of transmission and interpretation.
There has always been tension between two software development camps that believe new protocols should
preferably be text based or binary, respectively. In recent years, with the ready availability of network bandwidth and
mass storage, the text based camp has been gaining significant ground - XML-based systems are nearly ubiquitous -
but the debate continues
[1]
.
Binary protocol is also used in the context of a protocol between exactly two parties, in contrast to a multi-party
protocol. Binary protocol, or binary collaboration have been used in the terminology of standards such as EbXML
and EDOC
[2]
. An interface in the UML
[3]
may also be considered a binary protocol.
References
[1] http:/ / www.webservices. org/weblog/ mark_little/soap_for_the_masses A representative discussion of text and binary protocol debate, by
Mark Little
[2] http:/ / www.omg. org/technology/ documents/ formal/edoc. htm EDOC
[3] http:// www.uml. org/Unified Modeling Language
External links
• Chapter 5 of "The Tao of Unix Programming" (http:// www. catb. org/~esr/ writings/ taoup/ html/ch05s01.
html) champions textual formats over binary protocols.
BIP-8
BIP-8 (alternatively, BIP8) is an abbreviation for bit-interleaved parity 8. BIP-8 consists of a parity byte calculated
bit-wise across a large number of bytes in a transmission transport frame. BIP-8 bits are set such that the overall data
stream, including the BIP-8 byte, has even parity.
[1]
BIP-8 is used in the SONET and Optical Transport Network
standards, as well as in some older PDH framing schemes such as DS3 and E3.
BIP-8 has no error-correcting functionality: like the CRC-6 bits in the much older extended superframe format, it
merely provides an approximate method for monitoring link quality at the bit error level.
References
[1] http:/ / www.its. bldrdoc. gov/ projects/ devglossary/ _bit_interleaved_parity_n.html
Bonjour (software)
81
Bonjour (software)
Bonjour
Developer(s) Apple Inc.
Operating system Mac OS X, Microsoft Windows, Linux, iOS
Type Zeroconf
License Apple Inc. - Proprietary Freeware; portions under the Apache license
Website [1]
In computing, Bonjour is Apple Inc.'s trade name for its implementation of Zeroconf, a service discovery protocol.
Bonjour locates devices such as printers, other computers, and the services that those devices offer on a local
network using multicast Domain Name System service records.
The software comes built-in with Apple's Mac OS X operating system and iOS for iPhone, iPod touch, and iPad.
Bonjour can be installed onto computers running Microsoft Windows operating systems. Bonjour components may
also be included within other software such as iTunes.
Bonjour is released under a terms-of-limited-use license by Apple. It is freeware for clients, though developers and
software companies who wish to redistribute it as part of a software package or use the Bonjour logo may need a
licensing agreement. The source code for mDNSResponder is available under the Apache License.
[2]
After its
introduction in 2002 with Mac OS X v10.2 as Rendezvous, it was renamed in 2005 to Bonjour because of a
trademark issue.
[3]

[4]
Overview
Bonjour provides a general method to discover services on a local area network. The software is widely used
throughout Mac OS X, and allows users to set up a network without any configuration. As of 2010 it is used to find
printers and file-sharing servers. iTunes uses Bonjour to find shared music, iPhoto to find shared photos, iChat,
Adobe Systems Creative Suite 3, Proteus, Adium, Fire, Pidgin, Skype, Vine Server, and Elgato EyeTV to share local
recordings with multiple clients, the Gizmo5 to find other users on the local network, TiVo Desktop to find digital
video recorders and shared-media libraries, SubEthaEdit and e to find document collaborators, Contactizer to find
and share contacts, tasks, and events information, and Things & OmniFocus to synchronize projects and tasks across
the Mac desktop and the iPad, iPhone or iPod touch. It is used by Safari to find local web servers and configuration
pages for local devices, and by Asterisk to advertise telephone services along with configuration parameters to VoIP
phones and dialers. Software such as Bonjour Browser or iStumbler, both for Mac OS X, or Zeroconf Neighborhood
Explorer for Windows, can be used to view all services declared by these applications. Apple's "Remote" application
for iPhone and iPod Touch also uses Bonjour to establish connection to iTunes libraries via Wi-Fi.
[5]
Bonjour only works within a single broadcast domain, which is usually a small area, without special DNS
configuration. Mac OS X, Bonjour for Windows and AirPort Base Stations may be configured to use Wide Area
Bonjour which allows for wide area service discovery via an appropriately configured DNS server.
Applications generally implement Bonjour services using standard TCP/IP calls, rather than in the operating system.
Although Mac OS X provides various Bonjour services, Bonjour also works on other operating systems. Apple has
Bonjour (software)
82
made the source code of the Bonjour multicast DNS responder, the core component of service discovery, available as
a Darwin open source project. The project provides source code to build the responder daemon for a wide range of
platforms, including Mac OS 9, Mac OS X, Linux, *BSD, Solaris, VxWorks, and Windows. Apple also provides a
user-installable set of services called Bonjour for Windows
[6]
and Java libraries. A number of Windows programs
use Zeroconf, including Adobe Systems Creative Suite 3, iTunes, Cerulean Studios' Trillian Pro 3, Ruckus Music
Player from Ruckus Network, and the text editor e.
Microsoft Windows implementation
Bonjour version 2.0, released on February 24, 2010, works with Windows 2000, 2003, XP, Vista, and Windows 7.
[7]
Systems use it primarily to facilitate the installation, configuration, and use of network printers, and thus it runs from
startup. When Bonjour is fully implemented on MS Windows, some features such as iChat allow for communication
between the Mac OS and MS Windows. Bonjour for Windows also adds Zeroconf capabilities to Internet Explorer,
and provides a Zeroconf implementation to Java VMs.
[7]

[8]
Bonjour also comes bundled with some third-party applications, such as Adobe's Photoshop CS3 suite,
[9]
to take
advantage of Zeroconf technology.
Installers on Windows systems normally place Bonjour files in a folder called "Bonjour" within the "Program Files"
folder. It modifies Windows system-registry entries related to internal network configuration and operation. Bonjour
runs as mDNSResponder.exe. Communications across the network take place over UDP port 5353, which may
require reconfiguring some personal or corporate firewalls that block Bonjour packets. A full installation of Bonjour
for Windows will include a plug-in for Internet Explorer, a printer wizard, and the network communication services.
Not all components are included when installed as part of a third-party application or as a component of other Apple
software such as iTunes.
Some VPN clients are configured so that local network services are unavailable to a computer when VPN software is
active and connected.
[7]
In such a case no local Zeroconf services are available to Bonjour or any other Zeroconf
implementation.
The open-source IM clients Pidgin and Kopete support the Bonjour IM protocol, as does the non-GPL Trillian client.
In September 2008, two security vulnerabilities were found in Bonjour for Windows.
[10]
Certain installations of
Bonjour for Windows lack an uninstaller and do not display a human-readable entry in the Windows services
listing.
[11]
Browsers
A number of browsers allow an end-user to graphically explore the devices found using Bonjour.
Bonjour Browser
Bonjour (software)
83
Bonjour Browser
Bonjour Browser Showing 21 services in the local network.
Developer(s) Kevin Ballard
Stable release 1.5.6
Operating system Mac OS X
Type Bonjour browser
License Creative Commons by 1.0
Website
www.tildesoft.com
[12]
Bonjour Browser is a Creative Commons licensed Mac OS X application that displays all services declared using
Bonjour. The program was originally called "Rendezvous Browser", but changed its name in version 1.5.4 after
Apple changed the protocol's name to Bonjour. For certain protocols, double clicking a list item will launch the
associated helper. 1.5.6 is the first universal binary version.
Future versions will allow users to completely define a service, instead of relying on the author to do so.
Bonjour Browser was recommended for service discovery in MacAddict #123.
JBonjourBrowser
A student research project at Columbia University produced a Java-based system to match the functionality of
Bonjour Browser, called JBonjourBrowser
[13]
. JBonjourBrowser is open-source and available under the GPL.
JBonjourBrowser was built to emulate the functionality of Bonjour Browser, and at the same time work on multiple
platforms. It requires Apple's Bonjour Java library to run.
Bonjour Browser for Windows
A windows project to offer similar functionality to Bonjour Browser for Mac OS as a native Windows application.
Bonjour Browser for Windows
[14]
is offered for free by Hobbyist Software and HandyDev Software
Naming
Apple originally introduced the Bonjour software in August 2002 as part of Mac OS X v10.2 under the name
"Rendezvous". On August 27, 2003 Tibco Software Inc announced that it had filed a law suit for trademark
infringement.
[15]
Tibco had an enterprise application integration product called TIBCO Rendezvous on the market
since 1994 and stated that it had tried to come to an agreement with Apple Computer. In July 2004 Apple Computer
and Tibco reached an out-of-court settlement;
[16]
specifics of the settlement were not released to the public.
Bonjour (software)
84
On April 12, 2005, Apple announced the renaming of Rendezvous to "Bonjour".
[3]
The greeting bonjour is French for "good day" and "rendezvous" comes from the French word for "meeting,
appointment".
[17]
References
[1] http:/ / developer.apple. com/ opensource/
[2] "Bonjour Downloads" (http://developer.apple. com/ networking/ bonjour/ download/ ). Developer Connection. Apple. . Retrieved
2009-02-07. File 'LICENSE' within each Bonjour source code download.
[3] Marc Krochmal (2005-04-12). "Rendezvous is changing to..." (http:/ / lists. apple.com/ archives/ rendezvous-dev/2005/ Apr/msg00001.
html). rendezvous-dev mailing list. Apple Computer. . Retrieved 2006-10-11.
[4] http:// www.appleinsider. com/ articles/ 05/ 02/ 18/ apple_to_rename_rendezvous_technology_bonjour.html
[5] "Android DACP Remote Control" (http:/ / dacp. jsharkey. org/). Android DACP Remote Control. Jeffrey Sharkey. . Retrieved 2009-02-23.
[6] http:// www.apple. com/ bonjour/
[7] "Bonjour Downloads" (http://developer.apple. com/ networking/ bonjour/ download/ ). Apple Inc.. 2010-03-08. . Retrieved 2010-03-08.
[8] Apple Inc. "Leopard Sneak Peek - iChat" (http:/ / web. archive.org/ web/ 20061127235645/http:/ / www. apple. com/ macosx/ leopard/ichat.
html). Archived from the original (http:// www. apple. com/ macosx/ leopard/ ichat. html) on 2006-11-27. . Retrieved 2006-11-28.
[9] "CS3 Doesn't Install Spyware" (http:/ / blogs.adobe.com/ jnack/ 2007/ 01/ cs3_doesnt_inst. html). Adobe Systems. January 4, 2007. .
Retrieved 2009-02-07.
[10] "About the security content of Bonjour for Windows 1.0.5" (http:// support.apple.com/ kb/ HT2990). Apple Inc.. September 15, 2008. .
Retrieved 2009-05-27.
[11] "Completly Uninstall and Remove Bonjour Service and Files (mDNSResponder.exe, mdnsNSP.dll) for Windows" (http:/ / arai. wordpress.
com/ 2008/ 02/ 11/ completly-uninstall-and-remove-bonjour-service-and-files-mdnsresponderexe-and-mdnsnspdll/). Amarjeet Rai. February
11, 2008. . Retrieved 2009-07-05.
[12] http:// www. tildesoft. com/
[13] http:/ / wiki. cs.columbia. edu:8080/ display/ res/ JBonjourBrowser
[14] http:// hobbyistsoftware. com/ bonjourBrowser
[15] TIBCO Software (2003-08-27). "TIBCO Software Inc. Sues Apple Computer, Inc. for Trademark Infringement" (http:// www. tibco. com/
company/ news/ releases/ 2003/ press580. jsp). Press release. . Retrieved 2006-10-11.
[16] Daniel Drew Turner (2004-07-22). "Apple Settles TIBCO Suit, Renames Rendezvous" (http:// www. eweek. com/article2/
0,1759,1626397,00.asp). eWeek. . Retrieved 2006-10-11.
[17] "bonjour" (http:// www. merriam-webster.com/ dictionary/BONJOUR). www.merriam-webster.com. Merriam-Webster. . Retrieved
July 28, 2010.
External links
• DNS SRV (RFC 2782) Service Types (http:// www. dns-sd. org/ServiceTypes. html) - List of officially
registered Bonjour service types
• Bonjour - Networking, simplified (http:/ / www.apple.com/ macosx/ features/bonjour/) - General information
from Apple
• Bonjour developer website (http:/ / developer.apple. com/ networking/bonjour/) - Developer resources from
Apple
• Bonjour (http:/ / bonjour.macosforge.org/): The official Bonjour site on Mac OS Forge.
• Zeroconf (http:/ / zeroconf.org) - site with myriad useful links maintained by Stuart Cheshire
• Hour-long talk (http:/ / video.google.com/ videoplay?docid=-7398680103951126462) by Stuart Cheshire on
Google Video about Bonjour and Zeroconf
• Stuart Cheshire and Rendezvous mentioned on Daniel Smith's weblog on the O'Reilly Network (http:/ / www.
oreillynet.com/ pub/ wlg/ 3137)
• Bonjour for Windows...Yes? No? (http:/ / clibra.wordpress. com/ 2007/ 07/ 18/ bonjour-for-windowsyes-no/) -
An article about how Bonjour services are currently implemented into Windows
• Understanding Zeroconf and Multicast DNS (http:/ / www.oreillynet.com/ pub/ a/ wireless/ 2002/ 12/ 20/
zeroconf. html) - An introduction to zero configuration networking, including a comparison between
Bonjour/Zeroconf and Universal Plug 'n' Play
Bonjour (software)
85
• Bonjour Browser website (http:/ / www. tildesoft.com/ Programs.html#BonjourBrowser)
Cache Discovery Protocol
The Cache Discovery Protocol (CDP) is an extension to the BitTorrent file-distribution system. It is designed to
support the discovery and utilisation of local data caches by BitTorrent peers, typically set up by ISPs wishing to
minimise the impact of BitTorrent traffic on their network.
The Cache Discovery Protocol was originally developed jointly by BitTorrent, Inc. and CacheLogic and first
implemented in version 4.20 of the official BitTorrent client, released June 22, 2006. However, despite claims that
the details of the protocol would be published, to date no specification has been made publicly available.
External links
• Slyck.com coverage of the 4.20 release
[1]
References
[1] http:/ / www.slyck. com/ story1231. html
CAIF
CAIF is packet-based connection-oriented MUX protocol developed by ST-Ericsson. It is the primary protocol used
to communicate between ST-Ericsson cellular modems and the external host system. It supports GPRS.
It was merged into Linux kernel 2.6.35
[1]
, committed by Sjur Braendeland of ST-Ericsson.
The protocol family is PF_CAIF and the address family is AF_CAIF.
CAIF socket is connection-oriented implementing the SOCK_SEQPACKET and the SOCK_STREAM interface
with supporting blocking and non-blocking mode.
Device can be managed by RTNL.
There are two device profiles, either high-bandwidth or low-latency for the link layer.
References
[1] "Linux 2 6 35 - Linux Kernel Newbies" (http:// kernelnewbies. org/ Linux_2_6_35#head-9d25abee6a4472c2a13cb86bd3ff7aad9cea2dd1).
Kernelnewbies.org. . Retrieved 2011-03-02.
CAN Kingdom
86
CAN Kingdom
CAN Kingdom is a communications protocol running on top of CAN. It is designed as a fieldbus. Unlike other
CAN high level protocols, it makes no attempt to follow the OSI model. The network is mostly distributed, as the
nodes may run autonomously except that a "King" or master controller is needed to configure the network.
A major design philosophy behind CAN Kingdom is that the system designer is fully aware of the capabilities of the
nodes. A node designer, on the other hand, needs to know nothing about the other nodes: a node merely provides
services to the network, and it is up to the system designer to activate a node's services or not through runtime
configuration.
Terminology
In order to make network terminology friendly to non systems designers, CAN Kingdom uses lay-friendly names.
• Page : a CAN data payload
• Envelope : a CAN identifier
• Letter : a CAN frame
• Form : a specification for fixed format data presented in a page
• Document : a set of forms or pages (depending on context)
• Folder : maps a single document to a set of envelopes
• City/Mayor : a node and its controller
• Capital/King : the single master controlling node
• City Founder : the (human) module designer
• Kingdom Founder : the (human) network designer
Capabilities
CAN Kingdom provides the following capabilities over bare CAN.
• The King configures which nodes will receive and transmit which messages.
• It provides an infrastructure for transmitting fixed format data that runs over a single CAN packet payload length.
In CAN Kingdom parlance this is known as "document pagination".
• It allows point to point transfer of data streams, through the "Block Transfer" mechanism.
• It allows runtime mapping of CAN identifiers with an optional second level of indirection. The first level, from
CAN identifier to "folder" must be mapped by the King. The second level, "folder" to "document", can optionally
be fixed by the node designer.
• It provides a mechanism for clock synchronization.
• It provides a specification for packed bit fields.
• It provides event driven, "daisy chain", and synchronous messaging.
• It provides a mechanism to set message filters.
Because messages can be remapped at runtime, a system designer can configure the system to coexist with nodes on
the system which may be using a different high level protocol like CANopen or DeviceNet.
CANopen
87
CANopen
CANopen is a communication protocol and device profile specification for embedded systems used in automation.
In terms of the OSI model, CANopen implements the layers above and including the network layer. The CANopen
standard consists of an addressing scheme, several small communication protocols and an application layer defined
by a device profile. The communication protocols have support for network management, device monitoring and
communication between nodes, including a simple transport layer for message segmentation/desegmentation. The
lower level protocol implementing the data link and physical layers is usually Controller Area Network (CAN),
although devices using some other means of communication (such as Ethernet Powerlink, EtherCAT) can also
implement the CANopen device profile.
The basic CANopen device and communication profiles are given in the CiA 301 specification released by CAN in
Automation.
CiA301
Profiles for more specialized devices are built on top of this basic profile, and are specified in
numerous other standards released by CAN in Automation, such as CiA 401
CiA401
for I/O-modules and CiA
402
CiA402
for motion control.
Device model
Every CANopen device has to implement certain standard features in its controlling software.
• A Communication unit implements the protocols for messaging with the other nodes in the network
• Starting and resetting the device is controlled via a state machine. It must contain the states Initialization,
Pre-operational, Operational and Stopped. The transitions between states are made by issuing a network
management (NMT) communication object to the device.
• The object dictionary is an array of variables with a 16-bit index. Additionally, each variable can have an 8-bit
subindex. The variables can be used to configure the device and reflect its environment, i.e. contain measurement
data.
• The application part of the device actually performs the desired function of the device, after the state machine is
set to the operational state. The application is configured by variables in the object dictionary and the data is sent
and received through the communication layer.
Object dictionary
CANopen devices must have an object dictionary, which is used for configuration and non-realtime communication
with the device. An entry in the object dictionary is defined by:
• Index, the 16-bit address of the object in the dictionary
• Object name, a symbolic type of the object in the entry, such as an array, record, or simple variable
• Name, a string describing the entry
• Type, gives the datatype of the variable
• Attribute, which gives information on the access rights for this entry, this can be read/write, read-only,
write-only or read only constant
• The Mandatory/Optional field defines whether a device conforming to the device specification has to implement
this object or not
The basic datatypes for object dictionary values such as Booleans, integers and floats are defined in the standard, as
well as composite datatypes such as arrays, records and strings. The composite datatypes can be subindexed with an
8-bit index. The value in subindex 0 of an array or record indicates the number of elements in the data structure, and
is of type UNSIGNED8.
For example, the device communication parameters, standardized in the basic device profile CiA 301
CiA301
are
mapped in the index range 0x1000 - 0x1FFF ("communication profile area"). The first few entries in this area are as
CANopen
88
follows:
Index Object name Name Type Attribute M/O
0x1000 VAR device type UNSIGNED32 ro M
0x1001 VAR error register UNSIGNED8 ro M
... tributed in jan. 6(1991)
0x1008 VAR manufacturer device name Vis-String const O
...
Given suitable tools, the object dictionary of a device can be configured by editing an electronic data sheet (EDS)
file and uploading the variable values to the device. The format of the EDS-file according to CiA306
CiA306
is INI
file, there is an upcoming XML-style format, that is described in CiA311
CiA311
.
Communication
Communication objects
CANbus, the physical layer of CANopen, can only transmit short packages consisting of an 11-bit id, remote
transmission request (RTR) bit and 0 to 8 bytes of data. The CANopen standard divides the 11-bit CAN frame id into
a 4-bit function code and 7-bit CANopen node id. This limits the number of devices in a CANopen network to 127.
An extension to the CANbus standard (CAN 2.0 B) allows extended frame ids of 29 bits, but in practice CANopen
networks big enough to need the extended id range are rarely seen.
In CANopen the 11-bit id of a CAN-frame is known as communication object identifier, or COB-ID. In case of a
transmission collision, the bus arbitration used in the CANbus allows the frame with the smallest id to be transmitted
first and without a delay. Since in CANopen frames the first 4 bits of the frame id are reserved to the function code,
giving a low code number for time critical functions ensures the lowest possible delay.
Contents of a standard CANopen frame:
Function code Node ID RTR Data length Data
Length 4 bits 7 bits 1 bit 4 bits 0-8 bytes
The standard reserves certain COB-IDs to network management and SDO transfers. Some function codes and
COB-IDs have to be mapped to standard functionality after device initialization, but can be configured for other uses
later.
Communication models
Different kinds of communication models are used in the messaging between CANopen nodes.
In a master/slave relationship, one CANopen node is designated as the master, which sends or requests data from
the slaves. The NMT protocol is an example of a master/slave communication model.
A client/server relationship is implemented in the SDO protocol, where the SDO client sends data (the object
dictionary index and subindex) to an SDO server, which replies with one or more SDO packages containing the
requested data (the contents of the object dictionary at the given index).
A producer/consumer model is used in the Heartbeat and Node Guarding protocols. In the push-model of
producer/consumer, the producer sends data to the consumer without a specific request, whereas in the pull model,
the consumer has to request the data from the producer.
CANopen
89
Protocols
Network management (NMT) protocols
The NMT protocols are used to issue state machine change commands (e.g. to start and stop the devices), detect
remote device bootups and error conditions.
The Module control protocol is used by the NMT master to change the state of the devices. The CAN-frame
COB-ID of this protocol is always 0, meaning that it has a function code 0 and node id 0, which means that every
node in the network will process this message. The actual node id, to which the command is meant to, is given in the
data part of the message. This can also be 0, meaning that all the devices in the bus should go to the indicated state.
The Heartbeat protocol is used to monitor the nodes in the network and verify that they are alive. A heartbeat
producer (usually a slave device) periodically sends a message with binary function code of 1110 and its node id
(COB ID = 0x700 + node id). The data part of the frame contains a byte indicating the node status. The heartbeat
consumer reads these messages. If the messages fail to arrive within a certain time limit (defined in the object
dictionary of the devices) the consumer can take action to, for example, reset the device or indicate an error. Frame
format is :
COBID Data Byte 0
0x700 + NodeID State
CANopen devices are required to make the transition from the state Initializing to Pre-operational automatically
during bootup. When this transition is made, a single heartbeat message is sent to the bus. This is the bootup
protocol.
A response/reply-style (pull model) protocol for slave monitoring called Node guarding protocol exists.
Service Data Object (SDO) protocol
The SDO protocol is used to set and read values from the object dictionary of a remote device. The device whose
object dictionary is accessed is the SDO server and the device accessing the remote device is the SDO client. The
communication is always initiated by the SDO client. In CANopen terminology, communication is viewed from the
SDO server, so that a read from an object dictionary results in an SDO upload and a write to dictionary is an SDO
download. (see talk page for "upload/download" ambiguity)
As the object dictionary values can be larger than the 8 byte limit of a CAN frame, the SDO protocol implements
segmentation and desegmentation of longer messages. Actually, there are two of these protocols: SDO
download/upload and SDO Block download/upload. The SDO block transfer is a newer addition to standard, which
allows large amounts of data to be transferred with slightly less protocol overhead.
The COB IDs of the respective SDO transfer messages from client to server and server to client can be set in the
object dictionary. Up to 127 SDO servers can be set up in the object dictionary addresses 0x1200 - 0x127F.
Similarly, the SDO client connections of the device can be configured with variables at 0x1280 - 0x12FF. However
the pre-defined connection set defines an SDO channel which can be used even just after bootup (in the
Pre-operational state) to configure the device. The COB IDs of this channel are 0x600 + node id for receiving and
0x580 + node id for transmitting.
To initiate a download, the SDO client sends the following data in a CAN message with the 'receive' COB ID of the
SDO channel:
3 bits 1 bit 2 bits 1 bit 1 bit 2 bytes 1 byte 4 bytes
ccs=1 reserved(=0) n e s index subindex data
CANopen
90
• ccs is the client command specifier of the SDO transfer, this is 0 for SDO segment download, 1 for initiating
download, 2 for initiating upload, 3 for SDO segment upload and 4 for aborting an SDO transfer
• n is the number of bytes in the data part of the message which do not contain data, only valid if e and s are set
• e, if set, indicates an expedited transfer , i.e. all data exchanged are contained within the message. If this bit is
cleared then the message is a segmented transfer where the data does not fit into one message and multiple
messages are used.
• s, if set, indicates that the data size is specified in n (if e is set) or in the data part of the message
• index is the object dictionary index of the data to be accessed
• subindex is the subindex of the object dictionary variable
• data contains the data to be uploaded in the case of an expedited transfer (e is set), or the size of the data to be
uploaded (s is set, e is not set)
Process Data Object (PDO) protocol
Process Data Object protocol is used to process real time data among various nodes. You can transfer up to 8 bytes
(64bits) data per one PDO either from or to the device. One PDO can contain multiple object dictionary entries and
the objects within one PDO is configurable using the mapping and parameter object dictionary entries.
There are two kinds of PDOs: transmit and receive PDOs (TPDO and RPDO). The former is for data coming from
the device and the latter is for data going to the device, ie. with RPDO you can send data to the device and with
TPDO you can read data from the device. In the pre-defined connection set there are identifiers for four (4) TPDOs
and four (4) RPDOs available. With configuration 512 PDOs are possible.
PDOs can be sent synchronously or asynchronously. Synchronous PDOs are sent after the SYNC message whereas
asynchronous messages are sent after internal or external trigger. For example, you can make a request to a device to
transmit TPDO that contains data you need by sending empty TPDO with RTR flag (if the device is configured to
accept TPDO requests).
With RPDOs you can, for example, start two devices simultaneously. You only need to map the same RPDO into
two or more different device and make sure those RPDOs are mapped with the same COB ID.
Synchronization Object (SYNC) protocol
The Sync-Producer provides the synchronization-signal for the Sync-Consumer. When the Sync-Consumer receive
the signal they start carrying out their synchronous tasks.
In general the fixing of the transmission time of synchronous PDO messages coupled with the periodicity of
transmission of the Sync Object guarantees that sensor devices may arrange to sample process variables and that
actuator devices may apply their actuation in a coordinated fashion.
The identifier of the Sync Object is available at index 1005h.
Time Stamp Object (TIME) protocol
Usually the Time-Stamp object represents an absolute time in ms after midnight and the number of days since
January 1, 1984. This is a bit sequence of length 48 (6 byte).
Some time critical applications especially in large networks with reduced transmission rates require very accurate
synchronization; it may be necessary to synchronize the local clocks with an accuracy in the order of microseconds.
This is achieved by using the optional high resolution synchronization protocol which employs a special form of
time stamp message to adjust the inevitable drift of the local clocks.
The high-resolution time-stamp is encoded as unsigned32 with a resolution of 1 microsecond which means that the
time counter restarts every 72 minutes. It is configured by mapping the high resolution time-stamp (object 1013h)
into a PDO.
CANopen
91
Emergency Object (EMCY) protocol
Emergency messages are triggered by the occurrence of a device internal fatal error situation and are transmitted
from the concerned application device to the other devices with high priority. This makes them suitable for interrupt
type error alerts. An Emergency Telegram may be sent only once per ‘error event’, i.e. the emergency messages must
not be repeated. As long as no new errors occur on a device no further emergency message must be sent. By means
of CANopen Communication Profile defined emergency error codes, the error register and device specific additional
information are specified in the device profiles.
Initialization
Sample trace of communications between a master and 2 pressure transducer slaves configured for id 1 and node id
2.
CAN ID DATA LENGTH DATA Description
0x0 2 1 0 Master puts bus into operational mode
0x80 0 Master sends a SYNC message, which triggers devices to send data
0x181 4 CD 82 01 00 Node at ID 1 (CID-0x180), reading pressure of 0x0182CD(99021) pascals
0x182 4 E5 83 01 00 Node at ID 2 (CID-0x181), reading pressure of 0x0183E5(99301) pascals
Electronic Device Description
The EDS file is a file format, defined in CiA306, that describes the communication behaviour and the object
dictionary entries of a device. This allows tools such as service tools, configuration tools, development tools, and
others to handle the devices properly.
Those EDS files are mandatory for passing the CiA CANopen Conformance Test. A free EDS checker is
CANchkEDS
[1]
.
Since end of 2007 a new XML based format called XDD is defined in CiA311. XDD is conformant to ISO Standard
15745. For both formats a free editor is available, called CANeds. This and an open platform for discussion and
support is available at https:// canopen-forum.com/
[1]
.
Glossary of CANopen Terms
PDO Process Data Object - Inputs and outputs. Values of type RPM, V, Hz, mAmps etc.
SDO Service Data Object - Configuration settings, possibly NODE ID, baud rate, offset, gain etc.
COB-ID - CAN Object Identifiers
CAN ID - CAN Identifier. This is the 11 bit CAN message identifier which is at the beginning of every CAN
message on the bus.
EDS - Electronic data sheet. This is an INI style resp. XML style formatted file.
DCF - Device configuration file. This is modified EDS with settings for node ID and baud rate.
CANopen
92
References
1. CiA Draft Standard 301, available from CAN in Automation
[2]
2. CiA Draft Standard 306
3. CiA Draft Standard 311
4. CiA Draft Standard 401
5. CiA Draft Standard 402
External links
• About CANopen (canopensolutions.com)
[3]
• CanFestival - An open source CANopen multiplatform framework
[4]
• CANopen: An Introduction
[5]
• CANopen overview
[6]
• CANnewsletter-Information on CAN, CANopen and J1939
[7]
• CANopen educational pages
[8]
• CANopen-Page in the CAN-wiki
[9]
• CANopen Introduction
[10]
• Introduction to CANopen Fundamentals (in www.canopen-solutions.com)
[11]
• Wiki of the CANopen-Lift Community
[12]
• Open discussion platform for questions around EDS and XDD
[1]
• CAN Informations for industry
[13]
References
[1] https:/ / canopen-forum.com/
[2] http:/ / www.can-cia.org
[3] http:/ / www.canopensolutions. com/ english/ about_canopen/ about_canopen.shtml
[4] http:// www.canfestival. org/
[5] http:/ / www.industrialcontroldesignline. com/ showArticle. jhtml?articleID=192200423
[6] http:/ / www.can-cia.org/ index. php?id=171
[7] http:// www.cannewsletter. com
[8] http:/ / www.softing. com/ home/ en/ industrial-automation/products/ can-bus/ more-can-open/communication/ reference-model.php
[9] http:// www.can-wiki.info/ CanOpen
[10] http:// www. esacademy. com/ myacademy/ classes/ CANopenIntro/ CANopenIntro_files/frame.htm?category=&
[11] http:/ / www. canopen-solutions. com/ canopen_fundamentals_en.html
[12] http:/ / en. canopen-lift.org/
[13] http:/ / www. thaiio. com/ CANinfo. html
ccTalk
93
ccTalk
ccTalk (pronounced see-see-talk) is a serial protocol in widespread use throughout the money transaction industry.
Peripherals such as coin acceptors, bill validators and hoppers found in a diverse range of automatic payment
equipment such as transportation, ticketing, payphones, amusement machines and retail cash management use
ccTalk to talk to the host controller.
The protocol was developed at a company called Coin Controls (hence coin-controls-talk), now Money Controls, on
the outskirts of Manchester in north-west England mainly by Engineer Andy Barson. The first release of the protocol
was in 1996.
The protocol uses an asynchronous transfer of character frames in a similar manner to RS232. The main difference is
that it uses a single Two-way communication data line for half-duplex communication rather than separate transmit
and receives lines. It operates at TTL voltages and is ‘multi-drop’ i.e. peripherals can be connected to a common bus
and are logically separated by a device address. Each peripheral on the ccTalk bus must have a unique address.
The original protocol operated at 4800 baud with subsequent releases standardising on 9600 baud. Low cost bridge
chips are now available from a number of manufacturers to allow ccTalk to run over USB at baud rates of at least 1
Mbit/s.
ccTalk protocol stacks have been implemented on a range of devices from tiny Microchip microcontrollers with 512
bytes of ROM to powerful ARM7 32-bit processors.
The protocol supports all standard operations for electronic devices such as flash upgrading of firmware, secure
transfer of data and detailed diagnostic information.
Advantages of ccTalk include low cost UART technology, a simple-to-understand packet structure, an easily
expandable command interface and no licensing requirements. The latter affords the protocol a good deal of
popularity in a crowded and highly competitive field similar to open-source software.
In 2010, DES encryption was added to certain commands so that it could be made more resilient against attacks on
the bus.
An Example ccTalk Message Packet
TX data = 002 000 001 245 008 _____
• 002 = destination address
• 000 = zero data bytes
• 001 = source address
• 245 = command header ‘Request equipment category id’
• 008 = checksum ( 002 + 000 + 001 + 245 + 008 = 256 = 0 mod 256 )
This is a message from address 1 ( the host ) to peripheral address 2 to find out what it is.
RX data = 001 013 002 000 067 111 105 110 032 065 099 099 101 112 116 111 114 022
• 001 = destination address
• 013 = 13 data bytes
• 002 = source address
• 000 = reply header
• 067…114 = ASCII for ‘Coin Acceptor’
• 022 = checksum ( sum of all packet bytes is zero )
The reply from address 2 back to address 1 identifies it as a coin acceptor.
ccTalk
94
Coin and Note Naming
A number of associated standards have emerged over the years from within the ccTalk specification. For example,
the global tags to identify the world’s forever changing coins and notes.
In ccTalk a coin has a 6 character identifier <2-letter country code><3-letter value><1-letter issue code>
The country code conforms to ISO 3166. The issue code is assigned to different issue dates or special mint variations
of the same coin.
e.g.
• US025A United States 25c
• GB010B Great Britain 10p
• EU200A Euro 2€
Bank notes follow the same pattern but 4 characters are allocated to the value and there is an associated scaling
factor, usually x100, with the country.
e.g.
• US0001A United States $1
• GB0020A Great Britain £20
• EU0005A Euro 5€
External links
• http:/ / www. cctalk.org
Cell relay
In computer networking, cell relay refers to a method of statistically multiplexing small fixed-length packets, called
"cells", to transport data between computers or kinds of network equipment. It is an unreliable, connection-oriented
packet switched data communications protocol.
Cell relay transmission rates usually are between 56 kbit/s and several gigabits per second. ATM, a particularly
popular form of cell relay, is most commonly used for home DSL connections, which often runs between 128 kbit/s
and 1.544 Mbit/s (DS1), and for high-speed backbone connections (OC-3 and faster).
Cell relay protocols have neither flow control nor error correction capability, are information-content independent,
and correspond only to layers one and two of the OSI Reference Model.
Cell relay can be used for delay- and jitter-sensitive traffic such as voice and video.
Cell relay systems break variable-length user packets into groups of fixed-length cells, that add addressing and
verification information. Frame length is fixed in hardware, based on time delay and user packet-length
considerations. One user data message may be segmented over many cells.
Cell relay statems may also carry bitstream-based data such as PDH traffic, by breaking it into streams of cells, with
a lightweight synchronization and clock recovery shim. Thus cell relay systems may potentially carry any
combination of stream-based and packet-based data. This is a form of statistical time division multiplexing.
Cell relay is an implementation of fast packet-switching technology that is used in connection-oriented broadband
integrated services digital networks (B-ISDN, and its better-known supporting technology ATM) and connectionless
IEEE 802.6 switched multi-megabit data service (SMDS).
Cell relay
95
References
•  This article incorporates public domain material from websites or documents of the General Services
Administration.
CIMD
Computer Interface to Message Distribution (CIMD) is a proprietary short message service centre protocol
developed by Nokia for their SMSC (now: Nokia Siemens Networks).
Syntax
An example CIMD exchange looks like the following:
<STX>03:007<TAB>021:12345678<TAB>033:hello<TAB><ETX>
<STX>53:007<TAB>021:12345678<TAB>060:971107131212<TAB><ETX>
Each packet starts with STX (hex 02) and ends with ETX (hex 03). The content of the packet consists of fields
separated by TAB (hex 09). Each field, in turn, consists of a parameter type, a colon (:), and the parameter value.
Note that the last field must also be terminated with a TAB before the ETX.
Two-digit parameter types are operation codes and each message must have exactly one. The number after the
operation code is the sequence number used to match an operation to its response. The response code
(acknowledgement) of the message is equal to the operation code plus 50.
In the example above, the operation code 03 means submit message. Field 021 defines the destination address
(telephone number), with field 033 is the user data (content) of the message. Response code 53 with a field 060 time
stamp indicates that the message was accepted; if the message failed, the SMSC would reply with field 900 (error
code) instead. A good number of supporting software to implement CIMD is available from Nokia's Web site to
build CIMD client. You can fire SMS from message center with the help of CIMD client tools.
External links
• Nokia: CIMD specification for SC v7.0
[1]
• Nokia: CIMD specification for SC v8.0
[2]
Software
• Kannel
[3]
, Open-Source WAP and SMS Gateway with CIMD 1.3 and CIMD 2.0 support.
References
[1] http:/ / sw.nokia. com/ id/ a58b0133-4ffa-4e17-8b3b-77877688660f/CIMD_Interface_Specification_SC70.pdf
[2] http:/ / sw.nokia. com/ id/ 7a27b9e7-7cdd-4456-b630-3d7c35f30a4f/CIMD_Interface_Specification_SC80.pdf
[3] http:/ / www.kannel. org
Cisco WAAS
96
Cisco WAAS
Cisco Wide Area Application Services (WAAS) is technology that optimizes the performance of TCP-based
applications operating in a Wide Area Network (WAN) environment while preserving and strengthening branch
security. WAAS combines WAN optimization, optimization of the Transport Control Protocol (TCP), Data
Redundancy Elimination (DRE, also known as deduplication) and application protocol acceleration in a single a
network-attached appliance or router-integrated module form factor.
The distributed ADS market was about 4 years old in 2004 when Cisco acquired Actona Technologies. The
acquisition gave Cisco basic wide-area file services (WAFS) techniques. Since then Cisco has been busy integrating
the technology and making several extensions. Cisco calls the resulting software Wide Area Application Services
(WAAS). WAAS delivers a combination of TCP optimization, proxy services, and byte-level and file caching. It
runs on Wide Area Application Engine (WAE) hardware platforms, including standalone appliances and network
modules (NME) for the Cisco Integrated Services Routers (ISRs).
Notably, Cisco was the first to provide a WAN optimization system that was transparent to the network. This was
accomplished by preserving IP packet header details, including IP addresses, and TCP port numbers, which have
been deemed important for intermediary devices and services to function properly. Examples of devices that could
be impacted by packet header obfuscation include firewalls, routers, intrusion detection and prevention systems, and
general quality of service (QoS) techniques. Other providers of this technology have consequently provided solutions
to solving this problem as well.
WAN optimization appliances have traditionally limited IT when it comes to maintaining functions such as security,
Quality of Service, visibility, and monitoring end-to-end transactions because they tend to cause problems for most
network monitoring devices and tools. By design, WAN Optimization “confuses” performance monitoring systems
by changing packet header data.
[1]

[2]
Latest Release
Cisco's latest WAAS software release, announced at the 2010 Cisco Networkers conference, is version 4.3.1.
Alternatives
Open Source
• Traffic Squeezer
[3]
• WANProxy
[4]
Commercial
• Riverbed Steelhead
• Blue Coat ProxySG
• Silver Peak NX, VX & VRX
• Juniper WXC
• Citrix Branch Repeater
Cisco WAAS
97
Notes
[1] The impact of WAN Optimization on TCP Applications (http:// www. networkperformancedaily.com/ 2007/ 07/
whiteboard_series_the_impact_o.html)
[2] Tracking the optimized WAN (http:// www. networkperformancedaily.com/ 2007/ 07/ tracking_the_optimized_wan_net_1.html#more)
[3] http:/ / www.trafficsqueezer.org/
[4] http:/ / wanproxy.org/
References
• Cisco WAAS product page (http:/ / www. cisco. com/ en/ US/ products/ ps5680/ Products_Sub_Category_Home.
html)
• Making your apps faster, Cisco-style (http:/ / www. networkworld.com/ supp/ 2007/ ndc4/
061807-cisco-app-optimization.html?nlhtc=0618ciscoalert1&)
• WAAS up with Cisco's WAN Optimization Initiative? (http:/ / www.networkperformancedaily.com/ 2006/ 12/
waas_up_with_ciscos_wan_optimi_1. html)
• NetQoS partners with Cisco WAAS to develop application response time reporting for WAN optimization (http:/
/www.pcdistrict. com/
netqos-partners-cisco-waas-to-develop-application-response-time-reporting-for-wan-optimization-review299-8.
html)
Coloured Book protocols
The Coloured Book protocols were a set computer network protocols used on the SERCnet and JANET X.25
packet-switched academic networks in the United Kingdom between 1980 and 1992. The name originated with each
protocol being identified by the colour of the cover of its specification document.
After 1992, Internet protocols were adopted on JANET instead; they were operated simultaneously for a while, but
X.25 support was phased out entirely by August 1997.
[1]
Protocols
The standards were:
• The Pink Book defined protocols for transport over Ethernet. The protocol was basically X.25 level 3 running
over LLC2.
• The Orange Book defined protocols for transport over local networks using the Cambridge Ring.
• The Yellow Book defined the Yellow Book Transport Service (YBTS) protocol, which was mainly run over
X.25. It was developed by the Data Communications Protocols Unit of the Department of Industry in the late
1970s.
• The Green Book defined two protocols to connect terminals across a network: an early version of what became
Triple-X PAD running over X.25, and the TS29 protocol modelled on Triple-X PAD, but running over YBTS. It
was developed by Post Office Telecommunications. These protocols are similar in functionality to TELNET.
• The Fawn Book defined the Simple Screen Management Protocol (SSMP)
• The Blue Book defined the Network-Independent File Transfer Protocol (NIFTP), analogous to Internet FTP,
running over YBTS. Unlike Internet FTP, NIFTP was intended for batch mode rather than interactive usage.
• The Grey Book defined protocols for e-mail transfer (not file transfer as is sometimes claimed), running over
Blue Book FTP.
• The Red Book defined the Job Transfer and Manipulation Protocol (JTMP), a mechanism for jobs to be
transferred from one computer to another, and for the output to be returned to the originating (or another)
Coloured Book protocols
98
computer, running over Blue Book FTP.
One famous quirk of Coloured Book was that components of hostnames were backwards compared to the Internet
standard. For example, an address might be acc@UK.AC.HATFIELD.STAR instead of
acc@star.hatfield.ac.uk. For more information, see JANET NRS.
The Yellow Book Transport Service was somewhat misnamed, as it does not fulfill the Transport role in the OSI
7-layer model. It really occupies the top of the Network layer, making up for X.25's lack of NSAP addressing at the
time (which didn't appear until the X.25(1980) revision, and wasn't available in implementations for some years
afterwards). YBTS used Source routing addressing between YBTS nodes—there was no global addressing scheme at
that time.
Notes
[1] "JANET(UK) Quarterly Report to the JANET Community: July 1997 to September 1997" (http:// www. webarchive. ja.net/ services/
publications/archive/ reports/quarterly/autumn-97. html#4. 1). JANET webarchive. 1997. .
References
• A Dictionary of Computing. Oxford University Press, 2004, s.v. "coloured book"
• Reid, Jim (2007-04-03). "The Good Old Days: Networking in UK Academia ~25 Years Ago" (http:// www.
uknof. com/ uknof7/ Reid-History.pdf). UKNOF7. Manchester. Retrieved 2008-04-16.
External links
• alt.folklore.computers: "What is the British Grey Book protocol?" (http:// neil.franklin.ch/ Usenet/ alt.folklore.
computers/ 20020906_What_is_the_British_Grey_Book_protocol)
Common Industrial Protocol
99
Common Industrial Protocol
The Common Industrial Protocol (CIP) is an industrial protocol for industrial automation applications. It is
supported by ODVA.
Previously known as Control and Information Protocol,
[1]
CIP encompasses a comprehensive suite of messages and
services for the collection of manufacturing automation applications – control, safety, synchronization, motion,
configuration and information. It allows users to integrate these manufacturing applications with enterprise-level
Ethernet networks and the Internet. It is supported by hundreds of vendors around the world,
[2]
and is truly
media-independent. CIP provides a unified communication architecture throughout the manufacturing enterprise.
The Common Industrial Protocol (CIP) is used in EtherNet/IP, DeviceNet, CompoNet and ControlNet.
ODVA is the organization that supports network technologies built on the Common Industrial Protocol (CIP). These
also currently include major application extensions to CIP: CIP Safety, CIP Motion and CIP Sync.
References
[1] "Identity Guidelines" (http:/ / odva. org/Home/ ABOUTODVA/ PressRoom/ IdentityGuidelines/ tabid/ 211/lng/ en-US/ language/ en-US/
Default.aspx). Odva.org. p. Sect. 2.b.viii. . Retrieved 2011-03-13.
[2] "Member Roster" (http:// odva. org/Home/ ABOUTODVA/ TheODVACommunity/ MemberRoster/ tabid/ 115/ lng/ en-US/language/
en-US/Default. aspx). ODVA. . Retrieved 13 March 2011.
External links
• ODVA website (http:/ / www. odva.org)
Connection-oriented protocol
A connection-oriented networking protocol is one that establishes a communication session, then delivers a stream of
data in the same order as it was sent. It may be a circuit switched connection, or a virtual circuit connection in a
packet switched network. In the latter case, it identifies traffic flows by some connection identifier rather than by
explicitly listing source and destination addresses. Typically, this connection identifier is a small integer (10 bits for
Frame Relay, 24 for ATM, for example). This makes network switches substantially faster (as routing tables are just
simple look-up tables, and are trivial to implement in hardware). The impact is so great, in fact, that even
characteristically connectionless protocols, such as IP traffic, are being tagged with connection-oriented header
prefixes (e.g., as with MPLS, or IPv6's built-in Flow ID field). Example of a connection-oriented protocol at the
transport layer is the TCP protocol.
Connection-oriented protocols are not necessarily reliable protocols. ATM and Frame Relay, for example, are both
examples of a connection-oriented, unreliable protocol. There are also reliable connectionless protocols as well, such
as AX.25 when it passes data in I-frames. But this combination is rare, and reliable-connectionless is uncommon in
commercial and academic networks.
Connection-oriented protocols handle real-time traffic substantially more efficiently than connectionless protocols,
which is why ATM has yet to be replaced with Ethernet for carrying real-time, isochronous traffic streams,
especially in heavily aggregated networks like backbones, where the motto "bandwidth is cheap" fails to deliver on
its promise. Experience has also shown that over-provisioning bandwidth does not resolve all quality of service
issues. Hence, (10-)gigabit Ethernet is not expected to replace ATM at this time.
Connection-oriented protocol
100
Some connection-oriented protocols have been designed or altered to accommodate both connection-oriented and
connectionless data.
[1]
List of connection-oriented protocols
• TCP
• DCCP
• Connection-oriented Ethernet
• ATM
• Frame Relay
• TIPC
• SCTP
• IPX/SPX
References
[1] Ramos-Escano et al. (2005-06-02). "US Patent Application Publication 2005/0117529 A1" (http:// www. google.com/
patents?id=hzKUAAAAEBAJ). . Retrieved 2008-05-19.
Connectionless communication
In packet switching networks, CL-mode
[1]
or connectionless communication is a data transmission method in
which each data packet carries information in a header record that contains a destination address sufficient to permit
the independent delivery of the packet to its destination via the network.
A packet transmitted in a connectionless mode is frequently called a datagram.
In connection-oriented communication the communicating peers must first establish a logical or physical data
channel or connection in a dialog preceding the exchange of user data.
The connectionless communication mode has the advantage over a connection-oriented mode in that it has low
overhead. It also allows for multicast and broadcast operations, which may save even more network resources when
the same data needs to be transmitted to several recipients. In contrast, a connection is always unicast
(point-to-point).
Unfortunately, in connectionless mode transmission of a packet, the service provider usually cannot guarantee that
there will be no loss, error insertion, misdelivery, duplication, or out-of-sequence delivery of the packet. (However,
the risk of these hazards may be reduced by providing a reliable transmission service at a higher protocol layer of the
OSI Reference Model.)
Another drawback of the connectionless mode is that no optimisations are possible when sending several frames
between the same two peers. By establishing a connection at the beginning of such a data exchange the components
(routers, bridges) along the network path would be able to pre-compute (and hence cache) routing-related
information, avoiding re-computation for every packet. Network components could also reserve capacity for the
transfer of the subsequent frames of e.g. a video download.
The distinction between connectionless and connection-oriented transmission may take place at several layers of the
OSI Reference Model:
• At the Transport Layer: TCP is a connection-oriented transport protocol. UDP is connectionless.
• At the Network Layer.
• At the Data Link Layer: The IEEE 802.2 protocol at the Logical Link Control sublayer of the data link layer may
provide both connectionless and connection-oriented services. In fact, some network protocols (such as SNA's
Connectionless communication
101
Path Control in its early stages) require a connection-oriented data link layer. Others (like IP) do not. (After the
appearance of APPN, SNA could operate on a connectionless data link service as well.)
References
[1] Information Processing Systems - Open Systems Interconnection, "Transport Service Definition - Addendum 1: Connectionless-mode
Transmission", International Organization for Standardization, International Standard 8072/AD 1, December 1986.
•  This article incorporates public domain material from websites or documents of the General Services
Administration.
Connectionless protocol
In telecommunications, connectionless describes communication between two network end points in which a
message can be sent from one end point to another without prior arrangement. The device at one end of the
communication transmits data addressed to the other, without first ensuring that the recipient is available and ready
to receive the data. Some protocols allow for error correction by requested retransmission. Internet Protocol (IP) and
User Datagram Protocol (UDP) are connectionless protocols.
Connectionless protocols are also described as stateless because the endpoints have no protocol-defined way to
remember where they are in a "conversation" of message exchanges.
List of connectionless protocols
• Hypertext Transfer Protocol
• IP (internet layer, can also be used for connections)
• UDP
• ICMP
• IPX
• TIPC
• NetBEUI
Constrained Shortest Path First
102
Constrained Shortest Path First
Constrained Shortest Path First (CSPF) is an extension of shortest path algorithms. The path computed using
CSPF is a shortest path fulfilling a set of constraints. It simply means that it runs shortest path algorithm after
pruning those links that violate a given set of constraints. A constraint could be minimum bandwidth required per
link (also known as bandwidth guaranteed constraint), end-to-end delay, maximum number of links traversed,
include/exclude nodes. CSPF is widely used in MPLS Traffic Engineering. The routing using CSPF is known as
Constraint Based Routing (CBR).
The path computed using CSPF could be exactly same as that of computed from OSPF and IS-IS, or it could be
completely different depending on the set of constraints to be met.
Example with bandwidth constraint
An Example network
Consider the network to the right, where a
route has to be computed from router-1 to
the router-3 satisfying bandwidth
constrained of x- units, and link cost for
each link is based on hop-count (i.e., 1).
If x = 50 units then CSPF will give path 1
→ 2 → 3.
If x = 55 units then CSPF will give path 1
→ 4 → 5 → 3.
If x = 90 units then CSPF will give path 1
→ 4 → 5 → 6 → 3.
In all of these cases OSPF and IS-IS will
result in path 1 → 2 → 3.
However, if the link costs in this topology
are different, CSPF may accordingly
determine a different path. For example,
suppose that as before, hop count is used as
link cost for all links but 1 → 2 and 2 → 3, for which the cost is 4. In this case:
If x = 50 units then CSPF will give path 1 → 2 → 3.
If x = 55 units then CSPF will give path 1 → 4 → 5 → 3.
If x = 90 units then CSPF will give path 1 → 4 → 5 → 6 → 3.
References
• Ziegelmann, Mark (2007). Constrained Shortest Path and Related Problems. Constrained Network Optimization
[1]
. VDM Verlag Dr. Müller. ISBN 978-3-8364-4633-4.
References
[1] http:/ / d-nb.info/ 987067745
Constraint-based Routing Label Distribution Protocol
103
Constraint-based Routing Label Distribution
Protocol
Constraint-based Routing Label Distribution Protocol (CR-LDP) is a control protocol used in some computer
networks. As of February 2003, the IETF MPLS working group deprecated CR-LDP and decided to focus purely on
RSVP-TE.
It is an extension of the Label Distribution Protocol (LDP), one of the protocols in the Multiprotocol Label
Switching architecture. CR-LDP contains extensions for LDP to extend its capabilities such as setup paths beyond
what is available for the routing protocol. For instance, a Label Switched Path can be set up based on explicit route
constraints, quality of service constraints, and other constraints. Constraint-based routing (CR) is a mechanism used
to meet traffic engineering requirements. These requirements are met by extending LDP for support of
constraint-based routed label switched paths (CR-LSPs). Other uses for CR-LSPs include MPLS-based virtual
private networks. CR-LDP is almost same as basic LDP, in packet structure, but it contains some extra TLVs which
basically set up the constraint-based LSP.
Content Vectoring Protocol
Content Vectoring Protocol (CVP) is a protocol for filtering data that is crossing a firewall into an external
scanning device. An example of this is where all HTTP traffic is virus-scanned before being sent out to the user.
This protocol is identified as part of the Checkpoint training as being one of the benefits of their products. It is not
known whether this is just a re-working of another protocol that has been re-branded by Checkpoint or if this is a
generic Internet protocol.
Its default is to use TCP port 18181.
It is used separately by few servers implemeting Firewall to inspect the http content.
It may or may not inspect the whole of the content which is entirely based on the administrator managing the
firewall.
The administrator can direct the whole of the internet traffic to the CVP or specific content coming from specific
source
to be inspected by CVP.
ControlNet
104
ControlNet
Introduction
ControlNet is an open industrial network protocol for industrial automation applications, also known as a fieldbus.
ControlNet was earlier supported by ControlNet International, but in 2008 support and management of ControlNet
was transferred to ODVA, which now manages all protocols in the Common Industrial Protocol family.
Features which set ControlNet apart from other fieldbuses include the built-in support for fully redundant cables and
the fact that communication on ControlNet can be strictly scheduled and highly deterministic. Due to the unique
physical layer, common network sniffers such as Wireshark cannot be used to sniff ControlNet packets. Rockwell
Automation provides ControlNet Traffic Analyzer software to sniff and analyze ControlNet packets.
Architecture
Physical Layer
RG-6 coaxial cable with BNC connectors, though optical fiber is sometimes used for long distances. The network
topology is a bus structure with short taps. ControlNet also supports a star topology if used with the appropriate
hardware. ControlNet can operate with a single RG-6 coaxial cable bus, or a dual RG-6 coaxial cable bus for cable
redundancy. Maximum cable length without repeaters is 1000m and maximum number of nodes on the bus is 99.
However, there is a tradeoff between number of devices on the bus and total cable length. Repeaters can be used to
further extend the cable length.
The physical layer signaling uses Manchester code at 5 Mbit/s.
Link Layer
ControlNet is a scheduled communication network designed for cyclic data exchange. The protocol operates in
cycles, known as NUTs, where NUT stands for Network Update Time. Each NUT has two phases, the first phase is
dedicated to scheduled traffic, where all nodes with scheduled data are guaranteed a transmission opportunity. The
second phase is dedicated to unscheduled traffic. There is no guarantee that every node will get an opportunity to
transmit in every unscheduled phase. Both the scheduled and unscheduled phase use an implicit token ring media
access method. The end of each NUT is marked by the transmission of a moderator frame by the node with the
lowest MAC-ID on the network.
The maximum size of a scheduled or unscheduled ControlNet data frame is 510 Bytes.
Application Layer
The ControlNet application layer protocol is based on the Common Industrial Protocol (CIP) layer which is also used
in DeviceNet and EtherNet/IP.
An End User's Experiences
ControlNet's scheduled message system requires that the media be robustly designed and meticulously maintained. A
break in the media invariably causes a SNAFU. The media is checked with a handheld device known as a "Network
Checker" in conjunction with a DSO running at 100 MHz or higher. ControlNet was designed after Allen-Bradley's
PLC-5 was released, so the PLC-5 system has some inherent troubles using it. In Rockwell PLC systems the network
is configured via RSNetworx For ControlNet. By opening this program the network is scanned and a graphical
screen is populated with each node on the network. Each processor has a "scanlist configuration" which shows its
connections to remote racks, frequency drives, and any other devices that communicate with it. This program
performs for remote racks essentially the same functions as the I/O configuration in the local rack. In the I/O
configuration table of Logix, analog cards can be assigned block transfers. In RSNetworx, ControlNet analog cards
ControlNet
105
in remote racks are assigned scheduled messages in blocks of words. Processors communicate with each other via
"produce" and "consume" tags. A processor's produce tag, for instance, may be 50 words. This block will be
broadcast for any other processor to consume. Likewise, the same processor may consume 50 words from another
processor. Data in this manner can only be produced by one source, but can be consumed by many.
External links
• ODVA website
[1]
• ControlNet International website
[2]
• ControlNet Networks and Communications from Allen-Bradley
[3]
References
[1] http:/ / www.odva. org
[2] http:/ / www.controlnet.org
[3] http:/ / www.ab.com/ networks/ controlnet/
Converged Network Adapter
A converged network adapter (CNA), also called a converged network interface controller (C-NIC), is a computer
input/output device that combines the functionality of a Host Bus Adaptor to a storage area network with a network
interface controller for a general-purpose computer network.
Support
Some products were marketed around 2005 with the term C-NIC which combined iSCSI storage functionality with
Gigabit Ethernet. Later products used the marketing term converged network adapter (CNA), combining Fibre
Channel over Ethernet with 10 Gigabit Ethernet, for example.
Brocade
Brocade Communications Systems offers two types of CNA's, both as PCI Express inteface of the 2nd generation.
The only difference between the two models are the number of interfaces on the cards: one or two. The two port
model will allow connection to two different switches to create a redundant configuration without having to use two
PCI slots.
[1]
Broadcom
In 2009 Broadcom entered the CNA market. Broadcom offers their CNAs under their own brandname but also sell
the ASICs and required other chips to others. Their intended customers are the larger builders of server-systems such
as Dell and HP. These vendors can then include the 10Gb CNA with their servers: as embedded interface on the
motherboard (LOM or LAN on Montherboard), via a mezzanine card in blade servers or as PCI extension-card.
[2]
Converged Network Adapter
106
QLogic
Qlogic offers CNAs via their QLogic 8100 series adapters. They offer single and dual port PCI cards with copper or
optical fibre interfaces.
[3]
QLogic CNA's are available under the QLogic brandname and as OEM cards. The QME
CNA and drivers were supported by Citrix, NetApp, EMC and IBM.
[4]
Hewlett-Packard
HP claims that their BL460c G7 was the first blade-server that offers FCoE via a LOM (Lan on Motherboard) instead
of using a PCI-slot or mezzanine-card.
[5]
Dell
Dell uses the QLogic 8100 series in theire PowerEdge servers. For the M-series, blade-servers for the M1000e
enclosure a specially made dual-port mezzanine card QME8142 is designed. For the normal tower- and rackservers
Dell offers an OEM version of the standard QME 8152 is marketed.
[6]
Cisco
Cisco Systems offered FibreChannel over Ethernet marketed as their Unified Computing System via their UCS
81KR Virtual Interface Card CNA.
[7]
References
[1] Brocade website: Specifications of 1010 and 1020 CNA's (http:/ / www. brocade.com/ products/ all/ adapters/ product-details/
1010-1020-cna/ specifications. page), last visited 30 July, 2011
[2] Frenk Berry Blog on Network Computing: Broadcom unveils CNA (http:/ / www. networkcomputing.com/ data-networking-management/
broadcom-unveils-converged-network-adapter.php), 29 Januari, 2010, visited: 31 Julu, 2011
[3] QLogic website: QLogic launches 8100 CNA (http:// streaming.qlogic.com/ 8100_Launch_Video_datasheet_v4_2.html), visited 31 July,
2011
[4] EMC joins QLogix CNA club (http:/ / wikibon. org/ wiki/ v/ EMC_Joins_QLogic's_FCoE_Converged_Network_Adapter_(CNA)_Club),
November 2010, visited 31 July, 2011
[5] ITBrand Pulse HP embeds 10Gb CNA (http:/ / itbrandpulse. com/ Documents/ Industry2010007 - HP Embeds 10Gb CNA v6.pdf), january
2011, downloaded: 31 July, 2011
[6] Storage Stategies Now report (republished on Qlogic website): Dell chooses QLogic (http:/ / www. qlogic.com/ NewsAndEvents/
Documents/QLogic Dell FCoE Win.pdf), Deni Connor, December 2009, visited: 31 July, 2011
[7] Cisco website Cisco UCS M81KR Virtual Interface Card (http:/ / www. cisco.com/ en/ US/ prod/collateral/ps10265/ ps10280/
data_sheet_c78-525049. html), visited 31 July, 2011
Convergence (telecommunications)
107
Convergence (telecommunications)
Telecommunications convergence, network convergence or simply convergence are broad terms used to describe
emerging telecommunications technologies, and network architecture used to migrate multiple communications
services into a single network.
[1]
Specifically this involves the converging of previously distinct media such as
telephony and data communications into common interfaces on single devices. It is a concept dating to AT&T in
1928, but has evolved in the 21st century to dominate the market positioning of telecoms operators.
Telecommunication convergence is a disruptive technology.
Communication media including data communications, telecommunications and broadcast originally developed as
business operations providing distinct services. Broadcasting, telephony and on-line computer services evolved on
different platforms: TV and radio sets, telephones and computer and were managed by different business support
systems. Different media were each regulated differently by different regulators. Telecom media convergence is
about merging these multiple industries.
[2]
History
The historical roots of convergence can be traced back to the emergence of mobile telephony and the Internet,
although the term properly applies only from the point in marketing history when fixed and mobile telephony began
to be offered by operators as joined products. Fixed and mobile operators were, for most of the 1990s, independent
companies. Even when the same organization marketed both products, these were sold and serviced independently.
Benefits
Enterprises who transition to a converged network often do so to realize savings in information technology (IT)
operational costs, and to integrate their business IT systems. Moving voice and data services to a common network
allows enterprises to more readily access to data. Data and statistics in a call center utilizing a converged network
may now be integrated directly into an enterprise resource planning system.
Many service providers now offer turnkey converged network solutions tailored to the small to medium enterprise
market. Such offerings require far less capital expenditure than a comparable separate, legacy voice and data
solutions. This recent availability of service, low capital expenditure, and relative easy transition has driven many
enterprises to adapt converged network solutions.
Technology implications
Convergent solutions include both fixed-line and mobile technologies. Recent examples of new, convergent services
include:
• Using the Internet for voice telephony
• Video on demand
• Fixed-mobile convergence
• Mobile-to-mobile convergence
• Location-based services
• Integrated products and bundles
Convergent technologies can integrate the fixed-line with mobile to deliver convergent solutions. Convergent
technologies include:
• IP Multimedia Subsystem
• Session Initiation Protocol
• IPTV
Convergence (telecommunications)
108
• Voice over IP
• Voice call continuity
• Digital video broadcasting - handheld
Single view of customer
Convergent solutions integrate with marketing and customer relationship management in order to target bundled
offerings at specific user groups. The integration of multiple services as convergent solutions requires the network
operator to examine the interests and the value adding opportunities of extending base products. As convergent
solutions involve multiple billing and provisioning systems so too must convergent solutions provide unified and
enhanced customer support
[3]
Usability and quality of service
The maturity of convergent solutions beyond early adoption models depends upon the usability and quality of
service provided by convergent solutions. PacketCable Multimedia is an example of an application-independent
Quality of Service architecture for real-time IP based services.
[4]
Policy based security and authorization
Both fixed-line and mobile operators use policy servers as part of a policy-based network that provides authorization
services and control of network systems. As part of a convergent single view of customer network policy, servers
must control access to content and services delivered by multiple providers.
Convergence regulation
Convergence has also raised several debates about classification of certain telecommunications services. As the lines
between data transmission, and voice and media transmission are eroded, regulators are faced with the task of how
best to classify the converging segments of the telecommunication sector.
References
[1] Network convergence definition (http:// searchnetworkingchannel.techtarget.com/ sDefinition/ 0,,sid100_gci1310061,00.html)
[2] "TR136, Telecom Media Convergence, Release 1.0" (http:/ / www. tmforum.org/TechnicalReports/ TR136TelecomMedia/ 33016/ article.
html). TMForum. 2007-05-07. . Retrieved 2011-03-29.
[3] "O2 goes IT" (http:/ / management.silicon. com/ itdirector/0,39024673,39160234,00.htm). . Retrieved 2011-05-03.
[4] "Packetcable Primer" (http:/ / www. packetcable. com/ primer/). . Retrieved 2011-05-03.
External links
• http:/ / www. televerge.com
• http:/ / www. arissoftware.com
CRC-based framing
109
CRC-based framing
The concept of CRC-based framing was developed by StrataCom, Inc. in order to improve the efficiency of a
pre-standard Asynchronous Transfer Mode (ATM) link protocol. This technology was ultimately used in the
principal link protocols of ATM itself and was one of the most significant developments of StrataCom. An advanced
version of CRC-based framing was used in the ITU-T SG15 G.7041 Generic Framing Procedure (GFP), which itself
is used in several packet link protocols.
Overview of CRC-based framing
The method of CRC-Based framing re-uses the header cyclic redundancy check (CRC), which is present in ATM
and other similar protocols, to provide framing on the link with no additional overhead. In ATM, this field is known
as the Header Error Control/Check (HEC) field. The header CRC/HEC is needed for another purpose within an
ATM system, to improve the robustness in cell delivery. Using this same CRC/HEC field for the second purpose of
link framing provided a significant improvement in link efficiency over what other methods of framing, because no
additional bits were required for this second purpose.
A receiver utilizing CRC-based framing bit-shifts along the received bit stream until it finds a bit position where the
header CRC is correct for a number of times. The receiver then declares that it has found the frame. A hysteresis
function is applied to keep the receiver in lock in the presence of a moderate error rate.
In links where there is already a byte lock mechanism present such as within an E-carrier or SDH frame, the receiver
need only byte-shift (rather than of bit-shifting) along the receive data stream to find lock.
Length/HEC-Based Framing
An advanced, variable frame size version of CRC-Based framing is used in ITU-T SG15 G.7041 GFP links where it
is known as Length/HEC-based framing. An offset to the next valid header is present in a fixed position relative to
the CRC/HEC. The receiver looks for a position in the receive data stream following the rules that the header
CRC/HEC is correct and the byte offset correctly points to the next valid header CRC/HEC.
Invention of CRC-based framing
The story behind the invention of CRC-based framing is as follows: StrataCom produced the first (pre-standard)
ATM commercial product, the IPX. The IPX used 24 byte cells instead of ATM's 53 byte cells, and the field
definitions were slightly different, but the basic idea of using short, fixed length cells was identical. StrataCom's first
product had T1 (1.544 Mbit/s) based links which included a 5 bit header CRC, similar to ATM's 8 bit header CRC.
T1 is a time-division multiplexing (TDM) protocol with 24 byte payloads carried in a 193 bit frame. The first bit of
each frame carries one bit out of a special pattern. A receiver finds this special pattern by sequentially looking for the
bit position in the receive data where a bit from this pattern shows up every 193rd byte. It was convenient for
StrataCom to make the length of one cell equal to the length of one T1 frame
[1]
because a useful T1 framer
Integrated Circuit from Rockwell was on the market. This device found the 193 bit long TDM frame and put out the
24 bytes in a form that could be used effectively.
When it came time to produce a European product, the benefit of using 24 byte frames became a liability. The
European T-carrier (E1) format has a 32 byte frame of which 30 bytes could carry data. The development team's first
proposal used the HDLC protocol to encapsulate a sequence of 24 byte cells into a byte stream collected from the 30
byte E1 payloads. This was highly inefficient because HDLC has a heavy and data-dependent overhead. This factor
may have ruined the economics of product for the European market. In the design review, everyone was lamenting
what a bad solution HDLC was for the problem. Brian Holden, who was one of the reviewers present, then uttered
CRC-based framing
110
the sentence "Why don't you just frame on the CRC?". Everyone in the room went "Oh!" as the lightbulb flashed on.
Participating in this design review and uttering this one high-value sentence was Brian's only involvement in this E1
project and the consequent development of CRC-based framing.
The project team went on to base the framing of the E1 project on the CRC
[2]
. A circuit was designed which
examined the incoming byte stream emerging from the E1 framer device and found a byte position for which the
header CRC value was consistently correct. The developers Rick Enns and Paul O'Hare properly got the patent for
the development as Brian Holden did just utter the one sentence.
This team also went on to create a more error tolerant form of the technique.
[3]
A related technique was patented in 1984. That technique uses the CRC to find the start of 50 bit frames composed
of a 36 bit data payload, a 13 bit CRC, and a single 1 bit start-of-frame indicator.
[4]
Notes
[1] Previous Stratacom patent using DS-1's framing (http:// www. google.com/ patents?id=3W4uAAAAEBAJ& dq=4771425)
[2] Original Stratacom CRC-based framing patent (http:/ / www.google.com/ patents?id=A9YkAAAAEBAJ& dq=5072449)
[3] More error tolerant Stratacom CRC-based framing patent (http:/ / www. google.com/ patents?id=aAckAAAAEBAJ& dq=5128945)
[4] "A data receiver ... to detect successive 50-bit frames of data which are transmitted without any pause between frames and with a start bit
value of 1 as the only start-of-frame indication." (http:// www. wikipatents. com/ 4468770.html)
External links
• Official ITU-T website (http:// www. itu. int/ ITU-T/)
• List of all ITU-T Recommendations (http:/ / www.itu.int/ ITU-T/publications/ recs. html)
D54 (protocol)
D54 is an analogue lighting communications protocol used to control stage lighting. It was developed by Strand
Lighting in the late 70s and originally designed to handle 384 channels. Though more advanced protocols exist such
as Digital MultipleX DMX (lighting), it is still widely used in larger venues such as London's West End theatres, and
popular amongst technicians because all the levels can be "seen" on an oscilloscope. D54 is still supported, and is
available on the latest Strand 500 series consoles alongside DMX (lighting).
History
One of the significant problems in controlling dimmers is getting the control signal from a lighting control unit to the
dimmer units. For many years this was achieved by providing a dedicated wire from the control unit to each dimmer
(analogue control) where the voltage present on the wire was varied by the control unit to set the output level of the
dimmer. In about 1976, to deal with the bulky cable requirements of analog control, Strand's R&D group in the UK
developed an analogue multiplexing control system designated D54 (D54 is the internal standards number, which
became the accepted name). Originally developed for use on the Strand Galaxy (1980) and Strand Gemini (1984)
control desks.
Although a claimed expansion capability of 768 dimmers was documented; early receivers used simple hardware
counters that rolled over before reaching 768, effectively preventing commercial exploitation. The refresh period
would also have been slow on such a long dimmer update cycle. Instead, multiple D54 streams were supported by
some later consoles.
D54 was developed in the United Kingdom at approximately the same time as AMX192 (another analog
multiplexing protocol) was developed in the United States, and the two protocols remained almost exclusively in
those countries.
D54 (protocol)
111
Protocol
Article Authors Note : Little information is available regarding this protocol, so the below data is unverified and
provided 'as is'.
Electrical Parameters
Parameter Abr. Transmitting Receiving
Max Min Nominal Max Min Nominal
Transmitting Impedance
1 Ro 10 Ω - - - - -
Receiving Impedance Ri - - - - 90 kΩ 100 kΩ
Termination per dimmer
2 Rt - - - 30 kΩ 20 kΩ 24 kΩ
Termination capacitor
3 Ct - - - +25% -25%
Sync Level Vs -6.0 V -4.0 V -5.0 V - - -
Sync Detector Threshold Vst - - - -3.0 V -2.0 V -2.5 V
Full Level
4 Vf 5.1 V 4.9 V 5.0 V 5.1 V 4.9 V 5.0 V
Off Level Vo 0.1 V 0.1 V 0.0 V 0.1 V 0.1 V 0.0 V
Safe Input Levels Vm - - - - +/-10 V -
1) Outputs to be short-circuit proof to 0 V to unlimited periods.
2) The termination resistor is paralleled for multiple dimmers received, e.g. 24 dimmers use 1 kΩ.
3) The termination capacitor is set to give a 1 µs time-constant, e.g. for Rt = 1k, Ct = 1,000 pF.
4) Full Level may be adjusted at the control system.
Temporal Parameters
Parameter Abr. Transmitting Receiving
Max Min Nominal Max Min Nominal
End of Frame pulse Te 0.5 s 35 µs - 0.5 s 30 µs -
Inter-Frame period Ti 15 µs 0.5 s - - 10 µs -
Sync Pulse Ts 10 µs 6 µs 8 µs 15 µs 3 µs -
Analogue Valid Delay Tv 15 µs - - 20 µs - -
Analogue Hold period Th Td 50 µs - Td 45 µs -
Total Dimmer period Td 0.5 s 70 µs - 0.5 s 70 µs -
Total Cycle period Tc 0.5 s - 40 ms 0.5 s - 40 ms
Analogue Gate Delay Tg 20 µs 0 - - - -
Number of Dimmers N 384 1 - 768 1 -
Slew Rate - - 2 V/µs 2.5 V/µs - 0 -
Practical remarks (Found while working on a project to interface DMX512 console to Strand EC90 dimmer):
1) The frame starts with a 0 volt for (> 50us i.e. a channel time) followed by a sync pulse then (channel 1) value and
so on tell the whole (384 channels) i.e. you send a 0 valued channel then the 384 channel values, this first 0 valued
channel acts as a start code.
2) Every thing works fine when the sync pulse >= 10 us.
D54 (protocol)
112
3) Unlike DMX512 you cannot shorten the frame to the no. of channels you use, the whole 384 channels + the start 0
valued channel must be sent.
Again these remarks are gained from a practical project with Strand EC90 dimmer.
Signal/Timing diagram for Strand D54 dimmer
control protocol
External links
• Strand Lighting Corporate
[1]
• University of Exeter - Strand Archive
[1]
• DIY D54 to DMX512 for Strand ACTION Consoles
[2]
(In German)
• DMX512 to D54 Converter
[3]
References
[1] http:/ / www.strandarchive.co. uk/ control/ d54/ d54. html
[2] http:// www.call-n-deal.de/ uwe/ projekte/stagelightning/ d54-dmx/
[3] http:/ / www.avrfreaks.net/ index. php?module=Freaks%20Academy&func=viewItem&item_id=2866&item_type=project
Data Stream Interface
The Data Stream Interface (DSI) is a session layer used to carry Apple Filing Protocol traffic over Transmission
Control Protocol.
Overview
When Apple introduced TCP with MacTCP and Open Transport in System 7 in the 1990s, they needed their file
sharing protocol (AFP) to run on both TCP and AppleTalk. They introduced AppleTalk Session Protocol (ASP) and
DSI for TCP coincidentally with AFP 2.x.
DSI is implemented directly into AFP clients such as in Mac OS and afpfs-ng.
Protocol
DSI is spoken between a client and an AFP server. All DSI communication contains the following DSI header:
Packet structure
Data Stream Interface
113
DSI Header
[1]
Bit offset Bits 0–7 8-15 15-23 24-31
0 Flags Command Request ID
32 Error code/ enclosed data offset
64 Total data length
96 Reserved
128 Payload
The fields are:
• Flags: whether the packet is a request (0x00) or a reply (0x01)
• Command: one of 7 possible commands (see below)
• Request ID: a sequential identifier set on the request and copied in the reply
• Error code/ enclosed data offset:
• For requests, this is left as 0, except when using the DSIWrite command.
• For replies, this is an error code.
• Total data length: the entire length of data after the DSI header
• Reserved: for future expansion
• Payload: this is where limited DSI data or more commonly AFP header is placed
Commands
There are seven possible commands
[2]
:
DSI Commands
Name Code Direction Description
DSICloseSession 1 Both Closes an established session
DSICommand 2 From client Attached payload contains an AFP command
DSIGetStatus 3 From client Get information about the server
DSIOpenSession 4 From client Establish a new session
DSITickle 5 Both Ensure the connection is active
DSIWrite 6 From client Write data to the server
DSIAttention 8 From server Get the attention of the client
Requests and replies
Upon receiving most DSI requests, the client or server sends a reply message. This reply contains:
• the flags field set to 0x01 (reply)
• the command field set to the same value as the request's command field
• the same request ID sent in the request (used for the client to find the request being acknowledged)
• totalDataLength set to the payload length (if applicable).
• where applicable, the data payload itself following the DSI header. (See the individual command for details.)
The DSITickle and DSICloseSession commands do not trigger a reply.
Data Stream Interface
114
Session creation, maintenance and teardown
A session is set up by the client sending a DSIOpenSession, which will include the size of the receive buffer the
client has for packets (called the request quantum, typically 1024 bytes). The server acknowledges the request and
returns the size of its data receive buffer (typically 256k on Mac OS X Leopard).
Session closure can be initiated by either side by sending DSICloseSession. The sender does not need to wait for a
reply and should immediately close the session after sending the message.
Maintaining the connection is done by tickling. DSI provides a mechanism for ensuring that client and server know
that the other is still active. Every 30 seconds of inactivity, the server sends a tickle request to the client. Similarly,
the client also sends its own tickle. (This is NOT a response packet.) Either the client or server can terminate the DSI
session if they fail to hear from the other for 120 seconds. The client may also disconnect if a request is in flight and
neither a response nor tickle is received within 60 seconds (in Mac OS X v.10.2 and later).
Getting server information with GetStatus
This DSI command encapsulates an FPGetSrvrInfo packet. It is used by a client to get information from a server it
isn't logged into.
The data elements are organized in the packet with a catalog of indices pointing to structured data
[3]
.
The request to a DSIGetStatus request will cause the server to respond with the following information:
• flags for basic server characteristics
• server name (7-bit ASCII and UTF-8)
• signature: used to uniquely identify the server for other AFP transactions
• server type: typically "Macintosh" or "Netatalk"
• a list of strings describing AFP versions spoken (e.g. "AFP3.2")
• UAM list: a list of strings describing User Authentication Methods (e.g. "DHX2")
• a 64x64 pixel icon
• directory server list
DSIGetStatus reply format is identical to AFP's FPGetSrvrInfo and is used for ASPGetStatus.
[4]
.
Error codes
The error codes returned are AFP result codes
[5]
.
Further research
DSI is never documented separately, and is sufficiently simple and static that older references are suitable for
modern implementations. The concepts of DSI are identical to AppleTalk Session Protocol (ASP), and the overview
in Inside AppleTalk, Second Edition can be helpful.
The most succinct guide is the "AFP over TCP"
[6]
chapter of Apple Filing Protocol Programming Guide
[7]
.
A significant source of information in understanding DSI can be found by analyzing communication between AFP
clients and servers using a packet sniffer.
Data Stream Interface
115
Footnotes
[1] "DSIHeader" in "Apple Filing Protocol Reference" (http:// developer.apple. com/ mac/ library/documentation/ Networking/Reference/
AFP_Reference/Reference/ reference.html#/ / apple_ref/c/ tag/ DSIHeader)
[2] "DSI Commands" in "Apple Filing Protocol Programming Guide" (http:/ /developer.apple. com/ mac/ library/documentation/ Networking/
Conceptual/ AFP/AFPOverTCP/ AFPOverTCP.html#/ / apple_ref/doc/ uid/ TP40000854-CH228-SW10)
[3] "FPGetSrvrInfo" in "Apple Filing Protocol Reference" (http://developer.apple. com/ mac/ library/documentation/ Networking/Reference/
AFP_Reference/Reference/ reference.html#/ / apple_ref/c/ func/ FPGetSrvrInfo)
[4] "DSIGetStatus" in "Apple Filing Protocol Reference" (http:/ / developer.apple.com/ mac/ library/documentation/ Networking/Reference/
AFP_Reference/Reference/ reference.html#/ / apple_ref/c/ func/ DSIGetStatus)
[5] "Result Codes" in "Apple Filing Protocol Reference" (http:/ / developer.apple.com/ mac/ library/documentation/ Networking/ Reference/
AFP_Reference/Reference/ reference.html#/ / apple_ref/doc/ uid/ TP40003548-CH6-SW1)
[6] http:/ / developer.apple. com/ mac/ library/documentation/ Networking/ Conceptual/ AFP/ AFPOverTCP/ AFPOverTCP. html#/ / apple_ref/
doc/ uid/ TP40000854-CH228-SW1
[7] http:// developer.apple. com/ mac/ library/documentation/ Networking/ Conceptual/ AFP/ index.html
References
• AppleTalk Filing Protocol Version 2.1 and 2.2 (http:// www. jammed.com/ ~jwa/ hacks/ security/ asip/
ASAppleTalkFiling2. 1_2.2. pdf)
• Inside AppleTalk Sidhu, Gurharan S.; Andrews, Richard F.; Oppenheimer, Alan B. (May 1990), Inside
AppleTalk, Second Edition, Addison-Wesley Publishing Company, Inc., ISBN 0-201-55021-0
• Apple Filing Protocol Programming Guide (http:// developer.apple.com/ DOCUMENTATION/Networking/
Conceptual/ AFP/ AFP3_1. pdf)
• Apple Filing Protocol Reference (http:// developer.apple. com/ DOCUMENTATION/Networking/Reference/
AFP_Reference/ AFP_Reference.pdf)
DCE/RPC
DCE/RPC, short for "Distributed Computing Environment / Remote Procedure Calls", is the remote procedure call
system developed for the Distributed Computing Environment (DCE). This system allows programmers to write
distributed software as if it were all working on the same computer, without having to worry about the underlying
network code.
History
DCE/RPC was commissioned by the Open Software Foundation in a "Request for Technology" (1993 David
Chappell). One of the key companies that contributed was Apollo Computer, who brought in NCA - "Network
Computing Architecture" which became Network Computing System (NCS) and then a major part of DCE/RPC
itself. The naming convention for transports that can be designed (as architectural plugins) and then made available
to DCE/RPC echoes these origins, e.g. ncacn_np (SMB Named Pipes transport); ncacn_tcp (DCE/RPC over
TCP/IP) and ncacn_http to name a small number.
DCE/RPC's history is such that it's sometimes cited as an example of design by committee. It is also frequently noted
for its complexity, however this complexity is often a result of features that target large distributed systems and
which are often unmatched by more recent RPC implementations such as SOAP.
DCE/RPC
116
Software License
Previously, the DCE source was only available under a proprietary license. As of January 12, 2005, it is available
under a recognized open source license (LGPL) permits a broader community to work on the source to expand its
features and keep it current. The source may be downloaded over the web. The release consists of about 100 ".tar.gz"
files that take up 170 Megabytes. (Note that they include the PostScript of all the documentation, for example.)
The Open Group has stated it will work with the DCE community to make DCE available to the open source
development community, as well as continuing to offer the source through The Open Group’s web site.
[1]
DCE/RPC's reference implementation (version 1.1) was previously available under the BSD-compatible (Free
Software) OSF/1.0 license, and is still available for at least Solaris, AIX and VMS.
DCE is also still available under the previous non open-source license terms from the Open Group website.
Uses
It was used in the UK's National Insurance Recording System (NIRS/2).
[2]
It is used in Pennsylvania State University's student information portal, eLion.
It is used by the older version of HP Openview Operations for Unix/Windows Agents. HP Openview Operations is
the largest selling systems and applications management product.
It is used by Microsoft Exchange/Outlook.
It is used by Call of Duty: Modern Warfare 2 for Multiplayer lobbies, making small clouds to decide on a host or
lobby migration.
Alternate versions and implementations
• FreeDCE is the DCE 1.1 reference implementation ported to Linux, supports 64-bit platforms, and is autoconf'd
to make porting to further platforms much easier: a Win32 port is underway.
• Entegrity Solutions licensed the OSF's entire DCE 1.2.2 source code and ported it to Win32, creating a product
called PC/DCE - see http:/ / support.entegrity.com/ private/pcdce32. asp
• Microsoft's version of DCE/RPC, called "MSRPC", is integrated into Windows NT. MSRPC is derived from the
DCE 1.1 reference implementation.
• Samba contains an implementation of MSRPC that is intended to be network-interoperable and IDL-interoperable
with MSRPC. It is not binary-interoperable with MSRPC.
• The Wine Project contains an implementation of MSRPC that is intended to be binary-interoperable and
IDL-interoperable with MSRPC. It is not network-interoperable with MSRPC.
• In 2008, Likewise Software released an implementation of the DCE 1.1 reference.
• J-Interop
[3]
is a working MSRPC implementation in Java. This library can be used on any Non-Windows
platform and without using Java Native Interface (JNI) to provide COM access. It is currently used by OpenNMS
for retrieving WMI data for system monitoring.
• Jarapac
[4]
- DCE/RPC in Java
DCE/RPC
117
Books
"DCE/RPC over SMB: Samba and Windows NT Domain Internals" by Luke Kenneth Casson Leighton ISBN
1578701503
References
[1] (http:// www. opengroup. org/comm/ press/ 05-01-12.htm)
[2] The Open Group, CASE STUDY : NIRS2 (http:/ / www. opengroup.org/ comm/case-studies/ nirs2. htm), Winter 1996
[3] http:/ / www.j-interop.org/
[4] http:/ / jarapac.sourceforge.net/
External links
• DCE/RPC 1.2.2 source from The Open Group, released under the LGPL (http:// www. opengroup.org/ dce/
download/ )
• DCE/RPC 1.2.2 source released under the old license (http:/ / www. opengroup.org/dce/ download/ old_license.
htm)
DECnet
DECnet is a suite of network protocols created by Digital Equipment Corporation, originally released in 1975 in
order to connect two PDP-11 minicomputers. It evolved into one of the first peer-to-peer network architectures, thus
transforming DEC into a networking powerhouse in the 1980s. Initially built with four layers, it later (1982) evolved
into a seven-layer OSI-compliant networking protocol.
DECnet was built right into the DEC flagship operating system VMS since its inception. Later Digital ported it to
Ultrix, as well as Apple Macintosh and IBM PC running variants of DOS and Microsoft Windows under the name
DEC Pathworks, allowing these systems to connect to DECnet networks of VAX machines as terminal nodes. More
recently, an open-source version has been developed for GNU/Linux
[1]
. DECnet code in the Linux kernel was
marked as orphaned on February 18, 2010
[2]
Brief overview of the evolution of DECnet
DECnet refers to a specific set of hardware and software networking products which implement the DIGITAL
Network Architecture (DNA). The DIGITAL Network Architecture is essentially a set of documents which define
the network architecture in general, state the specifications for each layer of the architecture, and describe the
protocols which operate within each layer. Although network protocol analyzer tools tend to categorize all protocols
from DIGITAL as "DECnet", strictly speaking, non-routed DIGITAL protocols such as LAT, SCS, AMDS,
LAST/LAD are not DECnet protocols and are not part of the DIGITAL Network Architecture.
To trace the evolution of DECnet is to trace the development of DNA. The beginnings of DNA were in the early
1970s. DIGITAL published its first DNA specification at about the same time that IBM announced its Systems
Network Architecture (SNA). Since that time, development of DNA has evolved through the following phases:
Phase I (1974) Support limited to two PDP-11s running the RSX-11 operating system only, with communication
over point-to-point (DDCMP) links between nodes.
Phase II (1976) Support for networks of up to 32 nodes with multiple, different implementations which could
interoperate with each other. Implementations expanded to included RSTS, TOPS-10 and TOPS-20 with
communications between processors still limited to point-to-point links only. Introduction of file transfer using File
Access Listener (FAL), remote file access using Data Access Protocol (DAP), task-to-task programming interfaces
DECnet
118
and network management features.
Phase III (1980). Support for networks of up to 255 nodes over point-to point and multi-drop links. Introduction of
adaptive routing capability, downline loading (MOP), record access, a network management architecture, and
gateways to other types of networks including IBM’s SNA and CCITT Recommendation X.25.
DECnet Phase IV protocol suite
Application DAP: Data Access Protocol
CTERM: Command Terminal
Network Management NICE: Network Information (and) Control Exchange
MOP: Maintenance Operation Protocol
Session SCP: Session Control Protocol
Transport NSP: Network Service Protocol
Network DRP: DECnet Routing Protocol
Data link DDCMP: Digital Data Communications Message
Protocol
Ethernet, Token ring, HDLC, FDDI, ...
Physical Ethernet, Token ring, FDDI, ...
Phase IV and Phase IV+ (1982). Phase IV was released initially to RSX-11 and VMS systems, later TOPS-20,
TOPS-10, ULTRIX, VAXELN, and RSTS/E gained support. Support for networks of up to 64,449 nodes (63 areas
of 1023 nodes), datalink capabilities expanded beyond DDCMP to include Ethernet local area network support as the
datalink of choice, expanded adaptive routing capability to include hierarchical routing (areas, level 1 and level 2
routers), VMScluster support (cluster alias) and host services (CTERM). CTERM allowed a user on one computer to
log into another computer remotely, performing the same function that Telnet does in the TCP/IP protocol stack.
Digital also released a product called the PATHWORKS client, and more commonly known as the PATHWORKS
32 client, that implemented much of DECnet Phase IV for DOS, and 16 and 32 bit Microsoft Windows platforms (all
the way through to Windows Server 2003).
Phase IV implemented an 8 layer architecture similar to the OSI (7 layer) model especially at the lower levels (see
diagram). Since the OSI standards were not yet fully developed at the time, many of the Phase IV protocols
remained proprietary.
The Ethernet implementation was unusual in that the software changed the physical address of the Ethernet interface
on the network to AA-00-04-00-xx-yy where xx-yy reflected the DECnet network address of the host. This allowed
ARP-less LAN operation because the LAN address could be deduced from the DECnet address. This precluded
connecting two NICs from the same DECnet node onto the same LAN segment, however.
The initial implementations released were for VMS and RSX-11, later this expanded to virtually every operating
system DIGITAL ever shipped with the notable exception of RT-11. DECnet stacks are found on Linux, SunOS and
other platforms, and Cisco and other network vendors offer products that can cooperate with and operate within
DECnet networks. Full DECnet Phase IV specifications are available.
At the same time that DECnet Phase IV was released, the company also released a proprietary protocol called LAT
for serial terminal access via Terminal servers. LAT is entirely separate from DECnet, though many DECserver LAT
terminal servers did use MOP for the server image download and related bootstrap processing.
Enhancements made to DECnet Phase IV eventually became known as DECnet Phase IV+, although systems
running this protocol remained completely interoperable with DECnet Phase IV systems.
Phase V and Phase V+ (1987). Support for very large (architecturally unlimited) networks, a new network
management model, local or distributed name service, improved performance over Phase IV. Move from a
DECnet
119
proprietary network to an Open Systems Interconnection (OSI) by integration of ISO standards to provide
multi-vendor connectivity and compatibility with DNA Phase IV, the last two features resulted in a hybrid network
architecture (DNA and OSI) with separate “towers” sharing an integrated transport layer. Transparent transport level
links to TCP/IP were added via the IETF RFC 1006 (OSI over IP) and RFC 1859 (NSP over IP) standards (see
diagram).
It was later renamed DECnet/OSI to emphasize its OSI interconnectibility, and subsequently DECnet-Plus as
TCP/IP protocols were incorporated.
Availability
The design of the DECnet protocols was done entirely by Digital Equipment Corporation. But starting with DECnet
Phase II, the protocol specifications were published. They were open standards in the sense that anyone could freely
implement them. And indeed several implementations were developed outside DEC, including one for Linux.
Hobbyist DECnet networks
• HECnet
[3]
• Italian Retro DECnet
[4]
References
[1] Linux-DECnet (http:// linux-decnet. sourceforge.net/ )
[2] Linux Kernel Changelog, 2010-02-18. Christine Caulfield, Orphan DECnet http:// www. kernel. org/pub/ linux/ kernel/ v2.6/ChangeLog-2.
6.33
[3] http:// www.update. uu. se/ ~bqt/hecnet. html
[4] http:/ / decnet. ipv7. net
• Carl Malamud, Analyzing DECnet/OSI Phase V. Van Hostrand Reinhold, 1991. ISBN 0-442-00375-7.
• James Martin, Joe Leben, DECnet Phase V: An OSI Implementation. Digital Press, 1992. ISBN 1-55580-769-0.
• DECnet-Plus manuals for OpenVMS are available at http:// www.hp.com/ go/ openvms/ doc/
• DECnet Phase IV OpenVMS manuals for DECnet Phase IV; these Phase IV manuals are archived on OpenVMS
Freeware V5.0 distribution, at http:// www.hp.com/ go/ openvms/ freeware and other sites.
• DECnet Phase IV architecture manuals (including DDCMP, MOP, NICE, NSP, DAP, CTERM, routing); at http:/
/ h71000. www7. hp. com/ wizard/decnet/ (the originals are mirrored at DECnet for Linux (http:// linux-decnet.
sourceforge. net/ docs/ doc_index.html)).
Decode-Encode Language
120
Decode-Encode Language
The Decode-Encode Language (DEL) is a networking protocol designed by Jeff Rulifson to transmit user input
from consoles or terminals, and receive display information from remote terminals.
External links
• http:/ / www. ietf.org/ rfc/rfc0005.txt
Delay-tolerant networking
Delay-tolerant networking (DTN) is an approach to computer network architecture that seeks to address the
technical issues in heterogeneous networks that may lack continuous network connectivity. Examples of such
networks are those operating in mobile or extreme terrestrial environments, or planned networks in space.
Recently, the term disruption-tolerant networking has gained currency in the United States due to support from
DARPA, which has funded many DTN projects. Disruption may occur because of the limits of wireless radio range,
sparsity of mobile nodes, energy resources, attack, and noise.
History
Further information: History of delay-tolerant networking
In the 1970s, spurred by the micronization of computing, researchers began developing technology for routing
between non-fixed locations of computers. While the field of ad-hoc routing was inactive throughout the 1980s, the
widespread use of wireless protocols reinvigorated the field in the 1990s as mobile ad-hoc networking (MANET)
and vehicular ad-hoc networking became areas of increasing interest.
Concurrently with (but separate from) the MANET activities, DARPA had funded NASA, MITRE and others to
develop a proposal for the Interplanetary Internet (IPN). Internet pioneer Vint Cerf and others developed the initial
IPN architecture, relating to the necessity of networking technologies that can cope with the significant delays and
packet corruption of deep-space communications. In 2002, Kevin Fall started to adapt some of the ideas in the IPN
design to terrestrial networks and coined the term delay-tolerant networking and the DTN acronym. A paper
published in 2003 SIGCOMM conference gives the motivation for DTNs.
[1]
The mid-2000s brought about increased
interest in DTNs, including a growing number of academic conferences on delay and disruption-tolerant networking,
and growing interest in combining work from sensor networks and MANETs with the work on DTN. This field saw
many optimizations on classic ad-hoc and delay-tolerant networking algorithms and began to examine factors such
as security, reliability, verifiability, and other areas of research that are well understood in traditional computer
networking.
Routing
Further information: Routing in delay-tolerant networking
The ability to transport, or route, data from a source to a destination is a fundamental ability all communication
networks must have. Delay and disruption-tolerant networks (DTNs), are characterized by their lack of connectivity,
resulting in a lack of instantaneous end-to-end paths. In these challenging environments, popular ad hoc routing
protocols such as AODV
[2]
and DSR
[3]
fail to establish routes. This is due to these protocols trying to first establish a
complete route and then, after the route has been established, forward the actual data. However, when instantaneous
end-to-end paths are difficult or impossible to establish, routing protocols must take to a "store and forward"
Delay-tolerant networking
121
approach, where data is incrementally moved and stored throughout the network in hopes that it will eventually
reach its destination.
[4]

[5]

[6]
A common technique used to maximize the probability of a message being successfully
transferred is to replicate many copies of the message in the hope that one will succeed in reaching its destination.
[7]
This is feasible only on networks with large amounts of local storage and internode bandwidth relative to the
expected traffic. In many common problem spaces, this inefficiency is outweighed by the increased efficiency and
shortened delivery times made possible by taking maximum advantage of available unscheduled forwarding
opportunities. In others, where available storage and internode throughput opportunities are more tightly constrained,
a more discriminate algorithm is required.
Other concerns
Bundle protocols
In efforts to provide a shared framework for algorithm and application development in DTNs, RFC 4838 and RFC
5050 were published in 2007 to define a common abstraction to software running on disrupted networks. Commonly
known as the Bundle Protocol, this protocol defines a series of contiguous data blocks as a bundle—where each
bundle contains enough semantic information to allow the application to make progress where an individual block
may not. Bundles are routed in a store and forward manner between participating nodes over varied network
transport technologies (including both IP and non-IP based transports). The transport layers carrying the bundles
across their local networks are called bundle convergence layers. The bundle architecture therefore operates as an
overlay network, providing a new naming architecture based on Endpoint Identifiers (EIDs) and coarse-grained class
of service offerings.
Protocols using bundling must leverage application-level preferences for sending bundles across a network. Due to
the store and forward nature of delay-tolerant protocols, routing solutions for delay-tolerant networks can benefit
from exposure to application-layer information. For example, network scheduling can be influenced if application
data must be received in its entirety, quickly, or without variation in packet delay. Bundle protocols collect
application data into bundles that can be sent across heterogeneous network configurations with high-level service
guarantees. The service guarantees are generally set by the application level, and the RFC 5050 Bundle Protocol
specification includes 'bulk', 'normal', and 'expedited' markings.
Security
Addressing security issues has been a major focus of the bundle protocol.
Security concerns for delay-tolerant networks vary depending on the environment and application, though
authentication and privacy are often critical. These security guarantees are difficult to establish in a network without
persistent connectivity because the network hinders complicated cryptographic protocols, hinders key exchange, and
each device must identify other intermittently-visible devices.
[8]

[9]
Solutions have typically been modified from
mobile ad hoc network and distributed security research, such as the use of distributed certificate authorities
[10]
and
PKI schemes. Original solutions from the delay-tolerant research community include: 1) the use of identity-based
encryption, which allows nodes to receive information encrypted with their public identifier;
[11]
and 2) the use of
tamper-evident tables with a gossiping protocol;
[12]
Delay-tolerant networking
122
Research efforts
Various research efforts are currently investigating the issues involved with DTN:
• The The Delay-Tolerant Networking Research Group
[13]
.
• The Technology and Infrastructure for Developing Regions
[14]
project at UC Berkeley
• The Bytewalla
[15]
research project at the Royal Institute of Technology, KTH
[16]
• The KioskNet research project at the University of Waterloo.
• The DieselNet
[17]
research project at the University of Massachusetts, Amherst.
• The ResiliNets Research Initiative
[18]
at the University of Kansas and Lancaster University.
• The Haggle
[19]
EU research project.
• The N4C
[20]
EU/FP7 research project.
• The WNaN
[21]
DARPA project.
• The EMMA
[22]
project at TU Braunschweig
• The DTN networking
[23]
at Helsinki University of Technology.
• The SARAH
[24]
project, funded by the French National Research Agency (ANR
[25]
).
• The development of the DoDWAN platform
[26]
at the University of South Brittany
[27]
.
• The CROWD
[28]
project, funded by the French National Research Agency (ANR
[25]
).
• The PodNet
[29]
project at KTH Stockholm and ETH Zurich.
Some research efforts look at DTN for the Interplanetary Internet by examining use of the Bundle Protocol in space:
• The Saratoga
[30]
project at the University of Surrey, which was the first to test the bundle protocol in space on the
UK-DMC Disaster Monitoring Constellation satellite in 2008.
[31]

[32]

[33]
• NASA JPL's Deep Impact Networking (DINET) Experiment on board the Deep Impact/EPOXI spacecraft.
[34]

[35]
• BioServe Space Technologies, one of the first payload developers to adopt the DTN technology, has utilized their
CGBA (Commercial Generic Bioprocessing Apparatus) payloads onboard the ISS, which provide
computational/communications platforms, to implement the DTN protocol.
[36]

[37]

[38]
References
[1] A Delay-Tolerant Network Architecture for Challenged Internets (http:// conferences.sigcomm.org/ sigcomm/ 2003/ papers. html#p27-fall),
K. Fall, SIGCOMM, August 2003.
[2] Perkins, C.; Royer, E. (1999), "Ad-hoc on-demand distance vector routing", The Second IEEE Workshop on Mobile Computing Systems and
Applications
[3] Johnson, D.; Maltz, D. (1996), "Dynamic source routing in ad hoc wireless networks", Mobile Computing, Kluwer Academic, pp. 153–181
[4] John Burgess, Brian Gallagher, David Jensen, and Brian Neil Levine. MaxProp: Routing for vehicle-based disruption-tolerant networks. In
Proc. IEEE INFOCOM, April 2006.
[5] Philo Juang, Hidekazu Oki, Yong Wang, Margaret Martonosi, Li Shiuan Peh, and Daniel Rubenstein. Energy-efficient computing for wildlife
tracking: design tradeoffs and early experiences with zebranet. SIGOPS Oper. Syst. Rev., 36(5):96–107, 2002.
[6] Augustin Chaintreau, Pan Hui, Jon Crowcroft, Christophe Diot, Richard Gass, and James Scott. Impact of human mobility on opportunistic
forwarding algorithms. IEEE Transactions on Mobile Computing, 6(6):606–620, 2007.
[7] Vahdat, Amin; Becker, David (2000), "Epidemic routing for partially connected ad hoc networks", Technical Report CS-2000-06, Duke
University
[8] "Anonymity and security in delay-tolerant networks" A. Kate, G. Zaverucha, and U. Hengartner. 3rd International Conference on Security
and Privacy in Communication Networks (SecureComm 2007)
[9] "Security Considerations in Space and Delay-Tolerant Networks" S. Farrell and V. Cahill. Proceedings of the 2nd IEEE International
Conference on Space Mission Challenges for Information Technology
[10] DICTATE: DIstributed CerTification Authority with probabilisTic frEshness for Ad Hoc Networks (http:// infoscience.epfl. ch/ record/
54941/files/ 01542053. pdf)
[11] "Practical security for disconnected nodes" Seth, A. Keshav, S. 1st IEEE ICNP Workshop on Secure Network Protocols (NPSec), 2005.
[12] MobiRate: Making Mobile Raters Stick to their Word (http:/ / www. cs. ucl. ac.uk/ staff/D. Quercia/ publications/ quercia08mobirate.pdf).
ACM Ubicomp 2008
[13] http:/ / www. dtnrg.org/
[14] http:/ / tier.cs. berkeley.edu/
[15] http:// www. tslab. ssvl. kth. se/ csd/ projects/092106/
Delay-tolerant networking
123
[16] http:/ / vm-199.xen. ssvl. kth. se/ csdlive/ content/ projects
[17] http:// prisms.cs. umass. edu/ dome/ umassdieselnet
[18] http:/ / wiki. ittc. ku. edu/ resilinets
[19] http:// haggleproject.org
[20] http:/ / www. n4c. eu
[21] http:/ / www. darpa.mil/ STO/ strategic/ wireless. html
[22] http:/ / www. ibr.cs. tu-bs. de/ projects/ emma/
[23] http:/ / www. netlab. hut. fi/u/ jo/ dtn/ index. html
[24] http:/ / www-valoria.univ-ubs. fr/SARAH
[25] http:// www. agence-nationale-recherche.fr/
[26] http:/ / www-valoria.univ-ubs. fr/CASA/ DoDWAN
[27] http:// www-valoria.univ-ubs. fr
[28] http:/ / anr-crowd.lip6. fr/
[29] http:/ / podnet. ee. ethz. ch/
[30] http:// personal. ee. surrey.ac. uk/ Personal/ L. Wood/ saratoga/
[31] Use of the Delay-Tolerant Networking Bundle Protocol from Space (http:// info.ee.surrey.ac. uk/ Personal/ L. Wood/ publications/ ), L.
Wood et al., Conference paper IAC-08-B2.3.10, 59th International Astronautical Congress, Glasgow, September 2008.
[32] UK-DMC satellite first to transfer sensor data from space using 'bundle' protocol (http:/ / www. sstl. co. uk/ News_and_Events/
Latest_News/?story=1254), press release, Surrey Satellite Technology Ltd, 11 September 2008.
[33] CLEO Orbital Internet earns Time Magazine award (http:// www. engineeringbritain.com/ space/ archives/
190-CLEO-Orbital-Internet-earns-Time-Magazine-award.html), Robin Wolstenholme, Surrey Satellite Technology Ltd space blog, 14
November 2008.
[34] A Better Network for Outer Space (http:// www. technologyreview.com/ communications/ 21601/ ?a=f), Brittany Sauser, MIT Technology
Review, 27 October 2008.
[35] NASA Successfully Tests First Deep Space Internet (http:/ / www. nasa. gov/ home/ hqnews/ 2008/ nov/ HQ_08-298_Deep_space_internet.
html), NASA press release 08-298, 18 November 2008.
[36] Jenkins, Andrew; Kuzminsky, Sebastian; Gifford, Kevin K.; Holbrook, Mark; Nichols, Kelvin; Pitts, Lee. (2010).
"Delay/Disruption-Tolerant Networking: Flight Test Results from the International Space Station." (http:// www-bioserve.colorado.edu/
wp2/ wp-content/uploads/ 2010/ 05/ DTN-Initial-Flight-Tests-Results-v0.035.pdf) IEEE Aerospace Conference.
[37] Gifford, Kevin K.; Jenkins, Andrew; Holbrook, Mark; Kuzminsky, Sebastian; Nichols, Kelvin; Pitts, Lee. (2010). "DTN Implementation
and Utilization Options on the International Space Station." (http:/ / www-bioserve.colorado.edu/ wp2/ wp-content/uploads/ 2010/ 09/
AIAA-2010-2173-810.pdf) American Institute of Aeronautics and Astronautics.]
[38] The Automation Group at BioServe Space Technologies (http:// bioserve.colorado.edu) University of Colorado, Boulder.
Dense multicast
124
Dense multicast
Dense mode multicast is one mode that multicast can use to construct a tree for sending packets to the multicast
subscribers. It is the opposite of sparse multicast.
Dense mode is ideal for groups where many of the nodes will subscribe to receive the multicast packets, so that most
of the routers must receive and forward these packets (groups of a high density).
The source initially broadcasts to every router, and thus every node. Then each node that does not wish to receive
packets destined for that group will send a prune message to its router. Upon receiving a prune message, the router
will modify its state so that it will not forward those packets out that interface. If every interface on a router is
pruned, the router will also be pruned.
Additionally, the routers will use reverse-path forwarding to ensure that there are no loops for packet forwarding
among routers that wish to receive multicast packets.
PIM Dense Mode (PIM-DM) uses a fairly simple approach to handle IP multicast routing. The basic assumption
behind PIM-DM is that the multicast packet stream has receivers at most locations. An example of this might be a
company presentation by the CEO or President of a company. By way of contrast, PIM Sparse Mode (PIM-SM)
assumes relatively fewer receivers. An example would be the initial orientation video for new employees.
This difference shows up in the initial behavior and mechanisms of the two protocols. PIM-SM only sends multicasts
when requested to do so. Whereas PIM-DM starts by flooding the multicast traffic, and then stopping it each link
where it is not needed, using a Prune message. I think of the Prune message as one router telling another "we don't
need that multicast over here right now".
Devices Profile for Web Services
The Devices Profile for Web Services (DPWS) defines a minimal set of implementation constraints to enable
secure Web Service messaging, discovery, description, and eventing on resource-constrained devices.
Its objectives are similar to those of Universal Plug and Play (UPnP) but, in addition, DPWS is fully aligned with
Web Services technology and includes numerous extension points allowing for seamless integration of
device-provided services in enterprise-wide application scenarios.
DPWS Standardization
The DPWS specification was initially published in May 2004 and was submitted for standardization to OASIS in
July 2008. DPWS 1.1 was approved as OASIS Standard together with WS-Discovery 1.1 and SOAP-over-UDP 1.1
on June 30 2009.
DPWS defines an architecture in which devices run two types of services: hosting services and hosted services.
Hosting services are directly associated to a device, and play an important part in the device discovery process.
Hosted services are mostly functional and depend on their hosting device for discovery.
In addition to these hosted services, DPWS specifies a set of built-in services:
• Discovery services: used by a device connected to a network to advertise itself and to discover other devices.
Support of discovery has led some to dub DPWS as "the USB for Ethernet."
• Metadata exchange services: provide dynamic access to a device’s hosted services and to their metadata.
• Publish/subscribe eventing services: allowing other devices to subscribe to asynchronous event messages
produced by a given service.
Devices Profile for Web Services
125
DPWS builds on the following core Web Services standards: WSDL 1.1, XML Schema, SOAP 1.2, WS-Addressing,
and further comprises WS-MetadataExchange, WS-Transfer, WS-Policy, WS-Security, WS-Discovery and
WS-Eventing.
Microsoft's Windows Vista and Windows Embedded CE6R2 platforms natively integrate DPWS with a stack called
WSDAPI, included as part of the Windows Rally technologies. Support for OSGi is on the way.
Use Cases
Because DPWS supports dynamic discovery, and is part of the evolving vision of distributed applications that
leverage WS-* standards, its application to automation environments is clear. At the 2007 Consumer Electronics
Show, a “Next Gen” home was highlighted by an automation system, Life|ware from Exceptional Innovation, that
uses DPWS to communicate with a lighting system, audio distribution system, security system, motorized shades,
security cameras, thermostats, washers and dryers, and a motorized television mount. The show demonstrated
tremendous consumer interest in the prospect of bringing controllable devices into the same environment as digital
entertainment, and manufacturers are taking notice.
For many manufacturers, the first step towards DPWS adoption is the creation of a small “device bridge” between
their native, usually proprietary, code and Web Services. At least 117 automation and AV products from 37 different
vendors currently support DPWS either natively or through a bridge. At the International Security Controls (ISC)
trade show, a major security company demonstrated a security system that supported DPWS, while the Kitchen and
Bath Show (KBIS) saw two major appliance manufacturers demonstrating washers and dryers that communicated
using DPWS. A communicative oven has been demonstrated at the International Building Show for the past two
years. An even greater sign of the drive towards market acceptance of DPWS is the recent ConnectedLife. Home
automation package offered by US retailer Best Buy. The package uses automation software and controllable devices
that leverage DPWS for communications.
Research Projects driving DPWS adoption
Within the SIRENA project, under the auspices of the European research initiative ITEA, Schneider Electric
produced an early DPWS implementation targeted at embedded devices. This implementation was open-sourced
through the SOA4D.org
[1]
(SOA for Devices) Website, from which the DPWS stack (both C and Java versions) and
its add-ons (like WS-Management and WS-Security implementations) can be freely downloaded.
Also stemming from the SIRENA project, the "Web Services for Devices" (WS4D.org) Website provides
information, downloads and news about three DPWS implementations: one C implementation integrating gSOAP,
one Java implementation using Axis, and another Java implementation that can use different Java editions, including
Java ME.
Following the SIRENA project, a new European research project from ITEA, named SODA (Service Oriented
Device and Delivery Architecture), went further into the development and implementation of an embedded DPWS
stack for devices and associated tools.
The EU Research Project SOCRADES composed by heavyweights like ABB, SAP, Schneider Electric, and
Siemens, are focusing on implementing, testing and piloting prototypes of DPWS-enabled devices in the industrial
automation domain.
There are several proposals and/or projects having worked on an integration of DPWS with OSGi, i.e. mainly
providing an implementation for this Java framework.
Devices Profile for Web Services
126
External links
• The DPWS Specification
[2]
• OASIS Web Services Discovery and Web Services Devices Profile (WS-DD) Technical Committee
[3]
References
[1] http:/ / www.soa4d. org
[2] http:/ / docs. oasis-open. org/ws-dd/ ns/ dpws/ 2009/ 01
[3] http:// www.oasis-open. org/ committees/ tc_home. php?wg_abbrev=ws-dd
DH 485
DH 485 is a proprietary communications protocol used by Allen-Bradley in their line of industrial control units.
Utilizing a series of dedicated interface devices, it allows PCs and industrial controllers to communicate in a local
area network using an RS-485 physical medium utilizing a token passing medium access control.
[1]
References
[1] "DH-485 Industrial Local Area Network Overview" (http:// www. ab. com/ en/ epub/ catalogs/ 12762/ 2181376/ 214372/ 1535907/ 3404063/
). Rockwell Automation. . Retrieved 10 September 2010.
DICOM
DICOM (Digital Imaging and Communications in Medicine) is a standard for handling, storing, printing, and
transmitting information in medical imaging. It includes a file format definition and a network communications
protocol. The communication protocol is an application protocol that uses TCP/IP to communicate between systems.
DICOM files can be exchanged between two entities that are capable of receiving image and patient data in DICOM
format. The National Electrical Manufacturers Association (NEMA) holds the copyright to this standard.
[1]
It was
developed by the DICOM Standards Committee, whose members
[2]
are also partly members of NEMA.
[3]
DICOM enables the integration of scanners, servers, workstations, printers, and network hardware from multiple
manufacturers into a picture archiving and communication system (PACS). The different devices come with DICOM
conformance statements which clearly state the DICOM classes they support. DICOM has been widely adopted by
hospitals and is making inroads in smaller applications like dentists' and doctors' offices.
DICOM is known as NEMA standard PS3, and as ISO standard 12052:2006 "Health informatics -- Digital imaging
and communication in medicine (DICOM) including workflow and data management".
Parts of the DICOM Standard
The DICOM standard is divided into related but independent parts:
[4]
The links below are to the 2009 version published in January 2010. Additions to the standard (Supplements and
Change Proposals) since that publication are available through the DICOM Web site
[5]
.
• PS 3.1: Introduction and Overview
[6]
PDF (241 KB)
• PS 3.2: Conformance
[7]
PDF (6.46 MB)
• PS 3.3: Information Object Definitions
[8]
PDF (6.96 MB)
• PS 3.4: Service Class Specifications
[9]
PDF (1.07 MB)
• PS 3.5: Data Structure and Encoding
[10]
PDF (1.43 MB)
• PS 3.6: Data Dictionary
[11]
PDF (7.32 MB)
DICOM
127
• PS 3.7: Message Exchange
[12]
PDF (1.97 MB)
• PS 3.8: Network Communication Support for Message Exchange
[13]
PDF (901 KB)
• PS 3.9: Retired (formerly Point-to-Point Communication Support for Message Exchange)
• PS 3.10: Media Storage and File Format for Data Interchange
[14]
PDF (406 KB)
• PS 3.11: Media Storage Application Profiles
[15]
PDF (1.14 MB)
• PS 3.12: Storage Functions and Media Formats for Data Interchange
[16]
PDF (593 KB)
• PS 3.13: Retired (formerly Print Management Point-to-Point Communication Support)
• PS 3.14: Grayscale Standard Display Function
[17]
PDF (2.88 MB)
• PS 3.15: Security and System Management Profiles
[18]
PDF (1.00 MB)
• PS 3.16: Content Mapping Resource
[19]
PDF (3.08 MB)
• PS 3.17: Explanatory Information
[20]
PDF (3.28 MB)
• PS 3.18: Web Access to DICOM Persistent Objects (WADO)
[21]
PDF (291 KB)
History
Front page of ACR/NEMA 300, version 1.0,
which was released in 1985
DICOM is the third version of a standard developed by American
College of Radiology (ACR) and National Electrical Manufacturers
Association (NEMA).
In the beginning of the 1980s it was almost impossible for anyone
other than manufacturers of computed tomography or magnetic
resonance imaging devices to decode the images that the machines
generated. Radiologists and medical physicists wanted to use the
images for dose-planning for radiation therapy. ACR and NEMA
joined forces and formed a standard committee in 1983. Their first
standard, ACR/NEMA 300, was released in 1985. Very soon after its
release, it became clear that improvements were needed. The text was
vague and had internal contradictions.
In 1988 the second version was released. This version gained more
acceptance among vendors. The image transmission was specified as
over a dedicated 25 differential (EIA-485) pair cable. The first
demonstration of ACR/NEMA V2.0 interconnectivity technology was
held at Georgetown University, May 21–23, 1990. Six companies participated in this event, DeJarnette Research
Systems, General Electric Medical Systems, Merge Technologies, Siemens Medical Systems, Vortech (acquired by
Kodak that same year) and 3M. Commercial equipment supporting ACR/NEMA 2.0 was presented at the annual
meeting of the Radiological Society of North America (RSNA) in 1990 by these same vendors. Many soon realized
that the second version also needed improvement. Several extensions to ACR/NEMA 2.0 were created, like Papyrus
(developed by the University Hospital of Geneva, Switzerland) and SPI, (Standard Product Interconnect, driven by
Siemens Medical Systems and Philips Medical Systems).
The first large scale deployment of ACR/NEMA technology was made in 1992 by the US Army and Air Force as
part of the MDIS (Medical Diagnostic Imaging Support)
[22]
program run out of Ft. Detrick, Maryland. Loral
Aerospace and Siemens Medical Systems led a consortium of companies in deploying the first US military PACS
(Picture Archiving and Communications System) at all major Army and Air Force medical treatment facilities and
teleradiology nodes at a large number of US military clinics. DeJarnette Research Systems and Merge Technologies
provided the modality gateway interfaces from third party imaging modalities to the Siemens SPI network. The
Veterans Administration and the Navy also purchased systems off this contract.
DICOM
128
In 1993 the third version of the standard was released. Its name was then changed to DICOM so as to improve the
possibility of international acceptance as a standard. New service classes were defined, network support added and
the Conformance Statement was introduced. Officially, the latest version of the standard is still 3.0, however, it has
been constantly updated and extended since 1993. Instead of using the version number the standard is often
version-numbered using the release year, like "the 2007 version of DICOM".
While the DICOM standard has achieved a near universal level of acceptance amongst medical imaging equipment
vendors and healthcare IT organizations, the standard has its limitations. DICOM is a standard directed at addressing
technical interoperability issues in medical imaging. It is not a framework or architecture for achieving a useful
clinical workflow. RSNA's Integrating the Healthcare Enterprise (IHE) initiative layered on top of DICOM (and
HL-7) provides this final piece of the medical imaging interoperability puzzle.
Derivations
There are some derivations from the DICOM standard into other application areas. This includes
• DICONDE - Digital Imaging and Communication in Nondestructive Evaluation, was established in 2004 as a
way for nondestructive testing manufacturers and users to share image data.
[23]
• DICOS - Digital Imaging and Communication in Security was established in 2009 to be used for image sharing in
airport security.
[24]
DICOM Data Format
DICOM differs from some, but not all, data formats in that it groups information into data sets. That means that a file
of a chest X-Ray image, for example, actually contains the patient ID within the file, so that the image can never be
separated from this information by mistake. This is similar to the way that image formats such as JPEG can also have
embedded tags to identify and otherwise describe the image.
A DICOM data object consists of a number of attributes, including items such as name, ID, etc., and also one special
attribute containing the image pixel data (i.e. logically, the main object has no "header" as such: merely a list of
attributes, including the pixel data). A single DICOM object can only contain one attribute containing pixel data. For
many modalities, this corresponds to a single image. But note that the attribute may contain multiple "frames",
allowing storage of cine loops or other multi-frame data. Another example is NM data, where an NM image by
definition is a multi-dimensional multi-frame image. In these cases three- or four-dimensional data can be
encapsulated in a single DICOM object. Pixel data can be compressed using a variety of standards, including JPEG,
JPEG Lossless, JPEG 2000, and Run-length encoding (RLE). LZW (zip) compression can be used for the whole data
set (not just the pixel data) but this is rarely implemented.
DICOM uses three different Data Element encoding schemes. With Explicit Value Representation (VR) Data
Elements, for VRs that are not OB, OW, OF, SQ, UT, or UN, the format for each Data Element is: GROUP (2 bytes)
ELEMENT (2 bytes) VR (2 bytes) LengthInByte (2 bytes) Data (variable length). For the other Explicit Data
Elements or Implicit Data Elements, see section 7.1 of Part 5 of the DICOM Standard.
The same basic format is used for all applications, including network and file usage, but when written to a file,
usually a true "header" (containing copies of a few key attributes and details of the application which wrote it) is
added.
DICOM
129
DICOM Value Representations
Extracted from Chapter 6.2 of
• PS 3.5: Data Structure and Encoding
[25]
PDF (1.43 MiB)
Value Representation Description
AE Application Entity
AS Age String
AT Attribute Tag
CS Code String
DA Date
DS Decimal String
DT Date/Time
FL Floating Point Single (4 bytes)
FD Floating Point Double (8 bytes)
IS Integer String
LO Long String
LT Long Text
OB Other Byte
OF Other Float
OW Other Word
PN Person Name
SH Short String
SL Signed Long
SQ Sequence of Items
SS Signed Short
ST Short Text
TM Time
UI Unique Identifier
UL Unsigned Long
UN Unknown
US Unsigned Short
UT Unlimited Text
In addition to a Value Representation, each attribute also has a Value Multiplicity to indicate the number of data
elements contained in the attribute. For character string value representations, if more than one data element is being
encoded, the successive data elements are separated by the backslash character "\".
DICOM
130
DICOM Services
DICOM consists of many different services, most of which involve transmission of data over a network, and the file
format below is a later and relatively minor addition to the standard.
Store
The DICOM Store service is used to send images or other persistent objects (structured reports, etc.) to a PACS or
workstation.
Storage Commitment
The DICOM storage commitment service is used to confirm that an image has been permanently stored by a device
(either on redundant disks or on backup media, e.g. burnt to a CD). The Service Class User (SCU: similar to a
client), a modality or workstation, etc., uses the confirmation from the Service Class Provider (SCP: similar to a
server), an archive station for instance, to make sure that it is safe to delete the images locally.
Query/Retrieve
This enables a workstation to find lists of images or other such objects and then retrieve them from a PACS.
Modality Worklist
This enables a piece of imaging equipment (a modality) to obtain details of patients and scheduled examinations
electronically, avoiding the need to type such information multiple times (and the mistakes caused by retyping).
Modality Performed Procedure Step
A complementary service to Modality Worklist, this enables the modality to send a report about a performed
examination including data about the images acquired, beginning time, end time, and duration of a study, dose
delivered, etc. It helps give the radiology department a more precise handle on resource (acquisition station) use.
Also known as MPPS, this service allows a modality to better coordinate with image storage servers by giving the
server a list of objects to send before or while actually sending such objects.
Printing
The DICOM Printing service is used to send images to a DICOM Printer, normally to print an "X-Ray" film. There
is a standard calibration (defined in DICOM Part 14) to help ensure consistency between various display devices,
including hard copy printout.
Off-line Media (DICOM Files)
The off-line media files correspond to Part 10 of the DICOM standard. It describes how to store medical imaging
information on removable media. Except for the data set containing, for example, an image and demography, it's also
mandatory to include the File Meta Information.
DICOM restricts the filenames on DICOM media to 8 characters (some systems wrongly use 8.3, but this does not
conform to the standard). No information must be extracted from these names (PS3.10 Section 6.2.3.2). This is a
common source of problems with media created by developers who did not read the specifications carefully. This is
a historical requirement to maintain compatibility with older existing systems. It also mandates the presence of a
media directory, the DICOMDIR file, which provides index and summary information for all the DICOM files on
the media. The DICOMDIR information provides substantially greater information about each file than any filename
could, so there is less need for meaningful file names.
DICOM
131
DICOM files typically have a .dcm file extension if they are not part of a DICOM media (which requires them to be
without extension).
The MIME type for DICOM files is defined by RFC 3240 as application/dicom.
The Uniform Type Identifier type for DICOM files is org.nema.dicom.
There is also an ongoing media exchange test and "connectathon" process for CD media and network operation that
is organized by the IHE organization.
Application areas
Modality Description
BI Modality of type Biomagnetic Imaging
CD Modality of type Color Flow Doppler-Retired 2008
CR Modality of type Computed Radiography
CT Modality of type Computed Tomography
DD Modality of type Duplex Doppler-Retired 2008
DG Modality of type Diaphanography
DX Modality of type Digital Radiography
EC Modality of type Echo cardiography (retired)
EM Modality of type Electron Microscope
ES Modality of type Endoscopy
GM Modality of type General Microscopy
LS Modality of type Laser Surface Scan
MA Modality of type Magnetic Resonance Angiography (retired)
MG Modality of type Mammography
MR Modality of type Magnetic Resonance
MS Modality of type Magnetic Resonance Spectroscopy (retired)
NM Modality of type Nuclear Medicine
OT Modality of type Other
PT Modality of type Positron Emission Tomography
RF Modality of type Radio Fluoroscopy
RG Modality of type Radiographic Imaging (conventional film screen)
RT Modality of type Radiation Therapy
SC Modality of type Secondary Capture
SM Modality of type Slide Microscopy
ST Modality of type Single-Photon Emission Computed Tomography (retired 2008)
TG Modality of type Thermography
US Modality of type Ultra Sound
VL Modality of type Visible Light
XA Modality of type X-Ray Angiography
XC Modality of type External Camera (Photography)
DICOM
132
Examples of Modalities supported in DICOM are:
• AS = Angioscopy-Retired
• BI = Biomagnetic Imaging
• CD = Color Flow Doppler-Retired
• CF = Cinefluorography (retired)
• CP = Colposcopy Retired
• CR = Computed Radiography
• CS = CystoscopyRetired
• CT = Computed Tomography
• DD = Duplex Doppler Retired
• DF = Digital Fluoroscopy (retired)
• DG = Diaphanography
• DM = Digital Microscopy (retired)
• DS = Digital Subtraction Angiography Retired
• DX = Digital radiography
• EC = Echocardiography Retired
• ES = Endoscopy
• FA = Fluorescein Angiography Retired
• FS = Fundoscopy Retired
• HC = Hard Copy
• LP = Laparoscopy Retired
• LS = Laser Surface Scan
• MA = Magnetic resonance angiography Retired
• MG = Mammography
• MR = Magnetic Resonance
• MS = Magnetic Resonance Spectroscopy Retired
• NM = Nuclear Medicine
• OT = Other
• PT = Positron Emission Tomography (PET)
• RF = Radio Fluoroscopy
• RG = Radiographic Imaging (conventional film screen)
• RTDOSE (a.k.a. RD) = Radiotherapy Dose
• RTIMAGE = Radiotherapy Image
• RTPLAN (a.k.a. RP) = Radiotherapy Plan
• RTSTRUCT (a.k.a. RS) = Radiotherapy Structure Set
• SR = Structured Reporting
• ST = Single-photon Emission Computed Tomography Retired
• TG = Thermography
• US = Ultrasound
• VF = Videofluorography (retired)
• XA = X-Ray Angiography
• XC = eXternal Camera
• ECG = Electrocardiograms
DICOM
133
DICOM transmission protocol port numbers over IP
DICOM have reserved the following TCP and UDP port numbers by the Internet Assigned Numbers Authority
(IANA):
• 104 well-known port for DICOM over TCP or UDP. Since 104 is in the reserved subset, many operating systems
require special privileges to use it.
• 2761 registered port for DICOM using Integrated Secure Communication Layer (ISCL) over TCP or UDP
• 2762 registered port for DICOM using Transport Layer Security (TLS) over TCP or UDP
• 11112 registered port for DICOM using standard, open communication over TCP or UDP
The standard recommends but does not require the use of these port numbers.
References
[1] DICOM brochure (http:// medical. nema. org/dicom/ geninfo/ Brochure.pdf)
[2] MEMBERS of the DICOM STANDARDS COMMITTEE (http:/ / medical. nema.org/ members. pdf)
[3] NEMA Members (http:/ / www. nema. org/about/ members/ )
[4] "6.1 DIMSE Services" (ftp:/ / medical. nema. org/medical/ dicom/ 2009/08_01pu.pdf). Digital Imaging and Communications in Medicine
(DICOM) Part 1: Introduction and Overview. National Electrical Manufacturers Association. 2006. pp. 11. .
[5] http:// dicom. nema. org
[6] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_01pu.pdf
[7] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_02pu.pdf
[8] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_03pu3.pdf
[9] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_04pu.pdf
[10] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_05pu3.pdf
[11] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_06pu3.pdf
[12] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_07pu2.pdf
[13] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_08pu.pdf
[14] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_10pu.pdf
[15] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_11pu.pdf
[16] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_12pu.pdf
[17] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_14pu.pdf
[18] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_15pu.pdf
[19] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_16pu.pdf
[20] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_17pu.pdf
[21] ftp:// medical. nema. org/ medical/ dicom/ 2009/ 09_18pu.pdf
[22] http:// www. ncbi. nlm. nih. gov/ pubmed/ 7612705?dopt=Abstract
[23] http:/ / www. astm. org: If a Picture Is Worth 1,000 Words, then Pervasive, Ubiquitous Imaging Is Priceless (http:// www. astm. org/
SNEWS/ OCTOBER_2003/ voelker_oct03.html)
[24] http:/ / www. nema. org: Industrial Imaging and Communications Section (http:// www. nema. org/prod/ security/ indust-Img.cfm)
[25] http:/ / medical. nema. org/dicom/ 2007/ 07_05pu. pdf
External links
• The latest DICOM specification (ftp:// medical.nema.org/ medical/ dicom/ 2009/ )
• DICOM Standard Status (approved and proposed changes) (http:/ / www. dclunie. com/ dicom-status/ status.
html)
• Brief introduction to DICOM (http:/ / www. cabiatl. com/ mricro/dicom/ index.html)
• Introduction to DICOM using OsiriX (http:/ / www. saravanansubramanian. com/ Saravanan/
Articles_On_Software/ Entries/2010/ 2/ 10_Introduction_to_the_DICOM_Standard.html)
• Medical Image FAQ part 2 (http:/ / www. dclunie.com/ medical-image-faq/html/part2.html) - Standard formats
including DICOM.
• Medical Image FAQ part 8 (http:/ / www. dclunie.com/ medical-image-faq/html/part8.html) - Contains a long
list DICOM software.
DICOM
134
• Collection of DICOM images (clinical images and technical testpatterns) (http:/ / www.aycan. de/ main/ lp/
sample_dicom_images.html)
• Example of an applet based DICOM Viewer (http:// legeneraliste. perso. sfr.fr/?p=dicom_eng)
Digital Audio Access Protocol
The Digital Audio Access Protocol (DAAP) is the proprietary protocol introduced by Apple in its iTunes software
to share media across a local network.
DAAP addresses the same problems for Apple as the UPnP AV standards address for members of the Digital Living
Network Alliance (DLNA).
Description
The DAAP protocol was originally introduced in iTunes version 4.0.
[1]
Initially, Apple did not officially release a
protocol description, but it has been reverse-engineered to a sufficient degree that reimplementations of the protocol
for non-iTunes platforms have been possible. Recently, however, Apple has begun to license the protocol
specification for commercial implementations.
[2]
A DAAP server is a specialized HTTP server, which performs two functions. It sends a list of songs and it streams
requested songs to clients. There are also provisions to notify the client of changes to the server. Requests are sent to
the server by the client in form of URLs and are responded to with data in application/x-dmap-tagged
mime-type, which can be converted to XML by the client. iTunes uses the ZeroConf (also known as Bonjour)
service to announce and discover DAAP shares on a local subnet. The DAAP service uses TCP port 3689 by
default.
[3]
DAAP is one of two media sharing schemes that Apple has currently released. The other, Digital Photo Access
Protocol (DPAP), is used by iPhoto for sharing images. They both rely on an underlying protocol, Digital Media
Access Protocol (DMAP).
Early versions of iTunes allowed users to connect to shares across the Internet, however, in recent versions only
computers on the same subnet can share music (workarounds such as port tunneling are possible). The Register
speculates that Apple made this move in response to pressure from the record labels.
[4]
More recent versions of
iTunes also limit the number of clients to 5 unique IP addresses within a 24-hour period.
DAAP has also been implemented in other non-iTunes media applications such as Banshee, Amarok, Exaile (with a
plugin), Songbird (with a plugin), Rhythmbox, and WiFiTunes.
DAAP authentication
Beginning with iTunes 4.2, Apple introduced authentication to DAAP sharing, meaning that the only clients that
could connect to iTunes servers were other instances of iTunes. This was further modified in iTunes 4.5 to use a
custom hashing algorithm, rather than the standard MD5 function used previously. Both authentication methods
were successfully reverse engineered within months of release.
[5]
With iTunes 7.0, a new 'Client-DAAP-Validation' header hash is needed when connecting to an iTunes 7.0 server.
This does not affect third-party DAAP servers, but all current DAAP clients (including official iTunes before iTunes
7.0) will fail to connect to an iTunes 7.0 server, receiving a '403 Forbidden' HTTP error. The iTunes 7.0
authentication traffic analysis
[6]
seem to indicate that a certificate exchange is performed to calculate the hash sent
in the 'Client-DAAP-Validation' header.
As of June 2010, the iTunes 7.0 DAAP authentication still hasn't been reverse engineered, so no third-party
application can stream from iTunes 7.x, 8.x , 9.x or 10.x servers.
[7]
Digital Audio Access Protocol
135
DAAP clients
Name Platform Development
status
Amarok Windows, Mac, and Linux Active
Banshee Windows, Mac, and Linux Active
Crossfire
[8] A cross-platform Ajax-based Firefly client with multiple browser support for iPhone (Safari),
Nokia, Opera, IE and Chrome.
Active
DAAP Client
[9] Android Active
FireflyClient
[10] Independent (uses Java) Active
Get it together
[11] Any Java supported platform Dormant
iTunes Mac and Windows Native
LimeWire Windows, Mac, and Linux Active
One2OhMyGod
[12] Any Java supported platform Dormant
Rhythmbox Linux Active
Roku Soundbridge and
Radio
[13]
Device Dormant
WiFiTunes
[14] PocketPC Dormant
Songbird Windows, Mac, Linux (unsupported)
Active, via plugin
[15]
SoundBox
[16] Windows and Mac Active
Silverplay
[17] * (only Silverlight req) Active
Simple DAAP Client
[18] iPhone Active
XBMC Windows, Mac, Linux, Apple TV and XBMC Live Active
DAAP servers
Name Platform Development status
forked-daapd
[19] Linux, FreeBSD Active
iTunes Mac OS X, Windows Active
mt-daapd/Firefly DAAP Media Server
[20] Linux, Windows, Mac OS X Dormant
Tangerine
[21] Linux, Windows, Mac OS X Active
Digital Audio Access Protocol
136
Notes and references
[1] "Unofficial DAAP protocol documentation" (http:// tapjam.net/ daap/ ) by Daniel Garcia, retrieved December 2, 2006
[2] "Open DAAP forum" (http:// www. opendaap. org/), retrieved December 2, 2006
[3] "Well Known Port Numbers" (http:// www. iana.org/assignments/ port-numbers) by IANA, November 30, 2006, retrieved December 2, 2006
[4] "Apple halts iTunes' Internet sharing ability" (http:/ / www. theregister. co. uk/2003/ 05/ 28/ apple_halts_itunes_internet_sharing/ ) by Tony
Smith, The Register, May 28, 2003, retrieved August 31, 2006
[5] " iTunes 4.5 Authentication Cracked" (http:/ / apple. slashdot. org/ apple/ 04/ 04/ 29/ 1554231.shtml), April 29, 2004, retrieved March 12,
2007
[6] http:/ / www.webpages. ttu. edu/ mroth/ tunes/ login. htm
[7] "daap with itunes 7 doesn't work correctly" (https:// bugs. launchpad.net/ banshee/ +bug/ 62842). Launchpad bug tracker. 2006-09-28. .
[8] http:/ / crossfire.codeware-consultancy. com/
[9] http:/ / code. google. com/ p/ daap-client/
[10] http:/ / sourceforge.net/ projects/ fireflyclient
[11] http:// getittogether.sourceforge.net/
[12] http:/ / one2ohmygod. sourceforge.net/
[13] http:/ / soundbridge. roku.com/
[14] http:/ / www. aspecto-software.com/ rw/ applications/ wifitunes/
[15] http:/ / addons. songbirdnest. com/ addon/ 1355
[16] http:/ / swissmediaportal. ch/ downloads/ soundbox/
[17] http:// www. nystedberry.info/ silverplay-latest
[18] http:// itunes. apple.com/ us/ app/ simple-daap-client/id369605270?mt=8
[19] http:/ / blog. technologeek. org/2009/ 06/ 12/ 217
[20] http:/ / fireflymediaserver.org/
[21] https:/ / launchpad. net/ tangerine/
External links
• OpenDAAP forum (http:// www. opendaap.org/)
• Unofficial DAAP protocol documentation (http:/ / tapjam. net/ daap/ )
• DAAP (http:/ / daap. sourceforge.net/ ), a C++ implementation of DAAP. (no longer developed)
• libopendaap (http:// crazney.net/ programs/itunes/ libopendaap. html), a C implementation of DAAP
• DAAPD (http:/ / www. deleet.de/ projekte/ daap/ daapd/ ), another implementation of DAAP on Unix.
• Firefly DAAP Media Server (http:// fireflymediaserver.org/), implementation of the DAAP protocol (both video
and audio) for Windows, Linux, Mac OS X and Mobile OS X (iPod touch and iPhone). No longer maintained.
• libdmapsharing (http:/ / www. flyn.org/projects/ libdmapsharing/ ), Open source GObject- and libsoup-based
library that supports server- and client-side DAAP, DPAP and DACP.
• dmapd (http:/ / www. flyn.org/projects/ dmapd/ ), Open source server that supports DAAP and DPAP.
• forked-daapd (http:// blog. technologeek.org/ 2009/ 06/ 12/ 217), a rewritten version of Firefly Media Server for
Linux currently under development.
• iTunes 7.0 traffic analysis (http:/ / www. webpages.ttu.edu/ mroth/ tunes/ login.htm)
• Tangerine (https:/ / launchpad.net/ tangerine/) is a DAAP server. It runs on Linux, Windows, and Mac OS X.
Digital Data Communications Message Protocol
137
Digital Data Communications Message Protocol
Digital Data Communications Message Protocol (DDCMP) is a communications protocol devised by Digital
Equipment Corporation in 1974 to allow communication over point-to-point network links for the company's
DECnet Phase I network protocol. The protocol uses full or half duplex synchronous and asynchronous links and
allowed errors introduced in transmission to be detected and corrected. It was retained and extended for later
versions of the DECnet protocol.
References
• Overview of the protocol
[1]
• Protocol specification
[2]
(courtesy of DEC)
References
[1] http:/ / telecom. tbi. net/ ddcmp. htm
[2] http:/ / telecom. tbi. net/ ddcmp. txt
Digital Private Network Signalling System
The Digital Private Network Signalling System (DPNSS) is a network protocol used on digital trunk lines for
connecting two PABX. It supports a defined set of inter-networking facilities.
DPNSS was originally defined by British Telecom. The specification for the protocol is defined in BTNR188. The
specification currently comes under the Network Interoperability Consultative Committee.
History
DPNSS was developed in the early 1980s by BT, or its forerunner, Post Office Telecommunications in recognition
that the emerging Digital Private Circuit Primary Rate product 'Megastream' had to address the market for both data
and voice, the latter being significantly greater because of the market for PBXs. It may seem odd now that BT would
invest in the development of a signaling protocol for PBXs in which it had a minority interest and in competition
with its PSTN services. Under the liberalization rules of the day (1979), BT was barred from manufacturing, selling
or supplying PBXs of more than 200 extensions. Digital (PCM-based) PBXs were just starting to come into the
marketplace with the ROLM/Northern Telecom SL1, and Plessey PDX, it was recognised that corporate customers
would wish to network these systems across the country. At the time, 'CAS' inter node signaling was slow and
inter-register signaling MF5, developed for the PSTN, was complex and would not support sufficient features. The
support for DPNSS as BT's own signaling protocol also differentiated BT's private circuit’s services from those of its
emerging rival Mercury Communications. In practice, DPNSS was possibly a backroom development by a couple of
guys at BT's research labs whose efforts accidentally found a market and official support. BT and some of the UK
manufacturers championed DPNSS into ECMA and CCITT (ITU) but it was eventually deprecated by the standards
bodies in favour of Q931 and QSig. Nevertheless, the elegance of the protocol and its compatibility with PBX
features ensured the adoption DPNSS actually grew in Europe, compared to the much slower take-up of Qsig.
Version 1 of BTNR188 (DPNSS) was issued in 1983; the last version of DPNSS to be released 6 in 1995 included
compatibility with ISDN features released in V5. A lightweight version of DPNSS 'APNSS' was developed using
analogue trunks (Sometimes compressed) and a modem to support D channel signalling.
Digital Private Network Signalling System
138
Overview of the Protocol
Layer 1(CCITT) ITU-G703 defines the physical and electrical interface. G704 defines the Frame structure of the
2.048 Mbs sent across the link. G732 defines the allocation of that frame structure into the 32 discrete 64Kbit
'channels', of which 0 is used for alignment of the frames and 16 is (by convention only) allocated to common
channel signaling. Speech is carried as G711. Layer 2 Timeslot 16, 64Kbs operates as HDLC LAPB, to support up to
60 PVCs or DLCs (data link connections) as the specification describes them. Therefore, at maximum operation,
each potential traffic channel can have two simultaneous data channels available for messages. Note that HDLC
operates as a statistical multiplexing system. When traffic deltas are low, a single call establishment message will
have access to the full 64Kbs (allowing for overheads). DPNSS is a layer 3 protocol functioning as common channel
signaling. The functionality is divided into Levels (confusingly nothing to do with OSI layers.) Levels 1-6 deal with
simple call establishment (make call/break call) and are the minimum requirements by which a PBX can be said to
be DPNSS compatible. The remaining levels are allocated to telephony features, supplementary services or to
administrative features. Note that support of 'levels' by a PBX is not necessarily incremental. Some levels are
interdependent but a PBX may omit support of some levels (above 6) and support others. DPNSS is a compelled
protocol in that each instruction issued must be met with an appropriate response from the other PBX otherwise the
message is re-transmitted (until timer expiry). This means that when interworking two PBXs features invoked on
PBX A must be acknowledged by PBX B even if that feature is not supported. DPNSS carries its protocol messages
as short strings of IA5 text. It is therefore much easier to interpret in its native form than Q931/Qsig or H323/H450
and a pre-cursor to the plain language format of SIP.
Practical Considerations
As HDLC can operate successfully in quite poor (errored) data environments, DPNSS will work over a 2Mbs link
running without proper synchonisation (plesiochronously) and over poor quality connections (including badly
terminated connectors). When setting up PBXs to run a DPNSS connection one end must be defined as the primary
or 'A' end. This is a protocol requirement and has nothing to do with link synchronisation.
DPNSS and VoIP
For a protocol that began life in the 1980s, DPNSS is natively a long way from VoIP. However, many of the hybrid
VoIP PBXs available from manufacturers worldwide provide on-board DPNSS trunk cards. Where they do not, a
protocol converter is necessary. Commercially available equipment offers the ability to convert from DPNSS to
Q.Sig. Note that it is also possible to tunnel DPNSS and its associated PCM (G711) over an IP network. This can be
point to point where the IP network carries packetised voice N x 64 Kbs speech and a separate IP signalling channel
to carry the notional 64 Kbs of DPNSS signalling. A more sophisticated solution uses intelligence on the edge of the
IP network to route voice to the correct node. This is a [VoIP (voice)VPN]
[1]
Note that this should not be confused
with the pre-VOIP 'Voice VPN' deployed by routing calls intelligently in a TDM switching platform, often Nortel
DMS100 and customers PBX nodes.
Criticisms
Some critics of DPNSS suggest that it is too loosely defined and allows too much latitude in its interpretation of
message formats and timers. It is also sometimes mistakenly believed that DPNSS is semi proprietary and that it is
only possible to connect PBXs from the same manufacturer. i.e. Siemens will connect to Siemens, Mitel to Mitel etc.
Experience indicates that this is not the case and BT's FeatureNet platform (Nortel's DMS100) running DPNSS, has
interconnected successfully to many PBX types available in the UK.
Digital Private Network Signalling System
139
External links
• The DPNSS specification at NICC
[2]
References
[1] http:/ / en. wikipedia. org/wiki/ Voice_VPN
[2] http:/ / www.niccstandards. org.uk/ files/ current/nd1301_2001_03.pdf
Direct Client-to-Client
Direct Client-to-Client (DCC) is an IRC-related sub-protocol enabling peers to interconnect using an IRC server
for handshaking in order to exchange files or perform non-relayed chats. Once established, a typical DCC session
runs independently from the IRC server. Originally designed to be used with ircII it is now supported by many IRC
clients. A variation of the DCC protocol called SDCC (Secure Direct Client-to-Client), also known as DCC SCHAT
supports encrypted connections.
DCC connections can be initiated in two different ways:
• The most common way is to use CTCP to initiate a DCC session. The CTCP is sent from one user, over the IRC
network, to another user.
• Another way to initiate a DCC session is for the client to connect directly to the DCC server. Using this method,
no traffic will go across the IRC network (the parties involved do not need to be connected to an IRC network in
order to DCC).
Common DCC applications
DCC CHAT
The CHAT service enables users to chat with each other over a DCC connection. The traffic will go directly between
the users, and not over the IRC network. When compared to sending messages normally, this reduces IRC network
load, allows sending of larger amounts of text at once, due to the lack of flood control, and makes the
communication more secure by not exposing the message to the IRC servers (however, the message is still in
plaintext).
DCC CHAT is normally initiated using a CTCP handshake. The user wishing to establish the connection sends the
following CTCP to the target:
DCC CHAT <protocol> <ip> <port>
<ip> and <port> are those of the sender, and are expressed as integers. <protocol> is "chat" for standard DCC
CHAT. The receiving party can then connect to the given port and address.
Once a connection is established, the protocol used for DCC CHAT is very simple: users exchange CRLF-terminated
messages. Messages that begin with an ASCII 001 (control-A, represented below by ^A) and the word "ACTION",
and are terminated by another ASCII 001, are interpreted as emotes:
^AACTION waves goodbye^A
Direct Client-to-Client
140
DCC Whiteboard
This is an extension to DCC CHAT, allowing simple drawing commands to be sent as well as lines of text. DCC
Whiteboard is initiated with a handshake similar to DCC CHAT, with the protocol "chat" replaced by "wboard":
DCC CHAT wboard <ip> <port>
Once the connection is established, the two clients exchange CRLF-terminated messages. Messages that begin (and
optionally end) with ASCII 001 are interpreted as special commands; the command ACTION represents an emote,
while others cause lines to be drawn on the user's whiteboard surface, or allow the two clients to negotiate a set of
features.
DCC SEND
The SEND service allows users to send files to one another. The original specification for the handshake did not
allow the receiver to know the total file size nor to resume a transfer. This has made clients introduce their own
extensions to the handshake, many of which have become widely supported.
The original handshake consisted of the sender sending the following CTCP to the receiver:
DCC SEND <filename> <ip> <port>
As with DCC CHAT, <ip> and <port> are the ip address and port where the sending machine will be listening for an
incoming connection. Some clients enclose filenames with spaces in double quotes. It is common practice to add the
file size as a last argument:
DCC SEND <filename> <ip> <port> <file size>
At this point, the original specification had the receiver either connect to the given address and port and wait for
data, or ignore the request, but for clients supporting the DCC RESUME extension, a third alternative is to ask the
sender to skip part of the file by sending the CTCP reply:
DCC RESUME <filename> <port> <position>
If the sending client supports DCC RESUME, it will reply with:
DCC ACCEPT <filename> <port> <position>
and the receiver can connect to the given address and port and listen for data to append to an already existing file.
Data is sent in blocks, which the client must acknowledge by sending sizes of incoming data blocks as 32-bit
network byte order integers. This slows down connections, and is redundant because such behavior is already
implemented by TCP. The send-ahead extension relieves this problem somewhat by not waiting for the
acknowledgements, but since the receiver still has to send them for every block it receives, in case the sender expects
them, it is not solved completely.
Another extension, TDCC, or turbo DCC, removes the acknowledgements, but requires a slightly modified
handshake and is not widely supported. Older versions of TDCC replaced the word SEND in the handshake with
TSEND; later versions use the word SEND but append a "T" after the handshake, making this version of TSEND
compatible with other clients (as long as they can parse the modified handshake).
DCC SEND exploit
The DCC send exploit can refer to two bugs, a variant buffer overflow error in mIRC triggered by filenames longer
than 14 characters
[1]
and an input validation error in some routers manufactured by Netgear, D-Link and Linksys,
triggered by the use of port 0.
[2]

[3]
The router exploit, in particular, may be triggered when the phrase 'DCC SEND '
followed by at least 6 characters without spaces or newlines appears anywhere in a TCP stream on port 6667, not just
when an actual DCC SEND request has been made.
Direct Client-to-Client
141
DCC XMIT
The XMIT service is a modified version of DCC SEND that allows for resuming files and cuts down on wasteful
traffic from the ACK longs. XMIT is not widely supported.
The XMIT handshake differs somewhat from the SEND handshake. The sender sends a CTCP offering a file to the
receiver:
DCC XMIT <protocol> <ip> <port>[ <name>[ <size> [<MIME-type>]]]
Square brackets here enclose optional parts. <protocol> is the protocol to use for the transfer; only "clear" is defined
presently. Unlike standard DCC SEND, <ip> can be in the additional forms of standard dotted notation for IPv4, or
either hexadecimal or mixed notation for IPv6. To leave an early parameter empty, but still supply a later one, the
earlier one can be specified as "-". If the receiver does not implement the protocol used, it will send back a CTCP
reply of the format:
ERRMSG DCC CHAT <protocol> unavailable
CHAT is used here to maintain compatibility with the error messages sent by the extended DCC CHAT. If the
receiver declines the transfer, it sends the following CTCP reply:
ERRMSG DCC CHAT <protocol> declined
Other errors are reported in the same fashion. If the receiver is willing and capable of receiving the file, it will
connect to the given address and port. What happens then depends on the protocol used.
In the case of the "clear" protocol, the XMIT server will, upon receiving a connection, send a 32-bit time t in
network byte order, representing the file's modification time. Presumably based on the modification time of the local
file, the client will then send another network byte order long, an offset which the server should seek to when
sending the file. This should be set to zero if the whole file is wanted, or the size of the local file if the client wishes
to resume a previous download.
While faster than SEND, XMIT carries one of the same limitations in that it is impossible to tell how big the file is,
unless its size is specified in the CTCP negotiation or known beforehand. Furthermore, you can not resume a file
past the two gigabyte mark due to the 32-bit offset.
Passive DCC
In a normal DCC connection the initiator acts as the server, and the target is the client. Because of widespread
firewalling and reduction of end-to-end transparency because of NAT, the initiator might not be able to act as a
server. Various ways of asking the target to act as the server have been devised:
DCC Server
This extension to normal DCC SEND and CHAT was introduced by the IRC client mIRC. DCC Server has moderate
support, but is not standard on all clients (see comparison of IRC clients).
It allows the initiation of a DCC connection by IP address, without the need of an IRC server. This is accomplished
by the receiving client acting as a server (hence the name) listening (usually on port 59) for a handshake from the
sender.
For a CHAT, the initiator sends:
100 <initiator nick>
The target then replies with:
101 <target nick>
and the rest proceeds according to standard DCC CHAT protocol.
For a SEND, the initiator sends:
Direct Client-to-Client
142
120 <initiator nick> <filesize> <filename>
The target replies with:
121 <target nick> <resume position>
where <resume position> is the offset in the file from which to start. From here the transfer proceeds as a normal
DCC SEND.
DCC Server also supports mIRC-style file servers and DCC GET.
RDCC
DCC Server provides no way specifying the port to use, so this has to be negotiated manually, which is not always
possible, as one of the sides may not be a human. RDCC is a handshake mechanism for DCC Server, which in
addition to the port also provides the IP address of the server, which the client might not be able to find otherwise
because of host masking. It is not widely supported.
The initiator requests the port the target is listening on by sending the CTCP query:
RDCC <function> <comment>
where <function> is 'c' for chat, 's' for send and 'f' for file server.
The target may then CTCP reply with:
RDCC 0 <ip> <port>
where <ip> and <port> have the same meanings as for normal DCC SEND and CHAT. After this the initiator
connects to the ip and port, and a DCC Server handshake follows.
DCC REVERSE
Unlike DCC Server, where the handshake is handled over a direct IP connection, DCC REVERSE has a normal
CTCP handshake, similar to the one used by DCC SEND. This is not widely implemented. The sender offers a file to
the receiver by sending the CTCP message:
DCC REVERSE <filename> <filesize> <key>
<key> is a 1 to 50 characters long string of ASCII characters in the range 33 to 126, and acts as an identifier for the
transfer.
If the receiver accepts, it sends the CTCP reply:
DCC REVERSE <key> <start> <ip> <port>
Here <start> is the position in the file from which to start sending, <ip> is the IP address of the receiver in standard
dotted notation for IPv4, or hexadecimal notation for IPv6. The sender then connects to the ip address and port
indicated by the receiver, and a normal DCC SEND follows. Both the sender and receiver can cancel the handshake
by sending the CTCP reply:
DCC REJECT REVERSE <key>
Direct Client-to-Client
143
DCC RSEND
This is the KVIrc client's alternative to DCC REVERSE. The sender offers a file by sending the CTCP:
DCC RSEND <filename> <filesize>
The receiver can then accept by CTCP replying with:
DCC RECV <filename> <ip> <port> <start>
and the sender connects to the receiver and sends as during a normal DCC SEND.
Reverse / Firewall DCC
This passive DCC mechanism is supported by at least mIRC, Visual IRC, XChat, KVIrc, DMDirc, Klient,
Konversation, and PhibianIRC. The sender offers a file by sending the CTCP message:
DCC SEND <filename> <ip> 0 <filesize> <token>
<ip> is the IP address of the sender in network byte order, expressed as a single integer (as in standard DCC). The
number 0 is sent instead of a valid port, signaling that this is a Reverse DCC request. <token> is a unique integer; if
TSEND is being used (by a client that supports it), the letter "T" is appended to the token, letting the receiver know it
doesn't need to send acknowledgements.
The receiver can accept the file by opening a listening socket and responding with the CTCP message:
DCC SEND <filename> <ip> <port> <filesize> <token>
This is identical to the original Reverse DCC message, except the <ip> and <port> identify the socket where the
receiver is listening. <token> is the same as in the original request, letting the sender know which request is being
accepted. (Since this message follows the same format as a regular DCC send request, some servers which filter
DCC requests may require the sender to add the receiver to his or her "DCC allow" list.)
The sender then connects to the receiver's socket, sends the content of the file, and waits for the receiver to close the
socket when the file is finished.
When the RESUME extension to the SEND protocol is used, the sequence of commands becomes (with '>>'
indicating an outgoing message on the initiating side and '<<' response by its peer):
>> DCC SEND <filename> <ip> 0 <filesize> <token>
<< DCC RESUME <filename> 0 <position> <token>
>> DCC ACCEPT <filename> 0 <position> <token>
<< DCC SEND <filename> <peer-ip> <port> <filesize> <token>
After which the protocol proceeds as normal (i.e. the sender connects to the receiver's socket).
File servers (FSERVs)
A DCC fserve, or file server, lets a user browse, read and download files located on a DCC server.
Typically, this is implemented with a DCC CHAT session (which presents the user with a command prompt) or
special CTCP commands to request a file. The files are sent over DCC SEND or DCC XMIT. There are many
implementations of DCC file servers, among them is the FSERV command in the popular mIRC client.
References
[1] "SecurityFocus exploit information" (http:// www. securityfocus. com/ bid/ 8880). .
[2] "'DCC Send' vulnerability on Netgear routers" (http://cve.mitre.org/cgi-bin/ cvename. cgi?name=CVE-2006-1068). .
[3] "'DCC Send' vulnerability on Linksys routers" (http:/ / cve. mitre.org/cgi-bin/ cvename. cgi?name=CVE-2006-1067). .
Direct Client-to-Client
144
External links
• A description of the DCC protocol (http:// www.irchelp. org/ irchelp/rfc/dccspec. html) (note: Most IRC-clients
and networks have implemented extensions to the DCC protocol. The DCC commonly used today has evolved
quite a bit from what this document describes. A successor to DCC (DCC2) is currently being formalized by
DCC2.org (http:/ / www. dcc2.org/ ))
• DCC negotiation and connection (http:/ / www. kvirc.de/ docu/ doc_dcc_connection. html)
• A description of the Turbo DCC protocol (http:// www.visualirc.net/ tech-tdcc.php)
• A description of the DCC Whiteboard protocol (http:/ / www. visualirc.net/ tech-wboard.php)
DirectAccess
DirectAccess is a new feature in Windows 7 (Ultimate and Enterprise editions only) and Windows Server 2008 R2
that provides seamless intranet connectivity to DirectAccess client computers when they are connected to the
Internet. Unlike most traditional VPN connections, which must be initiated and terminated by explicit user action,
DirectAccess connections is designed to connect automatically as soon as the computer connects to the internet. In
2010, Microsoft Forefront Unified Access Gateway was released, which simplifies
[1]

[2]

[3]
the deployment of
DirectAccess, and includes additional components that make it easier to integrate without the need to deploy IPv6 on
the network. While DirectAccess is based on Microsoft technology, third-party solutions exist for accessing UNIX
and Linux servers through DirectAccess
[4]
.
Technology
DirectAccess establishes IPSec tunnels from the client to the DirectAccess server, and uses IPv6 to reach intranet
resources or other DirectAccess clients. This technology encapsulates the IPv6 traffic over IPv4 to be able to reach
the intranet over the Internet, which still relies on IPv4 traffic. All traffic to the intranet is encrypted using SSL and
sent through the standard HTTPS port (443), which means that in most cases, no configuration of firewalls or
proxies should be required
[5]
. A DirectAccess client can use one of several tunnelling technologies, depending on
the configuration of the network the client is connected to. The client can use 6to4, Teredo tunneling, or IP-HTTPS,
provided the server is configured correctly to be able to use them. For example, a client that is connected to the
internet directly will use 6to4, but if it is inside a NATed network, it will use Teredo instead.
DirectAccess in UAG provides enterprise features for a DirectAccess solution, such as centralized management, high
availability, and enhanced security (UAG contains a EAL4+ Certified firewall, so it can be used on the edge of your
network). UAG also provides a NAT64 and DNS64, allowing you to provide DirectAccess clients with access to
IPv4-only resources on your network.
Requirements
DirectAccess requires:
• one or more DirectAccess servers running Windows Server 2008 R2 with two network adapters: one that is
connected directly to the Internet, and a second that is connected to the intranet.
• on the DirectAccess server, at least two consecutive, public IPv4 addresses assigned to the network adapter that is
connected to the Internet.
• DirectAccess clients running Windows 7 (Ultimate and Enterprise editions only).
• at least one domain controller and Domain Name System (DNS) server running Windows Server 2008 SP2 or
Windows Server 2008 R2.
• public key infrastructure (PKI) to issue computer certificates.
DirectAccess
145
Smart card certificates, and health certificates for Network Access Protection may be used along with PKI.
A third-party NAT64 device may be used to provide access to IPv4-only resources to DirectAccess clients.
[6]
Support for Windows Home Server
The latest version of Windows Home Server called Windows Home Server 2011 is based on the Windows Server
2008 R2 code base
[7]
. Remote access to the users home computers and resources are one of the key features of the
Windows Home Server edition. Even though Windows Home Server 2011 is based on Windows Server 2008 R2 no
support for DirectAccess is implemented.
The motivation for this is the steep requirements on the client computers operating systems, as only Windows 7
Ultimate and Enterprise is supported. Further on the server is also required to have two NICs while a typical
Windows Home Server only has one. However in future versions of Windows Home Server Microsoft hopes to
deliver a simplified version of DirectAccess for home usage
[8]
.
References
[1] Microsoft Forefront Unified Access Gateway 2010 (http:// www. microsoft.com/ UAG)
[2] Windows Server Division WebLog (http:// blogs. technet. com/ windowsserver/ archive/ 2009/ 07/ 15/ got-directaccess-get-uag.aspx)
[3] Portcullis Systems UAG DirectAccess Appliance (http:/ / www. portcullissystems. com)
[4] Centrify DirectSecure - Integrating Windows 7 DirectAccess with UNIX and Linux Systems (http:// www. centrify.com/ directsecure/
window-7-directaccess-integration-for-unix-linux.asp)
[5] DirectAccess: Microsoft's Newest VPN Solution - Part 1: Overview of Current Remote Access Solutions (http:// www. windowsecurity.
com/ articles/ DirectAccess-Microsofts-Newest-VPN-Solution-Part1.html)
[6] DirectAccess Requirements (http:/ / technet. microsoft. com/ en-us/ library/dd637797(WS.10).aspx)
[7] Foley, Mary Jo (27 January 2010). "Early version of Windows Home Server 'Vail' leaks to the Web" (http:// blogs.zdnet.com/ microsoft/
?p=5063&tag=content;col1). ZDNet. . Retrieved 2 February 2010.
[8] Daniel, Sean (03 May 2010). "Any chance of a light version of DirectAccess for WHS Vail" (http:// social. microsoft.com/ Forums/ en-US/
whsvailbeta/ thread/ fdcaae11-0f3e-4b6f-95ab-53bcd4046fe0). Microsoft. . Retrieved 10 April 2011.
External links
• Microsoft's DirectAccess Getting Started page (http:// www. microsoft.com/ servers/ directaccess. mspx)
• Microsoft's DirectAccess TechNet page (http:/ /technet. microsoft.com/ en-us/ network/dd420463.aspx)
• MS-IPHTTPS on MSDN (http:/ / msdn. microsoft.com/ en-us/ library/dd358571(PROT.13).aspx): includes
PDF with specification.
• Blogger's posting on DirectAccess (http:/ / refraction.co.uk/ blog/ 2009/ 07/ 23/
directaccess-ipv6-and-ipv4-networks/)
Distributed data flow
146
Distributed data flow
An illustration of the basic concepts involved in the definition of a distributed data
flow.
Distributed data flow (also abbreviated as
distributed flow) refers to a set of events in a
distributed application or protocol that
satisfies the following informal properties:
• Asynchronous, non-blocking, and
one-way. Each event represents a single
instance of a non-blocking, one-way,
asynchronous method invocation or other
form of explicit or implicit message
passing between two layers or software
components. For example, each event
might represent a single request to
multicast a packet, issued by an
application layer to an underlying
multicast protocol. The requirement that
events are one-way and asynchronous is important. Invocations of methods that may return results would
normally be represented as two separate flows: one flow that represents the requests, and another flow that
represents responses.
• Homogeneous, unidirectional, and uniform. All events in the distributed flow serve the same functional and
logical purpose, and are related to one-another; generally, we require that they represent method calls or message
exchanges between instances of the same functional layers, or instances of the same components, but perhaps on
different nodes within a computer network. Furthermore, all events must flow in the same direction (i.e., one type
of a layer or component always produces, and the other always consumes the events), and carry the same type of a
payload. For example, a set of events that includes all multicast requests issued by the same application layer to
the same multicast protocol is a distributed flow. On the other hand, a set of events that includes multicast
requests made by different applications to different multicast protocols would not be considered a distributed
flow, and neither would be a set of events that represent multicast requests as well as acknowledgments and error
notifications.
• Concurrent, continuous, and distributed. The flow usually includes all events that flow between the two layers
of software, simultaneously at different locations, and over a finite or infinite period of time. Thus, in general,
events in a distributed flow are distributed both in space (they occur at different nodes) and in time (they occur at
different times). For example, the flow of multicast requests would include all such requests made by instances of
the given application on different nodes; normally, such flow would include events that occur on all nodes
participating in the given multicast protocol. A flow, in which all events occur at the same node would be
considered degenerate.
Formally, we represent each event in a distributed flow as a quadruple of the form (x,t,k,v), where x is the location
(e.g., the network address of a physical node) at which the event occurs, t is the time at which this happens, k is a
version, or a sequence number identifying the particular event, and v is a value that represents the event payload
(e.g., all the arguments passed in a method call). Each distributed flow is a (possibly infinite) set of such quadruples
that satisfies the following three formal properties.
• For any finite point in time t, there can be only finitely many events in the flow that occur at time t or earlier. This
implies that in which flow, one can always point to the point in time at which the flow originated. The flow itself
can be infinite; in such case, at any point in time, eventually a new event will appear in the flow.
Distributed data flow
147
• For any pair of events e_1 and e_2 that occur at the same location, if e_1 occurs at an earlier time than e_2, then
the version number in e_1 must also be smaller than that of e_2.
• For any pair of events e_1 and e_2 that occur at the same location, if the two events have the same version
numbers, they must also have the same values.
In addition to the above, flows can have a number of additional properties.
• Consistency. A distributed flow is said to be consistent if events with the same version always have the same
value, even if they occur at different locations. Consistent flows typically represent various sorts of global
decisions made by the protocol or application.
• Monotonicity. A distributed flow is said to be weakly monotonic if for any pair of events e_1 and e_2 that occur
at the same location, if e_1 has a smaller version than e_2, then e_1 must carry a smaller value than e_2. A
distributed flow is said to be strongly monotonic (or simply monotonic) if this is true even for pairs of events e_1
and e_2 that occur at different locations. Strongly monotonic flows are always consistent. They typically
represent various sorts of irreversible decisions. Weakly monotonic flows may or may not be consistent.
Distributed data flows serve a purpose analogous to variables or method parameters in programming languages such
as Java, in that they can represent state that is stored or communicated by a layer of software. Unlike variables or
parameters, which represent a unit of state that resides in a single location, distributed flows are dynamic and
distributed: they simultaneously appear in multiple locations within the network at the same time. As such,
distributed flows are a more natural way of modeling the semantics and inner workings of certain classes of
distributed systems. In particular, the distributed data flow abstraction has been used as a convenient way of
expressing the high-level logical relationships between parts of distributed protocols
[1]

[2]
.
[3]
References
[1] Ostrowski, K., Birman, K., Dolev, D., and Sakoda, C. (2009). "Implementing Reliable Event Streams in Large Systems via Distributed Data
Flows and Recursive Delegation", 3rd ACM International Conference on Distributed Event-Based Systems (DEBS 2009), Nashville, TN,
USA, July 6–9, 2009, http:/ / www. cs. cornell.edu/ ~krzys/ krzys_debs2009.pdf
[2] Ostrowski, K., Birman, K., and Dolev, D. (2009). "Distributed Data Flow Language for Multi-Party Protocols", 5th ACM SIGOPS Workshop
on Programming Languages and Operating Systems (PLOS 2009), Big Sky, MT, USA. October 11, 2009, http:/ / www. cs. cornell.edu/
~krzys/krzys_plos2009. pdf
[3] Ostrowski, K., Birman, K., Dolev, D. (2009). "Programming Live Distributed Objects with Distributed Data Flows", Submitted to the
International Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2009), http:/ / www. cs. cornell.
edu/~krzys/ krzys_oopsla2009. pdf
Distributed Multi-Link Trunking
148
Distributed Multi-Link Trunking
Avaya Distributed Multi-Link Trunking
DMLT between 2 stacked 5530 switches to an ERS 8600 switch
Distributed Multi-Link Trunking (DMLT) or Distributed MLT is a computer networking protocol designed by
Avaya used to load balance the network traffic across connections and also across multiple switches or modules in a
chassis. The protocol is an enhancement to the Multi-Link Trunking (MLT) protocol.
DMLT allows the ports in a trunk (MLT) to span multiple units of a stack of switches or to span multiple cards in a
chassis, preventing network outages when one switch in a stack fails or a card in a chassis fails.
Patent
United States Patent 6496502
Distributed Universal Number Discovery
149
Distributed Universal Number Discovery
Distributed Universal Number Discovery (DUNDi) is a VoIP routing protocol that provides directory services
similar to what is provided by ENUM. DUNDi allows peered nodes to share dialplan information with each other. It
does not actually carry any calls, but rather provides addressing information. In simple terms, it is like asking your
neighbouring peer whether he knows how to reach a certain phone-extension or VoIP client. Some sort of P2P
phonebook.
The protocol was invented by Mark Spencer who also made the PBX-system called Asterisk. Therefore the syntax of
the output of a DUNDi-lookup can be directly used in the dial commands in an Asterisk Dial Plan.
Peers
For DUNDi to work, each DUNDi client has to know at least one other DUNDi client. Since these DUNDi clients
belong to the same network, they are called peers. Also at least one of the reachable peers must know how to reach
the wanted extension.
In the DUNDi configuration one can limit the number of consecutive lookups between peers by setting the TTL.
• A TTL of 1 means you only can ask the peers you know and they cannot ask further.
• A TTL of n means that the peer you ask for a lookup can redirect your lookup to the peers it knows, only with a
TTL of n-1.
Advertising extensions
Each DUNDi peer can advertise its own extensions and their context. E.g. if you can connect some local E.164
number(s), you can advertise these.
Each advertised extension (this can also be a range of extensions) has its own priority. Low values represent a high
priority and must be chosen first when more than one answer is received from a lookup.
Example
In the Asterisk CLI one can do a lookup by hand to test if a DUNDi configuration works.
asterisk1*CLI> dundi lookup 301@priv bypass
1. 0 IAX2/priv:ByWFbOGKgGmZbM43BJHSZw@192.168.1.2/301 (EXISTS)
from 00:0c:29:d2:d8:ec, expires in 3600 s
DUNDi lookup completed in 113 ms
The above DUNDi lookup tells the PBX to ask the known peers if they know how to reach extension 301 in the
"priv" network. The answer consists of 6 parts:
• The used protocol to communicate is IAX2.
• The context-name is "priv".
• The secret key of the PBX, which can redirect you to extension 301 is ByW[...]HSZw (this changes periodically)
• The address of this PBX is 192.168.1.2 (or some domainname, should be reachable by the calling party)
• The extension to call is 301 (this can be different from what you asked for, e.g. when calls from the outside are
not allowed directly to an internal extension)
• "EXISTS" tells us the PBX is advertising this number. It is possible the PBX advertises a lot more extensions than
really are connected, so it is no guarantee the extension can be reached.
In order to prevent the network from overloading and at the same time keep the responses as quick as possible, the
involved peers will cache the lookups they see. Because the used keys may become invalid after some period, each
Distributed Universal Number Discovery
150
lookup has some expiry date. This defaults to one hour.
When no context is given with a lookup, DUNDi defaults to the E.164 context. This means you are looking for
normal (international) phone-numbers, like 0031201234567 (some bogus number in Amsterdam, The Netherlands)
In order to do so, you have to peer with at least one other peer in the E164 trust group. The peers in this group are
bound to the Digium GPA (Digium General Peering Agreement)
[1]
(PDF)
External links
• DUNDi Home Page
[2]
• Internet-Draft that expired in 2005
[3]
• VoIP and ENUM
[4]
• DUNDi Enterprise SIP configuration article on Voip-Info.org
[5]
References
[1] http:/ / dundi. com/ PEERING.pdf
[2] http:// www.dundi. com/
[3] http:/ / www.dundi. com/ dundi. txt
[4] http:/ / voipandenum. blogspot. com/ 2004/ 10/ fall-von-2004-day-4-highlights-since.html
[5] http:/ / www.voip-info.org/wiki/ view/ DUNDi+ Enterprise+Configuration+SIP+with+no+ passwords
DMX512
A DMX splitter/buffer. It allows many devices
that are controlled by DMX to be plugged into
one controller, like a lighting console.
DMX512 (For "Digital Multiplex with 512 pieces of information
[1]
)
is a standard for digital communication networks that are commonly
used to control stage lighting and effects. It was originally intended as
a standardized method for controlling light dimmers, which, prior to
DMX512, had employed various incompatible, proprietary protocols.
However, it soon became the primary method for linking not only
controllers and dimmers, but also more advanced fixtures and special
effects devices such as fog machines and moving lights, and has also
expanded to uses in non-theatrical interior and architectural lighting;
DMX512 has been used at scales ranging from strings of Christmas
lights to electronic billboards.
DMX512 employs EIA-485 differential signaling at its physical layer,
in conjunction with a variable-size, packet based communication protocol. It is unidirectional and does not include
automatic error checking and correction. Consequently, it might not be recommended for use in safety-critical
applications such as controlling pyrotechnics or laser lighting displays, where audience or performers safety could be
at risk.
DMX512
151
History
DMX512
Developed by the Engineering Commission of United States Institute for Theatre Technology (USITT), the standard
was created in 1986, with subsequent revisions in 1990 leading to USITT DMX512/1990.
DMX512-A
In 1998 the Entertainment Services and Technology Association (ESTA) began a revision process to develop the
standard as an ANSI standard. The resulting revised standard, known officially as "Entertainment Technology —
USITT DMX512-A — Asynchronous Serial Digital Data Transmission Standard for Controlling Lighting
Equipment and Accessories", was approved by the American National Standards Institute (ANSI) in November
2004. It was revised again in 2008, and is the current standard known as "E1.11 - 2008, USITT DMX512-A", or just
"DMX512-A", and is maintained by ESTA.
Physical layer
Network topology
A DMX512 network employs a multi-drop bus topology with nodes strung together in what is commonly called a
daisy chain. A network consists of a single DMX512 controller — which is the sole master of the network — and
one or more slave devices. For example, a lighting console is frequently employed as the controller for a network of
slave devices such as dimmers, fog machines and intelligent moving lights.
Each slave device has a DMX512 "IN" connector and, in most cases, a DMX512 "OUT" connector (sometimes
marked "THRU") as well. The controller, which has only an OUT connector, is connected via a DMX512 cable to
the IN connector of the first slave. A second cable then links the OUT or THRU connector of the first slave to the IN
connector of the next slave in the chain, and so on. The final, empty, OUT or THRU connector of the last slave on
the daisy chain should have a terminator plugged into it.
A terminator is a stand-alone male connector with a built-in resistor. The resistor — typically 120 Ω to match the
cable characteristic impedance, is connected across the primary data signal pair. If a secondary data pair is used, then
another termination resistor is connected across it as well. Although simple systems, i.e., systems having few devices
and short cable runs, may work reliably without a terminator, it is considered good practice always to use a
terminator at the end of the daisy chain. Some DMX devices have built-in terminators that can be manually activated
with a mechanical switch or by software, or by automatically sensing the absence of a connected cable.
Each DMX network is called a "DMX universe".
[2]
Large control desks (operator consoles) may have the capacity to
control multiple universes, with an OUT connector provided for each universe.
Electrical
DMX512 data are sent using EIA-485 voltage levels. However, quoting from E1.11, "The electrical specifications of
this Standard are those of EIA-485-A, except where specifically stated in this document. Where a conflict between
EIA-485-A and this document exists, this document is controlling as far as this Standard is concerned."
DMX512 is a bus network no more than 1200 metres (3900 ft) long, with not more than 32 devices on a single bus.
If more than 32 devices need to communicate, the network can be expanded across parallel buses using DMX
splitters. Network wiring consists of a shielded twisted pair, with a characteristic impedance of 120 Ohms, with a
termination resistor at the end of the cable furthest from the controller to absorb signal reflections.
The E1.11 (DMX512 2004) electrical specification addresses the connection of DMX512 signal common to Earth
ground. Specifically, the standard recommends that transmitter ports (DMX512 controller OUT port) have a low
DMX512
152
impedance connection between signal common and ground; such ports are referred to as grounded. It is further
recommended that receivers have a high impedance connection between signal common and ground; such ports are
referred to as isolated.
The standard also allows for isolated transmitter ports. Systems with the transmitter port and all receiver ports
isolated are fairly common. The standard allows for non-isolated receivers.
Good practice dictates that systems ground the signal common at only one point, in order to avoid the formation of
disruptive ground loops.
Grounded receivers that have a hard connection between signal common and ground are permitted but their use is
strongly discouraged. Several possible grounding configurations which are commonly used with EIA485 are
specifically disallowed by E1.11.
However, some equipment users and manufacturers have disregarded the formal topology rules. For short cable runs
of less than about 45 metres (148 ft) with only a few devices, it is sometimes possible to operate without termination.
At short distances, cables with higher capacitance and different characteristic impedance such as microphone cable
can be used. As the cable length and/or number of devices increases however, following the specification for
termination and correct cable impedance becomes of vital importance.
Connectors
DMX512 1990 specifies that where connectors are used, the data link shall use five-pin XLR style electrical
connectors (XLR-5), with female connectors used on transmitting (OUT) ports and male connectors on receiving
ports. DMX512-A (E1.11) requires the use of an XLR-5 connector, unless there is insufficient physical space on the
device, in which case an XLR-5 adapter shall be supplied. DMX512-A (E1.11-2008) allows the use of eight-pin
modular (RJ-45) connectors for fixed installations where regular plugging and unplugging of equipment is not
required.
Some DMX512 equipment manufacturers at the dawn of the DMX era employed non-compliant or proprietary
connectors and pinouts; eventually, the most common of these became the already common three-pin XLR
connector (also called cannon jack in some countries), since the electrical specification currently only defines a
purpose for a single wire pair. There may be a risk of equipment damage if XLR 3-pin carrying DMX signal is
plugged into an audio signal chain, but nevertheless, the trend caught on and nowadays the vast majority of DMX
lighting products, in any price range, are fitted with 3-pin XLR connectors exactly like the ones used in audio signal
chains.
Also, devices are sometimes fitted with four-pin connectors when both communications and power are sent through
a common cable. Note also that non-theatrical uses of DMX512 such as architectural lighting often use non-standard
connectors.
XLR-3 pinout
1. Signal Common
2. Data 1- (Primary Data Link)
3. Data 1+ (Primary Data Link)
XLR-5 pinout
1. Signal Common
2. Data 1- (Primary Data Link)
3. Data 1+ (Primary Data Link)
4. Data 2- (Optional Secondary Data Link)
5. Data 2+ (Optional Secondary Data Link)
RJ-45 pinout
1. Data 1+
2. Data 1-
3. Data 2+
4. Not Assigned
5. Not Assigned
6. Data 2-
7. Signal Common (0 V) for Data 1
8. Signal Common (0 V) for Data 2
DMX512
153
The RJ-45 connector pinout matches the conductor pairing scheme used by Category 5 (Cat5) twisted pair patch
cables. The avoidance of pins 4 and 5 helps to prevent equipment damage, if the cabling is accidentally plugged into
a single-line public switched telephone network phone jack.
Cabling
Cable built to the DMX-512A specification.
The cable has a male connector on one end and a female connector on
the other end. The male connector plugs into the transmitting, female
jack and the female connector plugs into the receiving, male jack.
Cabling for DMX512 was removed from the standard and a separate
cabling standards project was started in 2003
[3]
. Two cabling
standards have been developed, one for portable DMX512 cables
(ANSI E1.27-1 - 2006) and one for permanent installations (draft
standard BSR E1.27-2). This resolved issues arising from the
differences in requirements for cables used in touring shows versus
those used for permanent infrastructure.
The electrical characteristics of DMX512 cable are specified in terms
of impedance and capacitance, although there are often mechanical and
other considerations that must be considered as well. Cable types that
are appropriate for DMX512 usage will have a nominal characteristic
impedance of 120 ohms. Cat5 cable, commonly used for networking
and telecommunications, has been tested by ESTA for use with
DMX512A. Also, cables designed for EIA485 typically meet the DMX512 electrical specifications. Conversely,
microphone and line level audio cables lack the requisite electrical characteristics and thus are not suitable for
DMX512 cabling. The significantly lower impedance and higher capacitance of these cables distort the DMX512
digital waveforms, which in turn can cause irregular operation or intermittent errors that are difficult to identify and
correct.
Protocol
At the datalink layer, a DMX512 controller transmits asynchronous serial data at 250 kbaud. The data format is fixed
at one start bit, eight data bits, two stop bits and no parity.
The start of a packet is signified by a break followed by a "mark" (a logical one), known as the "Mark After Break"
(MAB). The break, which signals the end of one packet and the start of another, causes receivers to start reception
and also serves as a frame (position reference) for data bytes within the packet. Framed data bytes are known as
slots. Following the break, up to 513 slots are sent.
The first slot is reserved for a "Start Code" that specifies the type of data in the packet. A start code of 0x00
(hexadecimal zero) is the standard value used for all DMX512 compatible devices, which includes most lighting
fixtures and dimmers. Other start codes are used for Text packets (0x17), System Information Packets (0xCF), for
the RDM extension to DMX (0xCC), and various proprietary systems. ESTA maintains a database of alternate start
codes.
[4]
All slots following the start code contain control settings for slave devices. A slot's position within the packet
determines the device and function to be controlled, while its data value specifies the control setpoint. Multi-byte
data values are conveyed in little endian format in adjacent slots.
DMX512
154
Timing
DMX512 timing parameters are allowed to vary over a wide range. The original authors specified the standard this
way to provide the greatest design flexibility. Because of this, however, it was difficult to design receivers that
operated over the entire timing range. As a result of this difficulty, the timing specification of the original 1986
standard was changed in 1990. Specifically, the MAB, which was originally fixed at 4 μs, was changed to 8 μs,
minimum. The E1.11 (2004) standard relaxed the transmitter and receiver timing specifications. This relaxed the
timing requirements for systems using controllers built to DMX512-A (E1.11); however, a significant number of
legacy devices still employ transmit timing near the minimum end of the range.
-- Min Break (μs) Min MAB (μs)
Transmitted 92 12
Receiver recognize 88 8
Maximum times are not specified because as long as a packet is sent at least once per second, the BREAK, MAB,
inter-slot time, and the mark between the last slot of the packet and the break (MBB) can be as long as desired.
A maximum-sized packet, which has 512 channels (slots following the start code), takes approximately 23 ms to
send, corresponding to a maximum refresh rate of about 44 Hz. For higher refresh rates, packets having fewer than
512 channels can be sent.
The standard does not specify the minimum number of slots that can be sent in a packet. However, it does require
that packets be transmitted so that the leading edges of any two sequential BREAKs must be separated by at least
1204 μs, and receivers must be able to handle packets with break-to-break times a short as 1196 μs.
[5]
The minimum
break-to-break transmit time can be achieved by sending packets that contain at least 24 slots (by adding extra
padding bytes, if necessary) or by stretching parameters such as the BREAK, MAB, Interslot, or Interpacket times.
More information on the DMX Packet is well described here
[6]
.
Addressing and data encoding
Most data is sent with the default Null Start Code of 00h. Quoting from the standard:
8.5.1 NULL START code
A NULL START Code identifies subsequent data slots as a block of un-typed sequential 8-bit information.
Packets identified by a NULL START Code are the default packets sent on DMX512 networks. Earlier versions of this
standard assumed that only dimmer class data would be sent using NULL START Code packets. In practice NULL START
Code packets have been used by a wide variety of devices; this version recognizes this fact.
Each NULL START Code packet contains no formal data or addressing structure. The device using data from the packet must
know the position of that data within the packet.
Dimmer packs or racks use a group of slots to determine the levels for their dimmers. Typically a dimmer has a
starting address that represents the lowest numbered dimmer in that pack, and the addressing increases from there to
the highest numbered dimmer. As an example, for two packs of six dimmers each, the first pack would start at
address 1 and the second pack at address 7. Each slot in the DMX512 packet corresponds to one dimmer.
DMX512
155
8-bit versus 16-bit
DMX does not mandate a method of 16-bit encoding for Null Start Code packets, however many moving lights make
use of encoding larger than 8 bit numbers. To control position more accurately, some fixtures use two channels each
for pan and tilt. This gives a 16-bit value range of 65536, permitting accuracies for each axis down to 0.007°
(446°/65536).
DMX in practice
DMX512's popularity is partly due to its robustness. The cable can be abused without any loss of function in ways
that would render Ethernet or other high speed data cables useless, although cable faults can occasionally lead to
intermittent problems such as random triggering. Unexpected fixture behavior is caused by addressing errors, cable
faults, or incorrect data from the controller.
Secondary data link
The Singapore Flyer uses wireless DMX to
control the lighting on the pods and rim.
Although the two secondary link pins of the five-pin XLR connector
were originally intended to support a second DMX512 universe, many
other proprietary uses have been implemented for these pins. For
example, some DMX512 equipment manufacturers used these pins to
carry power (typically 24 volts DC) for their proprietary equipment,
even though this violated the DMX512 specification and would
potentially damage other, standard DMX512 devices on the network.
Consequently the standard practice is now to send additional universes
on separate connectors and leave the secondary data link pins unused.
Some manufacturers made units with three-pin connectors because of
their lower cost, even though DMX512-A specifies that the connector
must be a five-pin XLR connector. There is good reason for this rule: a
three-pin XLR can easily be connected to a sound board. If a DMX512
controller or device were to be accidentally connected to a sound board
that is generating 48 volt phantom power, the phantom power sent
along the cable could potentially damage the DMX512 equipment.
Wireless operation
Recently, wireless DMX512 adapters have become popular, especially in architectural lighting installations where
cable lengths can be prohibitively long. Such networks typically employ a wireless transmitter at the controller, with
strategically placed receivers near the fixtures to convert the wireless signal back to conventional DMX512 wired
network signals.
Although wireless DMX512 networks can function over distances exceeding 3000 feet (910 m) under ideal
conditions, most wireless DMX512 links are limited to a maximum distance of 1000–1500 feet (300–460 m) to
ensure reliable operation. Early wireless DMX512 systems typically used WLAN technology. Later generations used
frequency-hopping spread spectrum (FHSS) technology to attain more reliable data transfers, although FHSS
systems tend to disturb other types of wireless communication systems such as WiFi/WLAN. This has been solved
in newer wireless DMX systems by using adaptive frequency hopping and cognitive coexistence, a technique to
detect and avoid surrounding wireless systems, to avoid transmitting on occupied frequencies.
[7]
DMX512
156
Development
Many alternatives to DMX512 have been proposed to address perceived limitations such as the maximum slot count
of 512 per universe, the unidirectional signal, and the lack of inherent error detection. The 2004 DMX512-A revision
added a System Information Packet (SIP). This packet can be interleaved with Null packets. One feature of SIPs is
they allow check sums to be sent for DMX Null data. However, SIPs have rarely been implemented.
The 2004 DMX512-A revision of DMX512 also lays the foundation for the RDM (Remote Device Management)
protocol through the definition of Enhanced Functionality. RDM allows for diagnostic feedback from fixtures to the
controller by extending the DMX512 standard to encompass bidirectional communication between the lighting
controller and lighting fixtures. RDM was approved by ANSI in 2006 and is rapidly gaining popularity.
An Ethernet based protocol can distribute multiple DMX universes through a single cable from a control location to
breakout boxes closer to fixtures. These boxes then output the conventional DMX512 signal. ANSI E1.31 - 2009
Entertainment Technology – Lightweight streaming protocol for transport of DMX512 using ACN, published May
4, 2009, and Art Net are two public domain protocols used to achieve this.
Development tools
When developing and/or troubleshooting the DMX512 bus, examination of hardware signals can be very important.
Generally a logic analyzer or bus analyzer is not required. However, several companies sell DMX512 verification
units. These DMX 512 testers provide format, timing verification, and scope trigger signals, and they are very
valuable for developers. They also provide general user level testing.
References
[1] United States Institute for Theatre Technology DMX512 FAQ (http:// www.usitt. org/ DMX512FAQ.aspx#a1)
[2] Bennette, Adam (2006). Recommended Practice for DMX512. pg. 89: PLASA. ISBN 978-0-9557035-2-2.
[3] "Error: no |title= specified when using {{Cite web}}" (in English). p. http:// tsp.plasa. org/tsp/ working_groups/CP/ docs/
CPmin07-2003w.pdf.
[4] http:// www.esta. org/ tsp/ working_groups/ CP/ DMXAlternateCodes. php
[5] ESTA (2004). American National Standard E1.11 - 2004. [Entertainment Services and Technology Association ]. p. 19.
[6] http:// www.dmx512-online.com/ packt. html
[7] CRMX Nova - Technology (http:// www. crmxnova.com/ technology.php). LumenRadio AB. Retrieved on 29 March 2010.
External links
• Technical Standards Program (http:// www. esta. org/tsp) from ESTA
• USITT (http:/ / www. usitt. org/)
• OpenDMX.net (http:/ / www. opendmx.net/ )
• OLA, a cross platform, multi language, DMX framework (http://code.google. com/ p/ linux-lighting/) from
Google Code
• Rdmx, an open source DMX implementation for the Ruby programming language (http:/ /github. com/ heisters/
rdmx/ tree/ master) from GitHub
DNET
157
DNET
DNET is a proprietary software suite of network protocols created by DIAB, originally deployed on their Databoard
products. It was based upon X.25, which was particularly popular in European telecommunications circles at that
time. In that incarnation it was rated at 1 Mbit/s over RS-422.
In the 80's, ISC Systems Corporation (ISC) purchased DNET as part of their purchase of DNIX, and ported it to run
over Ethernet. ISC's choice of DNET over TCP/IP was in part due to the relative light weight of the DNET protocol
stack, allowing it to run more efficiently on the target machinery. DNET was also auto-configuring so there was no
manual configuration of the local network, all that was required was that each machine in a network be given a
unique name. This simplicity was advantageous in ISC's market.
Being based on X.25, DNET was connection-oriented, datagram-based (as opposed to a byte stream), supported
out-of-band (interrupt) messages, and provided link-down notifications to its clients and servers so that applications
did not have to provide their own heartbeats. In the financial community these were all considered advantages over,
say, TCP/IP. DNET also supported Wide Area Networks (WAN) using X.25 point-to-point communication links,
either leased line or dialup (see also Data link). (WAN support did require manual configuration of the gateway
machines.)
DNET provided named network services, and supported a multicast protocol for finding them. Clients would ask for
a named service, and the first respondent (of potentially many) would get the connection. Servers could either be
resident, in which case they registered their service name(s) with the protocol stack when they were started, or
transient, in which case a fresh server was forked/execed for each client connection.
DNET at ISC consisted of the following services:
• netman (the main networking client/server support handler)
• raccess (remote file access via /net/machine/path/from/raccess/root...)
• rx (remote execution)
• ncu (network login)
• bootserver (diskless workstation boot service)
• dmap (ruptime analog)
There were many more services than these at a typical DNET installation - these are representative.
netman
netman was the main component of DNET. It was a DNIX Handler, usually mounted on /netphys, and was
responsible for providing all Layer 2 and Layer 3 X.25 protocol handling. It talked to the Ethernet and HDLC device
drivers. It also provided the service name registry, and the WAN gateway functionality. Resident servers could also
utilize, at their instigation, a Layer 3 protocol stack (called 'serverprot') between themselves and netman, allowing
them to support up to 4095 client connections through one file descriptor (to netman). Such servers were called
complex resident servers, so named in honor of the relatively complicated (though not large) bit of protocol code that
had to be included to handle the multiplexing and flow control. Simple resident and transient servers consumed a file
descriptor per client connection. It was possible to run more than one netman process, for testing or other special
purposes. (Such a process would be configured to use different Ethertype and handler mount points, at a minimum.)
The /usr/lib/net/servtab file was the usual location for the configuration file controlling WAN
configuration and transient servers.
Client applications would open /netphys/servicename, this would normally result in an open connection to a
server somewhere, possibly even on the same machine. Resident servers would open
/netphys/listen/servicename, this would register their service name with netman. Transient servers were
pre-registered via their entry in servtab, and would be forked/execed with their connection already established by
DNET
158
netman. Machine-specific services (such as ncu---network login) would contain the machine name as part of the
service name, installation-specific services (such as dmap---a site's machine status servers) would not.
Service name resolution was handled entirely between netman processes. A client's representative would multicast
the desired service name to the network using a MUI [Multicast Unnumbered Information] extension to X.25.
Responses indicating server availability would be directed (not multicast) back by potential server representatives.
When there was more than one respondent to the multicast (as was normal for, say, dmap) the first one would be
selected for opening a connection. Only one server was ever contacted per client service request. As with all UI-class
messages in X.25, packet loss was possible, so the MUI process was conducted up to three times if there was no
response.
The X.25-ness of connections, namely datagram control, was exposed to applications (both client and server) as an
extra control byte at the beginning of each read and write through a connection. As was customary in network header
processing, this byte was usually accessed at a -1 offset within any application's networking code, only the buffer
allocation and the read(2)/write(2) calls were usually aware of it. This byte contained the X.25 M, D, and Q bits (for
More, Delivery, and Qualifier). DNET never implemented the D (delivery confirmation) bit, but the other two were
useful, particularly the M bit. The M bits were how datagrams were delimited. A byte-stream application could
safely ignore them. Any read with a clear M bit indicated that the read result contained an entire datagram and could
be safely processed. Reads that were too small to contain an entire datagram would get the part that would fit into the
buffer, with the M bit set. M bits would continue to be set on reads until a read contained the end of the original
datagram. Datagrams were never packed together, you could get at most one per read. Any write with the M bit set
would propagate to the other end with the M bit set, indicating to the other end that it should not process the data yet
as it was incomplete. (The network was free to coalesce M'd data at its discretion.) The usual application merely
wrote an entire datagram at once with a clear M bit, and was coupled with a small read loop to accumulate entire
datagrams before delivery to the rest of an application. (Though not often required due to automatic fragmentation
and reassembly within the protocol stack, this protective loop ensured that allowable exposed fragmentation was
never harmful.) The Q bit was a simple marker, and could be used to mark 'special' datagrams. In effect it was a
single header bit that could be used to mark metadata.
Out-of-band (OOB) data, which bypassed all buffering, flow control, and delivery confirmation was accomplished
via DNIX's ioctl mechanism. It was limited (per X.25) to 32 bytes of data. (Asynchronous I/O reads were usually
utilized so that out of band data could be caught at any time.) As with UDP, it was possible to lose OOB data, but
this normally could only happen if it was overutilized. (The lack of a reader waiting for it resulted in OOB data being
discarded.)
Flow control was accomplished within the network (between netman processes, and possibly involving external
X.25 WAN links) using the usual X.25 mechanisms. It was exposed to the applications only insofar as whether the
network data reads and writes blocked or not. If a request could be satisfied via the buffering abilities of the netman
handler and/or the current state of the connection it would be satisfied immediately without blocking. If the buffering
were exceeded the request would block until the buffers could satisfy what remained of the request. Naturally,
Asynchronous I/O could be used to insulate the process from this blocking if it would be a problem. Also, complex
resident servers used the 'serverprot' X.25 flow control mechanisms internally to avoid ever blocking on their single
network file descriptor, this was vital considering that the file descriptor was shared by up to 4095 client
connections.
DNET
159
raccess
raccess provided a distributed filesytem, usually mounted on /net. Shell-level applications could access files on
remote machines via /net/machine.domain/path file names. Raccess was a DNIX handler (for its clients), a
netman client (for packaging up the filesystem requests), and a netman server (for executing the requests on the
remote machine). The usual reference point for remote files was '/', the root of the remote machine's filesystem,
though it could be anything that was required. (Changing this reference point was one way of providing a facility
analogous to chroot jails for network file accesses.) Raccess supported user ID translation and security facilities in a
manner analogous to TCP/IP's .rhosts file. It was possible to run more than one raccess process, for testing or other
special purposes. Examples:
cat /net/grumpy/usr/adm/errmessages
vi /net/sneezy/etc/passwd
rm /net/dopey.on.weekends.com/etc/nologin
mv /net/doc/tmp/log /net/doc/tmp/log-
cd /net/bashful/tmp && ls
rx
rx provided remote command execution in a manner analogous to TCP/IP's rsh (or remsh) facility. It was a netman
client (for passing standard I/O to the remote machine), a netman server (for receiving standard I/O on the remote
machine), a parent process for hosting the remote process, and a DNIX handler (so that remote programs believed
themselves to be connected to tty devices). Rx supported user ID translation and security facilities in a manner
analogous to TCP/IP's .rhosts file. Some examples:
rx machine!who
rx machine!vi /etc/passwd
tar cf - . | rx -luser:pass machine.far.far.away.com!tar xf -
ncu
ncu (networked call unix) was the usual network remote login procedure, analogous to TCP/IP's telnet or rlogin
protocols. Like rx, it was a netman client (for passing standard I/O to the remote machine), a netman server (for
receiving standard I/O on the remote machine), a parent process for hosting the remote login procedure, and a DNIX
handler (so that remote programs believed themselves to be connected to tty devices).
bootserver
The bootserver handled boot and dump requests from the diskless workstations. It was a simple process that talked
directly to the Ethernet driver. Technically not really part of DNET, in that it was a satellite protocol merely
associated with DNET installations. (As was the X.25 'safelink' file server protocol used to communicate between
these same diskless workstations and their file servers.)
dmap
dmap provided a facility analogous to TCP/IP's ruptime facility. Dmap servers, one per disk-based machine,
connected directly to Ethernet and periodically broadcast (multicast, actually, so that non-participants never even
saw the messages) their presence. The same process also collected these broadcasts and (as a server) advertised the
availability of the list of senders through netman. To control the load on the servers, the broadcast frequency was
affected by the current size of the list in order to limit the network messages to an average of one per second. Dmap
clients would contact their nearest dmap server (as determined by who responded first to the service name enquiry)
DNET
160
to get the current list of machines, then would contact each machine in turn (usually maintaining four [configurable]
connections in parallel for speed) to get the specific machine status they were interested in. (Unlike most other
transient servers, the dmap client program was not also the transient server. The convention for DNET transient
servers was that the same program was used for both sides of the link. netman automatically passed a -B
command-line argument to any transient server it spawned, indicating to the process that it was the B-side process
and that its standard input file descriptor was a network service connection. The reason for splitting dmap into A-
and B-side programs was the desire to push as much of the processing [such as display formatting] onto the client as
possible, a 'thick' client in other words. In this case because the client was run infrequently, and usually manually,
the division was made in order to minimize the load on the servers. This extended even to minimizing the memory
footprint of the transient server, which necessitated the split into A- and B-side programs.)
DNP3
DNP3 (Distributed Network Protocol) is a set of communications protocols used between components in process
automation systems. Its main use is in utilities such as electric and water companies. Usage in other industries is not
common. It was developed for communications between various types of data acquisition and control equipment. It
plays a crucial role in SCADA systems, where it is used by SCADA Master Stations (aka Control Centers), Remote
Terminal Units (RTUs), and Intelligent Electronic Devices (IEDs). It is primarily used for communications between
a master station and RTUs or IEDs. ICCP, the Inter-Control Center Communications Protocol, is used for
inter-master station communications.
History
While IEC 60870-5 was still under development and had not been standardized, there was a need to create a standard
that would allow interoperability between various vendors' SCADA components for the electrical grid. Thus, in
1993, GE-Harris Canada (formerly known as Westronic, Inc.) used the partially completed IEC 60870-5 protocol
specifications as the basis for an open and immediately implementable protocol that specifically catered to North
American requirements. The protocol is designed to allow reliable communications in the adverse environments that
electric utility automation systems are subjected to, being specifically designed to overcome distortion induced by
EMI, aging components (their expected lifetimes may stretch into decades), and poor transmission media.
DNP3
161
Security
Although the protocol was designed to be very reliable, it was not designed to be secure from attacks by hackers and
other malevolent forces that could potentially wish to disrupt control systems to disable critical infrastructure.
Because smart grid applications generally assume access by third parties to the same physical networks and
underlying IP infrastructure of the grid, much work has been done to add Secure Authentication features to the
DNP3 protocol. The DNP3 protocol is now compliant with IEC 62351-5. Some vendors implement elliptic curve
cryptography which the US NSA considers sufficient to protect information as "top secret" with only 384 bits.
Implementation of ECC over DNP3 is not very widespread yet.
The DNP3 protocol is also referenced in IEEE Std. IEEE 1379-2000, which recommends a set of best practices for
implementing modern SCADA Master-RTU/IED communication links. These include not just encryption but other
practices that enhance security against well known intrusion methods.
Technical details
The DNP3 protocol has significant features that make it more robust, efficient, and self compatible than older
protocols such as Modbus, at the cost of somewhat higher complexity.
DNP3 is, in standard networking terms, mostly a layer 2 protocol. It provides multiplexing, data fragmentation, error
checking, link control, prioritization, and layer 2 addressing services for user data. The DNP3 frame strongly
resembles, but is not identical to the FT3 frame. It makes heavy use of Cyclic redundancy check codes to detect
errors.
The improved bandwidth efficiency is accomplished through event oriented data reporting. The Remote Terminal
Unit is initially interrogated with what DNP3 terms a "Class 0 poll." This causes the RTU to send all static point data
to the Master station. Then, as the data points generate events, these events can be placed in one of three buffers
whose status is reported on every Remote Terminal Unit response. If there is data in that buffer, the buffer data flag
is set. The Master can then see that there should be event data to be retrieved when issuing a poll for Class 1, Class 2,
or Class 3. In other words, after a Class 0 poll, only significant data changes are sent. This can result in significantly
more responsive data retrieval than polling everything, all the time, irrespective of whether it has changed
significantly.
The Remote Terminal Unit can also be configured to spontaneously report Class 1, 2, or 3 data, when it becomes
available.
The DNP3 protocol supports time synchronization with an RTU. The DNP Protocol has time stamped variants of all
point data objects so that even with infrequent RTU polling, it is still possible to receive enough data to reconstruct a
sequence of events of what happened in between the polls.
The DNP3 protocol has a substantial library of common point-oriented objects. The focus of this extensive library
was to eliminate the need for bit-mapping data over other objects, as is often done in many Modbus installations. For
example, floating point number variants are available, so there is no need to map the number on to a pair of 16 bit
registers. This improves compatibility and eliminates problems such as Endianness.
A Remote Terminal Unit for the DNP3 protocol can be a very small, simple embedded device, or it can be a very
large, complex rack filled with equipment. The DNP User Group has established four levels of subsets of the
protocol for RTU compliance. The DNP Users Group has published test procedures for Levels 1 and 2, the simplest
implementations.
While this protocol is robust, efficient, compatible, and secure; it is getting more and more complex and subtle as it
ages. While this is partly due to more demanding industrial applications, it is also a reflection that SCADA concepts
are not as simple as they might first seem. The goal of compatibility, seems more and more elusive as issues emerge
from field experience.
DNP3
162
IEEE Standardisation
The IEEE adopted DNP3 as IEEE Std 1815-2010
[1]
on the 23rd of July 2010
[2]
. IEEE Std 1815 was co-sponsored
by the Transmission and Distribution Committee and Substations Committee of the IEEE Power & Energy Society,
with additional input from the DNP Users Group
[3]
.
Open source implementations
• master/slave/testset
[4]
licensed under Apache 2.0
External links
• DNP Users Group
[5]
• Web-based DNP3 Protocol Information and Training
[6]
• Training on DNP3 Protocol
[7]
References
[1] http:/ / dx. doi. org/10. 1109/ IEEESTD.2010. 5518537
[2] http:// smartgrid.ieee. org/ ieee-smartgrid-news/89-ieee-delivers-critical-1815-dnp3-standard-in-record-time
[3] http:// www.dnp. org/About/ UsersGroup. aspx
[4] http:/ / code. google. com/ p/ dnp3/
[5] http:/ / www.dnp. org
[6] http:/ / www.trianglemicroworks.com/ VideoPage. aspx
[7] http:// www.subnet. com/training/course-overviews/course-detail/ dnp3-and-ase2000-test-set-training.aspx
DOCSIS
Data Over Cable Service Interface Specification (DOCSIS) (often pronounced English pronunciation: /ˈdɒksɪs/) is an
international telecommunications standard that permits the addition of high-speed data transfer to an existing cable
TV (CATV) system. It is employed by many cable television operators to provide Internet access (see cable Internet)
over their existing hybrid fiber-coaxial (HFC) infrastructure.
History
DOCSIS was developed by CableLabs and contributing companies including ARRIS, BigBand Networks,
Broadcom, Cisco, Conexant, Correlant, Harmonic, Intel, Motorola, Netgear, Technicolor, Terayon, and Texas
Instruments.
The first specification was version 1.0, issued in March 1997, with revision 1.1 (adding quality of service (QoS)
capabilities) following in April 1999. Because of increased demand for symmetric services such as IP telephony,
DOCSIS was revised to enhance upstream transmission speeds; DOCSIS 2.0 was released in December 2001. Most
recently, the specification was revised to significantly increase transmissions speeds (this time both upstream and
downstream) and introduce support for Internet Protocol version 6 (IPv6). This version, DOCSIS 3.0, was released
in August 2006. Cross-version compatibility has been maintained across all versions of DOCSIS, with the devices
falling back to the highest supported version in common between both endpoints: cable modem and cable modem
termination system (CMTS). For example, if one has a cable modem that only supports DOCSIS 1.0, and the system
is running 2.0, the connection will be established at DOCSIS 1.0 speeds.
As of the end of 2011, the fastest deployments in North America are expected to be Shaw Cable's announced 250
Mbit/s download 15 Mbit/s upload, which will be implemented in phases, and Videotron's 120 Mbit/s download / 20
DOCSIS
163
Mbit/s upload service in Quebec City [1], followed closely by existing 107 Mbit/s deployments in the USA. The
U.S. Federal Communications Commission (FCC) urged U.S. providers to make 100 Mbit/s a standard speed
available to 100 million households before the end of the decade [2]. Of wired technologies, only DOCSIS, FIOS,
E-line (advanced powerline networking with bandwidth equivalent to fiber) and Ethernet in the first mile are likely
to achieve this speed on large scale in that time frame.
In the UK broadband provider Virgin Media has announced on 20 April 2011 to start trials with download speeds of
1.5 Gbit/s and upload of 150 Mbit/s based on DOCSIS3.0
[3]
Regional variants
As frequency allocation bandwidth plans differ between U.S. and European CATV systems, DOCSIS standards have
been modified for use in Europe. These modifications were published under the name "EuroDOCSIS". The
differences between the bandwidths exist because European cable TV conforms to PAL standards of 8 MHz
bandwidth and North American cable TV conforms to ATSC standards which specify 6 MHz. The wider bandwidth
in EuroDOCSIS architectures permits more bandwidth to be allocated to the downstream data path (toward the user).
EuroDOCSIS certification testing is executed by Belgium company Excentis (formerly known as tComLabs), while
DOCSIS certification testing is executed by CableLabs. Typically, customer premises equipment receives
"certification", while CMTS equipment receives "qualification".
Most cable systems in Japan and Colombia utilize the North American version of DOCSIS, while some employ a
variant of DOCSIS that uses upstream channels that are based on a 9.216 MHz master clock (as opposed to
10.24 MHz used in DOCSIS/EuroDOCSIS) resulting in upstream channel widths that are a power-of-two division of
6 MHz (as opposed to 6.4 MHz in DOCSIS/EuroDOCSIS).
International standards
The ITU Telecommunication Standardization Sector (ITU-T) has approved the various versions of DOCSIS as
international standards. DOCSIS 1.0 was ratified as ITU-T Recommendation J.112 Annex B (1998), but it was
superseded by DOCSIS 1.1 which was ratified as ITU-T Recommendation J.112
[4]
Annex B (2001). Subsequently,
DOCSIS 2.0 was ratified as ITU-T Recommendation J.122
[5]
. Most recently, DOCSIS 3.0 was ratified as ITU-T
Recommendation J.222 (J.222.0
[6]
, J.222.1
[7]
, J.222.2
[8]
, J.222.3
[9]
).
Note: While ITU-T Recommendation J.112 Annex B corresponds to DOCSIS/EuroDOCSIS 1.1, Annex A describes
an earlier European cable modem system ("DVB EuroModem") based on ATM transmission standards. Annex C
describes a variant of DOCSIS 1.1 that is designed to operate in Japanese cable systems. The ITU-T
Recommendation J.122 main body corresponds to DOCSIS 2.0, J.122 Annex F corresponds to EuroDOCSIS 2.0,
and J.122 Annex J describes the Japanese variant of DOCSIS 2.0 (analogous to Annex C of J.112).
Features
DOCSIS provides great variety in options available at Open Systems Interconnection (OSI) layers 1 and 2, the
physical and data link layers.
Physical layer
• Channel width: All versions of DOCSIS utilize either 6 MHz channels (e.g. North America) or 8 MHz channels
("EuroDOCSIS") for downstream transmission. In the upstream, DOCSIS 1.0/1.1 specifies channel widths
between 200 kHz and 3.2 MHz. DOCSIS 2.0 also specifies 6.4 MHz, but can use the earlier, narrower channel
widths for backward compatibility.
• Modulation: All versions of DOCSIS specify that 64-level or 256-level QAM (64-QAM or 256-QAM) be used
for modulation of downstream data, utilizing the ITU-T J.83-AnnexB standard for 6 MHz channel operation, and
the DVB-C modulation standard for 8 MHz (EuroDOCSIS) operation. Upstream data uses QPSK or 16-level
DOCSIS
164
QAM (16-QAM) for DOCSIS 1.x, and it uses QPSK, 8-QAM, 16-QAM, 32-QAM, 64-QAM for DOCSIS 2.0 &
3.0. DOCSIS 2.0 & 3.0 also support 128-QAM with trellis coded modulation in S-CDMA mode (with an
effective spectral efficiency equivalent to that of 64-QAM).
Data link layer
• DOCSIS employs a mixture of deterministic access methods for upstream transmissions, specifically TDMA for
DOCSIS 1.0/1.1 and both TDMA and S-CDMA for DOCSIS 2.0 and 3.0, with a limited use of contention for
bandwidth requests. In contrast to the pure contention-based MAC CSMA/CD employed in older Ethernet
systems (there is no contention in switched Ethernet), DOCSIS systems experience few collisions.
• For DOCSIS 1.1 and above the MAC layer also includes extensive quality-of-service (QoS) features that help to
efficiently support applications that have specific traffic requirements such as low latency, e.g. voice over IP.
• DOCSIS 3.0 features channel bonding, which enables multiple downstream and upstream channels to be used
together at the same time by a single subscriber.
[10]
Throughput
All of these features combined enable a total upstream throughput of 30.72 Mbit/s per 6.4 MHz channel, or
10.24 Mbit/s per 3.2 MHz channel. All three versions of the DOCSIS standard support a downstream
throughput with 256-QAM of up to 42.88 Mbit/s per 6 MHz channel, or 55.62 Mbit/s per 8 MHz channel for
EuroDOCSIS. (see table below)
Network layer
• DOCSIS modems are managed via an IP address.
• DOCSIS 3.0 adds management over IPv6.
[11]
• The 'DOCSIS 2.0 + IPv6' specification also allows support for IPv6 on DOCSIS 2.0 cable modems (via a
firmware upgrade)
[12]

[13]
Speed tables
Maximum raw throughput including overhead (maximum usable throughput without overhead)
Version Downstream Upstream
Channel configuration DOCSIS
throughput
EuroDOCSIS
throughput
Channel configuration Throughput
Minimum
selectable
number
of
channels
Minimum
number
of
channels
that
hardware
must be
able to
support
Selected
number
of
channels
Maximum
number
of
channels
Minimum
selectable
number
of
channels
Minimum
number
of
channels
that
hardware
must be
able to
support
Selected
number
of
channels
Maximum
number
of
channels
1.x 1 1 1 1 42.88 (38)
Mbit/s
55.62 (50)
Mbit/s
1 1 1 1 10.24 (9)
Mbit/s
2.0 1 1 1 1 42.88 (38)
Mbit/s
55.62 (50)
Mbit/s
1 1 1 1 30.72 (27)
Mbit/s
3.0 1 4 m No
maximum
defined
m × 42.88
(m × 38)
Mbit/s
m × 55.62 (m
× 50) Mbit/s
1 4 n No
maximum
defined
n × 30.72 (n
× 27) Mbit/s
Common DOCSIS 3.0 speeds are listed in the table below.
DOCSIS
165
Channel configuration Downstream throughput Upstream throughput
Number of downstream channels Number of upstream channels DOCSIS EuroDOCSIS
4 4 171.52 (152) Mbit/s 222.48 (200) Mbit/s 122.88 (108) Mbit/s
8 4 343.04 (304) Mbit/s 444.96 (400) Mbit/s 122.88 (108) Mbit/s
Note that the number of channels a cable system can support is dependent on how the cable system is set up. For
example, the amount of available bandwidth in each direction, the width of the channels selected in the upstream
direction, and hardware constraints constrain the maximum amount of channels in each direction.
Note that the maximum upstream speed on all versions of DOCSIS depends on the version of DOCSIS used and the
number of upstream channels used if DOCSIS 3.0 is used, but the upstream channel widths are independent of
whether DOCSIS or EuroDOCSIS is used.
Equipment
A DOCSIS architecture includes two primary components: a cable modem (CM) located at the customer premises,
and a cable modem termination system (CMTS) located at the CATV headend. Cable systems supporting on-demand
programming use a hybrid fiber-coaxial system. Fiber optic lines bring digital signals to nodes in the system where
they are converted into RF channels and modem signals on coaxial trunk lines.
A typical CMTS is a device which hosts downstream and upstream ports (it is functionally similar to the DSLAM
used in DSL systems). While downstream and upstream communications travel on a shared coax line in the customer
premises, and connect to a single F connector on the cable modem, it is typical for the CMTS to have separate F
connectors for downstream and for upstream communication. This allows flexibility for the cable operator. Because
of the noise in the return (upstream) path, an upstream port is usually connected to a single neighborhood (fiber
node), whereas a downstream port is usually shared across a small number of neighborhoods. Thus, there are
generally more upstream ports than downstream ports on a CMTS. A typical CMTS has 4 or 6 upstream ports per
downstream port.
Before a cable company can deploy DOCSIS 1.1 or above, it must upgrade its Hybrid fiber-coaxial (HFC) network
to support a return path for upstream traffic. Without a return path, the old DOCSIS 1.0 standard still allows use of
data over cable system, by implementing the return path over regular phone lines, e.g. "plain old telephone service"
(POTS). If the HFC is already 'two-way' or "interactive", chances are high that DOCSIS 1.1 or higher can be
implemented
The customer PC and associated peripherals are termed Customer-premises equipment (CPE). The CPE are
connected to the cable modem, which is in turn connected through the HFC network to the CMTS. The CMTS then
routes traffic between the HFC and the Internet. Using the CMTS, the cable operator (or Multiple Service Operators
- MSO) exercises full control over the cable modem's configuration; the CM configuration is changed to adjust for
varying line conditions and customer service requirements.
DOCSIS 2.0 is also used over microwave frequencies (10 GHz) in Ireland by Digiweb, using dedicated wireless
links rather than HFC network. At each subscriber premises the ordinary CM is connected to an antenna box which
converts to/from microwave frequencies and transmits/receives on 10 GHz. Each customer has a dedicated link but
the transmitter mast must be in line of sight (most sites are hilltop, ).
DOCSIS
166
Security
DOCSIS includes MAC layer security services in its Baseline Privacy Interface specifications. DOCSIS 1.0 utilized
the initial Baseline Privacy Interface (BPI) specification. BPI was later improved with the release of the Baseline
Privacy Interface Plus (BPI+) specification used by DOCSIS 1.1 & 2.0. Most recently, a number of enhancements to
the Baseline Privacy Interface were added as part of DOCSIS 3.0, and the specification was renamed "Security"
(SEC).
The intent of the BPI/SEC specifications is to describe MAC layer security services for DOCSIS CMTS to CM
communications. BPI/SEC security goals are twofold:
• provide cable modem users with data privacy across the cable network
• provide cable service operators with service protection; i.e., prevent unauthorized users from gaining access to the
network’s RF MAC services
BPI/SEC is intended to prevent cable users from listening to each other. It does this by encrypting data flows
between the CMTS and the CM. BPI & BPI+ utilize 56-bit DES encryption, while SEC adds support for 128-bit
AES. All versions provide for periodic key refreshes (at a period configured by the network operator) in order to
increase the level of protection.
The earlier BPI specification [ANSI/SCTE 22-2] had limited service protection because the underlying Key
management protocol did not authenticate cable modems. BPI+ strengthened the service protection feature by adding
digital certificate based authentication with a public key infrastructure to its Key exchange protocol.
Security in the DOCSIS network is vastly improved when only business critical communications are permitted, and
end user communication to the network infrastructure is denied. Successful attacks often occur when the CMTS is
configured for backwards compatibility with early pre-standard DOCSIS 1.1 modems which were "software
upgradeable in the field," but did not include valid DOCSIS or EuroDOCSIS root certificates.
References
[1] http:/ / www.dailytech. com/ Videotron+Launches+ 120Mbps+ Broadband+Service+in+ Canada/ article19714.htm
[2] http:// www.dailytech. com/ FCC+ US+Needs+ Faster+ Broadband+ Standards+Aiming+for+100+Mbps/ article17708.htm
[3] http:/ / seekbroadband. com/ focus/ 2011/ 04/ 20/ ispwatch/ virgin-media-ups-broadband-pace-to-1-5gbps/
[4] http:// www.itu. int/ rec/T-REC-J.112/ en
[5] http:/ / www.itu. int/ rec/T-REC-J.122/ en
[6] http:/ / www.itu. int/ rec/T-REC-J.222. 0/ en
[7] http:// www.itu. int/ rec/T-REC-J.222. 1
[8] http:/ / www.itu. int/ rec/T-REC-J.222. 2
[9] http:/ / www.itu. int/ rec/T-REC-J.222. 3
[10] http:/ / www. cablelabs. com/ news/ pr/2006/ 06_pr_docsis30_080706. html
[11] http:// www. cablelabs. com/ news/ pr/2006/ 06_pr_docsis30_080706. html
[12] http:// www. cablemodem. com/ specifications/ specifications20. html
[13] http:/ / www. rmv6tf.org/2008-IPv6-Summit-Presentations/Dan%20Torbet%20-%20IPv6andCablev2.pdf
DOCSIS
167
External links
• DOCSIS 1.0 Interface Specification (http:// www.cablemodem. com/ specifications/ specifications10. html)
• DOCSIS 1.1 Interface Specification (http:// www.cablemodem. com/ specifications/ specifications11. html)
• DOCSIS 2.0 Interface Specification (http:// www.cablemodem. com/ specifications/ specifications20. html)
• DOCSIS 3.0 Interface Specification (http:// www.cablemodem. com/ specifications/ specifications30. html)
• Cisco documentation on Cable Technologies (http:/ / docwiki.cisco. com/ wiki/ Cable_Access_Technologies)
Technical information about cable TV and DOCSIS.
• DOCSIS Tutorial (http:// bradyvolpe.com) Most comprehensive DOCSIS tutorial.
DREAM (protocol)
DREAM is an ad hoc location-based routing protocol. DREAM stands for Distance Routing Effect Algorithm for
Mobility.
References
• "A distance routing effect algorithm for mobility (DREAM)" in
Basagni, Stefano; Imrich Chlamtac, Violet R. Syrotiuk, Barry A. Woodward (1998). International Conference
on Mobile Computing and Networking Proceedings of the 4th annual ACM/IEEE international conference on
Mobile computing and networking. New York: ACM Press. pp. 76–84. doi:10.1145/288235.288254.
ISBN 1-58113-035-X.
Dynamic synchronous transfer mode
Dynamic synchronous transfer mode (DTM) is an optical networking technology standardized by ETSI in
specification ETSI ES 201 803-1. DTM is a time division multiplexing and a circuit-switching network technology
that combines switching and transport.
[1]
It is designed to provide a guaranteed quality of service (QoS) for the
emerging class of streaming video services, but can be used for packet-based services as well. It has its most use in
professional media networks, mobile TV networks, digital terrestrial television (DTT) networks, in content delivery
networks and in consumer oriented networks, such as "triple play" networks.
Introduction
Basic principle
In DTM, capacity is allocated to a channel by assigning a number of time slots to it. I.e. it is basically a time-division
multiplexing (TDM) system. What sets it apart from other TDM systems is the capability to assign any number of
time slots to a channel, and also varying this number of slots as user traffic demands. The basic argument for this
technique is that it provides a guaranteed QoS for a service since resources are physically allocated to the channel
and traffic from other channels will have no impact on this channel.
The time slots belongs to a "DTM frame" that is structured as follows. The frame is 125 µs long and contains a
number of 64 bit time slots. Thus the number of time slots per frame depends on the link bit-rate. A number of these
time slots are associated to form a channel. The simplest channel consists of 1 time slot that is repeated each 125 µs.
The capacity of this one slot channel is then 64 bits / 125 µs = 512 kbit/s. A channel consisting of N time slots thus
have a capacity of N x 512 kbit/s. Thus 512 kbit/s is the "granularity" of bandwidth allocation for a service.
Dynamic synchronous transfer mode
168
Switching
The DTM standard also specfies that DTM channels may be switched, which sets it apart from ordinary transmission
techniques, such as SDH or SONET. A DTM channel is thus automatically provisioned end-to-end over a general
topology network using control signalling. DTM is thus a circuit switched system. The switches are generally
Time-Space switches that also has the guaranteed QoS property, since resources are physically allocated per channel
also in the switch. This as opposed to packet or cell based routers/switches, in which the packets and cells are
competing for resources and as a result of this competition may have packets or cells delayed or discarded. For
packet and cell switches this shared resource allocation mechanism imposes a limit to how high the utilization of a
network can be before the QoS get un-acceptably low. In DTM network there is no such shared resource allocation,
implying that a network theoretically can be loaded to 100% and still have guaranteed QoS for its services. Real
utilization becomes thus more a question of adapting the network topology and link capacities to the actual traffic
matrix than to accommodating for QoS. so,,,
Why not packet/cell switching?
Packet/cell networks are good (actually were designed) to perform statistical multiplexing. This means that when
different packet streams in a switch or router arrives to a common outgoing link they are buffered until there are
resources free on this link. This makes it possible to utilize the outgoing link to a high degree at the cost of varying
delays. This is a great property for best effort traffic, for which no QoS level is specified. However with the
increasing demand for streaming media with tight QoS requirements, this paradigm falls short. Streaming traffic is
not particularly statistical in its nature and is better served by a fixed resource allocated channel end-to-end.
It is to this kind of streaming media services the DTM technology is typically applied. i.e. for video or audio
services. This does not exclude IP traffic which can gain from being served by a guaranteed QoS transport,
especially if the IP traffic contains video/audio. Indeed there are under-going efforts for adapting IP and Ethernet
technologies for streaming media (see for example professional video over IP).
Alternately, applying MPLS technology to the carriage network can provide the reliability and determinism required
by video and other streaming media. This, used in conjunction with forward error correction techniques can provide
an appropriate transport mechanism with features similar to that of ATM, as ATM served as the basis of design for
MPLS. However, like ATM and unlike DTM, MPLS-enabled networks still suffer from greater variances in frame
jitter and packet loss under heavy congestion conditions.
Recent progress in carrier Ethernet technologies such as Provider Backbone Bridge Traffic Engineering has made
Ethernet suitable for voice and video transmission with SDH/SONET like properties such as hard QoS, deterministic
forwarding and sub 50ms protection switching.
References
[1] ETSI ES 201 803-1 V1.1.1, Dynamic synchronous Transfer Mode (DTM); Part 1: System description
External links
• IHS web page listing for ETSI ES 201 803- 6 (http://electronics. ihs. com/ collections/ mobile/ etsi. htm)
• Paper from the founder of the Topology (in postscript format) (http:// www.sics. se/ ~peter/papers/ DTM-GN.
ps)
EMI (protocol)
169
EMI (protocol)
External Machine Interface (EMI), an extension to Universal Computer Protocol (UCP), is a protocol primarily
used to connect to short message service centres (SMSCs) for mobile telephones. The protocol was developed by
CMG Wireless Data Solutions, now part of Acision.
Syntax
A typical EMI/UCP exchange looks like this :
^B01/00045/O/30/66677789///1//////68656C6C6F/CE^C
^B01/00041/R/30/A//66677789:180594141236/F3^C
The start of the packet is signaled by ^B (STX, hex 02) and the end with ^C (ETX, hex 03). Fields within the packet
are separated by / characters.
The first four fields form the mandatory header. the third is the operation type (O for operation, R for result), and the
fourth is the operation (here 30, "short message transfer").
The subsequent fields are dependent on the operation. In the first line above, '66677789' is the recipient's address
(telephone number) and '68656C6C6F' is the content of the message, in this case the ASCII string "hello". The
second line is the response with a matching transaction reference number, where 'A' indicates that the message was
successfully acknowledged by the SMSC, and a timestamp is suffixed to the phone number to show time of delivery.
The final field is the checksum, calculated simply by summing all bytes in the packet (including slashes) and taking
the 8 least significant bits from the result.
The full specification is available on the LogicaCMG website developers' forum, but registration is required.
Technical Limitations
The two digit transaction reference number means that an entity sending text messages can only have 100
outstanding messages (per session); this can limit performance, but only if you have very slow network and
incorrectly configure your application on your SMSC (for example one session, with number of window bigger than
100). In practice it does not have any impact on delivery throughput.
The default alphabet - interesting is that in EMI UCP documentation default alphabet is IRA (eq ASCII on 7bit). In
practice default alphabet is GSM-7, which is almost the same as ASCII on 7 bit, except few characters (for example
'_' underline).
Alternatives
• Short message peer-to-peer protocol (SMPP) also provides SMS over TCP/IP.
• Computer Interface for Message Distribution (CIMD) developed by Nokia
External links
• LogicaCMG: Downloads for developers
[1]
(link no longer active as of 2007-12-24)
• UCP Specification (Vodafone Germany)
[2]
• A more detailed UCP Specification
[3]
• UCP Perl implementation (for developers)
[4]
• Kannel
[3]
, Open-Source WAP and SMS Gateway with UCP/EMI 4.0 support.
EMI (protocol)
170
References
[1] http:/ / www.logicacmg. com/ Telecoms/ 350234223
[2] http:/ / www.vodafone.de/ downloadarea/ EmiSpec_43d.pdf
[3] http:/ / www.nowsms. com/ discus/ messages/ 1/ EMI_UCP_Specification_40-8156.pdf
[4] http:// search. cpan. org/~nemux/
Encapsulation (networking)
Encapsulation sequence of user data in the TCP/IP protocol stack.
In computer networking,
encapsulation is a method of
designing modular communication
protocols in which logically separate
functions in the network are abstracted
from their underlying structures by
inclusion or information hiding within
higher level objects.
The physical layer is responsible for
physical transmission of the data. Link
encapsulation allows local area
networking and IP provides global
addressing of individual computers;
UDP adds application or process
selection, i.e., the port specifies the service such as a Web or TFTP server.
In discussions of encapsulation, the more abstract layer is often called the upper layer protocol while the more
specific layer is called the lower layer protocol. Sometimes, however, the terms upper layer protocols and lower
layer protocols are used to describe the layers above and below IP, respectively.
Encapsulation is a characteristic feature of most networking models, including the OSI Model and TCP/IP suite of
protocols.
External links
• How Encapsulation In The TCP/IP Model Works
[1]
• Animation of router encapsulation and decapsulation
[2]
References
[1] http:/ / learn-networking.com/ tcp-ip/ how-encapsulation-works-within-the-tcpip-model
[2] http:// www.visualland. net/ view. php?cid=1028& protocol=Encapsulation&title=2.%20Router%20encap&ctype=1
ERIPAX
171
ERIPAX
ERIPAX (ERICSSON Packet Switching Exchange) is a packet switched network that works with X.25 protocol
and is capable of establishing TCP/IP sessions across it. The concentrators were Ericsson.
Ethernet Automatic Protection Switching
Ethernet Automatic Protection Switching (EAPS) is used to create a fault tolerant topology by configuring a
primary and secondary path for each VLAN.
It was invented by Extreme Networks. The idea is to provide highly available Ethernet switched rings (commonly
used in Metro Ethernet). Other implementations include Ethernet Protection Switching Ring (EPSR
[1]
) by Allied
Telesis, "Rapid Ring Protection Protocol"[RRPP] by Huawei/H3C, "ZTE Ethernet Switch Ring" (ZESR) by ZTE.
Operation
A ring is formed by configuring a Domain. Each domain has a single "master node" and many "transit nodes". Each
node will have a primary port and a secondary port, both known to be able to send control traffic to the master node.
Under normal operation only the primary port on the master node is used to avoid loops (the secondary port is
blocked for all non-control traffic).
When there is a link down situation, the devices that detect the failure send a control message to the master, and the
master will then unblock the secondary port and instruct the transits to flush their databases. The next packets sent by
the network can then be flooded and learned out of the (now enabled) secondary port without any network
disruption.
Fail-over times are demonstrably in the region of 50ms.
The same switch can belong to multiple domains and thus multiple rings. However, these act as independent entities
and can be controlled individually.
EAPS v2
EAPSv2 is configured and enabled to avoid the potential of super-loops in environments where multiple EAPS
domains share a common link. EAPSv2 works using the concept of a controller and partner mechanism. Shared port
status is verified using health PDUs exchanged by controller and partner. When a shared link goes down, the
configured Controller will open only one segment port for each of the protected VLANs, keeping all other segment
ports in a blocking state. This state is maintained as long as the Controller fails to receive the health PDUs over the
(broken) shared link.
Although not supported by Extreme Networks, it is possible to complete this shared link with non-EAPS (but
tag-aware) switches between the Controller and Partner.
When the shared link is restored, the Controller can then unblock its ports, the masters will see their hello packets,
and the rings will be protected by their respective masters.
Ethernet Automatic Protection Switching
172
References
[1] How to configure EPSR (http:// www. alliedtelesis. com/ media/ datasheets/ howto/ config_epsr_sd_a.pdf)
• Kwang-Koog Lee, Jeong-dong Ryoo, and Seungwook Min, "An Ethernet Ring Protection Method to Minimize
Transient Traffic by Selective FDB Advertisement," ETRI Journal, vol.31, no.5, Oct. 2009, pp.631-633 (http://
etrij. etri. re.kr/Cyber/ servlet/ BrowseAbstract?vol=31& num=5& pg=631)
• Kwang-Koog Lee, and Jeong-dong Ryoo, "Flush Optimizations to Guarantee Less Transient Traffic in Ethernet
Ring Protection," ETRI Journal, vol.32, no.2, Apr. 2010, pp.184-194 (http:/ / etrij.etri.re.kr/Cyber/ Download/
PublishedPaper/ 3202/ etrij.apr2010.0184.pdf)
External links
• RFC 3619 (EAPS)
• ITU-T G.8031/Y.1342 (http:// www. itu. int/rec/T-REC-G.8031-200606-P/en) (Dead Link)
Ethernet over SDH
Ethernet Over SDH (EoS or EoSDH) or Ethernet over SONET refers to a set of protocols which allow Ethernet
traffic to be carried over synchronous digital hierarchy networks in an efficient and flexible way. The same functions
are available using SONET (a predominantly North American standard).
Ethernet frames which are to be sent on the SDH link are sent through an "encapsulation" block (typically Generic
Framing Procedure or GFP) to create a synchronous stream of data from the asynchronous Ethernet packets. The
synchronous stream of encapsulated data is then passed through a mapping block which typically uses virtual
concatenation (VCAT) to route the stream of bits over one or more SDH paths. As this is byte interleaved, it
provides a better level of security compared to other mechanisms for Ethernet transport.
After traversing SDH paths, the traffic is processed in the reverse fashion: virtual concatenation path processing to
recreate the original synchronous byte stream, followed by decapsulation to converting the synchronous data stream
to an asynchronous stream of Ethernet frames.
The SDH paths may be VC-4, VC-3, VC-12 or VC-11 paths. Up to 64 VC-11 or VC-12 paths can be concatenated
together to form a single larger virtually concatenated group. Up to 256 VC-3 or VC-4 paths can be concatenated
together to form a single larger virtually concatenated group. The paths within a group are referred to as "members".
A virtually concatenated group is typically referred to by the notation <pathType>-<X>v, where <pathType> is
VC-4, VC-3, VC-12 or VC-11 and X is the number of members in the group.
• A 10-Mbit/s Ethernet link is often transported over a VC-12-5v which allows the full bandwidth to be carried for
all packet sizes.
• A 100-Mbit/s Ethernet link is often transported over a VC-3-2v which allows the full bandwidth to be carried
when smaller packets are used (< 250 bytes) and Ethernet flow control restricts the rate of traffic for larger
packets. But does only give ca. 97Mbit/s, not full 100Mb.
• A 1000-Mbit/s (or 1 GigE) Ethernet link is often transported over a VC-3-21v or a VC-4-7v which allows the full
bandwidth to be carried for all packets.
The bandwidths possible are shown in the table below:
Ethernet over SDH
173
Container (SDH) Container (SONET) Type Payload Capacity (Mbit/s)
VC-11-Xv VT-1.5-Xv SPE Low Order X x 1.600 (X = 1 to 64)
VC-12-Xv VT-2-Xv SPE Low Order X x 2.176 (X = 1 to 64)
VC-3-Xv - Low Order X x 48.384 (X = 1 to 256)
VC-3-Xv STS-1-Xv SPE High Order X x 48.384 (X = 1 to 256)
VC-4-Xv STS-3c-Xv SPE High Order X x 149.76 (X = 1 to 256)
EoS also drops the "idle" packets of the Ethernet frame before encapsulating the Ethernet frame to GFP, which is
recreated at the other end during decapsulation process. Hence this provide a better throughput compared to native
Ethernet transport.
An additional protocol, called link capacity adjustment scheme (LCAS), allows the two endpoints of the SDH paths
to negotiate which paths are working and can carry traffic versus which paths should not be used to carry traffic.
Ethernet Private Line
Ethernet Private Line (EPL) is a data service defined by the Metro Ethernet Forum, providing a point-to-point
Ethernet Virtual Connection (EVC) between a pair of dedicated User–network interfaces (UNIs), with a high degree
of transparency.
EPL service is categorized as an E-Line service type, with an expectation of low Frame Delay, Frame Delay
Variation and Frame Loss Ratio. EPL is implemented using a point-to-point (EVC) with no Service Multiplexing at
each UNI (physical interface), i.e., all service frames at the UNI are mapped to a single EVC (a.k.a. All-to-one
bundling).
Due to a high degree of transparency, EPL is often used to provide point-to-point Transparent LAN Service (TLS),
where the Service Frame’s header and payload are identical at both the source and destination UNI. Some
implementations tunnel most Ethernet Layer 2 Control Protocols (L2CPs) except for some link layer L2CPs such as
IEEE 802.3x Pause frames.
External links
• Metro Ethernet Services - A Technical Overview
[1]
PDF
• Carrier Ethernet Services overview
[2]
PPT (1742 KiB)
• MEF 6
[3]
DOC (472 KiB) - Metro Ethernet Services Definitions Phase I
• MEF 10.1
[4]
DOC (1720 KiB) - Ethernet Services Attributes Phase 2
References
[1] http:/ / www.metroethernetforum.org/PDF_Documents/ metro-ethernet-services.pdf
[2] http:/ / metroethernetforum.org/PPT_Documents/ Carrier_Ethernet_Services_Overview.ppt
[3] http:// metroethernetforum.org/pdfs/ standards/ mef6.doc
[4] http:/ / metroethernetforum.org/pdfs/ standards/ mef10.1.doc
Ethernet Virtual Private Line
174
Ethernet Virtual Private Line
Ethernet Virtual Private Line (EVPL) is a data service defined by the Metro Ethernet Forum, providing a
point-to-point Ethernet connection between a pair of User–network interfaces (UNIs).
EVPL service is specified using an E-Line service type, very similar to a Ethernet Private Line (EPL) service, via a
point-to-point Ethernet Virtual Connection (EVC). However, unlike EPL, EVPL allows for Service Multiplexing,
i.e., multiple EVCs or Ethernet services per UNI.
The other difference between the EVPL and EPL is the degree of transparency - while EPL is highly transparent,
filtering only the Pause frames, EVPL is required to either peer or drop most of the Layer 2 Control Protocols.
External links
• Carrier Ethernet Services overview
[2]
PPT (1742 KiB)
• MEF 6
[3]
DOC (472 KiB) - Metro Ethernet Services Definitions Phase I
• MEF 10.1
[4]
DOC (1720 KiB) - Ethernet Services Attributes Phase 2
Fiber Distributed Data Interface
Dual-attach FDDI Board
Fiber Distributed Data Interface (FDDI) provides a 100 Mbit/s
optical standard for data transmission in a local area network that can
extend in range up to 200 kilometers (124 miles). Although FDDI
logical topology is a ring-based token network, it does not use the
IEEE 802.5 token ring protocol as its basis; instead, its protocol is
derived from the IEEE 802.4 token bus timed token protocol. In
addition to covering large geographical areas, FDDI local area
networks can support thousands of users. As a standard underlying
medium it uses optical fiber, although it can use copper cable, in which
case it may be referred to as CDDI (Copper Distributed Data
Interface). FDDI offers both a Dual-Attached Station (DAS),
counter-rotating token ring topology and a Single-Attached Station
(SAS), token bus passing ring topology.
FDDI was considered an attractive campus backbone technology in the
early to mid 1990s since existing Ethernet networks only offered 10 Mbit/s transfer speeds and Token Ring networks
only offered 4 Mbit/s or 16 Mbit/s speeds. Thus it was the preferred choice of that era for a high-speed backbone, but
FDDI has since been effectively obsolesced by fast Ethernet which offered the same 100 Mbit/s speeds, but at a
much lower cost and, since 1998, by Gigabit Ethernet due to its speed, and even lower cost, and ubiquity.
FDDI, as a product of American National Standards Institute X3T9.5 (now X3T12), conforms to the Open Systems
Interconnection (OSI) model of functional layering of LANs using other protocols. FDDI-II, a version of FDDI, adds
the capability to add circuit-switched service to the network so that it can also handle voice and video signals. Work
has started to connect FDDI networks to the developing Synchronous Optical Network SONET.
A FDDI network contains two rings, one as a secondary backup in case the primary ring fails. The primary ring
offers up to 100 Mbit/s capacity. When a network has no requirement for the secondary ring to do backup, it can also
carry data, extending capacity to 200 Mbit/s. The single ring can extend the maximum distance; a dual ring can
extend 100 km (62 miles). FDDI has a larger maximum-frame size (4,352 bytes) than standard 100 Mbit/s Ethernet
which only supports a maximum-frame size of 1,500 bytes, allowing better throughput.
Fiber Distributed Data Interface
175
Designers normally construct FDDI rings in the form of a "dual ring of trees" (see network topology). A small
number of devices (typically infrastructure devices such as routers and concentrators rather than host computers)
connect to both rings - hence the term "dual-attached". Host computers then connect as single-attached devices to the
routers or concentrators. The dual ring in its most degenerate form simply collapses into a single device. Typically, a
computer-room contains the whole dual ring, although some implementations have deployed FDDI as a Metropolitan
area network.
Mitigating failure
FDDI requires this network topology because the dual ring actually passes through each connected device and
requires each such device to remain continuously operational. The standard actually allows for optical bypasses, but
network engineers consider these unreliable and error-prone. Devices such as workstations and minicomputers that
might not come under the control of the network managers are not suitable for connection to the dual ring.
As an alternative to using a dual-attached connection, a workstation can obtain the same degree of resilience through
a dual-homed connection made simultaneously to two separate devices in the same FDDI ring. One of the
connections becomes active while the other one is automatically blocked. If the first connection fails, the backup link
takes over with no perceptible delay.
Standards
FDDI standards include:
• ANSI X3.139-1987, Media Access Control (MAC) — also ISO 9314-2
• ANSI X3.148-1988, Physical Layer Protocol (PHY) — also ISO 9314-1
• ANSI X3.166-1989, Physical Medium Dependent (PMD) — also ISO 9314-3
• ANSI X3.184-1993, Single Mode Fiber Physical Medium Dependent (SMF-PMD) — also ISO 9314-4
• ANSI X3.229-1994, Station Management (SMT) — also ISO 9314-6
References
•  This article incorporates public domain material from websites or documents of the General Services
Administration.
• This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed
under the GFDL.
Fibre Channel over Ethernet
176
Fibre Channel over Ethernet
Fibre Channel over Ethernet (FCoE) is an encapsulation of Fibre Channel frames over Ethernet networks. This
allows Fibre Channel to use 10 Gigabit Ethernet networks (or higher speeds) while preserving the Fibre Channel
protocol. The specification, supported by a large number of network and storage vendors, is part of the International
Committee for Information Technology Standards T11 FC-BB-5 standard.
[1]
Combined storage and local area network
Functionality
FCoE maps Fibre Channel directly over Ethernet while being
independent of the Ethernet forwarding scheme. The FCoE protocol
specification replaces the FC0 and FC1 layers
[2]
of the Fibre Channel
stack with Ethernet. By retaining the native Fibre Channel constructs,
FCoE was meant to integrate with existing Fibre Channel networks and
management software.
Many data centers use Ethernet for TCP/IP networks and Fibre
Channel for storage area networks (SANs). With FCoE, Fibre Channel
becomes another network protocol running on Ethernet, alongside
traditional Internet Protocol (IP) traffic. FCoE operates directly above
Ethernet in the network protocol stack, in contrast to iSCSI which runs on top of TCP and IP. As a consequence,
FCoE is not routable at the IP layer, and will not work across routed IP networks.
Since classical Ethernet had no priority-based flow control, unlike Fibre Channel, FCoE requires enhancements to
the Ethernet standard to support a priority-based flow control mechanism (this prevents frame loss). The IEEE
standards body is working on this in the Data Center Bridging Task Group.
Fibre Channel required three primary extensions to deliver the capabilities of Fibre Channel over Ethernet networks:
• Encapsulation of native Fibre Channel frames into Ethernet Frames.
• Extensions to the Ethernet protocol itself to enable an Ethernet fabric in which frames are not routinely lost during
periods of congestion.
• Mapping between Fibre Channel N_port IDs (aka FCIDs) and Ethernet MAC addresses.
"Converged" network adapter
Computers connect to FCoE with Converged Network Adapters
(CNAs), which contain both Fibre Channel Host Bus Adapter (HBA)
and Ethernet Network Interface Card (NIC) functionality on the same
adapter card. CNAs have one or more physical Ethernet ports. FCoE
encapsulation can be done in software with a conventional Ethernet
network interface card, however FCoE CNAs offload (from the CPU)
the low level frame processing and SCSI protocol functions
traditionally performed by Fibre Channel host bus adapters.
Fibre Channel over Ethernet
177
Application
The main application of FCoE is in data center storage area networks (SANs). FCoE has particular application in
data centers due to the cabling reduction it makes possible, as well as in server virtualization applications, which
often require many physical I/O connections per server.
With FCoE, network (IP) and storage (SAN) data traffic can be consolidated using a single network. This
consolidation can:
• reduce the number of network interface cards required to connect to disparate storage and IP networks
• reduce the number of cables and switches
• reduce power and cooling costs
Frame Format
FCoE Frame Format
FCoE is encapsulated over Ethernet with the use of a dedicated
Ethertype, 0x8906. A single 4-bit field (version) satisfies the
IEEE sub-type requirements. The SOF (start of frame) and
EOF (end of frame) are encoded as specified in RFC 3643.
Reserved bits are present to guarantee that the FCoE frame
meets the minimum length requirement of Ethernet. Inside the
encapsulated Fibre Channel frame, the frame header is retained
so as to allow connecting to a storage network by passing on
the Fibre Channel frame directly after de-encapsulation.
The FIP (FCoE Initialization Protocol) is an integral part of
FCoE. Its main goal is to discover and initialize FCoE capable
entities connected to an Ethernet cloud. FIP uses a dedicated
Ethertype of 0x8914.
Timeline
The FCoE standardization activity started in April 2007. The FCoE technology was defined as part of the INCITS
T11 FC-BB-5 standard that was forwarded to ANSI for publication in June 2009.
[1]
The FC-BB-5 standard was
published in May 2010 as ANSI/INCITS 462-2010.
[3]
An early implementor was Nuova Systems, a subsidiary of Cisco Systems, which announced a switch in April
2008.
[4]

[5]
Brocade Communications Systems also announced support in 2008.
[6]
After the Late-2000s financial
crisis, however, any new technology had a hard time getting established.
[7]

[8]
References
[1] "Fibre Channel: Backbone - 5 revision 2.00" (http:/ / www. t11.org/ ftp/t11/ pub/ fc/bb-5/ 09-056v5.pdf) (PDF). American National
Standard for Information Technology International Committee for Information Technology Standards Technical Group T11. June 4, 2009. .
Retrieved May 5, 2011.
[2] http:/ / en. wikipedia. org/wiki/ Fibre_Channel_Protocol#Layers
[3] "Information technology - Fibre Channel - Backbone - 5 (FC-BB-5)" (http:/ / www. techstreet. com/ standards/ INCITS/
462_2010?product_id=1724386). ANSI/INCITS 462-2010. InterNational Committee for Information Technology Standards (formerly NCITS).
May 13, 2010. . Official standard.
[4] Paul Shread (April 10, 2008). "Cisco Buys Nuova as FCoE Heats Up" (http:// www. enterprisestorageforum.com/ ipstorage/ news/ article.
php/ 3739991/ Cisco-Buys-Nuova-as-FCoE-Heats-Up. htm). Enterprise Storage Forum. . Retrieved May 5, 2011.
[5] "Cisco Announces Intent to Acquire Remaining Interest in Nuova Systems" (http:/ / newsroom.cisco. com/ dlls/ 2008/ prod_040808b.html).
Press release (Cisco Systems). April 8, 2008. . Retrieved May 5, 2011.
Fibre Channel over Ethernet
178
[6] Dave Rowell (March 19, 2008). "Cisco, Brocade See One Big Happy Fabric" (http:/ / www. enterprisestorageforum.com/ sans/ features/
article. php/ 3735351). Enterprise Storage Forum. . Retrieved May 5, 2011.
[7] Drew Robb (March 29, 2011). "FCoE Struggles to Gain Traction" (http:// www. enterprisestorageforum.com/ article. php/ 3929431).
Enterprise Storage Forum. . Retrieved May 5, 2011.
[8] Henry Newman (April 25, 2011). "FCoE Gets Lost in Vendor Stupidity" (http:/ / www. enterprisestorageforum.com/ features/ article.php/
3931681/ FCoE-Gets-Lost-in-Vendor-Stupidity.htm). Enterprise Storage Forum. . Retrieved May 5, 2011.
External links
• LIO Unified Target (http:// www. linux-iscsi. org/) (Linux standard, includes iSCSI, FC, FCoE, IB)
• Implementation for the Linux operating system (http:/ / www. open-fcoe.org/)
• Project's homepage (http:/ / www. t11.org/fcoe)
• Free Windows FCoE implementation (http:/ / www. starwindsoftware. com/
fcoe-fibrechannel-over-ethernet-initiator)
• A site that tracks FCoE development (http:/ / www. fcoe.com/ )
• Join Stuart Miniman (December 15, 2008). "Intro to FCoE video" (http:// www.youtube.com/
watch?v=EZWaOda8mVY). Youtube video. EMC Corporation. Retrieved May 5, 2011.
• Jon Tate (March 18, 2009). "An Introduction to Fibre Channel over Ethernet, and Fibre Channel over
Convergence Enhanced Ethernet" (http:/ / www. redbooks. ibm.com/ redpapers/pdfs/ redp4493.pdf). Retrieved
May 5, 2011.
Financial Information eXchange
The Financial Information eXchange (FIX) protocol is an electronic communications protocol initiated in 1992 for
international real-time exchange of information related to the securities transactions and markets. With trillions of
dollars traded annually on the NASDAQ alone, financial service entities are investing heavily in optimizing
electronic trading and employing Direct Market Access (DMA) to increase their speed to financial markets.
Managing the delivery of trading applications and keeping latency low increasingly requires an understanding of the
FIX protocol.
History
The FIX Protocol specification was originally authored in 1992 by Chris Morstatt and Robert "Bob" Lamoureux to
enable electronic communication of equity trading data between Fidelity Investments and Salomon Brothers. FIX
has become the de facto messaging standard for pre-trade and trade communication in the global equity markets, and
is expanding into the post-trade space to support Straight Through Processing, as well as continuing to expand into
foreign exchange, fixed income and derivatives markets.
[1]
Financial Information eXchange
179
FIX Protocol Limited
FIX Protocol, Ltd
[2]
. is the company established for the purpose of ownership and maintenance of the specification.
It maintains the specification, while keeping it in the public domain.
FIX message format layout
The message fields are delimited using the ASCII 01 <start of header> character. They are composed of a header, a
body, and a trailer.
Up to FIX.4.4, the header contained three fields: 8 (BeginString), 9 (BodyLength), and 35 (MsgType) tags.
From FIXT.1.1 / FIX.5.0, the header contains five mandatory fields and one optional field: 8 (BeginString), 9
(BodyLength), 35 (MsgType), 49 (SenderCompID), 56 (TargetCompID) and 1128 (ApplVerID - if present must be
in 6th position).
The body of the message is entirely dependent on the message type defined in the header (TAG 35, MsgType).
The last field of the message is TAG 10, FIX Message Checksum. It is always expressed as a three digit number (e.g.
10=002).
Header+Body+Trailer : FIX Content
Example of a FIX message : Execution Report (Pipe character is used to represent SOH character)
8=FIX.4.2 | 9=178 | 35=8 | 49=PHLX | 56=PERS | 52=20071123-05:30:00.000 | 11=ATOMNOCCC9990900 | 20=3
| 150=E | 39=E | 55=MSFT | 167=CS | 54=1 | 38=15 | 40=2 | 44=15 | 58=PHLX EQUITY TESTING | 59=0 | 47=C |
32=0 | 31=0 | 151=15 | 14=0 | 6=0 | 10=128 |
(In the above FIXMessage Body length 9 is correct and checksum 10 was checked out by using the source available
from QuickFIX, an open source FIX implementation)
Body
Order / Trade Details Info
Trailer
Security Check thru Signature and CheckSum.
Users
FIX is widely used by both the buy side (institutions) as well as the sell side (brokers/dealers) of the financial
markets. Among its users are mutual funds, investment banks, brokers, stock exchanges and ECNs. See FIX Protocol
Organization
[3]
for an extensive list of major FIX users.
FIX has become the standard electronic protocol for pre-trade communications and trade execution. Although it is
mainly used for equity transactions in the front office area, bond, derivatives and FX-transactions are also possible.
One could say that whereas SWIFT is the standard for back office messaging, FIX is the standard for front office
messaging. However, today, the membership of FIX Protocol Ltd. is extending FIX into block-trade allocation and
other phases of the trading process, in every market, for virtually every asset class.
Financial Information eXchange
180
Technical specification
The FIX protocol is a technical specification for electronic communication of trade-related messages. It is a
self-describing protocol in many ways similar to other self-describing protocols such as the newer XML; XML
representation of Business content of FIX messages is known as FIXML but FIXML is not widely deployed.
FIX Session is layered on TCP (Transmission Control Protocol). FIX is more popular than FIXML in Securities
Trading because FIXML messages are much larger in size due to XML tags.
FIX messages are formed from a number of fields, each field is a tag value pairing that is separated from the next
field by a delimiter SOH (0x01). The TAG is a string representation of an integer that indicates the meaning of the
field. The value is an array of bytes that hold a specific meaning for the particular TAG (e.g. TAG 48 is securityID, a
string that identifies the security; TAG 22 is IDSource, an integer that indicates the identifier class being used). The
values may be in plain text or encoded as pure binary (in which case the value is preceded by a length field). The
FIX protocol defines meanings for most TAGs, but leaves a range of TAGs reserved for private use between
consenting parties.
The FIX protocol also defines sets of fields that make a particular message, within the set of fields some will be
mandatory and others optional. The ordering of fields within the message is generally unimportant, however
repeating groups are preceded by a count and encrypted fields are preceded by their length. The message is broken
into three distinct sections: the head, body and tail. Fields must remain within the correct section and within each
section the position may be important as fields can act as delimiters that stop one message from running into the next
- the final field in any FIX message is TAG 10 (checksum).
There are two main groups of messages - admin and application. The admin messages handle the basics of a FIX
session. They allow for a session to be started and terminated and for recovery of missed messages. The application
messages deal with the sending and receiving of trade-related information such as an order request or information on
the current state and subsequent execution of that order.
Body length
The Body length is the byte count starting at tag 35 (included) all the way to tag 10 (excluded). SOH separators do
count in the body length.
For Example: (Pipe character is used to represent SOH character)
8=FIX.4.2|9=65|35=A|49=SERVER|56=CLIENT|34=177|52=20090107-18:15:16|98=0|108=30|10=062|
Has a Body length of 65 with the following breakdown, length(tag#)
5(35) + 10(49) + 10(56) + 7(34) + 21(52) + 5(98) + 7(108)
The SOH delimiter at the end of a Tag=Value belongs to the Tag
Checksum
The checksum algorithm of FIX consists of summing up the decimal value of the ASCII representation all the bytes
up to the checksum field (which is last) and return the value modulo 256.
Latest developments in FIX protocol
The latest version of FIX Protocol implements "Transport Independence" by permitting multiple versions of
application messages to be carried over a single version of Transport Independent FIX Session (FIXT.1.1 and
higher).
Transport Independence also paves the way for different transport protocols like Message Queues, Web Services etc.
to be used for FIX message transport other than traditional FIX over TCP.
FIX now supports Algorithmic Trading by use of FIX Algorithmic Trading Definition Language FIXatdl
Financial Information eXchange
181
FIX Protocol Limited has released FAST protocol which stands for FIX Adapted for Streaming. FAST is used for
sending Multicast market data
Diagrammatic representation of FIX system
Notes
[1] "What is FIX?" (http:/ / www. fixprotocol.org/what-is-fix.shtml). June 8, 2009. .
[2] http:// fixprotocol.org
[3] http:/ / www.fixprotocol.org/adopters/
External links
1. FIX Protocol Organization (http:// www. fixprotocol.org/) - this official FIX website also includes a
comprehensive list of closed-source and open-source FIX implementations (http:/ / www. fixprotocol.org/
products/ ).
2. FIXimate FIX Dictionary 4.0 (http:// www. fixprotocol.org/specifications/ fix4.0fiximate/) 4.1 (http:// www.
fixprotocol. org/specifications/ fix4.1fiximate/) 4.2 (http:// www. fixprotocol.org/specifications/ fix4.
2fiximate/ ) 4.3 (http:// www. fixprotocol.org/specifications/ fix4.3fiximate/) 4.4 (http:// www. fixprotocol.
org/ specifications/ fix4.4fiximate/ )
3. FIXwiki (http:// fixwiki.org/) - a Wiki dedicated to FIX. Contains much of the FIX specification.
4. FIXopaedia FIX Dictionary 4.0 (http:/ / b2bits. com/ fixopaedia/fixdic40/) 4.1 (http:// b2bits. com/ fixopaedia/
fixdic41/ ) 4.2 (http:// b2bits.com/ fixopaedia/fixdic42/) 4.3 (http:// b2bits. com/ fixopaedia/ fixdic43/) 4.4
(http:/ / b2bits. com/ fixopaedia/fixdic44/ ) 5.0 (http:// b2bits. com/ fixopaedia/fixdic50/) FIXT 1.1 (http://
b2bits. com/ fixopaedia/fixdict11/)
5. FIXForge FIX Dictionary: 4.0 (http:// onixs. biz/ fixdictionary/4. 0/ msgs_by_msg_type. html) 4.1 (http://
onixs. biz/ fixdictionary/4. 1/ msgs_by_msg_type. html) 4.2 (http:// onixs. biz/ fixdictionary/4.2/
Financial Information eXchange
182
msgs_by_name. html) 4.3 (http:// onixs. biz/ fixdictionary/4. 3/ msgs_by_name. html) 4.4 (http:// onixs. biz/
fixdictionary/4. 4/ msgs_by_name. html) 5.0 (http:// onixs. biz/ fixdictionary/5. 0/ msgs_by_msg_type. html)
6. QuickFIX (http:// www. quickfixengine.org) - an open-source FIX engine implemented in C++
7. QuickFIX/J (http:/ / www. quickfixj.org) - a 100% Java implementation of the C++ QuickFIX engine
8. Transact Tools Data Dictionary (http:// www. transacttools. net/ ttportal/datadict/ browser.jsp)
9. ValidFIX (http:/ / www. validfix.com/ ) - Free web-based services to analyze any FIX message.
10. VersaFix (http:/ / sourceforge.net/ projects/ versafix/) - .NET open-source FIX engine implemented in C#
11. UL FIX (http:/ / www. ullink.com/ index.php?page=free_fix_engine) - a free FIX engine
12. HadesFIX (http:/ / www. marvisan.com) - Free FIX engine and Java object model
FINS
FINS is a network protocol used by Omron PLCs, over different physical networks like Ethernet, Controller Link,
DeviceNet and RS-232C.
FLEX (protocol)
FLEX is a communications protocol developed by Motorola and used in many pagers. FLEX provides one-way
communication only (from the provider to the pager device), but a related protocol called ReFLEX provides
two-way messaging.
Transmission of message data occurs in one of four modes: 1600/2, 3200/2, 3200/4, or 6400/4. All modes use FSK
modulation. At 1600/2 this is on a 2 level FSK signal transmitted at 1600 bits per second. At 3200/2, this is a 2 level
FSK signal transmitted at 3200 bits per second. At 3200/4, this is a 4 level FSK signal transmitted at 1600 symbols
per second. Each 4 level symbol represents two bits for a bit rate of 3200 bits per second. At 6400/4, this is a 4 level
FSK signal transmitted at 3200 symbols per second or 6400 bits per second.
Data is transmitted in a set of 128 frames that takes 4 minutes to complete. Each frame contains a sync followed by
10 data blocks. The data blocks contain 256, 512 or 1024 bits for 1600, 3200 or 6400 bits per second respectively.
A BCH type ECC is used to improve the integrity of the data. The standard has been designed to allow the pager's
receiver to be turned off for a high percentage of the time and therefore save on battery usage.
Security
Since data transmission over FLEX is unencrypted and insecure, transmitting private information over it should be
done with caution. There have been reported instances of individuals actively listening to pager traffic (private
investigators, news organizations, etc.).
In The Netherlands the emergency services use the Flex-protocol in the nationwide P2000 network for pagers. The
traffic on this network can be monitored via several websites.
In South Australia the State's SAGRN network for the Emergency Services paging system (CFS, SES, MFS and
SAAS) is run on the FLEX 1600 protocol, and can be monitored through several websites.
FLEX (protocol)
183
External links
• FLEX Technology: Paging Protocol
[1]
References
[1] http:/ / www.nettwerked.net/ FLEX_Technologies.html
FlexRay
FlexRay is an automotive network communications protocol developed by the FlexRay Consortium
[1]
. It is
designed to be faster and more reliable than CAN and TTP, but is also more expensive. The FlexRay consortium
disbanded in 2009, but the specifications are still available for download at the FlexRay website.
Features
FlexRay's prominent features are:
• High data rates (up to 20 Mbit/s)
• Time- and event-triggered behavior
• Redundancy
• Fault-tolerance
• Deterministic
Consortium
The FlexRay Consortium was made up of the following core members:
• BMW
• Volkswagen
• Daimler AG
• General Motors
• Robert Bosch GmbH
• NXP Semiconductors
• Freescale
There were also Premium Associate and Associate members of FlexRay consortium. By September 2009, there were
28 premium associate members and more than 60 associate members. At the end of 2009, the consortium disbanded.
Where used
The first series production vehicle with FlexRay was at the end of 2006 in the BMW X5, enabling a new and fast
adaptive damping system. Full use of FlexRay was introduced in 2008 in the new BMW 7 Series (F01), the world's
first production vehicle to fully utilize the FlexRay system.
Vehicles
• Audi A8
[2]
• Bentley Mulsanne
• BMW X5
• BMW 7-Series
• BMW 5 Series Gran Turismo
FlexRay
184
• BMW 5-Series
• Rolls-Royce Ghost
Details
Clock
FlexRay system consists of a bus and processors (Electronic control unit, or ECUs). Each ECU has an independent
clock. The clock drift must be no more than 0.15% from the reference clock, so the difference between the slowest
and the fastest clock in the system is no greater than 0.3%.
This means that, if ECU-s is a sender and ECU-r is a receiver, then for every 300 cycles of the sender there will be
between 299 and 301 cycles of the receiver. The clocks are resynchronized frequently enough to assure that this
causes no problems.
Bits on the bus
0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0
Correct averaging in case of no errors. The signal is merely delayed by 2 cycles.
0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0
Errors near the middle of 8-cycle region are canceled.
0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0
Errors near the boundary of 8-cycle region may affect the boundary bit.
At each time, only one ECU writes to the bus. Each bit to be sent is held on the bus for 8 sample clock cycles. The
receiver keeps a buffer of the last 5 samples, and uses the majority of the last 5 samples as the input signal.
Single-cycle transmission errors may affect results near the boundary of the bits, but will not affect cycles in the
middle of the 8-cycle region.
Sampled bits
The value of the bit is sampled in the middle of the 8-bit region. The errors are moved to the extreme cycles, and the
clock is synchronized frequently enough for the drift to be small. (Drift is smaller than 1 cycle per 300 cycles, and
during transmission the clock is synchronized more than once every 300 cycles).
Frame
All the communication is sent in the form of frames. The message consists of bytes , packed
in the following way:
• Transmission Start Signal (TSS) - bit 0
• Frame Start Signal (FSS) - bit 1
• times:
• Byte Start Signal 0 (BSS0) - bit 1
FlexRay
185
• Byte Start Signal 1 (BSS1) - bit 0
• 0-th bit of i-th byte
• 1-st bit of i-th byte
• 2-nd bit of i-th byte
• ...
• 7-th bit of i-th byte
• Frame End Signal (FES) - bit 0
• Transmission End Signal (TES) - bit 1
If nothing is being communicated, the bus is held in state 1 (high voltage), so every receiver knows that the
communication started when the voltage drops to 0.
The receiver knows when the message is complete by checking whether BSS0 (1) or FES (0) was received.
Note that 8-cycle per bit has nothing to do with bytes. Each byte takes 80 cycles to transfer. 16 for BSS0 and BSS1
and 64 for its bits. Also note that BSS0 has value 1, and BSS1 has value 0.
Clock synchronization
Clocks are resynchronized when the voted signal changes from 1 to 0, if the receiver was in either idle state or
expecting BSS1.
So the clock is synchronized when the transmission starts and between BSS0 and BSS1. As synchronization is done
on the voted signal, small transmission errors during synchronization that affect the boundary bits may skew the
synchronization no more than 1 cycle. As there are at most 88 cycles between synchronization (BSS1, 8 bits of the
last byte, FES and TES - 11 bits of 8 cycles each), and the clock drift is no larger than 1 per 300 cycles, the drift may
skew the clock no more than 1 cycle. Small transmission errors during the receiving may affect only the boundary
bits. So in the worst case the two middle bits are correct, and thus the sampled value is correct.
Here's an example of a particularly bad case - error during synchronization, a lost cycle due to clock drift and error in
transmission.
Errors that happened in the example
• Because of a single-bit error during synchronization, the synchronization was delayed by 1 cycle
• Receiver clock was slower than sender clock, so receiver missed one cycle (marked X). This will not happen
again before the next synchronization due to limits on maximum allowable clock drift.
• Because of a single-bit error during transmission, a bit was voted wrongly near the result.
Despite so many errors, the communication was received correctly.
The green cells are sampling points. All except the first are synchronized by the 1->0 edge in the transmission
fragment shown.
Signal to be sent 1 0 1 0 1
Signal sent 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1
On the bus 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1
Received 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 X 1 0 0 0 0 0 0 1 0 1 1
5-maj voted 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 X 1 1 1 0 0 0 0 0 0 0 1
FlexRay
186
Development tools
When developing and/or troubleshooting the FlexRay bus, examination of hardware signals can be very important.
Logic analyzers and bus analyzers are tools which collect, analyze, decode, store signals so people can view the
high-speed waveforms at their leisure.
References
[1] http:/ / www.flexray.com
[2] "2011 Audi A8 4.2 FSI First Drive" (http:/ / www. insideline. com/ audi/ a8/ 2011/ 2011-audi-a8-4-2-fsi-first-drive.html). . Retrieved 18
February 2010.
External links
• FlexRay (http:/ / www. flexray.com) FlexRay Consortium
• FlexRay Starter Kit (http:/ / duxsolutions. com/ shop/ index. php?main_page=product_info&cPath=1&
products_id=1) Low cost FlexRay Starter Kit with the BOSCH E-Ray controller from DuxSolutions
• FlexRay Overview (http:/ / zone.ni. com/ devzone/ cda/ tut/ p/ id/ 3352) Technical Overview of FlexRay by
National Instruments
• Flexray Products (http:/ / www. samtec. de/ ) Samtec FlexRay product
FMIPv6
Fast Handovers for Mobile IPv6 is described in IETF RFC 4068.
External links
• RFC 4068 - Fast Handovers for Mobile IPv6
• fmipv6.org
[1]
- OpenSource implementation of FMIPv6 for GNU/Linux
References
[1] http:/ / www.fmipv6.org
Forward-confirmed reverse DNS
187
Forward-confirmed reverse DNS
FCrDNS, or forward-confirmed reverse DNS, or full-circle reverse DNS, is a situation where a given IP address
has forward (name-to-address) and reverse (address-to-name) DNS entries that match each other. The process of
checking this is as follows (outlined in RFC 1912, especially section 2.1):
1. First a reverse DNS lookup (PTR query) is performed on the IP address, which returns a list of zero or more PTR
records.
2. For each domain name returned in the PTR query results, a regular 'forward' DNS lookup (type A query) is then
performed on that domain name.
3. Any A or AAAA record returned by the query is then compared against the original IP address, and if there is a
match, then the FCrDNS check passes. Example:
DNS query type PTR on 192.0.2.4 --> returns PTR-record="hostname.example.com" (1 result)
DNS query type A on "hostname.example.com" --> returns A-record=192.0.2.4 (1 result)
Matches original IP address, therefore check passes
Network verity
A FCrDNS verification can create a weak form of authentication that there is a valid relationship between the owner
of a domain name and the owner of the network that has been given an IP address. While weak, this authentication is
strong enough that it can be used for whitelisting purposes because spammers and phishers can not usually by-pass
this verification when they use zombie computers to forge the domains. It is considered good practice in general that
all rDNS should be forward confirmed. This is especially true for the IP addresses used by email servers to help
prevent outgoing email from being wrongly rejected as spam.
A FCrDNS verification can also establish that the network owner and the domain owner both have at least a very
basic understanding of the RFCs and can correctly configure things. That is, they have followed the instructions in
RFC 1033 on "Adding a host". There is a statistical correlation between machines that send spam and machines that
fail FCrDNS checks, but correlation does not imply causation and many network owners simply can not configure
the rDNS because their upstream providers either can't or won't delegate the rDNS..
However, zombie computers infected with spambots will not be able to fake the reverse DNS to make it match. The
main reason behind the correlation between spamming machines and failing FCrDNS is that it generally cannot be
faked or overridden by a spambot infested machine, and thus this check is very effective in controlling spam,
underwritten and justified by supporting RFCs.
Common DNS misconfigurations are outlined in RFC 1912, of particular note is section 2.1 that states, under the
heading "Inconsistent, Missing or Bad Data", "Make sure your PTR and A records match." Those ISPs that will not
or cannot configure reverse DNS will generate problems for hosts on their networks, by virtue of RFCs being
contravened when communicating with hosts that do follow the RFC guidelines. From a technical perspective
reverse DNS is trivial to implement correctly and there is no reason not to implement it for hosts providing regular
internet services. ISPs that cannot or will not provide reverse DNS ultimately will be limiting the ability of their
client base to use internet services they provide effectively and securely.
Forward-confirmed reverse DNS
188
Uses
• Most e-mail mail transfer agents (server software) use a FCrDNS verification and if there is a valid domain name,
put it into the "Received:" trace header field.
• Some e-mail mail transfer agents will perform FCrDNS verification on the domain name given on the SMTP
HELO and EHLO commands. This can violate RFC 2821 and so e-mail is usually not rejected by default.
• The Sender Policy Framework e-mail anti-forgery system uses a FCrDNS check in its "ptr:" mechanism.
• Some e-mail spam filters will use FCrDNS checks to try to detect forged domain names or for whitelisting
purposes, for example, RFC 5451.
• SpamCop uses the FCrDNS check, which sometimes causes problems for SpamCop users who are also customers
of internet service providers who do not provide properly matching DNS and rDNS records for their mail servers.
[1] [2]
• Some FTP, Telnet and TCP Wrapper servers will perform FCrDNS checks.
• Some IRC Servers perform FCrDNS checks to prevent abuse.
External links
• Considerations for the use of DNS Reverse Mapping
[3]
(Internet draft)
• Forward Confirmed RDNS testing tool
[4]
• IPv4/IPv6 FCrDNS check tool
[5]
References
[1] http:/ / forum.spamcop. net/ forums/ index. php?act=findpost&pid=36027
[2] http:/ / forum.spamcop. net/ forums/ index. php?act=findpost&pid=41615
[3] http:/ / tools. ietf. org/html/ draft-ietf-dnsop-reverse-mapping-considerations
[4] http:/ / ipadmin. junkemailfilter.com/ rdns. php
[5] http:// multirbl.valli. org/
Frame Relay
189
Frame Relay
Frame Relay is a standardized wide area network technology that specifies the physical and logical link layers of
digital telecommunications channels using a packet switching methodology. Originally designed for transport across
Integrated Services Digital Network (ISDN) infrastructure, it may be used today in the context of many other
network interfaces.
Network providers commonly implement Frame Relay for voice (VoFR) and data as an encapsulation technique,
used between local area networks (LANs) over a wide area network (WAN). Each end-user gets a private line (or
leased line) to a Frame Relay node. The Frame Relay network handles the transmission over a frequently-changing
path transparent to all end-users.
Frame Relay has become one of the most extensively-used WAN protocols. Its cheapness (compared to leased lines)
provided one reason for its popularity. The extreme simplicity of configuring user equipment in a Frame Relay
network offers another reason for Frame Relay's popularity.
With the advent of Ethernet over fiber optics, MPLS, VPN and dedicated broadband services such as cable modem
and DSL, the end may loom for the Frame Relay protocol and encapsulation. However many rural areas remain
lacking DSL and cable modem services. In such cases the least expensive type of non-dial-up connection remains a
64-kbit/s frame-relay line. Thus a retail chain, for instance, may use Frame Relay for connecting rural stores into
their corporate WAN.
Technical description
A basic Frame Relay network
The designers of Frame Relay aimed to
a telecommunication service for
cost-efficient data transmission for
intermittent traffic between local area
networks (LANs) and between
end-points in a wide area network
(WAN). Frame Relay puts data in
variable-size units called "frames" and
leaves any necessary error-correction
(such as re-transmission of data) up to
the end-points. This speeds up overall
data transmission. For most services,
the network provides a permanent
virtual circuit (PVC), which means that
the customer sees a continuous,
dedicated connection without having to
pay for a full-time leased line, while
the service-provider figures out the
route each frame travels to its destination and can charge based on usage.
An enterprise can select a level of service quality - prioritizing some frames and making others less important. Frame
Relay can run on fractional T-1 or full T-carrier system carriers. Frame Relay complements and provides a
mid-range service between basic rate ISDN, which offers bandwidth at 128 kbit/s, and Asynchronous Transfer Mode
(ATM), which operates in somewhat similar fashion to frame Relay but at speeds from 155.520 Mbit/s to 622.080
Mbit/s.
Frame Relay
190
Frame Relay has its technical base in the older X.25 packet-switching technology, designed for transmitting data on
analog voice lines. Unlike X.25, whose designers expected analog signals, Frame Relay offers a fast packet
technology, which means that the protocol does not attempt to correct errors. When a Frame Relay network detects
an error in a frame, it simply drops that frame. The end points have the responsibility for detecting and retransmitting
dropped frames. (However, digital networks offer an incidence of error extraordinarily small relative to that of
analog networks.)
Frame Relay often serves to connect local area networks (LANs) with major backbones as well as on public
wide-area networks (WANs) and also in private network environments with leased lines over T-1 lines. It requires a
dedicated connection during the transmission period. Frame Relay does not provide an ideal path for voice or video
transmission, both of which require a steady flow of transmissions. However, under certain circumstances, voice and
video transmission do use Frame Relay.
Frame Relay originated as an extension of Integrated Services Digital Network (ISDN). Its designers aimed to enable
a packet-switched network to transport the circuit-switched technology. The technology has become a stand-alone
and cost-effective means of creating a WAN.
Frame Relay switches create virtual circuits to connect remote LANs to a WAN. The Frame Relay network exists
between a LAN border device, usually a router, and the carrier switch. The technology used by the carrier to
transport data between the switches is variable and may differ among carriers (i.e. to function, a practical Frame
Relay implementation need not rely solely on its own transportation mechanism).
The sophistication of the technology requires a thorough understanding of the terms used to describe how Frame
Relay works. Without a firm understanding of Frame Relay, it is difficult to troubleshoot its performance.
Frame-relay frame structure essentially mirrors almost exactly that defined for LAP-D. Traffic analysis can
distinguish Frame Relay format from LAP-D by its lack of a control field.
Protocol data unit
Each Frame Relay Protocol data unit (PDU) consists of the following fields:
1. Flag Field. The flag is used to perform high-level data link synchronization which indicates the beginning and
end of the frame with the unique pattern 01111110. To ensure that the 01111110 pattern does not appear
somewhere inside the frame, bit stuffing and destuffing procedures are used.
2. Address Field. Each address field may occupy either octet 2 to 3, octet 2 to 4, or octet 2 to 5, depending on the
range of the address in use. A two-octet address field comprises the EA=ADDRESS FIELD EXTENSION BITS
and the C/R=COMMAND/RESPONSE BIT.
1. DLCI-Data Link Connection Identifier Bits. The DLCI serves to identify the virtual connection so that the
receiving end knows which information connection a frame belongs to. Note that this DLCI has only local
significance. A single physical channel can multiplex several different virtual connections.
2. FECN, BECN, DE bits. These bits report congestion:
• FECN=Forward Explicit Congestion Notification bit
• BECN=Backward Explicit Congestion Notification bit
• DE=Discard Eligibility bit
3. Information Field. A system parameter defines the maximum number of data bytes that a host can pack into a
frame. Hosts may negotiate the actual maximum frame length at call set-up time. The standard specifies the
maximum information field size (supportable by any network) as at least 262 octets. Since end-to-end protocols
typically operate on the basis of larger information units, Frame Relay recommends that the network support the
maximum value of at least 1600 octets in order to avoid the need for segmentation and reassembling by end-users.
4. Frame Check Sequence (FCS) Field. Since one cannot completely ignore the bit error-rate of the medium, each
switching node needs to implement error detection to avoid wasting bandwidth due to the transmission of erred
Frame Relay
191
frames. The error detection mechanism used in Frame Relay uses the cyclic redundancy check (CRC) as its basis.
Congestion control
The Frame Relay network uses a simplified protocol at each switching node. It achieves simplicity by omitting
link-by-link flow-control. As a result, the offered load has largely determined the performance of Frame Relay
networks. When offered load is high, due to the bursts in some services, temporary overload at some Frame Relay
nodes causes a collapse in network throughput. Therefore, frame-relay networks require some effective mechanisms
to control the congestion.
Congestion control in frame-relay networks includes the following elements:
1. Admission Control. This provides the principal mechanism used in Frame Relay to ensure the guarantee of
resource requirement once accepted. It also serves generally to achieve high network performance. The network
decides whether to accept a new connection request, based on the relation of the requested traffic descriptor and
the network's residual capacity. The traffic descriptor consists of a set of parameters communicated to the
switching nodes at call set-up time or at service-subscription time, and which characterizes the connection's
statistical properties. The traffic descriptor consists of three elements:
2. Committed Information Rate (CIR). The average rate (in bit/s) at which the network guarantees to transfer
information units over a measurement interval T. This T interval is defined as: T = Bc/CIR.
3. Committed Burst Size (BC). The maximum number of information units transmittable during the interval T.
4. Excess Burst Size (BE). The maximum number of uncommitted information units (in bits) that the network will
attempt to carry during the interval.
Once the network has established a connection, the edge node of the Frame Relay network must monitor the
connection's traffic flow to ensure that the actual usage of network resources does not exceed this specification.
Frame Relay defines some restrictions on the user's information rate. It allows the network to enforce the end user's
information rate and discard information when the subscribed access rate is exceeded.
Explicit congestion notification is proposed as the congestion avoidance policy. It tries to keep the network operating
at its desired equilibrium point so that a certain Quality of Service (QoS) for the network can be met. To do so,
special congestion control bits have been incorporated into the address field of the Frame Relay: FECN and BECN.
The basic idea is to avoid data accumulation inside the network.
FECN means Forward Explicit Congestion Notification. The FECN bit can be set to 1 to indicate that congestion
was experienced in the direction of the frame transmission, so it informs the destination that congestion has
occurred. BECN means Backwards Explicit Congestion Notification. The BECN bit can be set to 1 to indicate that
congestion was experienced in the network in the direction opposite of the frame transmission, so it informs the
sender that congestion has occurred.
Frame Relay versus X.25
X.25 provides quality of service and error-free delivery, whereas, Frame Relay was designed to relay data as quickly
as possible over low error networks. Frame Relay eliminates a number of the higher-level procedures and fields used
in X.25. Frame Relay was designed for use on links with error-rates far lower than available when X.25 was
designed.
X.25 prepares and sends packets, while Frame Relay prepares and sends frames. X.25 packets contain several fields
used for error checking and flow control, most of which are not used by Frame Relay. The frames in Frame Relay
contain an expanded link layer address field that enables Frame Relay nodes to direct frames to their destinations
with minimal processing. The elimination of functions and fields over X.25 allows Frame Relay to move data more
quickly, but leaves more room for errors and larger delays should data need to be retransmitted.
Frame Relay
192
X.25 packet switched networks typically allocated a fixed bandwidth through the network for each X.25 access,
regardless of the current load. This resource allocation approach, while apt for applications that require guaranteed
quality of service, is inefficient for applications that are highly dynamic in their load characteristics or which would
benefit from a more dynamic resource allocation. Frame Relay networks can dynamically allocate bandwidth at both
the physical and logical channel level.
Virtual circuits
As a WAN protocol, Frame Relay is most commonly implemented at Layer 2 (data link layer) of the Open Systems
Interconnection (OSI) seven layer model. Two types of circuits exist: permanent virtual circuits (PVCs) which are
used to form logical end-to-end links mapped over a physical network, and switched virtual circuits (SVCs). The
latter are analogous to the circuit-switching concepts of the public switched telephone network (PSTN), the global
phone network.
Frame Relay origins
Frame Relay began as a stripped-down version of the X.25 protocol, releasing itself from the error-correcting burden
most commonly associated with X.25. When Frame Relay detects an error, it simply drops the offending packet.
Frame Relay uses the concept of shared-access and relies on a technique referred to as "best-effort", whereby
error-correction practically does not exist and practically no guarantee of reliable data delivery occurs. Frame Relay
provides an industry-standard encapsulation utilizing the strengths of high-speed, packet-switched technology able to
service multiple virtual circuits and protocols between connected devices, such as two routers.
Local Management Interface (LMI)
Initial proposals for Frame Relay were presented to the Consultative Committee on International Telephone and
Telegraph (CCITT) in 1984. Lack of interoperability and standardization, prevented any significant Frame Relay
deployment until 1990 when Cisco, Digital Equipment Corporation (DEC), Northern Telecom, and StrataCom
formed a consortium to focus on its development. They produced a protocol that provided additional capabilities for
complex inter-networking environments. These Frame Relay extensions are referred to as the Local Management
Interface (LMI).
Datalink connection identifiers (DLCIs) are numbers that refer to paths through the Frame Relay network. They are
only locally significant, which means that when device-A sends data to device-B it will most-likely use a different
DLCI than device-B would use to reply. Multiple virtual circuits can be active on the same physical end-points
(performed by using subinterfaces).
The LMI global addressing extension gives Frame Relay data-link connection identifier (DLCI) values global rather
than local significance. DLCI values become DTE addresses that are unique in the Frame Relay WAN. The global
addressing extension adds functionality and manageability to Frame Relay internetworks. Individual network
interfaces and the end nodes attached to them, for example, can be identified by using standard address-resolution
and discovery techniques. In addition, the entire Frame Relay network appears to be a typical LAN to routers on its
periphery.
LMI virtual circuit status messages provide communication and synchronization between Frame Relay DTE and
DCE devices. These messages are used to periodically report on the status of PVCs, which prevents data from being
sent into black holes (that is, over PVCs that no longer exist).
The LMI multicasting extension allows multicast groups to be assigned. Multicasting saves bandwidth by allowing
routing updates and address-resolution messages to be sent only to specific groups of routers. The extension also
transmits reports on the status of multicast groups in update messages.
Frame Relay
193
Committed information rate (CIR)
Frame Relay connections are often given a committed information rate (CIR) and an allowance of burstable
bandwidth known as the extended information rate (EIR). The provider guarantees that the connection will always
support the CIR rate, and sometimes the EIR rate should there be adequate bandwidth. Frames that are sent in excess
of the CIR are marked as discard eligible (DE) which means they can be dropped should congestion occur within the
Frame Relay network. Frames sent in excess of the EIR are dropped immediately. All traffic exceeding the CIR is
marked discard eligible.
Market reputation
Frame Relay aimed to make more efficient use of existing physical resources, permitting the over-provisioning of
data services by telecommunications companies to their customers, as clients were unlikely to be utilizing a data
service 100 percent of the time. In more recent years, Frame Relay has acquired a bad reputation in some markets
because of excessive bandwidth overbooking.
Telcos often sell Frame Relay to businesses looking for a cheaper alternative to dedicated lines; its use in different
geographic areas depended greatly on governmental and telecommunication companies' policies. Some of the early
companies to make Frame Relay products included StrataCom (later acquired by Cisco Systems) and Cascade
Communications (later acquired by Ascend Communications and then by Lucent Technologies).
As of June 2007 AT&T was the largest Frame Relay service provider in the USA, with local networks in 22 states,
plus national and international networks.
References
External links
• RFC 1490 - Multiprotocol Interconnect over Frame Relay
• RFC 1973 - PPP in Frame Relay
• RFC 2427 - Multiprotocol Interconnect over Frame Relay
• The IP/MPLS Forum (MPLS, Frame Relay, and ATM) (http:// www. ipmplsforum.org/)
• Cisco Frame Relay Tutorial (http:/ / docwiki.cisco. com/ wiki/ Frame_Relay)
• Frame Relay animation (http:// www. visualland. net/ view. php?cid=1336&protocol=Frame Relay&title=1.
Frame Relay Basics& ctype=2)
Free protocol
194
Free protocol
A free protocol is a protocol whose full specification is freely available and for which there are no restrictions (e.g.
legal or technical) on its use. Users may design and use variations that suit their needs, and contribute enhancements
for potential incorporation into the next official version of the protocol. A free software reference implementation
must be available.
Free protocol are important for interoperability and choice of software.
XMPP is a free protocol.
FRF.12
The FRF.12 specification describes the method of fragmenting Frame Relay frames into smaller frames.
Background
When multiplexing packet data from different virtual circuits or flows, Quality of Service concerns often arise. This
is because a frame from one virtual circuit may occupy the line for a long enough period of time to disrupt a service
guarantee given to another virtual circuit.
Fragmentation
Fragmentation is a well known method for addressing this. An incoming long packet is broken up into a sequence of
shorter packets and enough information is added to reassemble that long frame at the far end.
FRF.12
FRF.12 is a specification from the Frame Relay Forum which specifies how to perform fragmentation on frame relay
traffic in several different scenarios.
FUDI
195
FUDI
FUDI is a networking protocol used by the Pure Data patching language invented by Miller Puckette. It is a string
based protocol in which messages are separated by semicolons. Messages are made up of tokens separated by
whitespaces, and numerical tokens are represented as strings.
Format
FUDI is a packet oriented protocol.
Each message consists of one or more atoms, separated by one or more whitespace characters, and it's terminated by
a semicolon character.
An atom is a sequence of one or more characters; whitespaces inside atoms can be escaped by the backslash (ascii
92) character (see Examples below).
A whitespace is either a space (ascii 32), a tab (ascii 9) or a newline (ascii 10).
A semicolon (ascii 59) is mandatory to terminate (and send) a message. A newline is just treated as whitespace and
not needed for message termination.
Implementations
pdsend / pdreceive
Those command-line tools are distributed with the software Pure Data. They are meant to be used with their counter
parts, the classes [netsend] / [netreive] of Pd.
[netsend] / [netreceive]
Those classes can be used to transport Pd-messages over a TCP or UDP socket. Both are part of Pd-vanilla.
[netserver] / [netclient]
Those are part of maxlib and allow bidirectional connections of multiple clients with one server.
Example messages
test/blah 123.45314;
my-slider 12;
hello this is a message;
this message continues
in the following
line;
you; can; send; multiple messages; in a line;
this\ is\ one\ whole\ atom;
this_atom_contains_a\
newline_character_in_it;
FUDI
196
External links
• http:/ / wiki.puredata.info/ en/ FUDI
G.9963
ITU-T Home networking Recommendations
Common Name Recommendations
HomePNA 2.0 G.9951, G.9952, G.9953
HomePNA 3.0 G.9954 (02/05)
HomePNA 3.1 G.9954 (01/07)
G.hn/HomeGrid G.9960, G.9961
G.hn-mimo G.9963
G.cx G.9972
G.hnta G.9970
Recommendation G.9963 is a home networking standard under development at ITU-T.
It was begun in 2010 by ITU-T to add multiple-input and multiple-output (known as MIMO) capabilities to the G.hn
standard originally defined in Recommendation G.9960. The standard is also known as "G.hn-mimo".
[1]
As part of the family of G.hn standards, G.9963 was endorsed by the HomeGrid Forum.
[2]
[1] "G.9963 (ex G.hn-MIMO)" (http:// www. itu. int/ itu-t/workprog/wp_item. aspx?isn=7726). ITU-T Work Programme. . Retrieved July 27,
2011.
[2] Sheila Lashford (May 3, 2011). "HomeGrid Forum Endorses Draft ITU-T MIMO Specification for Extending G.hn" (http:// www.
homegridforum.org/ content/ pages. php?pg=news_press_releases_item& rec_id=95). HomeGrid Forum. . Retrieved July 27, 2011.
G.9970
197
G.9970
Home networking standards
Common name IEEE standard
HomePlug IEEE 1901
Wi-Fi 802.11a
802.11b
802.11g
802.11n
Common name ITU-T recommendation
HomePNA 2.0 G.9951–3
HomePNA 3.0 G.9954
HomePNA 3.1 G.9954
G.hn/HomeGrid G.9960–1
G.hn-mimo G.9963
G.hnta G.9970
G.cx G.9972
G.9970 (also known as G.hnta) is a Recommendation developed by ITU-T that describes the generic transport
architecture for home networks and their interfaces to a provider's access network.
[1]
G.9970 was developed by Study Group 15, Question1. G.9970 received Consent on December 12, 2008 and was
Approved on January 13, 2009.
[2]
Relationship with G.hn
Relationship between G.hnta and G.hn
G.9970 (G.hnta) and G.9960 (G.hn) are two ITU-T Recommendations that
address home networking in a complementary manner. While G.9970
addresses Layer 3 (Network Layer) of the home network architecture, G.9960
addresses Layers 1 (Physical Layer) and 2 (Data Link Layer).
References
[1] G.9970 Recommendation (http:/ / www. itu. int/ rec/T-REC-G.9970/ en) - ITU-T website
[2] G.9970 AAP Process Details (http:/ / www. itu.int/ itu-t/ aap/ AAPRecDetails.
aspx?AAPSeqNo=1828)
G.9972
198
G.9972
Home networking standards
Common name IEEE standard
HomePlug IEEE 1901
Wi-Fi 802.11a
802.11b
802.11g
802.11n
Common name ITU-T recommendation
HomePNA 2.0 G.9951–3
HomePNA 3.0 G.9954
HomePNA 3.1 G.9954
G.hn/HomeGrid G.9960–1
G.hn-mimo G.9963
G.hnta G.9970
G.cx G.9972
G.9972 (also known as G.cx) is a Recommendation developed by ITU-T that specifies a coexistence mechanism for
networking transceivers capable of operating over electrical power line wiring. The coexistence mechanism allows
G.hn devices to coexist with other devices implementing G.9972 and operating on the same power line wiring.
G.9972 received consent during the meeting of ITU-T Study Group 15, on October 9, 2009,
[1]
and final approval on
June 11, 2010.
[2]
Coexistence with BPL access networks
G.9972 specifies two mechanisms for coexistence between G.hn home networks and Broadband over Power Lines
(BPL) access networks:
• Frequency-division multiplexing (FDM), in which the available spectrum is divided in two parts: frequencies
below 10 or 14 MHz (specific value can be selected by the access network) are reserved for the access network,
while frequencies above them are reserved for the in-home network.
• Time-division multiplexing (TDM), in which the available channel time is split equally between both networks.
50% of time slots are allocated for the access network, and 50% are allocated to the in-home network.
References
[1] UNITED NATIONS ITU-T RATIFIES G.HN STANDARD FOR WIRED HOME NETWORKING (http:// www. homegridforum.org/
news_events/ pr/10_09_09/), HomeGrid Forum Press Release
[2] United Nations ITU-T's G.hn Approved as Global Standard for Wired Home Networking (http:/ / www. marketwire.com/ press-release/
United-Nations-ITU-Ts-Ghn-Approved-as-Global-Standard-for-Wired-Home-Networking-1274797.htm)
G.hn
199
G.hn
ITU-T Home networking Recommendations
Common Name Recommendations
HomePNA 2.0 G.9951, G.9952, G.9953
HomePNA 3.0 G.9954 (02/05)
HomePNA 3.1 G.9954 (01/07)
G.hn/HomeGrid G.9960, G.9961
G.hn-mimo G.9963
G.cx G.9972
G.hnta G.9970
G.hn is the common name for a home network technology family of standards developed under the International
Telecommunication Union's Standardization arm (ITU) and promoted by the HomeGrid Forum.
[1]
and several other
organizations.
[2]
The G.hn specification defines networking over power lines, phone lines and coaxial cables with
data rates up to 1 Gbit/s.
[3]
ITU Recommendation (the ITU's term for standard) G.9960, which received approval on October 9, 2009,
[4]
specifies the Physical Layer and the architecture of G.hn. The Data Link Layer (Recommendation G.9961) was
approved on June 11, 2010.
[5]
The work was done in the ITU-T Telecommunication Standardization Sector, Study
Group 15, Question 4. Over 20 companies participated regularly, including some large telephone companies,
communication equipment companies, and home networking technology companies.
Unified communication
G.hn is a specification for existing-wire home networking. It is a wired and complementary counterpart to the
popular Wi-Fi wireless products. G.hn targets gigabit per second data rates
[3]
and operation over three types of
legacy home wires: telephone wiring, coaxial cables and power lines. As the majority of devices in which G.hn may
become embedded (such as televisions, set-top boxes, residential gateways, personal computers or network-attached
storage devices) will be AC-powered, configurations that have at least one power line networking interface are likely
to become the most common. This will also facilitate integration with home control and demand side management
applications for AC-powered appliances.
The ITU-T extended the technology with multiple input, multiple output (MIMO) technology. This aims for more
noise robustness, higher data rates, and extended signalling distances. The work on MIMO for G.hn at ITU-T is
under the G.9963 standard. This is the first standards development organization (SDO) to have defined a MIMO
technology standard for a powerline application.
By developing dual mode devices, G.hn proponents believe it can provide an evolution path from today's
incompatible wired home networking technologies including Multimedia over Coax Alliance (MoCA), HomePNA
3.1 over coax and phone wires (already an ITU standard G.9954), and HomePlug AV, Universal Powerline
Association (UPA) and HD-PLC over powerline. In February 2009 the key promoters of two of these interfaces
united behind the latest version of the standard.
[2]
Others are pursuing different initiatives, such as IEEE 1901,
MoCA 2
[6]
and HomePlug AV2.
[7]
G.hn
200
One device, any wire
G.hn proponents hope one semiconductor device can be used for networking over any home wire. Some benefits of a
multi-wire standard might be lower equipment development costs
[8]
and lower deployment costs for service
providers (by allowing customer self-install).
[9]
Technical specifications
Technical overview
G.hn specifies a single Physical Layer based on fast Fourier transform (FFT) orthogonal frequency-division
multiplexing (OFDM) modulation and low-density parity-check code (LDPC) forward error correction (FEC) code.
G.hn includes the capability to notch specific frequency bands to avoid interference with amateur radio bands and
other licensed radio services. G.hn includes mechanisms to avoid interference with legacy home networking
technologies
[10]
and also with other wireline systems such as VDSL2 or other types of DSL used to access the home.
OFDM systems split the transmitted signal into multiple orthogonal sub-carriers. In G.hn each one of the sub-carriers
is modulated using QAM. The maximum QAM constellation supported by G.hn is 4096-QAM (12-bit QAM).
The G.hn Media Access Control is based on a time division multiple access (TDMA) architecture, in which a
"domain master" schedules Transmission Opportunities (TXOPs) that can be used by one or more devices in the
"domain". There are two types of TXOPs:
• Contention-Free Transmission Opportunities (CFTXOP), which have a fixed duration and are allocated to a
specific pair of transmitter and receiver. CFTXOP are used for implementing TDMA Channel Access for specific
applications that require quality of service (QoS) guarantees.
• Shared Transmission Opportunities (STXOP), which are shared among multiple devices in the network. STXOP
are divided into Time Slots (TS). There are two types of TS:
• Contention-Free Time Slots (CFTS), which are used for implementing "implicit" token passing Channel
Access. In G.hn, a series of consecutive CFTS is allocated to a number of devices. The allocation is performed
by the "domain master" and broadcast to all nodes in the network. There are pre-defined rules that specify
which device can transmit after another device has finished using the channel. As all devices know "who is
next", there is no need to explicitly send a "token" between devices. The process of "passing the token" is
implicit and ensures that there are no collisions during Channel access.
• Contention-Based Time Slots (CBTS), which are used for implementing CSMA/CARP Channel Access. In
general, CSMA systems cannot completely avoid collisions, so CBTS are only useful for applications that do
not have strict Quality of Service requirements.
Optimization for each medium
Although most elements of G.hn are common for all three media supported by the standard (power lines, phone lines
and coaxial cable), G.hn includes media-specific optimizations that ensure that performance is maximized when
operating over each media. Some of these media-specific parameters include
[11]
:
• OFDM Carrier Spacing: 195.31 kHz in coaxial, 48.82 kHz in phone lines, 24.41 kHz in power lines.
• FEC Rates: G.hn's FEC can operate with code rates 1/2, 2/3, 5/6, 16/18 and 20/21. Although these rates are not
media specific, it's expected that the higher code rates will be used in cleaner media (such as coaxial) while the
lower code rates will be used in noisy environments such as power lines.
• Automatic repeat request (ARQ) mechanisms: G.hn supports operation both with and without ARQ
(re-transmission). Although this is not media specific, it's expected that ARQ-less operation is sometimes
appropriate for cleaner media (such as coaxial) while ARQ operation is appropriate for noisy environments such
as power lines.
• Power levels and frequency bands: G.hn defines different power masks for each media.
G.hn
201
• MIMO support: Recommendation G.9963 includes provisions for transmitting G.hn signals over multiple AC
wires (phase, neutral, ground), if they are physically available.
Security
G.hn uses the AES encryption algorithm (with a 128-bit key length) using the CCMP protocol to ensure
confidentiality and message integrity. Authentication and key exchange is done following ITU-T Recommendation
X.1035.
[12]
G.hn specifies point-to-point security inside a domain, which means that each pair of transmitter and receiver uses a
unique encryption key which is not shared by other devices in the same domain. For example, if node Alice sends
data to node Bob, node Eve (in the same domain as Alice and Bob) will not be able to eavesdrop their
communication.
[13]
G.hn supports the concept of relays, in which one device can receive a message from one node and deliver it to
another node further away in the same domain. Relaying provides extended range for large networks. To ensure
security in scenarios with relays, G.hn specifies end-to-end encryption, which means that if node Alice sends data to
node Bob using node Mallory as an intermediate relay, the data is encrypted in such a way that Mallory cannot
decrypt it or modify it.
Profiles
The G.hn architecture includes the concept of profiles. Profiles are intended to address G.hn nodes with significantly
different levels of complexity. In G.hn the higher complexity profiles are Proper supersets of lower complexity
profiles, so that devices based on different profiles can interoperate with each other.
[14]
Examples of G.hn devices based on high complexity profiles are Residential Gateways or Set-Top Boxes. Examples
of G.hn devices based on low complexity profiles are home automation, home security and Smart Grid devices.
Protocol stack
G.hn protocol stack
G.hn specifies the Physical Layer and the Data Link Layer,
according to the OSI model.
[11]
• The G.hn Data Link Layer (Recommendation G.9961) is
divided into three sub-layers:
• The Application Protocol Convergence (APC) Layer,
which accepts frames (usually in Ethernet format) from
the upper layer (Application Entity) and encapsulates
them into G.hn APC Protocol data units (APDUs). The
maximum payload of each APDU is 2
14
bytes.
• The Logical Link Control (LLC), which is responsible
for encryption, aggregation, segmentation and
Automatic repeat-request. This sub-layer is also
responsible for "relaying" of APDUs between nodes
that may not be able to communicate through a direct
connection.
• The Medium Access Control (MAC), which schedules
Channel Access.
• The G.hn Physical Layer (Recommendation G.9960) is
divided into three sub-layers:
• The Physical Coding Sub-layer (PCS), responsible for generating PHY headers.
G.hn
202
• The Physical Medium Attachment (PMA), responsible for scrambling and FEC coding/decoding.
• The Physical Medium Dependent (PMD), responsible for bit-loading and OFDM modulation.
The PMD sub-layer is the only sub-layer in the G.hn stack that is "medium dependent" (i.e., some parameters may
have different values for each media - power lines, phone lines and coaxial cable). The rest of sub-layers (APC,
LLC, MAC, PCS and PMA) are "medium independent".
The interface between the Application Entity and the Data Link Layer is called A-interface. The interface between
the Data Link Layer and the Physical Layer is called Medium Independent Interface (MII). The interface between the
Physical Layer and the actual transmission medium is called Medium Dependent Interface (MDI).
Status
Recommendation G.9960 (Physical Layer) was granted Approval at the October 2009 Study Group 15 plenary
meeting.
[15]
Recommendation G.9961 received Approval on June 11, 2010.
[5]
During that meeting, concerns about regulatory
conformance were raised and an amendment to the G.hn standard was proposed that eliminated the passband
(100 MHz to 200 MHz) and reduced the baseband operational spectrum (from 100 MHz to 80 MHz). Other changes
included in the amendment included a reduction of transmit power to meet regulatory complaints raised at the
meeting. In June 2011, during a joint Forum held by ITU-T, ITU-R and other organizations, it was recognized that
"ITU-T G.hn was considered to have electromagnetic compatibility (EMC) and mitigation techniques that go well
beyond those considered essential for protecting radio services", and that "Non-ITU compliant home network
equipment may cause problems".
[16]
In October 2010, Sigma Designs announced the first G.hn-compliant chipset, called CG5110.
[17]
In January 2011,
Lantiq introduced a family of G.hn-compliant chips, called HNX176 and HNX156.
[18]
In June 2011, four silicon vendors (Lantiq, Marvell Semiconductor, Metanoia and Sigma Designs) announced their
participation in an open interoperability plugfest in Geneva, hosted by Homegrid Forum, Broadband Forum and
ITU.
[19]
Industry Support
HomeGrid Forum
The HomeGrid Forum is a global, non-profit trade group promoting the International Telecommunication Union’s
G.hn standardization efforts for next-generation home networking.
[20]
HomeGrid Forum promotes adoption of G.hn
through technical and marketing efforts,
[9]
addresses certification and interoperability of G.hn-compliant products,
and cooperates with complementary industry alliances.
[2]
HomeGrid Forum members are Intel, Lantiq, Panasonic, Best Buy, British Telecom, K-Micro, Ikanos
Communications, Aware, Marvell, Gigle Networks, Sigma Designs, Holland Electronics, Telefonica, Comtrend,
University of British Columbia, BC Hydro, University of New Hampshire InterOperability Laboratory (UNH-IOL),
LAN S.A.R.L, IC Plus Corp, Korea Electrotechnology Research Institute (KERI), Metanoia
[21]
, Xingtera and
Polaris Networks
[22]
.
G.hn
203
Silicon and IP Vendors
Immediately after G.hn's consent five vendors, Aware, CopperGate, DS2, Ikanos and TangoTec announced support
for the new G.hn standard.
Other silicon vendors actively involved in the development of G.hn include DSL vendors Lantiq and Metanoia
[21]
,
microprocessor manufacturer Intel (which on June 2009 said "[...] a single networking technology for all three types
of existing home wiring will make it easier to expand the market for Intel’s home networking products"),
[23]
and SoC
vendor Sigma Designs, which on July 2009 said "Sigma intends to support the proliferation of G.hn-based products
starting with reference platforms that will power the next-generation of home content delivery".
[24]
Service providers
On February 26, 2009, as part of a HomePNA press release, AT&T (which makes extensive use of wireline home
networking as part of its U-Verse IPTV service) expressed support for the work developed by ITU-T creating
standards for home networking, including G.hn.
[25]
Service providers like AT&T will benefit from G.hn for several reasons
[26]
:
• Connect to any room no matter what the wiring type may be.
• Enable customer self-install
• Built-in diagnostic information and remote management
• Multiple silicon and equipment suppliers
Other Service Providers that are active contributors to the work being done by ITU-T Study Group 15, Question 4,
include British Telecom,
[27]
NTT, Telenor, Qwest, Telefonica, Portugal Telecom and China Telecom.
[28]
However,
to date only AT&T and BT have expressed public interest in potentially deploying G.hn devices.
Equipment vendors
On April 2008, during the first announcement of HomeGrid Forum, Echostar, a manufacturer of set-top boxes for the
service provider market, expressed its support for the unified standard:
[29]

"EchoStar is eager to see HomeGrid Forum accomplish its goals. One standard to transfer HD video over a home’s cable or power lines will
make installations much easier for service providers." explained Michael Hawkey, vice president of sales, EchoStar.

Consumer Electronics
On March 2009, Best Buy (which is the largest retailer of consumer electronics in the United States) joined the board
of directors of HomeGrid Forum and expressed its support for G.hn technology as the single standard for wired
home networks:
[30]

“One of the greatest challenges facing consumers today is the many incompatible technologies that exist for wired networking in the home.[...]
Best Buy supports the global adoption of the ITU-T’s G.hn next-generation technology as the single wired standard for connecting devices
together over coax, powerlines, and phonelines in the home.” ”
Panasonic, one of the largest manufacturers of consumer electronics, is also a contributor member of HomeGrid
Forum.
G.hn
204
Industry Analysts
On June 2008, Michael Wolf, director at ABI Research said:
[31]

“We at ABI Research see several applications, such as multi-room high-definition video, that would ultimately benefit from the move towards
a single MAC/PHY for multiple media in the home" [...] The effort to build a higher-speed single specification for the three primary in-home
wiring types (powerline, coax and phoneline) will provide a roadmap for next-generation service provider deployments. “While it is still early,
ABI Research sees promise in the efforts by ITU G.hn,” says Wolf. “Ultimately, if G.hn sees integration into carrier devices by 2010, we
expect that in 2013 some 42 million G.hn-compliant nodes will ship into the market, in devices such as set-top boxes, residential gateways and
other service provider CPE hardware.” ”
On December 2008, Joyce Putscher, Principal Analyst at market research firm In-Stat, said:
[32]

“Service operators have been looking for an international standard that encompasses multiple existing-wire mediums for video distribution.
G.hn meets that requirement and it seems clear that with significant industry backing from service providers, semiconductor and equipment
vendors, and the fast rate at which the process is moving to achieve a standard, we will see first equipment by 2010.” ”
On December 2008, Kurt Scherf, analyst with market research firm Parks Associates, said:
[32]

“A single, unified technology for multimedia networks over power lines, coaxial cable, and phone lines has the potential to enable a simple,
easy-to-use means of networking devices in the home [...] We believe ITU’s work is an important step towards eliminating fragmentation in
the industry and in achieving the vision of a networked home.” ”
On December 2008, Steve Rago, principal analyst at market researcher iSuppli, said
[33]
:

"G.hn provides the next-generation standard for networking over customer-owned wiring. It is destined to become the first universal standard
for home networking. [...] G.hn nodes will grow at a CAGR of 257% between 2010 and 2013."

Other organizations
On February 25, 2009, three home networking organizations that promoted previously incompatible technologies
(CEPCA, HomePNA and the Universal Powerline Association), announced that they had agreed to work with
Homegrid Forum to promote G.hn as the single next-generation standard for wired home networking, and to work to
ensure coexistence with existing products in the market.
[2]
On October 2008, the Continental Automated Buildings Association (CABA) and HomeGrid Forum signed a liaison
agreement to support HomeGrid Forum’s efforts in conjunction with ITU-T G.hn to make it easy for consumers
worldwide to connect devices and enjoy innovative applications using existing home wiring.
[34]
On July 2009, HomeGrid Forum and DLNA signed a liaison agreement "setting the stage for collaboration between
the two organizations and the approval of G.hn as a DLNA-recognized Physical Layer technology".
[35]
On June 2010, Broadband Forum and HomeGrid Forum signed an agreement to deliver a global compliance and
interoperability testing program for products using G.hn technology. The Broadband Forum will support HomeGrid
Forum's validation of G.hn products, their promotion of product conformance and interoperability, and help expedite
the total time to market for HomeGrid Forum Certified products.
[36]
On May 2011, both organizations jointly
announced the first open G.hn plugfest.
[37]
G.hn
205
Related standards
Relationship between G.hnta and G.hn
ITU G.9970 (also known as G.hnta) is a Recommendation developed by
ITU-T that describes the generic architecture for home networks and their
interfaces to the operators' broadband access networks.
ITU G.9972 (also known as G.cx) is a Recommendation developed by ITU-T
that specifies a coexistence mechanism for home networking transceivers
capable of operating over power line wiring. The coexistence mechanism
would allow G.hn devices which implement G.9972 to coexist with other
devices implementing G.9972 and operating on the same power line wiring.
Potential Applications
Although the major driver for wired home networking technologies has been
IPTV (especially IPTV offered by a service provider as part of a triple play
service, voice and data service offering (such as AT&T's U-Verse)), it is
expected that G.hn will also become the dominant wired networking standard for other markets such as the PC and
CE industries.
[38]
Smart Grid applications like home automation or demand side management can also be targeted by
G.hn-compliant devices that implement low-complexity profiles.
IPTV Home Networks
One of the problems faced by most providers of IPTV services is that in many customers' homes the Residential
gateway that provides connectivity with the Broadband access network is not located in close proximity to the IPTV
Set-top box. This scenario becomes very common as service providers start to offer service packages with multiple
Set-Top Boxes per subscriber.
G.hn solves the problem of connecting the Residential Gateway to one or more Set-top boxes, by using the existing
home wiring. Using G.hn, IPTV service providers don't need to install new Ethernet wires, and don't need to use
802.11 wireless networks, which usually don't provide the Quality of Service and Security required for IPTV.
Because G.hn supports any kind of home wiring, end users will often be able to install the IPTV home network by
themselves, thus reducing the cost to the service provider.
[8]
Consumer Home Networks
Although Wi-Fi technology is today the most popular choice for consumer home networks, G.hn is also intended for
use in this application. G.hn is an adequate solution for consumers in situations in which using wireless is not needed
(for example, to connect a stationary device like a TV or a NAS device), or is not desired (due to security concerns)
or is not feasible (for example, due to limited range of wireless signals).
Consumer Electronics devices
A recent trend in many types of Consumer Electronics (CE) is connectivity. It's usual for many CE products to
include Internet connectivity using technologies such as Wi-Fi, Bluetooth or Ethernet. Many products not
traditionally associated with computer use (such as TVs or Hi-Fi equipment) now provide options to connect to the
Internet or to a computer using a home network to provide access to digital content.
G.hn is intended to provide high-speed connectivity to CE products capable of displaying High definition (HD).
Integrating the power connection and the data connection provides potential energy savings in CE devices. Given
that CE devices (such as Home theater receivers) very often run on standby or "vampire power", they represent
major savings to homeowners if their power connection is also their data connection - the device could reliably be
G.hn
206
turned off when it is not displaying any source.
Smart Grid
Because G.hn can operate over any type of wire (including AC and DC power lines), it can provide the
communication infrastructure required for Smart Grid applications in residential, commercial and industrial
environments. A comprehensive Smart Grid system requires reaching into every AC outlet in a home or building so
that all devices can participate in energy conserving strategies.
On September 2009, NIST included G.hn as one of the "Standards Identified for Implementation" for the Smart Grid
"for which it believed there was strong stakeholder consensus", as part of an early draft of the "NIST Framework and
Roadmap for Smart Grid Interoperability Standards".
[39]
In January 2010 this "strong stakeholder consensus"
collapsed when G.hn was removed from the final version of the "Standards Identified for Implementation".
[40]
Additional standards which are relevant to integrating G.hn with the Smart Grid are mentioned in the NIST report.
The broad concept of Smart Grid includes applications with overlapping scopes such as Demand side management
(DSM), Energy conservation measures (ECM), Advanced Metering Infrastructure (AMI) and Home Area
Networks.
[41]
Because G.hn natively supports popular protocols like Ethernet, IPv4 and IPv6, G.hn-based Smart Grid networks can
easily be integrated with IP-based networks.
[42]
Well-known network management protocols like SNMP can be used
to manage large-scale IP networks including G.hn devices.
Criticism
G.hn opponents believe that this standard has a major deficiency in that it won’t interoperate with legacy wireline
standards such as HomePlug for powerline and Multimedia over Coax Alliance (MoCA) for coaxial cable. There are
millions of deployed devices in the market that are based on these two standards and future G.hn-based products will
not interoperate with any of these. Opponents also believe that a single standard for the three different wired
mediums will result in a lowest common denominator solution that offers lower performance on all of the wires as
compared to current wireline standards that optimize communications for the specific wired environment (i.e.
HomePlug AV and IEEE1901 for powerline, MoCA for coax).
The G.hn effort has been criticized by most proponents of other wired technologies, notably MoCA and HomePlug
technologies. Some industry analysts have questioned the potential adoption of G.hn. Critics argue that G.hn is
incompatible with the established technologies in the market, including HomePlug AV and MoCA. Some claim that
the G.hn specification is not sufficient as a next generation technology and that G.hn will be outperformed by
backwards-compatible technologies developed by these groups.
[43]
HomePlug proponents point out that G.hn claims
of gigabit-level powerline performance were and are made based on the most optimistic of theoretical calculations
and do not take into account the realities of actual powerline networking that must conform to various regulatory
restrictions.
Criticism of the G.hn standard also includes the general nature of the document which totals about 300 pages. The
HomePlug AV and IEEE1901 standards contain very detailed technical specifications and range to about 1,300
pages. Critics say that the G.hn standard is too general and that the wide technical latitude it affords could cause
multi-vendor interoperability issues whenever products are deployed. Parks Associates analyst Kurt Scherf, after
recent conversations with European service providers, is convinced that HomePlug has strong backing from that
industry. "I do not think that the G.hn effort will fully succeed until they take into account HomePlug and build in
some compatibility with it," Scherf is quoted to have said.
[44]
In a June 15 article bylined by Stephen Lawson of IDG News Service, Scherf is quoted as saying, “The bottom line is
that MoCA and HomePlug work -- and seem to work well -- for the service providers that have chosen them. They'd
be very reluctant to make a wholesale move to a technology that's not proven in large field deployments."
[45]
G.hn
207
EDN Analyst Brian Dipert for instance believed that G.hn would not be adopted as a powerline technology "With
DS2's demise. if the rumors are correct, seemingly also go the powerline portions of the ITU's G.hn standards group.
That is, unless G.hn faces up to de facto standardization reality and incorporates HomePlug AV into its
specifications instead."
[46]
Other analysts and vendors in 2010 believed that G.hn will face an uphill climb to gain
industry adoption.
[47]

[48]
By May 2011, the press noted "the complexity of handling three types of networks, plus
the small size of many of the early vendors in this space, partly caused the slow movement".
[49]
References
[1] HomeGrid Forum (http:// www. homegridforum.org)
[2] Technology Organizations Align to Support United Nations' ITU-T G.hn Standard (http://www. homegridforum.org/news_events/ pr/
02_25_09/), CEPCA, HomePNA, and UPA Unite with HomeGrid Forum to Promote Next-Generation Home Networking Technology
[3] DS2 Blog: How fast can G.hn be? (http:// blog. ds2. es/ ds2blog/ 2009/04/ how-fast.html)
[4] New ITU standard opens doors for unified ‘smart home’ network (http:// www. itu. int/ newsroom/ press_releases/ 2009/ 46.html), ITU Press
Release
[5] United Nations ITU-T's G.hn Approved as Global Standard for Wired Home Networking (http:// www. marketwire.com/ press-release/
United-Nations-ITU-Ts-Ghn-Approved-as-Global-Standard-for-Wired-Home-Networking-1274797.htm)
[6] Entropic, NXP Unveil MoCA-Ready Design for Networked DVRs (http://www. onlinereporter.com/ article.php?article_id=16634), the
Online Reporter
[7] HomePlug Alliance hits some milestones, rallies the troops at CES (http:// www.engadget. com/ 2009/ 01/ 07/
homeplug-alliance-hits-some-milestones-rallies-the-troops-at-ce/ ), Engadget
[8] "Why do we need a unified standard at all?" (http:// homegridforum.typepad.com/ homegrid_forum/2008/ 10/
why-do-we-need-a-unified-standard-at-all-1. html), HomeGrid Forum Blog
[9] HomeGrid Forum Webinar: In-Stat's Perspective on Integrated, Segregated & Next-Generation Wired In-Home Networks (http://www.
homegridforum.org/ resource_library/rl_requests?document_id=84790d56bb43fc725a31fa8e3b630b0660669ec4&document_title=In-Stat's+
Perspective+ on+Integrated,+Segregated+& + Next-Generation+Wired+In-Home+Networks+ -+NEW)
[10] HomeGrid Forum White-paper: G.hn Compatibility with Existing Home Networking Technologies (http:/ / homegridforum.typepad.com/
homegrid_forum/ 2009/ 04/ new-whitepaper-on-coexistance.html), HomeGrid Forum Blog
[11] HomeGrid Forum - G.hn Technology Overview (http:/ / www. homegridforum.org/resource_library/
rl_requests?document_id=f00f2ab4c8d967a2786750d72f90fade73130c2b&document_title=G.hn+ Technology+Overview+-+NEW),
(registration required)
[12] Top Ten Things You Need to Know About the New G.hn Standard (http:// blog. ds2. es/ ds2blog/ 2009/ 05/
top-ten-things-about-ghn-standard. html)
[13] An introduction to G.hn security (http:// blog. ds2. es/ ds2blog/ 2009/ 09/ introduction-ghn-security.html)
[14] Updated Issues List for G.hn - Geneva May 2009 (http:// q4sg15.itu. ch/ ties/ Mtgs09/ 2009-05-Geneva/09GS-U12R2.doc), (ITU
membership required)
[15] UNITED NATIONS ITU-T RATIFIES G.HN STANDARD FOR WIRED HOME NETWORKING (http:// www. homegridforum.org/
news_events/ pr/10_09_09/)
[16] Forum highlights radio interference fears (http:/ / www. itu.int/ net/ pressoffice/press_releases/ 2011/ 18.aspx)
[17] Sigma Designs Unveils Industry’s First G.hn Chipset (http:// www. sigmadesigns. com/ uploads/ library/press_releases/ 101025.pdf)
[18] Lantiq Introduces Family of Chips Supporting Global ITU-T G.hn Standard for Home Networking Applications (http:// www. lantiq.com/
news/ press/ 161-ghn-standard-for-home-networking-applications/)
[19] G.hn Moves from Specification to Reality (http:/ / www. homegridforum.org/content/ pages. php?pg=news_press_releases_item&
rec_id=102)
[20] ITU-T G.hn Specification Achieves Key Milestone with Successful Consent at Geneva ITU-T Meeting (http:/ /www. homegridforum.org/
news_events/ pr/12_15_08/), Significant Progress Towards Unified Standard for Home Networking Endorsed by HomeGrid Forum
[21] http:/ / www. metanoia. com. tw/
[22] http:// polarisnetworks. net
[23] Intel publishes white-paper on G.hn standard (http:/ / blog.ds2. es/ ds2blog/ 2009/06/ intel-publishes-whitepaper-on-ghn-standard.html)
[24] SIGMA DESIGNS JOINS HOMEGRID FORUM BOARD OF DIRECTORS (http:// www. homegridforum.org/news_events/ pr/
07_07_09/ )
[25] HomePNA and HomeGrid Sign Liaison Agreement (http:// www.marketwatch.com/ news/ story/
homepna-homegrid-sign-liaison-agreement/story. aspx?guid={C8E4BB07-375A-41E5-8B05-2E33222E44C2}&dist=msr_9), Groups Work
to Promote New ITU G.hn Global Wired Home Networking Standard
[26] HomeGrid Forum Webinar: A Service Provider's Perspective on G.hn (http:/ / www. homegridforum.org/resource_library/
rl_requests?document_id=dd75664df15a78233cb5cccf7e0fe68057089afb&document_title=A+ Service+Provider's+Perspective+on+ G.
hn+Webinar+-+New), Tom Starr, AT&T
[27] BT Joins HomeGrid Forum Board of Directors (http:/ / www. homegridforum.org/ news_events/ pr/ 05_27_09/ )
G.hn
208
[28] ITU-T SG15 Q4 - Geneva December 2008 (http:// www.itu. int/ md/ meetingdoc.asp?lang=en& parent=T09-SG15-081201-C&
question=Q4/ 15)
[29] Industry Creates HomeGrid Forum to Develop Technology for Enjoying Multimedia Anywhere in the Home (http:// www. homegridforum.
org/ news_events/ pr/ 04_29_08/ )
[30] HomeGrid Forum Adds New Members, Best Buy Joins Board Of Directors (http:/ / www. homegridforum.org/ news_events/ pr/
03_09_09), Consumer Electronics Retailer to Help Drive G.hn Technology
[31] New G.hn Home Networking Standard Has Significant Potential (http:/ /www. abiresearch.com/ press/ 1150-New+G.hn+ Home+
Networking+Standard+Has+ Significant+ Potential), ABI Research
[32] New global standard for fully networked home (http:// www. itu.int/ ITU-T/newslog/ New+Global+ Standard+For+Fully+ Networked+
Home. aspx)
[33] CopperGate Communications Commits to G.hn (http://www. copper-gate.com/ news_events/ press_releases/ ?release=46)
[34] HomeGrid Forum and CABA Ink Liaison Agreement to Promote Development and Deployment of Advanced Intelligent Home Networks
(http:/ / www. homegridforum.org/news_events/ pr/ 10_27_08/ )
[35] HOMEGRID FORUM SIGNS LIAISON AGREEMENT WITH DIGITAL LIVING NETWORK ALLIANCE (http:// www.
homegridforum.org/ news_events/ pr/07_13_09/ )
[36] Broadband Forum and HomeGrid Forum Reach Definitive Collaboration Agreement With the Aim of Enabling Conformance and
Interoperability of G.hn Products (http:// www. marketwire.com/ press-release/
Broadband-Forum-HomeGrid-Forum-Reach-Definitive-Collaboration-Agreement-With-Aim-Enabling-1276073.htm)
[37] HomeGrid Forum and Broadband Forum Announce First Open G.hn Chipset Interoperability Plugfest (http:// www. broadband-forum.org/
news/ download/ pressreleeases/ 2011/ HomeGridBBF. pdf)
[38] Multiple industries converging around the G.hn standard (http:// homegridforum.typepad.com/ homegrid_forum/2009/ 03/
multiple-home-networking-organizations-working-with-homegrid-forum-to-promote-ghn-technology. html), HomeGrid Forum Blog
[39] Commerce Secretary Unveils Plan for Smart Grid Interoperability (http:// www. nist. gov/public_affairs/releases/ smartgrid_092409.html)
[40] NIST Smart Grid Interoperability Standards Roadmap (http:/ / hanfan2.blogspot.com/ 2010/ 01/ nist-smart-grid-interoperability.html)
[41] Demand-Side Management: Now More than Ever (http:/ / www. buildings. com/ ArticleDetails/ tabid/ 3321/ ArticleID/8135/ Default.aspx)
[42] Why the Smart Grid must be based on IP standards (http:/ / blog.ds2. es/ ds2blog/ 2009/ 05/ why-smart-grid-must-use-ip-standards.html)
[43] G.hn Skeptics: "Nobody Needs Another Incompatible Standard" (http:// www.broadbandhomecentral.com/ report/backissues/
Report0903_4.html)
[44] G.hn Home Network Standard Progresses (http:// www.pcworld.com/businesscenter/ article/ 173779/
ghn_home_network_standard_progresses. html)
[45] Lawson, Stephen. "More Home Networking Standards Advance." San Francisco Bay Area — News, Sports, Business, Entertainment,
Classifieds: SFGate. 15 June 2010. Web. 14 July 2010. (http:// www. sfgate.com/ cgi-bin/ article. cgi?f=/g/ a/ 2010/ 06/ 15/
urnidgns002570F3005978D800257743006180DF. DTL)
[46] CES 2010: Powerline Networking Updates And Prognostications (http:// www. edn. com/ blog/ 400000040/ post/ 1820051982.
html?nid=2679)
[47] International Data Corporation (March 2010). "G.hn Faces an Uphill Climb" (http://www. mindbranch.com/ prod-toc/
hn-Faces-Uphill-R104-41338/). . (Pay site)
[48] "Atheros: HomePlug Better Now Than G.hn Will Be" (http:// internettvreporter.com/ article.php?article_id=555). Internet Tv Reporter.. 3
May 2010. . Retrieved 27 July 2011.
[49] Stephen Lawson (17 May 2011). "G.hn home-network backers plan tests next week" (http:// www. networkworld.com/ news/ 2011/
051711-ghn-home-network-backers-plan-tests. html). Network World. . Retrieved 27 July 2011.
External links
• ITU-T Study Group 15 Question 4 (http:// q4sg15.itu. int/ )
• ITU-T Recommendation G.9960 (http:/ / www.itu. int/ rec/T-REC-G.9960/ en)
• ITU-T Recommendation G.9961 (http:/ / www.itu. int/ rec/T-REC-G.9961/ en)
• ITU-T Recommendations: Series G (http:/ / www.itu. int/ rec/T-REC-G/e)
• The HomePNA Blog contains general information about home networking and G.hn (http:/ / homepnablog.
typepad. com/ )
• The HomeGrid Forum Blog (http:// homegridforum.typepad. com/ ), A forum for discussion of ITU-T G.hn
• Everywire (http:/ / www. everywire.com/ ), Your Definitive Source for All Things G.hn
• Bluehelmets care for homenetworks (http:/ / www. translate. google. com/ translate?prev=hp&hl=de&u=http:/ /
www. tomsnetworking.de/ content/ reports/j2008a/ report_powerline_zukunft/index.html& sl=de& tl=en&
swap=1) - a translated report from Tom's Networking Guide Germany
Generalized Multi-Protocol Label Switching
209
Generalized Multi-Protocol Label Switching
The Generalized Multi-Protocol Label Switching (GMPLS)
[1]
is a protocol suite extending MPLS to manage
further classes of interfaces and switching technologies other than packet interfaces and switching, such as time
division multiplex, layer-2 switch, wavelength switch and fiber-switch.
Differences between MPLS and GMPLS
GMPLS differs from MPLS as it supports multiple types of switching. In particular, GMPLS offers the additional
support for TDM, wavelength, and fiber switching
[2]
How GMPLS works
GMPLS is based on Generalized Labels. The Generalized Label is a label that can represent either (a) a single fiber
in a bundle, (b) a single waveband within fiber, (c) a single wavelength within a waveband (or fiber), or (d) a set of
time-slots within a wavelength (or fiber). The Generalized Label can also carry a label that represents a generic
MPLS label, a Frame Relay label, or an ATM label.
GMPLS is composed of three main protocols:
• Resource Reservation Protocol with Traffic Engineering extensions (RSVP-TE) signaling protocol.
[3]

[4]
• Open Shortest Path First with Traffic Engineering extensions (OSPF-TE) routing protocol.
[5]

[6]
• Link Management Protocol (LMP).
[7]
References
[1] E. Mannie, "Generalized Multi-Protocol Label Switching (GMPLS) architecture", RFC 3945, Oct. 2004, IETF.
[2] L. Berger, "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description", RFC 3471, Jan. 2003, IETF.
[3] D. Awduche, L. Berger, D. Gan, T. Li, V. Srinivasan, and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP tunnels", RFC 3209, Dic.
2001, IETF.
[4] L. Berger, "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Resource Reservation Protocol-Traffic Engineering (RSVP-TE)
Extensions", RFC 3473, Jan. 2003, IETF.
[5] D. Katz, K. Kompella, and D. Yeung, "Traffic Engineering (TE) Extensions to OSPF Version 2 Architecture", RFC 3630, Sep. 2003, IETF.
[6] K. Kompella and Y. Rekhter, "OSPF Extensions in Support of Generalized Multi-Protocol Label Switching (GMPLS)", RFC 4203, Oct.
2005, IETF.
[7] J. Lang, "Link Management Protocol (LMP)", RFC 4204, Oct. 2005, IETF.
Further reading
• Adrian Farrel, Igor Bryskin, "GMPLS: architecture and applications", ISBN: 978-0-12-088422-3
External links
• IETF Working Group: ccamp charter (http:// datatracker.ietf. org/ wg/ ccamp/ charter/).
GPRS Tunnelling Protocol
210
GPRS Tunnelling Protocol
GPRS Tunnelling Protocol (GTP) is a group of IP-based communications protocols used to carry General Packet
Radio Service (GPRS) within GSM, UMTS and LTE networks.
GTP can be decomposed into separate protocols, GTP-C, GTP-U and GTP'. GTP-C is used within the GPRS core
network for signaling between Gateway GPRS Support Nodes (GGSN) and Serving GPRS Support Nodes (SGSN).
This allows the SGSN to activate a session on a user's behalf (PDP context activation), to deactivate the same
session, to adjust quality of service parameters, or to update a session for a subscriber who has just arrived from
another SGSN.
GTP-U is used for carrying user data within the GPRS Core Network and between the Radio Access Network and
the core network. The user data transported can be packets in any of IPv4, IPv6, or PPP formats.
GTP' (GTP prime) uses the same message structure as GTP-C and GTP-U, but has an independent function. It can be
used for carrying charging data from the Charging Data Function (CDF) of the GSM or UMTS network to the
Charging Gateway Function (CGF). In most cases, this should mean from many individual network elements such as
the GGSNs to a centralized computer that delivers the charging data more conveniently to the network operator's
billing center.
Different GTP variants are implemented by RNCs, SGSNs, GGSNs and CGFs within 3GPP networks. GPRS mobile
stations (MSs) are connected to a SGSN without being aware of GTP.
GTP can be used with UDP or TCP. UDP is either recommended or mandatory, except for tunnelling X.25 in
version 0. GTP version one is used only on UDP.
General features
All variants of GTP have certain features in common. The structure of the messages is the same, with a GTP header
following the UDP/TCP header.
Header
GTP version 1
GTPv1 headers contain the following fields:
[1]
+ Bit 0-2 3 4 5 6 7 8-15 16-23 24-31
0 Version Protocol
type
Reserved Extension Header
Flag
Sequence Number
Flag
N-PDU Number
Flag
Message
Type
Total length
32 TEID
64 Sequence number N-PDU
number
Next extension
header type
Version
It is a 3-bit field. For GTPv1, this has a value of 1.
Protocol Type (PT)
a 1-bit value that differentiates GTP (value 1) from GTP' (value 0).
Reserved
a 1-bit reserved field (must be 0).
GPRS Tunnelling Protocol
211
Extension header flag(E)
a 1-bit value that states whether there is an extension header optional field.
Sequence number flag(S)
a 1-bit value that states whether there is a Sequence Number optional field.
N-PDU number flag(PN)
a 1-bit value that states whether there is a N-PDU number optional field.
Message Type
an 8-bit field that indicates the type of GTP message.
Length
a 16-bit field that indicates the length of the payload in bytes (rest of the packet following the mandatory
8-byte GTP header). Includes the optional fields.
Tunnel endpoint identifier (TEID)
A 32-bit(4-octet) field used to multiplex different connections in the same GTP tunnel.
Sequence number
an (optional) 16-bit field. This field exists if any of the E, S, or PN bits are on. The field must be interpreted
only if the S bit is on.
N-PDU number
an (optional) 8-bit field. This field exists if any of the E, S, or PN bits are on. The field must be interpreted
only if the PN bit is on.
Next extension header type
an (optional) 8-bit field. This field exists if any of the E, S, or PN bits are on. The field must be interpreted
only if the E bit is on.
Next Extension Headers are as follows:
+ Bits 1-7 8-23 24-31
0 Total length Contents
... ...
... Contents Next extension header
Length
an 8-bit field. This field states the length of this extension header, including the length, the contents, and the
next extension header field, in 4-octet units. The length must be a multiple of 4.
Contents
extension header contents.
Next extension header
an 8-bit field. It states the type of the next extension, or 0 if no next extension exists. This permits chaining
several next extension headers.
GPRS Tunnelling Protocol
212
GTP version 2
GTPv2 headers contain the following fields:
[2]
+ Bit 0-2 3 4 5-7 8-15 16-23 24-31
0 Version Piggybacking flag (P) TEID flag (T) Spare Message Type Total length
32 TEID (only present if T=1)
64 (32 if TEID not present) Sequence number Spare
Piggybacking flag
If this bit is set to 1 then another GTP-C message with its own header shall be present at the end of the current
message. There are restrictions as to what type of message can be piggybacked depending on what the toplevel
GTP-C message is.
TEID flag
If this bit is set to 1 then the TEID field will be present between the message length and the sequence number.
All messages except Echo and Echo reply require TEID to be present.
Connectivity mechanisms
Apart from the common message structure, there is also a common mechanism for verifying connectivity from one
GSN to another GSN. This uses two messages.
• echo request
• echo response
As often as every 60 seconds, a GSN can send an echo request to every other GSN with which it has an active
connection. If the other end does not respond it can be treated as down and active connections to it deleted.
Apart from the two messages previously mentioned, there are no other messages common across all GTP variants
[3]
meaning that, for the most part, they effectively form three completely separate protocols.
GTP-C - GTP control
The GTP-C protocol is the control section of the GTP standard. When a subscriber requests a PDP context, the
SGSN will send a create PDP context request GTP-C message to the GGSN giving details of the subscriber's
request. The GGSN will then respond with a create PDP context response GTP-C message which will either give
details of the PDP context actually activated or will indicate a failure and give a reason for that failure. This is a UDP
message on port 2123.
The eGTP-C protocol is responsible for creating, maintaining and deleting tunnels on multiple Sx interfaces. It is
used for the control plane path management, tunnel management and mobility management. It also controls
forwarding relocation messages; SRNS context and creating forward tunnels during inter LTE handovers.
GPRS Tunnelling Protocol
213
GTP-U - GTP user data tunneling
GTP-U is, in effect a relatively simple IP based tunneling protocol which permits many tunnels between each set of
end points. When used in the UMTS, each subscriber will have one or more tunnel, one for each PDP context they
have active plus, possibly separate tunnels for specific connections with different quality of service requirements.
The separate tunnels are identified by a TEID (Tunnel Endpoint Identifier) in the GTP-U messages, which should be
a dynamically allocated random number. If this random number is of cryptographic quality, then it will provide a
measure of security against certain attacks. Even so, the requirement of the 3GPP standard is that all GTP traffic,
including user data should be sent within secure private networks, not directly connected to the Internet. This
happens on UDP port 2152.
The eGTP-U protocol is used to exchange user data over GTP tunnels across the Sx interfaces. An IP packet for a
UE is encapsulated in an EPC-specific protocol eGTPU and tunneled between the P-GW and the eNodeB for
transmission with respect to a UE over S1-U and S5/S8 interfaces.
GTP' - charging transfer
The GTP' protocol is used to transfer charging data to the Charging Gateway Function. GTP' uses TCP/UDP port
3386.
Within the GPRS core network
GTP is the primary protocol used in the GPRS core network. It is the protocol which allows end users of a GSM or
UMTS network to move from place to place whilst continuing to connect to the Internet as if from one location at the
GGSN. It does this by carrying the subscriber's data from the subscriber's current SGSN to the GGSN which is
handling the subscriber's session. Three forms of GTP are used by the GPRS core network.
• GTP-U for transfer of user data in separated tunnels for each PDP context
• GTP-C for control reasons including:
• setup and deletion of PDP contexts
• verification of GSN reachability
• updates; e.g., as subscribers move from one SGSN to another.
• GTP' for transfer of charging data from GSNs to the charging function.
GGSNs and SGSNs (collectively known as GSNs) listen for GTP-C messages on UDP port 2123 and for GTP-U
messages on port 2152. This communication happens within a single network or may, in the case of international
roaming, happen internationally, probably across a GPRS roaming exchange (GRX).
The Charging Gateway Function (CGF) listens to GTP' messages sent from the GSNs on TCP/UDP port 3386. The
core network sends charging information to the CGF, typically including PDP context activation times and the
quantity of data which the end user has transferred. However, this communication which occurs within one network
is less standardized and may, depending on the vendor and configuration options, use proprietary encoding or even
an entirely proprietary system.
GPRS Tunnelling Protocol
214
Use on the IuPS interface
GTP-U is used on the IuPS between the GPRS core network and the RAN, however the GTP-C protocol is not used.
In this case, RANAP is used as a control protocol and establishes GTP-U tunnels between the SGSN and the radio
network controller (RNC).
Protocol stack
????
IP (user)
GTP
UDP
IP
Layer 2 (e.g., WAN or Ethernet)
GTP-U protocol stack
GTP can be used with UDP or TCP. GTP version one is used only on UDP.
As of 2004 there are two versions defined, version 0 and version 1. Version 0 and version 1 differ considerably in
structure. In version 0, the signalling protocol (the protocol which sets up the tunnels by activating the PDP context)
is combined with the tunneling protocol on one port. Version 1 is actually effectively two protocols, one for control
(called GTP-C) and one for user data tunneling (called GTP-U).
GTP-U is also used to transport user data from the RNC to the SGSN in UMTS networks. However, in this case
signalling is done using RANAP instead of GTP-C.
Historical GTP versions
The original version of GTP (version 0) had considerable differences from the current version (version 1):
• the tunnel identification was non-random;
• options were provided for transporting X.25;
• the fixed port number 3386 was used for all functions (not just charging as in GTPv1);
• TCP was allowed as a transport option instead of UDP, but support for this was optional;
• subscription-related fields such as quality of service were more limited.
The non-random TEID in version 0 represented a security problem if an attacker had access to any roaming partner's
network, or could find some other way to remotely send packets to the GPRS backbone. Version 0 is going out of
use and being replaced by version 1 in almost all networks. Even so, the standard for the newer version states that the
older version must be supported by the GSN. Fortunately, however the use of different port numbers allows easy
blocking of version 0 through simple IP access lists.
GPRS Tunnelling Protocol
215
GTP standardization
GTP was originally standardized within ETSI (GSM standard 09.60). With the creation of the UMTS standards this
was moved over to the 3GPP which, as of 2005 maintains it as 3GPP standard 29.060. GTP' uses the same message
format, but its special uses are covered in standard 32.295 along with the standardized formats for the charging data
it transfers.
Later versions of TS 29.060 deprecate GTPv1/v0 interworking such that there is no fallback in the event that the
GSN does not support the higher version.
GTPv2 (for evolved packet services) went into draft in early 2008 and was released in December of that year. GTPv2
offers fallback to GTPv1 via the earlier "Version Not Supported" mechanism but explicitly offers no support for
fallback to GTPv0.
Notes
[1] 3GPP TS 29.060 section 6
[2] 3GPP TS 29.274 section 5
[3] 3GPP TS 29.060 section 7
References
• GSM standard 09.60, ETSI, 1996-98, this standard covers the original version 0 of GTP.
• 3GPP TS 29.060 V6.9.0 (2005-06), 3rd Generation Partnership Project, 650 Route des Lucioles - Sophia
Antipolis, Valbonne - FRANCE, 2005-06. This is the primary standard defining all of the GTP variants for GTP
version 1.
• 3GPP TS 32.295 V6.1.0 (2005-06), 3rd Generation Partnership Project, 650 Route des Lucioles - Sophia
Antipolis, Valbonne - FRANCE, 2005-06. This standard covers using GTP for charging.
• 3GPP TS 29.274 V8.1.0 (2009-03), 3rd Generation Partnership Project, 650 Route des Lucioles - Sophia
Antipolis, Valbonne - FRANCE, 2009-03. GTPv2 for evolved GPRS.
External links
• The 3GPP web site, home of the GTP standard (http:// www. 3gpp. org)
• Free and open source implementation of GPRS Tunneling Protocol version 2 (GTPv2) or Evolved GTP (eGTP)
(http:/ / sourceforge.net/ projects/ nwgtpv2)
H4 (protocol)
216
H4 (protocol)
H4 is a transport protocol for Bluetooth HCI packets over UART. While the protocol doesn't have an official name,
it is widely known as H4 because it was originally presented in the Bluetooth specification's appendix H4.
References
Handshaking
In information technology, telecommunications, and related fields, handshaking is an automated process of
negotiation that dynamically sets parameters of a communications channel established between two entities before
normal communication over the channel begins. It follows the physical establishment of the channel and precedes
normal information transfer.
It is usually a process that takes place when a computer is about to communicate with a foreign device to establish
rules for communication. When a computer communicates with another device like a modem, printer, or network
server, it needs to handshake with it to establish a connection.
Handshaking can be used to negotiate parameters that are acceptable to equipment and systems at both ends of the
communication channel, including, but not limited to, information transfer rate, coding alphabet, parity, interrupt
procedure, and other protocol or hardware features. Handshaking is technique of communication between two
entities. Handshaking makes it possible to connect relatively heterogeneous systems or equipment over a
communication channel without the need for human intervention to set parameters. One classic example of
handshaking is that of modems, which typically negotiate communication parameters for a brief period when a
connection is first established, and thereafter use those parameters to provide optimal information transfer over the
channel as a function of its quality and capacity. The "squealing" (which is actually a sound that changes in pitch 100
times every second) noises made by some modems with speaker output immediately after a connection is established
are in fact the sounds of modems at both ends engaging in a handshaking procedure; once the procedure is
completed, the speaker might be silenced, depending on the settings of operating system or the application
controlling the modem.
Examples
The TLS Handshake Protocol is used to negotiate the secure attributes of a session. (RFC 5246, p.37)
[1]
References
[1] "The Transport Layer Security (TLS) Protocol, version 1.2" (http:// tools. ietf.org/html/ rfc5246). IEFT. .
ltg:Sasauksme
Header Error Control
217
Header Error Control
This is a bit error detection and correction mechanism used in data transmitter and receiver.
The Header Error Control (HEC) is the last field in the Asynchronous Transfer Mode cell consisting of an 8-bit
CRC of the cell's header only.
It consists of the remainder of the division of the 32 bits of the header by the polynomial . The
pattern 01010101 is XORed with the 8-bit remainder before being inserted in the last octet of the header.
[1]
This
added 01010101 value is called a coset.
This scheme is able to correct single-bit errors and detect many multiple-bit errors.
For a tutorial and an example of computing the CRC see the Mathematics of CRCs page.
References
[1] "ATM User-Network Interface Specification V3.0" (http:// www. ipmplsforum.org/ ftp/pub/ approved-specs/ af-uni-0010.001.rtf). .
Retrieved 2007-09-17.
Heartbeat message
A heartbeat message is a message sent from an originator to a destination that enables the destination to identify if
and when the originator fails or is no longer available.
[1]
Heartbeat messages are typically sent non-stop on a
periodic or recurring basis from the originator's start-up until the originator's shutdown. When the destination
identifies a lack of heartbeat messages during an anticipated arrival period, the destination may determine that the
originator has failed, shutdown, or is generally no longer available. Heartbeat messages may be used for
high-availability and fault tolerance purposes.
References
[1] Brown et al. (1987-12-01). "US Patent 4,710,926" (http:// www. google.com/ patents/ about?id=gVQ3AAAAEBAJ). . Retrieved
2009-12-10.
Highway Addressable Remote Transducer Protocol
218
Highway Addressable Remote Transducer
Protocol
HART
Protocol Information
Type of Network Device Bus (Process Automation)
Physical Media Legacy 4-20 mA analog instrumentation wiring or 2.4GHz Wireless
Network Topology One-on-One, Multidrop, Wireless Mesh
Maximum Devices 15 in multidrop
Maximum Speed Depends on Physical Layer employed
Device Addressing Hardware/Software
Governing Body HART Communication Foundation
Website
www.hartcomm.org
[1]
The HART Communications Protocol (Highway Addressable Remote Transducer Protocol) is an early
implementation of Fieldbus, a digital industrial automation protocol. Its most notable advantage is that it can
communicate over legacy 4-20 mA analog instrumentation wiring, sharing the pair of wires used by the older
system. According to Emerson
[2]
, due to the huge installed base of 4-20 mA systems throughout the world, the
HART Protocol was one of the most popular industrial protocols today. HART protocol made a good transition
protocol for users who were comfortable using the legacy 4-20 mA signals, but wanted to implement a "smart"
protocol. Industries seem to be using Profibus DP/PA and Foundation fieldbus (also by Rosemount) more as users
become familiar with later technology and look to take advantage of the enhanced diagnostics they can provide.
The protocol was developed by Rosemount Inc., built off the Bell 202 early communications standard, in the
mid-1980s as proprietary digital communication protocol for their smart field instruments. Soon it evolved into
HART. In 1986, it was made an open protocol. Since then, the capabilities of the protocol have been enhanced by
successive revisions to the specification.
Modes
There are two main operational modes of HART instruments: analog/digital mode, and multidrop mode.
In peer-to-peer mode (analog/digital) the digital signals are overlaid on the 4-20 mA loop current. Both the 4-20
mA current and the digital signal are valid output values from the instrument. The polling address of the instrument
is set to "0". Only one instrument can be put on each instrument cable signal pair. One signal, generally specified by
the user, is specified to be the 4-20mA signal. Other signals are sent digitally on top of the 4-20mA signal. For
example, pressure can be sent as 4-20mA, representing a range of pressures, and temperature can be sent digitally
over the same wires.
In multi-drop mode (digital) only the digital signals are used. The analog loop current is fixed at 4 mA. In
multidrop mode it is possible to have up to 15 instruments on one signal cable. The polling addresses of the
instruments will be in the range 1-15. Each meter needs to have a unique address.
Highway Addressable Remote Transducer Protocol
219
Packet Structure
The HART Packet has the following structure
Field Name Length (Bytes) Purpose
Preamble 5-20 Synchronization and Carrier Detect
Start Byte 1 Specifies Master Number
Address 1-5 Specifies slave, Specifies Master and Indicates Burst Mode
Command 1 Numerical Value for the command to be executed
Number of Data Bytes 1 Indicates the size of the Data Field
Status Master (0) Slave (2) Execution and Health Reply
Data 0-253 Data associated with the command
Checksum 1 XOR of all bytes from Start Byte to Last byte of Data
Preamble
Currently all the newer devices implement 5 byte preamble, since anything greater reduces the communication
speed. However, masters are responsible for backwards support. Master communication to a new devices starts with
the maximum preamble length (20 bytes) and is later reduced once the preamble size for the current device is
determined.
Start Delimiter
This byte contains the Master number and specifies the communication packet is starting...
Address
Specifies the destination address as implemented in one of the HART schemes. The original addressing scheme used
only 4 bits to specify the device address, which limited the number of devices to 16 including the master.
The newer scheme utilizes 38 bits to specify the device address. This address is requested from the device using
either Command 0, or Command 11
Command
This is a 1 byte numerical value representing which command is to be executed. Command 0 and Command 11 are
used to request the device number
Number of Data Bytes
Specifies the number of communication data bytes to follow
Status
The status field is absent for the master and is 2 bytes for the slave. This field is used by the slave to inform the
master whether it completed the task and what its current health status is.
Highway Addressable Remote Transducer Protocol
220
Data
Data contained in this field depends on the command to be executed.
Checksum
Checksum is composed of an XOR of all the bytes starting from the Start Byte and Ending with the last byte of the
data field, including those bytes.
References
[1] http:/ / www.hartcomm.org/
[2] Emerson http:/ / www. automation. com/ content/ emerson-proves-advancements-in-eddl-electronic-device-description-language-technology'',
rev. 2009-09-09
External links
• HART Communications Foundation (http:/ / www.hartcomm.org)
• Detailed HART protocol description; waveforms, message structure, etc (http:// www. analogservices. com/
about_part0)
• Example of using Hart even in Microsoft Excel (http:// borst-automation.com/ Hart-Tools/UsingHartInExcel/
ExcelUsingHart. pdf)
• Hart Technology (Español) (http:// www. fieldata.cl)
Higig
HiGig is a proprietary protocol that is implemented by Broadcom. The HiGig protocol supports various switching
functions like Quality-of-Service (QoS), link aggregation, and others. The physical signaling across the interface is
XAUI, four differential pairs for receive and transmit (SerDes), each operating at 3.125 Gbit/s. HiGig+ is a higher
rate version of HiGig. HiGig can be compared to the Interlaken (networking) protocol.
External references
SPI4.2 to XAUI/HiGig/HiGig+ Bridging Solutions with LatticeSCM FPGAs
[1]
References
[1] http:/ / www.latticesemi. com/ corporate/newscenter/ newsletters/ newsjune2007/ bridgingsolutionsforswitc.cfm
Hop-by-hop transport
221
Hop-by-hop transport
Hop-by-hop transport is a principle of controlling the flow of data in a network. With hop-by-hop transport, chunks
of data are forwarded from node to node in a store-and-forward manner.
As hop-by-hop transport involves not only the source and destination node, but rather some or all of the intermediate
nodes as well, it allows data to be forwarded even if the path between source and destination is not permanently
connected during communication.
However, the End-to-end principle claims that transport control should be implemented end-to-end unless
implementing hop-by-hop transport achieves considerably better performance. Moreover, hop-by-hop transport
requires per-flow state information at intermediate nodes, which limits its scalability. This is one of the reasons why
almost all communication today is controlled by end-to-end transport protocols such as TCP.
Current research in the area of sparse mobile networks is considering hop-by-hop transport for application scenarios
where end-to-end connectivity is only available intermittently, as under such conditions, hop-by-hop transport can
achieve substantial performance gains.
External links
• On Leveraging Partial Paths in Partially-Connected Networks
[1]
• End-to-end vs. hop-by-hop transport under intermittent connectivity
[2]
• The Transport Layer Revisited
[3]
• CAT: Contention Aware Transport Protocol for IEEE 802.11 MANETs
[4]
References
[1] http:/ / dx. doi. org/10. 1109/ INFCOM. 2009. 5061906
[2] http:// portal.acm. org/ citation. cfm?id=1365589
[3] http:// dx. doi. org/10. 1109/ COMSWA. 2007. 382568
[4] http:// dx. doi. org/10. 1109/ VETECS.2006. 1682879
HTTP body data
222
HTTP body data
HTTP
Persistence · Compression · HTTPS
Request methods
OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT
Header fields
Cookie · ETag · Location · Referer
X-Forwarded-For
Status codes
301 Moved permanently
302 Found
303 See Other
403 Forbidden
404 Not Found
HTTP Body Data is the data bytes transmitted in an HTTP transaction message immediately following the headers
if there is any (in the case of HTTP/0.9
[1]
no headers are transmitted).
HTTP message
The request/response message consists of the following:
• Request line, such as GET /logo.gif HTTP/1.1 or Status line, such as HTTP/1.1 200 OK,
• Headers
• An empty line
• Optional HTTP message body data
The request/status line and headers must all end with <CR><LF> (that is, a carriage return followed by a line feed).
The empty line must consist of only <CR><LF> and no other whitespace.
The "optional HTTP message body data" is what this article defines.
Response example
This could be a response from the web server:
HTTP/1.1 200 OK
Date: Sun, 10 Oct 2010 23:26:07 GMT
Server: Apache/2.2.8 (Ubuntu) mod_ssl/2.2.8 OpenSSL/0.9.8g
Last-Modified: Sun, 26 Sep 2010 22:04:35 GMT
ETag: "45b6-834-49130cc1182c0"
Accept-Ranges: bytes
Content-Length: 13
Connection: close
Content-Type: text/html
Hello world!
HTTP body data
223
References
[1] http:/ / www.w3. org/Protocols/ HTTP/AsImplemented. html
HTTP Live Streaming
HTTP Live Streaming (also known as HLS) is an HTTP-based media streaming communications protocol
implemented by Apple Inc. as part of their QuickTime X and iPhone software systems. It works by breaking the
overall stream into a sequence of small HTTP-based file downloads, each download loading one short chunk of an
overall potentially unbounded transport stream. As the stream is played, the client may select from a number of
different alternate streams containing the same material encoded at a variety of data rates, allowing the streaming
session to adapt to the available data rate. At the start of the streaming session, it downloads an extended M3U
playlist containing the metadata for the various sub-streams which are available.
Since its requests use only standard HTTP transactions, HTTP Live Streaming is capable of traversing any firewall
or proxy server that lets through standard HTTP traffic, unlike UDP-based protocols such as RTP. This also allows a
Content delivery network to easily be implemented for any given stream.
Apple has documented HTTP Live Streaming as an Internet-Draft, the first stage in the process of submitting it to
the IETF as a proposed Internet standard. However, while Apple has submitted occasional minor updates
[1]
to the
draft, no additional steps appear to have been taken towards IETF standardization.
[2]
Emblaze has filed a patent suit that may be related to this technology.
Server implementations
• TVersity supports HTTP Live streaming in conjunction with on-the-fly transcoding for playback of any video
content on iOS devices.
• Helix Universal Server from RealNetworks supports iPhone OS 3.0 and later for live and on-demand HTTP Live
or On-Demand streaming of H.264 and AAC content to iPhone, iPad and iPod.
• IIS Media Services from Microsoft supports live and on-demand Smooth Streaming and HTTP Live Streaming.
• Wowza Media Server from Wowza Media Systems supports live and on-demand streaming.
• VODOBOX Live Server
[3]
supports HTTP Live Streaming for iPhone, iPad and iPod.
• Akamai supports HTTP Dynamic Streaming for live and on-demand streams.
• VLC Media Player will support HTTP Live Streaming for serving live and on-demand streams in version 1.2
[4]
• Netris iStream Video Server
[5]
supports HTTP Live streaming for live and on-demand streaming
Usage
• Adobe Systems demonstrated an update to its Adobe Flash Media Server product supporting HTTP Live
Streaming at the NAB Show in April 2011
• Apple Inc. used this on September 1, 2010 to stream their iPod Keynote event live over the internet, and on
October 20, 2010 to stream their 'Back to the Mac' Keynote event live over the internet.
• LiveStation streams numerous TV channels such as France 24, RT, and Al Jazeera English.[6]
• Microsoft added support for HTTP Live Streaming in IIS Media Services 4.0.
[7]
• Google added HTTP Live Streaming support in Android 3.0 Honeycomb.
[8]
HTTP Live Streaming
224
Supported players and servers
Clients
Product Technology As Of Version Vendor Notes
Android
3.0 Honeycomb
[9] Google
SilverLive
[10] Microsoft SilverLight All
Fat Attitude
[11]
VLC
1.2
[12]
note
[12]
iOS 3.0 Apple
iPhone iOS iOS 3.0 Apple
iPad iOS All with iOS 3.2 Apple
iPod Touch iOS iOS 3.0 Apple
QuickTime Player 10+ Apple
Roku Digital Video Player Roku OS / SDK 2.6 Roku
ZiXi player
[13] Apple iOS, Google Android 3.0 ZiXi
apple‑http‑osmf
[14] Flash (free software)
Servers
Product Technology As Of Version Vendor Notes
VLC
1.2
[12]
IIS Media Services
4.0
[7] Microsoft
Adobe Flash Media Server 4.5 Adobe
TVersity Media Server
1.9
[15]
TVersity
[16] Pro Edition only
Helix Universal Server RealNetworks
QuickTime Streaming Server Apple
Wowza Media Server Wowza Media Systems
VODOBOX Live Server
[3] Apple HTTP Live Streaming Vodobox
GravityLab Multimedia
[17] Content Delivery Network
2011/05/13
[17]
GravityLab Multimedia
[18]
Apache HTTP Server
[19]
Apache Software Foundation
[20]
HTTP Live Streaming
225
References
[1] http:/ / datatracker.ietf.org/ doc/ draft-pantos-http-live-streaming/history/
[2] "Internet Drafts are not Open Standards" (http:/ / annevankesteren.nl/ 2010/ 09/ draft-vs-standard). Anne van Kesteren. . Retrieved 30 July
2011.
[3] http:// www.vodobox. com/ index. html?content=home_live_server.html
[4] "Streaming HowTo: Streaming for the iPhone" (http:/ / wiki. videolan.org/ Documentation:Streaming_HowTo/Streaming_for_the_iPhone).
VideoLAN Wiki. . Retrieved 21 May 2011.
[5] http:// www.netris.ru/en/ products/ 2009-02-24-12-38-43/ipsoft-istream. html
[6] http:// m. livestation. com/ channels
[7] "First Look: Microsoft IIS Media Services 4" (http:// www. streamingmedia.com/ Articles/ ReadArticle. aspx?ArticleID=71108&
PageNum=1). StreamingMedia.com. . Retrieved 30 July 2011.
[8] "Android 3.0 Platform Highlights" (http:/ / developer.android. com/ sdk/ android-3.0-highlights.html). .
[9] http:/ / developer.android. com/ sdk/ android-3.0-highlights. html
[10] http:/ / www. fatattitude.com/ software/ software-about-silverlive.aspx
[11] http:/ / www. fatattitude.com/
[12] https:/ / trac. videolan. org/vlc/ ticket/ 2943
[13] http:/ / www. zixi. us
[14] http:/ / code. google. com/ p/ apple-http-osmf/
[15] http:/ / tversity. com/ on-the-fly-transcoding-for-the-iphoneipad-is-here/
[16] http:/ / tversity. com/
[17] http:/ / www. gravlab.com/ iphone. html
[18] http:// www. gravlab.com/
[19] http:/ / en. wikipedia.org/wiki/ Apache_HTTP_Server
[20] http:/ / en. wikipedia.org/wiki/ Apache_Software_Foundation
External links
• GravityLab Multimedia, an Apple HTTP Live Streaming Service Provider (http:// www. gravlab.com/ index.
php).
• Daniel Eran Dilger (Wednesday, July 8, 2009). "Apple launches HTTP Live Streaming standard in iPhone 3.0"
(http:/ / www. appleinsider.com/ articles/ 09/ 07/ 08/
apple_launches_http_live_streaming_standard_in_iphone_3_0. html). Apple Insider. Retrieved 2009-07-10.
• Chris Foresman (July 9, 2009). "Apple proposes HTTP streaming feature as protocol standard" (http://
arstechnica. com/ web/ news/ 2009/ 07/ apple-proposes-http-streaming-feature-as-a-protocol-standard.ars). Ars
Technica. Retrieved 2009-07-10.
• Internet-Draft: HTTP Live Streaming: draft-pantos-http-live-streaming (http:// tools.ietf.org/html/
draft-pantos-http-live-streaming)
• Backbone Networks supports http live streaming in its Internet Radio Automation system (http:/ / www. prweb.
com/releases/ http-live-streaming/shoutcast/ prweb2972154.htm)
• Apple to Provide Live Video Streaming of September 1 Event (http:// www. apple. com/ pr/library/2010/ 08/
31alert. html).
• "First Look: Microsoft IIS Media Services 4" (http:/ / www. streamingmedia. com/ Articles/ ReadArticle.
aspx?ArticleID=71108& PageNum=1).
HyperSCSI
226
HyperSCSI
HyperSCSI was a computer network protocol for accessing storage by sending and receiving SCSI commands. It
was developed by researchers at the Data Storage Institute in Singapore in 2000 to 2003.
[1]
HyperSCSI is unlike
iSCSI in that it bypassed the internet protocol suite (TCP/IP) and works directly over Ethernet to form its Storage
area network. It skipped the routing, retransmission, segmentation, reassembly, and all the other problems that the
TCP/IP suite addresses. Compared to iSCSI, this was meant to give a performance benefit at the cost of IP's
flexibility. An independent performance test showed that performance was unstable with network congestion.
[2]
The
similar ATA over Ethernet technology was based on a cheap technology. Since HyperSCSI was in direct competition
with the older and well established Fibre Channel, and the standardized iSCSI, it was not adopted by commercial
vendors. Some researchers at Huazhong University of Science and Technology noted the failure to provide any
transport layer protocol, so implemented a reliability layer in 2007.
[3]
Another version called HS/IP was developed
over the Internet Protocol (IP).
[4]
References
[1] W.Y.H. Wang; H.N. Yeo; Y.L. Zhu; T.C. Chong (November 19, 2004). "Design and development of Ethernet-based storage area network
protocol". Proceedings of the 12th IEEE International Conference on Networks (IEEE): 48–52. doi:10.1109/ICON.2004.1409086.
ISBN 0-7803-8783-X.
[2] Mathias Gug (March 24, 2003). "Performance comparison between iSCSI and other hardware and software solutions" (http://www. slac.
stanford. edu/ econf/ C0303241/ proc/ papers/ TUDP001.PDF). Computing in High Energy and Nuclear Physics (La Jolla, California). .
Retrieved May 5, 2011.
[3] Gongye Zhou; Peng Chen (July 31, 2007). "RH-SCSI: A Reliable HyperSCSI Protocol for Networking Storage". International Conference on
Networking, Architecture, and Storage 2007 (IEEE): 29–31. doi:10.1109/NAS.2007.45. ISBN 0-7695-2927-5.
[4] Wang Yonghong. "Network Storage Technology Division: HyperSCSI Overview" (http:/ / www.dsi. a-star.edu. sg/ main/dev/ mainPage.
asp?cid=15006&Lid=0). Data Storage Institute. . Retrieved May 5, 2011.
External links
• "Research report 2003: Storage over IP (HyperSCSI)" (http:// www. ces. net/ doc/ 2003/ research/soip.html).
CESNET, Czech Academy of Sciences. Retrieved May 5, 2011. including an introduction and features of
HyperSCSI, and a comparison with iSCSI
• "What the Heck Is HyperSCSI?" (http:/ / www. byteandswitch. com/ document.asp?doc_id=40846). Byte and
Switch. September 26, 2003. Retrieved May 5, 2011.
IBM Advanced Peer-to-Peer Networking
227
IBM Advanced Peer-to-Peer Networking
Advanced Peer-to-Peer Networking (APPN) is an extension to the Systems Network Architecture (SNA).
It includes features such as these:
• distributed network control
• dynamic exchange of network topology information to foster ease of connection, reconfiguration, and route
selection
• dynamic definition of network resources
• automated resource registration and directory lookup.
APPN was meant to complement IBM's Systems Network Architecture, a legacy from the mainframe era. It was
designed as a simplification, but it turned out to be utterly complex, in particular in migration situations. APPN was
originally meant to be a "DECNET killer", but DEC actually died before APPN was completed. Today, of course,
APPN has been completely superseded by TCP/IP (Internet).
Note that APPN has nothing to do with controversial peer-to-peer file sharing software such as KaZaa or Napster.
The designation peer-to-peer in the case of APPN refers to its independence from a central point of control, similar
to the way that a FireWire PC connection allows a video camera to talk directly to a disk drive on the FireWire
network.
APPN evolved to include a more efficient data routing layer which was called High Performance Routing (HPR).
HPR was made available across a range of enterprise corporation networking products in the late 1990s, but today is
typically used only within IBM's z/OS environments as a replacement for legacy SNA networks. It seems to be still
widely used within UDP tunnels, this technology is known as Enterprise Extender.
References
• APPN
[1]
, IBM
References
[1] http:/ / www.networking.ibm. com/ app/ aiwhome.htm
IBM Advanced Program-to-Program Communication
228
IBM Advanced Program-to-Program
Communication
In computing, Advanced Program to Program Communication or APPC is a protocol which computer programs
can use to communicate over a network. APPC is at the application layer in the OSI model, it enables
communications between programs on different computers, from portables and workstations to midrange and host
computers.
APPC was developed as a component of IBM's Systems Network Architecture or SNA. Several APIs were
developed for programming languages such as COBOL or REXX.
APPC software is available for many different IBM and non-IBM operating systems, either as part of the operating
system or as a separate software package. APPC serves as a translator between application programs and the
network. When an application on your computer passes information to the APPC software, APPC translates the
information and passes it to a network interface, such as a LAN adapter card. The information travels across the
network to another computer, where the APPC software receives the information from the network interface. APPC
translates the information back into its original format and passes it to the corresponding partner application.
APPC is linked with the term LU 6.2 ( Logical unit type 6.2 )
APPC is to a large extent limited to the IBM operating systems such AS/400, OS/2 and AIX. It is still a major part of
"mainframe" (ie IBM 360/370/4300 "Z" systems) communications. Microsoft also included SNA support in
Microsoft's Host Integration Server. Major IBM software products have included support for APPC, including CICS,
DB2, CIM, WebSphere MQ and MVS.
Unlike TCP/IP, in which both communication partners always possess a clear role (one is always server, and others
always the client), the communication partners in APPC are equal, i.e. everyone can be both servers and clients
equally. The role, and the number of the parallel sessions between the partners, is negotiated over so-called 'CNOS'
sessions (Change Number Of Session) with a special log mode (e.g. at IBM, 'snasvcmg'). Communication of the data
is made then by 'data sessions', their log modes can be determined in detail from the VTAM administrator (e.g.
length of the data blocks, coding etc..).
With the wide success of TCP/IP, APPC has declined, although many IBM systems have translators (such as the
iSeries' ANYNET) to allow sending APPC-formatted traffic using Ethernet for the physical connection.
External links
• IBM APPC
[1]
• APPN Implementers Workshop
[1]
References
[1] http:/ / www.redbooks. ibm. com/ abstracts/ GG244485. html?Open
IBM LU6.2
229
IBM LU6.2
Logical Unit 6.2 is an IBM-originated communications protocol specification dating from 1974, and is part of IBM's
Systems Network Architecture.
A device-independent SNA protocol, it is used for peer-to-peer communications between two systems, for example,
between a computer and a device (e.g. terminal or printer), or between computers. LU6.2 is used by many of IBM's
products, including Common Programming Interface for Communications Intersystem Communications (CICS ISC),
and Information Management System.
Some examples of a non-IBM product which implemented the SNA stack including LU6.2 are: Microsoft's Host
Integration Server, and Netware for SAA.
APPC is the protocol used with LU6.2 architecture.
LU6.2-compliant devices operate as peers within the network and can perform multiple simultaneous transactions
over the network. LU6.2 devices can also detect and correct errors. The LU6.2 definition provides a common API
for communicating with and controlling compliant devices. Although the concepts were the same on all platforms,
the actual API implementation often varied on each IBM platform which implemented it. Other vendors also
implemented LU6.2 in their own products and with their own APIs. IBM later defined the "Common Programming
Interface - Communications" (CPIC) API which would eventually become widely implemented. CPIC allowed for
the authoring of multi-platform code. APPC is often used to refer to the LU6.2 architecture or to specific LU6.2
features.
Contrast to LU0, LU2 and LU3 of the IBM Systems Network Architecture.
External links
• CPIC Reference Manual
[1]
References
[1] http:/ / publib. boulder.ibm. com/ infocenter/iseries/ v5r3/topic/ books/ c2643999.pdf
IBM Network Control Program
230
IBM Network Control Program
The IBM Network Control Program (NCP) ran on an IBM 3704, 3705, IBM 3725. IBM 3720, or 3745. It caused
the machine to become an IBM Systems Network Architecture (SNA) Physical Unit Type 4 (PU4). A PU4 usually
had SDLC links to remote cluster controllers (PU1/PU2) and optional SDLC links to other PU4s. Polling and
addressing of the cluster controllers was performed by the NCP without mainframe intervention.
A local NCP connected to a System/370 channel via single address. A remote NCP had no direct connection to a
mainframe. Instead a connection was made through a local NCP via SNA packet switching. NCP provided the link
control and Network layer functions of a Wide area network.
Further reading
• W. S. Hobgood (1976). The role of the Network Control Program in Systems Network Architecture
[1]
. Vol 15,
No 1. IBM Systems Journal. Retrieved 2006-08-26.
References
[1] http:/ / www.research.ibm. com/ journal/ sj/ 151/ ibmsj1501E. pdf
IBM Systems Network Architecture
Systems Network Architecture (SNA) is IBM's proprietary networking architecture created in 1974.
[1]
It is a
complete protocol stack for interconnecting computers and their resources. SNA describes the protocol and is, in
itself, not actually a program. The implementation of SNA takes the form of various communications packages, most
notably Virtual telecommunications access method (VTAM) which is the mainframe package for SNA
communications. SNA is still used extensively in banks and other financial transaction networks, as well as in many
government agencies. While IBM is still providing support for SNA, one of the primary pieces of hardware, the
3745/3746 communications controller has been withdrawn from marketing by the IBM Corporation. However, there
are an estimated 20,000 of these controllers installed and IBM continues to provide hardware maintenance service
and micro code features to support users. A robust market of smaller companies continues to provide the 3745/3746,
features, parts and service. VTAM is also supported by IBM, as is the IBM Network Control Program (NCP)
required by the 3745/3746 controllers.
Objectives of SNA
IBM in the mid-1970s saw itself mainly as a hardware vendor and hence all its innovations in that period aimed to
increase hardware sales. SNA's objective was to reduce the costs of operating large numbers of terminals and thus
induce customers to develop or expand interactive terminal based-systems as opposed to batch systems. An
expansion of interactive terminal based-systems would increase sales of terminals and more importantly of
mainframe computers and peripherals - partly because of the simple increase in the volume of work done by the
systems and partly because interactive processing requires more computing power per transaction than batch
processing.
Hence SNA aimed to reduce the main non-computer costs and other difficulties in operating large networks using
earlier communications protocols. The difficulties included:
• A communications line could not be shared by terminals whose users wished to use different types of application,
for example one which ran under the control of CICS and another which ran under TSO.
IBM Systems Network Architecture
231
• Often a communications line could not be shared by terminals of different types, as they used different "dialects"
of the existing communications protocols. Up to the early 1970s, computer components were so expensive and
bulky that it was not feasible to include all-purpose communications interface cards in terminals. Every type of
terminal had a hard-wired communications card which supported only the operation of one type of terminal
without compatibility with other types of terminals on the same line.
• The protocols which the primitive communications cards could handle were not efficient. Each communications
line used more time transmitting data than modern lines do.
• Telecommunications lines at the time were of much lower quality. For example, it was almost impossible to run a
dial-up line at more than 300 bits per second because of the overwhelming error rate, as comparing with 56,000
bits per second today on dial-up lines; and in the early 1970s few leased lines were run at more than 2400 bits per
second (these low speeds are a consequence of Shannon's Law in a relatively low-technology environment).
Telecommunications companies had little incentive to improve line quality or reduce costs, because at the time
they were mostly monopolies and sometimes state-owned.
As a result running a large number of terminals required a lot more communications lines than the number required
today, especially if different types of terminals needed to be supported, or the users wanted to use different types of
applications (.e.g. under CICS or TSO) from the same location. In purely financial terms SNA's objectives were to
increase customers' spending on terminal-based systems and at the same time to increase IBM's share of that
spending, mainly at the expense of the telecommunications companies.
SNA also aimed to overcome a limitation of the architecture which IBM's System/370 mainframes inherited from
System/360. Each CPU could connect to at most 16 "channels" (devices which acted as controllers for peripherals
such as tape and disk drives, printers, card-readers) and each channel could handle up to 16 peripherals - i.e. there
was maximum of 256 peripherals per CPU. At the time when SNA was designed, each communications line counted
as a peripheral. Thus the number of terminals with which powerful mainframe could otherwise communicate is
severely limited.
Principal components and technologies
Improvements in computer component technology made it feasible to build terminals that included more powerful
communications cards which could operate a single standard communications protocol rather than a very
stripped-down protocol which suited only a specific type of terminal. As a result several multi-layer communications
protocols were proposed in the 1970s, of which IBM's SNA and ITU-T's X.25 became dominant later.
The most important elements of SNA include:
• IBM Network Control Program (NCP) is a primitive switching protocol, implemented in 3705 communications
processors. The protocol performed two main functions:
• It is a packet forwarding protocol, acting like modern switch - forwarding data packages to the next node,
which might be a mainframe, a terminal or another 3705. The communications processors supported only
hierarchical networks with a mainframe at the center, unlike modern routers which support peer-to-peer
networks in which a machine at the end of the line can be both a client and a server at the same time.
• It is a multiplexer that connected multiple terminals into one communication line to the CPU, thus relieved the
constraints on the maximum number of communication lines per CPU. A 3705 could support a larger number
of lines (352 initially) but only counted as one peripheral by the CPUs and channels. Since the launch of SNA
IBM has introduced improved communications processors, of which the latest is the 3745.
• Synchronous Data Link Control (SDLC), a protocol which greatly improved the efficiency of data transfer over a
single link:
[2]
• SDLC included much more powerful error detection and correction codes than earlier protocols. These codes
often enabled the communications cards to correct minor transmission errors without requesting
re-transmission, and therefore made it possible to pump data down a line much faster.
IBM Systems Network Architecture
232
• It enabled terminals and 3705 communications processors to send "frames" of data one after the other without
waiting for an acknowledgement of the previous frame - the communications cards had sufficient memory and
processing capacity to "remember" the last 7 frames sent or received, request re-transmission of only those
frames which contained errors that the error detection and correction codes could not repair, and slot the
re-transmitted frames into the right place in the sequence before forwarding them to the next stage.
• These frames all had the same type of "envelope" (frame header and trailer)
[3]
which contained enough
information for data packages from different types of terminal to be send along the same communications line,
leaving the mainframe to deal with any differences in the formatting of the content or in the rules governing
dialogs with different types of terminal.
Remote terminals (i.e. those connected to the mainframe by telephone lines) and 3705 communications
processors would have SDLC-capable communications cards.
This is the precursor of the so called "packet communication" that eventually evolved into today's IP
technology, and SDLC itself evolved into HDLC
[4]
that is one of the base technology for dedicated
telecommunication circuit.
• VTAM, a software package to provide log-in, session keeping and routing services within the mainframe. A
terminal user would log-in via VTAM to a specific application or application environment (e.g. CICS or TSO). A
VTAM device would then route data from that terminal to the appropriate application or application environment
until the user logged out and possibly logged in to another application. The original versions of IBM hardware
could only keep one session per terminal. In the 1980s further software (mainly from third-party vendors) made it
possible for a terminal to have simultaneous sessions with different applications or application environments.
Advantages and disadvantages
SNA removed link control from the application program and placed it in the NCP. This had the following advantages
and disadvantages:
Advantages
• Localization of problems in the telecommunications network was easier because a relatively small amount of
software actually dealt with communication links. There was a single error reporting system.
• Adding communication capability to an application program was much easier because the formidable area of link
control software that typically requires interrupt processors and software timers was relegated to system software
and NCP.
• With the advent of APPN, routing functionality was the responsibility of the computer as opposed to the router
(as with TCP/IP networks). Each computer maintained a list of Nodes that defined the forwarding mechanisms. A
centralized node type known as a Network Node maintained Global tables of all other node types. APPN stopped
the need to maintain APPC routing tables that explicitly defined endpoint to endpoint connectivity. APPN
sessions would route to endpoints through other allowed node types until it found the destination. This was
similar to the way that TCP/IP routers function today.
IBM Systems Network Architecture
233
Disadvantages
• Connection to non-SNA networks was difficult. An application which needed access to some communication
scheme, which was not supported in the current version of SNA, faced obstacles. Before IBM included X.25
support (NPSI) in SNA, connecting to an X.25 network would have been awkward. Conversion between X.25 and
SNA protocols could have been provided either by NCP software modifications or by an external protocol
converter.
• A sheaf of alternate pathways between every pair of nodes in a network had to be predesigned and stored
centrally. Choice among these pathways by SNA was rigid and did not take advantage of current link loads for
optimum speed.
• SNA network installation and maintenance are complicated and SNA network products are (or were) expensive.
Attempts to reduce SNA network complexity by adding IBM Advanced Peer-to-Peer Networking functionality
were not really successful, if only because the migration from traditional SNA to SNA/APPN was very complex,
without providing much additional value, at least initially. SNA software licences (VTAM) cost as much as
$10000 a month for high-end systems. And SNA IBM 3745 Communications Controllers typically cost over
$100K. TCP/IP was still seen as unfit for commercial applications e.g. in the finance industry until the late 1980s,
but rapidly took over in the 1990s due to its peer-to-peer networking and packet communication technology it
deployed.
• The design of SNA was in the era when the concept of layered communication was not fully adopted by the
computer industry. Applications, databases and communication functions were mingled into the same protocol or
product, to make it difficult to maintain or manage. That was very common for the products created in that time.
Even after TCP/IP was fully developed, X window system was designed with the same model where
communication protocols were embedded into graphic display application.
• SNA's connection based architecture invoked huge state machine logic to "keep track" of everything. APPN
added a new dimension to state logic with its concept of differing node types. While it was solid when everything
was running correctly, there was still a need for manual intervention. Simple things like watching the Control
Point sessions had to be done manually. APPN wasn't without issues; in the early days many shops abandoned it
due to issues found in APPN support. Over time, however, many of the issues were worked out but not before the
advent of the Web Browser which was the beginning of the end for SNA.
Logical unit types
Network Addressable Units in an SNA network are any components that can be assigned an address and can send
and receive information. They are distinguished further as follows:
[5]
• System Service Control Points, provide services to manage a network or subnetwork (typically in the mainframe),
• Physical Units, a physical device or communications link (relating to boxes),
• Logical Units, an access point to the network (relating to applications or subsystems such as CICS and TSO) or
terminals.
SNA essentially offers transparent communication: equipment specifics don't impose any constraints onto LU-LU
communication. But eventually it serves a purpose to make a distinction between LU types, as the application must
take the functionality of the terminal equipment into account (e.g. screen sizes and layout).
SNA defines several kinds of devices, called Logical Unit types:
[6]
• LU0 provides for undefined devices, or build your own protocol.
• LU1 devices are printers.
• LU2 devices are dumb IBM 3270 display terminals.
• LU3 devices are printers using 3270 protocols.
• LU4 devices are batch terminals.
IBM Systems Network Architecture
234
• LU5 has never been defined.
• LU6 provides for protocols between two applications.
• LU7 provides for sessions with IBM 5250 terminals.
The primary ones in use are LU1, LU2, and LU6.2 (an advanced protocol for application to application
conversations).
Within SNA there are two types of data stream to connect local terminals and printers; there is the 3270 data stream
mainly used by mainframes (zSeries family) and the 5250 data stream mainly used by minicomputers/servers such as
the S/36, S/38, and AS/400 (now System i).
Starting from version 5.2 of OS/400, SNA for client-access is no longer supported.
The term 37xx refers to IBM's family of SNA communications controllers. The 3745 supports up to eight high-speed
T1 circuits, the 3725 is a large-scale node and front-end processor for a host, and the 3720 is a remote node that
functions as a concentrator and router.
Implementation and publication
SNA was made public as part of IBM's "Advanced Function for Communications" announcement in September,
1974, which included the implementation of the SNA/SDLC (Synchronous Data Link Control) protocols on new
communications products:
• IBM 3767 communication terminal (printer)
• IBM 3770 data communication system
They were supported by IBM 3704/3705 communication controllers and their Network Control Program, and by
System/360 and System/370 and their VTAM and other software such as CICS and IMS. This announcement was
followed by another announcement in July, 1975, which introduced the IBM 3760 data entry station, the IBM 3790
communication system, and the new models of the IBM 3270 display system.
SNA was mainly designed by the IBM Systems Development Division laboratory in Research Triangle Park, North
Carolina, USA, helped by other laboratories that implemented SNA/SDLC. The details were later made public by
IBM's System Reference Library manuals and IBM Systems Journal.
Competitors
The proprietary networking architecture for Honeywell Bull mainframes is Distributed Systems Architecture (DSA).
Communications package for DSA is VIP. Like SNA, DSA is also no longer supported for client access. Bull
mainframes are fitted with Mainway for translating DSA to TCP/IP and VIP devices are replaced by TNVIP
Terminal Emulations (GLink, Winsurf). GCOS 8 supports TNVIP SE over TCP/IP.
Notes
[1] (Schatt 1991, p. 227).
[2] (Pooch 1983, p. 310).
[3] (Pooch 1983, p. 313).
[4] (Friend 1988, p. 191).
[5] (Schatt 1991, pp. 228–229).
[6] (Schatt 1991, p. 229).
IBM Systems Network Architecture
235
References
• Friend, George E.; John L. Fike, H. Charles Baker, John C. Bellamy (1988). Understanding Data
Communications (2nd Edition ed.). Indianapolis: Howard W. Sams & Company. ISBN 0-672-27270-9.
• Pooch, Udo W.; William H. Greene, Gary G. Moss (1983). Telecommunications and Networking. Boston: Little,
Brown and Company. ISBN 0-316-71498-4.
• Schatt, Stan (1991). Linking LANs: A Micro Manager's Guide. McGraw-Hill. ISBN 0-8306-3755-9.
External links
• Cisco article on SNA (http:/ / www. cisco. com/ en/ US/ docs/ internetworking/technology/ handbook/
IBM-SNA-Protocols.html)
• APPN Implementers Workshop (http:/ / www.networking.ibm.com/ app/ aiwhome.htm) Architecture
Document repository
• SNA protocols (http:/ / www. protocols.com/ pbook/ sna. htm) quite technical
IF-MAP
The Interface for Metadata Access Points (IF-MAP) is an open standard client/server protocol developed by the
Trusted Computing Group (TCG) as one of the core protocols of the Trusted Network Connect (TNC) open
architecture.
IF-MAP provides a common interface between the Metadata Access Point (MAP), a database server acting as a
clearinghouse for information about security events and objects, and other elements of the TNC architecture.[1]
The IF-MAP protocol defines a publish/subscribe/search mechanism with a set of identifiers and data types.
History
The IF-MAP protocol was first published by the TCG on April 28, 2008. Originally, the IF-MAP specification was
developed to support data sharing across various vendor’s devices and applications for network security.[2] The
standard has also been adopted for additional use cases of data-sharing including physical security.[3]
Version 2.0 of the IF-MAP spec was published on September 13, 2010. The 2.0 version separated the base protocol
from the metadata definitions that standardize how different types of information are represented. The goal in
separating the base protocol from the metadata definitions within the standard was to allow the standard to be
adopted across other technologies, such cloud computing,[4] Industrial Control Systems,[5] smart grid, to leverage
their existing data models within the MAP framework.[6]
IF-MAP
236
IF-MAP Community
IF-MAP.com is the meeting place for IF-MAP Community. Launched in December 2010, IF-MAP.COM
[7]
is
expected to serve as a platform for innovators collaborating and contributing to the IF-MAP world.
IF-MAP Adoption
IF-MAP is supported by a variety of vendors:
• Great Bay
[8]
Beacon endpoint profiler;
• Juniper Networks Unified Access Control (UAC) and SSL VPN appliances (SA);
• Infoblox
[9]
Core Network Services Appliances and Orchestration (IF-MAP) Server;
• Insightix
[10]
BSA Business Security Assurance suite;
• Lumeta IPsonar network discovery solutions;
• Hirsch Electronics
[11]
Velocity Physical Access Control System
• Byres Security’s Tofino
[12]
industrial security gateways.
• LogiSense
[13]
Billing & OSS / Network Access Control;
• strongSwan
[14]
Open Source IPsec VPN Gateway with IF-MAP Interface;
References
• Lawton, George. “New Protocol Improves Interaction among Networked Devices and Applications”
[1]
,
“Computing Now”, IEEE Computer Society.
• Reed, Brad. “NAC group expands its scope”
[2]
, “Network World Magazine”, IDG Publishing.
• Beliles, Robert. “Technology for Securing a “Seat” at the Executive Table”
[3]
, “Security Magazine”, BNP Media.
• “IF-MAP Based Intercloud Testbed In Planning”
[15]
• “Securing SCADA and Control Networks”
[5]
• Messmer, Ellen. “Trusted Computing Group eyes cloud security framework”
[6]
, “Network World Magazine”, IDG
Publishing.
External links
• Trusted Computing Group
[16]
• TNC IF-MAP Binding for SOAP Specification
[17]
• IF-MAP Developer Resources
[18]
• omapd Opensource IF-MAP Server
[19]
References
[1] http:/ / www.computer.org/ portal/web/ computingnow/ archive/ news065
[2] http:// www.networkworld.com/ news/ 2008/ 042808-interop-tcg.html
[3] http:/ / www.securitymagazine. com/ Articles/ Online_Exclusives/ BNP_GUID_9-5-2006_A_10000000000000886666
[4] http:/ / opencloudconsortium. org/2010/ 02/ 22/ if-map-based-intercloud-testbed
[5] http:/ / www.automation. com/ content/ securing-scada-and-control-networks
[6] https:// www. networkworld.com/ news/ 2010/ 091310-trusted-computing-group-cloud-security.html
[7] http:/ / www.if-map.com
[8] http:/ / www.greatbaysoftware.com
[9] http:/ / www.infoblox.com
[10] http:/ / www. insightix. com
[11] http:/ / www. hirschelectronics. com
[12] http:/ / www. tofinosecurity.com
[13] http:/ / www. logisense. com
[14] http:// wiki. strongswan.org/ projects/ strongswan/ wiki/ IfMap
IF-MAP
237
[15] http:/ / opencloudconsortium. org/2010/ 02/ 22/ if-map-based-intercloud-testbed/
[16] http:/ / www. trustedcomputinggroup.org
[17] http:/ / www. trustedcomputinggroup.org/ resources/ tnc_ifmap_binding_for_soap_specification
[18] http:// ifmapdev.com
[19] http:/ / code. google. com/ p/ omapd
IL (network protocol)
The Internet Link protocol or IL is a connection-based transport layer protocol designed at Bell Labs originally as
part of the Plan 9 operating system and is used to carry 9P. It is assigned the Internet Protocol number of 40. It is
similar to TCP but much simpler.
Its main features are:
• Reliable datagram service
• In-sequence delivery
• Internetworking using IP
• Low complexity, high performance
• Adaptive timeouts
As of the Fourth Edition of Plan 9, 2003, IL is deprecated in favor of TCP/IP because it doesn't handle long-distance
connections well.[1]
External links
• Dave Presotto; Phil Winterbottom. "The IL protocol"
[2]
.—The original paper describing IL
References
[1] http:/ / plan9. bell-labs. com/ sys/ doc/ release4. html
[2] http:// doc. cat-v.org/ plan_9/ 4th_edition/ papers/ il/
Inter-server
238
Inter-server
In computer network protocol design, inter-server communication is an extension of the client–server model in
which data are exchanged directly between servers. In some fields server-to-server (S2S) is used as an alternative,
and the term inter-domain can in some cases be used interchangeably.
Protocols that have inter-server functions as well as the regular client–server communications include the following:
• The domain name system (DNS), which uses an inter-server protocol for zone transfers;
• The Dynamic Host Configuration Protocol (DHCP);
• FXP, allowing file transfer directly between FTP servers;
• The Inter-Asterisk eXchange (IAX);
• InterMUD;
• The IRC, an Internet chat system with an inter-server protocol allowing clients to be distributed across many
servers;
• The Network News Transfer Protocol (NNTP);
• The Protocol for SYnchronous Conferencing (PSYC);
• SIP, a signaling protocol commonly used for Voice over IP;
• SILC, a secure Internet conferencing protocol;
• The Extensible Messaging and Presence Protocol (XMPP, formerly named Jabber).
Some of these protocols employ multicast strategies to efficiently deliver information to multiple servers at once.
Internet Data Exchange
An Internet Data Exchange (IDX) is a real estate property search site which allows the public to conduct searches
of approved Multiple Listing Service properties in a certain area.
Site users generally gain the benefit of anonymous property searching and review. IDX sites usually provide less
detailed information than the full Realtor Multiple Listing Service, limiting the data to that which is deemed publicly
accessible. This system benefits both parties. The benefit to realtors is that users of their IDX web site can search
freely, establish some confidence, and qualify themselves before contacting the realtor. The benefits to clients is to
save time and refine their targets.
Certain rules apply to the real estate companies' ability to display each detail about a property. These "display rules"
are set by the Multiple Listing Service organization, which generally forms its policy around the recommendations of
the National Association of Realtors.
IDX policy is nearing its replacement by a new Internet Listing Display policy being formed by the National
Association of Realtors.
A common and standard data exchange protocol for IDX information is the Real Estate Transaction Specification or
RETS.
Internet Data Exchange
239
External links
• IDX (Internet Data Exchange) Information and Resources
[1]
, National Association of Realtors
• What is IDX/Broker Reciprocity?
[2]
• Sample IDX Website
[3]
References
[1] http:/ / www.realtor.org/MemPolWeb. nsf/ pages/ IDX?OpenDocument
[2] http:/ / www.idxbroker.com/ idx_qanda_wiki. php
[3] http:// www.realestatehomesomaha. com
Internet Fibre Channel Protocol
Internet Fibre Channel Protocol (iFCP) is a gateway-to-gateway network protocol standard, officially ratified by
the Internet Engineering Task Force, which provides Fibre Channel fabric functionality to fibre channel devices over
an IP network. Currently the most common comes in 1 Gbit/s, 2 Gbit/s, 4 Gbit/s, 8 Gbit/s, 10 Gbit/s variants.
Technical overview
The iFCP protocol enables the implementation of fibre channel functionality over an IP network, within which the
fibre channel switching and routing infrastructure is replaced by IP components and technology. Congestion control,
error detection and recovery are provided through the use of TCP (Transmission Control Protocol). The primary
objective of iFCP is to allow existing fibre channel devices to be networked and interconnected over an IP based
network at wire speeds.
The method of address translation defined and the protocol permit fibre channel storage devices and host adapters to
be attached to an IP-based fabric using transparent gateways.
The iFCP protocol layer's main function is to transport Fibre Channel frame images between Fibre Channel ports
attached both locally and remotely. iFCP encapsulates and routes the fibre channel frames that make up each Fibre
Channel information unit via a predetermined TCP connection for transport across the IP network when transporting
frames to a remote Fibre Channel port.
External links
RFCs
• RFC 4172 - A Protocol for Internet Fibre Channel Storage Networking (iFCP)
Other Links
• iFCP Information Page
[1]
at the SNIA IP Storage Forum.
• iFCP Subgroup
[2]
at the SNIA IP Storage Forum.
• Protocol Summary
[3]
by javin.com.
References
[1] http:/ / www.snia. org/ forums/ipsf/ programs/ about/ ifcp/
[2] http:// www.snia. org/ tech_activities/ ip_storage/ ifcp/
[3] http:/ / www.javvin. com/ protocoliFCP. html
Internet Gateway Device Protocol
240
Internet Gateway Device Protocol
Internet Gateway Device (IGD) Standardized Device Control Protocol is supported by some NAT routers. It is a
common method of automatically configuring port forwarding, but is not an Internet Engineering Task Force
standard.
Applications using peer-to-peer networks, multiplayer gaming, and remote assistance programs need a way to
communicate through home and business gateways. Without IGD one has to manually configure the gateway to
allow traffic through, a process which is error prone and time consuming. Universal Plug and Play (UPnP) comes
with a solution for network address translation traversal.
IGD makes it easy to do the following:
• Learn the public (external) IP address
• Enumerate existing port mappings
• Add and remove port mappings
• Assign lease times to mappings
External links
• "Internet Gateway Device (IGD) V 1.0"
[1]
. UPnP Forum. 2001-11-12. Retrieved 2011-03-02.
• "Internet Gateway Device (IGD) V 2.0"
[2]
. UPnP Forum. 2010-12-09. Retrieved 2011-03-02.
• UPnP Forum Internet Gateway Device presentation
[3]
• Universal Plug and Play NAT Traversal FAQ
[4]
by Microsoft. Archived copy
[5]
• Free, BSD-licensed ANSI C library to control a Universal Plug and Play Internet Gateway Device or NAT-PMP
[6]
• Linux implementation of an Internet gateway device server
[7]
References
[1] http:/ / upnp.org/specs/ gw/ igd1/
[2] http:/ / upnp.org/specs/ gw/ igd2/
[3] http:/ / www.upnp. org/events/ documents/ roe_igdwapupdate. ppt
[4] http:/ / www.microsoft.com/ technet/ prodtechnol/ winxppro/support/ upnp01.mspx
[5] http:// web. archive.org/ web/ 20070814012159/ http:/ / www.microsoft.com/ technet/ prodtechnol/ winxppro/support/ upnp01.mspx
[6] http:// miniupnp. free.fr/
[7] http:/ / linux-igd.sourceforge.net/
Internet Listing Display
241
Internet Listing Display
Internet Listing Display (ILD) is a set of rules put forth by the National Association of Realtors that regulate how
homes and properties can be displayed on internet sites. The ILD policy consolidates and replaces both the Virtual
Office Website (VOW) and Internet Data Exchange (IDX) policies to create one set of rules.
The ILD policy is a work in progress created as a result of investigation from the U.S. Department of Justice into
anti-competitive practices by traditional real estate brokers. The ILD policy is intended to prevent traditional brokers
from solely excluding their property listings from selected discount broker web sites, since they must "opt out" from
display on all other brokers' sites
[1]
References
[1] (http:// www. realtor.org/ mempolweb. nsf/ pages/ ILDPolicy) NAR's ILD policy: "Unless state law requires prior written consent, each
Participant’s consent for display of that Participant’s listings on the ILD site of other MLS Participants is presumed unless a Participant
affirmatively notifies the MLS in writing that it has withdrawn consent to such display (“opt out”).
A Participant that opts out may not display on its ILD site(s) (including by framing any other website), if any, the
listings of any other MLS Participant provided by the MLS.
A Participant that opts out may not permit display of its listings on any ILD site of any other Participant. It may,
however, display its listings on public websites of third parties, including but not limited to Realtor.com.
A decision to opt out may not be revoked for a period of ninety (90) days from the date the decision becomes
effective."
• ILD Policy ILD Internet Listing Display policy (http:// www.realtor.org/ mempolweb. nsf/ pages/ ILDPolicy)
Retrieved November 7, 2005
Internet Printing Protocol
242
Internet Printing Protocol
In computing, the Internet Printing Protocol (IPP) provides a standard network protocol for remote printing as
well as for managing print jobs, media size, resolution, and so forth.
Like all IP-based protocols, IPP can run locally or over the Internet to printers hundreds or thousands of miles away.
Unlike other printing protocols, IPP also supports access control, authentication, and encryption, making it a much
more capable and secure printing solution than older ones. It uses RAW and LPR printing protocols to print over a
network.
History
IPP began as a proposal by Novell for the creation of an Internet printing protocol project in 1996. The result was a
draft written by Novell and Xerox called the Lightweight Document Printing Application (LDPA). At about the
same time, IBM proposed something called the HyperText Printing Protocol (HTPP), and both HP and Microsoft
had started work on new print services for what became Windows 2000. Each of the companies chose to start a
common Internet Printing Protocol project in the Printer Working Group (PWG) and negotiated an IPP
birds-of-a-feather (BOF) session with the Application Area Directors in the Internet Engineering Task Force (IETF).
The BOF session in December of 2006 showed sufficient interest in developing a printing protocol, leading to the
creation of the IETF Internet Printing Protocol (ipp)
[1]
working group.
IPP/1.0 was published as a series of experimental documents (RFC 2565
[2]
, RFC 2566
[3]
, RFC 2567
[4]
, RFC 2568
[5]
, RFC 2569
[6]
, and RFC 2639
[7]
) in 1999. IPP/1.1 followed as a draft standard in 2000 with support documents in
2001 and 2003 (RFC 2910
[8]
, RFC 2911
[9]
, RFC 3196
[10]
, RFC 3510
[11]
). Additional extensions to IPP were
published as RFCs until 2005 when the IETF IPP working group was concluded.
Work on IPP continues in the PWG with the publication of 12 candidate standards providing extensions to IPP and
definition of IPP/2.0, IPP/2.1, and now IPP/2.2 representing different categories or classes of printers. A new IPP
Everywhere
[12]
project began in July of 2010 to define an IPP profile and extensions required to support driverless
printing, with a focus on non-traditional platforms such as netbooks and mobile Internet devices. The new project
also expands the scope of IPP standards to include printer discovery and standard document formats.
Implementation
IPP is implemented using the Hypertext Transfer Protocol (HTTP) and inherits all of the HTTP streaming and
security features. For example, authorization can take place via HTTP's Digest access authentication mechanism,
GSSAPI, or via public key certificates. Encryption is provided using the SSL/TLS protocol-layer, either in the
traditional always-on mode used by HTTPS or using the HTTP Upgrade extension to HTTP (RFC 2817
[13]
.
Streaming is supported using HTTP chunking.
IPP uses the traditional client-server model, with clients sending IPP request messages with the MIME media type
"application/ipp" in HTTP POST requests to an IPP printer. IPP request messages consist of key/value pairs using a
custom binary encoding followed by an "end of attributes" tag and any document data required for the request. The
IPP response is send back to the client in the HTTP POST response, again using the "application/ipp" MIME media
type.
Among other things, IPP allows a client to:
1. query a printer's capabilities
2. submit print jobs to a printer
3. query the status of a printer
4. query the status of one or more print jobs
Internet Printing Protocol
243
5. cancel previously submitted jobs
IPP uses TCP with port 631 as its well-known port. IPP implementations such as CUPS also use UDP with port 631
for IPP printer discovery.
Products using the Internet Printing Protocol include, among others, CUPS which is part of Mac OS X and many
BSD and Linux distributions and is the reference implementation for IPP/2.0 and IPP/2.1, Novell iPrint, and
Microsoft Windows, starting with Windows 2000.
[14]
Windows XP and Windows Server 2003 offer IPP printing via
HTTPS. Windows Vista, Windows 7, Windows Server 2008 and 2008 R2 also support IPP printing over RPC in the
"Medium-Low" security zone. For reasons speculative Microsoft dropped support of secure IPP via SSL with
Windows Server 2008.
Standards
• RFC 2910 Internet Printing Protocol/1.1: Encoding and Transport (September 2000)
[8]
• RFC 2911 Internet Printing Protocol/1.1: Model and Semantics (September 2000)
[9]
• RFC 2567 Design Goals for an Internet Printing Protocol (April 1999)
[4]
• RFC 2568 Rationale for the Structure and Model and Protocol for the Internet Printing Protocol (April 1999)
[5]
• RFC 2569 Mapping between LPD and IPP Protocols (April 1999)
[6]
References
[1] http:/ / www.ietf.org/ wg/ concluded/ ipp. html
[2] http:/ / tools. ietf. org/html/ rfc2565
[3] http:/ / tools. ietf. org/html/ rfc2566
[4] http:/ / tools. ietf. org/html/ rfc2567
[5] http:/ / tools. ietf. org/html/ rfc2568
[6] http:/ / tools. ietf. org/html/ rfc2569
[7] http:/ / tools. ietf. org/html/ rfc2639
[8] http:/ / tools. ietf. org/html/ rfc2910
[9] http:/ / tools. ietf. org/html/ rfc2911
[10] http:/ / tools. ietf. org/html/ rfc3196
[11] http:// tools. ietf. org/html/ rfc3510
[12] http:// pwg-wiki.wikispaces. com/ IPP+Everywhere
[13] http:// tools. ietf. org/html/ rfc2817
[14] "Effectively Using IPP Printing" (http:// www. microsoft.com/ windowsserver2003/ techinfo/ overview/internetprint.mspx). Microsoft.
April 8, 2003. . Retrieved 2009-09-06.
External links
• PWG IPP Work Group (http:// www. pwg. org/ipp/ )
• Novell iPrint overview (http:/ / www. novell.com/ products/ netware/printing/ quicklook. html)
• IPP in Microsoft Windows (http:/ / technet.microsoft. com/ en-us/ library/cc731368.aspx#BKMK_How)
• CUPS Web Site (http:/ / www. cups. org/)
Internet Protocol Device Control
244
Internet Protocol Device Control
Internet Protocol Device Control (IPDC) is a specification for controlling hardware devices, developed by Level 3
Communications and a group of other telcos. Protocol was designed for communicating between centralized
switches and IP-based gateways. It provides management and integration on a very large scale.
It should not be confused with DVB-IPDC which stands for IP datacasting (data broadcasting) over radio and
television broadcasting networks such as DVB-H.
Internet Storage Name Service
In computing, the proposed Internet Storage Name Service (iSNS) protocol allows automated discovery,
management and configuration of iSCSI and Fibre Channel devices (using iFCP gateways) on a TCP/IP network.
Features
iSNS provides management services similar to those found in Fibre Channel networks, allowing a standard IP
network to operate in much the same way that a Fibre Channel storage area network does. Because iSNS is able to
emulate Fibre Channel fabric services and manage both iSCSI and Fibre Channel devices, an iSNS server can be
used as a consolidated configuration point for an entire storage network. However, standards-compliant iSNS
implementations are required to support the iFCP protocol, supporting the iSCSI protocol is optional.
Components
The iSNS standard defines four components:
The iSNS Protocol
iSNSP is a protocol that specifies how iSNS clients and servers communicate. It is intended to be used by
various platforms, including switches and targets as well as server hosts.
iSNS Clients
iSNS clients are part of iSNSP aware storage devices. iSNS clients initiate transactions with iSNS servers
using the iSNSP, register device attribute information in a common Discovery Domain (DD), download
information about other registered clients and receive asynchronous notification of events that occur in their
DD(s).
iSNS Servers
iSNS servers respond to iSNS protocol queries and requests made by iSNS clients using the iSNSP. iSNS
servers initiate iSNSP State Change Notifications and store properly authenticated information submitted by a
registration request in an iSNS database.
iSNS Databases
iSNS databases are the information repositories for iSNS server(s). They maintain information about iSNS
client attributes; while implementations will vary, a directory-enabled implementation of iSNS, for example,
might store client attributes in an LDAP directory.
Internet Storage Name Service
245
Services
An iSNS implementation provides four primary services:
• Name Registration and Storage Resource Discovery
• Discovery Domains and Login Control
• State Change Notification
• Bidirectional Mappings Between Fibre Channel and iSCSI Devices
Name Registration and Storage Resource Discovery
iSNS implementations allow all entities in a storage network to register and query an iSNS database. Both targets
and initiators can register with the iSNS database, and each entity can inquire about other initiators and targets. For
example, a client initiator can obtain information about target devices from an iSNS server.
Discovery Domains and Login Control
Administrators can use the Discovery Domains to divide storage nodes into manageable, non-exclusive groups. By
grouping storage nodes, administrators are able to limit the login process of each host to the most appropriate subset
of targets registered with the iSNS, which allows the storage network to scale by reducing the number of
unnecessary logins and by limiting the amount of time each host spends establishing login relationships.
Each target is able to use Login Control to delegate their access control and authorization policies to an iSNS server.
Such delegation is intended to promote centralized management.
State Change Notification
The State Change Notification (SCN) service allows an iSNS Server to issue notifications about each event that
affects storage nodes on the managed network. Each iSNS client may register for notifications on behalf of its
storage nodes, and each client is expected to respond according to its own requirements and implementation.
Bidirectional mappings between fibre channel and iSCSI devices
Because the iSNS database stores naming and discovery information about both Fibre Channel and iSCSI devices,
iSNS servers are able to store mappings of Fibre Channel devices to proxy iSCSI device images on the IP network.
These mappings may also be made in the opposite direction, allowing iSNS servers to store mappings from iSCSI
devices to proxy WWNs.
References
• RFC 4171: Internet Storage Name Service (iSNS)
[1]
External links
• iSNS for Linux
[2]
• iSNS in OpenSolaris
[3]
• iSNS support in Solaris 10
[4]
References
[1] http:/ / tools. ietf. org/html/ rfc4171
[2] http:/ / sourceforge.net/ projects/ linuxisns
[3] http:// hub. opensolaris. org/ bin/ view/ Project+isns/
[4] http:/ / docs. sun. com/ app/ docs/ doc/ 817-5093/ gdgst?l=en& a=view
InterPlaNet
246
InterPlaNet
ICANN meeting, Los Angeles, USA, 2007
InterPlaNet (IPN), not to be confused with InterPlanetary Network, is
a computer networking protocol designed to operate at interplanetary
distances, where traditional protocols such as the Internet Protocol
break down. It has been under development by Vint Cerf and NASA
since 1998 and a permanent network link to Mars was planned by
2008
[1]
until the Mars Telecommunications Orbiter was canceled in
2005. The protocol was expected to be space-qualified and ready for
use by around 2010.
[2]
References
[1] Turner, Adam (21 February 2007). "Inter-planetary Internet expands to Mars and beyond" (http:// www. itwire. com/ content/ view/ 9802/
1066/ ). itwire.com. . Retrieved 2007-02-22.
[2] "Internet preparing to go into outer space" (http:// afp. google.com/article/ALeqM5iAXBy5CRzd6F7TWMVxeGmCwcCZKw). AFP. Oct
17, 2007. . Retrieved 2007-10-27.
External links
• InterPlanetary Internet Special Interest Group (http:// www. ipnsig.org/home. htm)
• http:/ / nssdc. gsfc.nasa. gov/ nost/ nost/ wwwclassic/ documents/ pdf/ CCSDS-B10. 0-Y-17.pdf
InterStream Transit Protocol
• Protocol Helper: istp://
• Organization: InterStream Industry Association
The InterStream Transit Protocol (ISTP) is a secure protocol that allows Internet Service Providers (ISPs) to offer
high bandwidth multimedia services over their networks. The ISTP application is installed as a new protocol handler
into browsers. It includes components which enable Internet Service Providers to obtain incremental revenue from
subscribers, advertisers, other ISPs, and streaming video providers in exchange for using premium bandwidth
services on their networks.
ISTP uses the handle system
[1]
to index and reference rich media objects on the existing Web. Content is indexed
into the handle system by users with ISTP clients who access existing HTTP, RTP, or MMS content. Once the
content is indexed, it can be natively referenced by the handle system and streamed over the InterStream
[2]
Media
Grid infrastructure. Indexed rich media objects from the InterStream Media Grid are associated with individual
portals. Portals are designated by a "handle prefix", istp://prefix_name. The prefix_name designates a portal for
members of the InterStream association. By default, istp:// designates the "default" InterStream portal.
By linking ISTP content, Web Site owners and hosts may embed video from other providers. An overt goal of the
protocol has been to fix the pervasive copyright issues surrounding the distribution of video on the Internet. ISTP as
a new MIME subtype
[3]
and protocol handler enables web site owners to link to the video in the form in which the
content owner wishes it to be presented.
InterStream Transit Protocol
247
Transport Methods
• TCP-Mustang
Specifications
May be found at: http:/ / interstream.com/ PmWiKi/ pmwiki.php?n=Main. HomePage
this needs citation, no such protocol!
References
[1] http:/ / handle. net
[2] http:/ / interstream.com/
[3] http:/ / www.iana. org/assignments/ media-types/ video
Irsc
An IRSC, or International Roaming Signaling Converter, converts ANSI signaling protocol to ITU signaling
protocol.
ISO 11783
ISOBUS plug
ISO 11783 (or ISO Bus or ISOBUS) is a communication protocol
based on the SAE J1939 protocol (which includes CANbus) for the
agriculture industry. It is managed by the ISOBUS group in VDMA.
The ISOBUS standard specifies a serial data network for control and
communications on forestry or agricultural tractors and implements. It
consists of several parts: General standard for mobile data
communication, Physical layer, Data link layer, Network layer,
Network management, Virtual terminal, Implement messages
applications layer, Power train messages, Tractor ECU, Task controller
and management information system data interchange, Mobile data
element dictionary, Diagnostic, File Server. The work for further parts is ongoing.
External links
• Official VDMA page for ISOBUS
[1]
References
[1] http:/ / www.isobus. com/
JXTA
248
JXTA
JXTA
Developer(s) Open source (community developed)
Stable release 2.7 / March 2011
Operating system Cross-platform
Platform Java Platform, Standard Edition, Java Platform, Micro Edition, C/C++/Microsoft .NET
Type Peer-to-peer
License Based on the Apache License
Website http:/ / jxse. kenai. com/
JXTA (Juxtapose) is an open source peer-to-peer protocol specification begun by Sun Microsystems in 2001. The
JXTA protocols are defined as a set of XML messages which allow any device connected to a network to exchange
messages and collaborate independently of the underlying network topology.
As JXTA is based upon a set of open XML protocols, it can be implemented in any modern computer language.
Implementations are currently available for Java SE, C/C++, C# and Java ME. The C# Version uses the C++/C
native bindings and is not a complete re-implementation in its own right.
JXTA peers create a virtual overlay network which allows a peer to interact with other peers even when some of the
peers and resources are behind firewalls and NATs or use different network transports. In addition, each resource is
identified by a unique ID, a 160 bit SHA-1 URN in the Java binding, so that a peer can change its localization
address while keeping a constant identification number.
JXTA strongly resembles Tapestry.
Protocols in JXTA
• Peer Resolver Protocol
• Peer Information Protocol
• Rendezvous Protocol
• Peer Membership Protocol
• Pipe Binding Protocol
• Endpoint Routing Protocol
Categories of peers
JXTA defines two main categories of peers: edge peers and super-peers. The super-peers can be further divided into
rendezvous and relay peers. Each peer has a well defined role in the JXTA peer-to-peer model.
• The edge peers are usually defined as peers which have transient, low bandwidth network connectivity. They
usually reside on the border of the Internet, hidden behind corporate firewalls or accessing the network through
non-dedicated connections.
• A Rendezvous peer is a special purpose peer which is in charge of coordinating the peers in the JXTA network
and provides the necessary scope to message propagation. If the peers are located in different subnets then the
network should have at least one Rendezvous peer.
• A Relay peer allows the peers which are behind firewalls or NAT systems to take part in the JXTA network. This
is performed by using a protocol which can traverse the firewall, like HTTP, for example.
JXTA
249
Any peer in a JXTA network can be a rendezvous or relay as soon as they have the necessary credentials or
network/storage/memory/CPU requirements.
Advertisements
An Advertisement is an XML document which describes any resource in a P2P network (peers, groups, pipes,
services, etc.). The communication in JXTA can be thought as the exchange of one or more advertisements through
the network.
Pipes
Pipes are a virtual communication channel used by JXTA to exchange messages and data. Pipes are asynchronous,
unreliable, and unidirectional. There are basically three types of pipes:
• Unicast
• Unicast Secure
• Propagate
Peer groups
A peer group provides a scope for message propagation and a logical clustering of peers. In JXTA, every peer is a
member of a default group, NetPeerGroup, but a given peer can be member of many sub-groups at the same time. A
peer may play different roles in different groups; it may act as an edge peer in one group, but a rendezvous in
another.
Each group should have at least one rendezvous peer and it is not possible to send messages between two groups.
Rendezvous network
The Rendezvous peers have an optimized routing mechanism which allows an efficient propagation of messages
pushed by edge peers connected to them. This is achieved through the use of a loosely consistent network.
Each Rendezvous peer maintains a Rendezvous Peer View (RPV), a list of known rendezvous peers ordered by the
Peer ID. There is not any mechanism to enforce the consistency of all RPVs across the JXTA network, so a given
RPV can have a temporary or permanent inconsistent view of the other rendezvous peers. As soon as there is a low
churn rate, that is, a stable network where peers don't join or leave too frequently, the RPV list of each peer will
converge as each rendezvous peer exchange a random subset of its RPV with other rendezvous peers from time to
time.
When an edge peer publishes an Advertisement, the index of this advertisement is pushed to the rendezvous through
a system called Shared Resource Distributed Index (SRDI). After that, the rendezvous applies a Distributed Hash
Table (DHT) function so that it can forward the index to another peer in the RPV list. For replication purposes, it
will send this index to the neighbours of the chosen rendezvous peer in the RPV list.
The lookup process requires the use of the same DHT function to discover the rendezvous peer which is in charge of
storing that index. Once the rendezvous peer is reached it will forward the query to the edge peer which published
the advertisement and this peer will get in touch with the peer which issues the query.
If the DHT function cannot find a peer which is in charge of the advertisement then the query will be forwarded up
and down the RPV list until a match is found, the query is aborted, or it reaches the limits of the RPV list. This
process is called random walk.
JXTA
250
Applications
• BoxCloud
[1]
- a proprietary peer-to-peer Universal Content Sharing System
• OneDrum
[2]
- a collaborative platform for MS Office
• b2een
[3]
- a free peer-to-peer client used to exchange EDI messages by companies like Chevron, Areva or GE
Oil&Gas
• Collanos Workplace - a proprietary peer-to-peer team collaboration based on JXTA
• Sixearch
[4]
- a collaborative peer network application based on JXTA
External links
• Official web site
[5]
• Java implementation of JXTA
[6]
• french site
[7]
• Italian JXTA Developer Community
[8]
• freenode:jxta JXTA Developer IRC Channel
• Overview of JXTA
[9]
References
[1] http:/ / www.wiredreach.com/
[2] http:/ / onedrum.com/
[3] http:/ / b2een. com/
[4] http:/ / sixearch. org/
[5] http:/ / jxta. kenai. com/
[6] http:/ / jxse. kenai. com/
[7] http:/ / jxta. online. fr
[8] http:/ / www.jxta. it
[9] http:/ / www.developer.com/ java/ other/ article.php/ 10936_1450221_1
Kinetics Internet Protocol
251
Kinetics Internet Protocol
Kinetics Internet Protocol (KIP) is a network protocol for encapsulation and routing of AppleTalk data packets
over IP. It also controls the routing tables.
It is defined in RFC 1742.
Apple Computer adopted the usage of KIP and refer to it as MacIP.
Literature
• Sidhu, Andrews, Oppenheimer: Inside AppleTalk, 2nd, Addison-Wesley, 1999
• Apple Computer Inc.: Inside Macintosh: Networking, 2nd, Addison-Wesley, 1994, Chapter 1 - Introduction to
AppleTalk (online version
[1]
)
References
[1] http:/ / developer.apple. com/ techpubs/ mac/ Networking/Networking-15.html
Label Distribution Protocol
Label Distribution Protocol (LDP) is a protocol in which two Label Edge Routers (LER) exchange label mapping
information. The two LERs are called LDP peers and the exchange of information is bi-directional. LDP is used to
build and maintain LSP databases that are used to forward traffic through Multiprotocol Label Switching (MPLS)
networks.
LDP can be used to distribute the inner label (VC/VPN/service label) and outer label (path label) in MPLS. For inner
label distribution, targeted LDP (tLDP) is used. LDP and tLDP discovery runs on UDP port 646 and the session is
built on TCP port 646. During the discovery phase hello packets are sent on UDP port 646 to the 'all routers on this
subnet' group multicast address (224.0.0.2). However, tLDP unicasts the hello packets to the targeted neighbor's
address.
LDP
LDP session establishment
The Label Distribution Protocol (LDP) is a protocol defined by the
IETF (RFC 5036) for the purpose of distributing labels in an MPLS
environment. LDP relies on the underlying routing information
provided by an IGP in order to forward label packets. The router
forwarding information base, or FIB, is responsible for determining the
hop-by-hop path through the network. Unlike traffic engineered paths,
which use constraints and explicit routes to establish end-to-end Label
Switched Paths (LSPs), LDP is used only for signaling best-effort
LSPs.
Label Distribution Protocol
252
TLDP
Targeted LDP sessions are different because during the discovery phase hellos are unicast to the LDP peer rather
than using multicast. A consequence of this is that tLDP can be set up between non-directly connected peers whereas
non-targeted LDP peers must be on the same subnet. tLDP may still be used between connected peers if desired. On
a router running Timos when an SDP is configured, automatic ingress and egress labeling (targeted LDP) is enabled
by default and ingress and egress “service” labels are signaled over a TLDP connection. If signaling is turned off on
an SDP, ingress and egress “service” labels must be manually configured when the SDP is bound to a service.
RSVP-TE
This method determines a path through the network based on the interior gateway protocol's view of the network. If
no constraints are applied to the LSP then the routers simply send the request for a path to the active next hop for that
destination, without explicit routing. The IGP at each router is free to select active next hops based on the link state
database.
References
• RFC 5036
Lantastic
LANtastic is a peer-to-peer local area network (LAN) operating system for DOS, Microsoft Windows, Novell
NetWare and OS/2. LANtastic supports Ethernet, ARCNET and Token Ring adapters as well as its original
twisted-pair adapter at 2 Mbit/s.
Its multi-platform support allows a LANtastic client station to access any combination of Windows or DOS
operating systems, and its interconnectivity allows sharing of files, printers, CD-ROMs and applications throughout
an enterprise. LANtastic was especially popular before Windows 95 arrived with built-in networking and was nearly
as popular as the market leader at the time, Novell.
LANtastic was originally developed by Artisoft Inc. in Tucson, Arizona. Following the release of TeleVantage,
Lantastic and Artisoft's other legacy products were acquired by SpartaCom Technologies
[1]
in 2000. SpartaCom was
later acquired by PC Micro.
The current (2006) version is LANtastic 8.01. It can connect PCs running DOS 5.0 (or later) with Windows 3.x or
higher (including Windows XP).
Lantastic networks use NetBIOS
[2]
.
External links
• pcmicro.com - Official product website
[3]
References
[1] http:/ / www.spartacom. com/
[2] "Artisoft - Fundamentals of NetBIOS and LANtastic Networks" (http:// www. mcgrew.net/ Training/NPS/ nps-netbios. htm). . 090912
mcgrew.net
[3] http:/ / pcmicro.com/ lantastic/
Lightweight protocol
253
Lightweight protocol
A lightweight protocol in computer networking is any of a number of communication protocols that are
characterized by a relatively small overhead (caused e.g. by bulky metadata) in transmitted on top of the functional
data:
• Lightweight Directory Access Protocol
• Lightweight Telephony Protocol
• Lightweight Extensible Authentication Protocol
• Lightweight Presentation Protocol
• Internet Content Adaptation Protocol
• Skinny Call Control Protocol
• OpenLDAP
Line Printer Daemon protocol
The Line Printer Daemon protocol/Line Printer Remote protocol (or LPD, LPR) is a network protocol for
submitting print jobs to a remote printer. The original implementation of LPD was in the Berkeley printing system in
the BSD UNIX operating system; the LPRng project also supports that protocol. The Common Unix Printing System
(or CUPS), which is more common on modern Linux distributions, supports LPD as well as the Internet Printing
Protocol (IPP). Commercial solutions are available that also leverage Berkeley printing protocol components, where
more robust functionality and performance is necessary than is available from LPR/LPD (or CUPS) alone (such as
might be required in large corporate environments). The LPD Protocol Specification is documented in RFC 1179.
[1]
Usage
A server for the LPD protocol listens for requests on TCP port 515. A request begins with a byte containing the
request code, followed by the arguments to the request, and is terminated by an ASCII LF character.
An LPD printer is identified by the IP address of the server machine and the queue name on that machine. Many
different queue names may exist in one LPD server, with each queue having unique settings. Note that the LPD
queue name is case sensitive. Some modern implementations of LPD on network printers might ignore the case or
queue name altogether and send all jobs to the same printer. Others have the option to automatically create a new
queue when a print job with a new queue name is received. This helps to simplify the setup of the LPD server.
[2]
Some companies (e.g. D-Link in model DP-301P+) have a tradition of calling the queue name “lpt1” or “LPT1”.
A printer that supports LPD/LPR is sometimes referred to as a "TCP/IP printer" (TCP/IP is used to establish
connections between printers and clients on a network), although that term would be equally applicable to a printer
that supports the Internet Printing Protocol.
Line Printer Daemon protocol
254
References
[1] RFC1179 (http:/ / www. rfc-editor.org/ rfc/rfc1179.txt) Line Printer Daemon Protocol, August 1990, edited by L. McLaughlin III.
[2] Winet (http:/ / gpvno. co. za/ )'s InetLPD server documentation.
External links
• RPM Line Printer Daemon Software (http:// www.networkprinting.info/line-printer-daemon.html)
• SDI LPD from SDI (http:/ / sdisw. com/ LPD/)
• Line Printer Daemon / Requester Comparison (http:/ / www. brooksnet. com/ lpr-lpd-protocol.html)
• ddrLPD - LPD/LPR server from ddr.web.id (http:// ddr.web. id/ ddrLPD.html)
Link Layer Discovery Protocol
The Link Layer Discovery Protocol (LLDP) is a vendor-neutral Link Layer protocol in the Internet Protocol Suite
used by network devices for advertising their identity, capabilities, and neighbors on a IEEE 802 local area network,
principally wired Ethernet.
[1]
The protocol is formally referred to by the IEEE as Station and Media Access Control
Connectivity Discovery specified in standards document IEEE 802.1AB.
[2]
LLDP performs functions similar to several proprietary protocols, such as Cisco Discovery Protocol, Extreme
Discovery Protocol from Extreme Networks, Nortel Discovery Protocol (also known as SONMP), and Microsoft's
Link Layer Topology Discovery (LLTD).
Frame structure
LLDP information is sent by devices from each of their interfaces at a fixed interval, in the form of an Ethernet
frame. Each frame contains one Link Layer Discovery Protocol Data Unit (LLDPDU). Each LLDPDU is a sequence
of type-length-value (TLV) structures.
The Ethernet frame used in LLDP has its destination MAC address typically set to a special multicast address that
802.1D-compliant bridges do not forward
[3]
other multicast and unicast destination addresses are permitted. The
EtherType field is set to 0x88cc.
Each LLDP frame starts with the following mandatory TLVs: Chassis ID, Port ID, and Time-to-Live. The mandatory
TLVs are followed by any number of optional TLVs. The frame ends with a special TLV, named end of LLDPDU in
which both the type and length fields are 0.
Accordingly, an Ethernet frame containing an LLDPDU has the following structure:
LLDP Ethernet frame structure
Preamble
Destination MAC Source
MAC
Ethertype Chassis
ID TLV
Port ID
TLV
Time to
live TLV
Optional
TLVs
End of
LLDPDU
TLV
Frame
check
sequence
01:80:c2:00:00:0e,
01:80:c2:00:00:03 or
01:80:c2:00:00:00
Station's
address
0x88CC Type=1 Type=2 Type=3 Zero or more
complete
TLVs
Type=0,
Length=0
Each of the TLV components has the following basic structure:
Link Layer Discovery Protocol
255
TLV structure
Type Length Value
7 bits 9 bits 0-510 octets
Custom TLVs,
[4]
are supported via a TLV type 127. The value of a custom TLV starts with a 24-bit organizationally
unique identifier and a 1 byte organizationally specific subtype followed by data. The basic format for an
organizationally specific TLV is show below:
Organizationally specific TLV
Type Length Organizationally unique identifier
(OUI)
Organizationally defined
subtype
Organizationally defined information
string
7
bits—127
9 bits 24 bits 8 bits 0-507 octets
According to IEEE Std 802.1AB 9.6.1.3 "The Organizationally Unique Identifier shall contain the organization's
OUI as defined in IEEE Std 802-2001." Each organization is responsible for managing their subtypes.
Information gathered
Information gathered with LLDP is stored in the device as a management information database (MIB) and can be
queried with the Simple Network Management Protocol (SNMP) as specified in RFC 2922. The topology of an
LLDP-enabled network can be discovered by crawling the hosts and querying this database. Information that may be
retrieved include:
• System name and description
• Port name and description
• VLAN name
• IP management address
• System capabilities (switching, routing, etc.)
• MAC/PHY information
• MDI power
• Link aggregation
Media endpoint discovery extension
Media Endpoint Discovery is an enhancement of LLDP, known as LLDP-MED, that provides the following
facilities:
• Auto-discovery of LAN policies (such as VLAN, Layer 2 Priority and Differentiated services (Diffserv) settings)
enabling plug and play networking.
• Device location discovery to allow creation of location databases and, in the case of Voice over Internet Protocol
(VoIP), Enhanced 911 services.
• Extended and automated power management of Power over Ethernet (PoE) end points.
• Inventory management, allowing network administrators to track their network devices, and determine their
characteristics (manufacturer, software and hardware versions, serial or asset number).
The LLDP-MED protocol extension was formally approved and published as the standard ANSI/TIA-1057 by the
Telecommunications Industry Association (TIA) in April 2006.
[5]
Link Layer Discovery Protocol
256
Applications
The Link Layer Discovery Protocol may be used as a component in network management and monitoring
applications. One such example is its use in data center bridging requirements.
[6]
The Data Center Bridging Capabilities Exchange Protocol (DCBX) is a discovery and capability exchange protocol
that is used for conveying capabilities and configuration of the above features between neighbors to ensure
consistent configuration across the network.
[7]
Notes
[1] "802.1AB-REV - Station and Media Access Control Connectivity Discovery" (http:/ /www. ieee802. org/1/ pages/ 802.1AB-rev.html).
IEEE. . Retrieved 2009-10-17.
[2] "IEEE standard 802.1AB-2005" (http:// standards.ieee. org/getieee802/ download/ 802.1AB-2005.pdf). .
[3] IEEE 802.1AB-2009 suggests three such addresses, 01:80:c2:00:00:0e, 01:80:c2:00:00:03 and 01:80:c2:00:00:00.
[4] Termed Organizationally Specific TLVs by IEEE 802.1AB
[5] "ANSI/TIA-1057 standard" (http:// www. tiaonline. org/standards/ technology/ voip/ documents/ ANSI-TIA-1057_final_for_publication.
pdf) (PDF). .
[6] Data Center Bridging Task Group (http:// www. ieee802. org/1/ pages/ dcbridges. html)
[7] Intel, Cisco, Nuova Systems. "DCB Capabilities Exchange Protocol Specification, Rev 1.0" (http:/ / download.intel.com/ technology/ eedc/
dcb_cep_spec. pdf). Intel Corporation. .
References
External links
• IEEE 802.1AB (LLDP) Specification (http:// standards. ieee.org/getieee802/ download/ 802.1AB-2005.pdf)
• Tutorial on LLDP (http:/ / www. commsdesign. com/ design_corner/showArticle. jhtml?articleID=59200019)
• IEEE standard 802.1AB document history (http:/ / www. ieee802. org/ 1/ pages/ 802.1ab. html)
• The Wireshark Wiki LLDP Page (http:/ / wiki.wireshark.org/LinkLayerDiscoveryProtocol)
• OpenLLDP, Open Source LLDP Project (http:/ / openlldp. sourceforge.net)
• LLDPD, Open Source LLDP Project (https:/ / trac.luffy.cx/ lldpd/ )
• ladvd, Open Source LLDP Project (http:/ /blinkenlights.nl/ software/ladvd/ )
• Comparison of LLDP daemons (http:/ /www.kempgen. net/ voip/lldp-agents. html)
Link Layer Topology Discovery
257
Link Layer Topology Discovery
Link Layer Topology Discovery (LLTD) is a proprietary Link Layer protocol for network topology discovery and
quality of service diagnostics. Microsoft developed it as part of the Windows Rally set of technologies. The LLTD
protocol operates over both wired (such as Ethernet (IEEE 802.3) or Power line communication
[1]
) as well as
wireless networks (such as IEEE 802.11).
LLTD is included in Windows Vista and Windows 7. It is used by their Network Map feature to display a graphical
representation of the local area network (LAN) or wireless LAN (WLAN), to which the computer is connected.
Windows XP does not contain the LLTD protocol as a standard component and as a result, Windows XP computers
do not appear on the Network Map unless the LLTD responder is installed on Windows XP computers.
[2]
LLTD is
available for download for 32-bit editions of Windows XP with Service Pack 2 (as a publicly released update)
[3]
and
for Windows XP with Service Pack 3 (as a hotfix by request)
[4]
. LLTD Responder is not released for Windows XP
Professional x64 Edition.
Being a Link Layer (or OSI Layer 2) implementation, LLTD operates strictly on a given local network segment. It
cannot discover devices across routers, an operation which would require Internet Protocol level routing.
Link Layer Topology Discovery in Windows Vista consists of two components. The LLTD Mapper I/O component
is the master module which controls the discovery process and generates the Network Map. Appropriate permissions
for this may be configured with Group Policy settings. It can be allowed or disallowed for domains, and private and
public networks. The Mapper sends discovery command packets onto the local network segment via a raw network
interface socket. The second component of LLTD are the LLTD Responders which answer Mapper requests about
their host and possibly other discovered network information.
In addition to illustrating the layout of a network with representative icons for the hosts and interconnecting lines,
each device icon may be explored to produce a popup information box summarizing important network and host
parameters, such as MAC address and IP address (both IPv4 and IPv6). Icons are labeled with the hostnames (or first
component of their fully qualified domain names), or a representative name of the function of the device, e.g.,
"gateway". If the device has reported the presence of a management Web interface, clicking on the icon will open a
HTTP session to the host.
The LLTD responder for Windows XP only supports reporting of IPv4 addresses, but not IPv6.
A royalty free Linux sample implementation of the LLTD responder is available from Microsoft as part of the
Windows Rally Development Kit. Using LLTD specifications requires signing a Microsoft Windows Rally license
agreement.
[5]
There also exists a Perl implementation, using Net::Frame, available via CPAN
[6]
References
[1] Marcos, Jorge (9 May 2009). "Using Microsoft Windows LLTD with DS2 powerline networks" (http:// blog.ds2. es/ ds2blog/ 2009/ 05/
microsoft-windows-lltd-ds2-powerline. html). DS2 Blog. DS2 Corporation (www.ds2.es). . Retrieved 18 July 2010.
[2] "Network Map in Windows Vista does not display computers that are running Windows XP (Revision 7)" (http:// support.microsoft.com/
?kbid=922120). Microsoft Support. Microsoft Corporation. 1 July 2010. . Retrieved 18 July 2010.
[3] "Download details: Link Layer Topology Discovery (LLTD) Responder (KB922120)" (http:// www. microsoft.com/ downloads/ details.
aspx?displaylang=en&FamilyID=4f01a31d-ee46-481e-ba11-37f485fa34ea). Microsoft Download Center. Microsoft Corporation. 21
November 2006. . Retrieved 18 July 2010. "Supported Operating Systems: Windows XP with Service Pack 2"
[4] "Hotfix Request: 922120" (http:// support.microsoft. com/ hotfix/KBHotfix.aspx?kbnum=922120& kbln=en-us). Help and Support.
Microsoft Corporation. . Retrieved 21 August 2011.
[5] "Link Layer Topology Discovery Protocol Specification" (http:// www. microsoft.com/ whdc/ connect/ Rally/ LLTD-spec.mspx). Windows
Hardware Developer Central. Microsoft Corporation. 15 September 2006. . Retrieved 18 July 2010.
[6] "Patrice Auffret / Net-Frame-Layer-LLTD" (http:// search.cpan.org/ ~gomor/Net-Frame-Layer-LLTD/). CPAN (search.cpan.org). 15
March 2007. . Retrieved 18 July 2010.
Link Layer Topology Discovery
258
External links
• Download LLTD Responder for Windows XP (http:// www. microsoft. com/ downloads/ details.
aspx?displaylang=en& FamilyID=4f01a31d-ee46-481e-ba11-37f485fa34ea)
• Link Layer Topology Discovery Protocol Specification (http:// www. microsoft. com/ whdc/ connect/ Rally/
LLTD-spec. mspx) and license
• Windows Rally Development Kit (http:/ / www. microsoft.com/ whdc/ connect/ Rally/ rallykit.mspx)
• Download LLTD Responder for Windows XP SP3 (http:// x3webworx.wordpress. com/ 2008/ 08/ 19/
microsoft-makes-you-beg-i-hand-it-to-you-on-a-golden-platter-windowsxp-kb922120-v6-x86-enu-exe/)
Link-local Multicast Name Resolution
The Link Local Multicast Name Resolution (LLMNR) is a protocol based on the Domain Name System (DNS)
packet format that allows both IPv4 and IPv6 hosts to perform name resolution for hosts on the same local link. It is
included in Windows Vista, Windows Server 2008 and Windows 7.
[1]
Protocol details
In responding to queries, responders listen on UDP port 5355 on the following link-scope Multicast address:
• IPv4 - 224.0.0.252, MAC address of 01-00-5E-00-00-FC
• IPv6 - FF02:0:0:0:0:0:1:3 (this notation can be abbreviated as FF02::1:3)
The responders also listen on TCP port 5355 on the unicast address that the host uses to respond to queries.
Packet header structure
Bit offset 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 ID
16 QR Opcode C TC T Z Z Z Z RCODE
32 QDCOUNT
48 ANCOUNT
64 NSCOUNT
80 ARCOUNT
• ID - A 16-bit identifier assigned by the program that generates any kind of query.
• QR - Query/Response.
• OPCODE - A 4-bit field that specifies the kind of query in this message. This value is set by the originator of a
query and copied into the response. This specification defines the behavior of standard queries and responses
(opcode value of zero). Future specifications may define the use of other opcodes with LLMNR.
• C - Conflict.
• TC - TrunCation.
• T - Tentative.
• Z - Reserved for future use.
• RCODE - Response code.
• QDCOUNT - An unsigned 16-bit integer specifying the number of entries in the question section.
• ANCOUNT - An unsigned 16-bit integer specifying the number of resource records in the answer section.
Link-local Multicast Name Resolution
259
• NSCOUNT - An unsigned 16-bit integer specifying the number of name server resource records in the authority
records section.
• ARCOUNT - An unsigned 16-bit integer specifying the number of resource records in the additional records
section.
References
[1] LLMNR: The Cable Guy (http:// www. microsoft.com/ technet/ community/ columns/ cableguy/ cg1106.mspx)
External links
• TechNet Link-Local Multicast Name Resolution (http:// www.microsoft.com/ technet/ community/ columns/
cableguy/ cg1106. mspx)
• RFC 4795, Informational, Link-Local Multicast Name Resolution (LLMNR)
List of network protocol stacks
Computer networks may be implemented using a variety of protocol stack architectures, computer buses or
combinations of media and protocol layers, incorporating one or more of:
• ARCNET
• AppleTalk
• ATM
• Bluetooth
• DECnet
• Ethernet
• FDDI
• Frame relay
• HIPPI
• IEEE 1394 aka FireWire, iLink
• IEEE 802.11 aka Wireless LAN (Wi-Fi certification)
• IEEE-488
• Internet protocol suite
• IPX
• Myrinet
• OSI protocol suite
• QsNet
• RS-232
• SPX
• System Network Architecture
• Token ring
• USB
• X.25 protocol suite
For a list of more see Network protocols and the List of network protocols.
For standards see IEEE 802..
List of P2P protocols
260
List of P2P protocols
Protocols used by multiple programs
Note that the name of the protocol may also be the name of the primary or original program that uses it.
• Ares (Ares Galaxy, Warez P2P)
• Bittorrent (ABC [Yet Another BitTorrent Client], Azureus, BitComet, BitSpirit, BitTornado, BitTorrent.Net, G3
Torrent, mlMac, MLdonkey, QTorrent, Shareaza, µTorrent, etc.)
• Direct Connect (BCDC++, DC++, NeoModus Direct Connect, etc.)
• Fasttrack (Grokster, iMesh, Kazaa, Morpheus, etc.)
• eDonkey (eMule, Overnet, etc.)
• Gnutella (BearShare, iMesh, Gnotella, Gnucleus, GTK-gnutella, LimeWire, Mactella, Shareaza, etc.)
• MANOLITO/MP2PN (Blubster, Piolet, RocketItNet)
• OpenNAP (Napigator, WinMX)
Protocols used by only one program
• 100Bao
• Aimster
• Applejuice
• Freenet
• GnucleusLAN
• GoBoogy
• KuGoo
• OpenFT (giFT)
• MUTE
• Soribada
• Soulseek
• Xunlei
Programs not also listed as protocols
• BearShare: Gnutella
• Blubster: MP2PN
• Gnotella: Gnutella
• Gnucleus: Gnutella
• Grokster: Fasttrack
• GTK-gnutella: Gnutella
• iMesh: Gnutella, Fasttrack
• Kazaa: Fasttrack
• Limewire: Gnutella
• Mactella: Gnutella
• MXIE: Bittorrent, eDonkey, (?)
• Morpheus: Fasttrack
• Piolet: MP2PN
• RocketItNet: MP2PN
• Shareaza: Gnutella, eDonkey, Bittorrent, HTTP, FTP
• WinMX: OpenNAP, WPNP
List of P2P protocols
261
• Vagaa: eDonkey, Bittorrent, (?)
List of software using Digital Audio Access
Protocol
This is a list of software implementing the Digital Audio Access Protocol.
Name Client Server
Supports
7.0
[1]
Platform Licence
Amarok Yes Yes No Unix-like GNU General Public License (GNU GPL)
aTunes Yes No No Cross-platform: Java
Banshee
Yes
Yes
[2]
No
Unix-like MIT
daapd No Yes No Unix-like
DAAP Client
[9]
Yes No No
Android GNU GPL Version 3
Exaile
Yes
[2]
No No
Unix-like GNU GPL
Firefly Client
[3]
Yes No No
Cross-platform: Java GNU GPL
Firefly Media
Server
No Yes No
Cross-platform: Unix-like, Windows, Mac
OS X
GNU GPL
FreeNAS
[4]
No Yes No
Unix FreeBSD
Get It Together Yes Yes No Cross-platform: Java
iTunes
Yes Yes
Yes
[5]
Cross-platform: Mac OS X; Windows
2000, XP
Proprietary free of charge
LimeWire No Yes No Cross-platform: Java Nagware, and GNU GPL
OurTunes
Yes No
Yes
[6] Cross-platform: Java Open source
Rhythmbox Yes Yes No Unix-like GNU GPL
Roku
SoundBridge
[7]
Yes No
Yes
[8]
Hardware device, dedicated Hardware
Songbird
Yes
[2]
No No
Cross-platform: Unix-like, Windows, Mac
OS X
GNU GPL with restrictions, add-ons are
proprietary and "are licensed, not sold"
Spydaap
[9]
No Yes No
Unix-like GNU GPL
Tangerine No Yes No Cross-platform: Mono
TunesBrowser Yes No No Unix-like
WiFiTunes
[10]
Yes No No
Pocket PC 2003, 2003 SE, Windows
Mobile 5
XBMC
Yes No No
Cross-platform: Xbox, Windows, Mac OS
X 10.5 x86, Unix-like
GNU GPL
xmms2
Yes
[2]
No No
Unix-like GNU GPL
dmapd No Yes No Unix-like GNU GPL
List of software using Digital Audio Access Protocol
262
Notes
[1] There are two distinct implementations of the protocol. One is supported by iTunes versions prior to 7.0 and other by 7.0 and above. Clients
supporting the older version are unable to connect to iTunes 7.0 and above. see Digital Audio Access Protocol for details.
[2] Supported via a plug-in.
[3] http:/ / sourceforge.net/ projects/ fireflyclient/
[4] http:// www.freenas.org
[5] iTunes versions 7.0 and above only.
[6] Requires version >1.7.
[7] This is a hardware device with an embedded client.
[8] (http:/ / www. rokulabs. com/ support_sb_dwnld_update. php)
[9] https:/ / launchpad. net/ spydaap
[10] http:/ / www. aspecto-software.com/ rw/ applications/ wifitunes
Live distributed object
Definitions
An illustration of the basic concepts involved in the definition of a live distributed
object.
The term live distributed object (also
abbreviated as live object) refers to a
running instance of a distributed multi-party
(or peer-to-peer) protocol, viewed from the
object-oriented perspective, as an entity that
has a distinct identity, may encapsulate
internal state and threads of execution, and
that exhibits a well-defined externally
visible behavior. The key programming
language concepts, as applied to live
distributed objects, are defined as follows.
• Identity. The identity of a live distributed
object is determined by the same factors
that differentiate between instances of the
same distributed protocol. The object
consists of a group of software
components physically executing on some set of physical machines and engaged in mutual communication, each
executing the distributed protocol code with the same set of essential parameters, such as the name of a multicast
group, the identifier of a publish-subscribe topic, the identity of a membership service, etc. Thus, for example,
publish-subscribe channels and multicast groups are examples of live distributed objects: for each channel or
group, there exists a single instance of a distributed protocol running among all computers sending, forwarding, or
receiving the data published in the channel or multicast within the group. In this case, the object's identity is
determined by the identifier of the channel or group, qualified with the identity of the distributed system that
provides, controls, and manages the given channel or group. In the case of multicast, the identity of the system
might be determined, for example, by the address of the membership service (the entity that manages the
membership of the multicast group).
• Proxies (replicas). The proxy or a replica of a live object is one of the software component instances involved in
executing the live object's distributed protocol. The object can thus be alternatively defined as a group of proxies
engaged in communication, jointly maintaining some distributed state, and coordinating their operations. The
term proxy stresses the fact that a single software component does not in itself constitute an object; rather, it
Live distributed object
263
serves as a gateway through which an application can gain access to a certain functionality or behavior that spans
across a set of computers. In this sense, the concept of a live distributed object proxy generalizes the notion of a
RPC, RMI, or .NET remoting client-side proxy stub.
• Behavior. The behavior of a live distributed object is characterized by the set of possible patterns of external
interactions that its proxies can engage in with their local runtime environments. These interactions are modeled
as exchanges of explicit events (messages).
• State. The state of a live distributed object is defined as the sum of all internal, local states of its proxies. By
definition, it is distributed and replicated. The different replicas of the object's state may be strongly or only
weakly consistent, depending on the protocol semantics: an instance of a consensus protocol will have the state of
its replicas strongly consistent, whereas an instance of a leader election protocol will have a weakly consistent
state. In this sense, the term live distributed object generalizes the concept of a replicated object; the latter is a
specific type of live distributed object that uses a protocol such as Paxos, virtual synchrony, or state machine
replication to achieve strong consistency between the internal states of its replicas. The state of a live distributed
object should be understood as a dynamic notion: as a point (or consistent cut) in a stream of values, rather than as
a particular value located in a given place at a given time. For example, the externally visible state of a leader
election object would be defined as the identity of the currently elected leader. The identity is not stored at any
particular location; rather, it materializes as a stream of messages of the form elected(x) concurrently produced by
the proxies involved in executing this protocol, and concurrently consumed by instances of the application using
this protocol, on different machines distributed across the network.
• Interfaces (endpoints). The interface of a live distributed object is defined by the types of interfaces exposed by
its proxies; these may include event channels and various types of graphical user interfaces. Interfaces exposed by
the proxies are referred to as the live distributed object's endpoints. The term endpoint instance refers to a single
specific event channel or user interface exposed by a single specific proxy. To say that a live object exposes a
certain endpoint means that each of its proxies exposes an instance of this endpoint to its local environment, and
each of the endpoint instances carries events of the same types (or binds to the same type of a graphical display).
• References. The reference to a live object is a complete set of serialized, portable instructions for constructing its
proxy. To dereference a reference means to locally parse and follow these instructions on a particular computer,
to produce a running proxy of the live object. Defined this way, a live object reference plays the same role as a
Java reference, a C/C++ pointer, or a web service's WSDL description; it contains a complete information
sufficient to locate the given object and interact with it. Since live distributed objects may not reside in any
particular place (but rather span across a dynamically changing set of computers), the information contained in a
live distributed object's reference cannot be limited to just an address. If the object is identified by some sort of a
gobally unique identifier (as might be the case for publish-subscribe topics or multicast groups), the reference
must specify how this identifier is resolved, by recursively embedding a reference to the appropriate name
resolution object.
• Types. The type of a live distributed object determines the patterns of external interactions with the object; it is
determined by the types of endpoints and graphical user interfaces exposed by the object's proxies, and the
patterns of events that may occur at the endpoints. The constraints that the object's type places on event patterns
may span across the network. For example, type atomic multicast might specify that if an event of the form
deliver(x) is generated by one proxy, a similar event must be eventually generated by all non-faulty proxies
(proxies that run on computers that never crash, and that never cease to execute or are excluded from the protocol;
the precise definition might vary). Much as it is the case for types in Java-like languages, there might exist many
very different implementations of the same type. Thus, for example, behavior characteristic to atomic multicast
might be exhibited by instances of distributed protocols such as virtual synchrony or Paxos.
The semantics and behavior of live distributed objects can be characterized in terms of distributed data flows; the set
of messages or events that appear on the instances of a live object's endpoint forms a distributed data flow
[1]

[2]
.
Live distributed object
264
History
Early ideas underlying the concept of a live distributed object have been influenced by a rich body of research on
object-oriented environments, programming language embeddings, and protocol composition frameworks, dating
back at least to the actor model developed in the early 1970s; a comprehensive discussion of the relevant prior work
can be found in Krzysztof Ostrowski's Ph.D. dissertation
[3]
.
The term live distributed object was first used informally in a series of presentations given in the fall of 2006 at an
ICWS conference
[4]
, STC
[5]
conference
[6]
, and at the MSR labs in Redmond, WA
[7]
, and then formally defined
in 2007, in an IEEE Internet Computing article
[8]
. Originally, the term was used to refer to the types of dynamic,
interactive Web content that is not hosted on servers in data centers, but rather stored on the end-user's client
computers, and internally powered by instances of reliable multicast protocols. The word live expressed the fact that
the displayed information is dynamic, interactive, and represents current, fresh, live content that reflects recent
updates made by the users (as opposed to static, read-only, and archival content that has been pre-assembled). The
word distributed expressed the fact that the information is not hosted, stored at a server in a data center, but rather, it
is replicated among the end-user computers, and updated in a peer-to-peer fashion through a stream of multicast
messages that may be produced directly by the end-users consuming the content; a more comprehensive discussion
of the live object concept in the context of Web development can be found in Krzysztof Ostrowski
[9]
's Ph.D.
dissertation
[3]
.
The more general definition presented above has been first proposed in 2008, in a paper published at the ECOOP
conference
[10]
. The extension of the term has been motivated by the need to model live objects as compositions of
other objects; in this sense, the concept has been inspired by Smalltalk, which pioneered the uniform perspective that
everything is an object, and Jini, which pioneered the idea that services are objects. When applied to live distributed
objects, the perspective dictates that their constituent parts, which includes instances of distributed multi-party
protocols used internally to replicate state, should also be modeled as live distributed objects. The need for
uniformity implies that the definition of a live distributed object must unify concepts such as live Web content,
message streams, and instances of distributed multi-party protocols.
The first implementation of the live distributed object concept, as defined in the ECOOP paper
[10]
, was the Live
Distributed Objects
[11]
platform developed by Krzysztof Ostrowski
[9]
at Cornell University. The platform provided
a set of visual, drag and drop tools for composing hierarchical documents resembling web pages, and containing
XML-serialized live object references. Visual content such as chat windows, shared desktops, and various sorts of
mashups could be composed by dragging and dropping components representing user interfaces and protocol
instances onto a design form, and connecting them together. Since the moment of its creation, a number of extension
have been developed to embed live distributed objects in Microsoft Office documents
[12]
, and to support various
types of hosted content such as Google Maps
[13]
. As of March 2009, the platform is being actively developed by its
creators.
[14]

[15]

[16]

[17]

[18]

[19]

[20]

[21]
References
[1] Ostrowski, K., Birman, K., Dolev, D., and Sakoda, C. (2009). "Implementing Reliable Event Streams in Large Systems via Distributed Data
Flows and Recursive Delegation", 3rd ACM International Conference on Distributed Event-Based Systems (DEBS 2009), Nashville, TN,
USA, July 6–9, 2009, http:/ / www. cs. cornell.edu/ ~krzys/ krzys_debs2009.pdf
[2] Ostrowski, K., Birman, K., Dolev, D. (2009). "Programming Live Distributed Objects with Distributed Data Flows", Submitted to the
International Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2009), http:/ / www. cs. cornell.
edu/~krzys/ krzys_oopsla2009. pdf
[3] Ostrowski, K. (2008). "Live Distributed Objects", Ph.D. Dissertation, Cornell University, http:/ / hdl. handle.net/ 1813/ 10881.
[4] Ostrowski, K., and Birman, K., 'Extensible Web Services Architecture for Notification in Large-Scale Systems', IEEE International
Conference on Web Services (ICWS 2006), Chicago, IL, September 2006, http:/ / ieeexplore. ieee. org/xpls/ abs_all. jsp?arnumber=4032049.
[5] http:/ / www.cs. utsa. edu/ ~shxu/ stc06/
[6] Ostrowski, K., and Birman, K., 'Scalable Group Communication System for Scalable Trust', First ACM Workshop on Scalable Trusted
Computing (ACM STC 2006), Fairfax, VA, November 2006, http:/ / portal.acm. org/ citation.cfm?id=1179477.
Live distributed object
265
[7] Ostrowski, K., (2006). QuickSilver Scalable Multicast. Microsoft Research, Redmond, WA, November 2006. http:/ / www. researchchannel.
org/ prog/ displayevent. aspx?rID=7870& fID=2276.
[8] Ostrowski, K., Birman, K., and Dolev, D. (2007). "Live Distributed Objects: Enabling the Active Web", IEEE Internet Computing,
November–December 2007, 11(6):72-78, http:// ieeexplore. ieee. org/xpl/ freeabs_all. jsp?isnumber=4376216& arnumber=4376231.
[9] http:/ / www.cs. cornell. edu/ ~krzys
[10] Ostrowski, K., Birman, K., Dolev, D., and Ahnn, J. (2008). "Programming with Live Distributed Objects", Proceedings of the 22nd
European Conference on Object-Oriented Programming, Paphos, Cyprus, July 07 - 11, 2008, J. Vitek, Ed., Lecture Notes In Computer
Science, vol. 5142, Springer-Verlag, Berlin, Heidelberg, 463-489, http:/ / portal.acm.org/ citation. cfm?id=1428508.1428536.
[11] http:/ / liveobjects. cs. cornell.edu
[12] Ahnn, J., Birman, K., Ostrowski, K., and van Renesse, R. (2008). "Using live distributed objects for office automation", Proceedings of the
ACM/IFIP/USENIX Middleware '08 Conference Companion, Leuven, Belgium, December 01 - 05, 2008, Companion '08, ACM, New York,
NY, 30-35, http:// portal. acm. org/citation. cfm?id=1462735.1462743.
[13] http:/ / liveobjects. cs. cornell.edu/ community/ index. html
[14] Ostrowski, K., and Birman, K. (2009). "Storing and Accessing Live Mashup Content in the Cloud", 3rd ACM SIGOPS International
Workshop on Large Scale Distributed Systems and Middleware (LADIS 2009), Big Sky, MT, USA. October 11, 2009, http:/ / www.cs.
cornell. edu/ ~krzys/ krzys_ladis2009. pdf
[15] Akdogan, A., and Polepalli, S. (2008). "Live Maps", http:/ / liveobjects. cs. cornell.edu/ community/1/index. html
[16] Kashyap, R., and Nagarajappa, D. (2008). "Cornell Yahoo! Live Objects", http:// liveobjects.cs. cornell.edu/ community/ 2/ index.html
[17] Dong, X., and Zhang, Z. (2008). "Integrate Live Objects with Flickr Web Service", http:// liveobjects. cs. cornell.edu/ community/ 3/ index.
html
[18] Prateek, U. (2008). "Goole Earth Live Object", http:/ / liveobjects. cs. cornell.edu/ community/ 4/ index.html
[19] Gupta, S., and Vora, H. (2008). "ALGE (A Live Google Earth)", http:// liveobjects. cs. cornell.edu/ community/ 5/ index.html
[20] Mahajan, R., and Wakankar, S. (2008). "Distributed Google Earth", http:// liveobjects. cs. cornell. edu/ community/ 6/ index.html
[21] Wadhwa, A., Sankar, H., and Subramaniyan, S. (2008). "Live Google Earth UI", http:// liveobjects. cs. cornell.edu/ community/ 7/ index.
html
Local Area Transport
Local Area Transport (LAT) is a non-routable (Data Link Layer) networking technology developed by Digital
Equipment Corporation
[1]
to provide connection between the DECserver 90, 100, 200, 300, 700 and DECserver 900
terminal servers and Digital's VAX and Alpha host computers via Ethernet, giving communication between those
hosts and serial devices such as video terminals and printers. The protocol itself was designed in such a manner as to
maximize packet efficiency over Ethernet by bundling multiple characters from multiple ports into a single packet
for Ethernet transport (Mann, US 4823122
[2]
). Over time, other host implementations of the LAT protocol appeared
allowing communications to a wide range of Unix and other non-Digital operating systems using the LAT protocol.
History
In 1984, the first implementation of the LAT protocol connected a terminal server to a VMS VAX-Cluster in Spit
Brook Road, Nashua, NH. By "virtualizing" the terminal port at the host end, a very large number of plug-and-play
VT100-class terminals could connect to each host computer system. Additionally, a single physical terminal could
connect via multiple sessions to multiple hosts simultaneously. Future generations of terminal servers included both
LAT and TELNET protocols, one of the earliest protocols created to run on a burgeoning TCP/IP based Internet.
Additionally, the ability to create reverse direction pathways from users to non-traditional RS232 devices (i.e. UNIX
Host TTYS1 operator ports) created an entirely new market for Terminal Servers, now known as console servers in
the mid to late 1990s, year 2000 and beyond through today.
LAT and VMS drove the initial surge of adoption of "thick-wire" Ethernet by the computer industry. By 1986,
terminal server networks accounted for 10% of Digital's $10 billion revenue. These early Ethernet LANs scaled
using Ethernet bridges (another DEC invention) as well as DECnet routers. Subsequently, Cisco routers, which
implemented TCP-IP and DECnet, emerged as a global connection between these packet-based Ethernet LANs.
Local Area Transport
266
Early Terminal Server Vendors
• Digital Equipment Corporation - An early provider of Terminal Server products.
• Xyplex Corporation - An early provider of Terminal Server products based in Massachusetts.
• Hughes LAN Systems - Provided LAT capability in 1989.
[3]
• Cisco Systems - Provided LAT on Terminal Servers as early as 1990.
[4]
• Able Computer - An early provider of Terminal Server products.
• Emulex Corporation - An early provider of Terminal Server products based in California.
• Chase Research - An early provider of Terminal Server products based in Europe.
References
[1] Digital Equipment Corporation: VAX/VMS LAT control program reference manual, 1984.
[2] http:/ / v3. espacenet. com/ textdoc?DB=EPODOC& IDX=US4823122
[3] Breidenbach, Susan: "HLS unveils file servers, software", Network World 6.33 (1989): 21,24.
[4] "Cisco adds LAT support to TCP/IP terminal servers", Network World 7.15 (1990): 31.
Local Peer Discovery
The Local Peer Discovery protocol is an extension to the BitTorrent file-distribution system. It is designed to
support the discovery of local BitTorrent peers, aiming to minimize the traffic through the Internet Service Provider's
channel and maximize use of higher-bandwidth local networks.
Local Peer Discovery is implemented
[1]
with HTTP-like messages on User Datagram Protocol multicast group
239.192.152.143:6771 which is an administratively scoped multicast address. While it is implemented in several
clients (µTorrent
[2]
, BitTorrent/Mainline
[3]
, MonoTorrent
[4]
, libtorrent
[5]
and its derivatives, Transmission 2.0
[6]
)
and implementation is very simple, no formal specification had been created as of December, 2009 (although it was
supposed to be described in nonexistant BEP 14
[7]
by Harrison, Hazel). Alternative multicast protocol extension is
published as BEP 26
[8]
.
References
[1] "Protocol Design Discussion » Local Peer Discovery Documentation" (http:/ / forum.utorrent.com/ viewtopic.php?id=63567). 2009-10-30. .
Retrieved 2009-12-12.
[2] "Announcements » µTorrent 1.7 Release Candidate 6" (http:// forum.utorrent.com/ viewtopic. php?id=25655). 2007-06-28. . Retrieved
2009-12-12.
[3] "BitTorrent User Manual" (http:// www. bittorrent.com/ btusers/ guides/ bittorrent-user-manual/appendix-bittorrent-mainline-interface/
preferences/ bittorrent#Basic_BitTorrent_Features.Enable_Local_Peer_Discovery). . Retrieved 2009-12-12.
[4] "MonoTorrent 0.80" (http:// projects. qnetp. net/ news/ show/ 6). . Retrieved 2010-05-05.
[5] "libtorrent manual: features" (http:/ / www. rasterbar.com/ products/ libtorrent/features. html). . Retrieved 2009-12-12.
[6] "Changes : Transmission 2.00" (http:/ / trac.transmissionbt. com/ wiki/ Changes?version=57). 2010-06-15. . Retrieved 2010-06-23.
[7] http:/ / bittorrent.org/beps/ bep_0014. html
[8] http:// bittorrent.org/beps/ bep_0026. html
LocalTalk
267
LocalTalk
LocalTalk is a particular implementation of the physical layer of the AppleTalk networking system from Apple
Computer. LocalTalk specifies a system of shielded twisted pair cabling, plugged into self-terminating transceivers,
running at a rate of 230.4 kbit/s. CSMA/CA was implemented as a random multiple access method.
Farallon LocalTalk transceiver.
Networking was envisioned in the Macintosh during planning, so the
Mac was given expensive RS-422 capable serial ports. The ports were
driven by the Zilog SCC which could serve as either a standard UART
or handle the much more complicated HDLC protocol which was a
packet oriented protocol which incorporated addressing, bit-stuffing,
and packet checksumming in hardware. Coupled together with the
RS422 electrical connections, this provided a reasonably high-speed
data connection.
The 230.4 kbit/s bit rate is the highest in the series of standard serial bit
rates (110, 150, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200,
28800, 38400, 57600, 115200, 230400) derived from the 3.6864 MHz clock after the customary divide-by-16. This
clock frequency, 3.6864 MHz, was chosen (in part) to support the common asynchronous baud rates up to 38.4 kbit/s
using the SCC's internal baud-rate generator. When the SCC's internal PLL was used to lock to the clock embedded
in the LocalTalk serial data stream (using its FM0 encoding method) a divide-by-16 setting on the PLL yielded the
fastest rate available, namely 230.4 kbit/s.
There is a rumor that Steve Jobs was initially opposed to including any sort of networking on the Mac, and that the
RS-422 port and its associated software support was developed largely in secret.
Originally released as "AppleTalk Personal Network", LocalTalk used shielded twisted-pair cable with 3-pin
Mini-DIN connectors. Cables were daisy-chained from transceiver to transceiver. Each transceiver had two 3-pin
Mini-DIN ports, and a cable to connect to the Mac's DE-9 serial connector. Later, when the Mac Plus introduced the
8-pin Mini-DIN serial connector, transceivers were updated as well.
A variation of LocalTalk, called PhoneNet, was introduced by Farallon Computing. It used standard unshielded
side-by-side telephone wire with 6 position modular connectors (same as used in the popular RJ11 telephone
connectors) connected to a PhoneNet transceiver, instead of the expensive shielded twisted-pair cable. In addition to
being lower cost, PhoneNet-wired networks were more reliable due to the connections being more difficult to
accidentally disconnect. In addition, because it used the "outer" pair of the modular connector, it could travel on
many pre-existing phone cables and jacks where just the inner pair was in use for RJ11 telephone service. PhoneNet
was also able to use an office's existing phone wire, allowing for entire floors of computers to be easily networked.
Farallon introduced a 12 port hub which made constructing star topology networks of up to 48 devices as easy as
adding jacks at the workstations and some jumpers in the phone closet. These factors led to PhoneNet largely
supplanting LocalTalk wiring in low cost networking.
LocalTalk
268
The useful life of PhoneNet was extended with the introduction of LocalTalk switching technology by Tribe
Computer Works. Introduced in 1990, the Tribe LocalSwitch was a 16 port packet switch designed to speed up
overloaded PhoneNet networks.
The widespread availability of Ethernet-based networking in the early 1990s led to the swift disappearance of both
LocalTalk and PhoneNet. They remained in use for some time in low-cost applications and applications where
Ethernet was not available, but as Ethernet became universal on the PC most offices were installing it anyway. Early
models of Power Macintosh and the Macintosh Quadra supported 10BASE-T via the Apple Attachment Unit
Interface while still supporting LocalTalk-based networking. For older Macintosh computers that did not have
built-in Ethernet expansion options, a high speed SCSI-to-Ethernet adapter was available, and was particularly
popular on PowerBooks. This enabled all but the earliest Macintosh models to access a high speed Ethernet network.
With the release of the iMac in 1998 the traditional Mac serial port — and thus, the ability to use both LocalTalk and
PhoneNet — disappeared from new models of Macintosh. LocalTalk-to-Ethernet bridges were introduced to allow
legacy devices (especially printers) to function on newer networks. For very old Macintosh computers, LocalTalk
remains the only option.
Design legacy
The LocalTalk connector had the distinction of being the first to use Apple's unified AppleTalk Connector Family
design, created by Brad Bissell of Frogdesign using Rick Meadows' Apple Icon Family designs. LocalTalk
connectors were first released in January 1985 to connect the Laserwriter printer initially with the Macintosh family
of computers as an integral part of the newly announced Macintosh Office. However, well past the move to Ethernet,
the connector's design continued to be used on all of Apple's peripherals and cable connectors as well as influencing
the connectors used throughout the industry as a whole.
LocalTalk-to-Ethernet bridge
A LocalTalk-to-Ethernet Bridge is a network bridge that joins the physical layer of the AppleTalk networking used
by previous generations of Apple Computer products to an Ethernet network.
Some LocalTalk-to-Ethernet Bridges only performed Appletalk bridging. Others were also able to bridge other
protocols. For example: TCP/IP in the form of MacIP
Examples
Hardware devices:
• Asante: AsanteTalk
• Cayman Systems: GatorBox
• Compatible Systems: Ether Route/TCP, RISC Router 3000E
• Farallon: EtherPrint, EtherWave, StarRouter, EtherMac iPrint Adapter LT
• Kinetics: FastPath - in later years, available from Shiva Networks
• Sonic Systems: microPrint, microBridge TCP/IP
• Transware: EtherWay
• Tribe Computer Works: TribeStar
• Webster Computer Corporation: MultiGate, MultiPort/LT
Software in MacTCP era (<1995):
• Apple IP Gateway from Apple Computer
[1]
• SuperBridge/TCP from Sonic Systems
LocalTalk-to-Ethernet bridge
269
Software in Open Transport era (>1995):
• Internet Gateway from Vicomsoft
• IPNetRouter from Sustainable Softworks
• LocalTalk Bridge from Apple Computer
References
[1] Apple IP Gateway press release (http:// hyperarchive.lcs. mit. edu/ HyperArchive/Archive/info/ sft/ apple-ip-gateway.txt)
External links
• Oxford University resource regarding DDP-IP Gateways (http:// www. oucs. ox. ac. uk/ macintosh/ mactcp. xml.
ID=body. 1_div. 3)
• Apple Knowledge Base article on LocalTalk Bridge v2.1 (http:/ / docs.info.apple. com/ article.
html?artnum=17476)
• LocalTalk Bridge v2.1 download (Apple) (http:// docs. info.apple. com/ article. html?artnum=60290)
• LocalTalk Bridge v2.1 download (Versiontracker) (http:// www. versiontracker.com/ dyn/ moreinfo/macos/
353)
• Sustainable Softworks IPNetRouter (http:/ /www.sustworks. com/ site/ prod_ipr_overview.html)
• Webster MultiPort/LT guide (http:// www. webstercomputer.com/ products/ MLTGuide01. html)
• Asante AsanteTalk (http:/ / www. asante. com/ products/ CardsAdapters/ AsanteTalk. asp)
• Usenet post regarding successful use of the AsanteTalk bridge with an Apple IIgs (http:// groups. google.com/
group/comp. sys. apple2/ browse_frm/thread/ 1c748fa1032249be/
dc11d96f28872330?hl=en#dc11d96f28872330)
Lockstep protocol
The lockstep protocol is a partial solution to the look-ahead cheating problem in peer-to-peer architecture
multiplayer games, in which a cheating client delays his own actions to await the messages of other players.
[1]
A
client can do so by acting as if he is suffering from high latency; the outgoing packet is forged by attaching a time
stamp that is prior to the actual moment the packet is sent.
To avoid this method of cheating, the lockstep protocol requires each player to first announce a "commitment" (e.g.
hash value of the action); this commitment is a representation of an action that:
• Cannot be used to infer the action; and
• Easily compares whether an action corresponds with a commitment.
Once all players have received the commitments, they reveal their actions, which are compared with the
corresponding commitments to ensure that the commitment is indeed the sent action.
[2]
Lockstep protocol
270
Drawbacks
As all players must wait for all commitments to arrive before sending their actions, the game progresses as slowly as
the player with the highest latency. Although this may not be noticeable in a turn-based game, real-time online
games, such as first person shooters, require much faster reactions.
This can be acquired by placing a limit on the time in which a player can announce his action. If no action is sent
within this period, other players do not announce their actions to that player and ignore any action that arrives too
late.
Asynchronous lockstep protocol
To overcome the obvious drawback of the simple lockstep protocol, an asynchronous variant of the protocol exists
wherein players advance in time free of any negotiations with other players until interaction between players exists,
known as a "lockstep mode." This mode may be defined by a certain area around a player, such as a sphere, in which
the game world may be affected by the player.
Such an interaction can only occur when, for example, the areas of influence surrounding two players intersect.
References
[1] Algorithms and Networking for Computer Games, Jouni Smed and Harri Hakonen
[2] "Cheat-Proof Playout for Centralized and Distributed Online Games" (http:// prisms. cs.umass. edu/brian/pubs/ baughman.infocom01.
pdf), Baughman and Levine, 2001
LonTalk
LonTalk is a protocol optimized for control created by Echelon Corporation for networking devices over media such
as twisted pair, powerlines, fiber optics, and RF. It is popular for the automation of various functions in industrial
control, home automation, transportation, and buildings systems such as lighting and HVAC; see Intelligent
building.
LonWorks
LonTalk is part of the technology platform called LonWorks.
Protocol
LonTalk is defined by ANSI Standard ANSI/CEA 709.1. The LonTalk protocol has been ratified by standards
setting bodies in the following industries & regions:
• ANSI 709.1 - Control networking (US)
• EN 14908 - Building controls (EU)
• GB/Z 20177.1-2006 - Control networking and building controls (China)
• IEEE 1473-L - Train controls (US)
• SEMI E54 - Semiconductor manufacturing equipment sensors & actuators (US)
• IFSF - International forecourt standard for EU petrol stations
LonTalk
271
Recognition
Also recently, aspects of LonTalk have been recognized by international standardization bodies
[1]
:
• ISO/IEC 14908-1 - Communication protocol
• ISO/IEC 14908-2 - Twisted pair wire signaling technology
• ISO/IEC 14908-3 - Power line signaling technology
• ISO/IEC 14908-4 - IP compatibility (tunneling) technology
The protocol is only available from the official distribution organizations of each regional standards body or in the
form of microprocessors manufactured by companies that have ported the standard to their respective chip designs.
References
[1] "Echelon Announces ISO/IEC Standardization of LonWorks Control Networks" (http:// www. echelon. com/ company/ press/ 2008/
lonworksISO. htm). .
External links
• Echelon Corporation Homepage (http:// www.echelon. com/ )
• Global Engineering Documents (purchase the current EIA, non-ANSI, specification document for EIA/CEA
709.1 (http:/ / global.ihs. com/ doc_detail.cfm?item_s_key=00391891&item_key_date=971131& rid=CEA)
• Adept Systems (http:/ / www. adeptsystems. com/ )- wrote the C Reference Implementation of the LonTalk
protocol
Loose Source Routing
Loose Source Routing is an IP option which can be used for address translation. LSR is also used to implement
mobility in IP networks.
[1]
Loose source routing uses a source routing option in IP to record the set of routers a packet must visit. The
destination of the packet is replaced with the next router the packet must visit. By setting the forwarding agent (FA)
to one of the routers that the packet must visit, LSR is equivalent to tunneling. If the corresponding node stores the
LSR options and reverses it, it is equivalent to the functionality in mobile IPv6.
The name loose source routing comes from the fact that only part of the path is set in advance.
[2]
This is in contrast
with strict source routing, in which every step of the route is decided in advance when the packet is sent.
References
[1] "Network Layer Mobility:An Architecture and Survey" (http:// www. cs. cmu. edu/ ~15-821/CDROM/ PAPERS/ bhagwat96.pdf) (PDF). .
Retrieved 2007-12-03.
[2] "Source Routing" (http:/ / www. iss. net/ security_center/advice/ Underground/Hacking/ Methods/ Technical/Source_Routing/ default.
htm). . Retrieved 2008-02-10.
Lower layer protocol
272
Lower layer protocol
In computer networking, the term lower layer protocol refers to a more specific protocol when performing
encapsulation.
In discussions of the Internet Protocol Suite, lower layer protocols are usually considered to be protocols below the
IP level, i.e. the protocols in the Link Layer.
The term contrasts with upper layer protocol which refers to a more abstract protocol.
MambaNet
MambaNet is a protocol designed to have hardware controller controlling a virtual device (e.g. computer
applications/processes). The developers of MambaNet have seen that equipment developed with the last available
technologies become more and more complex to control. Often there is a lot of (virtual) functionality available. You
can access this functionality by a screen, keyboard and mouse. But some applications required dedicated and direct
control via hardware and/or (embedded) software from remote locations. This is for example a requirement in the
'live' audio industry (Radio/TV broadcasting studios), where a lot of audio-storage and processing takes place in
'computers' (e.g. virtual mixing/play out).
Because the protocol is very new its not yet widespread, but there is a high potential. Current implementations are
done by Broadcast Partners
[1]
and D&R
[2]
The functionality which is required, is not delivered by a single company. Often you can select a range of
products/brands. In practice this brings a question: 'How will all my equipment work together?'
The radio studio example shows that in the past, and also in current implementations, the pieces of audio equipment
are connected through remotes (also called GPIO). In fact, these are TTL or Relais inputs and outputs, where you
have a hardwired connection between products.
With the raising amount of functionality its complex make profit of all the functionality in your devices, using the
same 'control interface'. This is the point where MambaNet could be very interesting.
Definitions
• Node
A unique identified software process or PCB/hardware. For modularity its possible to have multiple nodes in a
physical device. The node can send and receive data with this object.
• Object
This represents an element that can be set or triggered by a user. To trigger an object (think of pushing a button), you
can implement a sensor part. To set an object (think of setting a LED/Display), you can implement an actuator part.
• Sensor
A sensor waits for a user action or timeout and sends its information to the network if desired.
• Actuator
A actuator receives information from the network, which may set a LED or fader etc.
• Engine
An engine is a special node type. This type of node is allowed to process sensor changes and to sent actuator
changes. In fact the engine is the part that gives manufacture specific functionality to a device. For example the radio
studio mixing console has one engine, the virtual mixing console. But is has multiple nodes that control the engine,
MambaNet
273
this can be the control surface or any software application.
Specifications
• Multi master
Most available control protocols (e.g. SNMP) are based on the client-server principle. For MambaNet it is important
that its works multi-master, so a controller at a 'button surface' can immediately contact its functional counterpart.
• Medium and Transport Layer independent
It is required to protocol can run from 8 bits micro controllers till advanced machines, which means that the physical
connections that have to run MambaNet can be different as well. Currently MambaNet is implemented over RS232,
CAN, Ethernet and TCP/IP.
• Object oriented design
To simplify to way of thinking, the protocol has an object oriented design. That means you are allowed to design
your own node with objects and share in a MambaNet network. Even there is a registration method for the objects,
which is required to implement in a node. With this information the protocol will be future proof and its easy use
MambaNet enabled products from other manufacturers (Without knowing the device).
• Open for all manufactures to use
The protocol is developed by D&R Electronica Weesp B.V.
[3]
they maintain a list of manufacture IDs (The protocol
allows 65534 manufactures to get their own ID). For local development one ID is left free, this means end-users can
also make their own MambaNet complaint software/hardware. (In the radio studio example this can be very
interesting for local and regional broadcast facilities). With the reservation of a Manufacture ID a range of
4294836225 Unique numbers is available for this single manufacturer.
• On a node you can have up to 64k custom objects. The limit is determined by the footprint in your
controller/application.
• Although to protocol is designed for tiny controllers its still possible to have relative large messages (for an
embedded system). You can send up to 98 bytes per single MambaNet message.
• Auto learning of nodes.
Each node contains a list of all available objects. This list gives a description and data type/ranges an object works
with. All this information makes it possible for engines to 'discover' a device and make use of its objects. Practical
this means the engines are future proof and can use equipment from manufacturers they even do not know about.
Data formats
There are some primitive data types that can be used in MambaNet:
• No data
A part of an object is not implemented (e.g. an LED only has an actuator part)
• Unsigned integer
Can be a position or speed.
• Signed integer
Think of a controller if an offset variable (e.g. an encoder)
• State
For example, to select a samplerate you can have 2 states: 44.1 kHz and 48 kHz
• Octet string
Is an array of bytes which can be used to set a text string on a display.
MambaNet
274
• Float
Makes it possible to set values in the float format (e.g. temperature or dB level).
• Bit string
Useful if you want to set several bits (e.g. status bits or LED bar).
• Object information
The datatype that contains all information to learn objects of a node.
• Error
This indicates an error occurred; the text string gives information in 'ASCII'.
Compatibility
MambaNet will run over various physical and transport layers. Currently we have focused on CAN and Ethernet.
• CAN
On the CAN network MambaNet can no coexist with other protocols, this because the addressing scheme makes
advanced use of the CAN identifiers.
• Ethernet
MambaNet over Ethernet will adapt the level 2 Ethernet standard (communication by MAC address). This means
MambaNet can run over standard Ethernet networks (e.g. your data network). It will be possible to run MambaNet in
parallel with any other Ethernet protocol that runs on Ethernet level 2. For example its no problem to run MambaNet
in combination with Audio over Ethernet protocols like CobraNet or a higher level protocol like LiveWire
[4]
(based
on RTSP) can be a good combination. Of course you always have to care there is enough bandwidth on your network
to do all tasks you require!
References
[1] Broadcast Partners (http:// www. broadcastpartners. nl)
[2] D&R Electronica Weesp B.V. (http:/ / www. d-r.nl)
[3] http:/ / www.d-r.nl
[4] Axia LiveWire (http:// www. axiaaudio. com/ components/ )
External links
• MambaNet (http:/ / www. mambanet. org)
• IEC 62379 (http:// www. iec62379. org)
• HiQnet (http:/ / hiqnet. harmanpro.com)
• ACN wiki (http:/ / openacn.wiki.sourceforge.net)
• CopperLAN (http:/ / www. copperlan.org)
• AES Network Audio Systems (http:/ / www. aes. org/technical/ nas/ )
Master/slave (technology)
275
Master/slave (technology)
Master/slave is a model of communication where one device or process has unidirectional control over one or more
other devices. In some systems a master is elected from a group of eligible devices, with the other devices acting in
the role of slaves.
[1]

[2]

[3]
Examples
• In database replication, the master database is regarded as the authoritative source, and the slave databases are
synchronized to it.
• Peripherals connected to a bus in a computer system.
• Railway locomotives operating in multiple (for example: to pull loads too heavy for a single locomotive) can be
referred to as a master/slave configuration - with the operation of all locomotives in the train slaved to the
controls of the first locomotive. See - Multiple-unit train control.
• Duplication is often done with several cassette tape or compact disc recorders linked together. Operating the
controls on the master triggers the same commands on the slaves, so that recording is done in parallel.
• In parallel ATA hard drive arrangements, the terms master and slave are used but neither drive has control over
the other. The terms also do not indicate precedence of one drive over the other in most situations. "Master" is
merely another term for device 0 and "slave" indicates device 1.
• On the Macintosh platform, Target Disk Mode allows a computer to operate as an external FireWire hard disk,
essentially a disk slave mode. Some older pre-FireWire Macintoshes had a similar controversial "SCSI Disk
Mode".
Controversy
Sometimes the terms master and slave are deemed offensive.
On November 2003, the County of Los Angeles sent an e-mail to its suppliers asking them not to use these terms:
[4]
[5]

[6]
Subject: IDENTIFICATION OF EQUIPMENT SOLD TO LA COUNTY
Date: Tue, 18 Nov 2003 14:21:16 -0800
From: "Los Angeles County"
The County of Los Angeles actively promotes and is committed to ensure a work environment that is
free from any discriminatory influence be it actual or perceived. As such, it is the County's expectation
that our manufacturers, suppliers and contractors make a concentrated effort to ensure that any
equipment, supplies or services that are provided to County departments do not possess or portray an
image that may be construed as offensive or defamatory in nature.
One such recent example included the manufacturer's labeling of equipment where the words
"Master/Slave" appeared to identify the primary and secondary sources. Based on the cultural diversity
and sensitivity of Los Angeles County, this is not an acceptable identification label.
We would request that each manufacturer, supplier and contractor review, identify and remove/change
any identification or labeling of equipment or components thereof that could be interpreted as
discriminatory or offensive in nature before such equipment is sold or otherwise provided to any County
department.
Thank you in advance for your cooperation and assistance.
Joe Sandoval, Division Manager
Purchasing and Contract Services
Master/slave (technology)
276
Internal Services Department
County of Los Angeles
Many in the Information Technology field rebuff this claim of discrimination and offence as ridiculous, noting that
the master/slave terminology accurately reflects what is going on inside the device and that this was not intended in
any way to be a reference to slavery as it existed in the United States. (See also political correctness.)
There were rumors of a major push to change the way hardware manufacturers refer to these devices . It has not had
much effect on most of the products being produced. The designation of hard drives as master/slave may decline in a
few years, with SATA replacing older IDE (PATA) drives. This standard allows only one drive per connection, and
does not require the use of master/slave terms.
References
[1] master/slave - a searchNetworking definition (http:// searchnetworking.techtarget.com/ sDefinition/ 0,,sid7_gci783492,00. html)
[2] Description of the Microsoft Computer Browser Service from Microsoft KnowledgeBase (http:/ / support.microsoft. com/ kb/ 188001)
[3] Information on Browser Operation from Microsoft KnowledgeBase (http:/ /support. microsoft. com/ default.aspx?scid=KB;en-us;102878)
[4] Urban Legends Reference Pages: Inboxer Rebellion (Master/Slave) from www.snopes.com (http:/ / www. snopes. com/ inboxer/outrage/
master. asp)
[5] L.A. County Bans Use Of "Master/Slave" Term from Slashdot (http:// slashdot. org/ article.pl?sid=03/ 11/ 25/ 0014257& mode=thread&
tid=103&tid=133&tid=186& tid=99)
[6] 'Master' and 'slave' computer labels unacceptable, officials say (http:/ / www.cnn. com/ 2003/ TECH/ptech/ 11/ 26/ master. term.reut/ index.
html) (Wednesday, November 26, 2003, CNN)
Media Object Server
Media Object Server (MOS) is an XML-based protocol for transferring information between newsroom automation
systems and other associated systems such as media servers.
The MOS protocol allows a variety of devices to be controlled from one central device or piece of software. This
limits the need to have operators in multiple locations throughout the studio environment. For example, multiple
character generators can be fired from a single control workstation, without needing an operator at each CG console.
External references
• http:/ / www. mosprotocol.com/
• http:/ / www. codeproject.com/ KB/ cs/ mosprotocol. aspx by Rizwan Qureshi
Media Stream Broadcast
277
Media Stream Broadcast
The Media Stream Broadcast (MSB) protocol allows the multicast distribution of Advanced Systems Format
(ASF) content over a network for which multicasting is enabled. MSB allows clients to "tune in" to a broadcast on a
network, much like television and radio users can tune to a particular station. Windows Media Station (*.nsc) file is
used for the session description.
External links
• Media Stream Broadcast Protocol specification
[1]
• Firewall Information for Windows Media Services 9 Series
[2]
References
[1] http:/ / msdn.microsoft.com/ en-us/ library/cc236181(PROT.10).aspx
[2] http:// www.microsoft.com/ windows/ windowsmedia/ forpros/serve/ firewall.aspx#Multicast
Medium dependent interface
Hub with four MDIX ports and one switachable
port circa 1998
Straight-through MDI to MDI-X connection for 10BASE-T
A medium dependent interface (MDI) port
or an uplink port is an Ethernet port connection
typically used on the Network interface
controller (NIC) or integrated NIC port on a
computer. Since inputs on a NIC must go to
outputs on the switch or hub these latter
devices have their inputs and outputs (transmit
and receive signals) reversed in a configuration
known as medium dependent interface
crossover (MDIX or MDI-X). Some network
hubs or switches have an MDI port (often
switchable) in order to connect to other hubs or
switches without an Ethernet crossover cable,
but with a straight-through cable.
Auto-MDIX ports on newer network
interfaces detect if the connection would
require a crossover, and automatically chooses
the MDI or MDIX configuration to properly
match the other end of the link.
Medium dependent interface
278
MDI vs. MDIX
The terminology generally refers to variants of the Ethernet over twisted pair technology that use a female 8P8C port
connection on a computer, or other network device.
The X refers to the fact that transmit wires on an MDI device must be connected to receive wires on an MDIX
device. Straight through cables connect pins 1 and 2 (transmit) on an MDI device to pins 1 and 2 (receive) on an
MDIX device. Similarly pins 3 and 6 are receive on an MDI device and transmit on an MDIX device. The general
convention was for network hubs and switches to use the MDIX configuration, while all other nodes such as
personal computers, workstations, servers and routers used an MDI interface. Some routers and other devices had an
uplink/normal switch to go back and forth between MDI and MDIX on a specific port.
[1]
Auto-MDIX
MDI to MDI connection with Ethernet crossover cable
To connect two ports of the same configuration
(MDI to MDI or MDIX to MDIX), an ethernet
crossover cable was needed to cross over the
transmit and receive signals in the cable, so
that they are matched at the connector level.
The confusion of needing two different kinds
of cables for anything but hierarchical star
network topologies prompted a more automatic
solution.
Auto-MDIX automatically detects the required
cable connection type and configures the connection appropriately, removing the need for crossover cables to
interconnect switches or connecting PCs peer-to-peer. As long as it is enabled on either end of a link, either type of
cable can be used. For auto-MDIX to operate correctly, the data rate on the interface and duplex setting must be set
to "auto". Auto-MDIX was developed by Hewlett-Packard engineers Daniel Joseph Dove and Bruce W. Melvin.
[2]
A
pseudo-random number generator decides whether or not a network port will attach its transmitter, or its receiver to
each of the twisted pairs used to auto-negotiate the link.
[3]

[4]
When 2 auto-MDIX ports are connected together, which is normal for modern products, the algorithm resolution
time is typically < 500 ms. However, a ~1.4 second asynchronous timer is used to resolve the extremely rare case
(with a probability of less than 1 in 10
21
) of a loop where each end keeps switching.
[5]
Subsequently, Dove promoted auto-MDIX within the 1000BASE-T standard
[5]
and also develop patented algorithms
for "forced mode auto-MDIX" which allows a link to be automatically established even if the port does not
auto-negotiate.
[6]
Newer routers, hubs and switches (including some 10/100, and all 1 Gigabit or 10 Gigabit devices
in practice) use auto MDIX to automatically switch to the proper configuration once a cable is connected. The other
four wires are used but are not crossed since auto-MDIX is mandatory at the higher data rates.
Medium dependent interface
279
References
[1] Netgear Model EN104tp EN106tp EN108tp Ethernet Hub Installation Guide (ftp:/ / downloads. netgear.com/ files/ en104tp106108ints. pdf).
Bay Networks. August 3, 1998. p. 5. . Retrieved June 18, 2011.
[2] "HP Auto-MDIX technology" (http:/ / www. hp. com/ hpinfo/ abouthp/ iplicensing/ automdix.html). Hewlett-Packard web site. . Retrieved
June 17, 2011.
[3] Daniel J. Dove and Bruce W. Melvin. "Apparatus for automatically configuring network media connections" (http:// www. google.com/
patents?id=WhMGAAAAEBA). . US Patent 6,175,865 filed November 12, 1989 and issued January 16, 2001.
[4] Daniel J. Dove and Bruce W. Melvin. "Apparatus for automatically configuring media connectors of a node interface" (http:// www. google.
com/ patents?id=_pcLAAAAEBAJ). . US Patent 6,460,078 filed October 18, 2000 and issued October 1, 2002.
[5] Daniel Dove (February 1998). 802.3 "1000BASE-T Automatic Crossover Algorithm" (http:// www. ieee802.org/3/ ab/ public/ feb98/
ddmdix1. pdf). Presentation to IEEE 802.3ab working group. 802.3. Retrieved June 17, 2011.
[6] Daniel Joseph Dove. "Apparatus & method for automatically switching media connections when operating in forced speed and duplex mode"
(http:// www. google. com/ patents?id=g-qqAAAAEBAJ). . US Patent 7,366,771 filed March 12, 2002 and issued April 29, 2008.
External links
• MDI/MDIX Auto Cross (http:/ / www. transition.com/ pshelp/ cross. html)
• "Apple products that require and Ethernet cable" (http://support. apple.com/ kb/HT2274/). Apple support web
site. October 22, 2008. Retrieved June 17, 2011.
• Diagram of non-automatic connections between MDI and MDIX devices (http:/ / encyclopedia2.
thefreedictionary.com/ MDI+ port)
Messaging pattern
In software architecture, a messaging pattern is a network-oriented architectural pattern which describes how two
different parts of a message passing system connect and communicate with each other.
In telecommunications, a message exchange pattern (MEP) describes the pattern of messages required by a
communications protocol to establish or use a communication channel. There are two major message exchange
patterns — a request-response pattern, and a one-way pattern. For example, the TCP is a request-response pattern
protocol, and the UDP has a one-way pattern.
SOAP
The term "Message Exchange Pattern" has a specific meaning within the SOAP protocol.
[1]

[2]
SOAP MEP types
include:
1. In-Only: This is equivalent to one-way. A standard one-way messaging exchange where the consumer sends a
message to the provider that provides only a status response.
2. Robust In-Only: This pattern is for reliable one-way message exchanges. The consumer initiates with a message
to which the provider responds with status. If the response is a status, the exchange is complete, but if the
response is a fault, the consumer must respond with a status.
3. In-Out: This is equivalent to request-response. A standard two-way message exchange where the consumer
initiates with a message, the provider responds with a message or fault and the consumer responds with a status.
4. In Optional-Out: A standard two-way message exchange where the provider's response is optional.
5. Out-Only
6. Robust Out-Only
7. Out-In
8. Out-Optional-In
Messaging pattern
280
ØMQ
The ØMQ message queueing library provides a so-called sockets (a kind of generalization over the traditional IP and
Unix sockets) which require to indicate a messaging pattern to be used, and are particularly optimized for that kind
of patterns. The basic ØMQ patterns are:
[3]
• Request-reply connects a set of clients to a set of services. This is a remote procedure call and task distribution
pattern.
• Publish-subscribe connects a set of publishers to a set of subscribers. This is a data distribution pattern.
• Push-pull connects nodes in a fan-out / fan-in pattern that can have multiple steps, and loops. This is a parallel
task distribution and collection pattern.
• Exclusive pair connects two sockets in an exclusive pair. This is a low-level pattern for specific, advanced use
cases.
Each pattern defines a particular network topology. Request-reply defines so-called "service bus", publish-subscribe
defines "data distribution tree", push-pull defines "parallelised pipeline". All the patterns are deliberately designed in
such a way as to be infinitely scalable and thus usable on Internet scale.
[4]
References
[1] http:/ / www.w3. org/TR/ soap12-part1/ #soapmep SOAP MEPs in SOAP W3C Recommendation v1.2
[2] Web Services Description Language (WSDL) Version 2.0: Additional MEPs (http:/ / www. w3.org/TR/ wsdl20-additional-meps/ )
[3] ØMQ User Guide (http:/ / www. zeromq.org/ docs:user-guide)
[4] Scalability Layer Hits the Internet Stack (http:// www. 250bpm.com/ hits)
External links
• Messaging Patterns in Service-Oriented Architecture (http:// msdn. microsoft.com/ en-us/ library/aa480027.
aspx)
• Enterprise Integration Patterns - Pattern Catalog (http:// www. eaipatterns. com/ toc. html)
Microcom Networking Protocol
281
Microcom Networking Protocol
The MNP (Microcom Networking Protocol) family of error-correcting protocols were commonly used on early
high-speed (2400 bit/s and higher) modems. Originally developed for use on Microcom's own family of modems, the
protocol was later openly licensed and used by most of the modem industry, notably the "big three", Telebit,
USRobotics and Hayes. MNP was later supplanted by v.42bis, which was used almost universally on the first v.32bis
modems in the early 1990s.
Error correction basics
Modems are, by their nature, error-prone devices. Noise on the telephone line, a common occurrence, can easily
mimic the sounds used by the modems to transmit data, thereby introducing errors that are difficult to notice. For
some tasks, like reading or writing simple text, a small numbers of errors can be accepted without causing too many
problems. For other tasks, like file transfers, even one error can "destroy" the entire file. As modems increase in
speed by using up more of the available bandwidth, the chance that random noise would introduce errors also
increases; above 2400 bit/s these errors are quite common.
MNP supports its own form of error control called Echoplex.
[1]
To deal with this problem, a number of file transfer protocols were introduced and implemented in various programs.
In general, these protocols break down a file into a series of packets containing a number of bytes from the original
file. Some sort of additional data, normally a checksum or CRC, is added to each packet to indicate what it originally
contained. The packet is then sent to the remote system, which pulls the data out and checks it against the CRC to
see if it was received properly. If it was, the receiver sends back an ACK (acknowledgement) message, signaling the
sender to send the next packet. If there was any problem, it instead sends a NAK (not-acknowledged) message, and
the sender re-sends the damaged packet.
This process introduces "overhead" into the transfer. For one, the additional checksum or CRC uses up time in the
channel that could otherwise be used to send additional data. This is a minor concern, however, unless the packets
are very small (which they are in UUCP for instance). A more serious concern is the time needed for the receiver to
examine the packet, compare it to the CRC, and then send the ACK back to the sender. This delay grows in relative
terms as the speed of the modem increases; the latency of the phone line is a constant, but the amount of data that
could be sent in that time grows as the speed increases. To address this problem, newer protocols use a system
known as "sliding windows", allowing the sender to move onto the next packet without receiving an ACK message;
only if the ACK does not arrive for some time will it re-send the damaged packet.
MNP "classes"
Microcom's idea was to move the file-transfer protocol out of the host computer and place it in the modem instead.
In doing so, all data being transferred would be error corrected, not just file transfers. This also meant that devices
with no processor, like dumb terminals, could enjoy an error-free link. After connection to the remote modem,
Microcom modems played a special tone into the line and listened for a response; if a proper tone was received in
reply, the modems entered their error-correcting state.
The original protocol was extremely simple and rather inefficient, leading to a variety of improved protocols referred
to as "classes". Each class generally improved performance over earlier versions, which were retained only for
backward-compatibility reasons.
Microcom Networking Protocol
282
MNP 1 and 2
The first MNP standard, retroactively known as MNP Class 1, or simply MNP 1, was a simple half-duplex protocol
similar to XModem in nature. Lacking sliding window support, throughput efficiency was fairly low, at about 70%.
That meant that on a 2400 bit/s modem, like the ones Microcom sold, throughput would be limited to about 1690
bit/s when MNP 1 was in use. This system was created primarily to be as easy as possible to implement in limited
hardware, which explains its simplicity.
With low-cost processing power improving, Microcom introduced MNP 2, a full-duplex version of MNP 1 that
allowed the ACK messages to be returned while the next outbound packet was already starting. This eliminated the
pause while the modem waited for the ACK to be returned, adding the requirement that the system needed some
memory to track whether or not an ACK was received within a given amount of time. Since the inter-packet delay
was reduced, only the overhead of the CRC remained, improving throughput to about 84%.
[2]
MNP 3
In normal use, a modem can send or receive data at any point in time, a mode of operation known as "asynchronous".
The modem can determine the speed of the sender's data by listening to the bits being sent to it, and "locking" its
clock to the speed of bits being received. Since the data can arrive at any time, there is no precise timing; the clock
may have to be re-adjusted for pauses as the user stops typing (for instance).
Unfortunately this sort of clock decoding does not work unless there are at least some transitions between 1 and 0 in
the data; a long stream of 0s or 1s has no transitions in it, making it impossible to know where the data for any
particular byte starts. In order to avoid this problem, additional framing bits are added to either end of every byte,
typically one bit on either side known as the "start and stop bits". This guarantees at least one 1-to-0 transition for
every byte, more than enough to keep the clocks locked. However, these bits also expand every 8 bits of data (one
byte) to 10 bits, an overhead of 20%.
When using a file transfer protocol, the packets themselves offer their own framing. The packets will always send a
continuous stream of data, so the clock cannot "drift" in the same way that it could for data being sent by a user
typing on a keyboard. By turning off these framing bits when operating on an error-corrected link, that 20%
overhead can be eliminated.
This is precisely what MNP 3 did. After negotiating and realizing that both modems supported MNP 3, the framing
bits were turned off, improving overall efficiency – that is, when using MNP 3, a user can expect to get very close to
the ideal 2400 bit/s throughput (versus 1900 bit/s) by eliminating the overhead.
MNP 4
MNP 4 was a further improvement on MNP 3, adding a variable packet size system they referred to as Adaptive
Packet Assembly. With MNP 4 operation the two modems constantly monitor the line for dropped packets, and if a
certain threshold is crossed (selected by the user), the modem "drops back" to a smaller packet size. This means that
when a packet is dropped, the amount of data that has to be re-sent is smaller, leading to better throughput. On
"clean" lines, using larger packets means that the overhead of the CRC is reduced, as the CRC remains a fixed size.
Packets could be between 64 and 256 bytes, and allowed the user to force it to a particular size if they wished.
MNP 4 also introduced Data Phase Optimization, a simple change to the protocol that allowed some of the
packet-framing information to be dropped after the link was set up, further reducing protocol overhead. The
combination of these features, along with MNP 3's lack of byte-framing, allowed for a further increase in throughput
efficiency.
Microcom Networking Protocol
283
MNP 5
An even more radical change was made for MNP 5, introducing on-the-fly data compression in the modem. With
MNP 5, the data received from the computer are first compressed with a simple algorithm, and then passed into the
MNP 4 packetizing system for transmission. On best-case data the system offered about 2:1 compression, but in
general terms about 1.6:1 was typical, at least on text. As a result a 2400 bit/s modem would appear to transfer text at
~4000 bit/s, even though the modem was still running at the same 600 baud * 4 bits per symbol rate.
This dramatic increase in throughput allowed Microcom modems to remain somewhat competitive with models from
other companies that were otherwise nominally much faster. For instance, Microcom generally produced 1200 and
2400 bit/s modems using commodity parts, while companies like USRobotics and Telebit offered models with
speeds up to 19200 bit/s.
However, this improvement in performance was only available if modems on both ends supported MNP. That made
the system only really attractive for sites installing the modems at both ends of the links; for dial-up services like
bulletin board systems (BBS) there was no compelling reason to use a Microcom device when the end-user was
unlikely to have one. Even in the cases where the user was in control of both ends of the link, Microcom's
"proprietary" modems were less interesting that models from other companies that offered much higher "real world"
throughputs.
In order to create a market for Microcom modems, starting with MNP 5 they took the radical step of licensing the
entire MNP suite for free. The idea was that this would dramatically increase the number of modems with MNP
installed, making "real" Microcom modems more attractive. Moreover, newer standards with improved performance
would offer even better performance when there was a Microcom modem at both ends of the link.
Unfortunately the plan backfired. The introduction of the greatly improved LAPM compression system in the v.42bis
standard outpaced Microcom's own advancements, diluting the value of a "real" Microcom model almost to zero.
Using v.42bis and commodity parts, a huge number of low-cost modems with even better performance that
Microcom's were soon available. Although Microcom continued to introduce newer standards, they were basically
ignored and Microcom basically disappeared, although thanks to licensing to Rockwell Semiconductor, MNP 10
support become universal, if not used.
MNP 6
The introduction of the v.32 led to a number of standard 9600 bit/s modems, almost all of which offered MNP 5. To
further differentiate themselves from what was becoming a commodity market (although not truly so until the
introduction of the v.32bis SupraFax 14400 in 1991), Microcom created MNP 6.
MNP 6's main feature was Statistical Duplexing, which could dedicate more or less of the bandwidth to one side or
the other of the modem link. For instance, if one machine was sending a large file, the other end would only send
back a small amount of information, the ACK and NAK messages. In this case the modems would give as much of
the channel as possible to the sender, offering one-way bandwidth up to 19,200 bit/s. This did not actually require
any changes to the modulation system: normally a 9600 bit/s modem had a full 9600 bit/s channel in both directions,
for a total of 19200 bit/s; MNP 6 simply allowed more or less of that bandwidth to be given to one side or the other,
instead of leaving it fixed at 9600 both ways. A similar system was used in Hayes's Express 96 protocol.
A less notable addition to MNP 6 was Universal Link Negotiation. With the introduction of additional modulation
modes, notably v.32 and later additions, the modems on either end of the link had to spend an increasing amount of
time negotiating a common standard. For instance, a v.32bis modem would first send tones into the line to try to get
a 14.4 link; if that failed after a time, it would try 9600, 2400 and finally 1200 bit/s. Since each of these standards
defined a minimum period of time to "try" for a link, the delay grew over 10 seconds.
ULN avoided this delay by always negotiating the link at 2400 bit/s with no error-correction turned on. Although this
eliminated compatibility with older 1200 bit/s modems, by this point in time they were extremely rare. Once the
Microcom Networking Protocol
284
connection was made, which occurred quickly, both modems sent a small identification string to the remote modem.
Both modems then examined the string and selected the fastest common mode. The caller then re-negotiated once at
that higher speed.
MNP 7
MNP 7 introduced new compression algorithms with a claimed improvement to 3:1 compression on text files.
However, by the time MNP 7 was introduced, the v.42bis standard was offering 4:1 compression.
MNP 9
MNP 9 (there was apparently no 8 released) improved the Universal Link Detection to add newer high-speed modes,
but was otherwise identical to MNP 7.
MNP 10
MNP 10 introduced a new error-correction protocol designed specifically to work well on the noisy phone lines
widely used in eastern Europe. Unlike earlier versions like MNP 4, MNP 10 constantly monitored line quality and
adjusted packet size back up if conditions improved.
In 1991 Microcom licensed MNP 10 to Rockwell International for use in their extremely popular modem chip sets.
Since almost all modems with the exception of USR's models used the Rockwell chipset from about 1995, MNP 10
became fairly widely deployed (if not used). USR eventually added MNP 10 (and its AT&T Paradyne-created
competitor, ETC) to their V.everything series modems, effectively making it universal.
MNP 10 was later expanded to MNP 10EC, the "EC" standing for "Extended Cellular". This was a series of
modifications that allowed MNP 10 to deal with the transmission pauses when a cell phone moves from one cell to
another, which would normally be interpreted as errors in the line. Using MNP 10EC, these pauses are correctly
identified as "not errors", and the link speed remains higher.
MNP 10EC was particularly attractive in the cellular role due to the inclusion of the ULN link-negotiation method
originally introduced in MNP 6 (and improved in MNP 9). On a cellular network where all air-time is billed, the
faster setup saved money.
MNP 10EC had a limited life span, as the cell networks turned to a variety of all-digital systems that no longer
required a modem to connect to a computer.
References
[1] James Michael Stewart, Ed Tittel, Mike Chapple. CISSP: Certified Information Systems Security Professional (http:/ / books. google.com/
books?id=r7bwQG33aTUC&pg=PA105&lpg=PA105& dq=echoplex+microcom+networking+protocol&source=web&
ots=6w4AVb1fRM& sig=5IPGKbqMhPQOqU9pL7M3kUN3t0o& hl=en&sa=X& oi=book_result&resnum=1& ct=result). Wiley_Default,
2005. pp. 105. ISBN 0782144438, 9780782144437. .
[2] Durda, Frank.
Microsoft Host Integration Server
285
Microsoft Host Integration Server
Microsoft Host Integration Server (a.k.a. HIS) is a gateway application providing connectivity between Microsoft
Windows networks and IBM mainframe and AS/400 systems. Support is provided for SNA, 3270 (standard and
Telnet 3270 TN3270E), 5250 (standard and Telnet 5250), CICS, APPC, and other IBM protocols. Support is also
provided for advanced integration with Windows networks and software, such as linking Microsoft Message
Queuing applications to IBM WebSphere MQ, binding Microsoft DTC transactions with CICS, and cross-protocol
access to DB2 databases on IBM platforms.
HIS is the successor to Microsoft SNA Server. SNA Server was released in 1994, and was one of the first add-on
products available for the fledgling Windows NT.
Similar gateway products are NetWare for SAA (defunct, ran on Novell NetWare) and IBM Communications
Manager/2 (defunct, ran on OS/2).
Version History
• SNA Server 1.0
• SNA Server 2.1 (September 1994)
• SNA Server 2.11
• SNA Server 3.0
• SNA Server 4.0
• Host Integration Server 2000 (August 2000)
• Host Integration Server 2004
• Host Integration Server 2006
• Host Integration Server 2009 (MSDN March 2009)
• Host Integration Server 2010 (September 2010)
Third-Party Support
HIS has an active ecosystem of third party hardware (e.g. network adapters supporting ESCON and Twinax
connectivity) and software
[1]
.
References
[1] "Microsoft Host Integration Server: Partners" (http:// www. microsoft.com/ hiserver/ partners/default.mspx). Microsoft Corporation. .
Retrieved 2008-05-20.
External links
• "Microsoft Host Integration Server site" (http:// www. microsoft.com/ hiserver/default. mspx). Microsoft
Corporation. Retrieved 2008-05-20.
Microsoft RPC
286
Microsoft RPC
Microsoft RPC (Microsoft Remote Procedure Call) is a modified version of DCE/RPC. Additions include support
for Unicode strings, implicit handles, inheritance of interfaces (which are extensively used in DCOM), and complex
calculations in the variable-length string and structure paradigms already present in DCE/RPC.
Example
The DCE 1.0 reference implementation only allows such constructs as "size_is(len)", or possibly "size_is(len-1)".
MSRPC allows much more complex constructs such as "size_is(len / 2 - 1)" and even "length_is ((max & ~0x7) +
0x7)" which is one quite common expression in DCOM IDL files.
Use
MSRPC was used by Microsoft to seamlessly create a client/server model in Windows NT, with very little effort.
For example, the Windows Server domains protocols are entirely MSRPC based, as is Microsoft's DNS
administrative tool. Microsoft Exchange Server 5.5's administrative front-ends are all MSRPC client/server
applications, and its MAPI was made more secure by "proxying" MAPI over a set of simple MSRPC functions that
enable encryption at the MSRPC layer without involving the MAPI protocol.
History
MSRPC is derived from the Distributed Computing Environment 1.2 reference implementation from the Open
Software Foundation, but has been copyrighted by Microsoft. DCE/RPC was originally commissioned by the Open
Software Foundation, an industry consortium to set vendor- and technology-neutral open standards for computing
infrastructure. None of the Unix vendors (now represented by the Open Group), wanted to use the complex DCE or
such components as DCE/RPC at the time.
The Microsoft proprietary technology, Distributed Component Object Model (DCOM) is for software components
distributed across several networked computers to communicate with each other. The "D" was added to COM
because of extensive use of DCE/RPC. DCOM, which originally was called "Network OLE", extends Microsoft's
COM, and provides the communication substrate under Microsoft's COM+ application server infrastructure. It has
been deprecated in favor of Microsoft .NET Framework. Microsoft donated DCOM to the Open Group.
The technology used by Microsoft in MSRPC is now deprecated and replaced by MPI
References
Shirley, John; Rosenberry, Ward (1995). Microsoft RPC programming guide
[1]
. O'Reilly & Associates, Inc. Open
Book
[2]
. ISBN 1-56592-070-8.
Luke Kenneth; Casson Leighton (1999). DCE/RPC over SMB: Samba and Windows NT Domain Internals
[3]
. Sams.
ISBN 1-57870-150-3.
External links
• MSRPC at TechNet
[4]
• [5], a chapter on MSRPC from a technical article by Jean-Baptiste Marchand.
Microsoft RPC
287
References
[1] http:/ / www.archive.org/ details/ microsoftrpc00shirmiss
[2] http:/ / oreilly.com/ openbook/
[3] http:/ / www.amazon. com/ DCE-RPC-over-SMB-Internals/dp/ 1578701503
[4] http:/ / technet. microsoft.com/ en-us/ library/cc759499. aspx
[5] http:/ / www.hsc. fr/ressources/ articles/ win_net_srv/ chap_msrpc.html
Miredo
288
Miredo
Miredo
Developer(s) Rémi Denis-Courmont
Stable release 1.2.4 / July 7, 2011
Development status Active
Written in C
Available in Multilingual
Type Tunneling
License GNU General Public License
Website http:/ / www. remlab.net/ miredo/
Miredo is an open-source Teredo IPv6 tunneling software included in many Linux
[1]

[2]
and BSD
[3]

[4]
operating
systems and is also available for recent versions of Mac OS X.
[5]
It includes working implementations of:
• a Teredo client,
• a Teredo relay and
• a Teredo server.
External links
• Official website
[6]
References
[1] "Debian Package Tracking System - miredo" (http:// packages. qa.debian.org/m/miredo.html). .
[2] "Fedora Package Database -- miredo" (https:/ / admin. fedoraproject.org/pkgdb/ acls/ name/ miredo). .
[3] "The FreeBSD Ports Archive" (http:/ / www. freebsdsoftware.org/net/miredo.html). .
[4] "The NetBSD Packages Collection: net/miredo" (ftp:/ / ftp. netbsd. org/ pub/pkgsrc/current/pkgsrc/ net/ miredo/ README.html). .
[5] "Teredo for MacOS X" (http:/ /www. deepdarc. com/ miredo-osx/). .
[6] http:// www.remlab.net/ miredo/
mLAN
289
mLAN
mLAN, short for Music Local Area Network, is a protocol for synchronized transmission and management of
multi-channel digital audio, video, control signals and multi-port MIDI over a network. It exploits several features of
the IEEE 1394 standard, also known as FireWire, upon which it is based, to afford isochronous transfer and
intelligent connection management. Interconnects are made with standard IEEE 1394 cables. With the proper
software, a digital audio workstation may interact with mLAN-compliant hardware via any OHCI-compliant
FireWire port.
The protocol was originally developed by Yamaha Corporation, and publicly introduced in January 2000.
[1]
It is now
available under a royalty-free license to anyone interested in utilizing the technology. As of 2005, over 100
manufacturers are part of the mLAN Alliance.
[2]
The transport layers of mLAN have been standardized as IEC 61883.
[3]
Versions
Version 1 operates on the S200 type connection, Version 2 on the S400 type. The latter version supports
synchronized streaming of digital audio at up to 24 bit word length and 192 kHz sample rate, MIDI and wordclock at
a bitrate up to 400 Megabits per second.
Supporting products
• Yamaha Motif, Yamaha Motif ES, Yamaha S90 ES, Yamaha Motif XS
Other important mLAN devices include Yamaha 01X digital mixing hub and Yamaha i88x audio/MIDI interface.
Caveats and Product End
mLAN, being a Firewire bus protocol of its own, consumed an entire Firewire bus' bandwidth, making the mixing of
mLAN and non-mLAN devices on the same Firewire bus impossible. For example, it was not possible to use hard
drives, optical drives or other sound devices on the same Firewire bus when mLAN Manager software was running.
It effectively took over the bus with a proprietary management system that was incompatible with standard Firewire
bus devices.
As of early 2008, mLAN appeared to have reached the end of its product life. The third party developers previously
mentioned have since discontinued or retracted their mLAN supporting products from the market as has Yamaha
itself. Yamaha has had no indication of new releases of mLAN hardware or updates to the software in several years
and mention of mLAN is notably absent from new product announcements and driver updates over the last few
years.
mLAN
290
References
[1] Harmony Central: Yamaha Utilizes "Firewire" for Audio and MIDI: Reduces Need For Cables (http:// aes. harmony-central.com/ Newp/
2000/mLAN.html)
[2] Audio Interface Manufacturers' Round Table (http:// www. soundonsound. com/ sos/ dec05/ articles/ pcmusician.htm)
[3] mLAN Definition: TechEncyclopedia from TechWeb (http:// www. techweb.com/ encyclopedia/ defineterm.jhtml?term=mLAN)
External links
• mLAN Central (http://www. mlancentral.com/ )
• 01xray (http:/ /www. 01xray. com/ )
• Save Mlan on the Mac (http:/ / www. christianmccormick.com/ mlansite) hosted by Chrismcc (http:/ / www.
christianmccormick.com)
Mobile IP
Mobile IP (or IP mobility) is an Internet Engineering Task Force (IETF) standard communications protocol that is
designed to allow mobile device users to move from one network to another while maintaining a permanent IP
address. Mobile IP for IPv4 is described in IETF RFC 3344, and updates are added in IETF RFC 4721. Mobile
IPv6, the IP mobility implementation for the next generation of the Internet Protocol, IPv6, is described in RFC
6275.
Introduction
The Mobile IP protocol allows location-independent routing of IP datagrams on the Internet. Each mobile node is
identified by its home address disregarding its current location in the Internet. While away from its home network, a
mobile node is associated with a care-of address which identifies its current location and its home address is
associated with the local endpoint of a tunnel to its home agent. Mobile IP specifies how a mobile node registers
with its home agent and how the home agent routes datagrams to the mobile node through the tunnel.
Applications
In many applications (e.g., VPN, VoIP), sudden changes in network connectivity and IP address can cause problems.
Mobile ip protocol was designed to support seamless and continuous Internet connectivity.
Mobile IP is most often found in wired and wireless environments where users need to carry their mobile devices
across multiple LAN subnets. Examples of use are in roaming between overlapping wireless systems, e.g., IP over
DVB, WLAN, WiMAX and BWA.
Mobile IP is not required within cellular systems such as 3G, to provide transparency when Internet users migrate
between cellular towers, since these systems provide their own data link layer handover and roaming mechanisms.
However, it is often used in 3G systems to allow seamless IP mobility between different packet data serving node
(PDSN) domains.
Mobile IP
291
Operational principles
A mobile node has two addresses - a permanent home address and a care-of address (CoA), which is associated with
the network the mobile node is visiting. Two kinds of entities comprise a Mobile IP implementation:
• A home agent stores information about mobile nodes whose permanent home address is in the home agent's
network.
• A foreign agent stores information about mobile nodes visiting its network. Foreign agents also advertise care-of
addresses, which are used by Mobile IP. If there is no foreign agent in the host network, the mobile device has to
take care of getting an address and advertising that address by its own means.
A node wanting to communicate with the mobile node uses the permanent home address of the mobile node as the
destination address to send packets to. Because the home address logically belongs to the network associated with
the home agent, normal IP routing mechanisms forward these packets to the home agent. Instead of forwarding these
packets to a destination that is physically in the same network as the home agent, the home agent redirects these
packets towards the remote address through an IP tunnel by encapsulating the datagram with a new IP header using
the care of address of the mobile node.
When acting as transmitter, a mobile node sends packets directly to the other communicating node, without sending
the packets through the home agent, using its permanent home address as the source address for the IP packets. This
is known as triangular routing. If needed, the foreign agent could employ reverse tunneling by tunneling the mobile
node's packets to the home agent, which in turn forwards them to the communicating node. This is needed in
networks whose gateway routers check that the source IP address of the mobile host belongs to their subnet or
discard the packet otherwise.
Performance
A performance evaluation of Mobile IPv6 can be found in.
[1]
Additionally, a performance comparison between
Mobile IPv6 and some of its proposed enhancements (Hierarchical Mobile IPv6, Fast Handovers for Mobile IPv6
and their Combination) is available at.
[2]
Development
Enhancements to the Mobile IP technique, such as Mobile IPv6
[3]
and Hierarchical Mobile IPv6 (HMIPv6) defined
in RFC 5380
[4]
,
[5]
are being developed to improve mobile communications in certain circumstances by making the
processes more secure and more efficient. HMIPv6 explanation can be found at Hierarchical-Mobile-IPv6
[6]
.
Researchers create support for mobile networking without requiring any pre-deployed infrastructure as it currently is
required by MIP. One such example is Interactive Protocol for Mobile Networking (IPMN)
[7]
which promises
supporting mobility on a regular IP network just from the network edges by intelligent signalling between IP at
end-points and application layer module with improved quality of service.
Researchers are also working to create support for mobile networking between entire subnets with support from
Mobile IPv6. One such example is Network Mobility (NEMO) Network Mobility Basic Support Protocol
[8]
by the
IETF Network Mobility Working Group
[9]
which supports mobility for entire Mobile Networks that move and to
attach to different points in the Internet. The protocol is an extension of Mobile IPv6 and allows session continuity
for every node in the Mobile Network as the network moves.
Mobile IP
292
Changes in IPv6 for Mobile IPv6
• A set of mobility options to include in mobility messages
• A new Home Address option for the Destination Options header
• A new Type 2 Routing header
• New Internet Control Message Protocol for IPv6 (ICMPv6) messages to discover the set of home agents and to
obtain the prefix of the home link
• Changes to router discovery messages and options and additional Neighbor Discovery options
Definition of terms
Home network
The home network of a mobile device is the network within which the device receives its identifying IP
address (home address).
Home address
The home address of a mobile device is the IP address assigned to the device within its home network.
Foreign network
A foreign network is the network in which a mobile node is operating when away from its home network.
Care-of address
The care-of address of a mobile device is the network-native IP address of the device when operating in a
foreign network.
Home agent
A home agent is a router on a mobile node’s home network which tunnels datagrams for delivery to the mobile
node when it is away from home. It maintains current location (IP address) information for the mobile node. It
is used with one or more foreign agents.
Foreign agent
A foreign agent is a router that stores information about mobile nodes visiting its network. Foreign agents also
advertise care-of-addresses which are used by Mobile IP.
Binding
A binding is the association of the home address with a care-of address.
References
[1] X.Pérez-Costa and H.Hartenstein. A Simulation Study on the Performance of Mobile IPv6 in a WLAN-Based Cellular Network. (http://
portal.acm. org/ citation. cfm?id=604022.604035& coll=& dl=ACM) Elsevier Computer Networks Journal (CNJ), special issue on The New
Internet Architecture, September 2002.
[2] X.Pérez-Costa, M.Torrent-Moreno and H.Hartenstein. A Performance Comparison of Mobile IPv6, Hierarchical Mobile IPv6, Fast
Handovers for Mobile IPv6 and their Combination. (http:/ / portal.acm. org/citation. cfm?id=965736) ACM SIGMOBILE Mobile Computing
and Communications Review (MC2R), Volume 7, Issue 4, October, 2003.
[3] X.Pérez-Costa and H.Hartenstein. A Simulation Study on the Performance of Mobile IPv6 in a WLAN-Based Cellular Network (http://
portal.acm. org/ citation. cfm?id=604022.604035& coll=& dl=ACM) Elsevier Computer Networks Journal, special issue on The New
Internet Architecture, September 2002
[4] http:/ / tools. ietf. org/html/ rfc5380
[5] X.Pérez-Costa, M.Torrent-Moreno and H.Hartenstein. A Simulation Study on the Performance of Hierarchical Mobile IPv6 (http:/ / dsn. tm.
uka. de/ medien/ publication-confs/perez-itc03-simulation-study.pdf) In Proceedings of the International Teletraffic Congress (ITC), Berlin,
Germany, August 2003.
[6] http:// searchmobilecomputing. techtarget.com/ definition/ Hierarchical-Mobile-IPv6
[7] http:// medianet. kent.edu/ ipmn/ main. html
[8] http:/ / www.rfc-editor.org/rfc/rfc3963.txt
[9] http:/ / tools. ietf. org/wg/ nemo/
Mobile IP
293
External links
• RFC 6275 -Mobility support for IPv6
• RFC 5944 - IP Mobility Support for IPv4, Revised
• RFC 4721 - Mobile IPv4 Challenge/Response Extensions
• RFC 3024 - Reverse Tunneling for Mobile IP
• Inside Mobile IP (http:// www. ddj. com/ dept/ mobile/ 184406240)
• Protocols for Adaptive Mobile and Wireless Networking (http:/ /www. monarch.cs. cmu.edu/ )
• Mobile IP explained (a tutorial) (http:// www.tml.tkk.fi/ Opinnot/Tik-111.550/ 1999/ Esitelmat/ MobileIP/
Mobip. html)
• Mobility Extensions for IPv6 (mext) IETF Working Group Web site (http:// ietf. org/html.charters/
mext-charter. html)
• Mobile IPv6 -- A short introduction (http:// www.hznet. de/ ipv6/ mipv6-intro.pdf) by Holger Zuleger
• Linux Mobile IPv6 HOWTO (http:/ / tldp.org/HOWTO/Mobile-IPv6-HOWTO/) on the Linux Documentation
Project
• D. Johnson, C. Perkins, J. Arkko. Mobility Support in IPv6 (http:/ / tools. ietf. org/ html/ rfc6275). RFC 6275.
June 2011
• J. Arkko, V. Devarapalli, F. Dupont. Using IPsec to Protect Mobile IPv6 Signaling Between Mobile Nodes and
Home Agents (http:/ / www. ietf.org/ rfc/rfc3776.txt). RFC 3776. June 2004
MPLS-TP
MPLS-TP or MPLS Transport Profile is a profile of MPLS whose definition has been commenced by the IETF. It
will be designed for use as a network layer technology in transport networks. Its design will be a continuation of the
work started by the transport network experts of the ITU-T, specifically SG15, as T-MPLS. Since 2008 the work is
progressed in a cooperation between ITU-T and IETF. The required protocol extensions to MPLS being designed by
the IETF based on requirements provided by service providers. It will be a connection-oriented packet-switched
(CO-PS) application. It will offer a dedicated MPLS implementation by removing features that are not relevant to
CO-PS applications and adding mechanisms that provide support of critical transport functionality.
MPLS-TP is to be based on the same architectural principles of layered networking that are used in longstanding
transport network technologies like SDH, SONET and OTN. Service providers have already developed management
processes and work procedures based on these principles.
MPLS-TP will provide service providers with a reliable packet-based technology that is based upon circuit-based
transport networking, and thus is expected to align with current organizational processes and large-scale work
procedures similar to other packet transport technologies.
MPLS-TP is expected to be a low cost L2 technology (if the limited profile to be specified is implemented in
isolation) that will provide QoS, end-to-end OA&M and protection switching.
In February 2008 the ITU-T and IETF agreed to work jointly
[1]
on the design of MPLS-TP. Based on this agreement
IETF and ITU-T experts will jointly work out the requirements and solutions. ITU-T in turn will update the existing
T-MPLS standards
[2]
based on the MPLS-TP related RFCs listed below.
MPLS-TP
294
RFC or drafts
The following IETF RFCs or drafts exist for MPLS-TP:
RFC Title Draft
RFC
5317
Joint Working Team (JWT) Report on MPLS Architectural Considerations for a Transport
Profile
draft-bryant-mpls-tp-jwt-report
RFC
5654
MPLS-TP Requirements draft-ietf-mpls-tp-requirements
RFC
5921
A Framework for MPLS in Transport Networks draft-ietf-mpls-tp-framework
RFC
5860
Requirements for OAM in MPLS Transport Networks draft-ietf-mpls-tp-oam-requirements
RFC
5960
MPLS Transport Profile Data Plane Architecture draft-ietf-mpls-tp-data-plane
tbd MPLS-TP OAM Framework and Overview
draft-ietf-mpls-tp-oam-framework
[3]
tbd MPLS-TP OAM Analysis
draft-ietf-mpls-tp-oam-analysis
[4]
RFC
5586
Assignment of the Generic Associated Channel Header Label (GAL) draft-ietf-mpls-tp-gach-gal
tbd MPLS-TP ACH TLV's
draft-ietf-mpls-tp-ach-tlv
[5]
RFC
5951
MPLS TP Network Management Requirements draft-ietf-mpls-tp-nm-req
RFC
5950
MPLS-TP Network Management Framework draft-ietf-mpls-tp-nm-framework
tbd MPLS-TP Survivability Framework
draft-ietf-mpls-tp-survive-fwk
[6]
tbd A Thesaurus for the Terminology used in MPLS-TP drafts/RFCs
and ITU-T's Transport Network Recommendations.
draft-ietf-mpls-tp-rosetta-stone
[7]
RFC
6291
Guidelines for the Use of the "OAM" Acronym in the IETF
draft-ietf-opsawg-mpls-tp-oam-def
[8]
Solutions
The solutions for the above requirements and framework are as mentioned below and is under development
[9]
.:
• RFC 5718 An In-Band Data Communication Network For the MPLS Transport Profile
• RFC 5586 MPLS Generic Associated Channel- Defines GAL/G-ACH
• RFC 5462 "EXP field" renamed to "Traffic Class field"
• Loopback
[10]
(Individual Draft)
• MPLS-TP Terminology
[11]
(IETF Draft)
• MPLS-TP ACH TLV
[12]
(IETF Draft)
• Proactive continuity and connectivity verification
[13]
(Individual Draft)
• OAM Acronyms
[8]
(IETF Draft)
• MPLS-TP OAM based on Y.1731
[14]
(Individual Draft)
• MPLS-TP Performance monitoring (Individual Draft)
• MPLS-TP Fault Management (Individual Draft)
• MPLS-TP Linear Protection
[15]
(IETF Draft)
MPLS-TP
295
• Linear Protection Switching in MPLS-TP
[16]
(Individual Draft)
• MPLS-TP P2MP traffic protection (Individual Draft)
• MPLS-TP OAM Alarm suppression (Individual Draft)
• MPLS-TP & IP/MPLS Interworking (Individual Draft)
• MPLS-TP Ring Protection
[17]
(Individual Draft)
• MPLS-TP LDP extension: No work
• MPLS-TP RSVP-TE extensions: No work
References
[1] "ITU-T/IETF interoperability issues addressed" (http:// www. itu. int/ ITU-T/e-flash/ 035-may08.html#003) (HTML). ITU-T Study Group
15. .
[2] http:/ / www.itu. int/ oth/ T0906000001/en
[3] http:/ / tools. ietf. org/html/ draft-ietf-mpls-tp-oam-framework/
[4] http:/ / tools. ietf. org/html/ draft-ietf-mpls-tp-oam-analysis/
[5] http:/ / tools. ietf. org/html/ draft-ietf-mpls-tp-ach-tlv/
[6] http:/ / tools. ietf. org/html/ draft-ietf-mpls-tp-survive-fwk/
[7] http:/ / tools. ietf. org/html/ draft-ietf-mpls-tp-rosetta-stone/
[8] http:/ / tools. ietf. org/html/ draft-ietf-opsawg-mpls-tp-oam-def
[9] http:/ / wiki. tools. ietf. org/misc/ mpls-tp/
[10] http:/ / tools. ietf. org/html/ draft-boutros-mpls-tp-loopback
[11] http:// tools. ietf. org/html/ draft-ietf-mpls-tp-rosetta-stone
[12] http:// tools. ietf. org/html/ draft-ietf-mpls-tp-ach-tlv
[13] http:// tools. ietf. org/html/ draft-fhbs-mpls-tp-cv-proactive
[14] http:// tools. ietf. org/html/ draft-bhh-mpls-tp-oam-y1731
[15] http:// tools. ietf. org/html/ draft-ietf-mpls-tp-linear-protection
[16] http:// tools. ietf. org/html/ draft-zulr-mpls-tp-linear-protection-switching
[17] http:// tools. ietf. org/html/ draft-umansky-mpls-tp-ring-protection-switching
External links
• ITU-T series G recommendations (http:// www. itu.int/ rec/ T-REC-G/e)
• IETF MPLS Charter (http:/ / www. ietf.org/html.charters/ mpls-charter.html)
• MPLS-TP Mailing list archives (http:/ / www. ietf.org/ mail-archive/web/ mpls-tp/ current/maillist. html)
• Latest list of MPLS-TP standards (http:/ / wiki.tools. ietf.org/ misc/ mpls-tp/ )
Multimedia Exchange Network over Satellite (MENOS)
296
Multimedia Exchange Network over Satellite
(MENOS)
Multimedia Exchange Network over Satellite (MENOS) is a communications protocol for exchanging multimedia
content using communications satellites, most commonly used by professional broadcasters.
[1]

[2]

[3]
MENOS Key Advantages
References
[1] "MENOS Multimedia Exchange Network over Satellite" (http:// www. arabsat. com/ Public/ pdf/MENOS-brochure-and-leaflets.pdf) (PDF).
Arabsat. June 14, 2008. . Retrieved 2010-03-31.
[2] "Newtec — An Honor-Filled Evening..." (http:/ / www.satnews. com/ cgi-bin/story.cgi?number=713427336). Satnews Daily. March 4,
2010. . Retrieved 31 March 2010.
[3] "MENOS Expansion Announced" (http:/ / www. satellitetoday. com/st/ headlines/ MENOS-Expansion-Announced_33469.html). Satellite
Today. February 25, 2010. . Retrieved 31 March 2010.
Multiwavelength optical networking
Multiwavelength optical networking (MONET), is a method for communicating digital information using lasers
over optical fiber. The method provides the next level of communication networks after SONET optical networks.
MONET optical networks provide an even greater bandwidth capacity. This new method employs Wave division
multiplexing (WDM) technology for transporting large amounts of telephone and data traffic and allow for
interoperability between equipment from different vendors.
First developed by the secretive National Security Agency as author James Bamford points out in his book, "Body of
Secrets: Anatomy of the Ultra-Secret National Security Agency". It was also discussed at the 1996 Military
Communications Conference.
References
• Multiwavelength Optical Networking Consortium
[1]
• Multiwavelength Optical Networks - A layered Approach
[2]
by Thomas E. Stern and Krishna Bala
• Body of Secrets: Anatomy of the Ultra-Secret National Security Agency
[3]
by James Bamford
• Military Communications Conference, 1996
[4]
References
[1] http:/ / www.bell-labs. com/ project/MONET/
[2] http:/ / www.amazon. com/ dp/ 020130967X
[3] http:/ / www.amazon. com/ dp/ 0385499086
[4] http:/ / ieeexplore.ieee. org/ xpl/ freeabs_all.jsp?tp=& arnumber=568597&isnumber=12345
NAK (protocol message)
297
NAK (protocol message)
The NAK (or NACK) protocol message is sent in many communications protocols to negatively acknowledge or
reject a previously received message, or to indicate some kind of error.
Many protocols are ACK-based, meaning that they positively acknowledge receipt of messages. TCP is an example
of an ACK-based protocol.
Other protocols are NAK-based, meaning that they only respond to messages if there is a problem. Examples include
most reliable multicast protocols which send a NAK when the receiver detects missing packets.
Still other protocols make use of both NAKs and ACKs. Bisync and Adaptive Link Rate (for Energy Efficient
Ethernet) is an example.
A special case of the NAK protocol message is the negative-acknowledge character.
NAT Port Mapping Protocol
NAT Port Mapping Protocol (NAT-PMP) is an Internet Engineering Task Force Internet Draft, introduced by
Apple Computer as an alternative to the more common Internet Gateway Device (IGD) Standardized Device Control
Protocol implemented in many network address translation (NAT) routers. It was introduced in June 2005.
NAT-PMP allows a computer in a private network (behind a NAT router) to automatically configure the router to
allow parties outside the private network to contact it. NAT-PMP runs over UDP. It essentially automates the
process of port forwarding.
Included in the protocol is a method for retrieving the public IP address of a NAT gateway, thus allowing a client to
make this public IP address and port number known to peers that may wish to communicate with it. This protocol is
implemented in the applications listed below.
Applications supporting NAT-PMP
This list is incomplete.
• BitTorrent, a BitTorrent file-sharing client.
• Bitcomet, a BitTorrent file-sharing client.
• Colloquy, an Internet Relay Chat client.
• Crashplan, an offsite backup program.
• Deluge, a BitTorrent file-sharing client.
• FarFinder
[1]
, a remote file access application for OS X.
• FreeSWITCH, an open source telephony platform.
• Folx, a downloader for Mac, used for torrents or normal downloads.
• Frostwire, a BitTorrent file-sharing client.
• Limewire, a Gnutella file-sharing client.
• Mac OS X 10.4 and above.
• µTorrent, a BitTorrent file-sharing client.
• Nicecast, a music streaming program.
• Port Map
[2]
, a manual port mapping configuration software for OS X.
• qBittorrent, a BitTorrent file-sharing client.
• Transmission, a BitTorrent file-sharing client.
• Vuze, a BitTorrent file-sharing client.
• RetroShare
NAT Port Mapping Protocol
298
• Stallone, a software implementation of NAT-PMP for linux/iptables: http:// tedp.id.au/ stallone/
• ShareTool, an automated VPN program for OS X.
• MobileMe, Apple Inc's mobile device synchronization service.
Routers supporting NAT-PMP
This list is incomplete.
Manufacturer and model - Router firmware version tested
• AirPort Express
• AirPort Extreme
• DD-WRT
• OpenWrt v8.09 or higher, with MiniUPnP daemon
• pfSense
[3]
v2.0
• Tarifa (firmware)
[4]
(Linksys WRT54G/GL/GS)
• Time Capsule
• Tomato Firmware v1.24 or higher. (Linksys WRT54G/GL/GS and many more)
• Peplink Balance
External links
• NAT-PMP Specification Draft
[5]
• Bonjour Protocol Specifications
[6]
• another NAT-PMP explanation
[7]
• MiniUPnP
[6]
ANSI C, BSD-licenced, library that supports UPnP and NAT-PMP transversal (client and server)
References
[1] http:/ / flyingmac.com/ farfinder/
[2] http:/ / www.codingmonkeys. de/ portmap/
[3] http:// pfsense. org/
[4] http:/ / tarifa.sourceforge.net/
[5] http:/ / tools. ietf. org/html/ draft-cheshire-nat-pmp
[6] http:/ / developer.apple. com/ networking/ bonjour/specs. html
[7] http:/ / miniupnp. free.fr/nat-pmp.html
NAT traversal
299
NAT traversal
NAT traversal is a general term for techniques that establish and maintain Internet protocol connections traversing
network address translation (NAT) gateways. Network address translation breaks end-to-end connectivity.
Intercepting and modifying traffic can only be performed transparently in the absence of secure encryption and
authentication. NAT traversal techniques are typically required for client-to-client networking applications,
especially peer-to-peer and Voice over IP (VoIP) deployments. Many techniques exist, but no single method works
in every situation since NAT behavior is not standardized. Many NAT traversal techniques require assistance from a
server at a publicly-routable IP address. Some methods use the server only when establishing the connection, while
others are based on relaying all data through it, which adds bandwidth costs and increases latency, detrimental to
real-time voice and video communications.
Most NAT behavior-based techniques bypass enterprise security policies. Enterprise security experts prefer
techniques that explicitly cooperate with NAT and firewalls, allowing NAT traversal while still enabling marshalling
at the NAT to enforce enterprise security policies. From this point of view, the most promising IETF standards are
Realm-Specific IP (RSIP) and Middlebox Communications (MIDCOM).
SOCKS, the oldest NAT traversal protocol, is still widely available. In home or small office settings, Universal Plug
and Play (UPnP) is supported by most small NAT gateways. NAT-T is commonly used by IPsec virtual private
network clients in order to have Encapsulating Security Payload packets traverse NAT.
The NAT traversal problem
NAT devices are installed to alleviate IPv4 address exhaustion by allowing the use of private IP addresses on home
and corporate networks behind routers with a single public IP address facing the public Internet. The internal
network devices communicate with hosts on the external network by changing the source address of outgoing
requests to that of the NAT device and relaying replies back to the originating device. This leaves the internal
network ill-suited to host servers, as the NAT device has no automatic method of determining the internal host for
which incoming packets are destined. This is not a problem for home users behind NAT devices doing general web
access and e-mail. However, applications such as peer-to-peer file sharing, VoIP services and the online services of
current generation video game consoles require clients to be servers as well, thereby posing a problem for users
behind NAT devices, as incoming requests cannot be easily correlated to the proper internal host. Furthermore many
of these types of services carry IP address and port number information in the application data, potentially requiring
substitution or special traversal techniques for NAT traversal.
NAT traversal and IPsec
In order for IPsec to work through a NAT, the following protocols need to be allowed through the NAT interface(s),
eg. the LAN router:
• Internet Key Exchange (IKE) - User Datagram Protocol (UDP) port 500
• Encapsulating Security Payload (ESP) - IP protocol number 50
• Authentication Header (AH) - IP protocol number 51
or, in case of NAT-T:
• IKE - UDP port 500
• IPsec NAT-T - UDP port 4500
Often this is accomplished on home routers by enabling "IPsec Passthrough".
In Windows XP, NAT-T is enabled by default, but in XP with SP2, has been disabled by default for the case when
the VPN server is also behind a NAT device, because of a rare and controversial security issue
[1]
. IPsec NAT-T
NAT traversal
300
patches are also available for Windows 2000, Windows NT and Windows 98.
One usage of NAT-T and IPsec is to enable opportunistic encryption between systems. NAT-T allows systems
behind NATs to request and establish secure connections on demand.
IETF references
• RFC 1579 - Firewall Friendly FTP
• RFC 2663 - IP Network Address Translator (NAT) Terminology and Considerations
• RFC 2709 - Security Model with Tunnel-mode IPsec for NAT Domains
• RFC 2993 - Architectural Implications of NAT
• RFC 3022 - Traditional IP Network Address Translator (Traditional NAT)
• RFC 3027 - Protocol Complications with the IP Network Address Translator (NAT)
• RFC 3235 - Network Address Translator (NAT)-Friendly Application Design Guidelines
• RFC 3715 - IPsec-Network Address Translation (NAT) Compatibility
• RFC 3947 - Negotiation of NAT-Traversal in the IKE
• RFC 5128 - State of Peer-to-Peer (P2P) Communication across Network Address Translators (NATs)
References
[1] "IPSec NAT-T is not recommended for Windows Server 2003 computers that are behind network address translators" (http:// support.
microsoft.com/ kb/ 885348/ en-us). Microsoft knowledge base #885348. .
External links
• NAT-Traversal Test (http:// nattest.net.in.tum.de)
• How Skype & Co. get round firewalls (http:/ / www. heise-online. co. uk/ security/
How-Skype-Co-get-round-firewalls--/features/82481)
National Information Standards Organization Circulation Interchange Protocol
301
National Information Standards Organization
Circulation Interchange Protocol
National Information Standards Organization Circulation Interchange Protocol (NCIP) is a protocol that is
limited to the exchange of messages between and among computer-based applications to enable them to perform
functions necessary to lend and borrow items, to provide controlled access to electronic resources, and to facilitate
cooperative management of these functions.
Released in May 2001 and approved on October 17, 2002, ANSI/NISO Z39.83-2002 or NCIP is a "NISO Draft
Standard for Trial Use." This protocol defines a repertoire of messages and associated rules of syntax and semantics
for use by applications: to perform the functions necessary to lend items; to provide controlled access to electronic
resources; and to facilitate co-operative management of these functions. It is intended to address conditions in which
the application or applications that initiate the lending of items or control of access must acquire or transmit
information about the user, items, and/or access that is essential to successful conclusion of the function.
External links
• NCIP Implementation Group
[1]
• NCIP information at NISO
[2]
• NCIP information at CoverPages
[3]
References
[1] http:/ / ncip.info/
[2] http:/ / www.niso. org/ kst/ reports/ standards?step=2& gid=&project_key=ecdd6e885fae676a7ce6528173b56015621b0c46
[3] http:// xml.coverpages. org/ncip. html
Netatalk
302
Netatalk
Netatalk
Developer(s) Netatalk Team
Stable release 2.2.0 / July 27, 2011
Preview release 2.2-beta4 / April 5, 2011
Operating system POSIX-compliant *NIX/*BSD systems
Type Remote Access
License GNU General Public Licence
Website
netatalk.sourceforge.net
[1]
Netatalk is a free, open-source implementation of the AppleTalk suite of protocols. It allows Unix-like operating
systems to serve as file, print and time servers for Macintosh computers.
Netatalk was originally developed by the Research Systems Unix Group at University of Michigan and moved to
SourceForge in 2000. In October 2004 Netatalk 2.0 was released, which brought major improvements, including:
support for Apple Filing Protocol version 3.1 (providing long UTF-8 filenames, file sizes > 2 gigabytes, full Mac OS
X compatibility), CUPS integration, Kerberos V support allowing true "single sign-on", reliable and persistent
storage of file and directory IDs and countless bug fixes compared to previous versions.
Currently Netatalk supports the FreeBSD, Linux, OpenBSD, NetBSD, Solaris, OpenSolaris and Tru64 operating
systems. Also there are packages for iOS and Mac OS X.
Netatalk is licensed under the terms of the GNU General Public License.
Since version 2.0.5, Netatalk supports the use of Time Machine over a network in a similar fashion to Apple's own
Time Capsule. Starting with version 2.2, Netatalk supports the latest AFP protocol level 3.3.
Commercial support for Netatalk is available from NetAFP
[2]
.
External links
• Official website
[1]
• Official manual
[3]
• Macintosh-style File and Print Services with Netatalk
[4]
- from the Linux Documentation Project
References
[1] http:/ / netatalk. sourceforge.net/
[2] http:/ / www.netafp.com/
[3] http:/ / netatalk. sourceforge.net/ 2. 1/ htmldocs/ index. html
[4] http:// www.tldp. org/LDP/ lame/ LAME/linux-admin-made-easy/netatalk-file-and-print.html
NetBIOS
303
NetBIOS
NetBIOS (  /ˈnɛtbaɪ.ɒs/) is an acronym for Network Basic Input/Output System. It provides services related to
the session layer of the OSI model allowing applications on separate computers to communicate over a local area
network. As strictly an API, NetBIOS is not a networking protocol. Older operating systems ran NetBIOS over IEEE
802.2 and IPX/SPX using the NetBIOS Frames (NBF) and NetBIOS over IPX/SPX (NBX) protocols, respectively.
In modern networks, NetBIOS normally runs over TCP/IP via the NetBIOS over TCP/IP (NBT) protocol. This
results in each computer in the network having both an IP address and a NetBIOS name corresponding to a (possibly
different) host name.
History and terminology
NetBIOS was developed in 1983 by Sytek Inc. as an API for software communication over IBM's PC-Network LAN
technology. On PC-Network, as an API alone, NetBIOS relied on proprietary Sytek networking protocols for
communication over the wire. Because PC-Network only supported up to 80 devices in its most accommodating
mode (baseband), NetBIOS was itself designed with limited nodes in mind.
In 1985, IBM went forward with the token ring network scheme and a NetBIOS emulator was produced to allow
NetBIOS-aware applications from the PC-Network era to work over this new design. This emulator, named
NetBIOS Extended User Interface (NetBEUI), expanded the base NetBIOS API with, among other things, the ability
to deal with the greater node capacity of token ring. A new networking protocol, NBF, was simultaneously produced
to allow NetBEUI (NetBIOS) to provide its services over token ring — specifically, at the IEEE 802.2 Logical Link
Control layer.
Also in 1985, Microsoft created a NetBIOS implementation for its MS-NET networking technology. As in the case
of IBM's token ring, the services of Microsoft's NetBIOS implementation were provided over the IEEE 802.2
Logical Link Control layer by the NBF protocol.
In 1986, Novell released Advanced Novell NetWare 2.0 featuring the company's own NetBIOS emulator. Its
services were encapsulated within NetWare's IPX/SPX protocol using the NetBIOS over IPX/SPX (NBX) protocol.
In 1987, a method of encapsulating NetBIOS in TCP and UDP packets, NetBIOS over TCP/IP (NBT), was
published. It was described in RFC 1001 ("Protocol Standard for a NetBIOS Service on a TCP/UDP Transport:
Concepts and Methods") and RFC 1002 ("Protocol Standard for a NetBIOS Service on a TCP/UDP Transport:
Detailed Specifications"). The NBT protocol was developed in order to "allow an implementation [of NetBIOS
applications] to be built on virtually any type of system where the TCP/IP protocol suite is available," and to "allow
NetBIOS interoperation in the Internet."
After the PS/2 computer hit the market in 1987, IBM released the PC LAN Support Program, which included a
driver for NetBIOS.
Worth noting is the popular confusion between the names NetBIOS and NetBEUI. NetBEUI originated strictly as the
moniker for IBM's enhanced 1985 NetBIOS emulator for token ring. The name NetBEUI should have died there,
considering that at the time, the NetBIOS implementations by other companies were known simply as NetBIOS
regardless of whether they incorporated the API extensions found in that emulator. For MS-NET, however,
Microsoft elected to name its implementation of the NBF protocol "NetBEUI" — literally naming its implementation
of the transport protocol after IBM's second version of the API. Consequently, even today, Microsoft file and printer
sharing over Ethernet continues to be called NetBEUI, with the name NetBIOS commonly used only in reference to
file and printer sharing over TCP/IP. In truth, the former is NetBIOS over NBF, and the latter is NetBIOS over NBT.
Since its original publishing in a technical reference book from IBM, the NetBIOS API specification has become a
de facto standard.
NetBIOS
304
Services
NetBIOS provides three distinct services:
• Name service for name registration and resolution.
• Session service for connection-oriented communication.
• Datagram distribution service for connectionless communication.
(Note: SMB, an upper layer, is a service that runs on top of the Session Service and the Datagram service, and is not
to be confused as a necessary and integral part of NetBIOS itself. It can now run atop TCP with a small adaptation
layer that adds a packet length to each SMB message; this is necessary because TCP only provides a byte-stream
service with no notion of packet boundaries.)
Name service
In order to start sessions or distribute datagrams, an application must register its NetBIOS name using the name
service. NetBIOS names are 16 octets in length and vary based on the particular implementation. Frequently, the
16th octet is used to designate a "type" similar to the use of ports in TCP/IP. It is called the NetBIOS Suffix (read
below) or "resource type", and is used to tell other applications what type of services the system offers. In NBT, the
name service operates on UDP port 137 (TCP port 137 can also be used, but it is rarely, if ever, used).
The name service primitives offered by NetBIOS are:
• Add name — registers a NetBIOS name.
• Add group name — registers a NetBIOS "group" name.
• Delete name — un-registers a NetBIOS name or group name.
• Find name — looks up a NetBIOS name on the network.
NetBIOS name resolution is not supported by Microsoft for Internet Protocol Version 6 (IPv6).
Session service
Session mode lets two computers establish a connection for a "conversation", allows larger messages to be handled,
and provides error detection and recovery. In NBT, the session service runs on TCP port 139.
The session service primitives offered by NetBIOS are:
• Call — opens a session to a remote NetBIOS name.
• Listen — listen for attempts to open a session to a NetBIOS name.
• Hang Up — close a session.
• Send — sends a packet to the computer on the other end of a session.
• Send No Ack — like Send, but doesn't require an acknowledgment.
• Receive — wait for a packet to arrive from a Send on the other end of a session.
In the original protocol used to implement NetBIOS services on PC-Network, to establish a session, the computer
establishing the session sends an Open request which is responded to by an Open acknowledgment. The computer
that started the session will then send a Session Request packet which will prompt either a Session Accept or Session
Reject packet. Data is transmitted during an established session by data packets which are responded to with either
acknowledgment packets (ACK) or negative acknowledgment packets (NACK). Since NetBIOS is handling the error
recovery, NACK packets will prompt retransmission of the data packet. Sessions are closed by the non-initiating
computer by sending a close request. The computer that started the session will reply with a close response which
prompts the final session closed packet.
NetBIOS
305
Datagram distribution service
Datagram mode is "connectionless". Since each message is sent independently, they must be smaller; the application
becomes responsible for error detection and recovery. In NBT, the datagram service runs on UDP port 138.
The datagram service primitives offered by NetBIOS are:
• Send Datagram — send a datagram to a remote NetBIOS name.
• Send Broadcast Datagram — send a datagram to all NetBIOS names on the network.
• Receive Datagram — wait for a packet to arrive from a Send Datagram operation.
• Receive Broadcast Datagram — wait for a packet to arrive from a Send Broadcast Datagram operation.
NetBIOS name vs host name
When NetBIOS is run over the TCP/IP protocol, each computer may have multiple "names" — names for the
NetBIOS API and another (or others) for basic TCP/IP.
NetBIOS name
The NetBIOS name is 16 ASCII characters, however Microsoft limits the host name to 15 characters and reserves
the 16th character as a NetBIOS Suffix. This suffix describes the service or name record type such as host record,
master browser record, or domain controller record. The host name (or short host name) is specified when Windows
networking is installed/configured, the suffixes registered are determined by the individual services supplied by the
host. In order to connect to a computer running TCP/IP via its NetBIOS name, the name must be resolved to a
network address. Today this is usually an IP address (the NetBIOS name-IP address resolution is often done by
either broadcasts or a WINS Server — NetBIOS Name Server). A computer's NetBIOS name is often the same as
that computer's host name (see below), although truncated to 15 characters, but it may also be completely different.
NetBIOS names can include almost any combination of alphanumeric characters except for spaces and the following
characters:
\ / : * ? " ; | +
The Windows LMHOSTS file provides a NetBIOS name resolution method that can be used for small networks that
do not use a WINS server.
Host name
A Windows machine's NetBIOS name is not to be confused with the computer's host name. Generally a computer
running TCP/IP (whether it's a Windows machine or not) has a host name (also sometimes called a machine name or
a DNS name). Generally the host name of a Windows computer is based on the NetBIOS name plus the Primary
DNS Suffix, which are both set in the System Properties dialog box.
There may also be "connection specific suffixes" which can be viewed or changed on the DNS tab in Control Panel
→ Network → TCP/IP → Advanced Properties. Host names are used by applications such as telnet, ftp, web
browsers, etc. In order to connect to a computer running the TCP/IP protocol using its HOST name, the host name
must be resolved into an IP Address. Host name- or Fully Qualified Domain Name (FQDN)-IP address resolution is
typically done by a Domain Name System (DNS) server.
NetBIOS
306
Node types
The node type of a networked computer relates to the way it resolves NetBIOS names to IP addresses. There are
four node types.
• B-node: 0x01 Broadcast
• P-node: 0x02 Peer (WINS only)
• M-node: 0x04 Mixed (broadcast, then WINS)
• H-node: 0x08 Hybrid (WINS, then broadcast)
The node type in use is displayed by opening a command line and typing ipconfig /all. A Windows computer registry
may also be configured in such a way as to display "unknown" for the node type.
NetBIOS Suffixes
The NetBIOS suffix, alternately called the NetBIOS End Character (endchar) is the 16th character of a NetBIOS
name. This character specifies the record or service type for the registered name record. The number of record types
is limited to 255. However in actual use the number of commonly used NetBIOS Suffixes is substantially smaller.
The most common NetBIOS Suffixes:
ASCII Values of 16th characters of NetBIOS "names"
• 00: Workstation Service
• 03: Messenger Service
• 20: File Service (also called Host Record)
• 1B: Domain Master Browser - Primary Domain Controller for a domain
• 1C: Domain Controllers for a domain (group record with up to 25 IP addresses)
• 1D: Master Browser
• 1E: Browser Service Elections
NetBIOS Extended User Interface
The Microsoft adaptation of the IBM NetBIOS protocol. NetBEUI expands on NetBIOS by adding a Transport layer
component. NetBEUI is a fast and efficient protocol that consumes few network resources, provides excellent error
correction, and requires little configuration.
External links
• LAN Technical Reference: 802.2 and NetBIOS APIs
[1]
• Implementing CIFS
[2]
(from the Samba team, published under the Open Publication License)
• NetBIOS specification
[3]
• NetBIOS, NetBEUI, NBF, SMB, CIFS Networking
[4]
• Computing-Dictionary: The Free Dictionary
[5]
• LMHOSTS File
[6]
• Online NetBIOS Scan
[7]
- Scans a Host/IP for open NetBIOS name servers.
• NETBIOS End Characters / Suffixes
[8]
- Microsoft Knowledge Base article describing list of NetBIOS Suffixes.
NetBIOS
307
References
• Haugdahl, J. Scott (1990). Inside NetBIOS. Architecture Technology Corp. ISBN 99914-57-34-8
• Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg (2004). Operating System Concepts. (7th Ed.). John
Wiley & Sons. ISBN 0-471-69466-5
• Meyers, Michael (2004). "Managing and Troubleshooting Networks". McGraw-Hill. ISBN 978-0-07-225665-9
• Tamara Dean. Network+ Guide to Networks, pg. 206 (NetBEUI)
References
[1] http:/ / publibz. boulder.ibm. com/ cgi-bin/ bookmgr_OS390/BOOKS/ BK8P7001/ CCONTENTS
[2] http:/ / ubiqx. org/cifs
[3] http:/ / www.netbiosguide. com
[4] http:/ / timothydevans. me.uk/ n2c. html
[5] http:/ / computing-dictionary.thefreedictionary.com/ Net+ bios
[6] http:// www.microsoft.com/ technet/ prodtechnol/ windows2000serv/ reskit/ cnet/ cnfd_lmh_qxqq.mspx?mfr=true
[7] http:/ / w3dt.net/ tools/ netbios/
[8] http:// support. microsoft.com/ kb/ 163409
NetBIOS Frames protocol
NetBIOS Frames or NBF protocol is a non-routable network- and transport-level data protocol most commonly
used as one of the layers of Microsoft Windows networking in the 1990s. NBF protocol or NetBIOS over IEEE
802.2 LLC is used by a number of network operating systems released in the 1990s, such as LAN Manager, LAN
Server, Windows for Workgroups, Windows 95 and Windows NT. Other protocols, such as NBT (NetBIOS over
TCP/IP), and NetBIOS-over-IPX/SPX also implement the NetBIOS/NetBEUI services over other protocol suites.
NBF protocol is commonly confused with NetBEUI (NetBIOS Extended User Interface; an extension to the
NetBIOS API that was originally developed in conjunction with NBF protocol; the two of them developed to allow
NetBIOS programs to run over IBM's new token ring network).
[1]
Microsoft promulgated this confusion by labelling
its NBF protocol implementation NetBEUI. NBF is a protocol and NetBEUI an application programming interface
extension.
Overview
NBF protocol uses 802.2 type 1 mode to provide the NetBIOS/NetBEUI name service and datagram service, and
802.2 type 2 mode to provide the NetBIOS/NetBEUI session service (virtual circuit). NBF protocol makes wide use
of broadcast messages, which accounts for its reputation as a chatty interface.
Sytek developed NetBIOS for IBM for the PC-Network program and was used by Microsoft for MS-NET in 1985.
In 1987, Microsoft and Novell utilized it for their network operating systems LAN Manager and NetWare.
Because NBF protocol is unroutable it can only be used to communicate with devices in the same broadcast domain,
but being bridgeable it can also be used to communicate with network segments connected to each other via bridges.
This means that it is only well-suited for small to medium-sized networks; the NetBIOS/NetBEUI services must be
implemented atop other protocols, such as IPX and TCP/IP (see above) in order to be of use in an internetwork.
[2]
NetBIOS Frames protocol
308
Services
NetBIOS/NetBEUI provides three distinct services:
• Name service for name registration and resolution
• Session service for connection-oriented communication
• Datagram distribution service for connectionless communication
NBF protocol implements all of these services.
Name service
In order to start sessions or distribute datagrams, an application must register its NetBIOS/NetBEUI name using the
name service. To do so, an "Add Name Query" or "Add Group Name Query" packet is broadcast on the network. If
the NetBIOS/NetBEUI name is already in use, the name service, running on the host that owns the name, broadcasts
a "Node Conflict" message on the network.
In addition, to start a session or to send a datagram to a particular host rather than to broadcast the datagram, NBF
protocol has to determine the MAC address of the host with a given NetBIOS/NetBEUI name; this is done by
sending a "Name Query" packet, the response to which will have the MAC address of the host sending the response,
i.e. the host with that name.
Session service
Session mode lets two computers establish a connection for a "conversation," allows larger messages to be handled,
and provides error detection and recovery.
Sessions are established by exchanging packets. The computer establishing the session sends a "Name Query"
request, specifying that a session should be initialized. The computer with which the session is to be established will
respond with a "Name Recognized" response indicating either that no session can be established (either because that
computer is not listening for sessions being established to that name or because no resources are available to
establish a session to that name) or that a session can be established (in which case the response will include a local
session number to be used in subsequent packets). The computer that is starting the session will then send a "Session
Initialize" request which will prompt a "Session Confirm" response.
Data is transmitted during an established session by data packets. IEEE 802.2 handles flow control and
retransmission of data packets. Because NetBIOS/NetBEUI allows packets to be sent that are larger than the largest
packet that could be transmitted on a particular MAC layer, a NetBIOS/NetBEUI packet might have to be
transmitted as a sequence of "Data First Middle" packets and a "Data Only Last" packet; packets that do not need to
be segmented in that fashion will be sent as a single "Data Only Last" packet. An acknowledgment will be sent for
all "Data Only Last" packets that are successfully received; this will also acknowledge all preceding "Data First
Middle" packets.
Sessions are closed by sending a "Session End" request.
NetBIOS Frames protocol
309
Datagram distribution service
Datagram mode is "connectionless". A datagram is sent with a "Datagram" packet if it is being sent to a particular
NetBIOS/NetBEUI name, or a "Datagram Broadcast" packet if it is being sent to all NetBIOS/NetBEUI names on
the network.
Availability
NBF protocol - apart from DOS and Unix implementations - is officially supported by Microsoft on almost every
version of Windows up to Windows 2000,
[3]
but its use has decreased quickly since the development of NBT.
Microsoft officially dropped support starting with Windows XP,
[4]
but it is included on the Windows XP CD-ROM
and can be installed manually.
[5]
Windows Vista does not include NetBEUI support at all, but the Windows XP
NetBEUI support drivers can be used.
[6]
External links
• LAN Technical Reference: 802.2 and NetBIOS APIs
[1]
- includes NBF protocol specifications
• About NetBEUI
[7]
• Comparison of Windows NT Network Protocols
[8]
References
[1] "NetBios NetBEUI NBF Networking Introduction" (http:// web. archive.org/web/ 20070207171212/ http:/ / ourworld.compuserve.com/
homepages/ timothydevans/ intro.htm). Archived from the original (http:// ourworld.compuserve. com/ homepages/ timothydevans/ intro.
htm) on 2007-02-07. . Retrieved 2007-07-03.
[2] "NetBios NetBEUI NBF Networking Encapsulation" (http:// web. archive.org/ web/ 20060915105324/http:/ / ourworld.compuserve.com/
homepages/ timothydevans/ encap. htm). Archived from the original (http:// ourworld.compuserve. com/ homepages/ timothydevans/ encap.
htm) on 2006-09-15. . Retrieved 2006-11-24.
[3] "NetBEUI support on Windows 2000" (http:// www.microsoft. com/ technet/ prodtechnol/ windows2000serv/ reskit/ intwork/inde_nbf_hlpj.
mspx). . Retrieved 2007-03-19.
[4] "The NetBEUI Protocol Is Not Available in Windows XP (KB306059)" (http:/ / support.microsoft.com/ kb/ 306059). . Retrieved
2007-03-19.
[5] "How to install NetBEUI on Windows XP (KB301041)" (http:// support.microsoft.com/ kb/ 301041). . Retrieved 2007-03-19.
[6] "NetBeui on XP and Vista" (http:/ / www. mac-net. com/ 174984.page). .
[7] http:/ / www.comptechdoc. org/independent/ networking/ guide/ netnetbeui.html
[8] http:// support. microsoft.com/ kb/ q128233/
NetBIOS over TCP/IP
310
NetBIOS over TCP/IP
NetBIOS over TCP/IP (NBT, or sometimes NetBT) is a networking protocol that allows legacy computer
applications relying on the NetBIOS API to be used on modern TCP/IP networks.
NetBIOS was developed in the early 1980s, targeting very small networks (about a dozen computers). Some
applications still use NetBIOS, and do not scale well in today's networks of hundreds of computers when NetBIOS is
run over NBF. When properly configured, NBT allows those applications to be run on large TCP/IP networks
(including the whole Internet, although that is likely to be subject to security problems) without change.
NBT is defined by the RFC 1001 and RFC 1002 standard documents.
Services
NetBIOS provides three distinct services:
• Name service for name registration and resolution (port: 137)
• Datagram distribution service for connectionless communication (port: 138)
• Session service for connection-oriented communication (port: 139)
NBT implements all of those services.
Name service
In NetBIOS, each participant must register on the network using a unique name of at most 15 characters. In legacy
networks, when a new application wanted to register a name, it had to broadcast a message saying "Is anyone
currently using that name?" and wait for an answer. If no answer came back, it was safe to assume that the name was
not in use. However, the wait timeout was a few seconds, making the name registration a very lengthy process, as the
only way of knowing that a name was not registered was to not receive any answer.
NBT can implement a central repository, or Name Service, that records all name registrations. An application
wanting to register a name would therefore contact the name server (which has a known network address) and ask
whether the name is already registered, using a "Name Query" packet. This is much faster, as the name server returns
a negative response immediately if the name is not already in the database, meaning it is available. The Name
Service, according to RFCs 1001 and 1002, is called NetBIOS Naming Service or NBNS. Microsoft WINS is just an
implementation of NBNS. It is worth saying that due to constant development of the way in which the Name Service
handles conflict or merges, "group names" varies from vendor to vendor and can even be different by version e.g.
with the introduction of a service pack.
The packet formats of the Name Service are identical to DNS. The key differences are the addition of NetBIOS
"Node Status" query, dynamic registration and conflict marking packets. They are encapsulated in UDP. Later
implementation includes an optional Scope part of the name, making NetBIOS name hierarchical like DNS, but this
is seldom used.
In addition, to start a session or to send a datagram to a particular host rather than to broadcast the datagram, NBT
will have to determine the IP address of the host with a given NetBIOS name; this is done by broadcasting a "Name
Query" packet, and/or sending it to the NetBIOS name server. The response will have the IP address of the host with
that name.
It is interesting to note that NBNS is one of the first proper dynamic peer-to-peer distributed name registration
services. The reputation of the NBNS protocol was brought into disrepute by Microsoft: it earned a bad name for
being 'chatty', swamping networks with dynamic registration traffic on multiple protocols (IPX/SPX, NBF and
TCP/IP) as people badly misconfigured their machines and their networks. The principles implemented in NBNS
have been reimplemented many times, including in such systems as ZeroConf and MobileIP.
NetBIOS over TCP/IP
311
Session service
Session mode lets two computers establish a connection for a "conversation," allows larger messages to be handled,
and provides error detection and recovery.
Sessions are established by exchanging packets. The computer establishing the session attempts to make a TCP
connection to port 139 on the computer with which the session is to be established. If the connection is made, the
computer establishing the session then sends over the connection a "Session Request" packet with the NetBIOS
names of the application establishing the session and the NetBIOS name to which the session is to be established.
The computer with which the session is to be established will respond with a "Positive Session Response" indicating
that a session can be established or a "Negative Session Response" indicating that no session can be established
(either because that computer isn't listening for sessions being established to that name or because no resources are
available to establish a session to that name).
Data is transmitted during an established session by Session Message packets.
TCP handles flow control and retransmission of all session service packets, and the dividing of the data stream over
which the packets are transmitted into IP datagrams small enough to fit in link-layer packets.
Sessions are closed by closing the TCP connection.
Datagram distribution service
Datagram mode is "connectionless"; NetBIOS datagrams are sent over UDP. A datagram is sent with a "Direct
Unique" or "Direct Group" packet if it's being sent to a particular NetBIOS name, or a "Broadcast" packet if it's
being sent to all NetBIOS names on the network.
Security vulnerabilities
Web servers are typically - but not exclusively - the first point of impact for internet-based attack vectors. Local
Area Network (LAN's) ports, by design, advertise information and consequently often become the focus of the most
attacks upon Client-Server networks. Many services that are vulnerable to such means of attack, can - dependent on
organizational impact to work-flows - safely be disabled. This is particularly true of network services that are
inherently intranet-centric.
Two such vulnerable network protocols that provide services are: the Server Message Block (SMB) protocol and
NetBIOS over TCP/IP. Both services can reveal incredible amounts of detail and vital, security information about an
exposed network. When not mitigated, NetBIOS over TCP/IP and SMB provide recurring vectors for malicious
attacks upon a network. Specifically, NetBIOS provides attackers with a means to map the network and also freely
navigate a compromised intranet. In regards to public Web Servers, neither service is necessary for the successful
operation of a public Web server and disabling both services in such scenarios can greatly enhance the security status
of a network.
Decreasing relevance in post-NT Client-Server Networks
In relation to post-MS Windows 2000 / NT, client-server based networks, NetBIOS is effectively becoming a legacy
protocol. NetBIOS was also developed for non-routable LAN's. In most post year 2000 networks operating Windows
2000 or later, NetBIOS effectively offers backwards compatibility for network devices that predate compatibility
with DNS. A central role of NetBIOS in Client-Server networks (and also those networks that have networked
peripheral hardware that also predates DNS compatibility) is to provide name resolution to computers and networked
peripherals. Further, it allows for such networked hardware to be accessed and shared and also enables the mapping
and browsing of network folders, shares and shared printers, faxes, etc. In its primary capacity, it acts as a
session-layer protocol transported over TCP/IP to provide name resolution to a computer and shared folders. To that
end, Windows 2000-based, Client-Server networks - and later - do not require this insecure means of name resolving
NetBIOS over TCP/IP
312
and addressing or navigating of network shares.
External links
• KB204279
[1]
- KB article describing the more modern, direct hosting of SMB
• nbtscan
[2]
- open-source program to scan IP networks for NetBIOS name information
References
[1] http:/ / support. microsoft.com/ kb/ 204279
[2] http:/ / www.unixwiz. net/ tools/ nbtscan. html
NetWare Core Protocol
The NetWare Core Protocol (NCP) is a network protocol used in some products from Novell, Inc. It is usually
associated with the NetWare operating system, but parts of it have been implemented on other platforms such as
Linux, Windows NT and various flavors of Unix.
It is used to access file, print, directory, clock synchronization, messaging, remote command execution and other
network service functions. TCP/IP and IPX/SPX (obsoleted, technical support is provided only for NetWare
platform) are the supported underlying protocols. TCP/IP implementations use TCP/UDP port 524 and rely on SLP
for name resolution.
Novell eDirectory uses NCP for synchronizing data changes between the servers in a directory service tree.
Client-side implementations
• Novell Client for Windows Vista
[1]
from Novell.
• Novell Client for Windows 2000/XP/2003
[2]
from Novell.
• Novell Client f