SlideShare a Scribd company logo
1 of 136
CSCI 1800 Cybersecurity and
International Relations
Computer Architecture
John E. Savage
Brown University
Overview
• Definition of computer
• Binary numbers
• Very brief history of computer
• Architecture of CPU
– CPU and RAM
– Typical instructions
• Simple assembly level program
• Assembler and compiler
Lect03 3/30/2013 © JE Savage 2
The Computer
• A computer takes input, produces output,
potentially storing data in the process.
• Most computers can be configured to perform
many tasks, i.e. they are programmable.
Lect03 3/30/2013 © JE Savage 3
Very Brief History of Computers
• Mechanical computers have existed for
millennia.
– Abacus
• Electronic computers emerged in the 1940s.
– Eniac
• Embedded computers are used in appliances.
– iPod, smart phones
• Specialized control hardware less expensive to
implement with a general purpose computer
Lect03 3/30/2013 © JE Savage 4
Binary Numbers
• Today computers store data as bits, 0s and 1s.
• Addition/subtraction is done with binary numbers.
• Here is a mapping of decimal to binary numbers
0 000 = 0*22 + 0*21 + 0*20
1 001 = 0*22 + 0*21 + 1*20
2 010 = 0*22 + 1*21 + 0*20
3 011 = 0*22 + 1*21 + 1*20
4 100 = 1*22 + 0*21 + 0*20
5 101 = 1*22 + 0*21 + 1*20
6 110 = 1*22 + 1*21 + 0*20
7 111 = 1*22 + 1*21 + 1*20
Lect03 3/30/2013 © JE Savage 5
4 = 22, 2 = 21, 1 = 20
Binary Numbers
• How can we represent 1019 in binary?
– Find the largest power of 2 that is less than 1019
• 20 =1, 21 = 2, 22 = 4, 23 = 8, 24 = 16, 25 = 32, 26 = 64, 27 =
128,
28 = 256, 29 = 512, 210 = 1024
• Answer is 512 = 29
• Subtract 512 from 1019 = 507
– Find largest power of 2 that is less than 507
• Answer 256
• Subtract 256 from 507 = 251
– Repeat to obtain 1019 = 512+256+128+64+32+8+2+1
– 101910 = 2
9 +28 +27 +26 +25 +24 +23 +21 +20 = 111110112
Lect03 3/30/2013 © JE Savage 6
Computer Architecture
• Computers have central processing units (CPUs) and
random access memories (RAMs).
• Programs stored in the RAM direct the action of the CPU.
• The CPU implements the fetch-execute cycle
– Fetch an instruction and execute it.
Lect03 3/30/2013 © JE Savage 7
Random Access Memory (RAM)
• A word is a collection of bits, typically 32 bits.
• RAM is given command (read, write, no-op), input
word, and an address. It produces an output word.
• read changes out_wrd
to word at address addr.
• write replaces word at
address addr with in_wrd.
• no-op makes no changes.
Lect03 3/30/2013 © JE Savage 8
Central Processing Unit (CPU)
• Fetch-execute cycle: Repeat forever: a) read an
instruction from the RAM and b) execute it.
• Typical instructions: ADD, SUBTRACT, SHIFT LEFT,
MOVE,
COMPARE, JUMP, JUMPC (conditional), READ, WRITE
• A program is a set of instructions.
• A register is a storage location
• CPU has registers, e.g. rega , that regb,
hold temporary results.
– Permanent results stored in the RAM.
Lect03 3/30/2013 © JE Savage 9
Architecture of the CPU
• The CPU also has a program counter (PC) such as
prog_ctr. PC holds location of next CPU instruction.
• Normally, instructions are executed from
sequential RAM locations (change PC to PC+ 1).
– ADD, SUB, SHIFT, COMPARE, MOVE cause PC to
increment
• But program may jump to remote instruction by
changing PC to new address, not from PC to PC+ 1.
– JUMP and JUMPC (Jump Conditional)
– JUMPC allows program to choose
between two different paths.
Lect03 3/30/2013 © JE Savage 10
Addition
• The instruction ADD A B adds the contents of
registers A and B and puts the sum into A.
• E.g. Consider addition of 310 = 0112 and 510 = 1012.
011 = 0*22 + 1*21 + 1*20
101 = 1*22 + 0*21 + 1*20
1000 = 1*23 + 0*22 + 0*21 + 0*20
• Subtraction (SUB) implemented by adding a
negative number.
Lect03 3/30/2013 © JE Savage 11
COMPARE and MOVE Instructions
• COMPARE A B compares contents of registers A
and B and sets CMP = 1 (0) if same (different).
• MOVE A B moves the contents of register (or
location) A to that of register (or location) B.
• SHIFT LEFT A performs left shift of contents of rega
SHIFT LEFT 1011 = 0110
SHIFT LEFT 0110 = 1100
• SHIFT LEFT can be used to multiply two numbers.
Lect03 3/30/2013 © JE Savage 12
JUMP Instructions
• The program counter PC is a CPU register with
the address of the next instruction in memory.
• Normally the PC is incremented on each step.
– That is, the next instruction in memory is executed
• The JUMP and JUMPC (conditional) instructions
change the contents of the PC.
– The CPU jumps to a new point in the program.
• JUMP A sets PC to A.
• JUMPC A sets PC to A if compare bit CMP is 1.
– This command allows for a conditional branch.
Lect03 3/30/2013 © JE Savage 13
A Simple Multiplication Algorithm
• To multiply integers x and y, set u = 0, z = 0 and
then add y to z a total of x times.
– E.g. x = 3, y = 2, u = 0, z = 0.
COMMAND MEANING COMMENT
1. ADD y z Add y to z (z = 0 initially)
2. SUB x 1 Subtract 1 from x
3. COMPARE x u Compare x to u (u remains at 0)
4. JUMPC 6 If x = 0, jump to instruction 6.
5. JUMP 1 If x ≠ 0, jump to beginning of loop
6. DONE
Lect03 3/30/2013 © JE Savage 14
External CPU Connections
• READ reads from external input, e.g. keyboard
• WRITE writes to external output, e.g. display
• These commands require a way to specify
which device is connected to the CPU.
Lect03 3/30/2013 © JE Savage 15
Assembly Language
• CPU instructions are bit sequences.
– Most computers operate on 32-bit words, though 64-bit
is becoming more common.
– Some bits in a word represent an opcode (e.g. MOVE)
– Other bits represent addresses and values.
• Assembly languages use mnemonics, such as ADD,
SHIFT LEFT, MOVE, COMPARE, JUMPC instead of bits.
• An assembler is a program that translates assembly
language programs into binary CPU instructions.
Lect03 3/30/2013 © JE Savage 16
Compilers
• High level languages are more expressive than
assembly level languages.
– Fewer statements, each having more meaning.
• Compilers are programs to translate high level
languages into machine level languages.
Lect03 3/30/2013 © JE Savage 17
Review
• Definition of computer
• Brief history of computer
• Architecture of CPU
– CPU and RAM
– Typical instructions
• Simple assembly level program
• Assembler and compiler
Lect03 3/30/2013 © JE Savage 18
An Insider’s Guide to the Internet
David D. Clark
M.I.T. Computer Science and Artificial Intelligence Laboratory
Version 2.0 7/25/04
Almost everyone has heard of the Internet. We cruise the web,
we watch the valuation of Internet
companies on the stock market, and we read the pundits’
predictions about what will happen next. But not
many people actually understand what it is and how it works.
Take away the hype, and the basic operation
of the Internet is rather simple. Here, in a few pages, is an
overview of how it works inside, and why it
works the way it does.
Don’t forget—the Internet is not the World Wide Web, or e-
mail. The Internet is what is “underneath”
them, and makes them all happen. This paper describes what the
Internet itself is, and also tells what
actually happens, for example, when you click on a link in a
Web page.
1 . Introduction to the Internet
The Internet is a communications facility designed to connect
computers together so that they can exchange
digital information. For this purpose, the Internet provides a
basic communication service that conveys
units of information, called packets, from a source computer
attached to the Internet to one or more
destination computers attached to the Internet. Additionally, the
Internet provides supporting services such
as the naming of the attached computers. A number of high-
level services or applications have been
designed and implemented making use of this basic
communication service, including the World Wide
Web, Internet e-mail, the Internet "newsgroups", distribution of
audio and video information, and file
transfer and "login" between distant computers. The design of
the Internet is such that new high-level
services can be designed and deployed in the future.
The Internet differs in important ways from the networks in
other communications industries such as
telephone, radio or television. In those industries, the
communications infrastructure--wires, fibers,
transmission towers and so on—has been put in place to serve a
specific application. It may seem obvious
that the telephone system was designed to carry telephone calls,
but the Internet had no such clear purpose.
To understand the role of the Internet, consider the personal
computer, or PC. The PC was not designed for
one application, such as word processing or spreadsheets, but is
instead a general-purpose device,
specialized to one use or another by the later addition of
software. The Internet is a network designed to
connect computers together, and shares this same design goal of
generality. The Internet is a network
designed to support a range of applications, depending on what
software is loaded into the attached
computers, and what use that software makes of the Internet.
Many communication patterns are possible:
between pairs of computers, from a server to many clients, or
among a group of co-operating computers.
The Internet is designed to support all these modes.
The Internet is not a specific communication “technology”, such
as fiber optics or radio. It makes use of
these and other technologies in order to get packets from place
to place. It was intentionally designed to
allow as many technologies as possible to be exploited as part
of the Internet, and to incorporate new
technologies as they are invented. In the early days of the
Internet, it was deployed using technologies
(e.g. telephone circuits) originally designed and installed for
other purposes. As the Internet has matured,
we see the design of communication technologies such as
Ethernet and 802.11 wireless that are tailored
specifically to the needs of the Internet—they were designed
from the ground up to carry packets.
2 . Separation of function
If the Internet is not a specific communications technology, nor
for a specific purpose, what is it?
Technically, its core is a very simple and minimal specification
that describes its basic communication
model. Figure 1 provides a framework that is helpful in
understanding how the Internet is defined. At the
top of the figure, there is a wide range of applications. At the
bottom is a wide range of technologies for
1
wide area and local area communications. The design goal of
the Internet was to allow this wide range of
applications to take advantage of all these technologies.
The heart of the Internet is the definition of a very simple
service model between the applications and the
technologies. The designer of each application does not need to
know the details of each technology, but
only this basic communication service. The designer of each
technology must support this service, but
need not know about the individual applications. In this way,
the details of the applications and the details
of the technologies are separated, so that each can evolve
independently.
2 . 1 . The basic communication model of the Internet
The basic service model for packet delivery is very simple. It
contains two parts: the addresses and the
delivery contract. To implement addressing, the Internet has
numbers that identify end points, similar to
the telephone system, and the sender identifies the destination
of a communication using these numbers.
The delivery contract specifies what the sender can expect when
it hands data over to the Internet for
delivery. The original delivery contract of the Internet is that
the Internet will do its best to deliver all the
data given to it for carriage, but makes no commitment as to
data rate, delivery delay, or loss rates. This
service is called the best effort delivery model.
This very indefinite and non-committal delivery contract has
both benefit and risk. The benefit is that
almost any underlying technology can implement it. The risk of
this vague contract is that applications
cannot be successfully built on top of it. However, the
demonstrated range of applications that have been
deployed over the Internet suggests that it is adequate in
practice. As is discussed below, this simple
service model does have limits, and it is being extended to deal
with new objectives such as real time
delivery of audio and video.
2 . 2 . Layering, not integration.
The design approach of the Internet is a common one in
Computer Science: provide a simplified view of
complex technology by hiding that technology underneath an
interface that provides an abstraction of the
underlying technology. This approach is often called layering.
In contrast, networks such as the telephone
system are more integrated. In the telephone system, designers
of the low level technology, knowing that
the purpose is to carry telephone calls, make decisions that
optimize that goal in all parts of the system.
The Internet is not optimized to any one application; rather the
goal is generality, flexibility and
evolvability. Innovation can occur at the technology level
independent of innovation at the application
level, and this is one of the means to insure that the Internet can
evolve rapidly enough to keep pace with
the rate of innovation in the computer industry.
2 . 3 . Protocols
The word protocol is used to refer to the conventions and
standards that define how each layer of the
Internet operates. The Internet layer discussed above is
specified in a document that defines the format of
the packet headers, the control messages that can be sent, and so
on. This set of definitions is called the
Internet Protocol, or IP.
Different bodies have created the protocols that specify the
different parts of the Internet. The Internet
Engineering Task Force, an open working group that has grown
up along with the Internet, created the
Internet Protocol and the other protocols that define the basic
communication service of the Internet. This
group also developed the protocols for early applications such
as e-mail. Some protocols are defined by
academic and industry consortia; for example the protocols that
specify the World Wide Web are mostly
developed by the World Wide Web Consortium (the W3C)
hosted at the Computer Science and Artificial
Intelligence laboratory at MIT. These protocols, once
developed, are then used as the basis of products that
are sold to the various entities involved in the deployment and
operation of the Internet.
2
3 . Forwarding data—the Internet layer
3 . 1 . The packet model
Data carried across the Internet is organized into packets, which
are independent units of data, no more than
some specified length (1000 to 2000 bytes is typical), complete
with delivery information attached. An
application program on a computer that needs to deliver data to
another computer invokes software that
breaks that data into some number of packets and transmits
these packets one at a time into the Internet.
(The most common version of the software that does this is
called Transmission Control Protocol, or
TCP; it is discussed below.)
The Internet consists of a series of communication links
connected by relay points called routers. Figure 2
illustrates this conceptual representation. As figure 3 illustrates,
the communication links that connect
routers in the Internet can be of many sorts, as emphasized by
the hourglass. They all share the basic
function that they can transport a packet from one router to
another. At each router, the delivery
information in the packet, called the header, is examined, and
based on the destination address, a
determination is made as to where to send the packet next. This
processing and forwarding of packets is
the basic communication service of the Internet.
Typically, a router is a computer, either general purpose or
specially designed for this role, running
software and hardware that implements the forwarding
functions. A high-performance router used in the
interior of the Internet may be a very expensive and
sophisticated device, while a router used in a small
business or at other points near the edge of the network may be
a small unit costing less than a hundred
dollars. Whatever the price and performance, all routers
perform the same basic communication function of
forwarding packets.
A reasonable analogy to this process is the handling of mail by
the post office or a commercial package
handler. Every piece of mail carries a destination address, and
proceeds in a series of hops using different
technologies (e.g. truck, plane, or letter carrier). After each
hop, the address is examined to determine the
next hop to take. To emphasize this analogy, the delivery
process in the Internet is called datagram
delivery. While the post-office analogy is imperfect in a number
of ways, it illustrates a number of other
features of the Internet: the post office carries out other services
to support the customer besides the simple
transport of letters, and the transport of letter requires that they
sometimes cross jurisdictional boundaries,
in particular between countries.
3 . 2 . Details of packet processing.
This section discusses in more detail the packet forwarding
process introduced in the previous section.
The information relevant to packet forwarding by the router is
contained in a part of the packet header
called the Internet header. Each separate piece of the header is
called a field of the header. The important
fields in the Internet header are as follows:
Source address: the Internet address of the origin of the packet.
Destination address: the Internet address of the destination of
the packet.
Length: the number of bytes in the packet.
Fragmentation information: in some cases, a packet must be
broken into smaller packets to complete its
progress across the Internet. Several fields are concerned with
this function, which is not discussed here.
Header checksum: an error on the communications link might
change the value of one of the bits in the
packet, in particular in the Internet header itself. This could
alter important information such as the
destination address. To detect this, a mathematical computation
is performed by the source of the packet to
compute a checksum, which is a 16-bit value derived from all
the other fields in the header. If any one of
the bits in the header is modified, the checksum computation
will yield a different value with high
probability.
Hop count: (technically known as the "time to live" field.) In
rare cases, a packet may not proceed directly
towards the destination, but may get caught in a loop, where it
could travel repeatedly among a series of
3
routers. To detect this situation, the packet carries an integer,
which is decremented at each router. If this
value is decremented to zero, the packet is discarded.
Processing in the router
The processing of the packet by each router along the route
from source to destination proceeds as follows,
each step closely related to the fields discussed above.
1) The packet is received by the router from one of the attached
communications links, and stored in the
memory of the router until it can be processed. When it is this
packet’s turn to be processed, the router
proceeds as follows.
2) The router performs the checksum computation, and
compares the resulting value with the value placed
in the packet by the source. If the two values do not match, the
router assumes that some bits in the
Internet header of the packet have been damaged, and the packet
is discarded. If the checksum is correct,
the router proceeds as follows.
3) The router reads the hop count in the packet, and subtracts
one from it. If this leads to a result of zero,
the packet is discarded. If not, this decremented value is put
back in the packet, and the checksum is
changed to reflect this altered value.
4) The router reads the destination address from the packet, and
consults a table (the forwarding table) to
determine on which of the communications links attached to the
router the packet should next be sent. The
router places the packet on the transmission queue for that link.
5) When the packet reaches the head of the transmission queue,
the router transmits the packet across the
associated communications link, towards either a next router, or
towards the computer that is the final
destination of the packet.
Processing in the source and destination computers
The source and destination computers are also concerned with
the fields in the Internet header of the packet,
but the operations are a little different.
The source computer creates the Internet header in the packet,
filling in all the fields with the necessary
values. The source must have determined the correct destination
address to put in the packet (see the
discussion on the Domain Name System, below), and, using
rules that have been specified, must select a
suitable hop count to put in the packet.
The destination computer verifies the values in the header,
including the checksum and the source address.
It then makes use of an additional field in the Internet header
that is not relevant when the router forwards
the packet: the next-level protocol field.
As discussed above, packets carried across the Internet can be
used for a number of purposes, and
depending on the intended use, one or another intermediate
level protocol will be used to further process
the packet. The most common protocol is Transmission Control
Protocol, or TCP, discussed below; other
examples include User Datagram Protocol, or UDP, and Real
Time Protocol, or RTP. Depending on which
protocol is being used, the packet must be handed off to one or
another piece of software in the destination
computer, and the next-level protocol field in the Internet
header is used to specify which such software is
to be used.
Internet control messages
When some abnormal situation arises, a router along a path
from a sender to a receiver may send a packet
with a control message back to the original sender of the packet.
This can happen when the hop count goes
to zero and the packet is discarded, and in certain other
circumstances when an error occurs and a packet is
4
lost. It is not the case that every lost packet generates a control
message--the sender is supposed to use an
error recovery mechanism such as the one in TCP, discussed
below, to deal with lost packets.
3 . 3 . Packet headers and layers.
The Internet header is not the only sort of header information in
the packet. The information in the packet
header is organized into several parts, which correspond to the
layers, or protocols, in the Internet design.
First comes information that is used by the low-level technology
connecting the routers together. The
format of this will differ depending on what the technology is:
local area network, telephone trunk, satellite
link and so on. Next in the packet is the information at the
Internet layer we have just discussed. Next
comes information related to higher protocol levels in the
overall design, as discussed below, and finally
the data of interest to the application.
4 . TCP -- intermediate level services in the end-no d e
The delivery contract of the Internet is very simple: the best
effort service tries its best to deliver all the
packets given it by the sender, but makes no guarantees—it may
lose packets, duplicate them, deliver them
out of order, and delay them unpredictably. Many applications
find this service difficult to deal with,
because there are so many kinds of errors to detect and correct.
For this reason, the Internet protocols
include a transport service that runs “on top of” the basic
Internet service, a service that tries to detect and
correct all these errors, and give the application a much simpler
model of network behavior. This transport
service is called Transmission Control Protocol, or TCP. TCP
offers a service to the application in which a
series of bytes given to the TCP at the sending end-node emerge
from the TCP software at the receiving
end-node in order, exactly once. This service is called a virtual
circuit service. The TCP takes the
responsibility of breaking the series of bytes into packets,
numbering the packets to detect losses and
reorderings, retransmitting lost packets until they eventually get
through, and delivering the bytes in order
to the application. This service is often much easier to utilize
than the basic Internet communication
service.
4 . 1 . Detailed operation of TCP
TCP is a rather more complex protocol than IP. This discussion
describes the important functions, but of
necessity omits some of the details. Normally, a full chapter or
more of a textbook is required to discuss
all of TCP.
When TCP is in use, the packet carries a TCP header, which has
information relevant to the functions of
TCP. The TCP header follows the Internet header in the packet,
and the higher-level protocol field in the
Internet header indicates that the next header in the packet is
the TCP header. The fields in the header are
discussed in the context of the related function.
Loss detection and recovery: Packets may be lost inside the
network, because the routing computation has
temporarily failed and the packet has been delivered to the
wrong destination or routed aimlessly until the
hop count is decremented to zero, or because the header has
been damaged due to bit errors on a
communication link, or because a processing or transmission
queue in a router is full, and there is no room
to hold the packet within one of the routers. TCP must detect
that a packet is lost, and correct this failure.
It does so as follows.
Conceptually each byte transmitted is assigned a sequence
number that identifies it. In practice, since a
packet can carry a number of bytes, only the sequence number
of the first byte is explicitly carried in the
sequence number field of the TCP header. When each packet is
received by the destination end node, the
TCP software looks at the sequence number, and computes
whether the bytes in this packet are the next in
order to be delivered. If so, they are passed on. If not the packet
is either held for later use, or discarded, at
the discretion of the TCP software.
The TCP at the destination sends a message back to the TCP at
the origin, indicating the highest sequence
number that has been received in order. This information is
carried in the acknowledgement field in the
5
TCP header in a packet being transmitted back from destination
of the data towards the source. If the
source does not receive the acknowledgment in reasonable time,
it transmits the data again, and this repeats
until either some copy of the packet finally makes it to the
destination, or the application making use of
the TCP terminates the activity and reports an unrecoverable
error.
Flow and congestion control: The term flow control describes
the mechanism that attempts to insure that
the sender of data does not transmit faster then the destination
can receive. The term congestion control
describes the mechanism that attempts to insure that the sender
of data does not transmit faster than the
routers in the network can process and transmit the packets. A
router that receives packets faster than it can
transmit them along the next communication link must hold
those packets temporarily. A router that is
holding a number of packets for transmission is called
congested. Congestion control is a critical aspect of
the Internet; since any attached end-node can in principle
transmit at will, it is possible for more packets to
arrive at a router than can be carried across the outgoing
communications link. Both flow control and
congestion control are implemented in TCP.
Packets flowing back from the destination of the data to the
source carry, in addition to the
acknowledgment field, the flow control field. This field conveys
a count of the number of bytes that the
sender can send that have not been acknowledged. In other
words, at any instant, there are some number of
bytes that the sender has transmitted to the destination, but for
which the acknowledgment has not yet
arrived back. The sender must limit the number of such bytes to
the value noted in the flow control field.
The assumption behind this mechanism is that the receiver will
allocate a holding area, or buffer, large
enough to contain this many bytes, and if the receiver falls
behind in processing the incoming packets,
they can sit in this buffer. If the sender exceeds the flow control
limit, the extra packets will usually just be
discarded at the receiver.
The implementation of congestion control is rather more
complex. Apart from the flow control limit
passed back from the receiver, the sender maintains another
estimate of the suitable sending limit called the
"congestion limit". The congestion limit is never allowed to
grow larger than the flow control limit from
the receiver, but is often smaller. When the sending TCP starts
to transmit packets to the receiving TCP,
it makes an initial guess as to a suitable congestion limit. The
initial guess is small: only one or two
packets. It sends only this many packets into the Internet, and
then waits for an acknowledgement packet to
return from the TCP at the receiver. As long as packets are
successfully acknowledged, the congestion limit
is adjusted upward, at first rapidly and then more slowly. If an
acknowledgment fails to arrive, the sending
TCP assumes that some packet was lost because a router along
the path was sufficiently congested that it
had no further space in its transmission queue, and had to
discard it. The sending TCP retransmits the
packet, as was discussed above under loss detection and
recovery, but additionally adjusts its congestion
limit. Depending on the details of the situation, the sending
TCP will cut the congestion limit in half or,
more drastically, cut it to the small limit it used as its initial
guess. Reducing the limit has the
approximate result of cutting the average sending rate similarly,
so the final consequence of this whole
mechanism is that the rate at which the sending TCP transmits
packets moves up and down in an attempt
to find a rate that does not congest any router.
Error detection: a transmission error on a data link can damage
a bit in a packet. The Internet protocol
specifies a checksum function that is used to detect if a bit in
the Internet header is altered, but this only
applies to that header. TCP employs a similar checksum
function to validate the TCP header as well as all
the data bytes that follow it in the packet. The sending TCP
computes the checksum and stores it in the
packet; the receiving TCP recomputes it and compares this
value with the one in the packet, discarding the
packet if the two are different. A packet thus discarded is later
retransmitted because of the loss detection
and recovery mechanism discussed above.
Reliable open and close: The Internet service was described as a
datagram service. At that level, the sender
transmits a packet to a destination address, and need not know
whether that destination is prepared to
receive it, or indeed whether it even exists. Most high-level
services need to know that the receiver is there
and functioning. For this reason, before data is exchanged, the
TCP software at the two ends of the
communication exchange a sequence of packets with each other
(containing no data but just TCP headers
with specific values in certain fields) to insure each end that the
other is there. This is called "making a
connection". Similarly, when each end is done sending data, the
TCP notifies the TCP at the other end
that this is so. When both ends are done sending data, and all
such data has been acknowledged back to its
6
5
sender, then the TCPs "close the connection" by a final
exchange of packets and a delay to insure that all is
well.
TCP can carry data in two directions at once. Each end can send
and receive at the same time, with
separate flow and congestion limits in each direction. Packets
carrying data in one direction can at the
same time acknowledge data flowing in the other direction.
Overall, the resulting behavior of TCP is as follows. When some
software at the sending end gives TCP a
sequence of bytes to transfer to the receiver, the sending TCP
opens a connection and starts to break these
bytes into packets, attaching a TCP header to each and then
handing them on to the Internet software for
formatting and forwarding as described in section 3. TCP
continues to transmit these packets so long as
acknowledgments arrive. Based on the pattern of
acknowledgments and losses, it may retransmit packets,
and send at a faster or slower rate. If the flow control limit from
the receiver goes to zero, it will
temporarily suspend transmission. It will continue this process
so long as there is further data to send.
Data may or may not flow in both directions, based on the
nature of the application.
4 . 2 . Other intermediate protocols
TCP is the most commonly used protocol to enhance the basic
communication service of the Internet, but
it is not the only one. In some cases, the high-level application
works best if it is built directly on the
basic IP communication service. In this case, a simple interface
to that service is used, called the User
Datagram Protocol, or UDP. For real time services that are
concerned more with delivery within a delay
bound rather than completely reliable delivery, an alternative to
TCP has been developed and standardized,
called Real Time Protocol, or RTP. RTP carries timing
information in the header, but does not
implement retransmission to deal with lost packets. RTP is now
being deployed as part of some audio
and video applications on the Internet.
Layers and modularity—more about the organization of the
Internet
Figure 4 provides a different visualization of the layering in the
Internet. It shows the different software
modules that implement the different layers, and illustrates the
difference between a router and an end-node.
A router has software specific to all of the lower level
communications technologies in use (in the jargon of
the trade, "device drivers" or "link-level software"). Above
these elements, it has the Internet forwarding
software that looks at the Internet level header and decides how
to send the packet onward. The end-node
must also have some link-level software and some software at
the Internet level, but here the function is
not forwarding but origination and termination. Above that is
found TCP software (in those cases where
the application needs it), and then the application software
itself.
5 . 1 . The end to end arguments
In terms of division of responsibility, the router, which
implements the relay point between two
communication links, has a very different role than the
computer or end-node attached to the Internet. In
the Internet design, the router is only concerned with
forwarding the packets along the next hop towards the
destination. The end-node has a more complex set of
responsibilities related to providing service to the
application. In particular, the end-node provides additional
services such as TCP that make it easier for the
application (such as the World Wide Web) to make use of the
basic packet transfer service of the Internet.
TCP is implemented in the end-nodes, but not in the packet
forwarding software of the routers. The
routers look only at the Internet information, such as the
delivery addresses, when forwarding packets.
Only the end-nodes look at the TCP information in the packets.
This is consistent with the design goals
of the Internet, and is a very important example of layered
design. While TCP provides a very simple
service that most high-level applications find easy to use, some
applications cannot make use of TCP.
TCP always delivers data in order, and insists on retransmitting
lost packets until they get through. This
can, on occasion, cause delays of several round trips while
losses are recovered. For applications such as
real time Internet telephony, these occasional delays disrupt the
communication flow much more than a
7
short "glitch" in the data stream due to a missing packet. So
most but not all high-level services use TCP.
If TCP were implemented in the routers, it would be much
harder for the high-level service to bypass it
and use some other sort of transport service. So the design
principle of the Internet has been to push
functions out of the network to the extent possible, and
implement them only in the end-node. By doing
so, the high-level service can easily modify them or replace
them by adding new software to the end-node.
This is another means by which the Internet can evolve rapidly.
For a broad base of high-level services,
installing new services can be done without any need to modify
the routers.
The above example illustrates a set of general design principles
called the end to end arguments. The
design approach of the Internet moves functions out of the
network and onto the end-nodes where possible,
so that those functions can be modified or replaced without
changing the routers. Any set of users who
invent a new application can run that application by installing
the code for it on their end-nodes. Were it
necessary to modify routers, or other network elements not
under the control of the individual user, change
would not be as rapid, and would be under the control of the
network operator, not the user.
This principle has many implications. One example is security.
The Internet header is distinct from the
TCP and higher level headers in the packet. Those parts of the
packet only concerned with end-node
functions can be encrypted before they are forwarded across the
Internet without fear that this will disrupt
the forwarding processing in the routers. Using end to end
encryption, the end-node can thus take
responsibility for insuring the integrity and privacy of its own
data.
5 . 2 . Routing and forwarding -- functions specific to routers
There are also functions that are implemented in the routers, but
not the end-nodes. The router must make a
decision as to how to forward each packet as it arrives. In order
to do this, it must have forwarding tables
that specify, for each destination address, what the preferred
path is onward towards that point. The routers
compute the best routes to all the addresses in the network, in
order to construct this table. This requires
that all the routers send messages to other routers describing
what links in the Internet are currently in
operation, and what routers these links connect. This results in a
collective decision-making, the routing
computation, to select the best overall routes. Routers perform
this task in the background, at the same
time that they forward packets. If a low-level communications
link fails or a new one is installed, this
routing computation will construct new routes as appropriate.
This adaptation is part of making the Internet
robust in the face of failure.
End-nodes do not participate in the routing computation. They
know only the identity of the router or
routers closest to them, and send the packets to this first router.
This division of responsibility makes it
possible to replace the routing computation (which has
happened several times in the life of the Internet)
without having to change the software in the end-nodes, an
almost impossible task if it had to be done in a
co-ordinated way for all the millions of end-nodes on the
Internet.
6 . The Domain Name System
There are a few Internet services on which the end-nodes
depend, in addition to the basic packet forwarding
performed by the routers. The most important of these is the
Domain Name System.
Packets carry source and destination addresses, but users do not
use addresses of this form when they
invoke services. Applications tend to use names that are a little
more "user-friendly", composed of
characters rather than integers. For example, the mail system
uses names like "[email protected]", where
"ddc" is a user name, and "lcs.mit.edu" is (more or less) the
name of the mail server for that user. Before
mail can be sent, the software on the sending end-node must
first translate the string "lcs.mit.edu" into an
Internet address, so it can format the packets.
In order to do this, it first sends a few packets to a service
called the Domain Name System, or DNS,
asking that this translation be done. This step is normally
hidden from the user, unless it fails and an
obscure error message results. But every time a piece of e-mail
is sent, or a browser fetches a Web page, a
name in character format is first translated into an Internet
address.
8
The DNS names are organized in a hierarchy. For example, the
name “lcs.mit.edu” is organized as follows.
Starting from the right, the “highest” part of the name is “edu”.
That name is associated with educational
institutions. There are other common “top level domain” names,
or TLDs: the name “com” is associated
with businesses, “gov” with the US government, and the
standard two-letter country abbreviations can be
used to identify countries. Within the “edu” domain, the name
“mit” is associated with the Massachusetts
Institute of Technology. Within “mit”, the name “lcs” is a
machine at the Laboratory for Computer
Science. (Some people believe the names would make more
sense the other way around, with the “edu”
first, but it is too late to switch now).
The mechanics of translating a DNS name into an Internet
address is achieved using DNS name servers,
which are simply computers located throughout the Internet that
are programmed for this purpose. The
servers are organized into a hierarchy that matches the
hierarchy of the names. There are a set of servers
called the “root servers” that are prepared to receive a request
to translate the top level names. Given the
name “edu”, they return the Internet address of a server that
knows about names inside the “edu” domain. A
query to that server with the name “mit” returns the Internet
address of a server that knows names inside
MIT. Next, a query to that server with the name “lcs” returns
the Internet address of a machine inside
LCS. In the case of LCS, that machine is prepared to receive
mail for [email protected], and the translation
of a name into an address is done.
There is only one further step to make this all work right. All
end-nodes, in order to translate a name to an
address, must be able to find a root server to start the process.
But this fact is easy to get. Any DNS server
anywhere in the Internet knows the Internet address of a root
server. So if the end-node can find any DNS
server, it can then find the root, and start the search down the
hierarchy. So how can an end-node find any
DNS server? When a host is first configured to operate on the
Internet, there are a few facts that have to be
supplied. Either the user must type them in manually, or they
are downloaded by a special trick into the
host over its network interface before it starts sending real
Internet packets. The host must know its own
Internet address, the address of a nearby router (so that it can
send packets out into the Internet) and the
address of a nearby DNS server. Those are the facts that have to
be supplied when a new machine is
attached to the Internet for the first time. Normally, with these
three pieces of information, the software on
the end-node can send packets to figure out everything else that
it needs to know.
7 . The design of high level services
The Internet itself, as an entity built of links and routers, is
concerned with the delivery of packets.
Applications such as the World Wide Web exist at a higher
level. While to the consumer applications may
be viewed as a part of the Internet, technically they run "on top
of" the basic communication service of the
Internet, specifically on top of TCP.
7 . 1 . The World Wide Web as an example
A case study of a World Wide Web interaction illustrates some
of the complexity of the overall design.
A Web server (an end-node attached to the Internet) stores
"Web pages", and makes them available for
retrieval on request. The pages have names, called URLs
(Universal Resource Locators). These names,
which have a rather ugly form, have become quite familiar over
the few years; an example would be
"http://www.ana.lcs.mit.edu/papers/this-document.html". These
names are advertised so that potential
readers can discover them; they also form the basis of cross-
references or " links" from one Web page to
another; when a user positions the mouse over a link and
"clicks" it, the matching URL is used to move to
the associated page.
When a user wants to retrieve a web page, the software must
first consult the Domain Name System
(discussed above) to translate the string (for example)
"www.ana.lcs.mit.edu" into an Internet address,
which will be the Web server storing the page "papers/this-
document.html”. The software at the user's
computer (the so-called "browser") then opens a TCP
connection to the server machine, and sends a
retrieval request that contains, among other things, the string
"papers/this-document.html". There is a
protocol called HyperText Transfer Protocol, or HTTP, that
provides the rules and format for messages
requesting a Web page. The server, on receiving the HTTP
request with the name "papers/this-
document.html", finds the matching file on its disk, and passes
that file through the software that
9
implements HTTP and down to the software that implements
TCP. The TCP software breaks the file into
packets, as described above, and sends these packets across the
Internet. These packets are then re-
assembled at the receiving end-node, and the resulting file is
handed to the browser software for processing.
This somewhat complex story illustrates the layered nature of
the Internet design. The transfer of a Web
page involves actions at several different layers at the same
time:
IP: At the Internet level, packets are received and transmitted
when a Web page is requested. At this layer,
the only relevant factors are the Internet addresses in the
packets.
TCP: The TCP software takes a unit of data (a file, a request for
a Web page or whatever) and moves it
across the Internet as a series of packets. It does not examine
these bytes to determine their "meaning"; in
fact, the bytes might be encrypted.
HTTP: HTTP makes use of TCP to move requests and replies. In
contrast to TCP, it looks at the contents
of requests, understands the format and "meaning" of these
requests, and thus retrieves the correct Web
page. It then transfers the Web page in question. However, it
does not know the format or "meaning" of the
page itself. The page could be a traditional Web page, an image,
music, and so on. The HTTP standard
does not define how pages are represented. The HTTP standard
only specifies how the format of the page
is indicated, so that HTTP can find the right interpreter for the
page.
HTML: the most common representation of a Web page is
HTML, which stands for HyperText Markup
Language. A Web page, as stored on the server, is not the literal
representation of what the user sees on the
screen of the browser. Rather, a Web page is a series of
instructions as to how that image on the screen is
to be constructed. These instructions include text and images,
information about relative location, size, and
font, the specification of links to other pages, layout
information about background, colors, and so on.
Depending on the size (for example) of the screen of the
browser, these instructions will cause the page to
be presented in somewhat different ways. HTML is the
"language" in which Web pages are specified.
All browsers include software that understands HTML, so that
arriving Web pages can be interpreted and
displayed on the screen. HTML is not the only page format.
Images, for example, are encoded in a number
of different ways, indicated by the name of the standard: GIF,
JPEG etc. These are alternative formats that
can be found inside a Web page. Any format is acceptable, so
long as the browser includes software that
knows how to interpret it.
Reprogramming the browser: There are means to modify the
behavior of the browser as it is being used.
One that has received a lot of publicity recently is JAVA. JAVA
is a programming language that is used
(among other purposes) as part of the Web. JAVA provides a
means to transfer new software from a server
to a browser that can interpret Web pages. JAVA eliminates the
need for pre-agreement as to the format of a
Web page. The creator of a page can invent a new format if it
suits his need, and transfer the interpreter to
the browser just before transferring the page itself. This
innovation is intended to provide greater creative
freedom to the designer of the Web page. It has the implication
that HTTP cannot know, in all cases, the
format and "meaning" of the bytes being transferred across the
Internet, because the "meaning" may not be
defined in any standards document, but only by the "behavior"
of the matching JAVA code. If running the
JAVA code has the consequence that the receiving bytes are
converted and played through the audio system
of the computer, then it is possible to presume that the
"meaning" of the bytes was to be "sounds", but
this is not knowable by any of the other layers of the software:
HTTP, TCP and so on. This flexibility is
part of what allows the Internet to evolve to support new sorts
of applications.
7 . 2 . Delivery modes: Unicast, multicast and streaming
The preceding discussion of Web retrieval illustrates one
possible pattern of data delivery. The designers of
the Web categorize this as "unicast pull" mode: "pull" because
the user initiates the request for the page, or
"pulls" it at the time it is desired, and "unicast" because the
packets crossing the network go to only one
recipient. There are other alternatives.
10
Multicast
The term "multicast" is used to describe a pattern of packet
distribution in which several destinations
receive copies of the packets coming from a source. Multicast is
an Internet-level service, implemented in
the routers. It is intended to be more efficient than unicast for a
number of cases. One example is multi-
way teleconferencing, where multicasting is used to implement
the equivalent of a conference call. Another
example is the delivery of audio and video to multiple
recipients. What the radio and television industry
would call "broadcast" fits into this model.
The Internet design community reserves the word "broadcast"
for a circumstance in which a packet is
delivered to all end-nodes within some scope. Broadcast is used
across local area networks to transmit low
level control information, but broadcast to all the millions of
end-nodes on the Internet is not a useful
concept. It would lead to uncontrolled overload, jamming of
end-node, and collapse of the Internet. Wide-
area replication of packets only makes sense if receivers have
expressed interest in getting the packets. This
concept of sending to a group of receivers who have requested
the packets (a so-called "multicast group") is
important enough that the term "multicast" was coined to
capture it. Joining a multicast group is similar to
tuning a radio to a particular station, except that on the Internet,
an end-node can receive from multiple
multicast groups at once.
Streaming
The basic communication service of the Internet today is the
simple "best effort" service that makes no
assurance about transmission rate or loss rates. For some
emerging uses that involve the transmission of
audio and video in real time, this service is insufficient. The
term real time describes the circumstance in
which data is being transferred across the network within a
bounded delay, and "played back" or presented
to the user as it is being transferred. Audio and video streams
have a specific data-rate requirement, and
unless the Internet can offer some assurance that it can sustain
that rate from sender to receiver, the audio or
video stream cannot be delivered. Using TCP, the sender would
slow down if congestion were to occur,
which would disrupt the real time delivery of the data. (Note
that just because the data is audio or video,
it does not necessarily follow that the data need be transmitted
in "real time". The data can be transferred
"in bulk" and stored on a disk at the receiver, to be "played
back" from the disk once it has been received
correctly. In this case, TCP could be used to move the data
across the Internet.)
The forwarding of real time packets is sometimes called
streaming. The Internet is now being augmented
to support real time service as well as best effort service as part
of the basic communication service in the
router.
7 . 3 . Enhancing the Web
The Web, as described, is strictly a transfer between two end-
nodes: a server and a client. There are
approaches to augment this simple model for a number of
reasons.
One approach is the so-called "Web proxy". This is illustrated
in figures 5 and 6. The concept here is that
a Web user will redirect all his Web retrieval requests to a
"Web proxy server", also called a "Web cache
server". This server keeps a copy of any page recently retrieved
by a customer, so that if a second customer
asks for the same page, this request can be satisfied from the
local copy on the cache. This improves the
service seen by the customer, since the page returns (hopefully)
sooner. It also helps the Internet Access
provider (IAP) supporting the customer, because the wide area
capacity that the IAP purchases from an ISP
is not used up moving the same file more than once. In some
cases, the IAP may interpose a Web proxy
in the path from the user to the Internet, so that the user does
not even know that his requests are being
redirected to the proxy.
The consequence of a proxy server is that the IAP serving the
consumer will intercept the request for the
Web page and originate the transmission of the page back to the
consumer, using the locally remembered
copy. Many providers of Web pages want the queries to come to
their own server, so they can insert
advertising, gather information on the user, and so on. For this
reason, many Web pages are marked as
“non-cacheable”, which means that the proxy is not supposed to
keep a copy, but to retrieve the page from
the original source each time it is requested.
11
A related activity is the creation of servers that store long-term
copies of popular Web sites as a service for
the provider of the page. These servers are sometimes called
"mirror" servers, since they provide an
identical copy of what is stored on the master server. The
intention here is similar: to reduce the delay of
retrieving the page by having a copy of it located close to the
consumer. In this case, the page is stored
there because of a contract between the provider of the page and
the operator of the Web storage server.
The Web cache and the Web mirror illustrate that there are
multiple reasons to put Web servers at points
"inside" the network -- it can be a case of performance
improvement and a business opportunity, perhaps at
the same time.
7 . 4 . E-mail
The description of the Internet given above was of high level
transfers between two end-nodes, with the
Internet itself providing only simple packet forwarding. Not all
applications work this way. An important
example is electronic mail, or e-mail. Since many users are not
connected full time, if mail was transferred
in one step from origin to destination, the transfer could only be
successful during those occasional periods
when both parties just happened to be connected at the same
time. To avoid this problem, almost all mail
recipients make use of a server (called a mail server or a "POP
server") to receive their mail and hold it
until they connect. They then collect all their mail from their
server. The concept is that the mail server is
always attached and available, so anyone can send mail to it at
any time, and the receiver can retrieve mail
from it at any time. This eliminates the necessity for the sender
and the receiver to be attached at the same
time. Most mail is actually transferred in three steps, from
sending end-node to the mail server serving that
sender, then to the mail server serving the recipient, and then to
the final end-node. This is illustrated in
figure 7.
7 . 5 . Different applications are different
Different high-level services have different designs. The pattern
of mail distribution does not resemble the
pattern of Web page retrieval. As new services are invented,
there will be new patterns of distribution and
storage. For example, some emerging proposals for the
distribution of "TV" programming across the
Internet contemplate a two-stage pattern in which the first part
is non-real time reliable (e.g. TCP) pushing
of the content out to "TV caches", and the second part is a real-
time "pull" of the information based on a
streaming protocol. The proposal is such that the cache can be
located at any point in the system, from the
ISP or IAP to the disk on an end-node of the user.
8 . Why is the Internet the way it is?
The previous discussion is rather mechanical—it describes how
the Internet works, but not why it works
that way. The why is as important as the how. Here is a short
analysis of a few of the important design
features of the Internet.
8 . 1 The why of packets
Packets are not the only way to organize a network. The
telephone system works differently—at the
beginning of a telephone call some transport capacity is
dedicated to that call, enough to carry the voice
information, and these resources are dedicated for the duration
of the call. This is called a circuit network,
in contrast to a packet network.
One advantage of packets is that no transport capacity is used
unless there is data to send. In a circuit
network, capacity is reserved for the circuit even if the end
points have nothing to send at the moment.
Many computer applications are bursty: they send their data in
bursts separated by quiet periods. For
example, when a user is cruising the Web, the transfer of each
page is a burst of data, and nothing is sent
while the user looks at the page and decides what to do next.
With packets, the bursts of data for lots of
users can be interleaved, which leads to more efficient use of
the transport capacity.
12
Since packets can accommodate a range of data communication
patterns, they can better accommodate the
new application with a different pattern. So packets are part of
the objective of designing for change, and
supporting the unknown application yet to come.
8 . 2 The why of end-to-end
We discussed above one of the central design tenets of the
Internet, the end to end argument. This line of
reasoning says that if some function (e.g. application-level
processing) can be implemented at the edge of
the network, in an end-node, rather than in the routers in the
network, edge placement is preferable. The
benefit of this approach is that the network itself remains
simpler and not constrained to only certain
applications. While this may mean that any specific application
is less efficient, it improves the chance that
a new application can be added to the network without needing
to modify the routers. So again, this is a
tradeoff in which the ability to evolve is preferred over the
optimization of the applications of today.
8 . 3 The why of stateless design
In the Internet, there is no concept of a “call”. Unlike the
telephone system, where there is a “setup phase”
at the beginning of a call where resources are reserved for that
call along the path from source to
destination, there are no reservations in the Internet. The router
forwards each packet as it gets it, but does
not have any advance knowledge that the packet is coming, or
any log that it came. We call this a stateless
design, since in the language of Computer Science, such stored
information is often called state. (For a
system to be in on or another state, there must be some
information to distinguish the various states. If
there is no stored information, there are no distinct states.)
The advantage of the stateless design is, again, simplicity. If
there was a setup phase before sending a
bunch of packets, the router could establish some state
information for the packets, perhaps precomputing
the forwarding decision or reserving some resources. This might
be more efficient in specific cases, but
also more constraining and more complex. For example, if state
describing a flow of packets is set up
along a path from source to destination, and then some link in
the path fails, the state information in some
of the routers would have to be removed, and state would have
to be installed in some new routers. This is
actually quite hard to do in a reliable and quick way. The design
of the Internet went for simplicity.
8 . 4 The why of loose specification.
The Internet makes few commitments to the user about the
quality or consistency of service. The best
effort service commitment is that the Internet will do the best it
can, but there is no specification of how
good that is. The network may lose packets, deliver them out of
order, delay them, and so on if conditions
require. Why is this a good idea? This approach puts an extra
burden on the application designer, who
must design the application to cope with these variations. But
tolerating these variations has a benefit. A
wide range of technologies can be put to use to carry Internet
packets—fast and slow, reliable and lossy,
and so on. If the Internet specified a more constrained and pre-
determined level of service, then some of
these technologies might be excluded all together, which would
mean that there would be situations where
the Internet was not available at all. The view of the designers
is that “poor” service is better than no
service at all, and that the application and the user (the human)
should determine what is “too poor”, not a
Internet-wide specification.
8 . 5 A preference for flexibility and change.
There is a common theme through much of the above
discussion. The Internet designers, when making
design choices, preferred to optimize for change, not to
optimize any single application. The telephone
network is optimized for telephone calls. The Internet is
optimized to adapt to the application that might
happen tomorrow.
13
9 . Conclusions -- implications
9 . 1 . Implications of the layered structure
Because of the layered structure of the Internet design, the
different sorts of service providers cannot always
see the parts of the information that is not relevant to them. The
ISP cannot always see the higher level
information in the packets (for example, it may be encrypted.)
The higher-level service provider (a Web
server, for example) cannot see the routing information in the
routers, and cannot determine what the
topology and capacity of the Internet is. These limitations have
policy implications—for example it is
difficult for the IAPs to control access to objectionable material
over the Internet, or to meter the delivery
of content for which fees must be paid.
9 . 2 . Content can have multiple representations.
In a digital system, a piece of material of one "type", e.g. a
piece of music, can be stored and transmitted
in multiple representations. Different encodings can be used to
achieve different fidelity, different tolerance
for bit errors, and different transmission efficiency
("compressed" representations must be "expanded"
before being used, so they require more processing power but
less transmission capacity.)
9 . 3 . Delivery modes are not tied to type of content.
The way in which material is encoded or represented in digital
format is not linked in any way to the mode
of transport across the Internet. A given file can be (at the
Internet level) unicast or multicast, and can be (at
the end-to-end transport level) delivered reliably by TCP or in
real time.
9 . 4 . Many controls cannot be implemented “in” the net
Higher level concerns such as limiting the access to
objectionable material or preservation of intellectual
property rights have often been implemented in the end-node.
This follows from several considerations.
First, the Internet level mechanisms, the routers, and thus the
ISPs, cannot always tell what is being
transported at the higher levels, since it may be in an unknown
representation or encrypted. Second, new
applications can come into operation quickly, and the ISPs will
not necessarily know what the nature of
that application is. The end-node is where that application runs,
and thus the end node is a natural locus of
control.
9 . 5 . The Internet evolves rapidly
As has been illustrated above by several examples, the Internet
is designed to evolve rapidly. The goal is to
support new high-level services without requiring changes to
the routers, to allow individual end-nodes to
install and operate new software without negotiation without
other parties, and to change the routers as
necessary when there are new service demands. As much of the
router as possible is usually implemented
in software, so that it can be changed without a hardware
upgrade.
The modes in which the Internet operates today are not
necessarily what we will see in a small number of
years. New applications, new delivery modes, new Internet level
services, and new data representations can
all be anticipated. We can also anticipate new billing and cost-
allocation mechanisms.
Glossary
Address (Internet): Packets crossing the Internet carry a
destination address to indicate where the packet is
going, and a source address to indicate where it is coming from.
Current Internet addresses are 4 bytes (32
bits) long. (See the definition of bit.) They are by custom
written down by taking each byte of the
address, and writing it as an integer in the range of 0 to 255,
separated by periods (or, in the terminology
14
of the field, dots). Thus, an Internet address might be written as
18.26.0.120. There is a proposal for a
new generation of Internet packet header, called IPv6, with
much larger addresses. This expansion may be
necessary to deal with all the computers that will be connected
to the Internet over the next decade.
Application: a user-visible high-level service. Applications are
normally implemented as software that runs
on end-nodes attached to the Internet.
Bit: the smallest unit of information stored and transmitted in a
computer system. A bit can take on only
one of two values, normally expressed as 0 or 1. A number of
bits can be used in sequence to store an
integer, a character, and so on. For example, in eight successive
bits (called a byte) a total of 256 different
patterns of 0's and 1's can occur. So a byte could be used to
store an integer in the range of 0 to 255, or
one of 256 characters. Since there are less than 256 characters
in normal English text, including lower and
upper case letters, punctuation and numbers, it is traditional to
store a text document in a computer by
organizing the memory of the computer into bytes, and putting
one character in each successive byte.
Byte: see bit.
Checksum: a mathematical computation performed on data (a
sequence of bytes) to yield a small numerical
value. The outcome of this computation depends on all the data,
so changing any one bit of the data will
change the computed value. The checksum can thus be used to
detect if any part of a message has been
damaged as it is transmitted across the network.
Congestion: the condition where a router has received more
packets than the outgoing link can carry away,
so that the memory of the router is forced to store these packets
until the condition passes. If the
congestion persists, the router may have to discard some of the
stored packets.
Datagram: a term used to describe a packet in one particular
sort of network, in which the routers in the
network make a separate forwarding decision for each packet as
it is received. The alternative would be to
require that the sender notify the network before sending a
stream of packets, so that the network could pre-
compute how all of these packets are to be processed.
Encryption: the act of disguising data before sending it across
the network, so that it is meaningless to
anyone who does not have the means (the encryption key) to
reverse the encryption process.
End-node: a computer or other device that is attached to the
Internet for the purpose of transmitting and
receiving packets and participating in the high-level services of
the Internet. A personal computer (PC) is
an example of an end-node, as is a Web server.
Field: term used to describe each separate part of a packet
header, such as a destination address. A field will
typically be some specified number of bytes in length.
Header: control information such as a destination address that is
placed at the beginning of a packet to
permits its proper processing by the various protocols that deal
with it.
Interface: a term used in Computer Science to describe what
parts of a facility or system are externally
visible. The usual goal is to make a complex system easy to
understand and use by creating a simple
interface to that system. A well-designed interface will preserve
most of the useful features of the system
while hiding the irrelevant ones.
Multicast: the process by which a packet sent from a source is
delivered to multiple recipients. The routers
implement this process by forwarding the incoming packet
along multiple outgoing links as appropriate to
fan out to all the intended destinations.
Protocol: the term used to describe the various technical
specifications of the Internet. A protocol is a
specification of permitted behavior by the various components
of the Internet such that the resulting overall
operation of the network is correct, and the participants can
accomplish their intent.
15
Packet: a unit of information, typically no more than 1000 to
2000 bytes, with a series of headers at the
front, that is transmitted across the Internet from a source to
one or more destination.
Queue: a part of the memory of a computer (for example a
router) where packets can be held until they can
be processed or transmitted. Packets are held in a queue if they
cannot be sent at once due to congestion.
Router: the physical device (typically a computer with special
software) that connects communication links
together to form the Internet, and forwards packets from one
link to the next.
16
Internet
email
m'cast
TV
e-
comm
LAN telco
TCP, UDP, RTP, etc.
Protocol
WWW
tele-
conf
phone
audio
links
cable radio
modem
Routers are concerned with
functions below this line.
Figure 1: The "hour-glass" model of the Internet
An illustration of the organization of the Internet protocols.
There are a number of high-level services shown at the top,
which are to be implemented using the various network
technologies at the bottom. The Internet protocol, illustrated
at the narrow point in the figure, specifies a set of basic
communication services. The high level services make use
of this basic service, and the network technologies support
this service. By this specification, the details of each part are
hidden from the other.
ISP A
R
R
R
R
R
R
R
R
R
R
R
R
R
R
RR
IAP 1
IAP 2
ISP B
IAP 3
IAP 4
IAP 5
Figure 2: The Internet as a mesh of links and routers
An illustration showing that the Internet is composed of links
connected by routers. The links are shown here conceptually as
point-to-point connections such as a line provided by a
telephone
company.
Different parts of the Internet are operated by different entities:
Internet
Service Providers (ISPs) and Internet Access Providers (IAPs),
which provide
connections to the end-node computers that attach to the
Internet. Although
not illustrated here, other entities such as institutional users can
also operate
parts of the Internet
IAPs attach to ISPs to carry their traffic. IAPs can attach to
more than one
ISP, and ISPs can interconnect in more that one point. Traffic
between 2 IAPs
(e.g. IAP 1 and 3) may have to cross more than one ISP.
H
R
An end node or host
An IP router
R LAN
H H H
H
LAN
H
S Switch H
S R
R
R S
H
H S
ATM
network H
H POTS
R Head end
network
facility
C Cable network
H
H
H
H
Figure 3: The Internet is built out of different sorts of
communication technology
An illustration of several different sorts of networks connected
by routers.
The networks include a local area network (LAN), a switched
network based
on the ATM technology, a dialup access network and a cable
television
distribution facility.
Internet end-node
Ethernet Ethernet
Ethernet
S/W
T1
H/W
routing etc
S/W
Hi level
servi
S/W
H/W H/W
IP forwarding
PPP S/W
T1 S/W
SNMP
Ethernet
IP end-node
TCP, UDP, etc.
gh
ces,
supporting Internet router Internet router
T1
H/W
routi etc
IP forwarding
PPP S/W
T1 S/W
SNMP ng
Modem S/W
PPP S/W
Ethernet link T1 link
Figure 4: Implementing the protocol layers of the Internet
Illustration of the hardware and software modules found in end-
nodes and
routers. The illustrated end-node is attached to an Ethernet
Local Area
Network, and has software to operate this Ethernet. The IP
(Internet Protocol)
software uses this Ethernet software to transmit and receive
packets
across the LAN. The intermediate protocol software (TCP,
UDP, etc.)
uses the IP software to send packets. The high level service
software
uses the intermediate software.
Inside the router, there is no high-level software, and no
intermediate
protocol software to support it. Depending on which networks
are
connected to the routers (Ethernet, T1 links and modems are
illustrated
here) there is matching software. The IP forwarding software
uses that
network-specific software to receive and transmit packets.
There is also
routing software to perform the routing computation, SNMP
(Simple
Network Management Protocol) to allow human operators to
control
the router, and so on.
Web
Server
Web
Proxy
IAP 1 ISP 2 IAP 4 ISP 3
DISK
DISK
User 1 User 2
Transfer C
Request B Request A
Figure 5: Retrieval of a Web page from a server via a proxy
This figure illustrates the transfer of a Web page from a Web
server
to a user (User 1) making use of a Web proxy operated by the
IAP
that serves the user (IAP 4). If there were no Web proxy in
place, the
request would go directly from the user to the Web server, and
the Web
page would be transmitted back directly to the user. Using the
Web proxy,
User 1 requests the page from the proxy (Request A). In this
case, the page
is assumed not to be on the proxy, so it is requested from the
original
server by the proxy (Request B). The required page is
transmitted back
to the proxy, where it is stored on disk, and also sent on to User
1.
Figure 6 illustrates the case when User 2 subsequently requests
the same
Web page.
Web
Web
IAP 1 ISP 2 IAP 4 ISP 3
DISK Server
DISK Proxy
User 1 User 2
Request A
Transfer B
Figure 6: Retrieval of a Web page located on a proxy server
This figure illustrates the case of a Web retrieval in which the
needed page
is located on the proxy, because some user has previously
requested it. In
this case, User 2 requests a page from the proxy, and since a
copy of the page
is currently stored on the proxy, no transfer occurs from the
server, but the
page is transferred from the proxy to the user.
Mail
Server
B
DISK
A
DISK
IAP 1 ISP 2 IAP 4 ISP 3
Mail
Server
User 1 User 2
Transfer C
Transfer B
Transfer A
Figure 7: Typical pattern of mail transmission
This figure issustrates the typical sequence of transmission that
constitute
the sending of mail. In principle, User 1 could transfer the mail
directly to
User 2. In practice, the users will take advantage of mail servers
that are
operated by their respective IAPs, IAP 1 and IAP 4. The mail is
transmitted
to Mail Server A, after which User 1 can disconnect from the
Internet.
Server A will attempt to transmit the mail to server B. When
this succeeds,
the mail will be stored in Mail server B until User 2 connects to
the Internet
and requests it. In response to this request, server B will
transmit the mail to
User 2. In this sequence, the transfers A and B are initiated by
the sender,
while transfer C is initiated by the receiver.
Interested in learning
more about security?
SANS Institute
InfoSec Reading Room
This paper is from the SANS Institute Reading Room site.
Reposting is not permitted without express written permission.
The Legal System and Ethics in Information
Security
Security plays a big part in today's world of computers, e-
commerce and the Internet. Technology however, has
brought with it, the evils of crime. We thus need laws to protect
those who maybe exposed to these new
threats. In this paper, I will discuss the issues faced by the legal
system in keeping up with the fast paced
development of technology, the ways in which the current laws
can help, and I will also enumerate a few of the
laws that have been developed specifically to address computer
crime in the United States....
Copyright SANS Institute
Author Retains Full Rights
A
D
http://www.sans.org/info/36923
http://www.sans.org/info/36909
http://www.sans.org/info/36914
http://www.sans.org/reading_room/images/click.php?id=528
©
S
A
N
S
In
st
itu
te
2
00
2,
A
ut
ho
r
re
ta
in
s f
ul
l r
ig
ht
s.
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
© SANS Institute 2002, As part of the Information Security
Reading Room. Author retains full rights.
The Legal System and Ethics in Information Security
SANS Security Essentials
GSEC Practical Assignment
Version 1.4, Option 1
Amit Raju Philip
15 July 2002.
Abstract:
Security plays a big part in today’s world of computers, e-
commerce and the
Internet. Technology however, has brought with it, the evils of
crime. We thus
need laws to protect those who maybe exposed to these new
threats. In this
paper, I will discuss the issues faced by the legal system in
keeping up with the
fast paced development of technology, the ways in which the
current laws can
help, and I will also enumerate a few of the laws that have been
developed
specifically to address computer crime in the United States.
Finally, the paper
describes the role that ethics have to play in the world of
computer security, and
how they must be developed hand in hand with laws and statutes
to govern the
rights and wrongs of the computer world.
©
S
A
N
S
In
st
itu
te
2
00
2,
A
ut
ho
r
re
ta
in
s f
ul
l r
ig
ht
s.
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
© SANS Institute 2002, As part of the Information Security
Reading Room. Author retains full rights.
Table of Contents
1 Introduction
...............................................................................................
..............3
2 Security and the Law
...............................................................................................
4
2.1 Issues With the Legal
System...........................................................................4
2.2 Where the Law Comes
In.................................................................................8
2.3 Laws that apply to Security
............................................................................ 10
3 Ethics in
Security..................................................................................
................. 11
4 Conclusion
.............................................................................................. .
............. 13
5 References
...............................................................................................
.............. 14
©
S
A
N
S
In
st
itu
te
2
00
2,
A
ut
ho
r
re
ta
in
s f
ul
l r
ig
ht
s.
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
© SANS Institute 2002, As part of the Information Security
Reading Room. Author retains full rights.
1 Introduction
You took the advice of the security experts, and hired a full
time security
administrator/analyst. With his help your company formulated
and spelled out a
security policy. You analyzed the risks and vulnerabilities
prevalent in your
environment, and identified your industry’s practices for due
care. With this in
mind, you set up a security infrastructure. You also laid out a
plan for conducting
periodic reviews and tests to analyze and enhance your security
policy and
infrastructure [1]. Finally, you set up an intrusion detection
system. Just as you
start to wonder whether it was all worth it, lo and behold, your
security
administrator informs you, that after analyzing several
suspicious logs and hack
attempts, he was able to pin-point an intruder who had been
trying to get to the
core of the company’s data. Had it not been for the security
systems in place,
the organization could have lost millions. Great; that $100k
increase in the total
cost of ownership of the IT department seems to be paying itself
off [1]. But the
question is, now what?
You set up the system and nabbed the intruder, but where do
you go from here?
What are the laws governing information security? Do such
laws even exist, and
if so, how and to what extent do they protect you? Will the
evidence you provide,
hold up in a court of law? Will the legal system even be
competent enough to try
such a case? How much harm would the case do to your
organization’s public
image? Other issues include geographical location and
jurisdiction, as most
computer crime today is Internet related, and boundaries for law
enforcement
agencies are either not well defined in this domain, or most
countries do not have
laws to prosecute cyber crime. With the absence of the
protection that laws
provide, the only recourse that exists is to build ones own
defenses against
external threats, and to depend on internal security, and to a
large extent, ethics
to minimize internal intrusions.
Since technology is developing a lot faster than the legal system
and the law
making process, sometimes there is no legal protection offered
against the
misuse of new technology. In some cases, it is not apparent
what is and what is
not to be prohibited, and so adequate laws do not exist, or are
just not
comprehensive enough to deal with most situations that may
arise with misuse of
a certain technology. In these circumstances, as with society, it
is imperative that
ethics take over, in order to provide sanity to what would
otherwise be a very
chaotic situation. It is the responsibility of people who create
and use the
technology to make sure that it is utilized in a responsible and
ethical manner. Of
course, this does not offer any tangible protection, but just as
with society, social
acceptance and peer pressure that are nurtured through the
acceptance or non-
acceptance of evolving ethics, play a key rol e in limiting the
misuse of
technology. Thus, it is vital that healthy security based ethics
are cultivated to
compensate for and/or collaborate with the legal system.
©
S
A
N
S
In
st
itu
te
2
00
2,
A
ut
ho
r
re
ta
in
s f
ul
l r
ig
ht
s.
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
© SANS Institute 2002, As part of the Information Security
Reading Room. Author retains full rights.
2 Security and the Law
This section deals with the interaction of the legal system with
information
security. A major part of computer and information security
today is tied to the
Internet, and the since the Internet does not have any
geographical boundaries,
a discussion of the legal system with respect to computer
security would not be
complete without mention of legal practices in this regard,
followed in every
country around the world. Since it is not feasible to study the
legal systems of
every single country, the focus of this section will b e on the
computer security
laws and statutes of the United States’ legal system.
The following sub-sections analyze the issues that the legal
system faces when
dealing with computer based crime, and why it is such a
challenge. The field of
networking, that brought about a whole new arena for computer
crime is now
almost three decades old, and the Internet, almost two [7].
Laws have been
established in this time, and are still evolving. Section 2.2
describes the areas of
computer security that are addressed by laws in the US. The
last sub-section
describes a few of the actual laws and statutes on computer and
information
security established in the United States.
2.1 Challenges the Legal System Faces
2.1.1 Rapid Technological Advancement
It cannot be helped, it is as it should be, that the law is behind
the
times. (Holmes, p.102 [3])
Developments in computer technology are occurring every day.
With every new
protocol, product or appli cation that is developed, more doors
are opened to
computer intrusion and misuse. Most of the time it is not even
known that a
problem exists until vulnerability is found and exploited. Then
it is realized that
some sort of law needs to be established to offer protection
against misuse, and
the process begins to develop a law. Since the legal system is
so reactionary in
nature, it just does not have the ability to keep up with the rapid
development of
technology. Laws take time to be formulated, finalized and
approved before they
go into effect. This however, is a necessary evil, as stated by
the Pennsylvania
State Legislature:
Laws influence our environment, economy, education, our
families,
our health and virtually every aspect of our daily lives, now and
for
generations to come. To make new laws or change those already
on the books, lawmakers follow time-honored Constitutional
procedures [4].
©
S
A
N
S
In
st
itu
te
2
00
2,
A
ut
ho
r
re
ta
in
s f
ul
l r
ig
ht
s.
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
© SANS Institute 2002, As part of the Information Security
Reading Room. Author retains full rights.
The good news however, is that efforts are being made to
establish laws in the
field, and in fact, the U.S. Department of Justice’s criminal
division has a
dedicated department for cyber-crime issues, called the
Computer Crime and
Intellectual Property Section (CCIPS). Their website at
http://www.usdoj.gov/criminal/cybercrime/index.html provides
information on cyber-
crime related legal and policy issues, as well as instructions on
how to report and
even help fight cyber-crime. In times of adverse need, changes
to laws can be
made without much delay, as evidenced by the USA Patriot Act
which was
signed by President Bush on October 25, 2001, in response to
the terror acts of
September 11th, 2001. This Act contains a number of
substantial changes to the
US federal cyber-crime laws since the last major revisions of
1996 [5].
2.1.2 Technologically Inept Legal Personnel
In order to try, prosecute, or make judgments in computer crime
related cases,
the lawyers, prosecutors and Judges involved need to have a
firm understanding
of the technologies involved in the crime being tried.
Unfortunately, legal
personnel of yester-year do not have adequate know-how of
computers and
computer related technologies [2]. If a jury is required, they
too need to be well
informed. What is more of a challenge, is keeping people of
these professions
up-to-date with the latest advancements. While it is true that
experts are often
called in for opinions, informed decisions cannot be made
without basic
understanding. This begs the question as to what the best
method to tackle this
problem would be. Do we make the security experts lawyers, or
do we make the
lawyers security experts? In the United States, the Computer
Crime and
Intellectual Property Section (CCIPS) of the US Department of
Justice criminal
division, has its own attorneys that provide training to federal,
state, and law
enforcement agents, prosecutors, other government offici als,
and in some cases
to foreign requesters [6]. Thus steps are being taken in the
right direction to
equip the system with the needed expertise to face the world of
computer
security.
2.1.3 Multiple Roles of Computers in Crime
Computers can be the subject, the object, or the medium of a
crime [2]. It would
be great if we could prosecute the computer itself, but
unfortunately a computer
does only what it is told to do by a human, and if it does not,
the fault lies again
with the human who built it, or the human who modified it to
behave
inappropriately. Laws on computer crime need to address all
these situations.
• Computers maybe stolen or they maybe damaged. In these
cases they
will be considered tangible property, and their value will be
sought.
However, what about the value of the data on the computer?
• Breaking in to somebody’s house and stealing is considered
burglary.
However how should unauthorized access to computer systems
be
handled? Not only could someone steal valuable data, they
could also use
the machine to gain access to other trusted machines.
©
S
A
N
S
In
st
itu
te
2
00
2,
A
ut
ho
r
re
ta
in
s f
ul
l r
ig
ht
s.
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
© SANS Institute 2002, As part of the Information Security
Reading Room. Author retains full rights.
• Computer systems maybe used to develop destructive code for
viruses
and Trojans that could cause widespread damage to other
systems.
• Computers hold valuable information, the misuse of which
could aid in a
number of other crimes such as fraud, identity theft etc.
• There is also the issue of copyrights and illegal use of
software programs.
These are just few of the ways in which computers are used as a
tool to cause
harm, create losses, or to gain unjust profits. It is the
responsibil ity of lawmakers
to identify these methods, and inhibit them with adequate laws
and punishments
for people who resort to using computer systems in
inappropriate ways.
2.1.4 Jurisdiction
Jurisdiction is a major stumbling block for the legal system
when it comes to
dealing with computers, networks and their security. In the US,
the court must
have jurisdiction over the person or the subject matter of a
lawsuit in order to be
able to try it [8]. This works well with the current setup of law
enforcement
agencies that are very territorial and operate within distinct
district, city, county,
state or country lines. All of this however, gets thrown out the
window when there
are no physical boundaries to go by when determining
jurisdiction, as is the case
when it comes to computer networks and the Internet.
A person could be sitting in country ‘A’, remotely logged in to
a computer in
country ‘B’, and committing a crime on systems in country ‘C’.
Of course in
committing the crime, the perpetrator could be sendi ng packets
that traverse
routers in countries ‘D’, ‘E’ and ‘F’ [9]. Under which country’s
laws should this
person be prosecuted? The crime was committed on a computer
in country ‘C’,
from a computer in country ‘B’. Law enforcement officials
from these two
countries do not have the authority in most cases to go to
country ‘A’ where the
individual is physically located, and bring him or her back to
their respective
countries for prosecution. This is not a fictional scenario as ill
ustrated by the
following excerpts quoted from an article on CNET News.com.
Perhaps no case highlights the confusing thicket of
jurisdictional
issues on the W eb more than the Yahoo imbroglio. The saga
began
two years ago when two French human rights groups sued
Yahoo,
arguing that the posting of historical Nazi items on the
company's
U.S.-based site violated French law prohibiting the display of
racist
material. A French judge sided with the groups, ordering Yahoo
to
block French citizens from accessing the site or face steep fines.
However, Yahoo turned to the U.S. courts and asked a judge to
declare the French law unenforceable here. He did.
Now, the company is facing another set of charges that it, along
with former CEO Koogle, violated the country's war crime laws
by
displaying the items. In perhaps the most curious aspect of the
©
S
A
N
S
In
st
itu
te
2
00
2,
A
ut
ho
r
re
ta
in
s f
ul
l r
ig
ht
s.
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
© SANS Institute 2002, As part of the Information Security
Reading Room. Author retains full rights.
case, the American Yahoo site at issue had no physical presence
in
France. (Bowman [10])
Suggestions have been made to make cyberspace a separate
jurisdiction of its
own with its own laws and regulations [8, 11]. However, this
will take a great
deal of time, agreement and co-operation between countries.
Until such a move
is justified and agreed upon, it is up to cyber communities such
as ISPs to
maintain their own laws and codes of conduct so that the misuse
of computers
over their networks is kept to a minimum. Various countries
are in turn trying to
establish treaties to sort out these very cross-border Net issues.
2.1.5 Computer Crime kept Quiet
In this day and age where companies hold large amounts of
personal information
about its customers or clients, keeping the information private
is top priority.
Thus the security of networks and databases is a big deal. If an
intrusion does
occur, and data is lost or leaked, companies find it in their best
interests to keep
the matter quiet and out of courts, even if the intruder is
identified. A court case
and media attention would cause unwanted negative publicity,
which would in
turn scare off potential clients, and perhaps even cause current
clients to
consider competitors instead. It could also cause enough furor
among the
current client population that they would look to sue for
damages as well. These
possible repercussions are enough incentive for most companies
to deal with
security intrusions internally, which in turn hurts the legal
system, since it will
never become aware of the kind of threats that need to be
protected against.
Moreover, it may seem as motivation for individuals to indulge
in such criminal
behavior under the pretext that they will not be answerable to
the law if caught.
2.1.6 Inadequate Precedence
Since computers, networks and the Internet are a relatively new
evil in the legal
system, not many cases have been tried in these fields. Modern
day court
rulings are based to a large extent on precedence from old
cases. This once
again is a stumbling block for the legal system when it comes to
cases related to
computer security. Since there is no precedence established,
rulings on current
cases will become precedence for future cases. Thus, a great
deal of thought
and care has to be taken to make sure that correct decision is
made and
appropriate punishments are handed out.
2.1.7 Motive and Age of Offenders
In searching for criminals, law enforcement agencies usually
look for means,
motive and opportunity to build a strong enough case [12].
With the Internet,
means and opportunity are always available, however, finding a
motive is difficult
in most cases. This is because most cyber-crime is done not out
of spite or hate,
but for the adventure and challenge it offers. In fact, juveniles
commit a number
of these crimes. The problem with this is that these are seen
more as childhood
pranks, and if not ‘nipped in the bud’ early, the same juveniles,
with more
©
S
A
N
S
In
st
itu
te
2
00
2,
A
ut
ho
r
re
ta
in
s f
ul
l r
ig
ht
s.
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5
06E4 A169 4E46
© SANS Institute 2002, As part of the Information Security
Reading Room. Author retains full rights.
experience, technology, and quest for adventure will commit
more serious
offenses [2].
2.1.8 Anonymity Offered by the Internet
It is possible for people to remain anonymous while
communicating or performing
other activities over the Internet. This brings a sense of
security, and in turn, in
some cases, gives individuals the courage to do the outrageous,
and sometimes
even resort to illegal activities. The sense that their actions
cannot be associated
with them makes people indulge in activities they would not
ordinarily do. With
respect to computer crime, individuals may seek to play pranks,
or in more
extreme cases steal, cause loss or harm or commit fraud. It
sometimes takes
days, weeks or even months before acts of cyber-crime are
detected, and by that
time the perpetrators are able to cover their tracks and maintain
their anonymity,
and so in a lot of cases, will never be caught [13].
2.2 Where the Law Comes In
The previous sections seem to paint a dreary picture of the state
of the legal
system with regard to computer technology and its ability to
offer protection from
misuse of the latter. However, even in light of the fact that the
laws are slow to
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx
CSCI 1800 Cybersecurity and International Relations Comp.docx

More Related Content

Similar to CSCI 1800 Cybersecurity and International Relations Comp.docx

Ass#1 ramirez.cv (cs3112 os)
Ass#1 ramirez.cv (cs3112 os)Ass#1 ramirez.cv (cs3112 os)
Ass#1 ramirez.cv (cs3112 os)
charize
 
Introduction to programming concepts
Introduction to programming conceptsIntroduction to programming concepts
Introduction to programming concepts
hermiraguilar
 
COA-Unit-1-Basics.ppt
COA-Unit-1-Basics.pptCOA-Unit-1-Basics.ppt
COA-Unit-1-Basics.ppt
Ruhul Amin
 

Similar to CSCI 1800 Cybersecurity and International Relations Comp.docx (20)

Lecture1 ch01
Lecture1 ch01Lecture1 ch01
Lecture1 ch01
 
CA UNIT I PPT.ppt
CA UNIT I PPT.pptCA UNIT I PPT.ppt
CA UNIT I PPT.ppt
 
Computer basics
Computer basicsComputer basics
Computer basics
 
Unit 1.pptx
Unit 1.pptxUnit 1.pptx
Unit 1.pptx
 
INTRODUCTION TO COMPUTER SYSTEMS ARCHITECTURE1_17 December 2023.ppt
INTRODUCTION TO COMPUTER SYSTEMS ARCHITECTURE1_17 December 2023.pptINTRODUCTION TO COMPUTER SYSTEMS ARCHITECTURE1_17 December 2023.ppt
INTRODUCTION TO COMPUTER SYSTEMS ARCHITECTURE1_17 December 2023.ppt
 
K.Bhagavan gupta.pdf according to the labu
K.Bhagavan gupta.pdf according to the labuK.Bhagavan gupta.pdf according to the labu
K.Bhagavan gupta.pdf according to the labu
 
INTRODUCTION TO COMPUTER .pptx
INTRODUCTION TO COMPUTER .pptxINTRODUCTION TO COMPUTER .pptx
INTRODUCTION TO COMPUTER .pptx
 
Introduction to Embedded System
Introduction to Embedded SystemIntroduction to Embedded System
Introduction to Embedded System
 
Ass#1 ramirez.cv (cs3112 os)
Ass#1 ramirez.cv (cs3112 os)Ass#1 ramirez.cv (cs3112 os)
Ass#1 ramirez.cv (cs3112 os)
 
Introduction to programming concepts
Introduction to programming conceptsIntroduction to programming concepts
Introduction to programming concepts
 
training report on embedded system and AVR
training report on embedded system and AVRtraining report on embedded system and AVR
training report on embedded system and AVR
 
COA-Unit-1-Basics.ppt
COA-Unit-1-Basics.pptCOA-Unit-1-Basics.ppt
COA-Unit-1-Basics.ppt
 
Cp unit 1
Cp unit 1Cp unit 1
Cp unit 1
 
Project Report on Embedded Systems
Project Report on Embedded Systems Project Report on Embedded Systems
Project Report on Embedded Systems
 
Ch1Intro.pdf Computer organization and org.
Ch1Intro.pdf Computer organization and org.Ch1Intro.pdf Computer organization and org.
Ch1Intro.pdf Computer organization and org.
 
HARDWARE
HARDWAREHARDWARE
HARDWARE
 
Distributed Computing
Distributed ComputingDistributed Computing
Distributed Computing
 
Distributed Computing
Distributed ComputingDistributed Computing
Distributed Computing
 
An Introduction To Python - Understanding Computers
An Introduction To Python - Understanding ComputersAn Introduction To Python - Understanding Computers
An Introduction To Python - Understanding Computers
 
Pre requisite of COA- for Micro controller Embedded systems
Pre requisite of COA- for Micro controller Embedded systemsPre requisite of COA- for Micro controller Embedded systems
Pre requisite of COA- for Micro controller Embedded systems
 

More from annettsparrow

Initial Post  (250 words)Read and interpret the short story .docx
Initial Post  (250 words)Read and interpret the short story .docxInitial Post  (250 words)Read and interpret the short story .docx
Initial Post  (250 words)Read and interpret the short story .docx
annettsparrow
 
initial post one paragraph intext citation and reference Require.docx
initial post one paragraph intext citation and reference Require.docxinitial post one paragraph intext citation and reference Require.docx
initial post one paragraph intext citation and reference Require.docx
annettsparrow
 
Infrastructure SecurityChapter 10Principles of Compute.docx
Infrastructure SecurityChapter 10Principles of Compute.docxInfrastructure SecurityChapter 10Principles of Compute.docx
Infrastructure SecurityChapter 10Principles of Compute.docx
annettsparrow
 
Inital post please respond for the above post question one page with.docx
Inital post please respond for the above post question one page with.docxInital post please respond for the above post question one page with.docx
Inital post please respond for the above post question one page with.docx
annettsparrow
 
Infornnation Technologyin Hunnan ResourceAnEmpirical .docx
Infornnation Technologyin Hunnan ResourceAnEmpirical .docxInfornnation Technologyin Hunnan ResourceAnEmpirical .docx
Infornnation Technologyin Hunnan ResourceAnEmpirical .docx
annettsparrow
 
INFORMED CONSENT LETTER Page 1 of 2 SELF CONSENT .docx
INFORMED CONSENT LETTER  Page 1 of 2 SELF CONSENT .docxINFORMED CONSENT LETTER  Page 1 of 2 SELF CONSENT .docx
INFORMED CONSENT LETTER Page 1 of 2 SELF CONSENT .docx
annettsparrow
 
INFORMATIONGOVERNANCEFounded in 1807, John W.docx
INFORMATIONGOVERNANCEFounded in 1807, John W.docxINFORMATIONGOVERNANCEFounded in 1807, John W.docx
INFORMATIONGOVERNANCEFounded in 1807, John W.docx
annettsparrow
 
Informative Presentation Delivery OutlineI. HeaderSpeec.docx
Informative Presentation Delivery OutlineI.  HeaderSpeec.docxInformative Presentation Delivery OutlineI.  HeaderSpeec.docx
Informative Presentation Delivery OutlineI. HeaderSpeec.docx
annettsparrow
 
INFORMATION THAT SHOULD GO INTO PROCESS RECORDING FOR MICRO WORK.docx
INFORMATION THAT SHOULD GO INTO PROCESS RECORDING FOR MICRO WORK.docxINFORMATION THAT SHOULD GO INTO PROCESS RECORDING FOR MICRO WORK.docx
INFORMATION THAT SHOULD GO INTO PROCESS RECORDING FOR MICRO WORK.docx
annettsparrow
 

More from annettsparrow (20)

Initial Post  (250 words)Read and interpret the short story .docx
Initial Post  (250 words)Read and interpret the short story .docxInitial Post  (250 words)Read and interpret the short story .docx
Initial Post  (250 words)Read and interpret the short story .docx
 
initial post one paragraph intext citation and reference Require.docx
initial post one paragraph intext citation and reference Require.docxinitial post one paragraph intext citation and reference Require.docx
initial post one paragraph intext citation and reference Require.docx
 
Initial Post InstructionsTriggers are ethnocentric responses to .docx
Initial Post InstructionsTriggers are ethnocentric responses to .docxInitial Post InstructionsTriggers are ethnocentric responses to .docx
Initial Post InstructionsTriggers are ethnocentric responses to .docx
 
Initial Post InstructionsFor the initial post,consider thr.docx
Initial Post InstructionsFor the initial post,consider thr.docxInitial Post InstructionsFor the initial post,consider thr.docx
Initial Post InstructionsFor the initial post,consider thr.docx
 
Initial Post InstructionsFor the initial post, choose and ad.docx
Initial Post InstructionsFor the initial post, choose and ad.docxInitial Post InstructionsFor the initial post, choose and ad.docx
Initial Post InstructionsFor the initial post, choose and ad.docx
 
Initial Post InstructionsDiscuss the differences and similaritie.docx
Initial Post InstructionsDiscuss the differences and similaritie.docxInitial Post InstructionsDiscuss the differences and similaritie.docx
Initial Post InstructionsDiscuss the differences and similaritie.docx
 
Initial Post InstructionsAs we jump into the world of Alge.docx
Initial Post InstructionsAs we jump into the world of Alge.docxInitial Post InstructionsAs we jump into the world of Alge.docx
Initial Post InstructionsAs we jump into the world of Alge.docx
 
Initial Post InstructionsFor the initial post, respond to one .docx
Initial Post InstructionsFor the initial post, respond to one .docxInitial Post InstructionsFor the initial post, respond to one .docx
Initial Post InstructionsFor the initial post, respond to one .docx
 
Initial Post InstructionsAgenda setting can be a difficult t.docx
Initial Post InstructionsAgenda setting can be a difficult t.docxInitial Post InstructionsAgenda setting can be a difficult t.docx
Initial Post InstructionsAgenda setting can be a difficult t.docx
 
Initial Post Identify all the components of a cell. Describe the fu.docx
Initial Post Identify all the components of a cell. Describe the fu.docxInitial Post Identify all the components of a cell. Describe the fu.docx
Initial Post Identify all the components of a cell. Describe the fu.docx
 
Initial Discussion Board Post Compare and contrast life for col.docx
Initial Discussion Board Post Compare and contrast life for col.docxInitial Discussion Board Post Compare and contrast life for col.docx
Initial Discussion Board Post Compare and contrast life for col.docx
 
Infrastructure SecurityChapter 10Principles of Compute.docx
Infrastructure SecurityChapter 10Principles of Compute.docxInfrastructure SecurityChapter 10Principles of Compute.docx
Infrastructure SecurityChapter 10Principles of Compute.docx
 
Inital post please respond for the above post question one page with.docx
Inital post please respond for the above post question one page with.docxInital post please respond for the above post question one page with.docx
Inital post please respond for the above post question one page with.docx
 
Infornnation Technologyin Hunnan ResourceAnEmpirical .docx
Infornnation Technologyin Hunnan ResourceAnEmpirical .docxInfornnation Technologyin Hunnan ResourceAnEmpirical .docx
Infornnation Technologyin Hunnan ResourceAnEmpirical .docx
 
INFORMED CONSENT LETTER Page 1 of 2 SELF CONSENT .docx
INFORMED CONSENT LETTER  Page 1 of 2 SELF CONSENT .docxINFORMED CONSENT LETTER  Page 1 of 2 SELF CONSENT .docx
INFORMED CONSENT LETTER Page 1 of 2 SELF CONSENT .docx
 
INFORMATIONGOVERNANCEFounded in 1807, John W.docx
INFORMATIONGOVERNANCEFounded in 1807, John W.docxINFORMATIONGOVERNANCEFounded in 1807, John W.docx
INFORMATIONGOVERNANCEFounded in 1807, John W.docx
 
Informative Presentation Delivery OutlineI. HeaderSpeec.docx
Informative Presentation Delivery OutlineI.  HeaderSpeec.docxInformative Presentation Delivery OutlineI.  HeaderSpeec.docx
Informative Presentation Delivery OutlineI. HeaderSpeec.docx
 
Informed Consent FormBy the due date assigned, submit the Inform.docx
Informed Consent FormBy the due date assigned, submit the Inform.docxInformed Consent FormBy the due date assigned, submit the Inform.docx
Informed Consent FormBy the due date assigned, submit the Inform.docx
 
INFORMATION THAT SHOULD GO INTO PROCESS RECORDING FOR MICRO WORK.docx
INFORMATION THAT SHOULD GO INTO PROCESS RECORDING FOR MICRO WORK.docxINFORMATION THAT SHOULD GO INTO PROCESS RECORDING FOR MICRO WORK.docx
INFORMATION THAT SHOULD GO INTO PROCESS RECORDING FOR MICRO WORK.docx
 
Information Technology Capstone ProjectIn this course, learners .docx
Information Technology Capstone ProjectIn this course, learners .docxInformation Technology Capstone ProjectIn this course, learners .docx
Information Technology Capstone ProjectIn this course, learners .docx
 

Recently uploaded

Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
EADTU
 

Recently uploaded (20)

AIM of Education-Teachers Training-2024.ppt
AIM of Education-Teachers Training-2024.pptAIM of Education-Teachers Training-2024.ppt
AIM of Education-Teachers Training-2024.ppt
 
Play hard learn harder: The Serious Business of Play
Play hard learn harder:  The Serious Business of PlayPlay hard learn harder:  The Serious Business of Play
Play hard learn harder: The Serious Business of Play
 
Introduction to TechSoup’s Digital Marketing Services and Use Cases
Introduction to TechSoup’s Digital Marketing  Services and Use CasesIntroduction to TechSoup’s Digital Marketing  Services and Use Cases
Introduction to TechSoup’s Digital Marketing Services and Use Cases
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Simple, Complex, and Compound Sentences Exercises.pdf
Simple, Complex, and Compound Sentences Exercises.pdfSimple, Complex, and Compound Sentences Exercises.pdf
Simple, Complex, and Compound Sentences Exercises.pdf
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Model Attribute _rec_name in the Odoo 17
Model Attribute _rec_name in the Odoo 17Model Attribute _rec_name in the Odoo 17
Model Attribute _rec_name in the Odoo 17
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Including Mental Health Support in Project Delivery, 14 May.pdf
Including Mental Health Support in Project Delivery, 14 May.pdfIncluding Mental Health Support in Project Delivery, 14 May.pdf
Including Mental Health Support in Project Delivery, 14 May.pdf
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
 
How to Add a Tool Tip to a Field in Odoo 17
How to Add a Tool Tip to a Field in Odoo 17How to Add a Tool Tip to a Field in Odoo 17
How to Add a Tool Tip to a Field in Odoo 17
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
dusjagr & nano talk on open tools for agriculture research and learning
dusjagr & nano talk on open tools for agriculture research and learningdusjagr & nano talk on open tools for agriculture research and learning
dusjagr & nano talk on open tools for agriculture research and learning
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
FICTIONAL SALESMAN/SALESMAN SNSW 2024.pdf
FICTIONAL SALESMAN/SALESMAN SNSW 2024.pdfFICTIONAL SALESMAN/SALESMAN SNSW 2024.pdf
FICTIONAL SALESMAN/SALESMAN SNSW 2024.pdf
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Tatlong Kwento ni Lola basyang-1.pdf arts
Tatlong Kwento ni Lola basyang-1.pdf artsTatlong Kwento ni Lola basyang-1.pdf arts
Tatlong Kwento ni Lola basyang-1.pdf arts
 

CSCI 1800 Cybersecurity and International Relations Comp.docx

  • 1. CSCI 1800 Cybersecurity and International Relations Computer Architecture John E. Savage Brown University Overview • Definition of computer • Binary numbers • Very brief history of computer • Architecture of CPU – CPU and RAM – Typical instructions • Simple assembly level program • Assembler and compiler Lect03 3/30/2013 © JE Savage 2
  • 2. The Computer • A computer takes input, produces output, potentially storing data in the process. • Most computers can be configured to perform many tasks, i.e. they are programmable. Lect03 3/30/2013 © JE Savage 3 Very Brief History of Computers • Mechanical computers have existed for millennia. – Abacus • Electronic computers emerged in the 1940s. – Eniac • Embedded computers are used in appliances. – iPod, smart phones • Specialized control hardware less expensive to implement with a general purpose computer Lect03 3/30/2013 © JE Savage 4
  • 3. Binary Numbers • Today computers store data as bits, 0s and 1s. • Addition/subtraction is done with binary numbers. • Here is a mapping of decimal to binary numbers 0 000 = 0*22 + 0*21 + 0*20 1 001 = 0*22 + 0*21 + 1*20 2 010 = 0*22 + 1*21 + 0*20 3 011 = 0*22 + 1*21 + 1*20 4 100 = 1*22 + 0*21 + 0*20 5 101 = 1*22 + 0*21 + 1*20 6 110 = 1*22 + 1*21 + 0*20 7 111 = 1*22 + 1*21 + 1*20 Lect03 3/30/2013 © JE Savage 5 4 = 22, 2 = 21, 1 = 20 Binary Numbers • How can we represent 1019 in binary? – Find the largest power of 2 that is less than 1019 • 20 =1, 21 = 2, 22 = 4, 23 = 8, 24 = 16, 25 = 32, 26 = 64, 27 = 128, 28 = 256, 29 = 512, 210 = 1024 • Answer is 512 = 29 • Subtract 512 from 1019 = 507 – Find largest power of 2 that is less than 507 • Answer 256
  • 4. • Subtract 256 from 507 = 251 – Repeat to obtain 1019 = 512+256+128+64+32+8+2+1 – 101910 = 2 9 +28 +27 +26 +25 +24 +23 +21 +20 = 111110112 Lect03 3/30/2013 © JE Savage 6 Computer Architecture • Computers have central processing units (CPUs) and random access memories (RAMs). • Programs stored in the RAM direct the action of the CPU. • The CPU implements the fetch-execute cycle – Fetch an instruction and execute it. Lect03 3/30/2013 © JE Savage 7 Random Access Memory (RAM) • A word is a collection of bits, typically 32 bits. • RAM is given command (read, write, no-op), input word, and an address. It produces an output word. • read changes out_wrd
  • 5. to word at address addr. • write replaces word at address addr with in_wrd. • no-op makes no changes. Lect03 3/30/2013 © JE Savage 8 Central Processing Unit (CPU) • Fetch-execute cycle: Repeat forever: a) read an instruction from the RAM and b) execute it. • Typical instructions: ADD, SUBTRACT, SHIFT LEFT, MOVE, COMPARE, JUMP, JUMPC (conditional), READ, WRITE • A program is a set of instructions. • A register is a storage location • CPU has registers, e.g. rega , that regb, hold temporary results. – Permanent results stored in the RAM. Lect03 3/30/2013 © JE Savage 9 Architecture of the CPU
  • 6. • The CPU also has a program counter (PC) such as prog_ctr. PC holds location of next CPU instruction. • Normally, instructions are executed from sequential RAM locations (change PC to PC+ 1). – ADD, SUB, SHIFT, COMPARE, MOVE cause PC to increment • But program may jump to remote instruction by changing PC to new address, not from PC to PC+ 1. – JUMP and JUMPC (Jump Conditional) – JUMPC allows program to choose between two different paths. Lect03 3/30/2013 © JE Savage 10 Addition • The instruction ADD A B adds the contents of registers A and B and puts the sum into A. • E.g. Consider addition of 310 = 0112 and 510 = 1012. 011 = 0*22 + 1*21 + 1*20 101 = 1*22 + 0*21 + 1*20 1000 = 1*23 + 0*22 + 0*21 + 0*20 • Subtraction (SUB) implemented by adding a negative number. Lect03 3/30/2013 © JE Savage 11
  • 7. COMPARE and MOVE Instructions • COMPARE A B compares contents of registers A and B and sets CMP = 1 (0) if same (different). • MOVE A B moves the contents of register (or location) A to that of register (or location) B. • SHIFT LEFT A performs left shift of contents of rega SHIFT LEFT 1011 = 0110 SHIFT LEFT 0110 = 1100 • SHIFT LEFT can be used to multiply two numbers. Lect03 3/30/2013 © JE Savage 12 JUMP Instructions • The program counter PC is a CPU register with the address of the next instruction in memory. • Normally the PC is incremented on each step. – That is, the next instruction in memory is executed • The JUMP and JUMPC (conditional) instructions change the contents of the PC. – The CPU jumps to a new point in the program. • JUMP A sets PC to A. • JUMPC A sets PC to A if compare bit CMP is 1.
  • 8. – This command allows for a conditional branch. Lect03 3/30/2013 © JE Savage 13 A Simple Multiplication Algorithm • To multiply integers x and y, set u = 0, z = 0 and then add y to z a total of x times. – E.g. x = 3, y = 2, u = 0, z = 0. COMMAND MEANING COMMENT 1. ADD y z Add y to z (z = 0 initially) 2. SUB x 1 Subtract 1 from x 3. COMPARE x u Compare x to u (u remains at 0) 4. JUMPC 6 If x = 0, jump to instruction 6. 5. JUMP 1 If x ≠ 0, jump to beginning of loop 6. DONE Lect03 3/30/2013 © JE Savage 14 External CPU Connections • READ reads from external input, e.g. keyboard • WRITE writes to external output, e.g. display • These commands require a way to specify which device is connected to the CPU.
  • 9. Lect03 3/30/2013 © JE Savage 15 Assembly Language • CPU instructions are bit sequences. – Most computers operate on 32-bit words, though 64-bit is becoming more common. – Some bits in a word represent an opcode (e.g. MOVE) – Other bits represent addresses and values. • Assembly languages use mnemonics, such as ADD, SHIFT LEFT, MOVE, COMPARE, JUMPC instead of bits. • An assembler is a program that translates assembly language programs into binary CPU instructions. Lect03 3/30/2013 © JE Savage 16 Compilers • High level languages are more expressive than assembly level languages. – Fewer statements, each having more meaning. • Compilers are programs to translate high level languages into machine level languages.
  • 10. Lect03 3/30/2013 © JE Savage 17 Review • Definition of computer • Brief history of computer • Architecture of CPU – CPU and RAM – Typical instructions • Simple assembly level program • Assembler and compiler Lect03 3/30/2013 © JE Savage 18 An Insider’s Guide to the Internet David D. Clark M.I.T. Computer Science and Artificial Intelligence Laboratory Version 2.0 7/25/04 Almost everyone has heard of the Internet. We cruise the web, we watch the valuation of Internet companies on the stock market, and we read the pundits’
  • 11. predictions about what will happen next. But not many people actually understand what it is and how it works. Take away the hype, and the basic operation of the Internet is rather simple. Here, in a few pages, is an overview of how it works inside, and why it works the way it does. Don’t forget—the Internet is not the World Wide Web, or e- mail. The Internet is what is “underneath” them, and makes them all happen. This paper describes what the Internet itself is, and also tells what actually happens, for example, when you click on a link in a Web page. 1 . Introduction to the Internet The Internet is a communications facility designed to connect computers together so that they can exchange digital information. For this purpose, the Internet provides a basic communication service that conveys units of information, called packets, from a source computer attached to the Internet to one or more destination computers attached to the Internet. Additionally, the Internet provides supporting services such as the naming of the attached computers. A number of high- level services or applications have been designed and implemented making use of this basic communication service, including the World Wide Web, Internet e-mail, the Internet "newsgroups", distribution of audio and video information, and file transfer and "login" between distant computers. The design of the Internet is such that new high-level services can be designed and deployed in the future. The Internet differs in important ways from the networks in other communications industries such as
  • 12. telephone, radio or television. In those industries, the communications infrastructure--wires, fibers, transmission towers and so on—has been put in place to serve a specific application. It may seem obvious that the telephone system was designed to carry telephone calls, but the Internet had no such clear purpose. To understand the role of the Internet, consider the personal computer, or PC. The PC was not designed for one application, such as word processing or spreadsheets, but is instead a general-purpose device, specialized to one use or another by the later addition of software. The Internet is a network designed to connect computers together, and shares this same design goal of generality. The Internet is a network designed to support a range of applications, depending on what software is loaded into the attached computers, and what use that software makes of the Internet. Many communication patterns are possible: between pairs of computers, from a server to many clients, or among a group of co-operating computers. The Internet is designed to support all these modes. The Internet is not a specific communication “technology”, such as fiber optics or radio. It makes use of these and other technologies in order to get packets from place to place. It was intentionally designed to allow as many technologies as possible to be exploited as part of the Internet, and to incorporate new technologies as they are invented. In the early days of the Internet, it was deployed using technologies (e.g. telephone circuits) originally designed and installed for other purposes. As the Internet has matured, we see the design of communication technologies such as Ethernet and 802.11 wireless that are tailored specifically to the needs of the Internet—they were designed from the ground up to carry packets.
  • 13. 2 . Separation of function If the Internet is not a specific communications technology, nor for a specific purpose, what is it? Technically, its core is a very simple and minimal specification that describes its basic communication model. Figure 1 provides a framework that is helpful in understanding how the Internet is defined. At the top of the figure, there is a wide range of applications. At the bottom is a wide range of technologies for 1 wide area and local area communications. The design goal of the Internet was to allow this wide range of applications to take advantage of all these technologies. The heart of the Internet is the definition of a very simple service model between the applications and the technologies. The designer of each application does not need to know the details of each technology, but only this basic communication service. The designer of each technology must support this service, but need not know about the individual applications. In this way, the details of the applications and the details of the technologies are separated, so that each can evolve independently. 2 . 1 . The basic communication model of the Internet The basic service model for packet delivery is very simple. It contains two parts: the addresses and the
  • 14. delivery contract. To implement addressing, the Internet has numbers that identify end points, similar to the telephone system, and the sender identifies the destination of a communication using these numbers. The delivery contract specifies what the sender can expect when it hands data over to the Internet for delivery. The original delivery contract of the Internet is that the Internet will do its best to deliver all the data given to it for carriage, but makes no commitment as to data rate, delivery delay, or loss rates. This service is called the best effort delivery model. This very indefinite and non-committal delivery contract has both benefit and risk. The benefit is that almost any underlying technology can implement it. The risk of this vague contract is that applications cannot be successfully built on top of it. However, the demonstrated range of applications that have been deployed over the Internet suggests that it is adequate in practice. As is discussed below, this simple service model does have limits, and it is being extended to deal with new objectives such as real time delivery of audio and video. 2 . 2 . Layering, not integration. The design approach of the Internet is a common one in Computer Science: provide a simplified view of complex technology by hiding that technology underneath an interface that provides an abstraction of the underlying technology. This approach is often called layering. In contrast, networks such as the telephone system are more integrated. In the telephone system, designers of the low level technology, knowing that the purpose is to carry telephone calls, make decisions that optimize that goal in all parts of the system.
  • 15. The Internet is not optimized to any one application; rather the goal is generality, flexibility and evolvability. Innovation can occur at the technology level independent of innovation at the application level, and this is one of the means to insure that the Internet can evolve rapidly enough to keep pace with the rate of innovation in the computer industry. 2 . 3 . Protocols The word protocol is used to refer to the conventions and standards that define how each layer of the Internet operates. The Internet layer discussed above is specified in a document that defines the format of the packet headers, the control messages that can be sent, and so on. This set of definitions is called the Internet Protocol, or IP. Different bodies have created the protocols that specify the different parts of the Internet. The Internet Engineering Task Force, an open working group that has grown up along with the Internet, created the Internet Protocol and the other protocols that define the basic communication service of the Internet. This group also developed the protocols for early applications such as e-mail. Some protocols are defined by academic and industry consortia; for example the protocols that specify the World Wide Web are mostly developed by the World Wide Web Consortium (the W3C) hosted at the Computer Science and Artificial Intelligence laboratory at MIT. These protocols, once developed, are then used as the basis of products that are sold to the various entities involved in the deployment and operation of the Internet. 2
  • 16. 3 . Forwarding data—the Internet layer 3 . 1 . The packet model Data carried across the Internet is organized into packets, which are independent units of data, no more than some specified length (1000 to 2000 bytes is typical), complete with delivery information attached. An application program on a computer that needs to deliver data to another computer invokes software that breaks that data into some number of packets and transmits these packets one at a time into the Internet. (The most common version of the software that does this is called Transmission Control Protocol, or TCP; it is discussed below.) The Internet consists of a series of communication links connected by relay points called routers. Figure 2 illustrates this conceptual representation. As figure 3 illustrates, the communication links that connect routers in the Internet can be of many sorts, as emphasized by the hourglass. They all share the basic function that they can transport a packet from one router to another. At each router, the delivery information in the packet, called the header, is examined, and based on the destination address, a determination is made as to where to send the packet next. This processing and forwarding of packets is the basic communication service of the Internet. Typically, a router is a computer, either general purpose or specially designed for this role, running
  • 17. software and hardware that implements the forwarding functions. A high-performance router used in the interior of the Internet may be a very expensive and sophisticated device, while a router used in a small business or at other points near the edge of the network may be a small unit costing less than a hundred dollars. Whatever the price and performance, all routers perform the same basic communication function of forwarding packets. A reasonable analogy to this process is the handling of mail by the post office or a commercial package handler. Every piece of mail carries a destination address, and proceeds in a series of hops using different technologies (e.g. truck, plane, or letter carrier). After each hop, the address is examined to determine the next hop to take. To emphasize this analogy, the delivery process in the Internet is called datagram delivery. While the post-office analogy is imperfect in a number of ways, it illustrates a number of other features of the Internet: the post office carries out other services to support the customer besides the simple transport of letters, and the transport of letter requires that they sometimes cross jurisdictional boundaries, in particular between countries. 3 . 2 . Details of packet processing. This section discusses in more detail the packet forwarding process introduced in the previous section. The information relevant to packet forwarding by the router is contained in a part of the packet header called the Internet header. Each separate piece of the header is
  • 18. called a field of the header. The important fields in the Internet header are as follows: Source address: the Internet address of the origin of the packet. Destination address: the Internet address of the destination of the packet. Length: the number of bytes in the packet. Fragmentation information: in some cases, a packet must be broken into smaller packets to complete its progress across the Internet. Several fields are concerned with this function, which is not discussed here. Header checksum: an error on the communications link might change the value of one of the bits in the packet, in particular in the Internet header itself. This could alter important information such as the destination address. To detect this, a mathematical computation is performed by the source of the packet to compute a checksum, which is a 16-bit value derived from all the other fields in the header. If any one of the bits in the header is modified, the checksum computation will yield a different value with high probability. Hop count: (technically known as the "time to live" field.) In
  • 19. rare cases, a packet may not proceed directly towards the destination, but may get caught in a loop, where it could travel repeatedly among a series of 3 routers. To detect this situation, the packet carries an integer, which is decremented at each router. If this value is decremented to zero, the packet is discarded. Processing in the router The processing of the packet by each router along the route from source to destination proceeds as follows, each step closely related to the fields discussed above. 1) The packet is received by the router from one of the attached communications links, and stored in the memory of the router until it can be processed. When it is this packet’s turn to be processed, the router proceeds as follows. 2) The router performs the checksum computation, and compares the resulting value with the value placed in the packet by the source. If the two values do not match, the router assumes that some bits in the Internet header of the packet have been damaged, and the packet is discarded. If the checksum is correct, the router proceeds as follows. 3) The router reads the hop count in the packet, and subtracts
  • 20. one from it. If this leads to a result of zero, the packet is discarded. If not, this decremented value is put back in the packet, and the checksum is changed to reflect this altered value. 4) The router reads the destination address from the packet, and consults a table (the forwarding table) to determine on which of the communications links attached to the router the packet should next be sent. The router places the packet on the transmission queue for that link. 5) When the packet reaches the head of the transmission queue, the router transmits the packet across the associated communications link, towards either a next router, or towards the computer that is the final destination of the packet. Processing in the source and destination computers The source and destination computers are also concerned with the fields in the Internet header of the packet, but the operations are a little different. The source computer creates the Internet header in the packet, filling in all the fields with the necessary values. The source must have determined the correct destination address to put in the packet (see the discussion on the Domain Name System, below), and, using rules that have been specified, must select a suitable hop count to put in the packet. The destination computer verifies the values in the header, including the checksum and the source address. It then makes use of an additional field in the Internet header that is not relevant when the router forwards the packet: the next-level protocol field.
  • 21. As discussed above, packets carried across the Internet can be used for a number of purposes, and depending on the intended use, one or another intermediate level protocol will be used to further process the packet. The most common protocol is Transmission Control Protocol, or TCP, discussed below; other examples include User Datagram Protocol, or UDP, and Real Time Protocol, or RTP. Depending on which protocol is being used, the packet must be handed off to one or another piece of software in the destination computer, and the next-level protocol field in the Internet header is used to specify which such software is to be used. Internet control messages When some abnormal situation arises, a router along a path from a sender to a receiver may send a packet with a control message back to the original sender of the packet. This can happen when the hop count goes to zero and the packet is discarded, and in certain other circumstances when an error occurs and a packet is 4 lost. It is not the case that every lost packet generates a control message--the sender is supposed to use an error recovery mechanism such as the one in TCP, discussed below, to deal with lost packets. 3 . 3 . Packet headers and layers.
  • 22. The Internet header is not the only sort of header information in the packet. The information in the packet header is organized into several parts, which correspond to the layers, or protocols, in the Internet design. First comes information that is used by the low-level technology connecting the routers together. The format of this will differ depending on what the technology is: local area network, telephone trunk, satellite link and so on. Next in the packet is the information at the Internet layer we have just discussed. Next comes information related to higher protocol levels in the overall design, as discussed below, and finally the data of interest to the application. 4 . TCP -- intermediate level services in the end-no d e The delivery contract of the Internet is very simple: the best effort service tries its best to deliver all the packets given it by the sender, but makes no guarantees—it may lose packets, duplicate them, deliver them out of order, and delay them unpredictably. Many applications find this service difficult to deal with, because there are so many kinds of errors to detect and correct. For this reason, the Internet protocols include a transport service that runs “on top of” the basic Internet service, a service that tries to detect and correct all these errors, and give the application a much simpler model of network behavior. This transport service is called Transmission Control Protocol, or TCP. TCP offers a service to the application in which a series of bytes given to the TCP at the sending end-node emerge from the TCP software at the receiving end-node in order, exactly once. This service is called a virtual circuit service. The TCP takes the responsibility of breaking the series of bytes into packets, numbering the packets to detect losses and
  • 23. reorderings, retransmitting lost packets until they eventually get through, and delivering the bytes in order to the application. This service is often much easier to utilize than the basic Internet communication service. 4 . 1 . Detailed operation of TCP TCP is a rather more complex protocol than IP. This discussion describes the important functions, but of necessity omits some of the details. Normally, a full chapter or more of a textbook is required to discuss all of TCP. When TCP is in use, the packet carries a TCP header, which has information relevant to the functions of TCP. The TCP header follows the Internet header in the packet, and the higher-level protocol field in the Internet header indicates that the next header in the packet is the TCP header. The fields in the header are discussed in the context of the related function. Loss detection and recovery: Packets may be lost inside the network, because the routing computation has temporarily failed and the packet has been delivered to the wrong destination or routed aimlessly until the hop count is decremented to zero, or because the header has been damaged due to bit errors on a communication link, or because a processing or transmission queue in a router is full, and there is no room to hold the packet within one of the routers. TCP must detect that a packet is lost, and correct this failure. It does so as follows. Conceptually each byte transmitted is assigned a sequence
  • 24. number that identifies it. In practice, since a packet can carry a number of bytes, only the sequence number of the first byte is explicitly carried in the sequence number field of the TCP header. When each packet is received by the destination end node, the TCP software looks at the sequence number, and computes whether the bytes in this packet are the next in order to be delivered. If so, they are passed on. If not the packet is either held for later use, or discarded, at the discretion of the TCP software. The TCP at the destination sends a message back to the TCP at the origin, indicating the highest sequence number that has been received in order. This information is carried in the acknowledgement field in the 5 TCP header in a packet being transmitted back from destination of the data towards the source. If the source does not receive the acknowledgment in reasonable time, it transmits the data again, and this repeats until either some copy of the packet finally makes it to the destination, or the application making use of the TCP terminates the activity and reports an unrecoverable error. Flow and congestion control: The term flow control describes the mechanism that attempts to insure that the sender of data does not transmit faster then the destination can receive. The term congestion control describes the mechanism that attempts to insure that the sender
  • 25. of data does not transmit faster than the routers in the network can process and transmit the packets. A router that receives packets faster than it can transmit them along the next communication link must hold those packets temporarily. A router that is holding a number of packets for transmission is called congested. Congestion control is a critical aspect of the Internet; since any attached end-node can in principle transmit at will, it is possible for more packets to arrive at a router than can be carried across the outgoing communications link. Both flow control and congestion control are implemented in TCP. Packets flowing back from the destination of the data to the source carry, in addition to the acknowledgment field, the flow control field. This field conveys a count of the number of bytes that the sender can send that have not been acknowledged. In other words, at any instant, there are some number of bytes that the sender has transmitted to the destination, but for which the acknowledgment has not yet arrived back. The sender must limit the number of such bytes to the value noted in the flow control field. The assumption behind this mechanism is that the receiver will allocate a holding area, or buffer, large enough to contain this many bytes, and if the receiver falls behind in processing the incoming packets, they can sit in this buffer. If the sender exceeds the flow control limit, the extra packets will usually just be discarded at the receiver. The implementation of congestion control is rather more complex. Apart from the flow control limit passed back from the receiver, the sender maintains another estimate of the suitable sending limit called the "congestion limit". The congestion limit is never allowed to
  • 26. grow larger than the flow control limit from the receiver, but is often smaller. When the sending TCP starts to transmit packets to the receiving TCP, it makes an initial guess as to a suitable congestion limit. The initial guess is small: only one or two packets. It sends only this many packets into the Internet, and then waits for an acknowledgement packet to return from the TCP at the receiver. As long as packets are successfully acknowledged, the congestion limit is adjusted upward, at first rapidly and then more slowly. If an acknowledgment fails to arrive, the sending TCP assumes that some packet was lost because a router along the path was sufficiently congested that it had no further space in its transmission queue, and had to discard it. The sending TCP retransmits the packet, as was discussed above under loss detection and recovery, but additionally adjusts its congestion limit. Depending on the details of the situation, the sending TCP will cut the congestion limit in half or, more drastically, cut it to the small limit it used as its initial guess. Reducing the limit has the approximate result of cutting the average sending rate similarly, so the final consequence of this whole mechanism is that the rate at which the sending TCP transmits packets moves up and down in an attempt to find a rate that does not congest any router. Error detection: a transmission error on a data link can damage a bit in a packet. The Internet protocol specifies a checksum function that is used to detect if a bit in the Internet header is altered, but this only applies to that header. TCP employs a similar checksum function to validate the TCP header as well as all the data bytes that follow it in the packet. The sending TCP computes the checksum and stores it in the
  • 27. packet; the receiving TCP recomputes it and compares this value with the one in the packet, discarding the packet if the two are different. A packet thus discarded is later retransmitted because of the loss detection and recovery mechanism discussed above. Reliable open and close: The Internet service was described as a datagram service. At that level, the sender transmits a packet to a destination address, and need not know whether that destination is prepared to receive it, or indeed whether it even exists. Most high-level services need to know that the receiver is there and functioning. For this reason, before data is exchanged, the TCP software at the two ends of the communication exchange a sequence of packets with each other (containing no data but just TCP headers with specific values in certain fields) to insure each end that the other is there. This is called "making a connection". Similarly, when each end is done sending data, the TCP notifies the TCP at the other end that this is so. When both ends are done sending data, and all such data has been acknowledged back to its 6 5 sender, then the TCPs "close the connection" by a final exchange of packets and a delay to insure that all is well. TCP can carry data in two directions at once. Each end can send
  • 28. and receive at the same time, with separate flow and congestion limits in each direction. Packets carrying data in one direction can at the same time acknowledge data flowing in the other direction. Overall, the resulting behavior of TCP is as follows. When some software at the sending end gives TCP a sequence of bytes to transfer to the receiver, the sending TCP opens a connection and starts to break these bytes into packets, attaching a TCP header to each and then handing them on to the Internet software for formatting and forwarding as described in section 3. TCP continues to transmit these packets so long as acknowledgments arrive. Based on the pattern of acknowledgments and losses, it may retransmit packets, and send at a faster or slower rate. If the flow control limit from the receiver goes to zero, it will temporarily suspend transmission. It will continue this process so long as there is further data to send. Data may or may not flow in both directions, based on the nature of the application. 4 . 2 . Other intermediate protocols TCP is the most commonly used protocol to enhance the basic communication service of the Internet, but it is not the only one. In some cases, the high-level application works best if it is built directly on the basic IP communication service. In this case, a simple interface to that service is used, called the User Datagram Protocol, or UDP. For real time services that are concerned more with delivery within a delay bound rather than completely reliable delivery, an alternative to TCP has been developed and standardized, called Real Time Protocol, or RTP. RTP carries timing information in the header, but does not
  • 29. implement retransmission to deal with lost packets. RTP is now being deployed as part of some audio and video applications on the Internet. Layers and modularity—more about the organization of the Internet Figure 4 provides a different visualization of the layering in the Internet. It shows the different software modules that implement the different layers, and illustrates the difference between a router and an end-node. A router has software specific to all of the lower level communications technologies in use (in the jargon of the trade, "device drivers" or "link-level software"). Above these elements, it has the Internet forwarding software that looks at the Internet level header and decides how to send the packet onward. The end-node must also have some link-level software and some software at the Internet level, but here the function is not forwarding but origination and termination. Above that is found TCP software (in those cases where the application needs it), and then the application software itself. 5 . 1 . The end to end arguments In terms of division of responsibility, the router, which implements the relay point between two communication links, has a very different role than the computer or end-node attached to the Internet. In the Internet design, the router is only concerned with forwarding the packets along the next hop towards the destination. The end-node has a more complex set of responsibilities related to providing service to the application. In particular, the end-node provides additional services such as TCP that make it easier for the
  • 30. application (such as the World Wide Web) to make use of the basic packet transfer service of the Internet. TCP is implemented in the end-nodes, but not in the packet forwarding software of the routers. The routers look only at the Internet information, such as the delivery addresses, when forwarding packets. Only the end-nodes look at the TCP information in the packets. This is consistent with the design goals of the Internet, and is a very important example of layered design. While TCP provides a very simple service that most high-level applications find easy to use, some applications cannot make use of TCP. TCP always delivers data in order, and insists on retransmitting lost packets until they get through. This can, on occasion, cause delays of several round trips while losses are recovered. For applications such as real time Internet telephony, these occasional delays disrupt the communication flow much more than a 7 short "glitch" in the data stream due to a missing packet. So most but not all high-level services use TCP. If TCP were implemented in the routers, it would be much harder for the high-level service to bypass it and use some other sort of transport service. So the design principle of the Internet has been to push functions out of the network to the extent possible, and implement them only in the end-node. By doing so, the high-level service can easily modify them or replace them by adding new software to the end-node. This is another means by which the Internet can evolve rapidly.
  • 31. For a broad base of high-level services, installing new services can be done without any need to modify the routers. The above example illustrates a set of general design principles called the end to end arguments. The design approach of the Internet moves functions out of the network and onto the end-nodes where possible, so that those functions can be modified or replaced without changing the routers. Any set of users who invent a new application can run that application by installing the code for it on their end-nodes. Were it necessary to modify routers, or other network elements not under the control of the individual user, change would not be as rapid, and would be under the control of the network operator, not the user. This principle has many implications. One example is security. The Internet header is distinct from the TCP and higher level headers in the packet. Those parts of the packet only concerned with end-node functions can be encrypted before they are forwarded across the Internet without fear that this will disrupt the forwarding processing in the routers. Using end to end encryption, the end-node can thus take responsibility for insuring the integrity and privacy of its own data. 5 . 2 . Routing and forwarding -- functions specific to routers There are also functions that are implemented in the routers, but not the end-nodes. The router must make a decision as to how to forward each packet as it arrives. In order to do this, it must have forwarding tables that specify, for each destination address, what the preferred path is onward towards that point. The routers
  • 32. compute the best routes to all the addresses in the network, in order to construct this table. This requires that all the routers send messages to other routers describing what links in the Internet are currently in operation, and what routers these links connect. This results in a collective decision-making, the routing computation, to select the best overall routes. Routers perform this task in the background, at the same time that they forward packets. If a low-level communications link fails or a new one is installed, this routing computation will construct new routes as appropriate. This adaptation is part of making the Internet robust in the face of failure. End-nodes do not participate in the routing computation. They know only the identity of the router or routers closest to them, and send the packets to this first router. This division of responsibility makes it possible to replace the routing computation (which has happened several times in the life of the Internet) without having to change the software in the end-nodes, an almost impossible task if it had to be done in a co-ordinated way for all the millions of end-nodes on the Internet. 6 . The Domain Name System There are a few Internet services on which the end-nodes depend, in addition to the basic packet forwarding performed by the routers. The most important of these is the Domain Name System. Packets carry source and destination addresses, but users do not use addresses of this form when they invoke services. Applications tend to use names that are a little more "user-friendly", composed of
  • 33. characters rather than integers. For example, the mail system uses names like "[email protected]", where "ddc" is a user name, and "lcs.mit.edu" is (more or less) the name of the mail server for that user. Before mail can be sent, the software on the sending end-node must first translate the string "lcs.mit.edu" into an Internet address, so it can format the packets. In order to do this, it first sends a few packets to a service called the Domain Name System, or DNS, asking that this translation be done. This step is normally hidden from the user, unless it fails and an obscure error message results. But every time a piece of e-mail is sent, or a browser fetches a Web page, a name in character format is first translated into an Internet address. 8 The DNS names are organized in a hierarchy. For example, the name “lcs.mit.edu” is organized as follows. Starting from the right, the “highest” part of the name is “edu”. That name is associated with educational institutions. There are other common “top level domain” names, or TLDs: the name “com” is associated with businesses, “gov” with the US government, and the standard two-letter country abbreviations can be used to identify countries. Within the “edu” domain, the name “mit” is associated with the Massachusetts Institute of Technology. Within “mit”, the name “lcs” is a machine at the Laboratory for Computer Science. (Some people believe the names would make more sense the other way around, with the “edu”
  • 34. first, but it is too late to switch now). The mechanics of translating a DNS name into an Internet address is achieved using DNS name servers, which are simply computers located throughout the Internet that are programmed for this purpose. The servers are organized into a hierarchy that matches the hierarchy of the names. There are a set of servers called the “root servers” that are prepared to receive a request to translate the top level names. Given the name “edu”, they return the Internet address of a server that knows about names inside the “edu” domain. A query to that server with the name “mit” returns the Internet address of a server that knows names inside MIT. Next, a query to that server with the name “lcs” returns the Internet address of a machine inside LCS. In the case of LCS, that machine is prepared to receive mail for [email protected], and the translation of a name into an address is done. There is only one further step to make this all work right. All end-nodes, in order to translate a name to an address, must be able to find a root server to start the process. But this fact is easy to get. Any DNS server anywhere in the Internet knows the Internet address of a root server. So if the end-node can find any DNS server, it can then find the root, and start the search down the hierarchy. So how can an end-node find any DNS server? When a host is first configured to operate on the Internet, there are a few facts that have to be supplied. Either the user must type them in manually, or they are downloaded by a special trick into the host over its network interface before it starts sending real Internet packets. The host must know its own Internet address, the address of a nearby router (so that it can send packets out into the Internet) and the
  • 35. address of a nearby DNS server. Those are the facts that have to be supplied when a new machine is attached to the Internet for the first time. Normally, with these three pieces of information, the software on the end-node can send packets to figure out everything else that it needs to know. 7 . The design of high level services The Internet itself, as an entity built of links and routers, is concerned with the delivery of packets. Applications such as the World Wide Web exist at a higher level. While to the consumer applications may be viewed as a part of the Internet, technically they run "on top of" the basic communication service of the Internet, specifically on top of TCP. 7 . 1 . The World Wide Web as an example A case study of a World Wide Web interaction illustrates some of the complexity of the overall design. A Web server (an end-node attached to the Internet) stores "Web pages", and makes them available for retrieval on request. The pages have names, called URLs (Universal Resource Locators). These names, which have a rather ugly form, have become quite familiar over the few years; an example would be "http://www.ana.lcs.mit.edu/papers/this-document.html". These names are advertised so that potential readers can discover them; they also form the basis of cross- references or " links" from one Web page to another; when a user positions the mouse over a link and "clicks" it, the matching URL is used to move to the associated page.
  • 36. When a user wants to retrieve a web page, the software must first consult the Domain Name System (discussed above) to translate the string (for example) "www.ana.lcs.mit.edu" into an Internet address, which will be the Web server storing the page "papers/this- document.html”. The software at the user's computer (the so-called "browser") then opens a TCP connection to the server machine, and sends a retrieval request that contains, among other things, the string "papers/this-document.html". There is a protocol called HyperText Transfer Protocol, or HTTP, that provides the rules and format for messages requesting a Web page. The server, on receiving the HTTP request with the name "papers/this- document.html", finds the matching file on its disk, and passes that file through the software that 9 implements HTTP and down to the software that implements TCP. The TCP software breaks the file into packets, as described above, and sends these packets across the Internet. These packets are then re- assembled at the receiving end-node, and the resulting file is handed to the browser software for processing. This somewhat complex story illustrates the layered nature of the Internet design. The transfer of a Web page involves actions at several different layers at the same time: IP: At the Internet level, packets are received and transmitted when a Web page is requested. At this layer,
  • 37. the only relevant factors are the Internet addresses in the packets. TCP: The TCP software takes a unit of data (a file, a request for a Web page or whatever) and moves it across the Internet as a series of packets. It does not examine these bytes to determine their "meaning"; in fact, the bytes might be encrypted. HTTP: HTTP makes use of TCP to move requests and replies. In contrast to TCP, it looks at the contents of requests, understands the format and "meaning" of these requests, and thus retrieves the correct Web page. It then transfers the Web page in question. However, it does not know the format or "meaning" of the page itself. The page could be a traditional Web page, an image, music, and so on. The HTTP standard does not define how pages are represented. The HTTP standard only specifies how the format of the page is indicated, so that HTTP can find the right interpreter for the page. HTML: the most common representation of a Web page is HTML, which stands for HyperText Markup Language. A Web page, as stored on the server, is not the literal representation of what the user sees on the screen of the browser. Rather, a Web page is a series of instructions as to how that image on the screen is to be constructed. These instructions include text and images, information about relative location, size, and font, the specification of links to other pages, layout information about background, colors, and so on. Depending on the size (for example) of the screen of the browser, these instructions will cause the page to be presented in somewhat different ways. HTML is the "language" in which Web pages are specified.
  • 38. All browsers include software that understands HTML, so that arriving Web pages can be interpreted and displayed on the screen. HTML is not the only page format. Images, for example, are encoded in a number of different ways, indicated by the name of the standard: GIF, JPEG etc. These are alternative formats that can be found inside a Web page. Any format is acceptable, so long as the browser includes software that knows how to interpret it. Reprogramming the browser: There are means to modify the behavior of the browser as it is being used. One that has received a lot of publicity recently is JAVA. JAVA is a programming language that is used (among other purposes) as part of the Web. JAVA provides a means to transfer new software from a server to a browser that can interpret Web pages. JAVA eliminates the need for pre-agreement as to the format of a Web page. The creator of a page can invent a new format if it suits his need, and transfer the interpreter to the browser just before transferring the page itself. This innovation is intended to provide greater creative freedom to the designer of the Web page. It has the implication that HTTP cannot know, in all cases, the format and "meaning" of the bytes being transferred across the Internet, because the "meaning" may not be defined in any standards document, but only by the "behavior" of the matching JAVA code. If running the JAVA code has the consequence that the receiving bytes are converted and played through the audio system of the computer, then it is possible to presume that the "meaning" of the bytes was to be "sounds", but this is not knowable by any of the other layers of the software: HTTP, TCP and so on. This flexibility is
  • 39. part of what allows the Internet to evolve to support new sorts of applications. 7 . 2 . Delivery modes: Unicast, multicast and streaming The preceding discussion of Web retrieval illustrates one possible pattern of data delivery. The designers of the Web categorize this as "unicast pull" mode: "pull" because the user initiates the request for the page, or "pulls" it at the time it is desired, and "unicast" because the packets crossing the network go to only one recipient. There are other alternatives. 10 Multicast The term "multicast" is used to describe a pattern of packet distribution in which several destinations receive copies of the packets coming from a source. Multicast is an Internet-level service, implemented in the routers. It is intended to be more efficient than unicast for a number of cases. One example is multi- way teleconferencing, where multicasting is used to implement the equivalent of a conference call. Another example is the delivery of audio and video to multiple recipients. What the radio and television industry would call "broadcast" fits into this model. The Internet design community reserves the word "broadcast" for a circumstance in which a packet is delivered to all end-nodes within some scope. Broadcast is used across local area networks to transmit low
  • 40. level control information, but broadcast to all the millions of end-nodes on the Internet is not a useful concept. It would lead to uncontrolled overload, jamming of end-node, and collapse of the Internet. Wide- area replication of packets only makes sense if receivers have expressed interest in getting the packets. This concept of sending to a group of receivers who have requested the packets (a so-called "multicast group") is important enough that the term "multicast" was coined to capture it. Joining a multicast group is similar to tuning a radio to a particular station, except that on the Internet, an end-node can receive from multiple multicast groups at once. Streaming The basic communication service of the Internet today is the simple "best effort" service that makes no assurance about transmission rate or loss rates. For some emerging uses that involve the transmission of audio and video in real time, this service is insufficient. The term real time describes the circumstance in which data is being transferred across the network within a bounded delay, and "played back" or presented to the user as it is being transferred. Audio and video streams have a specific data-rate requirement, and unless the Internet can offer some assurance that it can sustain that rate from sender to receiver, the audio or video stream cannot be delivered. Using TCP, the sender would slow down if congestion were to occur, which would disrupt the real time delivery of the data. (Note that just because the data is audio or video, it does not necessarily follow that the data need be transmitted in "real time". The data can be transferred "in bulk" and stored on a disk at the receiver, to be "played back" from the disk once it has been received
  • 41. correctly. In this case, TCP could be used to move the data across the Internet.) The forwarding of real time packets is sometimes called streaming. The Internet is now being augmented to support real time service as well as best effort service as part of the basic communication service in the router. 7 . 3 . Enhancing the Web The Web, as described, is strictly a transfer between two end- nodes: a server and a client. There are approaches to augment this simple model for a number of reasons. One approach is the so-called "Web proxy". This is illustrated in figures 5 and 6. The concept here is that a Web user will redirect all his Web retrieval requests to a "Web proxy server", also called a "Web cache server". This server keeps a copy of any page recently retrieved by a customer, so that if a second customer asks for the same page, this request can be satisfied from the local copy on the cache. This improves the service seen by the customer, since the page returns (hopefully) sooner. It also helps the Internet Access provider (IAP) supporting the customer, because the wide area capacity that the IAP purchases from an ISP is not used up moving the same file more than once. In some cases, the IAP may interpose a Web proxy in the path from the user to the Internet, so that the user does not even know that his requests are being redirected to the proxy. The consequence of a proxy server is that the IAP serving the consumer will intercept the request for the
  • 42. Web page and originate the transmission of the page back to the consumer, using the locally remembered copy. Many providers of Web pages want the queries to come to their own server, so they can insert advertising, gather information on the user, and so on. For this reason, many Web pages are marked as “non-cacheable”, which means that the proxy is not supposed to keep a copy, but to retrieve the page from the original source each time it is requested. 11 A related activity is the creation of servers that store long-term copies of popular Web sites as a service for the provider of the page. These servers are sometimes called "mirror" servers, since they provide an identical copy of what is stored on the master server. The intention here is similar: to reduce the delay of retrieving the page by having a copy of it located close to the consumer. In this case, the page is stored there because of a contract between the provider of the page and the operator of the Web storage server. The Web cache and the Web mirror illustrate that there are multiple reasons to put Web servers at points "inside" the network -- it can be a case of performance improvement and a business opportunity, perhaps at the same time. 7 . 4 . E-mail The description of the Internet given above was of high level transfers between two end-nodes, with the
  • 43. Internet itself providing only simple packet forwarding. Not all applications work this way. An important example is electronic mail, or e-mail. Since many users are not connected full time, if mail was transferred in one step from origin to destination, the transfer could only be successful during those occasional periods when both parties just happened to be connected at the same time. To avoid this problem, almost all mail recipients make use of a server (called a mail server or a "POP server") to receive their mail and hold it until they connect. They then collect all their mail from their server. The concept is that the mail server is always attached and available, so anyone can send mail to it at any time, and the receiver can retrieve mail from it at any time. This eliminates the necessity for the sender and the receiver to be attached at the same time. Most mail is actually transferred in three steps, from sending end-node to the mail server serving that sender, then to the mail server serving the recipient, and then to the final end-node. This is illustrated in figure 7. 7 . 5 . Different applications are different Different high-level services have different designs. The pattern of mail distribution does not resemble the pattern of Web page retrieval. As new services are invented, there will be new patterns of distribution and storage. For example, some emerging proposals for the distribution of "TV" programming across the Internet contemplate a two-stage pattern in which the first part is non-real time reliable (e.g. TCP) pushing of the content out to "TV caches", and the second part is a real- time "pull" of the information based on a streaming protocol. The proposal is such that the cache can be located at any point in the system, from the
  • 44. ISP or IAP to the disk on an end-node of the user. 8 . Why is the Internet the way it is? The previous discussion is rather mechanical—it describes how the Internet works, but not why it works that way. The why is as important as the how. Here is a short analysis of a few of the important design features of the Internet. 8 . 1 The why of packets Packets are not the only way to organize a network. The telephone system works differently—at the beginning of a telephone call some transport capacity is dedicated to that call, enough to carry the voice information, and these resources are dedicated for the duration of the call. This is called a circuit network, in contrast to a packet network. One advantage of packets is that no transport capacity is used unless there is data to send. In a circuit network, capacity is reserved for the circuit even if the end points have nothing to send at the moment. Many computer applications are bursty: they send their data in bursts separated by quiet periods. For example, when a user is cruising the Web, the transfer of each page is a burst of data, and nothing is sent while the user looks at the page and decides what to do next. With packets, the bursts of data for lots of users can be interleaved, which leads to more efficient use of the transport capacity. 12
  • 45. Since packets can accommodate a range of data communication patterns, they can better accommodate the new application with a different pattern. So packets are part of the objective of designing for change, and supporting the unknown application yet to come. 8 . 2 The why of end-to-end We discussed above one of the central design tenets of the Internet, the end to end argument. This line of reasoning says that if some function (e.g. application-level processing) can be implemented at the edge of the network, in an end-node, rather than in the routers in the network, edge placement is preferable. The benefit of this approach is that the network itself remains simpler and not constrained to only certain applications. While this may mean that any specific application is less efficient, it improves the chance that a new application can be added to the network without needing to modify the routers. So again, this is a tradeoff in which the ability to evolve is preferred over the optimization of the applications of today. 8 . 3 The why of stateless design In the Internet, there is no concept of a “call”. Unlike the telephone system, where there is a “setup phase” at the beginning of a call where resources are reserved for that call along the path from source to destination, there are no reservations in the Internet. The router forwards each packet as it gets it, but does not have any advance knowledge that the packet is coming, or any log that it came. We call this a stateless design, since in the language of Computer Science, such stored
  • 46. information is often called state. (For a system to be in on or another state, there must be some information to distinguish the various states. If there is no stored information, there are no distinct states.) The advantage of the stateless design is, again, simplicity. If there was a setup phase before sending a bunch of packets, the router could establish some state information for the packets, perhaps precomputing the forwarding decision or reserving some resources. This might be more efficient in specific cases, but also more constraining and more complex. For example, if state describing a flow of packets is set up along a path from source to destination, and then some link in the path fails, the state information in some of the routers would have to be removed, and state would have to be installed in some new routers. This is actually quite hard to do in a reliable and quick way. The design of the Internet went for simplicity. 8 . 4 The why of loose specification. The Internet makes few commitments to the user about the quality or consistency of service. The best effort service commitment is that the Internet will do the best it can, but there is no specification of how good that is. The network may lose packets, deliver them out of order, delay them, and so on if conditions require. Why is this a good idea? This approach puts an extra burden on the application designer, who must design the application to cope with these variations. But tolerating these variations has a benefit. A wide range of technologies can be put to use to carry Internet packets—fast and slow, reliable and lossy, and so on. If the Internet specified a more constrained and pre- determined level of service, then some of
  • 47. these technologies might be excluded all together, which would mean that there would be situations where the Internet was not available at all. The view of the designers is that “poor” service is better than no service at all, and that the application and the user (the human) should determine what is “too poor”, not a Internet-wide specification. 8 . 5 A preference for flexibility and change. There is a common theme through much of the above discussion. The Internet designers, when making design choices, preferred to optimize for change, not to optimize any single application. The telephone network is optimized for telephone calls. The Internet is optimized to adapt to the application that might happen tomorrow. 13 9 . Conclusions -- implications 9 . 1 . Implications of the layered structure Because of the layered structure of the Internet design, the different sorts of service providers cannot always see the parts of the information that is not relevant to them. The ISP cannot always see the higher level information in the packets (for example, it may be encrypted.) The higher-level service provider (a Web server, for example) cannot see the routing information in the routers, and cannot determine what the topology and capacity of the Internet is. These limitations have
  • 48. policy implications—for example it is difficult for the IAPs to control access to objectionable material over the Internet, or to meter the delivery of content for which fees must be paid. 9 . 2 . Content can have multiple representations. In a digital system, a piece of material of one "type", e.g. a piece of music, can be stored and transmitted in multiple representations. Different encodings can be used to achieve different fidelity, different tolerance for bit errors, and different transmission efficiency ("compressed" representations must be "expanded" before being used, so they require more processing power but less transmission capacity.) 9 . 3 . Delivery modes are not tied to type of content. The way in which material is encoded or represented in digital format is not linked in any way to the mode of transport across the Internet. A given file can be (at the Internet level) unicast or multicast, and can be (at the end-to-end transport level) delivered reliably by TCP or in real time. 9 . 4 . Many controls cannot be implemented “in” the net Higher level concerns such as limiting the access to objectionable material or preservation of intellectual property rights have often been implemented in the end-node. This follows from several considerations. First, the Internet level mechanisms, the routers, and thus the ISPs, cannot always tell what is being transported at the higher levels, since it may be in an unknown representation or encrypted. Second, new applications can come into operation quickly, and the ISPs will
  • 49. not necessarily know what the nature of that application is. The end-node is where that application runs, and thus the end node is a natural locus of control. 9 . 5 . The Internet evolves rapidly As has been illustrated above by several examples, the Internet is designed to evolve rapidly. The goal is to support new high-level services without requiring changes to the routers, to allow individual end-nodes to install and operate new software without negotiation without other parties, and to change the routers as necessary when there are new service demands. As much of the router as possible is usually implemented in software, so that it can be changed without a hardware upgrade. The modes in which the Internet operates today are not necessarily what we will see in a small number of years. New applications, new delivery modes, new Internet level services, and new data representations can all be anticipated. We can also anticipate new billing and cost- allocation mechanisms. Glossary Address (Internet): Packets crossing the Internet carry a destination address to indicate where the packet is going, and a source address to indicate where it is coming from. Current Internet addresses are 4 bytes (32 bits) long. (See the definition of bit.) They are by custom written down by taking each byte of the address, and writing it as an integer in the range of 0 to 255, separated by periods (or, in the terminology
  • 50. 14 of the field, dots). Thus, an Internet address might be written as 18.26.0.120. There is a proposal for a new generation of Internet packet header, called IPv6, with much larger addresses. This expansion may be necessary to deal with all the computers that will be connected to the Internet over the next decade. Application: a user-visible high-level service. Applications are normally implemented as software that runs on end-nodes attached to the Internet. Bit: the smallest unit of information stored and transmitted in a computer system. A bit can take on only one of two values, normally expressed as 0 or 1. A number of bits can be used in sequence to store an integer, a character, and so on. For example, in eight successive bits (called a byte) a total of 256 different patterns of 0's and 1's can occur. So a byte could be used to store an integer in the range of 0 to 255, or one of 256 characters. Since there are less than 256 characters in normal English text, including lower and upper case letters, punctuation and numbers, it is traditional to store a text document in a computer by organizing the memory of the computer into bytes, and putting one character in each successive byte. Byte: see bit.
  • 51. Checksum: a mathematical computation performed on data (a sequence of bytes) to yield a small numerical value. The outcome of this computation depends on all the data, so changing any one bit of the data will change the computed value. The checksum can thus be used to detect if any part of a message has been damaged as it is transmitted across the network. Congestion: the condition where a router has received more packets than the outgoing link can carry away, so that the memory of the router is forced to store these packets until the condition passes. If the congestion persists, the router may have to discard some of the stored packets. Datagram: a term used to describe a packet in one particular sort of network, in which the routers in the network make a separate forwarding decision for each packet as it is received. The alternative would be to require that the sender notify the network before sending a stream of packets, so that the network could pre- compute how all of these packets are to be processed. Encryption: the act of disguising data before sending it across the network, so that it is meaningless to anyone who does not have the means (the encryption key) to reverse the encryption process. End-node: a computer or other device that is attached to the Internet for the purpose of transmitting and receiving packets and participating in the high-level services of
  • 52. the Internet. A personal computer (PC) is an example of an end-node, as is a Web server. Field: term used to describe each separate part of a packet header, such as a destination address. A field will typically be some specified number of bytes in length. Header: control information such as a destination address that is placed at the beginning of a packet to permits its proper processing by the various protocols that deal with it. Interface: a term used in Computer Science to describe what parts of a facility or system are externally visible. The usual goal is to make a complex system easy to understand and use by creating a simple interface to that system. A well-designed interface will preserve most of the useful features of the system while hiding the irrelevant ones. Multicast: the process by which a packet sent from a source is delivered to multiple recipients. The routers implement this process by forwarding the incoming packet along multiple outgoing links as appropriate to fan out to all the intended destinations. Protocol: the term used to describe the various technical specifications of the Internet. A protocol is a specification of permitted behavior by the various components of the Internet such that the resulting overall operation of the network is correct, and the participants can
  • 53. accomplish their intent. 15 Packet: a unit of information, typically no more than 1000 to 2000 bytes, with a series of headers at the front, that is transmitted across the Internet from a source to one or more destination. Queue: a part of the memory of a computer (for example a router) where packets can be held until they can be processed or transmitted. Packets are held in a queue if they cannot be sent at once due to congestion. Router: the physical device (typically a computer with special software) that connects communication links together to form the Internet, and forwards packets from one link to the next. 16 Internet email m'cast TV
  • 54. e- comm LAN telco TCP, UDP, RTP, etc. Protocol WWW tele- conf phone audio links cable radio modem Routers are concerned with functions below this line. Figure 1: The "hour-glass" model of the Internet An illustration of the organization of the Internet protocols. There are a number of high-level services shown at the top, which are to be implemented using the various network technologies at the bottom. The Internet protocol, illustrated at the narrow point in the figure, specifies a set of basic communication services. The high level services make use of this basic service, and the network technologies support this service. By this specification, the details of each part are
  • 55. hidden from the other. ISP A R R R R R R R R R R R R R R RR IAP 1
  • 56. IAP 2 ISP B IAP 3 IAP 4 IAP 5 Figure 2: The Internet as a mesh of links and routers An illustration showing that the Internet is composed of links connected by routers. The links are shown here conceptually as point-to-point connections such as a line provided by a telephone company. Different parts of the Internet are operated by different entities: Internet Service Providers (ISPs) and Internet Access Providers (IAPs), which provide connections to the end-node computers that attach to the Internet. Although not illustrated here, other entities such as institutional users can also operate parts of the Internet IAPs attach to ISPs to carry their traffic. IAPs can attach to more than one ISP, and ISPs can interconnect in more that one point. Traffic between 2 IAPs (e.g. IAP 1 and 3) may have to cross more than one ISP. H
  • 57. R An end node or host An IP router R LAN H H H H LAN H S Switch H S R R R S H H S ATM network H H POTS R Head end network
  • 58. facility C Cable network H H H H Figure 3: The Internet is built out of different sorts of communication technology An illustration of several different sorts of networks connected by routers. The networks include a local area network (LAN), a switched network based on the ATM technology, a dialup access network and a cable television distribution facility. Internet end-node Ethernet Ethernet Ethernet S/W T1 H/W routing etc
  • 59. S/W Hi level servi S/W H/W H/W IP forwarding PPP S/W T1 S/W SNMP Ethernet IP end-node TCP, UDP, etc. gh ces, supporting Internet router Internet router T1 H/W routi etc IP forwarding PPP S/W
  • 60. T1 S/W SNMP ng Modem S/W PPP S/W Ethernet link T1 link Figure 4: Implementing the protocol layers of the Internet Illustration of the hardware and software modules found in end- nodes and routers. The illustrated end-node is attached to an Ethernet Local Area Network, and has software to operate this Ethernet. The IP (Internet Protocol) software uses this Ethernet software to transmit and receive packets across the LAN. The intermediate protocol software (TCP, UDP, etc.) uses the IP software to send packets. The high level service software uses the intermediate software. Inside the router, there is no high-level software, and no intermediate protocol software to support it. Depending on which networks are connected to the routers (Ethernet, T1 links and modems are illustrated here) there is matching software. The IP forwarding software uses that network-specific software to receive and transmit packets.
  • 61. There is also routing software to perform the routing computation, SNMP (Simple Network Management Protocol) to allow human operators to control the router, and so on. Web Server Web Proxy IAP 1 ISP 2 IAP 4 ISP 3 DISK DISK User 1 User 2 Transfer C Request B Request A Figure 5: Retrieval of a Web page from a server via a proxy This figure illustrates the transfer of a Web page from a Web server to a user (User 1) making use of a Web proxy operated by the IAP that serves the user (IAP 4). If there were no Web proxy in place, the request would go directly from the user to the Web server, and
  • 62. the Web page would be transmitted back directly to the user. Using the Web proxy, User 1 requests the page from the proxy (Request A). In this case, the page is assumed not to be on the proxy, so it is requested from the original server by the proxy (Request B). The required page is transmitted back to the proxy, where it is stored on disk, and also sent on to User 1. Figure 6 illustrates the case when User 2 subsequently requests the same Web page. Web Web IAP 1 ISP 2 IAP 4 ISP 3 DISK Server DISK Proxy User 1 User 2 Request A Transfer B Figure 6: Retrieval of a Web page located on a proxy server
  • 63. This figure illustrates the case of a Web retrieval in which the needed page is located on the proxy, because some user has previously requested it. In this case, User 2 requests a page from the proxy, and since a copy of the page is currently stored on the proxy, no transfer occurs from the server, but the page is transferred from the proxy to the user. Mail Server B DISK A DISK IAP 1 ISP 2 IAP 4 ISP 3 Mail Server User 1 User 2 Transfer C Transfer B Transfer A Figure 7: Typical pattern of mail transmission
  • 64. This figure issustrates the typical sequence of transmission that constitute the sending of mail. In principle, User 1 could transfer the mail directly to User 2. In practice, the users will take advantage of mail servers that are operated by their respective IAPs, IAP 1 and IAP 4. The mail is transmitted to Mail Server A, after which User 1 can disconnect from the Internet. Server A will attempt to transmit the mail to server B. When this succeeds, the mail will be stored in Mail server B until User 2 connects to the Internet and requests it. In response to this request, server B will transmit the mail to User 2. In this sequence, the transfers A and B are initiated by the sender, while transfer C is initiated by the receiver. Interested in learning more about security? SANS Institute InfoSec Reading Room This paper is from the SANS Institute Reading Room site. Reposting is not permitted without express written permission. The Legal System and Ethics in Information Security Security plays a big part in today's world of computers, e- commerce and the Internet. Technology however, has brought with it, the evils of crime. We thus need laws to protect
  • 65. those who maybe exposed to these new threats. In this paper, I will discuss the issues faced by the legal system in keeping up with the fast paced development of technology, the ways in which the current laws can help, and I will also enumerate a few of the laws that have been developed specifically to address computer crime in the United States.... Copyright SANS Institute Author Retains Full Rights A D http://www.sans.org/info/36923 http://www.sans.org/info/36909 http://www.sans.org/info/36914 http://www.sans.org/reading_room/images/click.php?id=528 © S A N S In st itu te 2 00
  • 66. 2, A ut ho r re ta in s f ul l r ig ht s. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46
  • 67. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46 © SANS Institute 2002, As part of the Information Security Reading Room. Author retains full rights.
  • 68. The Legal System and Ethics in Information Security SANS Security Essentials GSEC Practical Assignment Version 1.4, Option 1 Amit Raju Philip 15 July 2002. Abstract: Security plays a big part in today’s world of computers, e- commerce and the Internet. Technology however, has brought with it, the evils of crime. We thus need laws to protect those who maybe exposed to these new threats. In this paper, I will discuss the issues faced by the legal system in keeping up with the fast paced development of technology, the ways in which the
  • 69. current laws can help, and I will also enumerate a few of the laws that have been developed specifically to address computer crime in the United States. Finally, the paper describes the role that ethics have to play in the world of computer security, and how they must be developed hand in hand with laws and statutes to govern the rights and wrongs of the computer world. © S A N S In st itu te
  • 71. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46 Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46
  • 72. © SANS Institute 2002, As part of the Information Security Reading Room. Author retains full rights. Table of Contents 1 Introduction ............................................................................................... ..............3 2 Security and the Law ............................................................................................... 4 2.1 Issues With the Legal System...........................................................................4 2.2 Where the Law Comes In.................................................................................8 2.3 Laws that apply to Security ............................................................................ 10 3 Ethics in Security.................................................................................. ................. 11 4 Conclusion .............................................................................................. . ............. 13 5 References ............................................................................................... .............. 14 ©
  • 74. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46
  • 75. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46 © SANS Institute 2002, As part of the Information Security Reading Room. Author retains full rights. 1 Introduction You took the advice of the security experts, and hired a full time security administrator/analyst. With his help your company formulated and spelled out a security policy. You analyzed the risks and vulnerabilities prevalent in your environment, and identified your industry’s practices for due care. With this in mind, you set up a security infrastructure. You also laid out a plan for conducting periodic reviews and tests to analyze and enhance your security policy and infrastructure [1]. Finally, you set up an intrusion detection system. Just as you start to wonder whether it was all worth it, lo and behold, your security administrator informs you, that after analyzing several suspicious logs and hack
  • 76. attempts, he was able to pin-point an intruder who had been trying to get to the core of the company’s data. Had it not been for the security systems in place, the organization could have lost millions. Great; that $100k increase in the total cost of ownership of the IT department seems to be paying itself off [1]. But the question is, now what? You set up the system and nabbed the intruder, but where do you go from here? What are the laws governing information security? Do such laws even exist, and if so, how and to what extent do they protect you? Will the evidence you provide, hold up in a court of law? Will the legal system even be competent enough to try such a case? How much harm would the case do to your organization’s public image? Other issues include geographical location and jurisdiction, as most computer crime today is Internet related, and boundaries for law enforcement agencies are either not well defined in this domain, or most countries do not have laws to prosecute cyber crime. With the absence of the protection that laws provide, the only recourse that exists is to build ones own defenses against external threats, and to depend on internal security, and to a large extent, ethics to minimize internal intrusions. Since technology is developing a lot faster than the legal system and the law
  • 77. making process, sometimes there is no legal protection offered against the misuse of new technology. In some cases, it is not apparent what is and what is not to be prohibited, and so adequate laws do not exist, or are just not comprehensive enough to deal with most situations that may arise with misuse of a certain technology. In these circumstances, as with society, it is imperative that ethics take over, in order to provide sanity to what would otherwise be a very chaotic situation. It is the responsibility of people who create and use the technology to make sure that it is utilized in a responsible and ethical manner. Of course, this does not offer any tangible protection, but just as with society, social acceptance and peer pressure that are nurtured through the acceptance or non- acceptance of evolving ethics, play a key rol e in limiting the misuse of technology. Thus, it is vital that healthy security based ethics are cultivated to compensate for and/or collaborate with the legal system. © S A N S In
  • 79. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46
  • 80. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46 © SANS Institute 2002, As part of the Information Security Reading Room. Author retains full rights. 2 Security and the Law This section deals with the interaction of the legal system with information security. A major part of computer and information security today is tied to the Internet, and the since the Internet does not have any geographical boundaries, a discussion of the legal system with respect to computer security would not be complete without mention of legal practices in this regard, followed in every country around the world. Since it is not feasible to study the legal systems of every single country, the focus of this section will b e on the computer security laws and statutes of the United States’ legal system. The following sub-sections analyze the issues that the legal system faces when dealing with computer based crime, and why it is such a challenge. The field of networking, that brought about a whole new arena for computer crime is now almost three decades old, and the Internet, almost two [7]. Laws have been established in this time, and are still evolving. Section 2.2
  • 81. describes the areas of computer security that are addressed by laws in the US. The last sub-section describes a few of the actual laws and statutes on computer and information security established in the United States. 2.1 Challenges the Legal System Faces 2.1.1 Rapid Technological Advancement It cannot be helped, it is as it should be, that the law is behind the times. (Holmes, p.102 [3]) Developments in computer technology are occurring every day. With every new protocol, product or appli cation that is developed, more doors are opened to computer intrusion and misuse. Most of the time it is not even known that a problem exists until vulnerability is found and exploited. Then it is realized that some sort of law needs to be established to offer protection against misuse, and the process begins to develop a law. Since the legal system is so reactionary in nature, it just does not have the ability to keep up with the rapid development of technology. Laws take time to be formulated, finalized and approved before they go into effect. This however, is a necessary evil, as stated by the Pennsylvania State Legislature:
  • 82. Laws influence our environment, economy, education, our families, our health and virtually every aspect of our daily lives, now and for generations to come. To make new laws or change those already on the books, lawmakers follow time-honored Constitutional procedures [4]. © S A N S In st itu te 2 00 2, A ut ho r re
  • 83. ta in s f ul l r ig ht s. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46
  • 84. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46 © SANS Institute 2002, As part of the Information Security Reading Room. Author retains full rights. The good news however, is that efforts are being made to establish laws in the field, and in fact, the U.S. Department of Justice’s criminal division has a dedicated department for cyber-crime issues, called the Computer Crime and Intellectual Property Section (CCIPS). Their website at http://www.usdoj.gov/criminal/cybercrime/index.html provides
  • 85. information on cyber- crime related legal and policy issues, as well as instructions on how to report and even help fight cyber-crime. In times of adverse need, changes to laws can be made without much delay, as evidenced by the USA Patriot Act which was signed by President Bush on October 25, 2001, in response to the terror acts of September 11th, 2001. This Act contains a number of substantial changes to the US federal cyber-crime laws since the last major revisions of 1996 [5]. 2.1.2 Technologically Inept Legal Personnel In order to try, prosecute, or make judgments in computer crime related cases, the lawyers, prosecutors and Judges involved need to have a firm understanding of the technologies involved in the crime being tried. Unfortunately, legal personnel of yester-year do not have adequate know-how of computers and computer related technologies [2]. If a jury is required, they too need to be well informed. What is more of a challenge, is keeping people of these professions up-to-date with the latest advancements. While it is true that experts are often called in for opinions, informed decisions cannot be made without basic understanding. This begs the question as to what the best method to tackle this problem would be. Do we make the security experts lawyers, or do we make the lawyers security experts? In the United States, the Computer
  • 86. Crime and Intellectual Property Section (CCIPS) of the US Department of Justice criminal division, has its own attorneys that provide training to federal, state, and law enforcement agents, prosecutors, other government offici als, and in some cases to foreign requesters [6]. Thus steps are being taken in the right direction to equip the system with the needed expertise to face the world of computer security. 2.1.3 Multiple Roles of Computers in Crime Computers can be the subject, the object, or the medium of a crime [2]. It would be great if we could prosecute the computer itself, but unfortunately a computer does only what it is told to do by a human, and if it does not, the fault lies again with the human who built it, or the human who modified it to behave inappropriately. Laws on computer crime need to address all these situations. • Computers maybe stolen or they maybe damaged. In these cases they will be considered tangible property, and their value will be sought. However, what about the value of the data on the computer? • Breaking in to somebody’s house and stealing is considered burglary. However how should unauthorized access to computer systems be
  • 87. handled? Not only could someone steal valuable data, they could also use the machine to gain access to other trusted machines. © S A N S In st itu te 2 00 2, A ut ho r re ta in s f
  • 88. ul l r ig ht s. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46
  • 89. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46 © SANS Institute 2002, As part of the Information Security Reading Room. Author retains full rights. • Computer systems maybe used to develop destructive code for viruses and Trojans that could cause widespread damage to other systems. • Computers hold valuable information, the misuse of which could aid in a number of other crimes such as fraud, identity theft etc. • There is also the issue of copyrights and illegal use of software programs. These are just few of the ways in which computers are used as a tool to cause
  • 90. harm, create losses, or to gain unjust profits. It is the responsibil ity of lawmakers to identify these methods, and inhibit them with adequate laws and punishments for people who resort to using computer systems in inappropriate ways. 2.1.4 Jurisdiction Jurisdiction is a major stumbling block for the legal system when it comes to dealing with computers, networks and their security. In the US, the court must have jurisdiction over the person or the subject matter of a lawsuit in order to be able to try it [8]. This works well with the current setup of law enforcement agencies that are very territorial and operate within distinct district, city, county, state or country lines. All of this however, gets thrown out the window when there are no physical boundaries to go by when determining jurisdiction, as is the case when it comes to computer networks and the Internet. A person could be sitting in country ‘A’, remotely logged in to a computer in country ‘B’, and committing a crime on systems in country ‘C’. Of course in committing the crime, the perpetrator could be sendi ng packets that traverse routers in countries ‘D’, ‘E’ and ‘F’ [9]. Under which country’s laws should this person be prosecuted? The crime was committed on a computer in country ‘C’, from a computer in country ‘B’. Law enforcement officials from these two
  • 91. countries do not have the authority in most cases to go to country ‘A’ where the individual is physically located, and bring him or her back to their respective countries for prosecution. This is not a fictional scenario as ill ustrated by the following excerpts quoted from an article on CNET News.com. Perhaps no case highlights the confusing thicket of jurisdictional issues on the W eb more than the Yahoo imbroglio. The saga began two years ago when two French human rights groups sued Yahoo, arguing that the posting of historical Nazi items on the company's U.S.-based site violated French law prohibiting the display of racist material. A French judge sided with the groups, ordering Yahoo to block French citizens from accessing the site or face steep fines. However, Yahoo turned to the U.S. courts and asked a judge to declare the French law unenforceable here. He did. Now, the company is facing another set of charges that it, along with former CEO Koogle, violated the country's war crime laws by displaying the items. In perhaps the most curious aspect of the © S A N
  • 93. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46
  • 94. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46 © SANS Institute 2002, As part of the Information Security Reading Room. Author retains full rights. case, the American Yahoo site at issue had no physical presence in France. (Bowman [10]) Suggestions have been made to make cyberspace a separate jurisdiction of its own with its own laws and regulations [8, 11]. However, this will take a great deal of time, agreement and co-operation between countries. Until such a move is justified and agreed upon, it is up to cyber communities such as ISPs to maintain their own laws and codes of conduct so that the misuse of computers over their networks is kept to a minimum. Various countries are in turn trying to establish treaties to sort out these very cross-border Net issues. 2.1.5 Computer Crime kept Quiet In this day and age where companies hold large amounts of personal information about its customers or clients, keeping the information private is top priority. Thus the security of networks and databases is a big deal. If an intrusion does
  • 95. occur, and data is lost or leaked, companies find it in their best interests to keep the matter quiet and out of courts, even if the intruder is identified. A court case and media attention would cause unwanted negative publicity, which would in turn scare off potential clients, and perhaps even cause current clients to consider competitors instead. It could also cause enough furor among the current client population that they would look to sue for damages as well. These possible repercussions are enough incentive for most companies to deal with security intrusions internally, which in turn hurts the legal system, since it will never become aware of the kind of threats that need to be protected against. Moreover, it may seem as motivation for individuals to indulge in such criminal behavior under the pretext that they will not be answerable to the law if caught. 2.1.6 Inadequate Precedence Since computers, networks and the Internet are a relatively new evil in the legal system, not many cases have been tried in these fields. Modern day court rulings are based to a large extent on precedence from old cases. This once again is a stumbling block for the legal system when it comes to cases related to computer security. Since there is no precedence established, rulings on current cases will become precedence for future cases. Thus, a great deal of thought
  • 96. and care has to be taken to make sure that correct decision is made and appropriate punishments are handed out. 2.1.7 Motive and Age of Offenders In searching for criminals, law enforcement agencies usually look for means, motive and opportunity to build a strong enough case [12]. With the Internet, means and opportunity are always available, however, finding a motive is difficult in most cases. This is because most cyber-crime is done not out of spite or hate, but for the adventure and challenge it offers. In fact, juveniles commit a number of these crimes. The problem with this is that these are seen more as childhood pranks, and if not ‘nipped in the bud’ early, the same juveniles, with more © S A N S In st itu te 2
  • 98. Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46 Key fingerprint = AF19 FA27 2F94 998D FDB5 DE3D F8B5 06E4 A169 4E46 © SANS Institute 2002, As part of the Information Security
  • 99. Reading Room. Author retains full rights. experience, technology, and quest for adventure will commit more serious offenses [2]. 2.1.8 Anonymity Offered by the Internet It is possible for people to remain anonymous while communicating or performing other activities over the Internet. This brings a sense of security, and in turn, in some cases, gives individuals the courage to do the outrageous, and sometimes even resort to illegal activities. The sense that their actions cannot be associated with them makes people indulge in activities they would not ordinarily do. With respect to computer crime, individuals may seek to play pranks, or in more extreme cases steal, cause loss or harm or commit fraud. It sometimes takes days, weeks or even months before acts of cyber-crime are detected, and by that time the perpetrators are able to cover their tracks and maintain their anonymity, and so in a lot of cases, will never be caught [13]. 2.2 Where the Law Comes In The previous sections seem to paint a dreary picture of the state of the legal system with regard to computer technology and its ability to offer protection from misuse of the latter. However, even in light of the fact that the laws are slow to