diff --git a/tools/ping/server/ndn-ping-server.cpp b/tools/ping/server/ndn-ping-server.cpp
index 998c40d..a642ed1 100644
--- a/tools/ping/server/ndn-ping-server.cpp
+++ b/tools/ping/server/ndn-ping-server.cpp
@@ -86,6 +86,7 @@
   options.shouldLimitSatisfied = false;
   options.nMaxPings = 0;
   options.shouldPrintTimestamp = false;
+  options.payloadSize = 0;
 
   namespace po = boost::program_options;
 
@@ -98,6 +99,7 @@
                    std::to_string(getMinimumFreshnessPeriod().count()) + " ms)").c_str())
     ("satisfy,p", po::value<int>(&options.nMaxPings), "set maximum number of pings to be satisfied")
     ("timestamp,t", "log timestamp with responses")
+    ("size,s", po::value<int>(&options.payloadSize), "specify size of response payload")
   ;
   po::options_description hiddenOptDesc("Hidden options");
   hiddenOptDesc.add_options()
@@ -154,6 +156,13 @@
     if (optVm.count("timestamp") > 0) {
       options.shouldPrintTimestamp = true;
     }
+
+    if (optVm.count("size") > 0) {
+      if (options.payloadSize < 0) {
+        std::cerr << "ERROR: Payload size must be greater than or equal to 0" << std::endl;
+        usage(visibleOptDesc);
+      }
+    }
   }
   catch (const po::error& e) {
     std::cerr << "ERROR: " << e.what() << std::endl;
diff --git a/tools/ping/server/ping-server.cpp b/tools/ping/server/ping-server.cpp
index e75f649..e0d0beb 100644
--- a/tools/ping/server/ping-server.cpp
+++ b/tools/ping/server/ping-server.cpp
@@ -32,6 +32,9 @@
   , m_nPings(0)
   , m_face(face)
 {
+  shared_ptr<Buffer> b = make_shared<Buffer>();
+  b->assign(m_options.payloadSize, 'a');
+  m_payload = Block(tlv::Content, b);
 }
 
 void
@@ -60,11 +63,9 @@
 
   afterReceive(interestName);
 
-  char responseContent[] = "NDN TLV Ping Response";
   shared_ptr<Data> data = make_shared<Data>(interestName);
   data->setFreshnessPeriod(m_options.freshnessPeriod);
-  data->setContent(reinterpret_cast<const uint8_t*>(responseContent),
-                   sizeof(responseContent));
+  data->setContent(m_payload);
   m_keyChain.sign(*data);
   m_face.put(*data);
 
diff --git a/tools/ping/server/ping-server.hpp b/tools/ping/server/ping-server.hpp
index ddc3a19..c5e9634 100644
--- a/tools/ping/server/ping-server.hpp
+++ b/tools/ping/server/ping-server.hpp
@@ -39,6 +39,7 @@
   bool shouldLimitSatisfied;          //!< should limit the number of pings satisfied
   int nMaxPings;                      //!< max number of pings to satisfy
   bool shouldPrintTimestamp;          //!< print timestamp when response sent
+  int payloadSize;                    //!< user specified payload size
 };
 
 /**
@@ -90,6 +91,7 @@
   KeyChain m_keyChain;
   int m_nPings;
   Face& m_face;
+  Block m_payload;
 };
 
 } // namespace server
