Browse Source

README-en.md edited online with Bitbucket

Jose R Ortiz Ubarri 8 years ago
parent
commit
994f2106bb
1 changed files with 46 additions and 40 deletions
  1. 46
    40
      README-en.md

+ 46
- 40
README-en.md View File

@@ -79,7 +79,7 @@ In this laboratory experience you will complete a simple packet sniffer that cap
79 79
 
80 80
 ## Laboratory session:
81 81
 
82
-The application that you will complete today allows the users to analyze network traffic and to monitor the images that are being tranfered through the net.
82
+The application that you will complete today allows the users to analyze network traffic and monitor the images that are being tranfered through the net.
83 83
 
84 84
 Figure 2 shows an image of the application interface. Each row in the table is the information of each captured packet. The text box under the table presents a ASCII summary of a selected packet from the table. The list in the right presents the images that have been captured by the sniffer.  
85 85
 
@@ -95,6 +95,7 @@ To create a packet sniffer you can use the *pcap* library that provides an inter
95 95
 
96 96
 The task of the sniffer programmer to decode the raw stream into human readable information.  Fortunately this is not your task, but you can learn how to do it, if you want, by reading the source code of this laboratory.  Your task is to follow the exercises below so you provide the packet sniffer with the needed objects (Classes) to process the packets.
97 97
 
98
+
98 99
 ### Exercise 1 - Familiarize yourself with the application
99 100
 
100 101
 #### Instructions:
@@ -107,59 +108,60 @@ The task of the sniffer programmer to decode the raw stream into human readable
107 108
 2. Configure the project.  The project consists of several files.  In this laboratory experience you will be working with the files `ethernet_hdr.h`, `ethernet_packet.h`, `ethernet_packet.cpp`, `ip_packet.h` and `ip_packet.cpp`.
108 109
 
109 110
 
110
-### Exercise 2: Complete the class ethernet_packet
111
+### Exercise 2 - Complete the class ethernet_packet
111 112
 
112
-Study the file `ethernet_hdr.h`. This file contains the definition of the data structure that represents an Ethernet header.:
113
+1. Study the file `ethernet_hdr.h`. This file contains the definition of the data structure that represents an Ethernet header.:
113 114
 
114
-```
115
-#define ETHER_ADDR_LEN 6
115
+    ```
116
+    #define ETHER_ADDR_LEN 6
116 117
 
