Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QTcpSocket settings to disable ACK

QTcpSocket settings to disable ACK

Scheduled Pinned Locked Moved Solved General and Desktop
6 Posts 3 Posters 1.3k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Svirac
    wrote on last edited by
    #1

    Hello,

    I am using QTcpServer and QTcpSocket to create TCP server and send packages. Platform is Windows 7.

    Here is the problem. My application is TCPIP Server, and I need to connect to Client which is also TCPIP but with ACK disabled.

    In the other words, I need to send TCPIP messages, and somehow “disable” waiting for ACK (once when connection is established).
    TCPIP client will not send ACK on message reception.

    I know that using UDP would have more sense, but it is customer requirement.

    I am using Qt 4.6.1. Is there any way how to “disable” sending/receiving ACK?
    I didn’t find any way how to set Timeout periods and winds size in Qt?

    Also, I was hoping that there is a way how to write message to socket and then “flush” data (and that would force QTcp to forget/reset waiting for ACK).

    It is a pretty important to me, I would appreciate any help or suggestion.

    aha_1980A 1 Reply Last reply
    0
    • S Svirac

      Hello,

      I am using QTcpServer and QTcpSocket to create TCP server and send packages. Platform is Windows 7.

      Here is the problem. My application is TCPIP Server, and I need to connect to Client which is also TCPIP but with ACK disabled.

      In the other words, I need to send TCPIP messages, and somehow “disable” waiting for ACK (once when connection is established).
      TCPIP client will not send ACK on message reception.

      I know that using UDP would have more sense, but it is customer requirement.

      I am using Qt 4.6.1. Is there any way how to “disable” sending/receiving ACK?
      I didn’t find any way how to set Timeout periods and winds size in Qt?

      Also, I was hoping that there is a way how to write message to socket and then “flush” data (and that would force QTcp to forget/reset waiting for ACK).

      It is a pretty important to me, I would appreciate any help or suggestion.

      aha_1980A Offline
      aha_1980A Offline
      aha_1980
      Lifetime Qt Champion
      wrote on last edited by
      #2

      @Svirac

      Is there any way how to “disable” sending/receiving ACK?

      I don't have the spec here, but I doubt this is possible with a default TCP stack (in the operating system! not in Qt)

      Honestly, it doesn't make sense either, as missing ACK leads to retransmissions. It's just the base of TCP.

      Can you tell us, why that would be needed?

      Qt has to stay free or it will die.

      1 Reply Last reply
      3
      • S Offline
        S Offline
        Svirac
        wrote on last edited by
        #3

        Hello aha,

        Thanks for your comment.
        I understand your confusion/comment....
        My understandings is that they want to reduce traffic, but they don't want to switch to UDP.
        I am not an expert, just average user.

        Here is snap from draft spec.
        0_1550426142405_Capture.JPG

        aha_1980A 1 Reply Last reply
        0
        • S Svirac

          Hello aha,

          Thanks for your comment.
          I understand your confusion/comment....
          My understandings is that they want to reduce traffic, but they don't want to switch to UDP.
          I am not an expert, just average user.

          Here is snap from draft spec.
          0_1550426142405_Capture.JPG

          aha_1980A Offline
          aha_1980A Offline
          aha_1980
          Lifetime Qt Champion
          wrote on last edited by aha_1980
          #4

          @Svirac You should really clearify this with your customer.

          It may be possible, he is speaking about an additional ACK on application base (i.e. Layer 5 to 7).

          You can reduce traffic, but not completely, because on some layer you need to sync both sides. TCP does that for you, automatically. UDP does not, so you have to take care data arrives completely and unaltered on the other side.

          Qt has to stay free or it will die.

          1 Reply Last reply
          3
          • S Offline
            S Offline
            Svirac
            wrote on last edited by
            #5

            Hi guys,
            Just to give you a feedback.
            Aha you were correct, by mistake they leave some definitions form higher level layer, it is not related to TCPIP.

            Thanks for all help, really appreciate it....

            1 Reply Last reply
            2
            • Kent-DorfmanK Offline
              Kent-DorfmanK Offline
              Kent-Dorfman
              wrote on last edited by
              #6

              As others have mentioned, if it is an application layer protocol riding on TCP then you can do whatever you want with the application layer ACKs, but you CANNOT disable TCP ACK messages and expect the network stack to work. If they want the latter then all I have to say is "Bad engineer! No cookie!"

              1 Reply Last reply
              0

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved