-
Notifications
You must be signed in to change notification settings - Fork 182
Tracing TCP #150
Comments
Are you sure referring to this as "TCP Header" is accurate? Afaik TCP Header structure is predefined by the TCP spec. What PROXY protocol seems to be doing is sending a specialized payload upon establishing a connection - a mechanism that is not fully transparent to the receiver, i.e. the receiver needs to actually support that or be confused by the incoming data stream. Please correct me if I am wrong, as I only briefly skimmed the PROXY spec. Another issue is that tracing headers need to be sent on per-request basis, not just upon establishing the TCP connection. |
probably not, that's just my attempt at using a familiar nomenclature. in the above link it's described as
I'm not sure what term would work better but hopefully this conveys the concept accurately. happy to edit the description to something that's more technically accurate if there's a suggestion available.
this is correct. the receiver of the tcp stream needs to be aware of how to parse this.
yeah, I raised this as a question in the original post too. for our company this is an acceptable tradeoff. using http connect tunnels as an example, we could establish the tcp trace id as the parent trace id for the tunnel and then the requests within that tunnel could be treated separately or as children. I definitely understand there's some issues to solve or trade offs to accept to make it work, do you know of any other strategies for achieving this? We deal mostly with encrypted data and a lot of non-http payloads so parsing the payload and injecting a header isn't always an option. |
You can try it, but I don't think the mechanism is generic enough, especially given one-per-connection limitation that's not going to work for many users. |
Background
Problem
We want to have all requests (HTTP and TCP) traced throughout our system from the edge. The TCP streams are encrypted. We cannot attach trace data to each request.
Proposal
We believe that there is value in exploring using a TCP header similar to PROXY Protocol to inject a TCP header.
The PROXY header is injected into the TCP packet and looks something like this
We want to propose something similar like this
We've seen other people ask if this is possible
I haven't seen a proposed solution yet.
Questions to address
The text was updated successfully, but these errors were encountered: