Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Some are saying that bigger packets are better to send then smaller.

But in this app: http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/message/messagesegmentation.html

The lower the packet size is, the smaller amount of time it needs to reach the destination. So I don't understand why to prefer bigger size? Can you please explain it to me? Thank you

share|improve this question

4 Answers 4

up vote 1 down vote accepted

There's a lot of things to consider. The important ones are:

MTU

The MTU of a particular medium dictates the size of the largest packet that can be sent down it. Across the Internet this is typically 1500 bytes though this may vary if other technologies such as PPPoA are involved. If data larger than the MTU needs to be sent, the data will be fragmented into multiple packets - this takes time.

Overhead

Everything you transmit has an overhead - typically meta data that describes what you're sending. Sending larger volumes of data at a time reduces this overhead and thus the required network bandwidth.

Failures

Depending on the protocols you are using, you may detect and compensate for lost packets. If larger volumes of data are sent at a time there is more to resend on failure. In the same vein, if smaller volumes of data are sent then there is an increased likelyhood of failure.

Requirement

There may be a requirement of the client applications to get data quickly or in bulk. For example, video streaming requires a small amount of data as quickly as possible for the video to start playing. Messaging systems such as IRC can't display the message until it has been fully received. As such, video streaming suits smaller packets and messaging may suit larger packets.

Protocol

The protocol you're using dictates the size of data to send. For example, with TCP, if you had a small window size you would have more overhead for acknowledgements. If you had a large window size, you suffer the issue with failure re-sends mentioned above.

share|improve this answer
    
OK, I understand. So what is the purpose of this application? What is it reflecting? Now if I know truth, it just confuses me. –  exeq Mar 20 '13 at 0:58

A car can get across the country faster than a truck. But if you need to get two tons of pumpkins from New York to Los Angeles, a truck is going to get the job done a lot faster than a car. Why? Because the truck, though slower, carries more and thus needs fewer trips.

share|improve this answer
    
OK, so in your analogy the message in above application is two tons of pumpkins. Packet size is either car or truck. Am I right? If yes, this application still prove that cars are faster. Why? –  exeq Mar 20 '13 at 0:49
    
If your application is geared towards making a connection to a user & then sending a ton of data, jumbo packets work. If your application is based on small bursts of data or sending data to many clients, then smaller packets are best. That said, in my experience, jumbo packets are more headache than they are worth because you need to make sure the whole network chain can handle jumbo packets. And many switches choke on that. –  JakeGould Mar 20 '13 at 2:03
    
If you have 2 tons of pumpkins to send all at once you want the truck (large packets). If you have 5 pumpkins at a time you want the car (small packets). If you use the car with 2 tons you need to make many cross country trips. If you use a truck with 5 pumpkins it gets there slower. –  Grant Mar 20 '13 at 3:38
1  
"Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway" –  Chris S Mar 20 '13 at 3:45
    
The car is faster and even gets across the country faster. However, since it has to make more trips, the time it takes you to get the two tons of pumpkins across the country is longer. You typically don't care how long one packet takes, you care how long it takes to transfer all the data. –  David Schwartz Mar 20 '13 at 4:02

For things like voip phones and instant messaging you want smaller packets. They travel faster but carry less data. You will need more of them but each individual piece gets there faster.

That optimises for latency - how long it takes for an individual word or sound to get to the destination.

Larger packets optimize for throughput - how long it takes the entire set of information to arrive. This is useful for things like file transfers where having a portion of a file does you no good. You can't do anything until you have all of it.

VOIP in particular uses smaller packets. If you waited until you had lots of data to send the transfer would be faster from the time you started sending until the time you finished - but the guy at the other end wouldn't hear anything until you finished your sentence and started sending it.

share|improve this answer

It's pretty simple, each packet has some overhead. The time a packet takes to transmit is based on its size and the latency of the network.

So, one small packet will get to the destination fastest. But if you have a lot of data to send the overhead of many small packets will add up to be significant. If you send fewer larger packets then the overhead will remain small and the overall transfer will be faster.

To summarize:

  • For small total data, a small packet is fastest
  • For large total data, large packets are fastest
share|improve this answer
    
“For a very data?” –  JakeGould Mar 20 '13 at 10:11
1  
This is what happens when you work until 3AM. Thank you. –  Chris S Mar 20 '13 at 14:00

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.