Ordering Guarantees in WFP RRS feed

  • Question

  • Is ordering of packets in WFP assured?

    For example, let's say I've got a client making a TCP/IP request, maybe requesting a web page, from a server. My WFP callout is running on the server. Will my callout see the following order of events for this stream:

    INBOUND <-- initial request

    OUTBOUND <-- initial response

    INBOUND <-- Ack of the last outbound

    OUTBOUND <-- ...


    I'm concerned about receiving the second round of client INBOUND packets before my callout has seen the servers OUTBOUND response packets.

    Thanks in advance!

    Monday, June 2, 2014 6:03 PM

All replies

  • 1.) WFP only sees what apps are trying to put or get through the stack. Logically a Clients inbound request will result in the servers outbound reply so the former will be the cause for the latter and hence the ordering is obvious.

    WFP won't see the second round of clients INBOUND packets unless the it has let go of the OUTBOUND response packets(which would actually be the cause of the second round of clients requests/packets).

    <For TCP: Injection of packets must be done OOB to ensure sequence/order(MS correct me if im wrong)>

    2.) OR I am out of line here having misunderstood the query my friend.


    Umar Yaqoob

    ___________ Regards Umar Yaqoob ___________

    Monday, June 2, 2014 9:01 PM
  • Ordering is not guaranteed by WFP until you get to FWPM_LAYER_STREAM_V{4|6}.  At these layers, the TCP state machine has properly ordered the packets to provide the contiguous data.

    Hope this helps.

    Dusty Harper [MSFT]
    Microsoft Corporation
    This posting is provided "AS IS", with NO warranties and confers NO rights

    Tuesday, June 3, 2014 8:48 PM