Skip to main content

P2P network Simulation using NS3 | NS3 Tutorial

Introduction to Fault Tolerance

Fault Tolerance Techniques

  • Introduction
    • Hardware Faults – Occurs due to a physical defect of a system like a broken wire or a logic struck at 0 in a gate.
    • Software faults – occurs due to a bug introduced in a system so the software misbehaves for a given set of inputs
    • Error – the manifestation of a fault is the error (Fault may occur anytime, but only the error manifests that fault)
    • Fault Latency – the time between the onset of fault and its manifestation as an error is the fault latency
    • Error Recovery
      • Forward Error Recovery – the error is masked without any computations having to be redone.
      • Backward Error Recovery - the system is rolled back to a moment in time before the error is believed to have occurred.

What Causes Failures?

There are three main causes of failures:

  • Errors in the specification or design
    • Mistakes in the specification and Design are very difficult to guard.
    • Many hardware failures and all software failures occur due to such mistakes.
    • It is difficult to ensure that the specification is completely right.
  • Defects in the components
    • Hardware components can develop defects.
    • Wear and tear of components
  • Environmental effects
    • Devices can be subjected to whole array of stresses, depending on the application.
    • High ambient temperatures can melt components or otherwise damage them.

Fault Types

Faults are classified according to temporal and output behavior

  • Temporal behavior classification

    A(t)    B(t)

    C(t)    D(t)

  • Permanent faults
    • Does not die away with time, remains until it is repaired
    • Ex. Broken wires
    • From the above Diagram: A(t)>0; B(t) =C(t) = D(t)=0
  • Intermittent Fault
    • It cycles between the fault active and fault benign states.
    • Eg. Caused by loose wires    
    • From the above Diagram: A(T)>0; B(t)>0; D(t)>0; C(t)=0
  • Transient Fault
    • Dies away after some time
    • Ex: environmental effects
    • From the above Diagram: A(t)>0; C(t)>0; B(t)=D(t)=0
  • Output behavior classification
    • Malicious
    • Non malicious


Popular posts from this blog

Installing ns3 in Ubuntu 22.04 | Complete Instructions

In this post, we are going to see how to install ns-3.36.1 in Ubuntu 22.04. You can follow the video for complete details Tools used in this simulation: NS3 version ns-3.36.1  OS Used: Ubuntu 22.04 LTS Installation of NS3 (ns-3.36.1) There are some changes in the ns3 installation procedure and the dependencies. So open a terminal and issue the following commands Step 1:  Prerequisites $ sudo apt update In the following packages, all the required dependencies are taken care and you can install all these packages for the complete use of ns3. $ sudo apt install g++ python3 python3-dev pkg-config sqlite3 cmake python3-setuptools git qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3 openmpi-bin openmpi-common openmpi-doc libopenmpi-dev autoconf cvs bzr unrar gsl-bin libgsl-dev libgslcblas0 wireshark tcpdump sqlite sqlite3 libsqlite3-dev  libxml2 libxml2-dev libc6-dev libc6-dev-i386 libclang-dev llvm-

Installation of NS2 (ns-2.35) in Ubuntu 20.04

Installation of NS2 (ns-2.35) in Ubuntu 20.04 LTS Step 1: Install the basic libraries like      $] sudo apt install build-essential autoconf automake libxmu-dev Step 2: install gcc-4.8 and g++-4.8 open the file using sudo mode $] sudo nano /etc/apt/sources.list Include the following line deb bionic main universe $] sudo apt update $] sudo apt install gcc-4.8 g++-4.8 Step 3:  Unzip the ns2 packages to home folder $] tar zxvf ns-allinone-2.35.tar.gz $] cd ns-allinone-2.35/ns-2.35 Modify the following make files. ~ns-2.35/ Change @CC@ to gcc-4.8 change @CXX@ to g++-4.8 ~nam-1.15/ ~xgraph-12.2/ ~otcl-1.14/ Change in all places  @CC@ to gcc-4.8 @CPP@ or @CXX@ to g++-4.8 open the file: ~ns-2.35/linkstate/ls.h Change at the Line no 137  void eraseAll() { erase(baseMap::begin(), baseMap::end()); } to This void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); } All changes made Step 4: Open a new termi

NS2 Installation in Ubuntu 22.04

NS-2.35 installation in Ubuntu 22.04 This post shows how to install ns-2.35 in Ubuntu 22.04 Operating System Since ns-2.35 is too old, it needs the following packages gcc-4.8 g++-4.8 gawk and some more libraries Follow the video for more instructions So, here are the steps to install this software: To download and extract the ns2 software Download the software from the following link Extract it to home folder and in my case its /home/pradeepkumar (I recommend to install it under your home folder) $ tar zxvf ns-allinone-2.35.tar.gz or Right click over the file and click extract here and select the home folder. $ sudo apt update $ sudo apt install build-essential autoconf automake libxmu-dev gawk To install gcc-4.8 and g++-4.8 $ sudo gedit /etc/apt/sources.list make an entry in the above file deb bionic main universe $ sudo apt update Since, it&#