117
-struct sniff_ethernet {
118
+    struct sniff_ethernet {
118 119
         u_char  ether_dhost[ETHER_ADDR_LEN];    /* destination host address */
119 120
         u_char  ether_shost[ETHER_ADDR_LEN];    /* source host address */
120 121
         u_short ether_type;                     /* IP? ARP? RARP? etc */
121
-};
122
-```
122
+    };
123
+    ```
123 124
 
124
-The Ethernet header above is used to decode the ethernet part of the raw data in each packet.  It is composed of the source MAC address (ether_shost, 6 bytes), the destiantion MAC address (ether_dhost, 6 bytes), and the type of Ethernet packet (ether_type, 2 bytes) which is used to determine if the packet is an IP packet.
125
+    The Ethernet header above is used to decode the ethernet part of the raw data in each packet.  It is composed of the source MAC address (ether_shost, 6 bytes), the destiantion MAC address (ether_dhost, 6 bytes), and the type of Ethernet packet (ether_type, 2 bytes) which is used to determine if the packet is an IP packet.
125 126
 
126
-As you know, it is not a good idea to show this information format to a regular user.  Your first task is to define the functions of the C++ class that defines the functions to translate the MAC address information into human readable strings.
127
+    As you know, it is not a good idea to show this information format to a regular user.  Your first task is to define the functions of the C++ class that defines the functions to translate the MAC address information into human readable strings.
127 128
 
128
-The following code is the definition of the class `ethernet_packet`, that can be found in file `ethernet_packet.h`:
129
+2. The following code is the definition of the class `ethernet_packet`, that can be found in file `ethernet_packet.h`:
129 130
 
130
-```
131
-class ethernet_packet
132
-{
131
+    ```
132
+    class ethernet_packet
133
+    {
133 134
 
134
-    sniff_ethernet ethernet ;
135
-    // Returns a 6 bytes MAC address in string representation.
136
-    string mac2string(u_char []) ;
135
+        sniff_ethernet ethernet ;
136
+        // Returns a 6 bytes MAC address in string representation.
137
+        string mac2string(u_char []) ;
137 138
 
138
-public:
139
-    ethernet_packet();  // Default constructor
139
+    public:
140
+        ethernet_packet();  // Default constructor
140 141
 
141
-    // Set the ethernet variable member ether_dhost to the values
142
-    // received in the array
143
-    void setEtherDHost(u_char []) ;
144
-    // Same as above but to the ether_shost
145
-    void setEtherSHost(u_char []) ;
142
+        // Set the ethernet variable member ether_dhost to the values
143
+        // received in the array
144
+        void setEtherDHost(u_char []) ;
145
+        
146
+        // Same as above but to the ether_shost
147
+        void setEtherSHost(u_char []) ;
146 148
 
147
-    // Set the ethernet type to the value received.
148
-    void setEtherType(u_short) ;
149
+        // Set the ethernet type to the value received.
150
+        void setEtherType(u_short) ;
149 151
 
150
-    // returns the string representation of the ethernet addresses
151
-    string getEtherDHost() ;
152
-    string getEtherSHost() ;
152
+        // returns the string representation of the ethernet addresses
153
+        string getEtherDHost() ;
154
+        string getEtherSHost() ;
153 155
 
154
-    // Return the ethernet type
155
-    u_short getEtherType() ;
156
+        // Return the ethernet type
157
+        u_short getEtherType() ;
156 158
 
157
-};
158
-```
159
+    };
160
+    ```
159 161
 
160
-Note that each object of the class `ethernet_packet` only has one attribute: a structure of type `sniff_ethernet` named `ethernet`
162
+    Note that each object of the class `ethernet_packet` only has one attribute: a structure of type `sniff_ethernet` named `ethernet`
161 163
 
162
-The rest are methods that act as interface to the attribute:
164
+3. The rest are methods that act as interface to the attribute:
163 165
 
164 166
     * `void setEtherDHost(u_char [])`: is a *setter* to the field `ether_dhost` of the attribute `ethernet`
165 167
     * `void setEtherSHost(u_char [])`: is a *setter* to the field `ether_shost` of the attribute `ethernet`
@@ -168,9 +170,9 @@ The rest are methods that act as interface to the attribute:
168 170
     * `getEtherType()` is a *getter*  that returns the value of `ether_type` as *unsigned char*.
169 171
     * the private method `string mac2string(u_char [])` receives an array of six *unsigned characters* and returns the corresponding string to its hexadecimal representation. For example, if it receives `{ 0x8A, 0x11, 0xAB, 0xFF, 0x12, 0x34}` it must return the string `"8A:11:AB:FF:12:34"`.
170 172
 
171
-Your task in this exercise is to implement the seven functions listed above in the file `ethetnet_packet.cpp`.  The headers of some of the functions are provided in the file.
173
+4. Your task in this exercise is to implement the seven functions listed above in the file `ethetnet_packet.cpp`.  The headers of some of the functions are provided in the file.
172 174
 
173
-## Exercise 3: Construct the header of class ip_packet  
175
+### Exercise 3 - Construct the header of class ip_packet  
174 176
 
175 177
 Study the definitions of the functions of the class `ip_packet` found in file `ip_packet.cpp`
176 178
 
@@ -187,10 +189,14 @@ In the declaration of the class `ip_packet` you must especify that it is a **der
187 189
 
188 190
 ---
189 191
 
190
-### Deliverables
192
+## Deliverables
193
+
194
+1. Use "Deliverables" in Moodle to upload the file `ethernet_packet.cpp` and `ip_packet.h` that you defined.
191 195
 
192
-Use "Deliverables" in Moodle to upload the files `ethernet_packet.cpp` y `ip_packet.h` that you defined.
196
+---
197
+
198
+---
193 199
 
194
-### References
200
+## References
195 201
 
196 202
 [1]http://en.wikipedia.org/wiki/Packet_analyzer