|
-
June 25th, 2004, 12:48 AM
#29
Member
"If an echo-request is sent, the target is supposed to send the echo back unaltered (sequence numbers + data)."
I'd like to add to that for the people that might get these confused if you're brand new to this, ICMP Sequence Numbers are completely different than that of TCP Sequence Numbers. ICMP Seq #'s are used in matching requests with replies... not in synchronizing TCP connections.
I'd also like to add that TCP's Flag control bit 'PSH' (Push) wasn't covered as much (imo) as it could have been. PSH, when set, flushes any data buffered inside the sender OR receiver's queues then hands it to the application. This was established by the thread so far for the most part, however, many might not know the rest. The PSH bit is requested by the sending application (client) and isn't generated by TCP itself. PSH also prevents 'deadlock' and is only set when the client sends the last Byte of a complete request (for requests larger than the MSS multiple ACKS are requested inside the stream until the PSH/ACK is sent telling the app to push all the previous ACK datagrams including it's self [PSH/ACK] to the application.) If the segments don't total over the Max-Segment Size {MSS} (1460 Bytes for ethernet LAN tranmission & up to 65,495 Bytes for WAN connections) then no fragmentation needs to occur and the request can be sent as 1 whole datagram with the PSH/ACK rather than several ACKS that would conclude with a PSH/ACK (if fragmentation needs to occur in that scenario).
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
|