diff --git a/build/source_list.bzl b/build/source_list.bzl
index 4d1ff62..4f58c6a 100644
--- a/build/source_list.bzl
+++ b/build/source_list.bzl
@@ -287,6 +287,8 @@
     "quic/core/quic_data_reader.h",
     "quic/core/quic_data_writer.h",
     "quic/core/quic_datagram_queue.h",
+    "quic/core/quic_default_clock.h",
+    "quic/core/quic_default_connection_helper.h",
     "quic/core/quic_dispatcher.h",
     "quic/core/quic_error_codes.h",
     "quic/core/quic_flags_list.h",
@@ -613,6 +615,7 @@
     "quic/core/quic_data_reader.cc",
     "quic/core/quic_data_writer.cc",
     "quic/core/quic_datagram_queue.cc",
+    "quic/core/quic_default_clock.cc",
     "quic/core/quic_dispatcher.cc",
     "quic/core/quic_error_codes.cc",
     "quic/core/quic_flow_controller.cc",
diff --git a/build/source_list.gni b/build/source_list.gni
index 8658d49..5cf7491 100644
--- a/build/source_list.gni
+++ b/build/source_list.gni
@@ -287,6 +287,8 @@
     "src/quiche/quic/core/quic_data_reader.h",
     "src/quiche/quic/core/quic_data_writer.h",
     "src/quiche/quic/core/quic_datagram_queue.h",
+    "src/quiche/quic/core/quic_default_clock.h",
+    "src/quiche/quic/core/quic_default_connection_helper.h",
     "src/quiche/quic/core/quic_dispatcher.h",
     "src/quiche/quic/core/quic_error_codes.h",
     "src/quiche/quic/core/quic_flags_list.h",
@@ -613,6 +615,7 @@
     "src/quiche/quic/core/quic_data_reader.cc",
     "src/quiche/quic/core/quic_data_writer.cc",
     "src/quiche/quic/core/quic_datagram_queue.cc",
+    "src/quiche/quic/core/quic_default_clock.cc",
     "src/quiche/quic/core/quic_dispatcher.cc",
     "src/quiche/quic/core/quic_error_codes.cc",
     "src/quiche/quic/core/quic_flow_controller.cc",
diff --git a/build/source_list.json b/build/source_list.json
index cca88cb..0334858 100644
--- a/build/source_list.json
+++ b/build/source_list.json
@@ -286,6 +286,8 @@
     "quiche/quic/core/quic_data_reader.h",
     "quiche/quic/core/quic_data_writer.h",
     "quiche/quic/core/quic_datagram_queue.h",
+    "quiche/quic/core/quic_default_clock.h",
+    "quiche/quic/core/quic_default_connection_helper.h",
     "quiche/quic/core/quic_dispatcher.h",
     "quiche/quic/core/quic_error_codes.h",
     "quiche/quic/core/quic_flags_list.h",
@@ -612,6 +614,7 @@
     "quiche/quic/core/quic_data_reader.cc",
     "quiche/quic/core/quic_data_writer.cc",
     "quiche/quic/core/quic_datagram_queue.cc",
+    "quiche/quic/core/quic_default_clock.cc",
     "quiche/quic/core/quic_dispatcher.cc",
     "quiche/quic/core/quic_error_codes.cc",
     "quiche/quic/core/quic_flow_controller.cc",
diff --git a/quiche/quic/core/quic_default_clock.cc b/quiche/quic/core/quic_default_clock.cc
new file mode 100644
index 0000000..1418efb
--- /dev/null
+++ b/quiche/quic/core/quic_default_clock.cc
@@ -0,0 +1,31 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "quiche/quic/core/quic_default_clock.h"
+
+#include "absl/time/clock.h"
+
+namespace quic {
+
+QuicDefaultClock* QuicDefaultClock::Get() {
+  static QuicDefaultClock* clock = new QuicDefaultClock();
+  return clock;
+}
+
+QuicTime QuicDefaultClock::ApproximateNow() const { return Now(); }
+
+QuicTime QuicDefaultClock::Now() const {
+  return CreateTimeFromMicroseconds(absl::GetCurrentTimeNanos() / 1000);
+}
+
+QuicWallTime QuicDefaultClock::WallNow() const {
+  return QuicWallTime::FromUNIXMicroseconds(absl::GetCurrentTimeNanos() / 1000);
+}
+
+QuicTime QuicDefaultClock::ConvertWallTimeToQuicTime(
+    const QuicWallTime& walltime) const {
+  return CreateTimeFromMicroseconds(walltime.ToUNIXMicroseconds());
+}
+
+}  // namespace quic
diff --git a/quiche/quic/core/quic_default_clock.h b/quiche/quic/core/quic_default_clock.h
new file mode 100644
index 0000000..96fec75
--- /dev/null
+++ b/quiche/quic/core/quic_default_clock.h
@@ -0,0 +1,34 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef QUICHE_QUIC_CORE_QUIC_DEFAULT_CLOCK_H_
+#define QUICHE_QUIC_CORE_QUIC_DEFAULT_CLOCK_H_
+
+#include "quiche/quic/core/quic_clock.h"
+#include "quiche/quic/core/quic_time.h"
+#include "quiche/quic/platform/api/quic_export.h"
+
+namespace quic {
+
+// A QuicClock based on Abseil time API.  Thread-safe.
+class QUIC_EXPORT_PRIVATE QuicDefaultClock : public QuicClock {
+ public:
+  // Provides a single default stateless instance of QuicDefaultClock.
+  static QuicDefaultClock* Get();
+
+  explicit QuicDefaultClock() = default;
+  QuicDefaultClock(const QuicDefaultClock&) = delete;
+  QuicDefaultClock& operator=(const QuicDefaultClock&) = delete;
+
+  // QuicClock implementation.
+  QuicTime ApproximateNow() const override;
+  QuicTime Now() const override;
+  QuicWallTime WallNow() const override;
+  QuicTime ConvertWallTimeToQuicTime(
+      const QuicWallTime& walltime) const override;
+};
+
+}  // namespace quic
+
+#endif  // QUICHE_QUIC_CORE_QUIC_DEFAULT_CLOCK_H_
diff --git a/quiche/quic/core/quic_default_connection_helper.h b/quiche/quic/core/quic_default_connection_helper.h
new file mode 100644
index 0000000..3a10b43
--- /dev/null
+++ b/quiche/quic/core/quic_default_connection_helper.h
@@ -0,0 +1,49 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef QUICHE_QUIC_CORE_QUIC_DEFAULT_CONNECTION_HELPER_H_
+#define QUICHE_QUIC_CORE_QUIC_DEFAULT_CONNECTION_HELPER_H_
+
+#include "quiche/quic/core/crypto/quic_random.h"
+#include "quiche/quic/core/quic_connection.h"
+#include "quiche/quic/core/quic_default_clock.h"
+#include "quiche/common/simple_buffer_allocator.h"
+
+namespace quic {
+
+// A default implementation of QuicConnectionHelperInterface.  Thread-safe.
+class QUIC_EXPORT_PRIVATE QuicDefaultConnectionHelper
+    : public QuicConnectionHelperInterface {
+ public:
+  static QuicDefaultConnectionHelper* Get() {
+    static QuicDefaultConnectionHelper* helper =
+        new QuicDefaultConnectionHelper();
+    return helper;
+  }
+
+  // Creates a helper that uses the default allocator.
+  QuicDefaultConnectionHelper() : QuicDefaultConnectionHelper(nullptr) {}
+  // If |allocator| is nullptr, the default one is used.
+  QuicDefaultConnectionHelper(
+      std::unique_ptr<quiche::QuicheBufferAllocator> allocator)
+      : allocator_(std::move(allocator)) {}
+
+  QuicDefaultConnectionHelper(const QuicDefaultConnectionHelper&) = delete;
+  QuicDefaultConnectionHelper& operator=(const QuicDefaultConnectionHelper&) =
+      delete;
+
+  const QuicClock* GetClock() const override { return QuicDefaultClock::Get(); }
+  QuicRandom* GetRandomGenerator() override {
+    return QuicRandom::GetInstance();
+  }
+  quiche::QuicheBufferAllocator* GetStreamSendBufferAllocator() override {
+    return allocator_ ? allocator_.get() : quiche::SimpleBufferAllocator::Get();
+  }
+
+ private:
+  std::unique_ptr<quiche::QuicheBufferAllocator> allocator_;
+};
+}  // namespace quic
+
+#endif  // QUICHE_QUIC_CORE_QUIC_DEFAULT_CONNECTION_HELPER_H_
