UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TrafficControl.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5// Includes
6#include "CoreMinimal.h"
9#include "EngineLogs.h"
10
11
12struct FAckSample;
13struct FSeqSample;
16
23
25{
26 double Timestamp;
28};
29
38{
39public:
41
44
45 double GetLatestRTT() const { return LatestRTT; }
46 uint32 GetBytesInFlight() const { return BytesInFlight; }
47 uint32 GetPacketsInFlight() const { return (uint32)OutPacketRecords.Count(); }
48
49private:
50 FNetworkCongestionControl* TrafficControlModule;
51
60
61 using SeqT = TSequenceNumber<8, uint8>;
62
63 double LatestUplinkBandwidth;
64 double LatestRTT;
65 SeqT OutSeq; // The seq number of last sent packet.
66 SeqT OutAckedSeq; // The seq number of last acked packet.
67 // Number of unacked bytes which is the sum of all packet size
68 // in the OutPacketRecords.
69 uint32 BytesInFlight;
70 bool bInitialized; // Whether the first packet has been sent.
71};
72
79{
80public:
82
84 ENGINE_API bool IsReadyToSend(double Timestamp) const;
86
87private:
89
90 double MinRTT; // Estimated propagation round-trip time in s.
91 double NetSpeed; // Configured uplink bandwidth in bytes/sec.
92 uint32 MaxPacketsAllowedInFlight; // Max allowed packets in flight, typically the HistorySize of TSequenceHistory.
93
94private:
95 void UpdateMinRTT(double Timestamp);
96 double GetMinRTT() const;
97 double GetCongestionWindow() const;
98};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition TrafficControl.h:79
ENGINE_API bool IsReadyToSend(double Timestamp) const
Definition TrafficControl.cpp:39
ENGINE_API void OnAck(const FAckSample &AckSample)
Definition TrafficControl.cpp:33
ENGINE_API void OnSend(const FSeqSample &SeqSample)
Definition TrafficControl.cpp:58
Definition TrafficControl.h:38
ENGINE_API void OnAck(const FAckSample &AckSample)
Definition TrafficControl.cpp:110
double GetLatestRTT() const
Definition TrafficControl.h:45
uint32 GetBytesInFlight() const
Definition TrafficControl.h:46
ENGINE_API void OnSend(const FSeqSample &SeqSample)
Definition TrafficControl.cpp:79
uint32 GetPacketsInFlight() const
Definition TrafficControl.h:47
Definition ResizableCircularQueue.h:21
SIZE_T Count() const
Definition ResizableCircularQueue.h:34
Definition SequenceNumber.h:13
Definition TrafficControl.h:25
int32 Ack
Definition TrafficControl.h:27
double Timestamp
Definition TrafficControl.h:26
Definition TrafficControl.h:18
int32 Seq
Definition TrafficControl.h:20
int32 PacketSize
Definition TrafficControl.h:21
double Timestamp
Definition TrafficControl.h:19