diff --git a/transport/control.go b/transport/control.go
index 6b5201e..f6b38a5 100644
--- a/transport/control.go
+++ b/transport/control.go
@@ -86,7 +86,8 @@
 }
 
 type ping struct {
-	ack bool
+	ack  bool
+	data [8]byte
 }
 
 func (ping) isItem() bool {
diff --git a/transport/http2_client.go b/transport/http2_client.go
index b13fb78..9bbbb4d 100644
--- a/transport/http2_client.go
+++ b/transport/http2_client.go
@@ -646,7 +646,9 @@
 }
 
 func (t *http2Client) handlePing(f *http2.PingFrame) {
-	t.controlBuf.put(&ping{true})
+	pingAck := &ping{ack: true}
+	copy(pingAck.data[:], f.Data[:])
+	t.controlBuf.put(pingAck)
 }
 
 func (t *http2Client) handleGoAway(f *http2.GoAwayFrame) {
@@ -827,9 +829,7 @@
 				case *flushIO:
 					t.framer.flushWrite()
 				case *ping:
-					// TODO(zhaoq): Ack with all-0 data now. will change to some
-					// meaningful content when this is actually in use.
-					t.framer.writePing(true, i.ack, [8]byte{})
+					t.framer.writePing(true, i.ack, i.data)
 				default:
 					grpclog.Printf("transport: http2Client.controller got unexpected item type %v\n", i)
 				}
diff --git a/transport/http2_server.go b/transport/http2_server.go
index ceb3055..289e4fe 100644
--- a/transport/http2_server.go
+++ b/transport/http2_server.go
@@ -377,7 +377,9 @@
 }
 
 func (t *http2Server) handlePing(f *http2.PingFrame) {
-	t.controlBuf.put(&ping{true})
+	pingAck := &ping{ack: true}
+	copy(pingAck.data[:], f.Data[:])
+	t.controlBuf.put(pingAck)
 }
 
 func (t *http2Server) handleWindowUpdate(f *http2.WindowUpdateFrame) {
@@ -628,9 +630,7 @@
 				case *flushIO:
 					t.framer.flushWrite()
 				case *ping:
-					// TODO(zhaoq): Ack with all-0 data now. will change to some
-					// meaningful content when this is actually in use.
-					t.framer.writePing(true, i.ack, [8]byte{})
+					t.framer.writePing(true, i.ack, i.data)
 				default:
 					grpclog.Printf("transport: http2Server.controller got unexpected item type %v\n", i)
 				}
diff --git a/transport/transport_test.go b/transport/transport_test.go
index 06847ce..84c8d0f 100644
--- a/transport/transport_test.go
+++ b/transport/transport_test.go
@@ -483,12 +483,12 @@
 	}
 	cc.Close()
 	select {
-		case <-ss.Context().Done():
-			if ss.Context().Err() != context.Canceled {
-				t.Fatalf("ss.Context().Err() got %v, want %v", ss.Context().Err(), context.Canceled)
-			}
-		case <-time.After(5 * time.Second):
-			t.Fatalf("Failed to cancel the context of the sever side stream.")
+	case <-ss.Context().Done():
+		if ss.Context().Err() != context.Canceled {
+			t.Fatalf("ss.Context().Err() got %v, want %v", ss.Context().Err(), context.Canceled)
+		}
+	case <-time.After(5 * time.Second):
+		t.Fatalf("Failed to cancel the context of the sever side stream.")
 	}
 }
 
