Showing posts with label Networking. Show all posts
Showing posts with label Networking. Show all posts

Wednesday, December 16, 2009

Protocols in Networking.

In computing, a protocol is a set of rules which is used by computers to communicate with each other across a network. A protocol is a convention or standard that controls or enables the connection, communication, and data transfer between computing endpoints. In its simplest form, a protocol can be defined as the rules governing the syntax, semantics, and synchronization of communication. Protocols may be implemented by hardware, software, or a combination of the two. At the lowest level, a protocol defines the behavior of a hardware connection.


Typical properties

While protocols can vary greatly in purpose and sophistication, most specify one or more of the following properties:
  • Detection of the underlying physical connection (wired or wireless), or the existence of the other endpoint or node
  • Handshaking
  • Negotiation of various connection characteristics
  • How to start and end a message
  • Procedures on formatting a message
  • What to do with corrupted or improperly formatted messages (error correction)
  • How to detect unexpected loss of the connection, and what to do next
  • Termination of the session and/or connection.


Common protocols

  • IP (Internet Protocol)
  • UDP (User Datagram Protocol)
  • TCP (Transmission Control Protocol)
  • DHCP (Dynamic Host Configuration Protocol)
  • HTTP (Hypertext Transfer Protocol)
  • FTP (File Transfer Protocol)
  • Telnet (Telnet Remote Protocol)
  • SSH (Secure Shell Remote Protocol)
  • POP3 (Post Office Protocol 3)
  • SMTP (Simple Mail Transfer Protocol)
  • IMAP (Internet Message Access Protocol)
  • SOAP (Simple Object Access Protocol)
  • PPP (Point-to-Point Protocol)
  • RFB (Remote Framebuffer Protocol)

[edit]Protocol testing

In general, protocol testers work by capturing the information exchanged between a Device Under Test (DUT) and a reference device known to operate properly. In the example of a manufacturer producing a new keyboard for a personal computer, the Device Under Test would be the keyboard and the reference device, the PC. The information exchanged between the two devices is governed by rules set out in a technical specification called a "communication protocol". Both the nature of the communication and the actual data exchanged are defined by the specification. Since communication protocols are state-dependent (what should happen next depends on what previously happened), specifications are complex and the documents describing them can be hundreds of pages.
The captured information is decoded from raw digital form into a human-readable format that permits users of the protocol tester to easily review the exchanged information. Protocol testers vary in their abilities to display data in multiple views, automatically detect errors, determine the root causes of errors, generate timing diagrams, etc.
Some protocol testers can also generate traffic and thus act as the reference device. Such testers generate protocol-correct traffic for functional testing, and may also have the ability to deliberately introduce errors to test for the DUT's ability to deal with error conditions.
Protocol testing is an essential step towards commercialization of standards-based products. It helps to ensure that products from different manufacturers will operate together properly ("interoperate") and so satisfy customer expectations.