ZeroMQ in details
In GIGAFLOW
In Gigaflow, this is “relatively” simple. Client should always be 1 and server should always be 2.
We only send a single port (which should hopefully be the correct server port) when sending our data to apex.
For finding this “server port” we:
- Use a statistical algorithm to determine which port is used the most by src and dst ips, if its above a predefined threshold then we use this as the server port and can use that to determine 1 and 2.
- If we don’t get above the threshold, we then see which side is using a port < 1024 and use this information to determine 1 and 2
- If no port <1024 then we check our pre-defined application ports to determine 1 and 2
- If no pre-defined match is found we then just treat the server(2) as the destination ip
With this, to apex we then send
1IP 2IP ServerPort Bytes1->2 Bytes2->1 Packets1->2 Packets2->1 etc……
APEX Packet
Before we get into Client vs Server there are a couple of things to understand regarding different types of analysis performed by Network Trending in Observer which is responsible for metadata creation in Apex.
Types of trending in Observer:
- Pairs Trending
- Creates top talker data on all traffic (with some exceptions for all)
- TopN MAC, IP, Application, VLAN, etc
- Uses Key Fields 1 -> 2, 1 <- 2
- Generally 1 = Client, 2 = Server
- Please see ‘Who is the client in Apex’ below for explanations
- Does not perform any response time analysis
- Creates top talker data on all traffic (with some exceptions for all)
- Application Performance Analysis (APA)
- Performs response time analysis on all IP traffic
- Uses Key Fields Client IP and Server IP
- Application Transaction Analysis (ATA)
- Performs analysis on transactions for specific applications
- Non standard port numbers running a known application will not be tracked
- Example: TCP 8080 is HTTP, but has not been defined in Observer
- Non standard port numbers running a known application will not be tracked
- Uses Key Fields Client IP and Server IP
- Performs analysis on transactions for specific applications
Once the Client and Server IPs are understood, all other metrics are put into their corresponding Client/Server, 1 -> 2, and 1 <- 2 buckets.
Who is the client in Apex?
TCP Based Conversations
- If Observer sees a SYN packet
- The source is the Client, the destination is the Server
- Customers will sometimes complain that we have labeled a ‘Server’ as a Client
- They don’t initially realize that their server acted as a client to a backend Server
- If the port associated with the Server is defined, Observer will classify it as that defined application (TCP 80 = HTTP)
- If the port associated with the Server is not defined, Observer will classify it as Other
- The source is the Client, the destination is the Server
- If Observer does not see a SYN packet, but either of the source or destination TCP Ports are a known port/application
- The IP Address associated with the known port is the server
- Example:
- Observer starts collecting traffic between IP 1/TCP Port 5987 and IP 2/TCP Port 80 but the beginning of the conversation is missing
- Because TCP Port 80 is HTTP & is defined in Observer, IP 2 will be the Server running HTTP
- Example:
- The IP Address associated with the known port is the server
- If Observer does not see a SYN packet and neither of the source or destination TCP ports are known
- Observer uses a hierarchy to try and determine what may be the Client versus Server
- Lowest port number
- First seen packet, Client is sender, Server is Receiver
- Observer uses a hierarchy to try and determine what may be the Client versus Server
UDP Based Conversations
- UDP port number is defined
- The IP Addresses associated with the defined UDP port number is the server
- UDP port number is not defined
- Observer uses a hierarchy to try to determine what may be the Client vs the Server
i. Lowest port number
ii. First seen packet, Client is sender, Server is Receiver
What happens in Trending when Observer sees traffic with ports that are not defined?
- Pairs Trending
- Using Observer hierarchy as defined above, Pairs will put Client and Server metrics into specific Key Fields
i. Client = 1 -> 2
ii. Server = 1 <- 2
- This includes all 1 -> 2, 1 <- 2 fields, including IP Address
- Application Performance Analysis
- Using Observer hierarchy as defined above, APA will track metrics on the ‘Other’ application
- Observer will use all key fields surrounding APA with the exception of
i. Client IP
ii. Server IP
- This will result in stats showing up for things like response time or network delay, but with no IP Addresses
- Application Transaction Analysis
- No stats are collected for ATA
How does Apex deal with metadata from GigaFlow?
Please log in or sign up to comment.