Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8852191
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 14, 20262026-06-14T13:20:18+00:00 2026-06-14T13:20:18+00:00

I have a custom protocol overlaying TCP that can be described as follows:- Client

  • 0

I have a custom protocol overlaying TCP that can be described as follows:-

Client sends a packet A to the server. The server ACKS the packet A.
Client sends a packet B.

In other words, at any point in time, there is only one unacknowledged packet. Hence, the factors that play into account for sending messages as fast as possible are:-

  1. How soon can a packet arrive at the destination. This implies least amount of fragmentation
    done by TCP. If a packet can arrive in a single segment as opposed to 5 segments, the quicker the server can respond to it.

  2. The unit of work done by the server for that packet. At present, i am not focused on this point, though eventually, i will touch it also.

  3. Also assume, the rate of loss is negligible.

  4. Nagle is disabled.

  5. Typical packet sizes vary from 1KB to 3KB.

  6. Bandwidth is 1Gb/sec

I am thinking that if i configure MTU equal to the biggest message size (3KB + headers), this should impact the number of messages that i can send in a second. My question is that are there any negative consequences in changing MTU. This application runs inside the LAN in a managed environment.

Alternatively, if i set the don’t fragment flag, would it be equivalent to the above change?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-14T13:20:19+00:00Added an answer on June 14, 2026 at 1:20 pm

    First, let’s clarify the difference between MTU and MSS. These belong to different layers of the stack (2 and 3).

    TCP/IP is a quite unfortunate layered cake, both of which support fragmentation but differently, and they do not cooperate on this matter.

    IP fragmentation is something that TCP is unaware of. In fact, if one of the IP fragments lost, the whole series is declared lost. Not so is for TCP: if one of the IP datagrams which are part of the same TCP stream is lost, and they were fragmented by the TCP, only retransmit of the lost parts is required.

    The core reason for this mess is that a router must be able to impedance-match between two physical networks with different MTUs without understanding the higher (TCP) protocol.

    Now, all modern networks support “jumbo frames” (you have to configure your NIC to be able to send jumbo frames; all modern NICs will always be able to receive frames up to 90xx bytes).

    As usual with increasing MTU, it is

    • not useful unless you increase MSS
    • improves performance (bandwidth), and
    • hurts performance (zero-load latency to first byte)

    In some applications, like, for example, Gigalinx implementation og GigE vision, increasing MTU is a requirement. Over fast networks the overhead of 1500 byte MTU is intolerable.

    As an architect, the thing to ask yourself is what is your application actually doing. If there is a “relevant packet size”, in sense that “until first 3kB of data received there’s nothing to do with the rest”, and you really need this tiny performance edge, increase MTU. Before doing that, consider dropping TCP altogether in favor of more ethernet-friendly protocol, and of course do not implement it yourself but choose something like ZeroMQ which works good.

    Second question: Do not fragment is an IP setting. Typically useful only in routers, which are expected to match networks of different MTU. It means “discard packet unless I can relay it to the other network”. If this is sometimes the case, TCP cannot work over this layer. It will try to retransmit and fail again and again, and eventually disconnect and further behavior will depend on what application is doing. This is a typical situation on the internet, with public misconfigured wifi networks and home networks. You can sometimes browse facebook but not practically watch anything on youtube. This is why. Network administrators would never know the reason.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm in the designing stages of a custom tcp/ip protocol for mobile client-server communication.
I have a custom HTTP server that implements the HTTP 1.1 protocol. I have
I have custom component that I can place in my layout file (XML) for
I have written a custom client socket factory for RMI, so that if direct
I have a webpage that uses custom protocol handlers to open apps. One links
I currently have a url that looks like this: protocol://folder/file.js I can open this
I have problem in Mule when I was using custom tcp protocol and inside
I have a windows service (.net) that is an implementation of a custom protocol.
I have a custom class that conforms to the MKAnnotation protocol. An instance of
I have a custom UIView that implements the UIKeyInput protocol and has - (BOOL)

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.