Question 1a). "Achieving high data rates using TCP/IP over satellite networks can be difficult"- review and discuss some of the reasons TCP/IP has difficulty with satellite links, including the following issues: IPThroughput, IP Time To Live, IP Fragmentation, TCP Throughput and Throughput Expectations, TCPSequence Numbers, TCP Transmission Window, Slow Start, and Congestion Avoidance.Achieving high data rates using Transmission Control Protocol & Internet Protocol (TCP/IP) over satellite networks can be difficult because satellite links have a high latency, which causes the reduction of the performance of some protocols like TCP/IP that are commonly used.The main reason to this problem is the design of TCP/IP. They were not designed to be applied in wireless environment, they were actually meant to be used in fixed networks only that are end-to-end and based on reliability and connection orientation.

For example, the Internet, which is the biggest computer network consisting of millions of terminals is based on the TCP/IP protocol architecture, since it is a fixed Virtual Area Network (VAN). The architecture of TCP was designed to be used in networks with high Bit Error Rates (BERs), and it will not work well in wireless environment, where losses are due to high BERs. Besides, because IP relies on end-to-end data verification, it is unsuitable for wireless links. TCP/IP has not the ability to handle the delay that occurs when performing transmission to and from the satellite. This is also due to the time delay of the physical link.

IP ThroughputAs already has been mentioned, IP's job is to perform end-to-end data verification, which means providing a protocol to join various networks together enable data exchange. IP datagrams will be moved by routers among the different media and their encapsulations. The information about the path to the right destination will be found in the IP datagram itself. But IP's service is unreliable, since it may loose data, deliver data with errors or duplicate datagrams. It also does not limit its throughput and has no control on the speed of the system for generating and receiving datagrams.

But the IP's throughput can be affected by the "IP Time To Live" and "IP Fragmentation".IP Time To LiveBecause IP datagrams sometimes loop among the routers without reaching the destination, IP puts a limitation, which determines how long a datagram should live in the network. This limit will be set by the so called "Time to Live " (TTL) field for every second, which will apply the limit on every router the datagram passes on and will discard the datagram when the TTL is at 0. Because of this, the higher layer protocols have to be careful that they do not send to similar datagrams within two minutes, since the maximum time for a datagram to live in the network is only two minutes, if so there will be a confusion.

This particularly implies for sequence numbers, which will be discussed later.IP FragmentationApplying this to different network media, since they put different limitations on the maximum size of the datagram, IP supports fragmentation that allows to split the data into smaller datagrams, and finally reassemble them at the destination. To identify the fragments, a fragment offset will be used indicating the offset of the fragment of the datagram from its very beginning.Heiko Holtkamp, "TCP/IP in Detail"http://images.

google.com/imgres?imgurl=www.rvs.uni-bielefeld.de/~heiko/tcpip/abbildungen/fragmentation.gif;imgrefurl=http://www.

rvs.uni-bielefeld.de/~heiko/tcpip/kap_2_3.html;h=133;w=558;prev=/images%3Fq%3DTCP%2BFragmentation%26svnum%3D10%26hl%3Dde%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8 (13/10/02)TCP ThroughputBesides IP, TCP is the one who performs the primary transportation in the TCP/IP protocol suite. As discussed earlier, IP provides an unreliable service, whereas TCP implements a reliable byte stream over IP's service, and has the responsibility for flow control, congestion control and shared links' capacity in the connections. In fact, the speed of most of the applications to move data across the network will be determined by TCP throughput.

Moreover, TCP roots most throughput issues.TCP ExpectationsIt is expected from TCP, that it should have the ability to fill the available bandwidth, in case a link is idle, or to reasonably share the bandwidth when the link is being shared.Filling an idle link typically reflects the need of aggregation, so that every user will see the improvement of a faster link. and sharing the link obviously means that more specialized applications are required.TCP Sequence NumbersTo keep track of all the data that have been transmitted, TCP assigns every byte with a unique sequence number, that will acknowledge the delivery to the receiver, to the sender, by indicating that data up to a certain sequence number has been delivered.As IP Time to Live for a datagram is two minutes, TCP cannot issue the same sequence number as a previous byte for another byte before two minutes.

"Unfortunately, a 32-bit sequence space spread over two minutes gives a maximum data rate of only 286 Mb/s." (page 3, 'TCP/IP Performance over Satellite Links',http://mmlab.snu.ac.kr/course/AdvancedInternet/reading/SatelliteTCP.htm) Because it will be not much fast, TCP produces limited transmission rate of datagrams.

TCP Transmission WindowTo control the amount of data that is being sent to the TCP, it advertises a transmission window. The transmission window has similar functions as the Sequence Numbers, whereas the Sequence Numbers allow the sender to keep track of all the data being sent, and the Transmission Window enables the receiver to control the rate of data receiving.As the size of the window depends on the receiver, TCP cannot transmit much data when the receiver's window size is small. But unfortunately, the standard TCP window size cannot go over 64 KB, which is small, only limited rate of data transmission is possible.This is another reason why TCP cannot achieve high transmission rates.But to overcome this problem, researchers have invented a window scaling option for TCP, which multiplies the value in the window field by a constant.

But this can only be adjusted according to the units of the multiplier, which again does not solve the problem.Thomas Bonald, "Transmission Control Protocol" http://images.google.com/imgres?imgurl=www-sop.

inria.fr/mistral/personnel/Thomas.Bonald/images/tcp.gif&imgrefurl=http://www-sop.

inria.fr/mistral/personnel/Thomas.Bonald/tcp_eng.html&h=234&w=583&prev=/images%3Fq%3DTCP%2BTransmission%2BWindow%26svnum%3D10%26hl%3Dde%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26sa%3DG (13/10/02)Slow Start"Effective Throughput is determined by dividing the number of bits in the file by the time it takes to transmit the file." (page1, http://www.adec.

edu/nsf/tcpipperformance.pdf TCP/IP+and+Satellite+Links&hl=de&ie=UTF-8).TCP/IP has congestion control features, which makes the throughput drop when file size decreases, and bit error rate increases. Unless it builds up over a period of time, TCP/IP will not perform a file transfer to start at the speed that is actually allowed by its window. Therefore it uses a technique called "Slow Start" that will find out the throughput capacity of the channel.

It simply sends a packet across the channel and waits for a response. If it receives a response it will send the next packet a bit faster than the previous one, and thus 50% more data will be sent in every roundtrip. It will repeat this procedure until it has discovered the maximum speed of the link, i.e. until the packet sent is lost. This loss of the packets will be interpreted that a congestion is indicated.

But there are two problems with the Slow Start technique on high speed networks. The first problem is, the repeating process of the Slow Start algorithm may take long time to get up to high speed. The second problem is that it cannot distinguish the losses, if these are due to transmission errors or due to congestion. So it assumes that all the losses are due to congestion.

4.2 BSD 4.3 BSD with Slow StartTHROUGHPUT THROUGHPUTTIME TIMEMike Andrews, "The Development of TCP/IP"http://images.google.com/imgres?imgurl=www.

gweep.net/~rocko/mqp/img15.gif&imgrefurl=http://www.gweep.

net/~rocko/mqp/node8.html&h=304&w=573&prev=/images%3Fq%3DSlow%2BStart%2BTCP/IP%26svnum%3D10%26hl%3Dde%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8 (13/10/02)Congestion AvoidanceBut losses of packets in fixed networks are mainly because of congestion. Therefore, modern TCPs have "Congestion Avoidance" mechanisms that is to react against congestion. With Congestion Avoidance, the window size will be increased by one segment for every round-trip of data transmission. But the issues with this algorithm over high-delay bandwidth links such as satellite networks are that the transmission error/loss will take a long time to recover, and that the rate of improvement will cause the delay-bandwidth product.

Since the main cause of lost data are high Bit Error Rates (BERs), it is very important to analyse how TCP reacts on them. Bursts of errors have a bad effect on the performance of transmission protocol, which results impairments in a wireless link and the difficult adoption of the TCP over satellite links. This is because TCP reacts against errors by slowing down the traffic injection, which is suitable in fixed networks, but not in wireless network, since the transmission will not be active during the time it takes waiting for congestion to disappear in order to avoid recovery of the transmissionb). Discuss the effects of increasing/decreasing the memory available for a TCP connection.

Assume that an operating system can give more memory to or request memory back from a TCP connection.Increasing / decreasing the memory of a TCP connection will affect the transmission window size that will be advertised for the receiver to control the amount of data transmitted.By increasing the memory, the size of the window will become larger, and when the memory is decreased, the window will be smaller.As already has been discussed in part a).

