|
Principles of Digital Communication Systems and Computer Networks Authors: Prasad K.V. Published year: 2003 Pages: 267-269/313 |
| < Day Day Up > |
You can obtain the details of Interplanetary Internet at http://www.ipnsig.org.
The TCP/IP protocol stack does not perform well on a satellite network because of the large propagation delay. There will be timeouts before the acknowledgement is received, so packets are retransmitted by the sender though the packets are received at the other end. This causes unnecessary traffic on the network. To overcome these problems, spoofing and link accelerators are used.
When the communication is one-way only, the TCP protocol cannot be used at the transport layer because acknowledgements cannot be sent in the reverse direction. In such a case, the connectionless transport protocol UDP has to be used. To transfer a file, the file has to be divided into UDP datagrams and sent over the communication link. At the receiving end, the datagrams have to be assembled by the application layer protocol. It is possible that some of the datagrams are received with errors, but retransmission cannot be done because of lack of the reverse link. The receiver has to check every datagram for errors, and if there is an error even in a single packet, the whole file is discarded. The sender may send the file multiple times so that at least once all the datagrams are received without error.
If the transmission medium is very reliable, the packets will be received correctly. Also, if there is no congestion, the packets are likely to be received without variable delay and in sequence. Hence, UDP provides a fast data transfer, and the transmission medium is utilized effectively.
Stop-and-wait protocol is very inefficient because the communication channel bandwidth is not utilized well. After the first packet is sent, an acknowledgement has to be received, and then only the second packet can be sent. On the other hand, in sliding window protocol, a number of packets can be sent without waiting for acknowledgements. Hence, channel utilization is better if sliding window protocol is used.
| < Day Day Up > |
| < Day Day Up > |
You can use the procedure described in Exercise #1 of Chapter 15 to obtain the IP address of your computer.
In class B IP address format, 14 bits are used for network ID and 16 bits for host ID. Hence, 2 14 networks can be addressed, and each network can have 2 16 hosts .
In class C IP address format, 24 bits are used for network ID and 8 bits for host ID. Hence, 2 24 networks can be addressed and in each network 2 8 hosts.
The maximum number of addresses supported by IP Version 6 is 340,282,366,920,938,463,463,374,607,431,768,211,456.
You can obtain the RFC from the site http://www.ietf.org.
| < Day Day Up > |
| < Day Day Up > |
The open source for TCP/IP protocol stack is available with the Linux operating system.
The Java code for implementation of UDP server and UDP client are given in Listing C.6 and Listing C.7, respectively. The server software is used to transfer a file to the client. The server divides the file into UDP datagrams and sends it. The client will receive each datagram and assemble the file. This code can be tested on a LAN environment.
Listing C.6: UDP server software.
|
|
import java.net.*; public class UDPServer { public static DatagramSocket ds; public static int buffer_size=10; public static int serverport=555; public static int clientport=444; public static byte buffer[]=new byte[buffer_size]; public static void Server() throws Exception { int pos=0; byte b[] = { 'H','e','l','l','o'}; ds.send(new DatagramPacket (b, b.length, InetAddress.getLocalHost(), clientport)); } public static void main(String args[]) { try{ System.out.println("Server is ready"); ds=new DatagramSocket(serverport); Server(); }catch(Exception e){ } } }
|
|
Listing C.7: UDP Client software.
|
|
import java.net.*; public class UDPClient { public static DatagramSocket ds; public static int buffer_size=5; public static int serverport=555; public static int clientport=444; public static byte buffer[]=new byte[buffer_size]; public static void Client() throws Exception { while(true) { DatagramPacket dp = new DatagramPacket(buffer, buffer.length); ds.receive(dp); byte b[] = dp.getData(); for(int i=0;i<=b.length;i++) System.out.print((char)b[i] + " "); } } public static void main(String args[]) { try{ System.out.println("Client is ready"); ds=new DatagramSocket(clientport); Client(); }catch(Exception e){ } } }
|
|
In sliding window protocol used in TCP, the receiver must advertise its window size. Receiver may advertise a small window size due to various reasons such as buffer full. In such a case, the sender has to transmit small segments. This results in inefficient utilization of the bandwidth. To avoid this problem, the receiver may delay advertising a new window size, or the sender may delay sending the data when the window size is small.
In a satellite communication system, if the VSATs are receive only, it is not possible for VSAT to send an acknowledgement to the server located at the hub. In such a case, the server at the hub has to use the UDP as the transport layer to transmit the file. The server software will divide the file into UDP segments and broadcast each datagram. The datagram contains the VSAT address as the destination address. The VSAT will receive the datagarams and assemble the file.
In sliding window protocol used in the TCP layer, the receiver has to advertise the window size, and the sender must adhere to this size. This may cause the silly window syndrome.
| < Day Day Up > |
|
Principles of Digital Communication Systems and Computer Networks Authors: Prasad K.V. Published year: 2003 Pages: 267-269/313 |