Preliminary Design
Requested by: Mr. Ken Swarner
Systems Administrator
Computer Science Department of
Siena College
TCP/IP Packet Descriptor
Mirage Incorporated
“We are there…even if you cannot see us”
Prepared by: Paul Aiuto
Richard Connell
Lauren Englisbe, Team Leader
Jayme Gresen
Jeffrey Habiniak
December 5, 2003
Preliminary Design
Table
of Contents
1.0 External Design Specifications |
3 |
1.1
User Displays |
3-12 |
1.2
User Command Summary |
13 |
1.3
Detailed Data Flow Diagrams |
14-16 |
1.4
Hardware, Software, and Human Interfaces |
17 |
2.0 Architectural Design Specification |
18 |
2.1
User Commands (AKA “Clickable Buttons”) |
18 |
2.2
Functional Descriptions |
19 |
2.2.1
IP PDU for the selected FTP PDU |
19-32 |
2.2.2
TCP PDU for the selected FTP PDU |
33-43 |
2.2.3
FTP PDU for the selected FTP PDU |
44 |
2.2.4
IP PDU for the selected ICMP PDU |
45-57 |
2.2.5
ICMP PDU for the selected ICMP PDU |
58-64 |
3.0 Appendix |
65 |
3.1
Glossary |
65-67 |
3.2
Gantt Chart |
68-69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.0 External Design Specifications
1.1
User displays
This will be the first screen the
user sees. It is the introduction
screen to our software, and presents our mascot, “The Descript-roar”.
This is the first functional screen the user will see. It allows the user to see what an Ethernet Packet looks like, and eventually each frame within that packet will be clickable and able to display information about that frame.
The “Choose a Protocol” menu gives the user a graphical representation of how protocols are interrelated, and allows the desired protocol to be selected.
Once a protocol has been selected by the user, this screen will display. The basis for our protocol suite, the IP PDU is displayed on the left, filled in with the given data for the selected protocol. The user is able to click on any field in the IP PDU, and an information box will display on the right, describing that field. In the IP PDU Data field, “TCP PDU” is written – this indicates that the entire TCP PDU is contained within the IP Data field. If the user clicks on this field, the TCP PDU will be displayed.
The PDUs are tabbed on their lower left corners: this allows the user to navigate between them. Additionally, there is a key at the top right corner to display what PDUs make up the chosen protocol. The user may also click on any PDU in this map to navigate. If at any point, the user wants to choose a different protocol to view, he or she may click on the “Choose a Protocol” button in the top left corner.
The next screen shows the TCP PDU on top of the IP
PDU. This is meant to show that the TCP
PDU is contained within the IP PDU.
Additionally, the FTP PDU is contained within the TCP PDU Data field, so
clicking on that field will display the FTP PDU. As with IP, if a TCP field is clicked, the information for that
field will be displayed in the information box at the right.
This is the software with all the information displayed for the selected FTP PDU. The IP PDU gives rise to the TCP PDU, and the TCP Data field has been clicked, which allows us to see the information field for the FTP PDU on the right.
Mirage has provided a number of prototype options, which will be chosen by the client at a later date.
Prototype Model Option 1 (IP PDU):
Prototype Model Option 2 (TCP PDU):
We also have two choices to allow for information display for a given field.
Information Field Option 1:
Information Field Option 2:
This is the user display using our second option for the Information Field:
1.2 User Command Summary
This is the screen giving the user the option to choose many different packets.
Allows the user to see their progression through the many packets, and also able to choose their desired packet.
Allows the user two chooses of two different IP Versions.
Allows the user to select a radix to display.
Allows the user to see the given information for a selected field.
1.3 Detailed Data Flow Diagrams
Level 0 Diagram:
Context Diagram:
Detailed Diagram:
1.4 Hardware, Software and Human Interfaces
The prototype was developed and designed on Macromedia Fireworks, a graphic design program.
The program will be written in HTML using Macromedia MX and perhaps PHP (PHP Hypertext Processor) Version 4.1.2.
The TCP/IP Packet Descriptor program will be hosted as a web site on the Siena College Computer Science Department’s Oraserv Linux server (Red Hat version 7.1), running the Apache web server (version 1.3.19).
Any Netscape Navigator 7.x or greater and Internet Explorer
5.x or greater web browser may access the program.
2.0 Architectural Design Specification
2.1 User Commands (AKA “Clickable Buttons”)
IP Version
Internet Header Length
Type of Service
Total Length of Ethernet Frame
Identification
Flags
Fragment Offset
Time to Live
Protocol
Header Checksum
Source IP Address
Destination IP Address
Options
Data
Source Port Number
Destination Port Number
Sequence Number
Acknowledgement Number
Header Lengths
Reserved
Window Size
TCP Checksum
Urgent Pointer
Options
Data
2.2 Functional Descriptions
2.2.1 IP PDU for the selected FTP PDU
IP PDU
> IP Version for the selected FTP PDU
Field Name: IP Version
Purpose and Definition: Version is a 4-bit field that indicates the
format of the internet header.
Field Key: 4 = IPv4
6
= IPv6
Data value (decimal): 4
Data values in other bases:
Hexadecimal |
4 |
Binary |
0100 |
Decimal |
4 |
Programming Hint: The name for this variable in code will be IP_IPVersion_FTP.
IP PDU > Internet Header Length for the selected FTP PDU
Field Name:
Internet Header Length
Purpose and Definition: The IHL field is a 4-bit field indicating the length of the internet header in 32 bit words, and thus points to the beginning of the data. The minimum value of a correct header is 5.
Field Key: Not applicable
Data value: The value contained in our field is 20 bytes. This is the hexadecimal and decimal value of 5 multiplied by 4 bits.
Data values in other bases:
Hexadecimal |
0 |
5 |
Binary |
0000 |
0101 |
Decimal |
5 |
Programming Hint: The name
for this variable in code will be IP_IHL_FTP.
IP PDU
> Type of Service for the selected FTP PDU
Field Name:
Type of Service
Purpose and Definition: Type of Service is an 8-bit field that
provides and indication of the abstract parameters of the quality of service
desired. These parameters guide the
selection of the actual service parameters when transmitting a datagram through
a particular network.
Field Key: The major choice is a three-way tradeoff between low-delay, high-reliability, and high-throughput.
Bits 0-2: Precedence
Bit 3: (D) 0 = Normal Delay 1 = Low Delay
Bit 4: (T) 0 = Normal Throughput 1 = High Throughput
Bit 5: (R) 0 = Normal Reliability 1 = High Reliability
Precedence:
111 = Network Control 011 = Flash
110 = Internetwork Control 010 = Immediate
101 = CRITIC/ECP 001 = Priority
100 = Flash
Overrided 000 = Routine
Data value (hexadecimal): 10
Data values in other bases:
Hexadecimal |
1 |
0 |
Binary |
0001 |
0000 |
Decimal |
16 |
Programming Hint: The name
for this variable in code will be IP_TypeOfService_FTP.
IP PDU
> Total Length of Ethernet Frame for the selected FTP PDU
Field Name: Total Length of Ethernet Frame
Purpose and Definition: Total Length is a
16-bit field that indicates the length of the frame, measured in octets,
including internet header and data. The
maximum size is 216-1 or 65,535 octets; however, the recommended
maximum size is 576 octets.
Field Key:
Not applicable
Data values (hexadecimal): 69
Data values in other bases:
Hexadecimal |
0 |
0 |
6 |
9 |
Binary |
0000 |
0000 |
0110 |
1001 |
Decimal |
0 |
105 |
||
ASCII |
© |
i |
Programming Hint: The name for this variable in code will be IP_TotalLength_FTP.
IP PDU > Identification for the selected FTP PDU
Field Name: Identification
Purpose and Definition: Identification is a 16-bit field. An identifying value is assigned by the
sender to aid in assembling the fragments of a datagram. The identifier is chosen based on the need
to provide a way to uniquely identify the fragments and protocol for the time
the datagram or any fragment could be alive in the internet.
Field Key:
Not applicable
Data value (hexadecimal): AA 41
Data values in other bases:
Hexadecimal |
A |
A |
4 |
1 |
Binary |
1010 |
1010 |
0100 |
0001 |
Programming Hint: The name for this variable in code will be IP_Idenfification_FTP.
IP PDU > Flags for the selected FTP PDU
Field Name:
Flags
Purpose and Definition: Flags is a 3-bit field that indicates
directions for fragmentation.
Field Key:
Bit 0: reserved, must be 0
Bit 1: (DF) 0 = May Fragment 1 = Don’t Fragment
Bit 2: (MF) 0 = Last Fragment 1 = More Fragment
Data value (binary): 010
Data values in other bases: Not applicable
Programming Hint:
The name for this variable in code will be IP_Flags_FTP.
IP PDU > Fragment Offset for the selected FTP PDU
Field Name:
Fragment Offset
Purpose and Definition: The Fragment Offset is a 13- bit field
indicating where in the Ethernet frame this fragment begins. The Fragment Offset is measured in units of
8 octets, and the first fragment has offset 0.
Field Key:
Not applicable
Data value (decimal): 0
Data values in other bases:
Programming Hint: The name for this variable in code will be IP_FragmentOffset_FTP.
IP PDU
> Time to Live for the selected FTP PDU
Field Name: Time to Live
Purpose and Definition: Time to Live is an 8-bit field that
indicates the maximum time the datagram is allowed to remain in the
internet. If this field contains the
value 0, then the datagram must be destroyed.
This field is modified in internet header processing. The time is measure in units of seconds, and
is set by the sender to the maximum time the datagram is allowed to be in the
internet. This field is decreased at
each point that the internet header is processed. The intention is to cause undeliverable packets to be discarded,
and to bind the maximum datagram lifetime.
Field Key:
Not applicable
Data value (decimal): 64
Data values in other bases:
Hexadecimal |
4 |
0 |
Binary |
0100 |
0000 |
Decimal |
64 |
Programming Hint: The name
for this variable in code will be IP_TimeToLive_FTP.
IP PDU
> Protocol for the selected FTP PDU
Field Name: Protocol
Purpose and Definition: Protocol is an 8-bit field that indicates
the next level protocol that is used in the data portion of the internet
diagram.
Field Key:
0 00 Reserved 22 16 Multiplexing
1 01 ICMP 23 17 DCN
2 02 Unassigned 24 18 TAC Monitoring
3 03 Gateway-to-Gateway 25-76 19-4C Unassigned
4 04 CMCC
Gateway Monitoring Message 77 4D Any local network
5 05 ST 100 64 SATNET and Backroom
EXPAK
6 06 TCP 101 65 MIT Subnet Support
7 07 UCL 102-104 66-68
Unassigned
10 0A Unassigned 105 69
SATNET Monitoring
11 0B Secure 106 6A Unassigned
12 0C BBN
RCC Monitoring 107 6B Internet Packet
Core Utility
13 0D NVP 110-113 6E-71
Unassigned
14 0E PUP 114 72 Backroom SATNET Monitoring
15 0F Pluribus 115 73 Unassigned
16 10 Telnet 116 74 WIDEBAND Monitoring
17 11 XNET 117 75 WIDEBAND EXPAK
20 14 Chaos 120-376 78-0178 Unassigned
21 15 User Datagram 377 0179 Reserved
Data value (hexadecimal): 06
Data values in other bases:
Hexadecimal |
0 |
6 |
Binary |
0000 |
0110 |
Decimal |
6 |
RFC Link: http://www.faqs.org/rfcs/rfc790.html
Programming Hint: The name for this variable in code will be IP_Protocol_FTP.
IP PDU > Header Checksum for the selected FTP PDU
Field Name: Header Checksum
Purpose and Definition: The Header Checksum is a 16-bit field. The Checksum is the 16-bit one’s complement sum of all 16-bit words in the header. For purposes of computing the checksum, the initial value of its field is zero. When both header checksums are equal, then the header bits are correct. If either checksums vary, then a new, correct packet will need to be sent.
This is a simple way to compute the checksum and experimental evidence indicates that it is adequate, but it is provisional and may be replaced by a CRC procedure, depending on further experience.
Field Key: Not
applicable
Data value (hexadecimal): 0E 85
Data values in
other bases:
Hexadecimal |
0 |
E |
8 |
5 |
Binary |
0000 |
1110 |
1000 |
0101 |
Programming Hint: The name for this variable in code will be IP_HeaderChecksum_FTP.
IP PDU > Source
Address for the selected FTP PDU
Field Name: Source Address
Purpose and Definition: The Source Address is a 32-bit field that contains the IP address of the host that sent the IP Packet.
Field Key: Not
applicable
Data value (decimal): 192.168.0.39
Data values in
other bases:
Hexadecimal |
C |
0 |
A |
8 |
0 |
0 |
2 |
7 |
Binary |
1100 |
0000 |
1010 |
1000 |
0000 |
0000 |
0010 |
0111 |
Decimal |
192 |
168 |
0 |
39 |
Programming Hint: The name for this variable in code will be IP_SourceAddress_FTP.
IP PDU > Destination Address for the selected FTP PDU
Field Name: Destination Address
Purpose and Definition: The Destination Address is a 32-bit field that contains the address of the host that is to receive the data contained within the IP packet.
Field Key:
Not applicable
Data value (decimal): 192.168.0.101
Data values in
other bases:
Hexadecimal |
C |
0 |
A |
8 |
0 |
0 |
6 |
5 |
Binary |
1100 |
0000 |
1010 |
1000 |
0000 |
0000 |
0110 |
0101 |
Decimal |
192 |
168 |
0 |
101 |
Programming Hint: The name for this variable in code will be IP_DestinationAddress_FTP.
IP PDU > Options and Padding for the selected FTP PDU
Field Name: Options and Padding
Purpose and Definition: The options may or may not appear in Ethernet packets. They must be implemented by all IP modules (host and gateways). What is optional is their transmission in any particular packet, not their implementation.
The option field is variable in length. There may be zero or more options. There are two cases for the format of an option.
Case 1: A single octet of option type
Case 2: An option-type octet, an option-length octet, and the actual option-data octets.
Field Key: Not
applicable
Data values: Not applicable
Data values in
other bases: Not applicable
Programming Hint:
The name for this variable in code will be IP_OptionsPadding_FTP.
IP PDU > Data for the selected FTP PDU
Field Name: Data
Purpose and Definition: The Data is a variable length field which contains the actual data that is being sent from one host to another. The data field may start with a Layer 4 header, which will give additional instructions to the application that will be receiving the data; alternately, it may be an ICMP header and not contain any user data at all.
Field Key: Not
applicable
Data values (hexadecimal) : (TCP) 80 30 00 15 81 A5 16 6C 87 A3 53 5D 80 18 16 D0 11 F4 00 00 01 01 08 0A 1B 25 F3 A1 0b DD 73 58
(FTP) 50 41 53 53 20 66 31 61 32 6B 33 75 73 65 72 0D 0A
Data values in other bases:
Hexadecimal: (TCP) 0 x 80 30 00 15 81 A5 16 6C 87 A3 53 5D 80 18 16 D0 11 F4 00 00 01 01 08 0A 1B 25 F3 A1 0B DD 73 58
(FTP) 50 41 53 53 20 66 31 61 32 6B 33 75 73 65 72 0D 0A
ASCII: (TCP) ↑ 0 © © ↑ ↑ © ↑ ↑ S ] ↑ © © ↑ © ↑ © © © © © © © % ↑ ↑ © ↑ s X
(FTP) P A S S S © f 1 a 2 k 3 u s e r © ©
Programming Hint: The name for this variable in code will be IP_Data_FTP.
2.2.2 TCP PDU for the selected FTP PDU
IP > TCP PDU > Source Port for the selected FTP PDU
Field Name: Source Port
Purpose and Definition:
This 16-bit number represents the name of the application that sent the data in the IP packet.
Field Key: Not
applicable
Data value (decimal): 32816
Data values in
other bases:
Hexadecimal |
8 |
0 |
3 |
0 |
Binary |
1000 |
0000 |
0011 |
0000 |
Decimal |
128 |
48 |
||
ASCII |
á |
0 |
Programming Hint: The name for this variable in code will be IP_TCP_SourcePort_FTP.
IP > TCP PDU > Destination Port for the selected FTP PDU
Field Name: Destination Port
Purpose and
Definition:
This 16-bit number represents the name of the application that is to
receive the data contained within the IP packet. This is one of the major
differences between a Layer 3 and a Layer 4 header: the Layer 3 header contains
the IP address of the computer that is to receive the IP packet; once that
packet has been received, the port address in the Layer 4 header ensures that
the data contained within that IP packet is passed to the correct application
on that computer.
Field Key:
This key indicates
assigned port number values:
0 Reserved
1-32767 Internet registered ("well-known") protocols
32768-98303 Reserved, to allow TCPv7-TCPv4 conversion
98304 & up Dynamic assignment
Data value (decimal): 21 (indicates FTP)
Data values in
other bases:
Hexadecimal |
0 |
0 |
1 |
5 |
Binary |
0000 |
0000 |
0001 |
0101 |
Decimal |
0 |
21 |
||
ASCII |
© |
© |
Source: http://www.zvon.org/tmRFC/RFC1475/Output/chapter4.html
Programming Hint: The name for this variable in code will be IP_TCP_DestinationPort_FTP.
IP > TCP PDU > Sequence Number for the selected FTP PDU
Field Name: Sequence Number
Purpose and
Definition:
TCP is responsible for ensuring that all IP packets sent are actually
received. When an application's data is packaged into IP packets, TCP will give
each IP packet a sequence number. Once all the packets have arrived at the
receiving computer, TCP uses the number in this 32-bit field to ensure that all
of the packets actually arrived and are in the correct sequence.
Field Key:
Not applicable
Data value (decimal): 2175080044
Data values in
other bases:
Hexadecimal |
8 |
1 |
A |
5 |
1 |
6 |
6 |
C |
Binary |
0000 |
0000 |
0011 |
1100 |
1010 |
1010 |
0011 |
1100 |
Decimal |
0 |
60 |
176 |
60 |
||||
ASCII |
© |
‘ |
á |
‘ |
Programming Hint: The name for this variable in code will be IP_TCP_SequenceNumber_FTP.
IP > TCP PDU > Acknowledgement Number for the selected FTP
PDU
Field Name: Acknowledgement Number
Purpose and Definition:
This number is used by the receiving computer to acknowledge which
packets have successfully arrived. This number will be the sequence number of
the next packet the receiver is ready to receive.
Field Key: Not
applicable
Data value: 2275627869
Data values in
other bases:
Hexadecimal |
8 |
7 |
A |
3 |
5 |
3 |
5 |
D |
Binary |
1000 |
0111 |
1010 |
0011 |
0101 |
0011 |
0101 |
1101 |
Decimal |
135 |
163 |
83 |
93 |
||||
ASCII |
á |
á |
S |
] |
Programming Hint: The name for this variable in code will be IP_TCP_AcknowledgementNumber_FTP.
IP > TCP PDU > Header Length or Offset for the selected
FTP PDU
Field Name: Header
Length or Offset
Purpose and Definition:
This is identical in concept to the header length in an IP packet,
except this time it indicates the length of the TCP header.
Field Key: Not
applicable
Data value (bytes): 32
Data values in
other bases:
Hexadecimal |
8 |
0 |
Binary |
1000 |
0000 |
Decimal |
128 |
|
ASCII |
á |
Programming Hint: The name for this variable in code will be IP_TCP_HeaderLength_FTP.
IP > TCP PDU > Reserved for the selected FTP PDU
Field Name: Reserved
Purpose and
Definition:
These 6 bits are unused and are always set to 0.
Field Key: Not
applicable
Data value (binary): 0000 00
Data values in
other bases:
Hexadecimal |
0 |
0 |
0 |
0 |
0 |
0 |
Binary |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
Decimal |
0 |
0 |
0 |
|||
ASCII |
© |
© |
© |
Programming Hint: The name for this variable in code will be IP_TCP_Reserved_FTP.
IP > TCP PDU > Control Flags for the selected FTP PDU
Field Name: Control Flags
Purpose and
Definition:
Every TCP packet contains this 6-bit value that indicates how many
octets it can receive at once. When IP packets are received, they are placed in
a temporary area of RAM known as a buffer until the receiving computer has a
chance to process them; this value represents how big a buffer the receiving
host has made available for this temporary storage of IP packets.
Field Key:
Data value (binary): 01 1000
Data values in
other bases: Not applicable
Programming Hint:
The name for this variable in code will be IP_TCP_ControlFlags_FTP.
IP > TCP PDU > Window Size for the selected FTP PDU
Field Name: Window
Size
Purpose and
Definition:
Every TCP packet contains this 16-bit value that indicates how many
octets it can receive at once. When IP packets are received, they are placed in
a temporary area of RAM known as a buffer until the receiving computer has a
chance to process them; this value represents how big a buffer the receiving
host has made available for this temporary storage of IP packets.
Field Key: Not applicable
Data value (decimal): 5840
Data values in
other bases:
Hexadecimal |
1 |
6 |
D |
0 |
Binary |
0001 |
0110 |
1110 |
0000 |
Decimal |
22 |
224 |
||
ASCII |
© |
á |
Programming Hint: The name for this variable in code will be IP_TCP_WindowSize_FTP.
IP > TCP PDU > Checksum for the selected FTP PDU
Field Name: Checksum
Purpose and Definition:
Unlike IP, TCP is responsible for ensuring that the entire IP packet
arrived intact. TCP will run a CRC on the entire IP packet (not just the
header) and place the resulting checksum in this field. When the IP packet is
received, TCP re-runs the CRC on the entire packet to ensure the checksum is
the same.
Field Key: Not
applicable
Data value (hexadecimal): 11 F4
Data values in
other bases:
Hexadecimal |
1 |
1 |
F |
4 |
Binary |
0001 |
0001 |
1111 |
0100 |
Decimal |
17 |
244 |
||
ASCII |
© |
© |
Programming Hint: The name for this variable in code will be IP_TCP_Checksum_FTP.
IP > TCP PDU > Urgent Pointer for the selected FTP PDU
Field Name: Urgent Pointer
Purpose and Definition:
If the Urgent flag is set to on, this value indicates where the urgent data is
located.
Information Key: Not
applicable
Data value: Not applicable
Data values in
other bases: Not applicable
Programming Hint:
The name for this variable in code will be IP_TCP_UrgentPointer_FTP.
IP > TCP PDU > Options and Padding for the selected FTP
PDU
Field Name: Options and Padding
Purpose and
Definition:
Like IP options, this field is optional and represents additional
instructions not covered in the other TCP fields. Again, if an option does not
fill up a 32-bit word, it will be filled in with padding bits.
Field Key: Not
applicable
Data value (hexadecimal): 01 01 08 0A 1B 25 F3 A1 0B DD 73 58
Data values in other bases:
Hexadecimal |
0 |
1 |
0 |
1 |
0 |
8 |
0 |
A |
1 |
B |
Binary |
0000 |
0001 |
0000 |
0001 |
0000 |
1000 |
0000 |
1010 |
0001 |
1011 |
Decimal |
1 |
1 |
8 |
10 |
27 |
|||||
ASCII |
© |
© |
© |
© |
© |
Hexadecimal |
2 |
5 |
F |
3 |
A |
1 |
0 |
B |
D |
D |
Binary |
0010 |
0101 |
1111 |
0011 |
1010 |
0001 |
0000 |
1011 |
1101 |
1101 |
Decimal |
37 |
243 |
161 |
11 |
221 |
|||||
ASCII |
% |
á |
á |
© |
á |
Hexadecimal |
7 |
3 |
5 |
8 |
Binary |
0101 |
0011 |
0101 |
1000 |
Decimal |
115 |
96 |
||
ASCII |
á |
á |
Programming Hint:
The name for this variable in code will be IP_TCP_OptionsPadding_FTP.
2.2.3 FTP PDU for the selected FTP PDU
IP
>TCP > FTP PDU for the FTP Packet
RFC Link: http://www.ietf.org/rfc/rfc0959.txt?number=959
PASS (Password)
The argument field is a Telnet string specifying the
user’s password. This command must be
immediately preceded by the user name command, and, for some sites, completes
the user’s identification for access control.
What is Contained in
the Packet
Request: PASS
Request Arg: f1a2k3user
Data Values
(hexadecimal): 50 41 53 53 20 66 31
61 32 6B 33 75 73 65 72 0D 0A
Data Values in Other
Bases
ASCII |
P |
A |
S |
S |
SPC |
f |
1 |
a |
2 |
Hexadecimal |
5
0 |
4
1 |
5
3 |
5
3 |
2
0 |
6
6 |
3
1 |
6
1 |
3
2 |
Binary |
0101 0000 |
0100 0001 |
0101 0011 |
0101 0011 |
0010 0000 |
0110 0110 |
0011 0001 |
0110 0001 |
0011 0010 |
Decimal |
80 |
65 |
83 |
83 |
32 |
102 |
49 |
97 |
59 |
ASCII |
k |
3 |
u |
s |
e |
r |
\r |
\n |
Hexadecimal |
6 B |
3 3 |
7 5 |
7 3 |
6 5 |
7 2 |
0 D |
0
A |
Binary |
0110 1011 |
0011 0011 |
0111 0101 |
0111 0011 |
0110 0101 |
0111 0010 |
0000 1101 |
0000 1010 |
Decimal |
107 |
51 |
117 |
115 |
101 |
114 |
13 |
10 |
Programming Hint:
The name for this variable in code will be IP_TCP_FTP_PDU_FTP.
2.2.4 IP PDU for the selected ICMP PDU
IP PDU
> Version for the selected ICMP PDU
Field Name: Version
Purpose and Definition: Version is a 4-bit field that indicates the
format of the internet header.
Field Key: 4 = IPv4
6
= IPv6
Data value (decimal): 4
Data values in other bases:
Hexadecimal |
4 |
Binary |
0100 |
Decimal |
4 |
Programming Hint: The name for this variable in code will be IP_Version_ICMP.
IP PDU > Internet Header Length for the selected ICMP PDU
Field Name:
Internet Header Length
Purpose and Definition: The IHL field is a 4 bit field indicating the length of the internet header in 32 bit words, and thus points to the beginning of the data. The minimum value of a correct header is 5.
Field Key:
Not applicable
Data value: The value contained in our field is 20 bytes. This is the hexadecimal and decimal value of 5 multiplied by 4 bits.
Data values in other bases:
Hexadecimal |
0 |
5 |
Binary |
0000 |
0101 |
Decimal |
5 |
Programming Hint: The name for this variable in code will be IP_Version_ICMP.
IP PDU
> Type of Service for the selected ICMP PDU
Field Name:
Type of Service
Purpose and Definition: Type of Service is an 8-bit field that
provides and indication of the abstract parameters of the quality of service
desired. These parameters guide the
selection of the actual service parameters when transmitting a datagram through
a particular network.
Field Key: The major choice is a three-way tradeoff between low-delay, high-reliability, and high-throughput.
Bits 0-2: Precedence
Bit 3: (D) 0 = Normal Delay 1 = Low Delay
Bit 4: (T) 0 = Normal Throughput 1 = High Throughput
Bit 5: (R) 0 = Normal Reliability 1 = High Reliability
Precedence:
111 = Network Control 011 = Flash
110 = Internetwork Control 010 = Immediate
101 = CRITIC/ECP 001 = Priority
100 = Flash
Overrided 000 = Routine
Data value (hexadecimal): 00
Data values in other bases:
Hexadecimal |
0 |
0 |
Binary |
0000 |
0000 |
Decimal |
0 |
Programming Hint: The name for this variable in code will be IP_TypeOfService_ICMP.
IP PDU
> Total Length of Ethernet Frame for the selected ICMP PDU
Field Name: Total Length of Ethernet Frame
Purpose and Definition: Total Length is a
16-bit field that indicates the length of the frame, measured in octets,
including internet header and data. The
maximum size is 216-1 or 65,535 octets; however, the recommended
maximum size is 576 octets.
Field Key: Not applicable
Data values (decimal): 84
Data values in other bases:
Hexadecimal |
0 |
0 |
5 |
4 |
Binary |
0000 |
0000 |
0101 |
0100 |
Decimal |
0 |
84 |
||
ASCII |
© |
T |
Programming Hint: The name for this variable in code will be IP_TotalLength_ICMP.
IP PDU
> Identification for the selected ICMP PDU
Field Name: Identification
Purpose and Definition: Identification is a 16-bit field. An identifying value is assigned by the sender to aid in assembling the fragments of a datagram. The identifier is chosen based on the need to provide a way to uniquely identify the fragments and protocol for the time the datagram or any fragment could be alive in the internet
Field Key: Not applicable
Data value (hexadecimal): 00 00
Data values in other bases:
Hexadecimal |
0 |
0 |
0 |
0 |
Binary |
0000 |
0000 |
0000 |
0000 |
Programming Hint: The name for this variable in code will be IP_Identification_ICMP.
IP PDU
> Flags for the selected ICMP PDU
Field Name:
Flags
Purpose and Definition: Flags is a 3-bit field that indicates
directions for fragmentation.
Field Key:
Bit 0: reserved, must be 0
Bit 1: (DF) 0 = May Fragment 1 = Don’t Fragment
Bit 2: (MF) 0 = Last Fragment 1 = More Fragment
Data value (binary): 010
Data values in other bases: Not applicable
Programming Hint: The name for this variable in code will be IP_Flags_ICMP.
IP PDU > Fragment Offset
for the selected ICMP PDU
Field Name:
Fragment Offset
Purpose and Definition: The Fragment Offset is a 13- bit field
indicating where in the Ethernet frame this fragment begins. The Fragment Offset is measured in units of
8 octets, and the first fragment has offset 0.
Field Key:
Not applicable
Data value (decimal): 0
Data values in other bases:
Programming Hint: The name for this variable in code will be IP_FragmentOffset_ICMP.
IP PDU
> Time to Live for the selected ICMP PDU
Field Name: Time to Live
Purpose and Definition: Time to Live is an 8-bit field that
indicates the maximum time the datagram is allowed to remain in the
internet. If this field contains the
value 0, then the datagram must be destroyed.
This field is modified in internet header processing. The time is measure in units of seconds, and
is set by the sender to the maximum time the datagram is allowed to be in the
internet. This field is decreased at
each point that the internet header is processed. The intention is to cause undeliverable packets to be discarded,
and to bind the maximum datagram lifetime.
Field Key:
Not applicable
Data value (decimal): 64
Data values in other bases:
Hexadecimal |
4 |
0 |
Binary |
0100 |
0000 |
Decimal |
64 |
Programming Hint: The name for this variable in code will be
IP_TimeToLive_ICMP.
IP PDU > Protocol for the
selected ICMP PDU
Field Name: Protocol
Purpose and Definition: Protocol is an 8-bit field that indicates
the next level protocol that is used in the data portion of the internet
diagram.
Field Key:
0 00 Reserved 22 16 Multiplexing
1 01 ICMP 23 17 DCN
2 02 Unassigned 24 18 TAC Monitoring
3 03 Gateway-to-Gateway 25-76 19-4C Unassigned
4 04 CMCC
Gateway Monitoring Message 77 4D Any local network
5 05 ST 100 64 SATNET and Backroom
EXPAK
6 06 TCP 101 65 MIT Subnet Support
7 07 UCL 102-104 66-68
Unassigned
10 0A Unassigned 105 69 SATNET Monitoring
11 0B Secure 106 6A Unassigned
12 0C BBN
RCC Monitoring 107 6B Internet Packet Core Utility
13 0D NVP 110-113 6E-71
Unassigned
14 0E PUP 114 72 Backroom SATNET Monitoring
15 0F Pluribus 115 73 Unassigned
16 10 Telnet 116 74 WIDEBAND Monitoring
17 11 XNET 117 75 WIDEBAND EXPAK
20 14 Chaos 120-376 78-0178 Unassigned
21 15 User Datagram 377 0179 Reserved
Data value (hexadecimal): 01
Data values in other bases:
Hexadecimal |
0 |
6 |
Binary |
0000 |
0001 |
Decimal |
1 |
RFC Link: http://www.faqs.org/rfcs/rfc790.html
Programming Hint: The name for this variable in code will be IP_Protocol_ICMP.
IP PDU > Header Checksum for the Selected ICMP PDU
Field Name: Header Checksum
Purpose and Definition: The Header Checksum is a 16-bit field. This CRC algorithm is the 16-bit one’s complement sum of all the 16-bit words in the header. For purposes of computing the checksum, the value of the checksum field is initially zero. When both header checksums are the same, then the header bits are correct. If either checksums vary, then a packet will need to be resent.
This is a simple way to compute the checksum and experimental evidence indicates that it is adequate, but it is provisional and may be replaced by a CRC procedure, depending on further experience.
Field Key: Not
applicable
Data value (hexadecimal): B8 CC
Data values in
other bases:
Hexadecimal |
B |
8 |
C |
C |
Binary |
1011 |
1000 |
1100 |
1100 |
Programming Hint: The name for this variable in code will be IP_HeaderChecksum_ICMP.
IP PDU > Source Address for the Selected ICMP PDU
Field Name: Source Address
Purpose and Definition: The Source Address is a 32-bit field that contains the IP address of the host that sent the IP Packet.
Field Key: Not
applicable
Data value: 192.168.0.39
Data values in
other bases:
Hexadecimal |
C |
0 |
A |
8 |
0 |
0 |
2 |
7 |
Binary |
1100 |
0000 |
1010 |
1000 |
0000 |
0000 |
0010 |
0111 |
Decimal |
192 |
168 |
0 |
39 |
Programming Hint: The name for this variable in code will be IP_SourceAddress_ICMP.
IP PDU > Destination Address for the selected ICMP PDU
Field Name: Destination Address
Purpose and Definition: The Destination Address is a 32-bit field that contains the address of the host that is to receive the data contained within the IP packet.
Field Key: Not
applicable
Data value: 192.168.0.101
Data values in
other bases:
Hexadecimal |
C |
0 |
A |
8 |
0 |
0 |
6 |
5 |
Binary |
1100 |
0000 |
1010 |
1000 |
0000 |
0000 |
0110 |
0101 |
Decimal |
192. |
168. |
0. |
101 |
Programming Hint: The name for this variable in code will be IP_DestinationAddress_ICMP.
IP PDU > Options and Padding for the selected ICMP PDU
Field Name: Options and Padding
Purpose and Definition: The options may or may not appear in Ethernet packets. They must be implemented by all IP modules (host and gateways). What is optional is their transmission in any particular packet, not their implementation.
The option field is variable in length. There may be zero or more options. There are two cases for the format of an option.
Case 1: A single octet of option type
Case 2: An option-type octet, an option-length octet, and the actual option-data octets.
Field Key: Not
applicable
Data values: Not applicable
Data values in
other bases: Not applicable
Programming Hint: The name for this variable in code will be IP_OptionsPadding_ICMP.
2.2.5 ICMP PDU for the selected ICMP PDU
IP > ICMP Header > Type for the selected ICMP PDU
Field Name: Type
Purpose and Definition: The type is an 8-bit field that identifies what sort of message the ICMP protocol is sending.
Field Key:
0 00 Echo Reply 16 10 Information Reply
1 01 Unassigned 17 11 Address Mask Request
2 02 Unassigned 18 12 Address Mask Reply
3 03 Destination Unreachable 19 13 Reserved (for Security)
4 04 Source Quench 20-29 14-1D Reserved (for Robustness Experiment)
5 05 Redirect 30 1E Traceroute
6 06 Alternate Host Address 31 1F Datagram Conversion Error
7 07 Unassigned 32 20 Mobile Host Redirect
8 08 Echo 33 21 IPv6 Where-Are-You
9 09 Router Advertisement 34 22 IPv6 I-Am-Here
10 0A Router Solicitation 35 23 Mobile Registration Request
11 0B Time Exceeded 36 24 Mobile Registration Reply
12 0C Parameter Problem 37 25 Domain Name Request
13 0D Timestamp 38 26 Domain Name Reply
14 0E Timestamp Reply 39 27 SKIP
15 0F Information Request 40 28 Photuris
41-255 29-FF Reserved
Data value: 8 (Echo (ping) Request)
Data values in other bases:
Hexadecimal |
0 |
8 |
Binary |
0000 |
1000 |
Decimal |
8 |
RFC Link: http://www.iana.org/assignments/icmp-parameters
Programming Hint: The name for this variable in code will be IP_ICMP_Type_ICMP.
IP > ICMP Header > Code for the selected ICMP PDU
Field Name: Code
Purpose and
Definition: Code is an 8-bit field that provides further information
about the associated type field.
Field Key:
Type Name Type Name
0 Echo Reply (used by “PING”) 7 Unassigned
0 No Code 8 Echo (used by "PING")
1 Unassigned 0 No Code
2 Unassigned 9 Router Advertisement
3 Destination Unreachable 0 No Code
0 Net Unreachable 10 Router Selection
1 Host Unreachable 0 No Code
2 Protocol Unreachable 11 Time Exceeded
3 Port Unreachable 0 Time to Live exceeded in Transit
4 Fragmentation needed and 1 Fragment Reassembly Time Exceeded
Don't Fragment was Set 12 Parameter Problem
5 Source Route Failed 0 Pointer indicates the error
6 Destination Network Unknown 1 Missing a Required Option
7 Destination Host Unknown 2 Bad Length
8 Source Host Isolated 13 Timestamp
9 Communication with Destination 0 No Code
Network is Administratively Prohibited 14 Timestamp Reply
10 Communication with Destination 0 No Code
Host is Administratively Prohibited 15 Information Request
11 Destination Network Unreachable 0 No Code
for Type of Service 16 Information Reply
12 Destination Host Unreachable for 0 No Code
Type of Service 17 Address Mask Request
4 Source Quench 0 No Code
0 No Code 18 Address Mask Reply
5 Redirect 0 No Code
0 Redirect Datagram for the Network 19 Reserved (for Security)
1 Redirect Datagram for the Host 20-29 Reserved (for Robustness Experiment)
2 Redirect Datagram for the Type of 30 Traceroute
Service and Network 31 Datagram Conversion Error
3 Redirect Datagram for the Type of 32 Mobile Host Redirect
Service and Host 33 IPv6 Where-Are-You
6 Alternate Host Address 34 IPv6 I-Am-Here
0 Alternate Address for Host 35 Mobile Registration Request
36 Mobile Registration Reply
Data value (decimal): 0
Data values in
other bases:
Hexadecimal |
0 |
0 |
Binary |
0000 |
0000 |
Decimal |
0 |
|
ASCII |
© |
Programming Hint: The name for this variable in code will be IP_ICMP_Header_ICMP.
IP > ICMP Header > Checksum for the selected ICMP PDU
Field Name: Checksum
Purpose and Definition: The checksum is the 16-bit one’s complement of the one’s complement sum of the ICMP message, starting with the ICMP type. For computing the checksum, the checksum field should initially be zero.
Field Key: Not applicable
Data value (hexadecimal): C9 15
Data values in other bases:
Hexadecimal |
C |
9 |
1 |
5 |
Binary |
1100 |
1001 |
0001 |
0101 |
Decimal |
201 |
21 |
||
ASCII |
á |
© |
Programming Hint: The name for this variable in code will be IP_ICMP_Checksum_ICMP.
IP > ICMP Header > Identifier for the selected ICMP PDU
Field Name: Identifier
Purpose and Definition: The identifier is a 16-bit field that is used in matching echoes and replies for when the code field is zero.
Field Key: Not applicable
Data value (hexadecimal): 70 60
Data values in other bases:
Hexadecimal |
7 |
0 |
6 |
0 |
Binary |
0111 |
0000 |
0110 |
0000 |
Decimal |
112 |
96 |
||
ASCII |
P |
‘ |
Programming Hint: The name for this variable in code will be IP_ICMP_Identifier_ICMP.
IP > ICMP Header > Sequence for the selected ICMP PDU
Field Name: Sequence
Purpose and Definition: The sequence is a 16-bit field that is used in matching echoes and replies for when the code field is zero.
Field Key: Not applicable
Data value (hexadecimal): 70 60
Data values in other bases:
Hexadecimal |
0 |
0 |
0 |
0 |
Binary |
0000 |
0000 |
0000 |
0000 |
Decimal |
0 |
0 |
||
ASCII |
© |
© |
Programming Hint: The name for this variable in code will be IP_ICMP_Sequence_ICMP.
IP > ICMP Header > Data for the selected ICMP PDU
Field Name: Data
Purpose and Definition: The data is a variable-length field that contains the actual information that is sent in the ping packet.
Field Key: Not applicable
Data value (hexadecimal): 42 B1 89 3F 00 00 00 00 2C C6 07 00 00 00 00 00 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37
Data values in other bases:
Hexadecimal |
4 |
2 |
B |
1 |
8 |
9 |
3 |
F |
0 |
0 |
Binary |
0100 |
0010 |
1011 |
0001 |
1000 |
1001 |
0011 |
1111 |
0000 |
0000 |
Decimal |
66 |
177 |
137 |
63 |
0 |
|||||
ASCII |
B |
á |
á |
? |
© |
Hexadecimal |
0 |
0 |
0 |
0 |
0 |
0 |
2 |
C |
C |
6 |
Binary |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0010 |
1100 |
1100 |
0110 |
Decimal |
0 |
0 |
0 |
44 |
198 |
|||||
ASCII |
© |
© |
© |
, |
á |
Hexadecimal |
0 |
7 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Binary |
0000 |
0111 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
Decimal |
7 |
0 |
0 |
0 |
0 |
|||||
ASCII |
© |
© |
© |
© |
© |
Hexadecimal |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
2 |
1 |
3 |
Binary |
0000 |
0000 |
0001 |
0000 |
0001 |
0001 |
0001 |
0010 |
0001 |
0011 |
Decimal |
0 |
16 |
17 |
18 |
19 |
|||||
ASCII |
© |
© |
© |
© |
© |
Hexadecimal |
1 |
4 |
1 |
5 |
1 |
6 |
1 |
7 |
1 |
8 |
Binary |
0001 |
0100 |
0001 |
0101 |
0001 |
0110 |
0001 |
0111 |
0001 |
1000 |
Decimal |
20 |
21 |
22 |
23 |
24 |
|||||
ASCII |
© |
© |
© |
© |
© |
Hexadecimal |
1 |
9 |
1 |
A |
1 |
B |
1 |
C |
1 |
D |
Binary |
0001 |
1001 |
0001 |
1010 |
0001 |
1011 |
0001 |
1100 |
0001 |
1101 |
Decimal |
25 |
26 |
27 |
28 |
29 |
|||||
ASCII |
© |
© |
© |
© |
© |
Hexadecimal |
1 |
E |
1 |
F |
2 |
0 |
2 |
1 |
2 |
2 |
Binary |
0001 |
1110 |
0001 |
1111 |
0010 |
0000 |
0010 |
0001 |
0010 |
0010 |
Decimal |
30 |
31 |
32 |
33 |
34 |
|||||
ASCII |
© |
© |
SPACE |
! |
“ |
Hexadecimal |
2 |
3 |
2 |
4 |
2 |
5 |
2 |
6 |
2 |
7 |
Binary |
0010 |
0011 |
0010 |
0100 |
0010 |
0101 |
0010 |
0110 |
0010 |
0111 |
Decimal |
35 |
36 |
37 |
38 |
39 |
|||||
ASCII |
# |
$ |
% |
& |
‘ |
Hexadecimal |
2 |
8 |
2 |
9 |
2 |
A |
2 |
B |
2 |
C |
Binary |
0010 |
1000 |
0010 |
1001 |
0010 |
1010 |
0010 |
1011 |
0010 |
1100 |
Decimal |
40 |
41 |
42 |
43 |
44 |
|||||
ASCII |
( |
) |
* |
+ |
, |
Hexadecimal |
2 |
D |
2 |
E |
2 |
F |
3 |
0 |
3 |
1 |
Binary |
0010 |
1101 |
0010 |
1110 |
00010 |
1111 |
0011 |
0000 |
0011 |
0001 |
Decimal |
45 |
46 |
47 |
48 |
49 |
|||||
ASCII |
- |
. |
/ |
0 |
1 |
Hexadecimal |
3 |
2 |
3 |
3 |
3 |
4 |
3 |
5 |
3 |
6 |
Binary |
0011 |
0010 |
0011 |
0011 |
0011 |
0100 |
0011 |
0101 |
0011 |
0110 |
Decimal |
50 |
51 |
52 |
53 |
54 |
|||||
ASCII |
2 |
3 |
4 |
5 |
6 |
Hexadecimal |
3 |
7 |
Binary |
0011 |
0111 |
Decimal |
55 |
|
ASCII |
7 |
Programming Hint: The name for this variable in code will be IP_ICMP_Data_ICMP.
3.0 Appendix
3.1 Glossary
ASCII:
American Standard Code for
Information Interchange: a
code for representing English characters as numbers, with each letter assigned
a number from 0 to 127.
Attribute:
A named value or relationship that exists for some or all
instances of some entity and is directly associated with that instance.
Binary:
Pertaining to a number system that has just two unique
digits, 0 and 1. Computers operate on a
binary number system.
Code:
The symbolic arrangement of data or instructions in a computer program or the set of such instructions.
Data Flow
Diagram:
A graphical
notation used to describe how data flows between processes in a system. They are a representation of the functional
decomposition of a system.
Decimal:
Refers to numbers in base 10—the numbers we use in everyday life.
Dynamic Combo
Menu:
Menu showing all actions possible at the current moment.
Frame:
A feature that divides a browser’s window into separate segments that can be scrolled independently of each other; a single step in a sequence of programmed instructions
GUI:
Graphical User Interface: A user interface based on graphics (icons, pictures, and menus) instead of text; uses a mouse as well as a keyboard as an input device.
Gantt Chart:
A chart that depicts progress in relation to time, often used in planning and tracking a project
HTML:
Hypertext Transfer Markup Language: A markup language used to structure text and multimedia documents and to set up hypertext links between documents, used extensively on the World Wide Web.
Hexadecimal:
Refers to the base-16 number system which consists of 16
unique symbols: the numbers 0 to 9 and the letters A to F.
Hypertext:
A computer-based text retrieval system that enables a user to access particular locations in web pages or other electronic documents by clicking on links within specific web pages or documents.
Internet:
An interconnected system of networks that connects computers around the world via the TCP/IP protocol.
Linear Sequential Model:
Sometimes called the classic life cycle or the waterfall model, this model suggests a systematic, sequential approach to software development that begins at the system level and progresses through analysis, design, coding, testing, and support.
Linux:
A trademark for an open-source version of the UNIX operating system.
Network:
A group of two or more computer systems linked together.
Open-Source:
A method and philosophy for software licensing and distribution designed to encourage use and improvement of software written by volunteers by ensuring that anyone can copy the source code.
PHP:
PHP Hypertext Preprocessor (server-side
scripting language)
Packet:
A short block of data transmitted in a packet switching network.
PDU:
Protocol Data Unit: A packet of data passed across a
network.
Protocol:
A set of formal rules describing how to
transmit data, especially across a network.
Prototype:
An original type, form, or instance serving as a basis or standard for later stages.
RFC:
Request for Comments: One of a long-establish series of numbered
Internet informational documents and standards widely followed by commercial
software and freeware in the Internet and Unix communities.
Software:
The code executed by a computer, as opposed to the physical device which they run on.
TCP/IP:
Transmission Control Protocol/Internet
Protocol: A suite of protocols for communication
between computers, used as a standard for transmitting data over networks and
as the basis for standard Internet protocols.
UNIX:
A powerful operating system developed at the ATT Bell Laboratories.
Use Case:
The specification of sequences of actions that a system, subsystem, or class can perform by interacting with outside actors.
Visible Analyst:
Project management software used in Computer-Aided Software Engineering (CASE) to create such illustrations as the data flow diagrams.
3.2 Gantt Charts
Fall Gantt Chart:
Yearlong Gantt Chart: