diff --git a/docs/source/RELEASE_NOTES.rst b/docs/source/RELEASE_NOTES.rst
index 1b91c76..4e2187d 100644
--- a/docs/source/RELEASE_NOTES.rst
+++ b/docs/source/RELEASE_NOTES.rst
@@ -3,7 +3,7 @@
 
 This file contains ndnSIM release notes.
 
-All of the ndnSIM documentation is accessible from the `ndnSIM website <http://ndnsim.net>`__.
+All of the ndnSIM documentation is accessible from the `ndnSIM website <https://ndnsim.net>`__.
 
 Release 2.7
 -----------
@@ -381,7 +381,7 @@
      release of ndnSIM (:issue:`3121`)
 
 - Tutorial and example on how to speed up simulations with MPI module of NS-3:
-  `<http://ndnsim.net/2.0/parallel-simulations.html>`__
+  `<https://ndnsim.net/current/parallel-simulations.html>`__
 
 - Two new helpers to simplify writing basic simulation scenarios:
 
@@ -432,7 +432,7 @@
 
 - Updates of ndnSIM documentation
 
-  * Updated the structure for the `ndnSIM website index page <http://ndnsim.net>`__
+  * Updated the structure for the `ndnSIM website index page <https://ndnsim.net>`__
   * Updated installation instructions to reflect refactoring and relocation of ndnSIM codebase
   * API documentation (doxygen) improvements
   * Updated list of ndnSIM research papers
@@ -476,19 +476,19 @@
 
 -  ndnSIM no longer re-implements basic NDN primitives and directly uses implementation from
    `ndn-cxx library (NDN C++ library with eXperimental
-   eXtensions) <http://named-data.net/doc/ndn-cxx/>`__.
+   eXtensions) <https://named-data.net/doc/ndn-cxx/>`__.
 
 -  All NDN forwarding and management is implemented directly using source code of `Named Data
-   Networking Forwarding Daemon (NFD) <http://named-data.net/doc/NFD/>`__. The current code is based
+   Networking Forwarding Daemon (NFD) <https://named-data.net/doc/NFD/>`__. The current code is based
    on ``a22a2172611b1cb93b2e2f53d9d5da122b384f3e`` commit of `NFD
    repository <https://github.com/named-data/NFD/tree/a22a2172611b1cb93b2e2f53d9d5da122b384f3e>`__.
 
 Note RIB Manager is not yet available in ndnSIM.
 
--  Packet format changed to the `NDN packet format <http://named-data.net/doc/ndn-tlv/>`__.
+-  Packet format changed to the `NDN packet format <https://named-data.net/doc/ndn-tlv/>`__.
 
 -  Code style changes to conform to `ndn-cxx Code Style and Coding
-   Guidelines <http://named-data.net/doc/ndn-cxx/current/code-style.html>`__ This change also
+   Guidelines <https://named-data.net/doc/ndn-cxx/current/code-style.html>`__ This change also
    includes renaming of the header and source files: ``*.h`` -> ``*.hpp``, ``*.cc`` -> ``*.cpp``
 
 -  ndnSIM now uses C++11.
@@ -518,7 +518,7 @@
    links traversed by a packet). Previously, this tracing was round-trip and included applications
    hops.
 -  Python bindings have changed and, due to limitations of pybindgen, currently cover a smaller
-   subset of C++ code (`Task #2341 <http://redmine.named-data.net/issues/2341>`__).
+   subset of C++ code (`Task #2341 <https://redmine.named-data.net/issues/2341>`__).
 -  LinkControlHelper now uses ErrorRate to simulate link failure/recovery. Previously it was relying
    on Up/Down flag on NDN level.
 -  The Face abstraction of NFD is now used.
@@ -527,15 +527,15 @@
 ~~~~~~~~~
 
 -  Fix processing files with customized LossRate or Queue model in AnnotatedTopologyReader `Bug
-   #2354 <http://redmine.named-data.net/issues/2354>`__.
+   #2354 <https://redmine.named-data.net/issues/2354>`__.
 
 Removals
 ~~~~~~~~
 
 -  PyNDN emulation
 -  (temporarily) ApiFace. Will be replaced with emulation of ndn-cxx ``ndn::Face`` in future
-   releases (`Issue #2370 <http://redmine.named-data.net/issues/2370>`__).
--  (temporarily) UdpFace, TcpFace (`Issue #2371 <http://redmine.named-data.net/issues/2371>`__).
+   releases (`Issue #2370 <https://redmine.named-data.net/issues/2370>`__).
+-  (temporarily) UdpFace, TcpFace (`Issue #2371 <https://redmine.named-data.net/issues/2371>`__).
 -  Limits, LimitsWindow, LimitsRate.
 -  PIT, FIB with "replacement" policies.
 -  Old deprecated packet formats.
diff --git a/docs/source/_templates/indexcontent.html b/docs/source/_templates/indexcontent.html
index 6254b41..71289dd 100644
--- a/docs/source/_templates/indexcontent.html
+++ b/docs/source/_templates/indexcontent.html
@@ -6,7 +6,7 @@
 
     <p>
 This website includes the ndnSIM documentation and is intended to help the community use the simulator for NDN experimentation. It is not intended to present the principles or the design of the NDN architecture and communication model.
-We invite you to <a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" target="_blank">join our mailing list</a> to see and participate in discussions about ndnSIM implementation and simulations in general (<a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/" target="_blank">mailing list archives</a>).
+We invite you to <a href="https://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" target="_blank">join our mailing list</a> to see and participate in discussions about ndnSIM implementation and simulations in general (<a href="https://www.lists.cs.ucla.edu/pipermail/ndnsim/" target="_blank">mailing list archives</a>).
     </p>
 
   {% block tables %}
@@ -61,14 +61,14 @@
         <div class="tile">
           <p class="biglink"><a class="biglink" href="#">ndnSIM 2.7</a><br/>
             <span class="linkdescr">latest version</span></p>
-          <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.6/">ndnSIM 2.6</a><br/>
-          <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.5/">ndnSIM 2.5</a><br/>
-          <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.4/">ndnSIM 2.4</a><br/>
-          <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.3/">ndnSIM 2.3</a><br/>
-          <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.2/">ndnSIM 2.2</a><br/>
-          <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.1/">ndnSIM 2.1</a><br/>
-          <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.0/">ndnSIM 2.0</a><br/>
-          <p class="biglink"><a class="biglink" href="http://ndnsim.net/1.0/">ndnSIM 1.0</a><br/>
+          <p class="biglink"><a class="biglink" href="https://ndnsim.net/2.6/">ndnSIM 2.6</a><br/>
+          <p class="biglink"><a class="biglink" href="https://ndnsim.net/2.5/">ndnSIM 2.5</a><br/>
+          <p class="biglink"><a class="biglink" href="https://ndnsim.net/2.4/">ndnSIM 2.4</a><br/>
+          <p class="biglink"><a class="biglink" href="https://ndnsim.net/2.3/">ndnSIM 2.3</a><br/>
+          <p class="biglink"><a class="biglink" href="https://ndnsim.net/2.2/">ndnSIM 2.2</a><br/>
+          <p class="biglink"><a class="biglink" href="https://ndnsim.net/2.1/">ndnSIM 2.1</a><br/>
+          <p class="biglink"><a class="biglink" href="https://ndnsim.net/2.0/">ndnSIM 2.0</a><br/>
+          <p class="biglink"><a class="biglink" href="https://ndnsim.net/1.0/">ndnSIM 1.0</a><br/>
         </div>
       </td>
     </tr>
@@ -85,10 +85,10 @@
             </li>
               <ul style="padding-left:30px">
                 <li>
-                S. Mastorakis, A. Afanasyev, and L. Zhang, "On the Evolution of ndnSIM: an Open-Source Simulator for NDN Experimentation," ACM SIGCOMM Computer Communication Review (CCR), July 2017 (<a class="reference external" href="https://ccronline.sigcomm.org/wp-content/uploads/2017/08/sigcomm-ccr-final112-full-letter.pdf">PDF</a>) (<a class="reference external" href="http://web.cs.ucla.edu/~mastorakis/bibtex-ndnsim">BibTex</a>)
+                S. Mastorakis, A. Afanasyev, and L. Zhang, "On the Evolution of ndnSIM: an Open-Source Simulator for NDN Experimentation," ACM SIGCOMM Computer Communication Review (CCR), July 2017 (<a class="reference external" href="https://ccronline.sigcomm.org/wp-content/uploads/2017/08/sigcomm-ccr-final112-full-letter.pdf">PDF</a>) (<a class="reference external" href="https://web.cs.ucla.edu/~mastorakis/bibtex-ndnsim">BibTex</a>)
                 </li>
                 <li>
-                S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, &#8220;ndnSIM 2: An updated NDN simulator for NS-3,&#8221; NDN, Technical Report NDN-0028, Revision 2, 2016 (<a class="reference external" href="https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf">PDF</a>) (<a class="reference external" href="http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/399">BibTex</a>)
+                S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, &#8220;ndnSIM 2: An updated NDN simulator for NS-3,&#8221; NDN, Technical Report NDN-0028, Revision 2, 2016 (<a class="reference external" href="https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf">PDF</a>) (<a class="reference external" href="https://users.cs.fiu.edu/~afanasyev/assets/bibtex/tr-mastorakis2016ndnsim.html">BibTex</a>)
                 </li>
               </ul>
             <li>
@@ -96,7 +96,7 @@
             </li>
               <ul style="padding-left:30px">
                 <li>
-                A. Afanasyev, I. Moiseenko, and L. Zhang, &#8220;ndnSIM: NDN simulator for NS-3,&#8221; NDN, Technical Report NDN-0005, 2012 (<a class="reference external" href="https://named-data.net/wp-content/uploads/TRndnsim.pdf">PDF</a>) (<a class="reference external" href="http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/367">BibTex</a>)
+                A. Afanasyev, I. Moiseenko, and L. Zhang, &#8220;ndnSIM: NDN simulator for NS-3,&#8221; NDN, Technical Report NDN-0005, 2012 (<a class="reference external" href="https://named-data.net/wp-content/uploads/TRndnsim.pdf">PDF</a>) (<a class="reference external" href="https://users.cs.fiu.edu/~afanasyev/assets/bibtex/tr-afanasyev2012ndnsim.html">BibTex</a>)
                 </li>
               </ul>
           </ul>
@@ -108,12 +108,12 @@
           <p class="biglink"><a class="biglink" href="{{ pathto("RELEASE_NOTES") }}">Release Notes</a><br/>
             <span class="linkdescr">new features, changes, bug fixes, deprecations, and removals</span></p>
 
-          <p class="biglink"><a class="biglink" href="http://redmine.named-data.net/projects/ndnsim">Reporting bugs</a><br/>
-            <span class="linkdescr"><a href="http://redmine.named-data.net/projects/ndnsim" target="_blank">ndnSIM Redmine</a>,
+          <p class="biglink"><a class="biglink" href="https://redmine.named-data.net/projects/ndnsim">Reporting bugs</a><br/>
+            <span class="linkdescr"><a href="https://redmine.named-data.net/projects/ndnsim" target="_blank">ndnSIM Redmine</a>,
             <span class="linkdescr"><a href="https://github.com/named-data-ndnSIM/ndnSIM/pulls" target="_blank">GitHub pull requests</a></span></p>
 
-          <p class="biglink"><a class="biglink" href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" target="_blank">ndnSIM mailing list</a><br/>
-            <span class="linkdescr"><a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/" target="_blank">mailing list archives</a></span></p>
+          <p class="biglink"><a class="biglink" href="https://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" target="_blank">ndnSIM mailing list</a><br/>
+            <span class="linkdescr"><a href="https://www.lists.cs.ucla.edu/pipermail/ndnsim/" target="_blank">mailing list archives</a></span></p>
 
           <p class="biglink"><a class="biglink" href="{{ pathto("community-contributions") }}">Community Contributions</a><br/>
               <span class="linkdescr">very much appreciated contributions of the ndnSIM user community</span></p>
diff --git a/docs/source/applications.rst b/docs/source/applications.rst
index 5191146..8b631e7 100644
--- a/docs/source/applications.rst
+++ b/docs/source/applications.rst
@@ -76,7 +76,7 @@
     Number of different content (sequence numbers) that will be requested by the applications
 
 
-THE following pictures show basic comparison of the generated stream of Interests versus theoretical `Zipf-Mandelbrot <http://en.wikipedia.org/wiki/Zipf%E2%80%93Mandelbrot_law>`_ function (``NumberOfContents`` set to 100 and ``Frequency`` set to 100)
+THE following pictures show basic comparison of the generated stream of Interests versus theoretical `Zipf-Mandelbrot <https://en.wikipedia.org/wiki/Zipf%E2%80%93Mandelbrot_law>`_ function (``NumberOfContents`` set to 100 and ``Frequency`` set to 100)
 
 .. image:: _static/apps/zipf-n100-frq100-duration10.png
    :alt: Comparsion between simulation and theory with simulation duration 10 seconds
diff --git a/docs/source/community-contributions.rst b/docs/source/community-contributions.rst
index 0135fda..c134559 100644
--- a/docs/source/community-contributions.rst
+++ b/docs/source/community-contributions.rst
@@ -8,7 +8,7 @@
 
 #. **Script for automated installation on Ubuntu 14.04, 15.04, 16.04 and 17.04.**
 
-    The `script <http://mohittahiliani.blogspot.in/2015/10/ns-3-installing-ndnsim-on-ubuntu.html>`__
+    The `script <https://mohittahiliani.blogspot.in/2015/10/ns-3-installing-ndnsim-on-ubuntu.html>`__
     was created and is maintained by Kiran Ramesh, Karthik S, Ayush Agarwal,
     Viyom Mittal, Vivek Jain, and Mohit P. Tahiliani,
     Wireless Information Networking Group (WiNG), NITK Surathkal.
@@ -20,7 +20,7 @@
 
 #. **Run ndnSIM with scenario template without root access.**
 
-    The `article <http://chkr.at/wordpress/?p=99/>`__
+    The `article <https://chkr.at/wordpress/?p=99/>`__
     was published by Christian Kreuzberger.
 
 #. **How-To: Install ndnSIM with BRITE on Ubuntu 14.04.**
@@ -30,7 +30,7 @@
 
 #. **Installing ndnSIM on Ubuntu 15.04.**
 
-    The `article <http://bupeanubuntu.blogspot.com/2015/08/installing-ndnsim-on-ubuntu-1504.html>`__
+    The `article <https://bupeanubuntu.blogspot.com/2015/08/installing-ndnsim-on-ubuntu-1504.html>`__
     was published by Bhupendra Moharil.
 
 .. note:: If you have contributed to ndnSIM, please let us know, so that we can
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 8bdfd9f..826e38a 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -280,4 +280,4 @@
 
 # aafig_default_options = dict(Fixed=True)
 
