Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction ...
-
Upload
sydney-black -
Category
Documents
-
view
224 -
download
0
Transcript of Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction ...
![Page 1: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/1.jpg)
Packet Headers Format and Trace
蕭博鴻698430007
![Page 2: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/2.jpg)
Here comes your footer
Outline
IntroductionPacket ModulePacket HeaderPacket Header Mapping to OtclPacket Header Manager in NS2Defining a New Packet Header to NS2 [Step by Step]
Trace
Page 2
![Page 3: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/3.jpg)
Here comes your footer
Introduction
Packet consists of packet header and data payload.
In most cases, NS2 extracts information from data payload and stores the information into packet header.
By default, NS2 includes All packet headers of All protocols in every packet.
In NS2, Class Packet is derived from class Event.
s.schedule(target_, p, txt + delay_)
Page 3
![Page 4: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/4.jpg)
Here comes your footer Page 4
Packet Module
![Page 5: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/5.jpg)
Here comes your footer Page 5
![Page 6: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/6.jpg)
Here comes your footer
C++ Variables of class Packet
unsigned char* bits_ AppData* data_ int hdr_len_ bool fflag_
- Set to true if the packet is currently referred to by other objects and false otherwise
Packet* free_ - Pointer to the head of the packet free list
int ref_count_ - Number of objects which currently refer to the packet
Packet* next_ - Pointer to the next packet in the linked list of packets
Page 6
![Page 7: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/7.jpg)
Here comes your footer
C++ Functions of class Packet
void init(Packet* )- Clears the packet header bits_ of the input packet p.
Packet* copy() - Returns a pointer to a duplicated packet.
Packet* refcopy() - Increases the number of objects, which refer to the packet
Packet* alloc() - Creates a new packet and returns a pointer to the created packet.
Packet* alloc(n) - Creates a new packet with “n” bytes of data payload and returns a pointer to
the created packet.
Page 7
![Page 8: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/8.jpg)
Here comes your footer
Cont’
void allocdata(int)- Allocates “n” bytes of data payload to the variable data_.
void free(Packet*) - Deallocates packet.
char* access(int) - Retrieves a reference to a certain point (specified by the offset “off”) of the
variable bits_ (i.e., packet header).
Page 8
![Page 9: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/9.jpg)
Here comes your footer
Link List of Packet
Page 9
![Page 10: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/10.jpg)
Here comes your footer Page 10
Packet Queue
![Page 11: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/11.jpg)
Here comes your footer
Packet Allocation
Packet* alloc() Packet* alloc(n)
Page 11
![Page 12: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/12.jpg)
Here comes your footer
Packet Deallocation
void free(Packet*)
Page 12
![Page 13: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/13.jpg)
Here comes your footer Page 13
Packet Header
![Page 14: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/14.jpg)
Here comes your footer Page 14
Packet Header Module
![Page 15: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/15.jpg)
Here comes your footer Page 15
Common Header
Structure
![Page 16: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/16.jpg)
Here comes your footer Page 16
Packet Type
![Page 17: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/17.jpg)
Here comes your footer Page 17
Packet Header Mapping
to OTcl
Class/Object Name
C++ Structure hdr_cmn
OTcl Class PacketHeader/Common
Mapping Class CommonHeaderClass
Mapping Variable class_cmnhdr
![Page 18: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/18.jpg)
Here comes your footer Page 18
![Page 19: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/19.jpg)
Here comes your footer Page 19
Packet Header Manager in NS2
![Page 20: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/20.jpg)
Here comes your footer Page 20
Packet Header Manager
![Page 21: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/21.jpg)
Here comes your footer Page 21
Packet Header Manager add Packet Header
Add all Packet Header to Ns2Add all Packet Header to Ns2
Init SimulatorAnd Create Packet Format
Init SimulatorAnd Create Packet Format
Allocate Packet Header OffsetIn Packet And increase header length
Allocate Packet Header OffsetIn Packet And increase header length
![Page 22: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/22.jpg)
Here comes your footer
The Other Command
add-packet-header args- This global proc will tell simulator to include the specified packet header(s) in
your simulation.
remove-packet-header args- operates in the same syntax, but it removes the specified headers from your
simulation; notice that it does not remove the common header even it is instructed to do so.
remove-all-packet-headers- It takes no argument and removes all packet headers, except the common
header, from your simulation.
Page 22
![Page 23: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/23.jpg)
Here comes your footer
1. Define a protocol specific header C++ struct hdr_echo_back
− Declare variable offset_
− Define function access(p)
− Include all member variables require to hold new packet attributes
2. Include new packet type into packet_t and class p_info
− Declare variable PT_ECHOBACK
− Protocol header ‘s name is “EchoBack”
3. Define a protocol specific header OTcl class PacketHeader/EchoBack
4. Derive a mapping class EchoBackHeaderClass from PacketHeaderClass
− At the construction, feed PacketHeader/EchoBack and sizeof(struct hdr_echo_back) of class PacketHeaderClass
− From within the constructor, Use bind_offset function to bind hdr_echo_back::offset_
5. Active Header into the PacketHeaderManager protocol list.
− Added EchoBack into the foreach loop
6. Edit Makefile to Compile your header, then clean the ns2 and recompile ns2.
Page 23
Defining a New Packet Header to NS2Step by Step
![Page 24: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/24.jpg)
Here comes your footer Page 24
抽考題目
在 NS2的封包內新增一個表頭 (EchoBack)。
![Page 25: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/25.jpg)
Here comes your footer
根據下面步驟來完成新增動作。1. Define a protocol specific header C++ struct hdr_echo_back
− Declare variable offset_
− Define function access(p)
− Include all member variables require to hold new packet attributes
2. Include new packet type into packet_t and class p_info
− Declare variable PT_ECHOBACK
− Protocol header ‘s name is “EchoBack”
3. Define a protocol specific header OTcl class PacketHeader/EchoBack
4. Derive a mapping class EchoBackHeaderClass from PacketHeaderClass
− At the construction, feed PacketHeader/EchoBack and sizeof(struct hdr_echo_back) of class PacketHeaderClass
− From within the constructor, Use bind_offset function to bind hdr_echo_back::offset_
5. Active Header into the PacketHeaderManager protocol list.
− Added EchoBack into the foreach loop
6. Edit Makefile to Compile your header, then clean the ns2 and recompile ns2.
Page 25
程式碼的部分已經完成,將 echo_back.cc 跟 echo_back.h 放到 NS2 的資料夾內,根據上面的步驟完成 2 、 5 、 6 的步驟
抽考題目 ( 提示 )
![Page 26: Packet Headers Format and Trace 蕭博鴻 698430007. Here comes your footer Outline Introduction Packet Module Packet Header Packet Header Mapping to.](https://reader036.fdocuments.net/reader036/viewer/2022062314/56649cd65503460f9499dff4/html5/thumbnails/26.jpg)
Here comes your footer Page 26
THANK YOU