the larger the window size is at the receiver's side, the more data transmission will take place. Larger data can be buffered for longer, so that applications may read the data less-frequently. Even at the sender's side, the same events will happen, in other words, larger data buffers and more larger amount of data can be sent without acknowledgement. Moreover, larger amounts of data can be buffered and being sent at once.In general, increasing memory of a TCP connection, will provide a better utilization between the sender and the receiver for a Wide Area Network (WAN) / long distance or very high speed networks.

The opposite will happen when the memory of a TCP connection will be decreased. When the memory is decreased, the utilization between the sender and receiver will get worse because the system may take memory back and thus the transmission rate will become low.Question 2i). You are using devices A-E to connect the LANs to each other and to the Internet. For which devices A-Ewould you use repeater, bridge and router to keep the network simple but efficient? Justify your answer.

I would use a repeater for device A in order to receive the signal before it becomes weak or corrupted, so that it can regenerate it and place a refreshed copy of the signal back on the link. By connecting a repeater between LAN 1 and LAN 2, we can avoid the transmission of weak / corrupted signals without changing the functionality of the network.It would be appropriate to use a bridge for device C because LAN 2 and LAN 3 are in different groups. Since a bridge can also relay frames between two originally separate Local Area Networks, (although they are in the same building and on the same floor), it can be used to provide connection to between LAN 2 and LAN 3. Moreover, a bridge allows to keep the traffic for each segment separate by performing traffic filtering, congestion control and isolation of problem links.

For devices B, D and E, it would be effective to used routers to have access to the Internet, because routers identify and determine the best possible path for a particular transmission. Besides, they can route packets from one network to more destination networks on the Internet, in other words, they relay packets among multiple interconnected networks.ii). Why do you use two connections (B and D) to the Internet from LAN 1, LAN 2 and LAN 3 that are directly connected to each other.?BibliographyBooksBehrouz A. Forouzan, "Data Communication and Networking", Second Edition, McGraw-Hill, ISBN 0-07-118160-1Andrew S.

Tanenbaum, "Structured Computer Organization", Fourth Edition, Prentice-Hall of India, ISBN 81-203-1553-7William Stallings, "Data & Computer Communcations", Sixth Edition, Pearson Education Asia, ISBN 81-7808-442-2Fred Halsall, "Data Communications, Computer Networks and Open Systems", Fourth Edition, Pearson Education Asia, ISBN 81-7808-098-2WebsitesYa Xu,"The solution to CSCI 551 Homework Assignment 4" http://netweb.usc.edu/yaxu/551/assign4.html (12/10/02)Craig Partridge & Timothy J. Shepard, TCP/IP Performance over Satellite Links,http://mmlab.snu.ac.kr/course/AdvancedInternet/reading/SatelliteTCP.htm (12/10/02)Heiko Holtkamp, "TCP/IP in Detail"http://images.google.com/imgres?imgurl=www.rvs.uni-bielefeld.de/~heiko/tcpip/abbildungen/fragmentation.gif&imgrefurl=http://www.rvs.uni-bielefeld.de/~heiko/tcpip/kap_2_3.html&h=133&w=558&prev=/images%3Fq%3DTCP%2BFragmentation%26svnum%3D10%26hl%3Dde%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8 (13/10/02)Thomas Bonald, "Transmission Control Protocol" http://images.google.com/imgres?imgurl=www-sop.inria.fr/mistral/personnel/Thomas.Bonald/images/tcp.gif&imgrefurl=http://www-sop.inria.fr/mistral/personnel/Thomas.Bonald/tcp_eng.html&h=234&w=583&prev=/images%3Fq%3DTCP%2BTransmission%2BWindow%26svnum%3D10%26hl%3Dde%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26sa%3DG (13/10/02)Mike Andrews, "The Development of TCP/IP"http://images.google.com/imgres?imgurl=www.gweep.net/~rocko/mqp/img15.gif&imgrefurl=http://www.gweep.net/~rocko/mqp/node8.html&h=304&w=573&prev=/images%3Fq%3DSlow%2BStart%2BTCP/IP%26svnum%3D10%26hl%3Dde%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8 (13/10/02)