-redmine_project_url = "http://redmine.named-data.net/"
+redmine_project_url = "https://redmine.named-data.net/"
diff --git a/docs/source/examples.rst b/docs/source/examples.rst
index e60c10d..9ef32fa 100644
--- a/docs/source/examples.rst
+++ b/docs/source/examples.rst
@@ -159,7 +159,7 @@
 :ndnsim:`RocketfuelWeightsReader`.
 
 While :ndnsim:`RocketfuelWeightsReader` is a specialized version intended to be used with
-`Rocketfuel <http://www.cs.washington.edu/research/networking/rocketfuel/>`_ topology and link
+`Rocketfuel <https://www.cs.washington.edu/research/networking/rocketfuel/>`_ topology and link
 weights files (examples will be provided later), :ndnsim:`AnnotatedTopologyReader` is a more
 general-use class that uses simple user-readable format.
 
@@ -189,7 +189,7 @@
 Alternatively, nodes can be accessed by name using `Names::Find<Node> ("nodename")` call, as in
 the above example.  For this purpose,:ndnsim:`AnnotatedTopologyReader` automatically registers
 all created nodes with names specified in topology file.  For more information about `Names`
-class, please refer to `NS-3 documentation <http://www.nsnam.org/doxygen/classns3_1_1_names.html>`_.
+class, please refer to `NS-3 documentation <https://www.nsnam.org/doxygen/classns3_1_1_names.html>`_.
 
 If the topology file is placed into ``src/ndnSIM/examples/topologies/topo-grid-3x3.txt`` and
 the code is placed into ``scratch/ndn-grid-topo-plugin.cpp``, you can run and see progress of
diff --git a/docs/source/faq.rst b/docs/source/faq.rst
index 2e83470..a08a8d9 100644
--- a/docs/source/faq.rst
+++ b/docs/source/faq.rst
@@ -154,7 +154,7 @@
 
 If ``./waf configure`` on OSX got stuck during the gtk python module check, it most likely
 means that something is wrong with X11 required by this module.  You can try to reinstall X11
-(`XQuartz <http://xquartz.macosforge.org>`_) or configure NS-3 without python bindings (``./waf
+(`XQuartz <https://xquartz.macosforge.org>`_) or configure NS-3 without python bindings (``./waf
 configure --disable-python``).  Note that disabling python bindings will also disable the
 visualizer module.
 
@@ -181,5 +181,5 @@
 
     I found an error in the documentation / bug in the code. What should I do?
 
-Please submit a bug report on `redmine <http://redmine.named-data.net/projects/ndnsim?jump=welcome>`_,
-or tell us about the error on `our mailing list <http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>`_ .
+Please submit a bug report on `redmine <https://redmine.named-data.net/projects/ndnsim?jump=welcome>`_,
+or tell us about the error on `our mailing list <https://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>`_ .
diff --git a/docs/source/fw.rst b/docs/source/fw.rst
index 4e57e1f..298bd38 100644
--- a/docs/source/fw.rst
+++ b/docs/source/fw.rst
@@ -13,8 +13,7 @@
 
 Please refer to :nfd:`API documentation <nfd::fw::Strategy>` of the forwarding strategy
 interface, which lists all default actions/events. For a more detailed specification, you can
-read `NFD Developer's Guide
-<http://named-data.net/wp-content/uploads/2014/07/NFD-developer-guide.pdf>`_, section 5.
+read the corresponding section of `"NFD Developer's Guide" <https://named-data.net/publications/techreports/>`__.
 
 Available forwarding strategies
 +++++++++++++++++++++++++++++++
@@ -83,8 +82,7 @@
 
 One of the objectives and features of ndnSIM 2.0 is that it uses NFD codebase for packet
 forwarding.  Therefore, writing strategy in ndnSIM is almost exactly the same process as
-outlined in `Section 5.3 of the NFD Developer's Guide
-<http://named-data.net/wp-content/uploads/2014/07/NFD-developer-guide.pdf>`_.
+outlined in the `"NFD Developer's Guide" <https://named-data.net/publications/techreports/>`__.
 
 The purpose of the strategy is to decides how to forward Interests and it is not intended to
 override any processing steps in the forwarding pipelines of NFD.  If it is desired to support
diff --git a/docs/source/getting-started.rst b/docs/source/getting-started.rst
index aa25b5e..1749051 100644
--- a/docs/source/getting-started.rst
+++ b/docs/source/getting-started.rst
@@ -161,7 +161,7 @@
 .. note::
    On macOS configuration stage may get :ref:`stuck at detecting gtk module <Problems with
    the gtk python module on macOS>`.  Make sure you have `XQuartz
-   <http://xquartz.macosforge.org>`_ installed or disable python as described in the
+   <https://xquartz.macosforge.org>`_ installed or disable python as described in the
    following instructions.
 
 Python bindings is an optional and not very stable feature of NS-3 simulator.  It is
@@ -228,7 +228,7 @@
   Alternative and a recommended way is to write simulation scenarios in a separate
   repository, not related to either NS-3 or ndnSIM.  For example, you can use the
   following template to write your extensions, simulation scenarios, and metric processing
-  scripts: `<http://github.com/cawka/ndnSIM-scenario-template>`_:
+  scripts: `<https://github.com/cawka/ndnSIM-scenario-template>`_:
 
   .. code-block:: bash
 
@@ -262,22 +262,22 @@
    Examples of template-based simulations
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-   1. ndnSIM examples from `<http://ndnsim.net>`_ website and more:
+   1. ndnSIM examples from `<https://ndnsim.net>`_ website and more:
 
-   - `<http://github.com/cawka/ndnSIM-examples>`_, or
+   - `<https://github.com/cawka/ndnSIM-examples>`_, or
 
    2. Script scenarios and graph processing scripts for simulations used in "A Case for Stateful
-      Forwarding Plane" paper by Yi et al. (`<http://dx.doi.org/10.1016/j.comcom.2013.01.005>`_):
+      Forwarding Plane" paper by Yi et al. (`<https://dx.doi.org/10.1016/j.comcom.2013.01.005>`_):
 
-   - `<http://github.com/cawka/ndnSIM-comcom-stateful-fw>`_, or
+   - `<https://github.com/cawka/ndnSIM-comcom-stateful-fw>`_, or
 
    3. Script scenarios and graph processing scripts for simulations used in "Rapid Traffic
       Information Dissemination Using Named Data" paper by Wang et
-      al. (`<http://dx.doi.org/10.1145/2248361.2248365>`_):
+      al. (`<https://dx.doi.org/10.1145/2248361.2248365>`_):
 
-   - `<http://github.com/cawka/ndnSIM-nom-rapid-car2car>`_, or
+   - `<https://github.com/cawka/ndnSIM-nom-rapid-car2car>`_, or
 
    - Rocketfuel-based topology generator for ndnSIM preferred format (randomly assigned link
      delays and bandwidth, based on estimated types of connections between nodes):
 
-   - `<http://github.com/cawka/ndnSIM-sample-topologies>`_, or
+   - `<https://github.com/cawka/ndnSIM-sample-topologies>`_, or
diff --git a/docs/source/guide-to-simulate-real-apps.rst b/docs/source/guide-to-simulate-real-apps.rst
index 5d7b8ac..fcea966 100644
--- a/docs/source/guide-to-simulate-real-apps.rst
+++ b/docs/source/guide-to-simulate-real-apps.rst
@@ -1,7 +1,7 @@
 Simulating real NDN applications
 ================================
 
-The version of `ndn-cxx library <http://named-data.net/doc/ndn-cxx/>`__ bundled with ndnSIM includes
+The version of `ndn-cxx library <https://named-data.net/doc/ndn-cxx/>`__ bundled with ndnSIM includes
 a modified version of :ndnsim:`ndn::Face` to directly send and receive Interest and Data packets to
 and from the simulated instances of NFD.  With this modification, ndnSIM enables support to simulate
 real NDN applications written against the ndn-cxx, if they satisfy requirements listed in this guide
@@ -211,6 +211,6 @@
    an example of how to adapt the source code to be compatible with ndnSIM simulations.
 
 
-.. _NDN Essential Tools: http://github.com/named-data/ndn-tools
+.. _NDN Essential Tools: https://github.com/named-data/ndn-tools
 
 .. _scenario template repository: https://github.com/named-data-ndnSIM/scenario-template
diff --git a/docs/source/intro.rst b/docs/source/intro.rst
index 5645b5a..32f9f4e 100644
--- a/docs/source/intro.rst
+++ b/docs/source/intro.rst
@@ -10,18 +10,18 @@
     .. image:: _static/ndnSIM-structure.*
         :width: 100%
 
-A new release of `NS-3 based Named Data Networking (NDN) simulator <http://ndnsim.net/1.0/>`__
+A new release of `NS-3 based Named Data Networking (NDN) simulator <https://ndnsim.net/current/>`__
 went through a number of extensive refactoring and rewriting.  The key new features of the
 new version:
 
-- Packet format changed to the `NDN packet format <http://named-data.net/doc/ndn-tlv/>`_
+- Packet format changed to the `NDN packet format <https://named-data.net/doc/ndn-tlv/>`_
 
 - ndnSIM uses implementation of basic NDN primitives from
   `ndn-cxx library (NDN C++ library with eXperimental eXtensions)
-  <http://named-data.net/doc/ndn-cxx/>`_
+  <https://named-data.net/doc/ndn-cxx/>`_
 
 - All NDN forwarding and management is implemented directly using source code of `Named
-  Data Networking Forwarding Daemon (NFD) <http://named-data.net/doc/NFD/>`_
+  Data Networking Forwarding Daemon (NFD) <https://named-data.net/doc/NFD/>`_
 
 - It is possible to :doc:`simulate some real applications <guide-to-simulate-real-apps>`
   written against ndn-cxx library
@@ -54,13 +54,13 @@
 
 **For ndnSIM >= 2.0:**
 
-- **S. Mastorakis, A. Afanasyev, and L. Zhang, "On the Evolution of ndnSIM: an Open-Source Simulator for NDN Experimentation," ACM SIGCOMM Computer Communication Review (CCR), July 2017** (`PDF <https://ccronline.sigcomm.org/wp-content/uploads/2017/08/sigcomm-ccr-final112-full-letter.pdf>`__, `BibTex <http://web.cs.ucla.edu/~mastorakis/bibtex-ndnsim>`__)
+- **S. Mastorakis, A. Afanasyev, and L. Zhang, "On the Evolution of ndnSIM: an Open-Source Simulator for NDN Experimentation," ACM SIGCOMM Computer Communication Review (CCR), July 2017** (`PDF <https://ccronline.sigcomm.org/wp-content/uploads/2017/08/sigcomm-ccr-final112-full-letter.pdf>`__, `BibTex <https://web.cs.ucla.edu/~mastorakis/bibtex-ndnsim>`__)
 
-- **S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM 2: An updated NDN simulator for NS-3," NDN, Technical Report NDN-0028, Revision 2, 2016** (`PDF <https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/399>`__)
+- **S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM 2: An updated NDN simulator for NS-3," NDN, Technical Report NDN-0028, Revision 2, 2016** (`PDF <https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf>`__, `BibTex <https://users.cs.fiu.edu/~afanasyev/assets/bibtex/tr-mastorakis2016ndnsim.html>`__)
 
 **For ndnSIM 1.0:**
 
-- **A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM: NDN simulator for NS-3," NDN, Technical Report NDN-0005, 2012** (`PDF <https://named-data.net/wp-content/uploads/TRndnsim.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/367>`__)
+- **A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM: NDN simulator for NS-3," NDN, Technical Report NDN-0005, 2012** (`PDF <https://users.cs.fiu.edu/~afanasyev/assets/bibtex/tr-afanasyev2012ndnsim.html>`__)
 
 `ndnSIM API documentation <doxygen/index.html>`_
 
@@ -81,9 +81,9 @@
 - **A. Afanasyev, I. Moiseenko, and L. Zhang, “ndnSIM: a modular NDN simulator.” CCNxCon 2012, Sep-2012** (`Slides <https://users.cs.fiu.edu/~afanasyev/assets/papers/talks-ccnxcon-afanasyev2012ndnsim.pdf>`__)
 
 Also, you can `join our mailing list
-<http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>`_ to see and participate in
+<https://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>`_ to see and participate in
 discussions about ndnSIM implementation and simulations in general.  Do not forget to
-check mailling list `archives <http://www.lists.cs.ucla.edu/pipermail/ndnsim/>`_.
+check mailling list `archives <https://www.lists.cs.ucla.edu/pipermail/ndnsim/>`_.
 
 
 Support
@@ -93,11 +93,11 @@
 implementation are always welcome.
 
 To file a bug report, please use `NDN Redmine
-<http://redmine.named-data.net/projects/ndnsim>`_.
+<https://redmine.named-data.net/projects/ndnsim>`_.
 
 To create new feature, please fork the code and submit Pull Request on GitHub.
 
-And of course, `our mailing list <http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>`_
+And of course, `our mailing list <https://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>`_
 is the best way to communicate with and get support from ndnSIM team and other users of
 ndnSIM.
 
@@ -135,9 +135,9 @@
 | ``examples/``   | contain :doc:`several example scenarios <examples>`                 |
 +-----------------+---------------------------------------------------------------------+
 
-.. _NDN Forwarding Daemon (NFD): http://named-data.net/doc/NFD/
+.. _NDN Forwarding Daemon (NFD): https://named-data.net/doc/NFD/
 
-.. _ndn-cxx library: http://named-data.net/doc/ndn-cxx/
+.. _ndn-cxx library: https://named-data.net/doc/ndn-cxx/
 
 Logging
 -------
diff --git a/docs/source/meta/copying.rst b/docs/source/meta/copying.rst
index be9b65d..db081d7 100644
--- a/docs/source/meta/copying.rst
+++ b/docs/source/meta/copying.rst
@@ -35,9 +35,9 @@
 definitions and are used in accordance with GPL license exception for "System Libraries":
 
 The GPL license is provided below in this file. For more information about these licenses,
-see `<http://www.gnu.org/licenses/>`__
+see `<https://www.gnu.org/licenses/>`__
 
-.. _Boost Software License 1.0 : http://www.boost.org/users/license.html
+.. _Boost Software License 1.0 : https://www.boost.org/users/license.html
 
 ----------------------------------------------------------------------------------
 
@@ -47,7 +47,7 @@
 Version 3, 29 June 2007
 =======================
 
-    Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org/ Everyone is permitted to copy
+    Copyright (C) 2007 Free Software Foundation, Inc. https://fsf.org/ Everyone is permitted to copy
     and distribute verbatim copies of this license document, but changing it is not allowed.
 
 Preamble
@@ -601,7 +601,7 @@
     GNU General Public License for more details.
 
     You should have received a copy of the GNU General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 Also add information on how to contact you by electronic and paper mail.
 
@@ -621,10 +621,10 @@
 
 You should also get your employer (if you work as a programmer) or school, if any, to sign a
 "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply
-and follow the GNU GPL, see http://www.gnu.org/licenses/.
+and follow the GNU GPL, see https://www.gnu.org/licenses/.
 
 The GNU General Public License does not permit incorporating your program into proprietary programs.
 If your program is a subroutine library, you may consider it more useful to permit linking
 proprietary applications with the library. If this is what you want to do, use the GNU Lesser
 General Public License instead of this License. But first, please read
-http://www.gnu.org/philosophy/why-not-lgpl.html.
+https://www.gnu.org/philosophy/why-not-lgpl.html.
diff --git a/docs/source/metric.rst b/docs/source/metric.rst
index 67aa355..09d8bc6 100644
--- a/docs/source/metric.rst
+++ b/docs/source/metric.rst
@@ -181,7 +181,7 @@
 
 The successful run will create ``rate-trace.txt`` files in the current directly, which can be analyzed manually or used as input to some graph/stats packages.
 
-.. sidebar:: Graph build using the `R script <http://www.r-project.org/>`_
+.. sidebar:: Graph build using the `R script <https://www.r-project.org/>`_
 
     .. image:: _static/root-rates.png
         :alt: Interest/Data packet rates at the root node
@@ -190,7 +190,7 @@
     :language: r
     :linenos:
 
-For more information about R and ggplot2, please refer to `R language manual <http://cran.r-project.org/manuals.html>`_ and `ggplot2 module manual <http://docs.ggplot2.org/current/>`_.
+For more information about R and ggplot2, please refer to `R language manual <https://cran.r-project.org/manuals.html>`_ and `ggplot2 module manual <https://docs.ggplot2.org/current/>`_.
 
     ::
 
@@ -230,7 +230,7 @@
 
 The successful run will create ``drop-trace.txt`` file in the current directly, which can be analyzed manually or used as input to some graph/stats packages.
 
-For example, the following `R script <http://www.r-project.org/>`_ will build a number of nice graphs:
+For example, the following `R script <https://www.r-project.org/>`_ will build a number of nice graphs:
 
 .. literalinclude:: ../../examples/graphs/drop-graph.R
     :language: r
diff --git a/docs/source/ndnsim-research-papers.rst b/docs/source/ndnsim-research-papers.rst
index 4627132..319fbfc 100644
--- a/docs/source/ndnsim-research-papers.rst
+++ b/docs/source/ndnsim-research-papers.rst
@@ -11,7 +11,7 @@
 
 **For ndnSIM >= 2.0:**
 
-- **S. Mastorakis, A. Afanasyev, and L. Zhang, "On the Evolution of ndnSIM: an Open-Source Simulator for NDN Experimentation," ACM SIGCOMM Computer Communication Review (CCR), July 2017**  (`PDF <https://ccronline.sigcomm.org/wp-content/uploads/2017/08/sigcomm-ccr-final112-full-letter.pdf>`__, `BibTex <http://web.cs.ucla.edu/~mastorakis/bibtex-ndnsim>`__)
+- **S. Mastorakis, A. Afanasyev, and L. Zhang, "On the Evolution of ndnSIM: an Open-Source Simulator for NDN Experimentation," ACM SIGCOMM Computer Communication Review (CCR), July 2017**  (`PDF <https://ccronline.sigcomm.org/wp-content/uploads/2017/08/sigcomm-ccr-final112-full-letter.pdf>`__, `BibTex <https://web.cs.ucla.edu/~mastorakis/bibtex-ndnsim>`__)
 
     As a proposed Internet architecture, Named Data Networking (NDN) takes a
     fundamental departure from today's TCP/IP architecture, thus requiring extensive
@@ -24,7 +24,7 @@
     behind the design decisions. We also share with the community a number of lessons we
     have learned in the process.
 
-- **S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM 2.0: A new version of the NDN simulator for NS-3," NDN, Technical Report NDN-0028, 2015** (`PDF <http://named-data.net/techreport/ndn-0028-1-ndnsim-v2.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/399>`__)
+- **S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM 2.0: A new version of the NDN simulator for NS-3," NDN, Technical Report NDN-0028, 2015** (`PDF <https://named-data.net/techreport/ndn-0028-1-ndnsim-v2.pdf>`__, `BibTex <https://users.cs.fiu.edu/~afanasyev/assets/bibtex/tr-mastorakis2016ndnsim.html>`__)
 
     The fundamental departure of the Named-Data Networking (NDN) communication paradigm from the IP
     principles requires extensive evaluation through experimentation, and simulation is a necessary
@@ -38,7 +38,7 @@
 
 **For ndnSIM 1.0:**
 
-- **A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM: NDN simulator for NS-3," NDN, Technical Report NDN-0005, 2012** (`PDF <http://named-data.net/wp-content/uploads/TRndnsim.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/367>`__)
+- **A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM: NDN simulator for NS-3," NDN, Technical Report NDN-0005, 2012** (`PDF <https://named-data.net/wp-content/uploads/TRndnsim.pdf>`__, `BibTex <https://users.cs.fiu.edu/~afanasyev/assets/bibtex/tr-afanasyev2012ndnsim.html>`__)
 
     Named Data Networking (NDN) is a newly proposed Internet architecture.  NDN retains the
     Internet's hourglass architecture but evolves the thin waist.  Instead of pushing data to
@@ -56,13 +56,13 @@
 Research papers that use ndnSIM
 -------------------------------
 
-#. **L. Wang, A. Afanasyev, R. Kuntz, R. Vuyyuru, R. Wakikawa, and L. Zhang, "Rapid Traffic Information Dissemination Using Named Data," in Proceedings of the 1st ACM workshop on Emerging Name-Oriented Mobile Networking Design - Architecture, Algorithms, and Applications (NoM'12), Hilton Head Island, South Carolina, June 2012, pp. 7–12.** (`PDF <http://lasr.cs.ucla.edu/afanasyev/data/files/Wang/nom.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/365>`__, `simulation code <https://github.com/cawka/ndnSIM-nom-rapid-car2car>`__)
+#. **L. Wang, A. Afanasyev, R. Kuntz, R. Vuyyuru, R. Wakikawa, and L. Zhang, "Rapid Traffic Information Dissemination Using Named Data," in Proceedings of the 1st ACM workshop on Emerging Name-Oriented Mobile Networking Design - Architecture, Algorithms, and Applications (NoM'12), Hilton Head Island, South Carolina, June 2012, pp. 7–12.** (`PDF <https://users.cs.fiu.edu/~afanasyev/assets/papers/wang2012rapid.pdf>`__, `BibTex <https://users.cs.fiu.edu/~afanasyev/assets/bibtex/wang2012rapid.html>`__, `simulation code <https://github.com/cawka/ndnSIM-nom-rapid-car2car>`__)
 
     Our previous work applied the Named Data Networking approach to vehicle-to-vehicle (V2V) communications and developed a simple design for traffic information dissemination applications. This paper uses simulations to evaluate the feasibility of the design as described in [1].
     Our results show that data names can greatly facilitate the forwarding process for Interest and data packets.
     With adequate vehicle density, data can propagate over long distances robustly at tens of kilometers per second and a requester can retrieve the desired traffic information 10km away in a matter of seconds.
 
-#. **Z. Zhu, C. Bian, A. Afanasyev, V. Jacobson, and L. Zhang, "Chronos: Serverless Multi-User Chat Over NDN," NDN, Technical Report NDN-0008, 2012.** (`PDF <http://named-data.net/techreport/TR008-chronos.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/371>`__)
+#. **Z. Zhu, C. Bian, A. Afanasyev, V. Jacobson, and L. Zhang, "Chronos: Serverless Multi-User Chat Over NDN," NDN, Technical Report NDN-0008, 2012.** (`PDF <https://named-data.net/techreport/TR008-chronos.pdf>`__, `BibTex <https://users.cs.fiu.edu/~afanasyev/assets/bibtex/tr-zhu2012chronos.html>`__)
 
     Multi-user applications are commonly implemented using a centralized server.
     This paper presents a new design for multi-user chat applications (Chronos) that works in a distributed, serverless fashion over Named Data Networking.
@@ -77,7 +77,7 @@
 
     The ICN approach aims for reflecting these changes in usage of the Internet and is thus dragging content awareness into the network, for instance to let the network itself decide where to acquire requested data from and thereby utilize content caches to increase the data dissemination efficiency. All this is backed by the use of the publish/subscribe paradigm that is utilised to announce content availability and request its delivery. Since the ICN paradigm is entirely different from todays Internet, new challenges arise within the area of network security. NDN/CCNx, as the most popular ICN approach, claims to solve a couple of different security flaws which the actual Internet is suffering from. This raises the questions of which vulnerabilities still exist and if maybe new issues arise.
 
-#. **C. Yi, A. Afanasyev, I. Moiseenko, L. Wang, B. Zhang, and L. Zhang, "A Case for Stateful Forwarding Plane," Computer Communications, vol. 36, no. 7, pp. 779–791, 2013. ISSN 0140-3664** (`PDF <http://lasr.cs.ucla.edu/afanasyev/data/files/Yi/comcom-stateful-forwarding.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/380>`__, `simulation code <https://github.com/cawka/ndnSIM-comcom-stateful-fw>`__)
+#. **C. Yi, A. Afanasyev, I. Moiseenko, L. Wang, B. Zhang, and L. Zhang, "A Case for Stateful Forwarding Plane," Computer Communications, vol. 36, no. 7, pp. 779–791, 2013. ISSN 0140-3664** (`PDF <https://users.cs.fiu.edu/~afanasyev/assets/papers/tr-yi2012stateful.pdf>`__, `BibTex <https://users.cs.fiu.edu/~afanasyev/assets/bibtex/tr-yi2012stateful.html>`__, `simulation code <https://github.com/cawka/ndnSIM-comcom-stateful-fw>`__)
 
     In Named Data Networking (NDN), packets carry data names instead of source and destination addresses.
     This paradigm shift leads to a new network forwarding plane: data consumers send *Interest* packets to request desired data, routers forward Interest packets and maintain the state of all pending Interests, which is then used to guide *Data* packets back to the consumers.
@@ -86,7 +86,7 @@
     Our results show that this stateful forwarding plane can successfully circumvent prefix hijackers, avoid failed links, and utilize multiple paths to mitigate congestion.
     We also compare NDN's performance with that of IP-based solutions to highlight the advantages of a stateful forwarding plane.
 
-#. **A. Afanasyev, P. Mahadevan, I. Moiseenko, E. Uzun, and L. Zhang, "Interest Flooding Attack and Countermeasures in Named Data Networking," in Proc. of IFIP Networking 2013, May 2013.** (`PDF <http://lasr.cs.ucla.edu/afanasyev/data/files/Afanasyev/ifip-interest-flooding-ndn.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/381>`__, `simulation code <https://github.com/cawka/ndnSIM-ddos-interest-flooding>`__)
+#. **A. Afanasyev, P. Mahadevan, I. Moiseenko, E. Uzun, and L. Zhang, "Interest Flooding Attack and Countermeasures in Named Data Networking," in Proc. of IFIP Networking 2013, May 2013.** (`PDF <https://users.cs.fiu.edu/~afanasyev/assets/papers/afanasyev2013interest.pdf>`__, `BibTex <https://users.cs.fiu.edu/~afanasyev/assets/bibtex/afanasyev2013interest.html>`__, `simulation code <https://github.com/cawka/ndnSIM-ddos-interest-flooding>`__)
 
     Distributed Denial of Service (DDoS) attacks are an ongoing problem in today's Internet, where packets from a large number of compromised hosts thwart the paths to the victim site and/or overload the victim machines.
     In a newly proposed future Internet architecture, Named Data Networking (NDN), end users request desired data by sending Interest packets, and the network delivers Data packets upon request only, effectively eliminating many existing DDoS attacks.
@@ -122,7 +122,7 @@
     In this paper, we propose a secure and efficient context data collection and provision approach based on CCN.
     Simulation results show that this approach can reduce bandwidth consumption by 52.7%–98.9% in comparison to a TCP/IP-based one.
 
-#. **J. Ran, N. Lv, D. Zhang, Y. Ma, and Z. Xie, "On Performance of Cache Policies in Named Data Networking", in International Conference on Advanced Computer Science and Electronics Information (ICACSEI 2013), 2013** (`PDF <http://www.atlantis-press.com/php/download_paper.php?id=7640>`__)
+#. **J. Ran, N. Lv, D. Zhang, Y. Ma, and Z. Xie, "On Performance of Cache Policies in Named Data Networking", in International Conference on Advanced Computer Science and Electronics Information (ICACSEI 2013), 2013** (`PDF <https://www.atlantis-press.com/php/download_paper.php?id=7640>`__)
 
     Named Data Network (NDN) is gaining increasingly concerns, as an important direction of the future Internet architecture research centered on content.
     Content caching has played a key role in NDN.
@@ -134,7 +134,7 @@
     Moreover, it also shows the performance under different sizes of content store.
     The effectiveness of the CCP strategy is proved during the simulation.
 
-#. **M. Wahlisch, T.C. Schmidt, and M. Vahlenkamp, "Backscatter from the Data Plane--Threats to Stability and Security in Information-Centric Network Infrastructure", in Computer Networks, 2013** (`DOI 10.1016/j.comnet.2013.07.009 <http://dx.doi.org/10.1016/j.comnet.2013.07.009>`__)
+#. **M. Wahlisch, T.C. Schmidt, and M. Vahlenkamp, "Backscatter from the Data Plane--Threats to Stability and Security in Information-Centric Network Infrastructure", in Computer Networks, 2013** (`DOI 10.1016/j.comnet.2013.07.009 <https://dx.doi.org/10.1016/j.comnet.2013.07.009>`__)
 
     Information-centric networking (ICN) raises data objects to first class routable entities in the network and changes the Internet paradigm from host-centric connectivity to data-oriented delivery.
     However, current approaches to content routing heavily rely on data-driven protocol events and thereby introduce a strong coupling of the control to the data plane in the underlying routing infrastructure.
@@ -166,7 +166,7 @@
     That's why we aggregate the Interest packet but not increase the size of Data packet.
     Secondly we introduce the Interest Set mechanism that which is able to maintain a conversational "channel" between the data consumer and provider to cover the space and time uncertainty of data packet generating and at the same time reduces the number of FIB lookups and compresses the PIT.
 
-#. **Z. Zhu and A. Afanasyev, "Let's ChronoSync: Decentralized Dataset State Synchronization in Named Data Networking," in Proceedings of the 21st IEEE International Conference on Network Protocols (ICNP 2013), Goettingen, Germany, October 2013** (`PDF <http://lasr.cs.ucla.edu/afanasyev/data/files/Zhu/chronosync-icnp2013.pdf>`__)
+#. **Z. Zhu and A. Afanasyev, "Let's ChronoSync: Decentralized Dataset State Synchronization in Named Data Networking," in Proceedings of the 21st IEEE International Conference on Network Protocols (ICNP 2013), Goettingen, Germany, October 2013** (`PDF <https://users.cs.fiu.edu/~afanasyev/assets/papers/zhu2013lets.pdf>`__)
 
     In supporting many distributed applications, such as group text messaging, file sharing, and joint editing, a basic requirement is the efficient and robust synchronization of knowledge about the dataset such as text messages, changes to the shared folder, or document edits.
     We propose ChronoSync protocol, which exploits the features of the Named Data Networking architecture to efficiently synchronize the state of a dataset among a distributed group of users.
@@ -176,7 +176,7 @@
     We implemented ChronoSync as a C++ library and developed two distributed application prototypes based on it.
     We show through simulations that ChronoSync is effective and efficient in synchronization dataset state, and is robust against packet losses and network partitions.
 
-#. **Y. Wang, N. Rozhnova, A. Narayanan, D. Oran, and I. Rhee, "An improved hop-by-hop interest shaper for congestion control in named data networking". In Proceedings of the 3rd ACM SIGCOMM workshop on Information-centric networking, 2013** (`PDF <http://conferences.sigcomm.org/sigcomm/2013/papers/icn/p55.pdf>`__)
+#. **Y. Wang, N. Rozhnova, A. Narayanan, D. Oran, and I. Rhee, "An improved hop-by-hop interest shaper for congestion control in named data networking". In Proceedings of the 3rd ACM SIGCOMM workshop on Information-centric networking, 2013** (`PDF <https://conferences.sigcomm.org/sigcomm/2013/papers/icn/p55.pdf>`__)
 
     Hop-by-hop interest shaping has been proposed as a viable congestion control mechanism in Named Data Networking (NDN).
     Interest shaping exploits the strict receiver-driven traffc pattern and the symmetric bidirectional forwarding in NDN to control the returning data rate.
@@ -187,7 +187,7 @@
     We demonstrate our hopby-hop interest shaper in conjunction with simple AdditiveIncrease-Multiplicative-Decrease (AIMD) clients using the ns3-based NDN simulator (ndnSIM).
     Our results show that the proposed shaping algorithm can effectively control congestion and achieve near-optimal throughput.
 
-#. **S. Arianfar, P. Sarolahti, and J. Ott, "Deadline-based Resource Management for Information-Centric Networks". In Proceedings of the 3rd ACM SIGCOMM workshop on Information-centric networking, 2013** (`doi 10.1145/2491224.2491226 <http://dx.doi.org/10.1145/2491224.2491226>`__)
+#. **S. Arianfar, P. Sarolahti, and J. Ott, "Deadline-based Resource Management for Information-Centric Networks". In Proceedings of the 3rd ACM SIGCOMM workshop on Information-centric networking, 2013** (`doi 10.1145/2491224.2491226 <https://dx.doi.org/10.1145/2491224.2491226>`__)
 
     Unlike in traditional IP-based end-to-end network sessions, in information-centric networks the data source may change during a communication session.
     Therefore the response time to subsequent data requests may vary signiﬁcantly depending on whether data comes from nearby cache, or a distant source.
@@ -195,7 +195,7 @@
     This paper discusses a different approach for designing resource management in information-centric networks: data packets are assigned with a lifetime, that is used as a basis for scheduling and resource management in the network, and for congestion control and retransmission logic at the end hosts.
     We demonstrate an initial evaluation of this approach based on ns-3 simulations on CCN framework
 
-#. **M. Conti, P. Gasti, M. Teoli, "A lightweight mechanism for detection of cache pollution attacks in Named Data Networking". Computer Networks, 2013** (`doi 10.1016/j.comnet.2013.07.034 <http://dx.doi.org/10.1016/j.comnet.2013.07.034>`__)
+#. **M. Conti, P. Gasti, M. Teoli, "A lightweight mechanism for detection of cache pollution attacks in Named Data Networking". Computer Networks, 2013** (`doi 10.1016/j.comnet.2013.07.034 <https://dx.doi.org/10.1016/j.comnet.2013.07.034>`__)
 
     Content-Centric Networking (CCN) is an emerging paradigm being considered as a possible replacement for the current IP-based host-centric Internet infrastructure.
     In CCN, named content---rather than addressable hosts---becomes a first-class entity.
@@ -213,7 +213,7 @@
     We then illustrate that existing proactive countermeasures are ineffective against realistic adversaries. Finally, we introduce a new technique for detecting pollution attacks.
     Our technique detects high and low rate attacks on different topologies with high accuracy.
 
-#. **G. Mauri and G. Verticale, "Distributing key revocation status in Named Data Networking". Advances in Communication Networking, pages 310–313. Springer, 2013** (`doi 10.1007/978-3-642-40552-5_31 <http://dx.doi.org/10.1007/978-3-642-40552-5_31>`__)
+#. **G. Mauri and G. Verticale, "Distributing key revocation status in Named Data Networking". Advances in Communication Networking, pages 310–313. Springer, 2013** (`doi 10.1007/978-3-642-40552-5_31 <https://dx.doi.org/10.1007/978-3-642-40552-5_31>`__)
 
     Content Centric Networking (CCN) is a new network paradigm designed to satisfy user needs considering the growth of data demand.
     Named Data Networking (NDN) is a research project that is developing the future Internet architecture using the principles behind CCN.
@@ -235,7 +235,7 @@
 #. **Marica Amadeo, Claudia Campolo, Antonella Molinaro, Nathalie Mitton. "Named Data
    Networking: a Natural Design for Data Collection in Wireless Sensor Networks", IFIP Wireless
    Days 2013, Valencia, Spain.** (`DOI: 10.1109/WD.2013.6686486
-   <http://dx.doi.org/10.1109/WD.2013.6686486>`__, `PDF
+   <https://dx.doi.org/10.1109/WD.2013.6686486>`__, `PDF
    <https://www.academia.edu/attachments/34272952/download_file?st=MTQwNjEzNTQxOSw3OC4xNS4yMC40NSw3NjQ1Nzc%3D&>`__)
 
     Named Data Networking (NDN) is a promising paradigm for the future Internet architecture
@@ -249,7 +249,7 @@
 #. **Marica Amadeo, Claudia Campolo, Antonella Molinaro. "Forwarding Strategies in Named Data
    Wireless Ad hoc Networks: Design and Evaluation", Elsevier Journal of Network and Computer
    Applications (JNCA), 2014.** (`DOI: 10.1016/j.jnca.2014.06.007
-   <http://www.sciencedirect.com/science/article/pii/S1084804514001404>`__, `PDF
+   <https://www.sciencedirect.com/science/article/pii/S1084804514001404>`__, `PDF
    <https://www.academia.edu/attachments/34272694/download_file?st=MTQwNjEzNTk1Miw3OC4xNS4yMC40NSw3NjQ1Nzc%3D&>`__)
 
     Named Data Networking (NDN) is a promising information-centric architecture for the future
@@ -276,7 +276,7 @@
 
 #. **S. Tarnoi, K. Suksomboon, and Y. Ji, "Cooperative Routing for Content-Centric Networking,"
    IEEE Conference on Local Computer Networks (IEEE LCN), Sydney, Australia, October 2013.**
-   (`DOI:10.1109/LCN.2013.6761314 <http://dx.doi.org/10.1109/LCN.2013.6761314>`__)
+   (`DOI:10.1109/LCN.2013.6761314 <https://dx.doi.org/10.1109/LCN.2013.6761314>`__)
 
     A typical Forwarding Information Based (FIB) construction in the Content Centric Networking
     (CCN) architecture relies on the name prefix dissemination following the shortest path
@@ -294,7 +294,7 @@
 #. **S. Tarnoi, K. Suksomboon, W. Kumwilaisak, and Y. Ji, "Performance of probabilistic caching
    and cache replacement policies for content-centric networks", IEEE LCN, Edmonton, Canada,
    September 2014.** (`DOI:10.1109/LCN.2014.6925761
-   <http://dx.doi.org/10.1109/LCN.2014.6925761>`__)
+   <https://dx.doi.org/10.1109/LCN.2014.6925761>`__)
 
     The Content-Centric Networking (CCN) architecture exploits a universal caching strategy
     whose inefficiency has been confirmed by research communities. Various caching schemes have
@@ -311,7 +311,7 @@
 
 #. **S. Tarnoi, W. Kumwilaisak, and Y. Ji, "Optimal cooperative routing protocol based on
    prefix popularity for content centric networking", IEEE LCN, Edmonton, Canada, September
-   2014.** (`DOI:10.1109/LCN.2014.6925805 <http://dx.doi.org/10.1109/LCN.2014.6925805>`__)
+   2014.** (`DOI:10.1109/LCN.2014.6925805 <https://dx.doi.org/10.1109/LCN.2014.6925805>`__)
 
     This paper presents an optimal cooperative routing protocol (OCRP) for Content Centric
     Networking (CCN) aiming to improve the in-network cache utilization. The objective of OCRP
@@ -325,7 +325,7 @@
 
 #. **Klaus M. Schneider, and Udo R. Krieger, "Beyond Network Selection: Exploiting Access Network
    Heterogeneity with Named Data Networking", 2nd ACM Conference on Information-Centric
-   Networking, San Francisco, October, 2015** (`DOI: 10.1145/2810156.2810164 <http://dx.doi.org/10.1145/2810156.2810164>`__, `PDF <http://conferences2.sigcomm.org/acm-icn/2015/proceedings/p137-schneider.pdf>`__)
+   Networking, San Francisco, October, 2015** (`DOI: 10.1145/2810156.2810164 <https://dx.doi.org/10.1145/2810156.2810164>`__, `PDF <https://conferences2.sigcomm.org/acm-icn/2015/proceedings/p137-schneider.pdf>`__)
 
     Today, most mobile devices are equipped with multiple wireless network interfaces, but are
     constrained to use only one network at the same time. In this paper, we show that using multiple
diff --git a/docs/source/parallel-simulations.rst b/docs/source/parallel-simulations.rst
index 6034d6e..0ff2049 100644
--- a/docs/source/parallel-simulations.rst
+++ b/docs/source/parallel-simulations.rst
@@ -4,7 +4,7 @@
 A way to speed up your simulations is to run them in parallel taking advantage of the power of
 all the processors and the memory availability of your machine. This can be done by using the
 Message Passing Interface (MPI) along with the distributed simulator class `provided by NS-3
-<http://www.nsnam.org/docs/models/html/distributed.html#mpi-for-distributed-simulation>`_.
+<https://www.nsnam.org/docs/models/html/distributed.html#mpi-for-distributed-simulation>`_.
 
 To make use of MPI, the network topology needs to be partitioned in a proper way, as the
 potential speedup will not be able to exceed the number of topology partitions. However, it
@@ -30,7 +30,7 @@
 will work with distributed simulation.
 
 For more information, you can take a look at the `NS-3 MPI documentation
-<http://www.nsnam.org/docs/models/html/distributed.html#mpi-for-distributed-simulation>`_.
+<https://www.nsnam.org/docs/models/html/distributed.html#mpi-for-distributed-simulation>`_.
 
 Compiling and running ndnSIM with MPI support
 ---------------------------------------------
diff --git a/docs/source/tutorial.rst b/docs/source/tutorial.rst
index 7b1cf2e..d1bb374 100644
--- a/docs/source/tutorial.rst
+++ b/docs/source/tutorial.rst
@@ -7,9 +7,9 @@
 model, the clean slate Internet design.
 
 We invite you to `join our mailing list
-<http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>`_ to see and participate in
+<https://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>`_ to see and participate in
 discussions about ndnSIM implementation and simulations in general (`mailing list archives
-<http://www.lists.cs.ucla.edu/pipermail/ndnsim/>`_).
+<https://www.lists.cs.ucla.edu/pipermail/ndnsim/>`_).
 
 Contents:
 
@@ -46,12 +46,12 @@
 
 **For ndnSIM >= 2.0:**
 
-- **S. Mastorakis, A. Afanasyev, and L. Zhang, "On the Evolution of ndnSIM: an Open-Source Simulator for NDN Experimentation," ACM SIGCOMM Computer Communication Review (CCR), July 2017** (`PDF <https://ccronline.sigcomm.org/wp-content/uploads/2017/08/sigcomm-ccr-final112-full-letter.pdf>`__, `BibTex <http://web.cs.ucla.edu/~mastorakis/bibtex-ndnsim>`__)
+- **S. Mastorakis, A. Afanasyev, and L. Zhang, "On the Evolution of ndnSIM: an Open-Source Simulator for NDN Experimentation," ACM SIGCOMM Computer Communication Review (CCR), July 2017** (`PDF <https://ccronline.sigcomm.org/wp-content/uploads/2017/08/sigcomm-ccr-final112-full-letter.pdf>`__, `BibTex <https://web.cs.ucla.edu/~mastorakis/bibtex-ndnsim>`__)
 
-- **S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM 2: An updated NDN simulator for NS-3," NDN, Technical Report NDN-0028, Revision 2, 2016** (`PDF <https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/399>`__)
+- **S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM 2: An updated NDN simulator for NS-3," NDN, Technical Report NDN-0028, Revision 2, 2016** (`PDF <https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf>`__, `BibTex <https://users.cs.fiu.edu/~afanasyev/assets/bibtex/tr-mastorakis2016ndnsim.html>`__)
 
 **For ndnSIM 1.0:**
 
-- **A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM: NDN simulator for NS-3," NDN, Technical Report NDN-0005, 2012** (`PDF <https://named-data.net/wp-content/uploads/TRndnsim.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/367>`__)
+- **A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM: NDN simulator for NS-3," NDN, Technical Report NDN-0005, 2012** (`PDF <https://named-data.net/wp-content/uploads/TRndnsim.pdf>`__, `BibTex <https://users.cs.fiu.edu/~afanasyev/assets/bibtex/tr-afanasyev2012ndnsim.html>`__)
 
 .. * :ref:`search`
