3. Specification 3.1. Internet header format (Internet Header Format)
The internet header is as follows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - - - - - - - - - - - - - - - - - | Version | IHL | TYPE OF Service | Total Length | - - - - - - - - - - - - - - - - - - - - - - - - - | Identification | Flags | Fragment Offset | - - - - - - - - - - - - - - - - - - - | TIME to LIVE | Protocol | Header Checksum | - - - - - - - - - - - - - - - - - - - - - - - - - - - - | Source Address | - - - - - - - - - - - - - - - - - - - - | DESTINATION Address | - - - - - - - - - - - -
| OPTIONS | PADDING | - - - - - - - - - EXAMPLE INTERNET DATAGRAM Header Figure 4. Note: Each interval represents one. Version: 4 digits
The version head indicates the format of the Internet header. This article is described in the version 4. Internet header length (IHL): 4
The internet header length is the length of the Internet header representing 32-bit, which points to the beginning of the data. Note: The minimum head length value of a correct head is 5. (Translator Note: 5 means the head length value is 5 * 4 = 20 0cTS)
The Type of Service: The 8-bit service type provides an indication of the abstract parameters of the required quality of service. These parameters are used to guide the selection of real service parameters when transmitting data reports on a particular network. Some networks provide Service precedence (Service Precedence), high priority traffic flow is important than other traffic flows (usually achieved only by high-load traffic flows only above a particular priority). The main choice is 3 Weighing: low-reliability, high-reel, high-throughput .. bits 0-2: precedence (priority). Bit 3: 0 = Normal DELAY Normal delay), 1 = low delay (low latency). Bits 4: 0 = Normal Throughput (normal throughput), 1 = high throughput (high throughput). Bits 5: 0 = Normal Relibility (normal reliability), 1 = HIGH Relibility. Bit 6-7: Reserved for Future Use (reserved). 0 1 2 3 4 5 6 7 ---- ----- --- --- - ----- ----- --- ----- | | | | | | | | | 0 | 0 | | | | | | | | ----- ---- ----- --- ----- --- --- - - Precedence 111 - Network Control 110 - InternetWork Control 101 - critic / ECP (critical) 100 - Flash Override 011 - Flash 010 - Immediate (Immediate) 001 - Priority 000 - Routine (General) Delay (TROUGHOUT), TROUGHOUT and Reliability indication may increase The cost of the service. In many networks, the high performance brought by a parameter is likely to bring low performance of other parameters. Only two of these three instructions must be set. Service type Used to specify the processing of the datagram when transmitted through the Internet system. Examples of the Internet service type to real service types are given in Service Mappings [8], such as Autodin II, Arpanet, Satnet, and PRNET. Network. The assignment of control priority is only used within one network. The use and control of the assignment is consistent in the network. The assignment of the network control priority is only used for gateway control creators. If these priority assignments are true A particular network is related to it is responsible for those priority assignment rights control and use.
Total Length: 16-bit total length is the total length of the datagram, measured in byte (OCTETS), including Internet header and data. This header allows a datagram to up to 65535 words Festival. Such long datagram is unrealistic to most hosts and networks. All hosts must be able to receive up to 576 bytes (regardless of them to reach the entire datagrand). Recommended hosts transmits more than 576 bytes of datagrams when the destination address can receive a big datagon. Select 576 This figure is to allow transmission of a reasonable size data block, except for the required head information. For example, This size allows 512 bytes of data block plus 64 bytes of head filled with a datagram. The largest Internet header is 60 bytes, usually the Internet header is 20 bytes, allowing high-level protocols to flow out. A head is rich.
Identification: 16-bit This identifier is set by the sender, which helps the restructuring of the data report.
Mark: 3-bit different control tags: bit 0: Reserved (Mf) 0 = Last fragment, 1 = more fragments. 0 1 2 - - - | | D | M | | 0 | F | F | - - - Fragment Offset: 13 The head indicates the location of this fragment in the sub-datagram. Split offset is 8 Bytes (64-bit) are measured as a unit. The offset of the first fragment is 0.
Survival time (Time to Live): 8 digits
This head indicates the maximum time to survive in the Internet system. If the value of the head is 0,
The data report must be destroyed. This head is changed at the Internet header process, which is in seconds unit metrics, but because each module of the datagram must reduce TTL for at least 1 second, even if the module handles the data Less than 1 second, TTL must be considered the limit of the time that the datagon can exist. The purpose of this is to discard the data report that cannot be delivered, restricting the time limit of the data
Protocol: 8-bit
This head indicates the next hierarchical protocol used in the data section of the Internet Data. The values of the different protocols are specified in "Assigned NumBers" [9].
Header Checksum: 16-bit
Check and use only for head. When some headers (such as the survival time) changes, the test and confirmation are recalculated and confirmed when each Internet header is processed.
The algorithm of the checksum is as follows:
The inspection and head is all 16-bit words in the head, in order to calculate the checksum, the value of the checksum is 0. This is a simple way to calculate the checksum and experimental evidence, which indicates that it is A full, but it is temporary, it may be replaced by a CRC program, depending on the future experiment.
Source Address: 32 digits, see 3.2
Destination Address: 32 digits, see 3.2
Options: variable
Options can appear or not in the datagram. All IP modules (hosts and gateways) must implement this stuff. Optional is in any special datagram, rather than their implementation.
In some environments, security options may be needed in all datagrams.
The Options head is variable in length. You can have 0 to multiple options. There are two cases: the format ofoption:
Situation 1: A separate 8-bit byte option type (option-type)
Case 2: An Option Type (option-type) eight-bit byte, an option length (option-length) eight-bit byte and other real option data eight bytes.
Option length eight-bit bytes are included in the option type eight-bit bytes. Option length Eight bytes and option data eight bytes.
Option Type 8 Bit and 3 parts:
1 bit: Copy Flag
2 BITS: Option Class 5 Bits: Option Number
The copy flag indicates whether the option is copied to all slice.
0 = unpacking
1 = copy
The option category is:
0 = Control (Control)
1 = reserved
2 = Debugging and measurement (Debugging and measurement)
3 = retained
Define the following INTERNET options:
Class Number Length Description
----- ------ ------ -----------
0 0 - The end of the list. This option takes only 1 eight-bit byte, no /
Length byte
0 1 - No operation. This option only takes only 1 eight-bit byte, no /
Length byte
0 2 11 Safety (Security). Safety, Separation, User Group, TCC), and processing restrictions compatible with DOD requirements.
0 3 Var. Loose Source Routing. The information provided based on the source (SOURCE) is sent to the Internet data.
Strict source routing. The information provided based on the source (SOURCE) is filed for Internet Data.
0 7 Var. Record Route. The path used to TRACE an Internet datagram
0 8 4 stream ID (stream ID). Used to carry stream identity
2 4 var. INTERNE timestamp
Special Option Definition (Specific Option Definitions)
End of the list of options
------
| 00000000 |
------
TYPE = 0
This option indicates the end of the list of options. This may not match the end of the Internet header according to the internet header. This is used for the end of all options, not the end of each option, and only in the case of the end of the option to end the inconsistency in the Internet header.
You can be copied, introduced, or deleted at a fragmentation or other reason.
No operation (No Operation)
------
| 00000001 |
------
TYPE = 1
This option can be used room options, for example, to align subsequent options at 32-bit boundaries
The start part.
Can be copied, introduced or deleted in fragmentation or other reasons
Safety
This option provides the host provides a security (SECURITY), a compartmentation,
Processing restrictions, and TCC (off user group) parameters. The format of this option is as follows:
-------- -------- --- // - --- // --- - // - --- / / ---
| 10000010 | 00001011 | SSS SSS | CCC CCC | HHH HHH | TCC |
-------- -------- --- // - --- // --- - // - --- / / --- type = 130 length = 11
Safety (S domain): 16 digits
Specifies 16 levels of security (eight of which will be used in the future)
00000000 聽 0000000 - Unclassified
11110001 00110101 - Confidential
01111000 10011010 - EFTO
10111100 01001101 - MMMM
01011110 00100110 - PROG
10101111 00010011 - RESTRICTED
11010111 10001000 - SECRET
01101011 11000101 - TOP Secret
00110101 11100010 - (Reserved for Future Use)
10011010 11110001 - (Reserved for Future Use)
01001101 01111000 - (Reserved for Future Use)
00100100 10111101 - (Reserved for Future Use)
00010011 01011110 - (Reserved for Future Use)
10001001 10101111 - (Reserved for Future Use)
11000100 11010110 - (Reserved for Future Use)
11100010 01101011 - (Reserved for Future Use)
Separate Compartments: 16 digits
When the transmission information is not separated, use a full 0 value. Other values can pass Defense
Intelligence Agency is obtained.
Processing Limits Handling Restrictions (H Domain): 16-bit
Control and release markers include text and numbers, in Defense Intelligence
Agency's Manual Diam 65-19, "Safe Transmission Notes (Standard Security
Definition in Markings.
Transmission control code Transmission Control Code (TCC Domain): 24-bit
Provides a method to separate the information traffic flow and define a benefit control entity in the subscriber
(Provides a means to segregate traffic and define controlled
Communities of interest among subscribers) .TCC value is a triple mapping,
It can be obtained from HQ DCA Code 530.
You must be copied when fragmentation. This option has almost once in the datagram.
Loose source station and record path (Loose Source and Record Route)
------ -------- -------- ------- // --------
| 10000011 | Length | Pointer | ROUTE DATA |
------ -------- -------- ------- // --------
TYPE = 131
The loose source and recording path (LSRR) option provide a way to let Internet datagram
The source is supplied to the gateway to push the path information used when the data is reported to the destination, and used to record
Recording path information.
This option begins with the option type code. The second eight-bit byte is the length of the option type code.
degree. Then the Length Outer Byte, Pointer Eight Bytes and Length-3 Bittures
Path information. The third eight-bit byte is a pointer to the path information, which is indicated by the next source address to be processed. Pointer relative to this option, the smallest legal
The value is 4.
The path data consists of a series of Internet addresses. Each Internet address is 4 bytes
32-bit. If the pointer is greater than the length, the source path is empty (and the record path is full), the path base
The destination address domain.
If the destination address has arrived, and the pointer is not greater than the length, the next address in the source path will
Instead of the address domain in the destination address, the recorded path address replaces the source address just used,
Needle 4.
The Recorded Route Address is an Internet module yourself
The address, the address is the address before the datagram.
The process of replacing the source path in recording path means option (and as an integral IP head)
Length remains unchanged when the datagram is transmitted on the Internet
This option is a loose source path because the gateway or host IP is allowed to use
Any path to the relay gateway reaches the next address in the path.
You must be copied when fragmentation. There is basically once in a datagram.
Strict source station and record path (Strict Source and Record Route)
------ -------- -------- ------- // --------
| 10001001 | Length | Pointer | ROUTE DATA |
------ -------- -------- ------- // --------
TYPE = 137
Strict Source and Recording Path (SSRR) options provide a source of Internet datagrams
Provides information that allows the gateway to use the path to be used in the destination, and record the road
Way to information
This option begins with the option type code. The second eight-bit byte is the length of the option type code.
degree. Then the Length Outer Byte, Pointer Eight Bytes and Length-3 Bittures
Path information. The third eight-bit byte is a pointer to the path information, the path information indication
Start with the next source address to be processed. Pointer relative to this option, the smallest legal
The value is 4.
The path data consists of a series of Internet addresses. Each Internet address is 4 bytes
32-bit. If the pointer is greater than the length, the source path is empty (and the record path is full), the path base
The destination address domain.
If the destination address has arrived, and the pointer is not greater than the length, the next address in the source path will
Instead of the address domain in the destination address, the recorded path address replaces the source address just used,
Needle 4.
The Recorded Route Address is an Internet module yourself
The address, the address is the address before the datagram. .
The process of replacing the source path in recording path means option (and as an integral IP head)
Length remains unchanged when the datagram is transmitted on the Internet
This option is a strict source path because the gateway or host IP must send the data reported to the next address inside the source path through the interconnected network indicated in the next address to reach the next gateway specified in the path or Host.
You must be copied when fragmentation. There is basically once in a datagram.
Record route
------ -------- -------- ------- // --------
| 00000111 | Length | Pointer | ROUTE DATA |
------ -------- -------- --------- // ------ Type = Seduce
The recording path option provides a way to record a path to an Internet datagram
This option begins with the option type code. The second eight-bit byte is the length of the option type code.
degree. Then the Length Outer Byte, Pointer Eight Bytes and Length-3 Bittures
Path information. The third eight-bit byte is a pointer to the path data, indicating the beginning of the next
The eight-bit bytes of the area where the path address is saved. The pointer is for this option, the minimum legal
The value is 4.
A record path consists of a series of Internet addresses. Each Internet address is 32-bit 4 bytes. If the pointer is greater than the length, the record path is full, and the initiating host must marry this option and a sufficiently large path area to accommodate all expected addresses. The size of the option is not changed by adding an address. The initialization of the path data area must be 0.
When the Internet module is a data registration path, it checks if the recording path option exists. If there is, it inserts its own Internet address into the recording path, which begins with the eight-bit byte indicated by the pointer, and then adds the pointer to 4.
If the path data is already full (pointer exceeds the length), the datagram will push forward and no longer insert the address into the recording path. If there is room, the empty group is not enough to accommodate the entire address to be inserted, and the source datagram is considered to be wrong and will be discarded. In both cases, an ICMP parameter problem information can be sent to the source host.
Do not copy when fragmentation, only remain in the first fragment. Almost once in each datagram.
Stream Identifier
------ -------- -------- ------
| 10001000 | 00000010 | Street |
------ -------- -------- ------
TYPE = 136 Length = 4
This option provides a way to carry a 16-bit SATNET stream identifier on a network that does not support streaming concept
You must be copied when fragmentation is copied, and it is basically once in a datam.
Internet timestamp (Internet TimeStamp)
------ -------- -------- ------
| 01000100 | Length | Pointer | Oflw | FLG |
------ -------- -------- ------
| Internet Address INTERNET Address |
------ -------- -------- ------
| TIMESTAMP |
------ -------- -------- ------
|.
.
.
Type = 68
The length of the option is an eight-bit number of types, lengths, pointers, and overflow / flag bytes (maximum length 40).
The pointer is from this option to the eight-bit number of the timestamp end plus 1 (for example, it points to the start byte of the next timestamp). The minimum legal value is 5. When the pointer is greater than the length, the timestamp area is full.
Overflow (OFLW) [4] is the number of IP modules that lack space cannot register the time stamp, the number of FLAG (FLG) [4-byte] value is:
0 - is only a timestamp, stored in a continuous 32-bit word
1 - Every time a poke the Internet address of the registration entity
3 - Internet address is preset. An IP module only registers the timestamp when his address matches the next specified Internet address
Timestamp is right-to-right (Right-Justified), 32-bit milliseconds starting from UT
If time cannot be provided in milliseconds or not refer to UT Night, then any time can be inserted into the timestamp, set the high byte of the timestamp to 1 to indicate a non-standard value.
The initiative host must combine this option to accommodate all timestamps that are expected. The option size is not changed by adding timestamp. The initial stamp data area must be set to 0 or Internet Address / 0.
If the timestamp data area is full (the pointer exceeds the length), the data report is pushed forward, not inserted into the timestamp, but the number of overflow plus 1.
If there is room but not inserted into a complete timestamp, or the number of OVLOW has overflow, the original datagram will be considered an error and is discarded. In both cases, an ICMP parameter problem message can be sent to the source host.
The timestamp option is not copied when fragmentation. It carries it in the first fragment. There is basically once in each datastumn.
Padding: variable
The Internet head is filled to ensure that the Internet head ends at the 32-bit boundary. The padding byte is 0.
3.2. Discussion
The implementation of the agreement must be robust. The implementation of each protocol must expect to interact with other implementation. Although the purpose of this specification is to explain different explanations in order to clarify the agreement. Under normal circumstances, a realized transmission behavior must be conservative, and the receiving behavior is wide (compatible). That is, a realization must be careful to send a correct format, but must receive any data reports that it can resolve (for example, the technical error that is not observed)
The basic Internet service is a datagram drive, and a datagram in the gateway, and a recombination on the Internet module of the destination host. Of course, fragmentation and reorganization is performed inside the network, or separately discussed between the gateways of a network, which is permitted because it is transparent to the Internet protocol and other high-level protocols. This transparent type fragmentation and recombination is called "Network-dependent" (or intranet fragment), which is not discussed here.
The Internet address distinguishes the source address and destination address in the Host level, and provides the protocol domain. Assume that multiple paths are required for each protocol of a host.
Addressing
In order to provide the freeness of the network allocation address, and how to allow a large number of sizes from small to the medium, the interpretation of the address is thus encoded to provide a large number of hosts on a small number of hosts, a medium host, a large number of networks, a large number of networks Provide a small number of hosts. In addition, there is also an encoding mode for expansion code for extended.
Address Formats:
HIGH Order Bits Format Class
------------------------------------------------ -
0 7-bit network, 24 host (7 BITS of Net, 24 Bits of Host) A10 14-bit network, 16-bit host (14 BITS of Net, 16 BITS of Host) B
110 21 network, 8 host (21 BITS of Net, 8 BITS of Host)
111 extended address mode escape (escape to extended addressing mode)
0 values on the NetWork domain means this network. This is only used in some ICMP messages. The extended address pattern is not defined. These features are reserved for later use.
The true value assigned to the network address is given in "Assigned NumBers" [9].
The local area network address allocated by the LAN address must allow a separate physical host to act as a few different Internet hosts. That is, there must be a mapping between the Internet host address and the network / host interface, allowing multiple Internet addresses to correspond to one interface. At the same time, a host must be allowed to have multiple physical addresses, and each of the datagrams from these addresses must be considered from a separate host.
The address map between Internet addresses and Arpanet, SATNET, PRNET, and other networks are described in "Address MAPPINGS [5].
Split and restructuring
The Internet Identifier Header (ID) homologous address, destination address, and protocol head together to identify data fragmentation when the restructuring is reorganized.
If the datagnet is not the last slice, set the more slice flag (MF). The slice offset head indicates the slicing position, and the beginning of the initial unscapable datagram. Split is counted in an 8-bit byte.
The unseaped datagna has a total fragmentation information (MF = 0, fragmentation offset = 0). If an Internet datagram is filed, its data part must be separated at the 8-bit byte boundary.
This format allows a 65536 eight-bit data to have 2 ** 13 = 8192 8-bit byte slice. Note that this is consistent with the total length of the data newspaper (of course, the head is calculated in total length rather than fragmentation)
When the fragment occurs, some options are copied, but other remains only in the first fragment.
Each Internet module must be able to push a 68-digit data report before the fragmentation is not performed. This is because an Internet head may have to reach 60 eight bytes, while the smallest slice is 8 8-bit bytes.
Each Internet destination must be able to accept a 576 eight-bit data report, whether this datagram is in a fragmentation, or in multiple shards need to be reorganized.
The heads that may be affected by the fragment include:
(1) Option header (Options)
(2) More shard sign
(3) Split offset
(4) Internet head length
(5) Total length head
(6) Head checksum
If the disable fractional flag (DF) bit is set, the slice of the datagram is not allowed, although it may be discarded. This can be used to disable fractions when receiving the host without sufficient resource.
An example of a disabled fragmentation is loaded to a small host. A small host can have a boot bundle, allowing a datagrar to store it inside, then execute it (One Example of Use of the Don't Fragment Feature Is To Down LineLoad A Small Host. A Small Host Could Have A Boot Strap Program
That Accepts a DataGram Store IT in Memory and the Executes It.)
Split and recombination may be more easier to describe them. The following program is an example implementation.
General Symbols in the bottom of the fake: "= <" means less than or equal, "#" means not equal, "=" means equal to, "<" means setting, and "x to y" means containing X exclusion y. For example, 4 TO 7 includes 4, 5, and 6 (excluding 7)
An example of a fragmentation program: the maximum data report size that can be transmitted in the next network is called the maximum transmission unit (MTU) If the total length is less than or equal to the maximum transmission unit, the data is directly reported directly when processing the data. Give the next node. Otherwise, the data is scaled into two shards. The first fragment is set to the maximum slice size, and the second fragment is the remainder of the datagram. The first slice is sent to the next node in the datagram process, and the second slice is still sent to the fragmentation program than the MTU state. Symbol (Notation): FRGMENT OFFSET IHL - Internet Headth DF - Disable Split Flag MF - More Fragments Flag TL - Total Length (Old Fragment Offset) OIHL - Old Internet Header Length (Old IntenT Header Length) OMF - Old More Fragments Flag OTL - Old Total Length (Old Total Length) NFB - Number Of Fragment Blocks MTU - Maximum Transmission Unit program:
If the TL <= MTU is presented to the next datagram processing link or if DF = 1, the data is discarded, and the first fragmentation is processed: (1) Copy the original Internet header (2) OTHL = OHL; OTL = TL; OFO = FO; OMF = MF (3) NFB = (MTU-IHL * 4) / 8 (4) Net 1 NFB * 8 data block (5) correct head MF = 1; TL = (IHL * 4) (NFB * 8); Recalculating the checksum (6) Submit the slice to the next node of the data report processing process
Next, the second fragmentation: (7) selectively copy the Internet header (some options are not copied, see Options Definition) (8) Fill the remaining data
(9) Correction Head: IHL = (((OiHL * 4) - (Unpacking Option Length)) 3) / 4;
TL = OTL-NFB * 8- (OIHL-IHL) * 4); fo = OFO NFB; MF = OMF; Recalculating Checks and Subscribe to the next node in the data report processing process Distinguished in the above program, each slice (divided by the last one) is set to the maximum allowable size. Another alternative solution is to generate fragmentation that is less than the maximum allowable size. For example, the fragmentation program can repeatedly divide the big data into two semi-half until the final fragmentation is smaller than the maximum transmission size. A reorganization program example is calculated by the Buffer Identifier by the source address, destination address, protocol, and fragmentation header. If this is a complete datagram (that is, the slice offset and the more 0), any restructuring resource associated with this Buffer identifier is released, the datagram is pushed to the next node. If this buffer identifier does not have other fractions, the restructuring resource is assigned. Recombinant resources include a data buffer, a head buffer, a slice block table, a total data length head, and a timer. The data of the fragmentation is placed in the data buffer according to the fragmentation offset and the length, and the positioning is positioned according to the received fragment block in the fragment block table. If the first fragment (fragment is offset is 0), the head is placed in the head buffer. If the last slice (the more flag is 0), the total data length is calculated. If the slice completes the datagram (by checking the bit in the slice block table), the datagram is sent to the next processing step of the datagram. Otherwise, the timer is set to the large value of both the current timer value and the slice survival time (TTL), and then the recombinant program waives the control. If the timer is time, all of the restructuring resources of the buffer identifier will be released. The initialization setting of the timer is the limit of small than graphics waiting time. This is because if the survival time of the fragmentation is greater than the current timer value, the wait time will be increased, but if the survival time to reach the fragment is less than the current timer value, it will not be reduced. The maximum value that the timer can achieve is the maximum value of the survival time (about 4.25 minutes). The currently recommended initial timer setting is 15 seconds. This value can be modified according to the experience accumulated by the agreement. Note that the selection of this parameter value is associated with the available buffer capacity and the data transfer rate of the transport medium.
That is, the data transmission rate is multiplied by the timer value or equal to the buffer size (EG, 10KB / S * 15S = 150kb). Symbol (Notation): FRGMENT OFFSET IHL - Internet header length (Internet Header Length) MF - More Fragments Flag TTL - Time to Live NFB - Number of Fragment Blocks TL - Total Length (Total Length) TDL - Total Data Length (Total Data Length) BUFID - BUFFER Identifier RCVBT - Fragment Received Bit Table TLB - Timer Lower Bound Program (4) BUFID <- Source | Destination | Protocol | Identification; (2) if fo = 0 and mf = 0 (3) Then if buffer with bufid is allocated (4) THEN FLUSH All Reassembly for this bufid; (5) Submit DataGram to next step; done. (6) Else IF no buffer with bufid is allocate (7) Then Allocate Reassembly Resources with bufid; timer <- tlb; tdl <- 0; (8) Put Data from Fragment Into Data Buffer with Bufid from OcTet Fo * 8 To OcTet (TL- (IHL * 4)) FO * 8; (9) SET RCVBT BITS from Fo to Fo ((TL- (ihl * 4) 7) / 8); (10) IF mf = 0 THEN TDL <- TL- (ihl * 4) (fo * 8) (11) if fo = 0 Then Put header in header buffer (12) if tdl # 0 (13) And all rcvbt bits from 0 to (TDL 7) / 8 Are Set (14) THEN TL <- TDL
(Ihl * 4) (15) Submit DataGram to next step; (16) Free All Reassembly Resources for this bufid; done. (17) Timer <- max (Timer, TTL); (18) Give Up Uxt Fragment Or Timer Expires; (19) Timer Expires: Flush All Reassembly with this bufid; done. In this example, two or more divided fragments contain the same data. Whether it is the same or partial overlaps, this program uses a copy of the recently arrived in the data buffer and recently delivered datagram. Identification Datasheet ID is based on the needs of providing a single piece that uniquely identifies special data reported. The protocol module of the recombinant fragment is when the sliced source address, destination address, protocol, and identifier are determined to be the same datagram. Therefore, the sender must select an identity that is unique to the source address, the destination address pair and protocol during the Internet survival. Send protocol module needs to maintain a logo table, for The destination address that communicates with it maintains an entry within the last maximum life cycle. However, since the identification allows 65,536 different values, some hosts can use unique identifiers that simply use the destination address. Select by the high-level protocol The logo is reasonable. For example, the TCP protocol module may retransmit an identical TCP fragment. If retransmission carries the same identity as the first transmission, the possibility of correctly receives, because any of them The newspaper can be used to construct a correct TCP fragmentation. Service Type (TOS) is used for Internet service quality selection. The service type is passed through a set of parameters (priority, delay, throughput and reliability) Specify. This set of parameters is mapped into real service parameters of specific networks in datagram transfer. Priority. Data reported independent measure. Delay (DELAY). Delivery to this indication is important THROUGHPUT. The high data rate is important to the datagram with this indication. Reliability. High-level ensuring reliable efforts to deliver a reliable datagram, such as the indicated datagram, ARPANET has a priority bit You can choose the standard ("Standard") information (Type 0) and uncontrolled information (Type 3). Single pack or multiple packs can also be considered a service parameter. Uncontrolled information tend to Delivery at lower reliability, but a relatively low delay can be obtained.
Suppose an Internet datagram is sent to the ArpaNet, setting the Internet service type: 5 Delay: 0 throughput: 1 Relia (Reliability): 1 In this example, these parameters Mapping to the ARPANET is the setting of the ARPANET priority bit (precedence) is in the upper half of its priority area. Select Standard message because there is a throughput and reliability requirements indication, and there is no delay indication. More detailed information is given in the service mapping of "service mappings" [8]. The time to Live survival time is set by the sender to allow the dataset to allow the maximum time to survive on the Internet system. If the datagram is longer than the survival time on the Internet system, the datagram must be destroyed. Each point processed at the Internet header, which must be reduced to react the time in which the data is processed. Even if the actual time-spent local information is not obtained, the head must be reduced. Time is measured in seconds unit (for example, the value 1 identifies 1 second). Therefore, the maximum survival time is 255 seconds or 4.25 minutes. Since each module for processing the datagram minus the TTL minus 1, even if he handles the data report within less than 1 second, TTL can only be treated as the time limit of the data report. Some high-level reliability connection protocols are the assumptions that are not reached after a certain time interval for a certain time interval. TTL gave these protocol assumptions to meet the guarantee. Options options are optional for each datastist, but the implementation is required. That is, the appearance of the option is whether the sender's selection, but each Internet module must be able to parse each option. There can be multiple options at the header of the option. The options may not end in the 32-bit boundary. The Internet head must be filled with 0 bytes. The start of these bytes will be parsed to the option end flag, and the other meets by the INTERNET header. Each Internet module must be able to act on each option. If you classify, limit, separated communication flows to be transmitted, the security option is required. Checksums If the Internet header changes, the Internet header checksum is recalculated. For example, the reduction in the survival time, the increase or change of the Internet option, or due to fragmentation. This check in the Internet level is used to prevent the Internet header from transferring errors. Some applications allow a part of the data bit errors, but do not allow retransmission delays. These programs cannot be supported if the Internet protocol is forced data. Errors Internet protocol error can be reported through ICMP information. 3.3. The functional description of the user interface of the interface (Interfaces) IP is preferably functional because each operating system has a different library (Facility). Therefore, we have to warn readers, different IP implementations may have different user interfaces. However, all IPS implementations must provide a smallest service to ensure that all IP implementations can identify the same protocol hierarchy. This chapter specifies the functional interface of all IP implementation requirements. The Internet protocol interface is a local area network and the other is a higher level protocol or an application.
Here, the high-level agreement or application will be called a user because it is using the Internet module. Because the Internet protocol is a datagram protocol, in the datagram transfer, the minimum memory or state is maintained, and each of the users who call the Internet protocol module provides all the information required for IPS to perform the required services. An example of an upper-level interface The following two examples call the user request ("=>" identification that satisfies the Internet module communication): Send (SRC, DST, PROT, TOS, TTL, BUFPTR, LEN, ID, DF, OPT => Result) Where: src = source address (source address) DST = destination address (destination address) prot = protocol (protocol) TOS = TYPE OF Service (Service Type) TTL = TIME TO LIVE (Survival actual) BUFPTR = Buffer Pointer Buffer pointer) LEN = Length Of buffer (Buffer length) ID = Identifier (ID) DF = don't fragment (disabled fragment) OPT = OPTION DATA (option data) Result = response (response) OK = DataGram Sent OK (data Reporting OK) Error = Error In Arguments or local network error (parameter or local area network error) Note Priority Inside the TOS, security / interval passes RECV (BUFPTR, PROT,) in the option (option) => Result, SRC, DST, TOS, LEN, OPT) Where: BUFPTR = Buffer Pointer Prot = protocol (protocol) Result = response (Response) OK = DataGram ReceiveD OK (Dentened OK) error = error IN arguments LEN = Length of buffer SRC = Source Address DST = Destination Address TOS = Type of Service (service class OPT = OPTION DATA (option data) When a user sends a datagram, it provides all parameters to perform Send calls.
The Internet module checks the parameters and prepares and send messages after receiving the call. If the parameter is no problem, and the datagram is accepted by the LAN, the call is successfully returned. If the parameters are illegal, or the datagram is not accepted by the local area network, the call returns failed. When the failure is returned, the reasonable report of the problem must be generated, but the details of this report are determined by their respective implementation. When a datagram arrives at the Internet Protocol module from the local area network, there may be a RECV call from the user to specify the address, or not, in the first case, the call in the queue passes the user from the data. Information is met. In the second case, the user of the specified address is notified of the unresolved datagram. If the specified user address does not exist, an ICMP error message returns to the sender, and the data is discarded. The user's notification may pass through a pseudo-interrupt or other same mechanism, a mechanism for the special operating system environment suitable for implementation. The user's reception call can be immediately satisfied by an unresolved datagram, or call is suspended until the data is reached. In the case where the sending host has multiple addresses (multiple physical connections or logical addresses), the source address is included in the transmit call. The Internet module must check to make sure the source address is one of the legal addresses of the host. The protocol may allow or require a call to the Internet to indicate interest in a type of datagram or retain exclusive use. This section describes the user / IP (USER / IP) interface from the perspective of the function. The term used is the same as most of the programs in a high-level language function call, but this usage is meant to exclude TRAP type service calls (such as SVCS, UUOS, EMTS), or other forms of processes.
Appendix A: Example Example 1: The following is the minimum data carried by Internet Datasheet: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - 5 - - - - - | VER = 4 | IHL = 5 | TYPE OF Service | Total length = 21 | - - - - - - - - - - - - - - - - - - | Identification = 111 | FLG = 0 | fragment offset = 0 | - - - - - - - - - - - - - | TIME = 123 | protocol = 1 | Header checksum | - - - - - - - - - - - - - - - - - | SOURCE Address | - - - - - - - - - - - - - - - - - - - - - - - | destination address | - - - - - - - - - - - - - - - - -
- - | DATA | - - EXAMPLE Internet DataGram Figure 5. Note: Every small interval represents a bit. This is a dataset of the Internet Protocol version 4. The Internet head contains 5 32-bit words, and the total length of the datagram is 218th bytes. This datagon is a complete datagram (not a shard) example 2: In this example, we first see a medium-sized Internet datagram (452 data byte), then two Internet sharpening, maybe When the datagram is in the maximum allowable transmission metabolism, the data reported by the data is transmitted on the 280-byte network.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - - - - - - - - - - - - - - - - - - | VER = 4 | IHL = 5 | TYPE OF Service | Total length = 472 | - - - - - - - - - - - - - - - - - - - - - - - - - - | Identification = 111 | Flg = 0 | Fragment Offset = 0 | - - - - - - - - - - - - - - - - | Time = 123 | protocol = 6 | Header checksum | - - - - - - - - - - - - - - - - - - - - - - - - - - - | source address | - - - - - - - - - - - - - - - - - | DESTINATION Address | - - - - - - - - - - - -
| Data | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | DATA | - - - - - - - EXAMPLE Internet DataGram Figure Results from splitting the DataGram After 256 Data OCTES. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - - - - - - - - - - - - - - - - - - | VER = 4 | IHL = 5 | TYPE OF Service | Total length = 276 | - - - - - - - - - - - - - - - - -
| Identification = 111 | FLG = 1 | Fragment Offset = 0 | - - - - - - - - - - - - - | Time = 119 | protocol = 6 | Header checksum | - - - - - - - - - - - | SOURCE Address | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | data | - - - - - - - - - - | DATA | / / / / | DATA | - - - - - - - - - - - -
- - - - - - - - - - - - - - | data | - - - - - - - - - - - - - - - - - EXAMPLETERNET FRAGGMENT FIGURE 7. [Page 36] September 1981 Internet Protocol and the second fragment. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - - - - - - - - - - - - | VER = 4 | IHL = 5 | TYPE OF Service | Total length = 216 | - - - - - - - - - - - - - - - - | | Identification = 111 | FLG = 0 | fragment offset = 32 | - - - - - - - - - - - - - - - - - | Time = 119 | Protocol = 6 | Header checksum | - - - - - -
- - - - - - - - - - - - - - - - - - | source address | - - - - - - - - - - - - - - - - - - - | DESTINATION Address | - - - - - - - - - - - - - - - - - - - - - | data | - - - - - - - - - - - - - - - - - | Data | / / / | Data | - - - - - - - - - - - - - - - - - - - - - - - - -
Example Internet Fragment Figure 8. [Page 37] September 1981InterNet Protocol Example 3: Here, We show An Example of A DataGram Containing Options: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - - - - - - - - - - | VER = 4 | IHL = 8 | TYPE OF Service | Total length = 576 | - - - - - - - - - | Identification = 111 | flg = 0 | Fragment offset = 0 | - - - - - - - - - - - - - - - - - | TIME = 123 | Protocol = 6 | Header Checksum | - - - - - - - - - - - - - - - - - - - - | source address | - - - - - - - - - - - - - - -
- - - - - - - - | destination address | - - - - - - - - - - - - - - - - - - - - - - - - - | OPT. CODE = X | Opt. Len. = 3 | Option Value | Opt. code = x | - - - - - - - - - - - - - - - - - - - | OPT. LEN. = 4 | Option value | Opt. Code = 1 | - - - - - - - - - - - - - - - - - - | OPT. CODE = Y | Opt. Len. = 3 | Option value | Opt. Code = 0 | - - - - - - - - - - - - - - - - - - - | DATA | / / / / / / | data | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | data | - - - - - - - - -