C
Calin Iaru
Hi all,
I am working on a sockets program. therefore I need more
info on Maximum Segment Size like how do I obtain it, why
would a WindowSize exist since the ACK packet is sent for
every other packet received and so on. I\ll take it one at
a time:
1)"the receive window specifies the number of bytes a
sender can transmit without receiving an ACK. For highest
efficiency, the receive window must be a multiple of the
TCP Maximum segment Size" MSDN
what confuses me is an article from KB 328890 that
states this:
" Instead of sending an acknowledgment for each TCP
segment received, TCP in Windows 2000 and later takes a
common approach to implementing delayed acknowledgments.
As data is received by TCP on a particular connection, it
sends an acknowledgment back only if one of the following
conditions is true:
No acknowledgment was sent for the previous segment
received.
A segment is received, but no other segment arrives within
200 milliseconds for that connection."
It seems that no matter what the size of the window is,
ACK occurs at every two kernel receives, or it can be
configurable. Then, what's the purpose of the window?
2)What is the difference between MTU defined as maximum
packet size in bytes that the transport transmits over the
network (in msdn words) and maximum segment size.
And how are these who calculated or deduced, how can I see
them from user space, and finally, how do they influence
the ACK?
I know that standard Ethernet MTU is 1460 bytes, but I am
working with a non standard adapter and technology. I also
know that "segment" means TCP layer, packet means Ethernet
layer. But I don't see the data flow.
The key word of this e-mail is "tcp window size" (actualy
three ), and I need to know more about this and ACK and
delayed ACK.
Best regards,
Calin
I am working on a sockets program. therefore I need more
info on Maximum Segment Size like how do I obtain it, why
would a WindowSize exist since the ACK packet is sent for
every other packet received and so on. I\ll take it one at
a time:
1)"the receive window specifies the number of bytes a
sender can transmit without receiving an ACK. For highest
efficiency, the receive window must be a multiple of the
TCP Maximum segment Size" MSDN
what confuses me is an article from KB 328890 that
states this:
" Instead of sending an acknowledgment for each TCP
segment received, TCP in Windows 2000 and later takes a
common approach to implementing delayed acknowledgments.
As data is received by TCP on a particular connection, it
sends an acknowledgment back only if one of the following
conditions is true:
No acknowledgment was sent for the previous segment
received.
A segment is received, but no other segment arrives within
200 milliseconds for that connection."
It seems that no matter what the size of the window is,
ACK occurs at every two kernel receives, or it can be
configurable. Then, what's the purpose of the window?
2)What is the difference between MTU defined as maximum
packet size in bytes that the transport transmits over the
network (in msdn words) and maximum segment size.
And how are these who calculated or deduced, how can I see
them from user space, and finally, how do they influence
the ACK?
I know that standard Ethernet MTU is 1460 bytes, but I am
working with a non standard adapter and technology. I also
know that "segment" means TCP layer, packet means Ethernet
layer. But I don't see the data flow.
The key word of this e-mail is "tcp window size" (actualy
three ), and I need to know more about this and ACK and
delayed ACK.
Best regards,
Calin