Wednesday, 29 August 2012

Protocol Testing


Have you ever thought that how two people chat face-to-face with each other irrespective of the distance between them?  Believe us, this is not a magic, it’s just the game of protocols. But “What is this protocol?????”

Protocol is the special set of rules that are followed in telecommunication network when two entities communicate with each other. Protocols specify interactions between the communicating entities. In fact protocol is an agreed-upon format for transmitting the data between two devices.

Importance of Protocol

Protocol plays a key role in today's communication world, without this it is not possible for one computer to communicate with another. Let’s have an example from daily life to understand the importance of protocol.
Just Imagine you are in 
France but you don't know how to speak French. Is it possible for you to talk to a man who doesn't know any other language except French?
Well certainly not!! Although you could try to communicate with him non verbally but again you'd find it difficult to let him know your thoughts and ideas; to get the ball rolling either you need to know French or he needs to know the language that you speak!!

From this example, it is apparent that if two human beings want to communicate then they must understand and speak in a common language.

This same analogy applies in modern communication systems; if equipment wants to receive information from, or send information to another, then both of them must use the same language to accomplish the task. This is where protocol comes into picture.  

“A Protocol is set of rules that govern communication between two or more equipments.”



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)
Ø  CDMA2000 1xRTT (CDMA 1x Radio Transmission Technology)


Testing Protocols

Product companies like Cisco, Nortel, Juniper, Alcatel, Huawei etc. have networking devices like routers, switches, modems, wireless access-point, firewalls. These devices use different protocols to communicate e.g. Cisco routers use EIGRP, OSPF etc. to exchange routing information. This implementation will certainly need some testing to ensure the communication is working fine through these protocols.

Protocol testing is the testing the functionality of any given protocol should function with respect to its RFC. Protocol testing involves testing functionality, protocol stack, interoperability, performance etc...

Usually protocol testing is done by connecting a DUT (Device under test) to other devices like routers/switches and configuring the protocol in it, then checking the packet structure of the packets send by the devices, checking protocol algorithm, their performance, scalability etc. using tools like wireshark, IxNetworks , Spirent etc. 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 will be 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. The captured information is decoded from raw digital form into a human-readable format that permits 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. Sometimes protocol testers may be required also generate protocol-correct traffic for functional testing, and may also have to deliberately introduce errors to test for the DUT's ability to deal with error conditions.

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. This makes the job of protocol testing quite challenging.

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. This type of testing is imperative for new emerging communication technologies.