diff --git a/tools/chunks/README.md b/tools/chunks/README.md
index 8b47eea..3c73bcf 100644
--- a/tools/chunks/README.md
+++ b/tools/chunks/README.md
@@ -4,8 +4,8 @@
 
 * **ndnputchunks** is a producer program that reads a file from the standard input, and makes
   it available as a set of NDN Data segments. It appends version and segment number components
-  to the specified name as needed, according to the
-  [NDN naming conventions](https://named-data.net/publications/techreports/ndn-tr-22-2-ndn-memo-naming-conventions/).
+  to the specified name as needed, according to the [NDN naming conventions](
+  https://named-data.net/publications/techreports/ndn-tr-22-3-ndn-memo-naming-conventions/).
 
 * **ndncatchunks** is a consumer program that fetches Data segments of a file, optionally
   discovering the latest version of the file, and writes the content of the retrieved file to
@@ -18,7 +18,7 @@
 be sent out to fetch metadata of the solicited content from which the Data version will be resolved.
 For more information about the packet format and naming conventions of Interest and Data packets
 used for version discovery in ndncatchunks, please refer to:
-[Realtime Data Retrieval (RDR) protocol wiki page](https://redmine.named-data.net/projects/ndn-tlv/wiki/RDR)
+[Realtime Data Retrieval (RDR) protocol](https://redmine.named-data.net/projects/ndn-tlv/wiki/RDR).
 
 ## Interest pipeline types in ndncatchunks
 
@@ -32,7 +32,7 @@
 * `cubic`: adjusts the window size similar to the TCP CUBIC algorithm.
            For details about both aimd and cubic please refer to:
            [A Practical Congestion Control Scheme for Named Data
-           Networking](https://conferences2.sigcomm.org/acm-icn/2016/proceedings/p21-schneider.pdf)
+           Networking](https://conferences2.sigcomm.org/acm-icn/2016/proceedings/p21-schneider.pdf).
 
 The default Interest pipeline type is `cubic`.
 
diff --git a/tools/dissect-wireshark/README.md b/tools/dissect-wireshark/README.md
index d304ce6..805f2e8 100644
--- a/tools/dissect-wireshark/README.md
+++ b/tools/dissect-wireshark/README.md
@@ -1,19 +1,18 @@
-NDN Packet Dissector for Wireshark
-==================================
+# NDN Packet Dissector for Wireshark
 
-**NDN packet dissector requires at least version 1.12.6 of Wireshark with LUA support enabled**
+*NOTE: The dissector requires at least version 1.12.6 of Wireshark with LUA support enabled.*
 
-The dissection of [Named Data Networking (NDN) packets](http://named-data.net/doc/ndn-tlv/) is
-supported in the following cases:
+The dissection of [NDN packets](https://docs.named-data.net/NDN-packet-spec/current/)
+is supported in the following cases:
 
-- NDN packets are encapsulated in IPv4/IPv6 UDP packets with source or destination port
-  6363 or 56363.
+- NDN packets are encapsulated in IPv4/IPv6 UDP datagrams with source or destination
+  port 6363 or 56363.
 
 - NDN packets are encapsulated in IPv4/IPv6 TCP segments with source or destination
   port 6363.
 
-- NDN packets are encapsulated in IPv4/IPv6 TCP/HTTP WebSocket packets with source or
-  destination port 9696.
+- NDN packets are encapsulated in IPv4/IPv6 WebSocket packets with source or destination
+  port 9696.
 
 - NDN packets are encapsulated in Ethernet frames with EtherType 0x8624.
 
@@ -56,11 +55,15 @@
 `/opt/local/share/ndn-dissect-wireshark`.  To enable the dissector for Wireshark session,
 use `-X` command line option, specifying the full path to the `ndn.lua` script:
 
-    wireshark -X lua_script:/usr/local/share/ndn-dissect-wireshark/ndn.lua
+```shell
+wireshark -X lua_script:/usr/local/share/ndn-dissect-wireshark/ndn.lua
+```
 
 Similarly, NDN packets dissector can be enabled when using `tshark`:
 
-    tshark shark -X lua_script:/usr/local/share/ndn-dissect-wireshark/ndn.lua
+```shell
+tshark shark -X lua_script:/usr/local/share/ndn-dissect-wireshark/ndn.lua
+```
 
 To enable NDN packets dissector for all future Wireshark sessions, you can create/edit
 Wireshark's `init.lua` script, which located in `/usr/share/wireshark`,
@@ -68,8 +71,9 @@
 or similar location depending on the platform and the way Wireshark is installed.  The
 `dofile` command should be added to the end of `init.lua` file:
 
-    -- dofile("/full/path/to/ndn.lua")
-    dofile("/usr/local/share/ndn-dissect-wireshark/ndn.lua")
+```lua
+dofile("/usr/local/share/ndn-dissect-wireshark/ndn.lua")
+```
 
 For more detailed information about how to use Lua refer to [Lua wiki](https://wiki.wireshark.org/Lua).
 
@@ -78,26 +82,26 @@
 Due to security issues, customized lua scripts are not allowed to be loaded when Wireshark
 is started with root privileges.  There are two workarounds:
 
-- run Wireshark, `dumpcap`, or `tcpdump` with root privileges to capture traffic to a file, later
-  running Wireshark without root privileges and to analyze the captured traffic.
+- Run `dumpcap` or `tcpdump` with root privileges to capture traffic to a file, and later
+  run Wireshark *without* root privileges to analyze the captured traffic.
 
-- (beware of potential security implications) allow non-root users to capture packets:
+- Allow non-root users to capture packets (beware of potential security implications!)
 
-  * On Linux platform, you can use `setcap`
+  * On Linux, you can use `setcap`:
 
-          sudo setcap cap_net_raw,cap_net_admin=eip /full/path/to/wireshark
+        sudo setcap cap_net_raw,cap_net_admin=eip /full/path/to/wireshark
 
-      You may need to install a package to use setcap (e.g., `sudo apt-get install libcap2-bin` on Ubuntu)
+    You may need to install a package to use `setcap` (e.g., `sudo apt install libcap2-bin` on Ubuntu)
 
-  * On Debian/Ubuntu Linux, capturing traffic with Wireshark by a non-root user can be enabled by adding
-    this user to the `wireshark` group.
+  * On Debian/Ubuntu Linux, capturing traffic with Wireshark by a non-root user can be enabled by
+    adding the user to the `wireshark` group.
 
-    See [Wireshark Debian README](http://anonscm.debian.org/viewvc/collab-maint/ext-maint/wireshark/trunk/debian/README.Debian?view=markup)
-    for more details.
+    See Debian's [README file](https://salsa.debian.org/debian/wireshark/-/blob/debian/master/debian/README.Debian)
+    for details.
 
-  * On OSX platform, `/dev/bpf*` devices need to be assigned proper permissions
+  * On macOS, `/dev/bpf*` devices need to be assigned proper permissions.
 
-    Automatically using ChmodBPF app
+    Automatically using ChmodBPF app:
 
         curl https://bugs.wireshark.org/bugzilla/attachment.cgi?id=3373 -o ChmodBPF.tar.gz
         tar zxvf ChmodBPF.tar.gz
diff --git a/tools/dissect-wireshark/ndn.lua b/tools/dissect-wireshark/ndn.lua
index 2ed49ab..9037b5c 100755
--- a/tools/dissect-wireshark/ndn.lua
+++ b/tools/dissect-wireshark/ndn.lua
@@ -1,4 +1,4 @@
--- Copyright (c) 2015-2019,  Regents of the University of California.
+-- Copyright (c) 2015-2023, Regents of the University of California.
 --
 -- This file is part of ndn-tools (Named Data Networking Essential Tools).
 -- See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -173,7 +173,7 @@
    local name = ""
 
    -- TODO: Properly format informational message based type value reservations
-   -- (https://named-data.net/doc/NDN-packet-spec/current/types.html#tlv-type-number-reservations)
+   -- (https://docs.named-data.net/NDN-packet-spec/current/types.html#reserved-ranges)
    if (block.type <= AppPrivateBlock1) then
       name = "Unrecognized from the reserved range " .. 0 .. "-" .. AppPrivateBlock1 .. ""
    elseif (AppPrivateBlock1 < block.type and block.type < AppPrivateBlock2) then
diff --git a/tools/dissect/dissector.cpp b/tools/dissect/dissector.cpp
index f7c464d..9d72998 100644
--- a/tools/dissect/dissector.cpp
+++ b/tools/dissect/dissector.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2022, Regents of the University of California.
+ * Copyright (c) 2013-2023, Regents of the University of California.
  *
  * This file is part of ndn-tools (Named Data Networking Essential Tools).
  * See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -74,7 +74,7 @@
   }
 }
 
-// https://named-data.net/doc/NDN-packet-spec/current/types.html
+// https://docs.named-data.net/NDN-packet-spec/current/types.html
 static const std::map<uint32_t, std::string_view> TLV_DICT = {
   {tlv::Interest                        , "Interest"},
   {tlv::Data                            , "Data"},
diff --git a/tools/dump/README.md b/tools/dump/README.md
index cf46ab1..76e1ad1 100644
--- a/tools/dump/README.md
+++ b/tools/dump/README.md
@@ -5,9 +5,10 @@
 
 Usage example:
 
-1. start NFD on local machine
-2. create an IPv4 UDP tunnel to a remote machine
-3. cause some traffic going on the tunnel
-4. execute `sudo ndndump`
+1. start NFD on the local machine
+2. create a UDP tunnel to a remote machine
+3. run `sudo ndndump`
+4. cause some NDN traffic to be sent/received on the tunnel
+5. observe the output of `ndndump`
 
 For more information, consult the manpage.
diff --git a/tools/peek/README.md b/tools/peek/README.md
index 79e9832..02e6fb1 100644
--- a/tools/peek/README.md
+++ b/tools/peek/README.md
@@ -8,7 +8,7 @@
 Usage example:
 
 1. start NFD
-2. execute `echo 'HELLO WORLD' | ndnpoke /localhost/demo/hello`
-3. in another terminal, execute `ndnpeek -p /localhost/demo/hello`
+2. run `echo 'HELLO WORLD' | ndnpoke /localhost/demo/hello`
+3. in another terminal, run `ndnpeek -p /localhost/demo/hello`
 
-For more information, consult the manpages of these programs.
+For more information on these programs, consult their respective manpages.
diff --git a/tools/ping/README.md b/tools/ping/README.md
index 0bf3150..1e0f02f 100644
--- a/tools/ping/README.md
+++ b/tools/ping/README.md
@@ -2,47 +2,48 @@
 
 ## Introduction
 
-**ndnping** and **ndnpingserver** are reachability testing tools for
-[Named Data Networking](http://named-data.net). They test the reachability between two nodes. The
-client sends an Interest intended for a node running **ndnpingserver**. The ping server then sends
-Data in response. The client then calculates the roundtrip time for the Interest-Data exchange, or
-marks it as a timeout if the Data is not received within the timeout period.
+**ndnping** and **ndnpingserver** are reachability testing tools for NDN. They can be used
+to test the network reachability between two nodes. The client sends an Interest intended
+for a node running **ndnpingserver**. The server then sends Data in response. The client
+then calculates the roundtrip time for the Interest-Data exchange, or marks it as a timeout
+if the Data packet is not received within the timeout period.
 
-## Using the Client
+## Using the client
 
-The client can be invoked by calling **ndnping** with a name to ping. For example, to ping
-`/edu/arizona`, one would execute:
+The client can be invoked by calling `ndnping` with a name to ping. For example, to ping
+`/edu/arizona`, one would run:
 
     ndnping /edu/arizona
 
-There are also a variety of options to control the behavior of the ping client. For example, to
-send only four pings to `/edu/arizona`, displaying a timestamp with each received Data or
+There are also a variety of options to control the behavior of the ping client. For example,
+to send only four pings to `/edu/arizona`, displaying a timestamp with each received Data or
 timeout, type:
 
     ndnping -c 4 -t /edu/arizona
 
 A list of the available options can be found with `man ndnping`.
 
-## Using the Server
+## Using the server
 
-The server can be invoked by calling **ndnpingserver** with a name to listen for pings to. For
-example, to listen for pings to `/edu/arizona`, one would execute:
+The server can be invoked by calling `ndnpingserver` with a name to listen for pings to. For
+example, to listen for pings to `/edu/arizona`, one would run:
 
     ndnpingserver /edu/arizona
 
-There are also a variety of options to control the behavior of the ping server. For example, to
-satisfy only 4 ping requests before exiting, execute the following:
+There are also a variety of options to control the behavior of the ping server. For example,
+to satisfy only 4 ping requests before exiting, run the following:
 
     ndnpingserver -p 4 /edu/arizona
 
 A list of the available options can be found with `man ndnpingserver`.
 
-## ndnping Protocol
+## NDN ping protocol
 
 This section briefly describes ndnping's protocol, in order to allow alternate implementations
 to be compatible with this implementation.
+
 The current protocol version is **ndnping protocol version 1**.
-This version number will be incremented in case there's an incompatible change.
+This version number will be incremented whenever there is an incompatible change.
 
 ### Probe Interests
 
