diff --git a/contrib/wix/help.wxs b/contrib/wix/help.wxs
index 33461139c31ca59ad98e5aabc4ee39716758846f_Y29udHJpYi93aXgvaGVscC53eHM=..a1092e2d70a30004ce2814351da317d463396e45_Y29udHJpYi93aXgvaGVscC53eHM= 100644
--- a/contrib/wix/help.wxs
+++ b/contrib/wix/help.wxs
@@ -42,6 +42,7 @@
             <File Id="internals.changegroups.txt" Name="changegroups.txt" />
             <File Id="internals.requirements.txt" Name="requirements.txt" />
             <File Id="internals.revlogs.txt"      Name="revlogs.txt" />
+            <File Id="internals.wireprotocol.txt" Name="wireprotocol.txt" />
           </Component>
         </Directory>
 
diff --git a/mercurial/help.py b/mercurial/help.py
index 33461139c31ca59ad98e5aabc4ee39716758846f_bWVyY3VyaWFsL2hlbHAucHk=..a1092e2d70a30004ce2814351da317d463396e45_bWVyY3VyaWFsL2hlbHAucHk= 100644
--- a/mercurial/help.py
+++ b/mercurial/help.py
@@ -192,6 +192,8 @@
      loaddoc('requirements', subdir='internals')),
     (['revlogs'], _('Revision Logs'),
      loaddoc('revlogs', subdir='internals')),
+    (['wireprotocol'], _('Wire Protocol'),
+     loaddoc('wireprotocol', subdir='internals')),
 ])
 
 def internalshelp(ui):
diff --git a/mercurial/help/internals/wireprotocol.txt b/mercurial/help/internals/wireprotocol.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a1092e2d70a30004ce2814351da317d463396e45_bWVyY3VyaWFsL2hlbHAvaW50ZXJuYWxzL3dpcmVwcm90b2NvbC50eHQ=
--- /dev/null
+++ b/mercurial/help/internals/wireprotocol.txt
@@ -0,0 +1,11 @@
+The Mercurial wire protocol is a request-response based protocol
+with multiple wire representations.
+
+Each request is modeled as a command name, a dictionary of arguments, and
+optional raw input. Command arguments and their types are intrinsic
+properties of commands. So is the response type of the command. This means
+clients can't always send arbitrary arguments to servers and servers can't
+return multiple response types.
+
+The protocol is synchronous and does not support multiplexing (concurrent
+commands).
diff --git a/tests/test-help.t b/tests/test-help.t
index 33461139c31ca59ad98e5aabc4ee39716758846f_dGVzdHMvdGVzdC1oZWxwLnQ=..a1092e2d70a30004ce2814351da317d463396e45_dGVzdHMvdGVzdC1oZWxwLnQ= 100644
--- a/tests/test-help.t
+++ b/tests/test-help.t
@@ -933,6 +933,7 @@
        changegroups  Changegroups
        requirements  Repository Requirements
        revlogs       Revision Logs
+       wireprotocol  Wire Protocol
 
 sub-topics can be accessed
 
@@ -2895,6 +2896,13 @@
   </td><td>
   Revision Logs
   </td></tr>
+  <tr><td>
+  <a href="/help/internals.wireprotocol">
+  wireprotocol
+  </a>
+  </td><td>
+  Wire Protocol
+  </td></tr>