for
CSCI 301: Great Ideas in Computer Science
(c) 1993, 1994, 1995 John E. Howland, All Rights Reserved
Department of Computer Science
Trinity University
Stadium Drive
San Antonio, Texas 78212-7200
Internet: jhowland@ariel.cs.trinity.edu

Each machine on the network sees every message sent on the network, but only processes messages which pertain to that machine. Special signaling techniques are used to detect and avoid message collisions when two machines attempt to transmit a message at the same instant in time. The method used to avoid future collision when two or more machines detect that their messages were transmitted at the same time is to have each machine compute a small, but random, delay time before trying to transmit again.

In a star network, each machine may communicate with the Hub machine without worrying about whether or not their messages will collide with other messages. The performance of a star network is determined largely by the performance of the Hub machine. The Hub machine performs all message routing to the desired destination machine.

Messages get routed from one machine to the next until they arrive at the desired destination. A special message, called the token, is sent from one machine to the next around the ring. The message collision problem is solved in a ring network by requiring each machine to wait until the token arrives before transmitting a message. When a message arrives at a machine it is forwarded to the next machine in the ring unless the message is for that machine.
An internet is built from two or more networks by having a network connection between two machines, each of which are on different networks.

The machines M5 and M3 are sometimes called bridges or gateways because these machines each exist on two networks. Special software is required to route messages between the networks through these machines. These software programs are called routers. Sometimes, rather than use two general purpose computers to function as a bridge or gatway connecting two networks, a special purpose computer together with routing software is used to connect two networks.
An internet usually contains a variety of different machines which are not easily compatible with one another. Hence, there must be different implementations of the common network software protocol, such as TCP/IP, and each of these implementations must provide the necessary communication compatibility between the incompatible machines.
Other noteworthy protocols include Novel IPX, AppleTalk and DECNET. Each of these protocols has been developed by a particular vendor, but, because they are widely used, they are licensed by other vendors so as to provide greater compatibility. Each of these protocols has become a defacto standard for networking.
Recent estimates of the size of the internet indicate that more than 1.3 million machines are connected and new connections are being made at a rate of more than 100,000 per month. It is also estimated that there are databases containing more than 3000 Giga bytes of information available on the internet. A Giga byte is a thousand mega bytes!
(remote-eval 'janus1.cs.trinity.edu "(+ 2 3)" )requests that (+ 2 3) be run on janus1.cs.trinity.edu and the result be returned to the requesting workstation.
Following is the code for remote-eval:
(define remote-eval
(lambda (machine expr)
(let* ((remote-shell "remsh ")
(port (open-input-pipe
(string-append
remote-shell
(symbol->string machine)
" echo \"'"
expr
"'\" | /usr/local/scm4e1/scm/scm"))))
(with-input-from-port port read))))