Arghya Das wrote: > wondering if UDP protocol doesn't have any mechanism of error contol like > TCP and no ordering of data packets No. UDP is an unreliable datagram protocol. Adding reliability is up to the application *if* the application desires or needs it. > then how does VOIP calls work..? The application handles it, not the kernel. > i mean if a sender sends a message over skype then the receiver can > receive the message scrambled or a partial message cause there is no > way of ordering of packets or error checking of packets and some > packets might also get lost during transmission. Yes. That all correct. > But that doesn't happen, The packets *do* get scrambled, lost, duplicated. If you were observing the network data you would see this. The application program doesn't show that to you. You are observing the program. The program handles it internally. You are only seeing the external program behavior. > so what is the logic behind this..? > > does anyone have an answer...? If the application needs it then it creates its own protocol layer on top of UDP and adds it. This is the advantage of UDP. With TCP all of that overhead is added by the kernel. An application cannot remove the overhead. If an application needs something in between UDP an TCP then it can't remove overhead from TCP but it can add what it needs to UDP. For time urgent data transmission such as VOIP or games or many other things the sender "sprays" packets continuously at the receiver. If some packets are lost in the middle the receiver does not want to wait for them to arrive. A voip call will accept losing packets in the middle in order to keep up with the data stream. Typically an application will add a packet serial number counter to the data being sent over UDP. Every packet sent will have an incremented value. Upon receiving the packets the application will check the serial number count. Typically it might read packets that are later than any previously read packet. Typically it might discard any packet with a serial number count less than or equal to any previously read packet. This provides for the application to always read forward in time. All duplicates will be discarded. Some late arriving packets will be lost. For something like VOIP that is mostly acceptable quality loss. You might never hear it on a reasonably good connection. Bob
Attachment:
signature.asc
Description: Digital signature