On 2016年06月29日 14:13, Zhang Chen wrote:


On 06/29/2016 09:55 AM, Jason Wang wrote:


On 2016年06月28日 14:33, Zhang Chen wrote:


primary guest response pkt(seq=primary_seq+1,ack=client_seq+1+data_len,flag=ACK) secondary guest response pkt(seq=secondary_seq+1,ack=client_seq+1+data_len,flag=ACK)

Is ACK a must here?

Yes.


Looks not, e.g what happens if guest does not use piggybacking acks?



If guest does not use piggybacking acks, it will send a independent packet for ack.
we will get this packet.
like:
pkt(seq=xxxx,ack=xxx,flag=ACK).

Right, so looks like if guest want to send some data too, it can send tcp packet without ACK set?

NO, I tried it. the tcp packet always has ACK set except the SYN packet and FIN packet.
you can dump the packet to see it.

Thanks
Zhang Chen

Right, RFC said:

"   If the ACK control bit is set this field contains the value of the
    next sequence number the sender of the segment is expecting to
    receive.  Once a connection is established this is always sent.
"

Reply via email to