Communication and resource sharing between different packet switching networks is not possible because of individual network differences specifically in addressing, packet sizes, error checking, and routing.
This paper presented a protocol for different packet switching networks. The protocol is made to allow communication between networks with different addressing conventions, packet sizes, transmission, end-to-end restoration procedures, routing, and fault detection. One of the main goal of this paper is to resolve these individual differences.
- To solve the issue of different addressing convention, the paper presents a uniform addressing scheme that is understood by each individual network.
- To solve the issue of unique maximum packet sizes, an intermediary process that fragments larger data packets into two or more smaller packets is proposed. This solution resolves the issue without changing the maximum packet sizes of each network.
- Time delays associated with accepting and delivering messages affects the performance of the transmission of each individual network. To solve this issue, the paper develops internetwork timing procedures that ensure successful transmissions.
- To solve the issue of unrecoverable data due to data corruption, end-to-end restoration procedures are proposed.
- To avoid having dead destinations or inaccessible hosts, the status information associated to a network such as routing, fault detection and isolation which are different for each network should be coordinated properly between communicating networks.
The solutions presented in the paper lie on creating an interface between independent networks. The interface, which they call gateway is responsible for providing a route for a data packet, fragmenting a packet if it is too large for the destination network, reformatting the packet such that it is understood by the local network where the data packet is being transmitted, coordinating status information between communicating networks. To show how vital the gateway is for communication between independent networks an example message delivery is shown below.
Let A,B,C be independent networks, M, N be gateways and X,Y be processes in networks A and C respectively. There is an assumption that a network can have one or more gateways as in network B. To deliver the packet from process X to Y. The packet should contain necessary information about the source, destination, and the data being transmitted. The paper presented a standard packet formatting as shown below.
The local header is used by the local network in their specific format to route the packet inside the network. The Internetwork Header is a standard set of information that is readable by all gateways to determine the address of the source and destination. The usage of each field is discussed in detail in the paper.
Given the network and format of the packet shown above, message from process X in network A will follow the procedure below.
- A packet will reach gateway M from network A and will be reformatted/fragmented to meet the requirement of network B
- A packet will reach network be and will be routed according to gateway N.
- A packet will reach gateway N and will be reformatted or fragmented to the requirements of network C.
- Finally network C will send the packet to the host where process Y resides. Reassembly and error checking of the message will happen in the destination host.
Take note that in routing the standard addresses written in the packet together with the network ID plays a vital role in choosing what network and gateways will the packet be transmitted.
In this paper they also presented a set of instructions needed by each host connected in a network. This set of instructions is written in the transmission control program (TCP) which manage the sending of messages into packets. It is also in charge of organizing the data received and passing it on to specific processes.
The paper also introduces the concept of ports and port addressing to designate a stream of message to a specific process. This information is also written in a more detailed format of the packet presented in the paper in Fig. 5 and 6.
TCP is involved in the reconstruction of messages, information such as the sequence number and the process address carried in the packet is necessary for the construction of the segments received. Along with this information is an information called checksum, which identifies if a certain data is corrupted. In case of data corruption, request for retransmission is needed. Also, for messages that are sent successfully, positive acknowledgement is being sent back to the sender.
Several other issues are presented in the paper in terms of flow control and construction/destruction of process-process associations.
I want to emphasize several points mentioned in the paper.
- Fragmentation is done by gateways to allow larger data packets to be transmitted in a network with lower maximum packet sizes. The idea that reassembly is done by the hosts is brilliant because it avoids congestion that will speed up the transmission of data. Otherwise, solution such as adding computational power to resources which implements the interface will be expensive.
- A packet may be fragmented by one or more gateways, leading to more packets with smaller data content. An issue arises from subsequent networks with higher maximum packet sizes (even higher than the defragmented packet). Since the cost of the transmitting the packet is proportional to the capacity of the packet there will be no increase (or will have a decrease) in the cost of transmitting the packet regardless of fragmentations.
- The transport control program (TCP) manages the set of message segments to be sent to specific processes in another network. There are two options in packaging message segments. Packaging can be according to the host destination or to the specific process in the host destination. I agree with the decision of choosing the option where messages are packaged according to specific processes in the destination because this will lessen up the workload of the recipient host.
- Although fragmentation of larger packets has no effect on transmission cost as pointed out in item 2, additional computational cost is inevitable since the the task of reassembly and delegating message segments to specific processes is the work of the recipient TCP host.
- Introduction of ports will aid up the receiving TCP to designate messages to specific processes.
Vinton G. Cerf and Robert E. Icahn. 2005. A protocol for packet network intercommunication.SIGCOMM Comput. Commun. Rev. 35, 2 (April 2005), 71-82. DOI=10.1145/1064413.1064423 http://doi.acm.org/10.1145/1064413.1064423
You can download a copy of the paper here.