|
|
Wednesday, February 08, 2012
Computer Components Virtually all contemporary computer designs are based on concepts developed by John von Neumen, which includes the following three concepts… - Data and instructions are stored in a single read-write memory
- The contents of this memory are addressable by location, without regard to the type of data contained there
- Execution occurs in a sequential fashion (unless explicitly modified) from one instruction to the next
 Keep in mind that software and hardware are typically interchangeable – in the sense that you can develop programs with hardware that do the same as software. Hardware is typically quicker, and more fixed in its purpose. The above diagram illustrates both approaches…  The above diagram illustrates the top level components and suggests the interactions among them… - The CPU exchanges data with memory – typically making use of two internal registers, a MAR and a MBR
- A Memory Address Register (MAR), specifies the address in memory for the next read or write
- A Memory buffer register (MBR) contains the data to be written into memory or receives the data read from memory
- An I/O address register (I/OAR) specifies a particular I/O device
- An I/O buffer (I/OBR) register is used for the exchange of data between an I/O module and the CPU
- A memory module consists of a set of locations, defined by sequentially numbered addresses, each location contains a binary number that can be interpreted as either an instruction or data
- An I/O module transfers data from external devices to the CPU and memory, and vice versa. It contains internal buffers for temporarily holding the data until it can be sent on
Computer Function The basic function performed by a computer is execution of a program, which consists of a set of instructions stored in memory. The processor does the actual work by executing instructions specified in the program. In its simplest form, instruction processing consists of two steps… - The processor reads (fetches) instructions from memory one at a time
- The processor executes each instruction
The processing required for a single instruction is called an instruction cycle. Instruction Fetch and Execute - At the beginning of each cycle, the processor fetches an instruction from memory (typically a register called the program counter (PC) holds the address of the instruction to be fetched next.
- Unless specified, the processor increments the PC after each instruction fetch so that it will fetch the next instruction in sequence
- The fetched instruction is loaded into a register in the processor known as the instruction register (IR)
- The instruction contains bits that specify the action the processor is to take
- The processor interprets the instructions and performs the action
 in general the action performed can fall into one of four categories or a combination of more than one… - Processor memory – Data may be transferred from processor to memory or from memory to processor
- Processor I/O – Data may be transferred to or from a peripheral device by transferring between the processor and an I/O module
- Data processing – The processor may perform some arithmetic or logic operation on data
- Control – an instruction may specify the sequence of execution be altered
 The above diagram provides a more detailed look at the basic instruction cycle. In the above diagram, for any given instruction, some states may be null and others may be visited more than once. The states can be described as follows… - Instruction address calculation (IAC) – Determine the address of the next instruction to be executed. Usually involves adding a fixed number to the address of the previous instruction
- Instruction fetch (IF) – Read instruction from its memory location into processor
- Instruction operation decoding (IOD) – analyse instruction to determine type of operation to be performed and operands to be used
- Operand address calculation (OAC) – If the operation involves reference to an operand in memory or available via I/O, then determine the address of the operand
- Operand fetch (OF) – Fetch the operand from memory or read it from I/O
- Data operation (DO) – Perform the operation indicated in the instruction
- Operand store (OS) – Write the result into memory or out to I/O
Interrupts Interrupts are provided primarily as a way to improve processing efficiency (most external devices are much slower than the processor and could have pauses during processing, e.g. scanner). With interrupts, the processor can be engaged in executing other instruction while an I/O operation is in progress. When the I/O operation is completed or ready to accept more data, the I/O device sends an interrupt request signal to the processor. The processor responds by suspending operation of the current program, branching off to a program to service that particular I/O device, known as an interrupt handler, and resuming the original execution after the device is serviced. To accommodate interrupts, an interrupt cycle is added to the instruction cycle.  If an interrupt is pending, the processor does the following… - Suspends execution of the current program being executed and saves its context. This means saving the address of the next instruction to be executed and any other data relevant to the processors current activity
- It sets the program counter to the starting address of an interrupt handler routine
Note that allowing for an interrupt does add extra processors to the cycle, however because most I/O devices are so much slower than the processor, the lost in performance by adding an interrupt is negligible, compared to the time saved by not being I/O device dependent. Multiple Interrupts Two approaches can be taken when dealing with multiple interrupts - First approach is to disable interrupts while an interrupt is being processed. What this means generally, is if an interrupt occurred while the processor was processing an interrupt, it would ignore it till completed and the second interrupt would wait in the queue. This approach is simple as interrupts are handled in order that they occurred. The problem with this approach is that it does not handle higher priority interrupts or time critical needs.
- Second approach is to define priorities for interrupts and to allow an interrupt of higher priority to cause a lower priority interrupt handler to be itself interrupted.
Below is the diagram of the flow sequence including interrupt handling….  I/O Function In some cases it is desirable to allow I/O exchanges to occur directly with memory. In such a case, the processor grants to an I/O module the authority to read from or write to memory so that the I/O memory transfer can occur without tying up the processor. During such a transfer, the I/O module issues read or write commands to memory, relieving the processor of responsibility for the exchange. This operation is known as direct memory access (DMA) Interconnection Structures A computer consists of a set of components or modules of three basic types that communicate with each other. - Processor
- Memory
- I/O
In effect, a computer is a network of basic modules, thus there must be paths for connecting the modules. This is called the interconnection structure. - Memory – typically a memory module will consist of N words of equal length. Each word is assigned a unique numerical address. A word of data can be read from or written into the memory. The nature of the operation is indicated by read and write control signals. The location for the operation is specified by an address.
- I/O module – from an internal point of view, I/O is functionally similar to memory. There are two operations, read and write. Further, an I/O module may control more than one external device. We can refer to each of the interfaces to an external device as a port and give each a unique address. In addition, there are external data paths for the input and output of data with an external device. Finally an I/O module may be able to send interrupt signals to the processor.
- Processor – the processor reads in instructions and data, writes out data after processing and uses control signals to control the overall operation of the system. It also receives interrupt signals.
The above list defines the data to be exchanged. The interconnection structure must support the following types of transistors… - Memory to processor
- Processor to memory
- I/O to processor
- Processor to I/O
- I/O to or from memory
Many different interconnection structures have been tried, but by far the most common has been the bus and various multiple bus structures. Bus Interconnection - Bus is a communication pathway connecting two or more devices.
- Key characteristic of a bus is that it is a shared transmission medium (meaning multiple devices connect to the bus, and a signal transmitted by any one device is available for reception by all other devices attached to the bus)
- If two devices transmit during the same time period, their signals will overlap and become garbled – thus only one device at a time can successfully transmit
- A bus that connects major computer components is called a system bus (i.e. processor, memory or I/O)
Bus Structure - A bus consists typically of from about 50 to hundreds of separate lines
- Each line is assigned a particular meaning or function
- A line on a bus can usually be classified into one of three functional groups – Data, address & control lines (there may also be power distribution lines that supply power to additional lines)
- Data lines – provide a path for moving data among system modules, collectively these lines are called the data bus. Data bus can consist of 32, 64, 128 or more separate lines. The number of lines being referred to as the width of the data bus. Because each line can carry only 1 bit at a time, the number of lines determines how many bits can be transferred at a time and plays an important factor in the overall system performance.
- Address lines – are used to designate the source or destination of the data on the data bus. The width of the address bus determines the maximum possible memory capacity of the system. Address lines are also used to address I/O ports
- Control lines –used to control the access to and the use of the data and address lines. Because the data and address lines are shared by all components, there must be a means of controlling their use. Control signals transmit both command and timing information among system modules. Timing signals indicate the validity of data and address information. Command signals specify operations to be performed.
Typical control lines include… - Memory write – data on the bus to be written into the addressed location
- Memory read – data from the addressed location to be placed on the bus
- I/O write – data on the bus to be output to the addressed I/O port
- I/O read – data from the addressed I/O port to be placed on the bus
- Transfer ACK – indicates that data have been accepted from or placed on the bus
- Bus request – indicates that a module needs to gain control of the bus
- Bus grant – indicates that a requesting module has been granted control of the bus
- Interrupt request – indicates that an interrupt is pending
- Interrupt ACK – acknowledges that the pending interrupt has been recognized
- Clock – is used to synchronize operations
- Reset – Initializes all modules
The operation of the bus is as follows, If one module wishes to send data another, it must do two things… - obtain the use of the bus
- transfer data via the bus
If one module wishes to request data from another module, it must… - obtain the use of the bus
- transfer a request to the other module over the appropriate control and address lines
Multiple Bus Hierarchies If there are to many devices connected to the bus, performance will suffer. There are two main causes… - More devices means the greater the bus length and the greater the propagation delay which can noticeably affect performance
- The bus may become a bottleneck as the aggregate data transfer demand approaches the capacity of the bus. This can be countered by increasing bus width and clock speed
To keep performance up, multiple bus designs are becoming common where there is a hierarchy of buses. Elements of Bus Design Bus Types - Bus lines can be separated into two generic types, dedicated and multiplexed.
- Dedicated bus line - is permanently assigned either to one function or to a physical subset of computer components
Methods of Arbitration - More than one module may need control of the bus. Because only one unit at a time can successfully transmit over the bus, some method of arbitration is needed. These roughly fall into two categories, centralized or distributed
- In a centralized scheme, a single hardware device, referred to as a bus controller or arbiter, is responsible for allocating time on the bus.
- In a distributed scheme, there is no central controller, each module contains access control logic and the modules act together to share the bus
- With both approaches, the purpose is to designate one device, either the processor or an I/O module, as master
Timing - Timing refers to the way in which events are coordinated on the bus
- Buses use either synchronous timing or asynchronous timing
- Synchronous timing – the occurrence of events on the bus is determine by a clock. The bus includes a clock line which transmits a regular sequence of alternating 1’s and 0’s of equal duration. All the devices on the bus can read the clock line, and all events start at the beginning of a clock cycle
- Asynchronous timing – the occurrence of one event on a bus follows and depends on the occurrence of a previous event. In the simple read example, the processor places address and status signals on the bus. After pausing for these signals to stabilize, it issues a read command, indicating the presence of valid address and control signals. The appropriate memory decodes the address and responds by placing the data on the data line. Once the data lines have stabilized, the memory module asserts the acknowledged line to signal the processor that the data is available. Once the master has read the data from the data lines, it de-asserts the read signal. This causes the memory module to drop the data and acknowledge lines. Finally, once the acknowledge line is dropped, the master removes the address information.
Synchronous timing is simpler to implement and test, however it is less flexible than asynchronous timing. With Asynchronous timing, a mixture of slow and fast devices, using older and newer technology can share a bus. Data Transfer Type A bus supports various data transfer types. All buses support both write (master to slave) and read (slave to master) transfers as well as a number of other transfer types including… - Read-modify-write operation
- Read-after-write operation
- Block data transfer
- Write (multiplexed) operation
- Read (multiplexed) operation
Saturday, February 04, 2012
Designing for Performance The basic building blocks for todays computers are virtually the same as those of the early IAS computers. The focus has been on optimizing and increasing speeds while keeping the same architecture. Processors Increasing speed with processors uses several techniques including… - Branch prediction – a processor looks ahead in the instruction code fetched from memory and predicts which branches or groups of instructions are likely to be processed next.
- Data flow analysis – the processor analyses which instructions are dependent on each others results or data to create an optimized schedule of instructions preventing unnecessary delay
- Speculative execution – Using branch prediction and data flow analysis some processors speculatively execute instructions ahead of their actual appearance in the program execution saving the results in a temporary location
Performance Balance While processor power has increased over the years, other critical components have not kept up. The result is a need to look for ways of balancing the performance. One of the main bottlenecks has been the interface between processor and main memory. There are a number of ways that a system architect can address this problem including the following… - Increase the number of bits that are retrieved at one time by making DRAMs wider rather than deeper and using wide bus data paths
- Change the DRAM interface to make it more efficient by including a cache or other buffering scheme on the DRAM chip
- Reduce the frequency of memory access by incorporating increasingly complex and efficient cache structures between the processor and main memory including the incorporation of one or more caches on the processor as well as on an off chip cache close to the processor chip
- Increase the interconnect bandwidth between processors and memory by using higher speed buses and by using a hierarchy of buses to buffer and structure data flow.
Another are of design focus is the handling of I/O devices. The main challenge is getting the data from these devices moved between processor and peripheral. Strategies include buffering and cache techniques. The use of multiple processor configurations can aid in satisfying I/O demands as well. There are generally two constantly evolving factors - The rate at which performance is changing in the various technology areas differs greatly from one type of element to another
- New applications and new peripheral devices constantly change the nature of the demand on the system in terms of typical instruction profile and the data access patterns
Improvements in Chip Organization and Architecture There are 3 approaches to achieving increased processor speed… - Increase the hardware speed of the processor (i.e. shrinking the size of the logic gates on the processor chip which would increase the individual operations executed on the chip)
- Increase the size and speed of caches that are interposed between the processor and main memory.
- Make changes to the processor organization and architecture that increase the effective speed od instruction execution (normally via parallelism)
As clock speeds and logic density increase, a number of obstacles become more significant including… - Power – the power density increases with an increase in logic density and clock speed. One challenge of this is the difficulty of dissipating the heat generated on high-density, high-speed chips
- RC delay – The speed at which electrons can flow on a chip between transistors is limited by the resistance and capacitance of the metal wires connecting them. delay increases as the RC product increases. As components on the chip decrease in size, the wires are closer together, increasing capacitance
- Memory latency – Memory speeds lag processor speeds as previously discussed
With these challenges becoming harder to reduce, designers of chips are now resorting to placing multiple processors on the same chip, with a large shared cache. Multicore processors provide the potential to increase performance without increasing the clock rate. Thus the current strategy is to rather use two simpler processors instead of one more complicated processor. The Evolutions of the Intel x86 Architecture There are two main architectures that we will examine – Intel x86 and ARM processors - CISC Design - The Intel x86 is an excellent example of CISC design (Complex Instruction Set Computers).
- RISK Design - The ARM architecture is used in a wide variety of devices and embedded systems and is a good example of RISC design (Reduced instruction set).
Some of the main differences between the Pentium, Pentium Pro, Pentium II, Pentium III, Pentium 4, the Core (Duo) and the Core 2 - Pentium – introduced the use of superscalar techniques, which allow multiple instructions to execute in parallel
- Pentium Pro – Made aggressive use of register renaming, branch prediction, data flow analysis and speculative execution
- Pentium II – Used Intel MMX technology which is designed to specifically process video, audio, and graphics data efficiently
- Pentium III – Incorporates additional floating-point instructions to support 3D graphics software
- Pentium 4 – Includes additional floating point and other enhancements for multimedia
- Core – First microprocessor with a dual core, i.e. two processors on a single chip
- Core 2 – Extends the architecture to 64 bits
Tuesday, January 31, 2012
Something I came across that I never knew was possible was that you can put c# code inline in a XAML file in a WPF app (I assume this would work in Silverlight as well). Not that you would ever want to do this, but sometimes you just need those geek points! Make a WPF application, in the XAML file put the following… <Grid>
<Button x:Name="button1" Click="button1_click">test</Button>
<x:Code>
void button1_click(object sender, RoutedEventArgs e)
{
button1.Content = "Inline Code Works!!";
}
</x:Code>
</Grid>
There you go, plain old code inline in a XAML file, I like to call this UTCC approach, better known as ultimately tightly coupled code.
It has been a while now since I moved over to Git. So far out of all the SCS’s that I have used, this has been the least painful and the most enjoyable. For those of you looking for a team approach for using Git, I suggest you read the following post… http://nvie.com/posts/a-successful-git-branching-model/
Monday, January 30, 2012
If you are looking for a great introductory article on Log4Net, I would recommend reading the Log4Net tutorial by Tim Corey. Tim goes through quite a bit, I just want to cover the very bare minimum for getting log4net to work in a console application. Step 0 – Reference Log4Net Using NuGet this is really easy – but no matter how you do it, you should end up with a reference to log4net in your project.  Step 1 – Add an entry to AssemblyInfo.cs Add the assembly for the log4net.config to AssemblyInfo.cs [assembly: log4net.Config.XmlConfigurator(Watch = true)]
Step 2 – Config settings file for App.config
Add a config file called App.config to your solution if it is not there already…
I added the following config settings within this file as follows: <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
</configSections>
<!-- Log4net Logging Setup -->
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender,log4net">
<file value="c:\\mylogfile.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="FATAL" />
</filter>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="FileAppender"/>
</root>
</log4net>
</configuration>
Step 3 – Create an instance of a logger and call logging
To create an instance of a logger, there are a couple of ways you can do this….
One suggestion by Tim is to add the following line within each class where you want to have logging… private static readonly log4net.ILog log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
I am not sold on this approach, this is something where I would use Dependency Injection to inject the logger, but for a simple console app example this would complicate things, so I would go with the following approach just to get things working… class Program
{
static void Main(string[] args)
{
log4net.Config.BasicConfigurator.Configure();
ILog log = log4net.LogManager.GetLogger(typeof(Program));
log.Debug("This is a debug message");
log.Warn("This is a warn message");
log.Error("This is a error message");
log.Fatal("This is a fatal message");
Console.ReadLine();
}
}
Step 4 - Run the application
Simply run the application and you should see log file being created.
_2012-01-30_10-28-10_thumb.png)
The Decimal & Binary System and Converting between Binary and Decimal I am assuming that a basic knowledge of binary and decimal notation is known, if you are unfamiliar with it, read up on binary and decimal - The decimal system has a base or radix of 10 – this means that each digit in the number is multiplied by 10 raised to a power corresponding to that digits position.
- The same principles holds for decimal fractions but negative powers of 10 are used
- A number with both an integer and fractional part has digits raised to both positive and negative powers of 10
- In the binary system we have only two digits, 1 & 0 to represent numbers
- To convert from binary to decimal, all that is required is to multiply each binary digit by the appropriate power of 2 and add the results
- To convert from decimal to binary, the integer and fractional parts are handled separately
Hexadecimal Notation - Because of the inherent binary nature of digital computer components, all forms of data within computers are represented by various binary codes, however the binary system is cumbersome for human beings, thus we use a more compact notation called hexadecimal.
- Binary digits are grouped into sets of four, each possible combination of four binary digits is given a symbol as follows
| 0000 = 0 | 0100 = 4 | 1000 = 8 | 1100 = C | | 0001 = 1 | 0101 = 5 | 1001 = 9 | 1101 = D | | 0010 = 2 | 0110 = 6 | 1010 = A | 1110 = E | | 0011 = 3 | 0111 = 7 | 1011 = B | 1111 = F | - A sequence of hexadecimal digits can be thought of as representing an integer in base 16, thus 2C = (2H * 16^1) + (CH * 16^0) = (2 * 16^1) + (12 x 16^0) = 44
- Hexadecimal notation is used not only to represent integers, it is also used as a concise notation for representing any sequence of binary digits
| Decimal | Binary | Hex | | 0 | 0000 | 0 | | 5 | 0011 | 5 | | 15 | 1111 | F | | 16 | 0001 0000 | 10 | | 31 | 0001 0000 | 1F | | 255 | 1111 0000 | FF | | 256 | 0001 0000 0000 | 100 | Benefits of using hexadecimal include - It is more compact than binary notation
- In most computers, binary data occupy some multiple of 4 bits, and hence some multiple of a single hexadecimal digit
- It is extremely easy to convert between binary and hexadecimal
Saturday, January 28, 2012
Organization & Architecture - Computer architecture – those attributes of a system visible to a programmer or, put another way, those attributes that have a direct impact on the logical execution of a program.
- Computer organization – the operational units and their interconnections that realize the architectural specifications
Examples of computer architectural attributes include… - Instruction set
- The number of bits used to represent various data types
- I/O mechanisms and techniques for addressing memory
Examples of computer organization attributes includes… - hardware details transparent to the programmer including controls signals
- interfaces between the computer and peripherals
- memory technology used
Computer architecture tends to last decades, while computer organization often operates in a much smaller time frame. For instance, IBM PC architecture has been around for a long time, but the actual organization of the components that make up the architecture is continually changing. Structure and Function - Structure – the way in which the components are interrelated
- Functions – the operation of each individual components as part of the structure
Both the structure and functioning of a computer are in essence simple. Functions In general terms there are only four… - Data processing
- Data storage
- Data movement
- Control
Structure There are four main internal structures of the computer…. - CPU – Central processing unit which controls the operation of the computer and performs its data processing functions, often simply referred to as processor
- Main memory – stores data
- I/O – moves data between the computer and its external environment
- System interconnection – some mechanism that provides for communication among CPU, main memory, and I/O (i.e. a system bus)
The CPU is possibly the most interesting of these 4 components, its major structural components are… - Control unit – Controls and operation of the CPU and hence the computer
- ALU - Arithmetic and logic unit performs the computer’s data processing functions
- Registers – Provides storage internal to the CPU
- CPU interconnection – some mechanism that provides for communication among the control unit, ALU, and registers
Tuesday, January 24, 2012
I have recently been reading “Agile Retrospectives – making good teams great by Esther Derby and Diana Larsen”. The book so far is a fairly easy read, and one I would recommend to anyone wanting to do retrospectives. One of the activities to set the stage for a retrospective mentioned in the book is the ESVP Activity (Explorer, Shopper, Vacationer & Prisoner).The purpose of the activity is to help people focus on the work of the retrospective and to understand people’s attitudes to the retrospective. I made a few modifications to the activity to enhance it – here they are The Basics The book suggests that each participant reports anonymously his or her attitude toward the retrospective as an Explorer, Shopper, Vacationer or Prisoner. The retrospective leader then collects the results and creates a histogram to show the data and then guides a discussion about what the results mean for the group. - Explorer – Are eager to discover new ideas and insights. They want to learn everything they can about the iteration/release/project
- Shoppers – Will look over all the available information, and will be happy to go home with one useful new idea
- Vacationer – Aren’t interested in the work of the retrospective, but are happy to be away from the daily grind
- Prisoner – Feel that they’ve been forced to attend and would rather be doing something else
Enhancements I tweaked this activity a bit – for it to really be effective people need to feel comfortable and know that it is anonymous. A suggestion was that the attendees write down which type of person they felt they were – but with smaller groups it is easy to recognize handwriting, so in our case we made cards and they simply had to tick which one they felt they were. Also, to make sure it would be really hard to identify the people, I made sure that there were identical pens, so that nobody would recognize whether you were answering with a different colored pen. The Outcome In our retrospective I was surprised on the results – we had 5 explorers and 3 prisoners. I was expecting one or two shoppers, but it turns out we did not have any. I found the activity really beneficial to gauge how the members of the team felt in the retrospective. Where I could have had better outcomes I was not ready for the results, and one suggestion I would make is to prepare better to lead a discussion on the outcome of the results. In my case I tried to comment on the results as the leader of the retrospective – I should have instead facilitated a discussion from the group on the results, which would have led to better insights by the team. Some of the points in the book also would have added value, examples included - asking the group how these categories are like our attitudes toward daily work
- asking the group what they make of the data and leading a discussion about how the attitudes in the room will effect the retrospective
Monday, January 23, 2012
After reading this chapter you should be able to - Identify and explain the functions of the core TCP/IP protocols
- Explain how the TCP/IP protocols correlate to layers of the OSI model
- Discuss addressing schemes for TCP/IP in IPv4 and IPv6
- Describe the purpose and implementation of DNS and DHCP
- Identify the well-known ports for key TCP/IP services
- Describe common Application layer TCP/IP protocols
Characteristics of TCP/IP (Transmission Control Protocol / Internet Protocol) - TCP/IP is a suite of specialized protocols – including TCP, IP, UDP, ARP and many others called sub-protocols
- TCP/IP originated with ARPANET in the late 1960’s
- TCP/IP would not have become so popular if it were not routable (routable protocols are protocols that can span more than one LAN segment because they carry Network layer addressing information)
- TCP/IP is very flexible, it can run on virtually any combination of network operating systems or network media – greater flexibility means more configuration
The TCP/IP Core Protocols TCP (Transmission Control Protocol) - Operates in the Transport layer of the OSI model and provides reliable data delivery services
- TCP is a connection-oriented sub-protocol, which means a connection must be established between the communication nodes before this protocol will transmit data
- TCP ensures reliable data delivery through sequencing and checksums
- TCP provides flow control to ensure that a node is not flooded with data
 Fields described in TCP Segment - Source port – indicates the port number at the source node. A port number is the address on a host where an application makes itself available to incoming or outgoing data (i.e. port 80 for HTTP). Source port is 16 bits long.
- Destination port – indicates the port number at the destination node (16 bits long)
- Sequence number – identifies the data segment’s position in the stream of data segments already sent (32 bits long)
- Acknowledgment number (ACK) –Confirms receipt of the data via a return message to the sender (32 bits long)
- TCP header length (HLEN) – indicates the length of the TCP header (4 bits long)
- Reserved – a 6-bit field reserved for later use
- Flags – a collection of six 1-bit fields that signal special conditions through flags (URG, ACK, PSH, RST, SYN, FIN)
- URG – Urgent pointer field contains information for the received
- ACK – Acknowledgement field contains information for the received
- PSH – Indicates that data should be sent to an application without buffering
- RST – The sender is requesting that the connection be reset
- SYN – the sender is requesting a synchronization of the sequence numbers between the two nodes
- FIN – the segment is the last in a sequence and the connection should be closed
- Sliding window size (Window) – indicates how many bytes the sender can issue to a receiver while acknowledgement for this segment is outstanding. This field performs flow control, preventing the receiver from being deluged with bytes (16 bits long)
- Checksum – allows the receiving node to determine whether the TCP segment became corrupted during transmission (16 bits long)
- Urgent pointer – indicates a location in the data field where urgent data resides (16 bits long)
- Options – specifies special options such as the max segment size a network can handle (size varies between 0 & 32 bits)
- Padding – contains filler information to ensure that the size of the TCP header is a multiple of 32 bits (it is often 0)
- Data – contains data originally sent by the source node. The size of the Data field depends on how much data needs to be transmitted, the constraints of the TCP Segment size imposed by the network type, and the limitation that the segment must fit within an IP datagram
UDP (User Datagram Protocol) - Belongs to the Transport layer of the OSI model
- UDP is a connectionless transport service (it offers no assurance that packets will be received in the correct sequence or that they will be received at all)
- Provides no error checking or sequencing
- Its lack of sophistication (checking) results in it being faster than TCP
- Useful in situations in which a great volume of data must be transferred quickly
- UDP is more efficient than TCP for carrying messages that fit within one data packet
- UDP header contains only four fields, source port, destination port, length and checksum (use of the checksum field is optional)
 IP (Internet Protocol) - Belongs to the Network layer of the OSI model
- Provides information about how and where data should be delivered, including the data’s source and destination addresses
- IP is the sub-protocol that enables TCP/IP to internetwork (traverse more than one LAN segment and more than one type of router)
- A packet is also known as an IP datagram which acts as an envelope for data and contains information necessary for routers to transfer data between different LAN segments
- IP is unreliable & a connectionless protocol, which means that it does not guarantee delivery of data, however higher-level protocols of the TCP/IP suite use IP to ensure that data packets are delivered to the right addresses
- IP datagram does contain one reliability component – the header checksum – which verifies only the integrity of the routing information in the IP header
 - Version – identifies the version number of the protocol (4 bits long)
- Internet header length (IHL) – identifies the number of 4-byte blocks in the IP header. This field is important because it indicates to the receiving node where data will begin (after the header ends)
- Differential Services (DiffServe / Type of Service) – Informs routers what level of precedence they should apply when processing the incoming packet (8 bits long)
- Total length – identifies the total length of the IP datagram, including the header and data, in bytes. An IP datagram including header and data cannot exceed 65,535 bytes. The total length field is 16 bits long
- Identification – identifies the message to which a datagram belongs and enables the receiving node to reassemble fragmented messages. This field and the following two fields (Flags & Fragment offset) assist in reassembly of fragmented packets.
- Flags (DF & MF) – Indicates whether a message is fragmented and, if it is fragmented, whether this datagram is the last in the fragment
- Fragment offset – Identifies where the datagram fragment belongs in the incoming set of fragments (13 bits long)
- Time to Live (TTL) – Indicates the maximum time that a datagram can remain on the network before it is discarded. On modern networks it represents the number of times a datagram has been forwarded by a router (router hops). The TTL for datagrams is variable and configurable, but is usually set at 32 or 64. Each time a datagram is passed through a router its TTL is reduced by one.
- Protocol – Identifies the type of Transport layer protocol that will receive the datagram (e.g. TCP or UDP).
- Header checksum – Allows the receiving node to calculate whether the IP header has been corrupted during transmission
- Source IP address – Identifies the full IP address of the source node
- Destination IP address – Indicates the full IP address of the destination node
- Options – May contain optional routing and timing information
- Padding – Contains filler bits to ensure that the header is a multiple of 32 bits.
- Data – Includes the data originally sent by the source node, plus information added by TCP in the Transport layer
ICMP (Internet Control Message Protocol) - ICMP is a sub protocol in the TCP/IP suite
- ICMP is a Network layer protocol that reports on the success or failure of data delivery
- It can indicate when part of a network is congested, when data fails to reach its destination, and when data has been discarded because the allotted time for delivery has expired
- ICMP announces these transmission failures to the sender but it cannot correct any errors it detects
- ICMP’s announcements provide critical information for troubleshooting network problems
IGMP (Internet Group Management Protocol) - IGMP is a sub protocol in the TCP/IP suite
- Operates at the network layer and manages multicasting
- Is a transmission method that allows one node to send data to a defined group of nodes
- Routers use IGMP to determine which nodes belong to a certain multicast group and to transmit data to all nodes in that group
- Network nodes use IGMP to join or leave multicast groups at any time
ARP (Address Resolution Protocol) - APR is a network layer protocol that obtains the MAC address of a host, or node, and then create a database that maps the MAC address to the host’s IP address.
- If one node needs to know the MAC address of another node, it broadcasts a message to the network using ARP that essentially says “Will computer with the IP address xyz please send me its MAC address)
- A broadcast is a transmission that is simultaneously sent to all nodes on a particular network segment.
- The node that has the IP address xyz then broadcasts a reply that contains the physical address of the destination host
- To make ARP more efficient, computers save MAC-to-IP address mappings on a database known as the ARP table
- An ARP table can contain two types of entries, dynamic and static
- Dynamic ARP table entries are created when a client makes an ARP request that cannot be satisfied by data already in the ARP table
- Static ARP table entries are those that someone has entered manually using the ARP utility
RARP (Reverse Address Resolution Protocol) - If a device doesn’t know its own IP address, it cannot use ARP (because without an IP address, a device cannot issue an ARP request or receive an ARP reply)
- One solution is to broadcast a message with its MAC address and receive an IP address in reply – this is known as RARP
- RARP was originally developed as a means for diskless workstations
IPv4 Addressing Network recognize two types of addresses: logical (Network layer) and physical (MAC or hardware) addresses. Logical addresses can be manually or automatically assigned and must follow rules set by the protocol standards. In the TCP/IP protocol suite, IP is the core protocol responsible for logical addressing. For this reason, addresses on TCP/IP based networks are often called IP addresses. - Each IP address is a unique 32 bit number, divided into four octets, or sets of eight bits, that are separated by periods.
- An IP address contains two types of information, network and host
- From the first octet you can determine the network class (in traditional IP networks, 3 types of classes are used for LANs, Class A, Class B & Class C)
- Class D & Class E addresses do exist, but are rarely used
- Although eight bits have 256 possible combinations, only number 1 to 254 can be used to identify networks and hosts in an IP address. The number 0 is reserved to act as a placeholder when referring to an entire group of computers on a network (e.g. 10.0.0.0 represents all devices whose first octet is 10).
- The number 255 is reserved for broadcast transmissions (sending a message to the address 255.255.255.255 sends a message to all devices connected to your network)
- Network founders intended the use of network classes to provide easy organization and sufficient quantity of IP addresses on the Internet, however this has not necessarily been recognized
Binary and Dotted Decimal Notation IP addresses are usually represented in dotted decimal notation which is a shorthand convention used to represent IP addresses and make them easy for people to read. So 131.65.10.36 is dotted decimal notation and can be represented as 10000011 (131) 01000001 (65) 00001010 (10) 00100100 (36) Subnet Mask - In addition to an IP address, every device on a TCP/IP based network is identified by a subnet mask which is a special 32-bit number that, when combined with a device’s IP address, informs the rest of the network about the segment or network to which the device is attached.
- Like IP’s, subnets masks are composed of four octets (32 bits) and can be expressed in either binary or dotted decimal notation.
- Subnet masks are assigned the same way that IP addresses are assigned – either manually or automatically through a service such as a DHCP.
Assigning IP Addresses BOOTP (Bootstrap Protocol) - BOOTP is an application layer protocol
- In many ways it has been replaced by DHCP but is still used for diskless nodes
- With BOOTP the network administrator sets up a table of every MAC address and the associated IP address, when a node boots, it makes a request to the BOOTP and is given the IP settings based on its MAC address
- The main difference between RARP and BOOTP is that BOOTP can supply more than just the IP address, it includes the IP address of the server and the router
- Also a difference between RARP and BOOTP is that BOOTP can traverse more than one network, where RARP is restricted to a single network segment
DHCP (Dynamic Host Configuration Protocol) - Is an automated means of assigning a unique IP address to every device on a network
- Belongs to the Application layer of the OSI model.
- Operates similar to BOOTP but unlike BOOTP, DHCP does not require the network administrative to maintain a table of IP and MAC addresses on the server
- DHCP does require the network administrator in charge of IP address management to install and configure the DHCP service on a DHCP server
Reasons for implementing DHCP include the following… - To reduce the time and planning spent on IP address management
- To reduce the potential for errors in assigning IP addresses
- To enable users to move their workstations and printers without having to change their TCP/IP configuration
- To make IP addressing transparent for mobile users
DHCP Leasing Process - With DHCP, a device leases or borrows an IP address while it is attached to the network
- The length of time a lease remains for the IP address remains in effect depends on the DHCP server setup and client
- A user can force a lease termination at the client, or a network administrator can force a lease termination at the server
Initiating a DHCP leasing process… - Configuring the DHCP service involves specifying a range of addresses that can be leased to any network device on a particular segment and a list of excluded addresses (if any)
- After the DHCP server is running, the client and server take the following steps to negotiate the client’s first lease
- When the client workstation is powered on and its NIC detects a network connection, it sends out a DHCP discover packet in broadcast fashion via the UDP protocol to the DHCP/BOOTP server
- Every DHCP server on the same subnet as the client receives the broadcast request. Each DHCP server responds with an available IP address, while simultaneously withholding that address from other clients. The response message includes the available IP address, subnet mask, IP address of the DHCP server, and lease duration
- The client accepts the first IP address that it receives, responding with a broadcast message that essentially confirms to the DHCP server that it wants to accept the address. Because this message is broadcast, all other DHCP servers that might have responded to the client’s original query see this confirmation and return the IP addresses they had reserved for the client to their pool of available addresses
- When the selected DHCP server receives the confirmation, it replies to the client with an acknowledgement message. It also provides more information such as DNS, subnet mask, or gateway addresses that the client might have requested
Terminating a DHCP lease… - A DHCP lease may expire based on the period established for it in the server configuration, or it may be manually terminated at any time from either the client’s TCP/IP configuration or the server’s DHCP side.
Initiating and terminating a DHCP contract in Windows - Terminate from the client – in the command window type ipconfig /release
- Initiating from the client – in the command window type ipconfig / renew
APIPA (Automatic Private IP Addressing) - AIPA provides a computer with an IP address automatically (usually used if the DHCP server cannot be found)
- After APIPA assigns an address, a computer can then communicate across a LAN, but can only communicate with other nodes using addresses in the APIPA range
- When the DHCP server comes back on, APIPA then releases and the node takes on the assigned IP address from the DHCP server
- AIPA is best suited for small networks
Determining in windows if APIPA is enables - in the command window type ipconfig / all (if auto configuration enabled option is set to Yes, your computer is using APIPA)
IPv6 Addressing IPv6 compared to IPv4 - Offers more efficient header
- Better security
- Better prioritization provisions
- Automatic IP address configuration
- Main advantage is it offers more addresses
- IPv4 has 32 bit, IPv6 has 16 bit fields for a total of 128 bits
- The loopback address in IPv6 is 0:0:0:0:0:0:0:1 which using shorthand becomes ::1
- IPv6 addresses can reflect the scope of a transmissions recipients – i.e. a single node, a group, or a special kind of group
- One type of Ipv6 address is a unicast address or an address that represents a single interface on a device
- A multicast address represent multiple interfaces (often multiple devices)
- A anycast address represents any one interface from a group of interfaces
Sockets and Ports - Just as a device requires a unique address to send and receive information over the network, a process also requires a unique address. Every process on a machine is a assigned a port number. A process’s port number plus its host machine’s IP address equals the process’s socket.
- The use of port numbers simplifies TCP/IP communications and ensures that data are transmitted to the correct application
Port numbers range from 0 to 65535 and are divided by IANA into three types: - Well Known Ports – within the range of 0 to 1023 and are assigned to processes that only operating system or an administrator of the system can access
- Registered Ports – within the range of 1024 to 49151 and are accessible to network users and processes that do not have special administrative privileges
- Dynamic and or Private Ports – ranging from 49152 through 65535 and are open for use without restriction
Host Names and DNS - Every device on the Internet is technically known a a host.
- Every host can take on a host name
Domain Names - Every host is a member of a domain, or a group of computers that belong to the same organization and has part of their IP addresses in common
- A domain is identified by its domain name
- Usually a domain name is associated with a company or other type of organization
- Often when one refers to a machine’s host name, one in fact means its local host name plus its domain name (in other words its fully qualified host name)
- A domain name is represented by a series of character strings, called labels, separated by dots
- In the domain name www.google.com, com is the top-level domain (TLD), google is the second-level domain, and www is the third-level domain
- Domain names must be registered with an Internet naming authority that works on behalf of ICANN
Host and domain names are subject to some restrictions - they consist of any alphanumeric combination up to a maximum of 63 characters, and can include hyphens, underscores, or periods in the name, but no other special characters. Host Files - This was the old way that a text files is used to associate internal host names with their IP addresses
DNS (Domain Name System) - DNS refers to both the Application layer service that accomplishes this association and also to the organized system of computers and databases that makes this association possible.
- The DNS service does not rely on one file or even one server, but rather on many computers across the globe – these computers are related in a hierarchical manner, with 13 computers known as root servers, acting as the ultimate authorities.
- Because DNS is distributed, it will not fail catastrophically if one or a handful of servers experience errors
To direct traffic efficiently, the DNS service is divided into three components… - Resolvers
- Name Servers
- Namespace
Resolvers are any hosts on the Internet that need to look up domain name information. The resolver client is built into TCP/IP applications such as HTTP. If you point your Web browser to a http URL, your HTTP client software initiates the resolver service to find the IP address for the URL. If you have visited the site before, the information may exist in temporary memory and may be retrieved very quickly. Otherwise, the resolver service queries your machine’s designated name server to find the IP address for the URL. Name servers, or DNS servers, are servers that contain databases of associated names and IP addresses and provide this information to resolvers on request. If one name server cannot resolve the domain name to its IP address, it passes the query to a higher-authority name server until eventually it reaches a high enough authority that can provide the details required. Namespace refers to the database of Internet IP addresses and their associated names. Namespace is not a database that you can open and view like a normal database, rather this abstract concept describes how the name servers of the world share DNS information. Pieces of it are tangible and are stored on a name server in a resource record, which is a single record that describes one piece of information in the DNS database. In windows a user can force a DNS record update by issuing the following command in a windows console – ipconfig / registerdns DDNS (Dynamic DNS) In DDNS, a service provider runs a program on the user’s computer that notifies the service provider when the user’s IP address changes. Upon notification, the service provider’s server launches a routine that automatically updates the DNS record for that user’s computer. The DNS record update becomes effective throughout the Internet in a matter of minutes DDNS does not take the place of DNS, but is an additional service. It is an affordable solution for small websites that do not want to pay the fees associated with a static IP address. Associating host and domain names with computers on a TCP/IP-based network is performed by the Application layer protocol DNS. Zeroconf (Zero Configuration) Zeroconf is a collection of protocols designed by the IETF to simplify the setup of nodes on a TCP/IP network. It assigns a node an IP address, resolves the nodes host name and IP address without requiring a DNS server, and discovers services available to the node (e.g. print services) without requiring a DNS server. Read up more on Zeroconf in the textbook. Application Layer Protocols Telnet - Telnet is a terminal emulation protocols used to log on to remote hosts using the TCP/IP protocol suite.
- Using Telnet, a TCP connection is established and keystrokes on the user’s machine act like keystrokes on the remotely connected machine
- Telnet is often used to connect two dissimilar systems (e.g. Unix to Windows)
- Telnet is notoriously insecure
- A popular alternative to Telnet is SSH
FTP (File Transfer Protocol) - Used to send and receive files via TCP/IP
- A host running the FTP server portion accepts commands from another host running the FTP client portion
- FTP clients come with a set of simple commands that make up its user interface
TFTP (Trivial File Transfer Protocol) - Enables file transfers between computers, but is simpler than FTP
- TFTP relies on UDP as Transport Layer which means it is connectionless and does not guarantee reliable delivery of data
- TFTP does not require users to log on to the remote host with an ID and password in order to gain access to data
- TFTP does not allow directory browsing
NTP (Network Time Protocol) - NTP is a simple Application layer protocol used to synchronize the clocks of computers on a network
- NTP relies on UDP for Transport Layer services
- NTP uses UDP because it needs an efficient and fast transport layer
NNTP (Network News Transfer Protocol) - NNTP facilitates the exchange of newsgroup messages between multiple servers and users
- Newsgroups require news servers that act as a central collection and distribution point for newsgroup messages
- News servers are organized hierarchically across the Internet, similar to the way DNS servers are organized
- NNTP supports the process of reading newsgroup messages, posting new messages, and transferring news files between the news servers
PING (Packet Internet Groper) - PING is a utility that can verify the TCP/IP is installed, bound to the NIC, configured correctly, and communicating with the network
- It is often used to determine simply if a host is up and responding
- PING uses ICMP servers to send echo request and echo reply messages that determine the validity of an IP address
- You can ping either an IP address or a host name
After reading this you should be able to - Identify a variety of uses for WANs
- Explain different WAN topologies, including their advantages and disadvantages
- Compare the characteristics of WAN technologies, including their switching type, throughput, media, security, and reliability
- Describe several WAN transmission and connection methods, including PSTN, ISDN, T-carriers, DSL, broadband cable, ATM and SONET
- Describe multiple methods for remotely connecting to a network
WAN Essentials - A WAN is a network that traverses some distance and usually connects LANs
- The internet is an example of a WAN (although not a typical one)
- For every business need, a few (or possibly only one appropriate) WAN connection type exists
- LANs and WANs have several fundamental properties in common – typically from Layer 3 of the OSI model and higher
- LANs and WANs typically differ at Layers 1 and 2 of the ODI model in access methods, topologies and sometimes media
- a WAN ink is a connection between one WAN site and another site
- Most WAN links are point-to-point
WAN Topologies - WAN topologies resemble LAN topologies but their details differ because of the distance they cover
- The following sections describes different WAN topologies and special considerations for using each
Bus - A WAN in which each site is directly connected to no more than two other sites in a serial fashion is known as a bus topology WAN
- Each site depends on every other site in the network to transmit and receive its traffic
- LANs use computers with shared access to one cable, whereas the WAN bus topology uses different locations, each one connected to another one through point-to-point links
- A bus topology WAN is often the best option for organizations with only few sites and the capability to use dedicated circuits (T1, DSL & ISDN connections)
- BUS topology model does not scale well so only suitable for small WANs
- A single failure on a bus topology WAN can take down communications between all sites
Ring - Each site is connected to two other sites so that the entire WAN forms a ring pattern]
- Difference between LAN & WAN ring topologies is with the WAN it connects locations rather than local nodes
- On most modern WANs, a ring topology WAN has redundant rings to carry data thus it cannot be taken down by the loss of one site
- Expanding ring configured WANs can be difficult, and it is more expensive than expanding bus topology WANs
- WANs that use ring topology are only practical for connecting fewer than four or five locations
Star - Star topology WANs mimic the arrangement of a star topology LAN
- If a single connection fails, only one location loses WAN access
- Extending a star WAN is relatively simple and less costly than extending a bus or ring topology WAN
- The greatest drawback of a star WAN is that failure at the central connection point can bring down the entire WAN
Mesh - A mesh topology WAN incorporates many directly interconnected sites
- Mesh WANs are the most fault tolerant type of WAN because they provide multiple routes for data to follow between any two points
- The type of mesh topology in which every WAN site is directly connected to every other site is called a full-mesh WAN
- The major drawback of a full mesh WAN is cost
- A more affordable solution is a partial mesh WAN
Tiered - In a tiered topology WAN, sites connected in star or ring formations are interconnected at different levels, with the interconnection points being organized into layers to form hierarchical grouping
- Variations on this topology abound, and flexibility makes the tiered approach quite practical
- The enormous flexibility of the tiered topology requires careful consideration of geography, usage patterns, and growth potential
- Tiered systems allow for easy expansion and inclusion of redundant links to support growth
PSTN (Public Switched Telephone Network) - Refers to the network of lines and carrier equipment that provides telephone service to most homes and businesses
- It is sometimes also called POTS (Plain old Telephone Service)
- Originally PSTN carried only analog traffic, today PSTN uses digital transmission
- The portion of the PSTN that connect any residence or business to the nearest CO is known as the local loop (or the last mile)
- The local loop is the portion of the PSTN most likely still to consist of copper wire
- The advantages to using the PSTN for an internet connection is ubiquity, ease of use and low cost (phone lines are accessible nearly everywhere and affordable)
- PSTN offers only marginal security because of the many points it can be intercepted
- PSTN is not limited to servicing workstation dial-up WAN connections, there are more sophisticated WAN technologies that also rely on the public telephone network
X.25 and Frame Relay X.25 - X.25 is an analog packet switched technology designed for long distance data transmission
- Original standard specified a maximum of 64-Kbps throughput but has been updated to include maximum throughput of 2.048 Mbps
- Originally developed as a more reliable alternative to the voice telephone system for connecting mainframe computers and remote terminals – later adopted for connecting clients and servers over WANS
- Specifies protocols at the Physical, Data Link, and Network Layers of the OSI model
- Provides excellent flow control and ensures data reliability over long distances by verifying transmission at every node
- The verification method makes it comparatively slow and unsuitable for time sensitive applications
- Not popular in the US, but popular elsewhere and for a long time the dominant packet-switching technology used on WANs around the world
Frame Relay - An updated digital version of X.25 that also relies on packet switching
- protocols operate at the Data Link layer
- The name is derived from the fact that data is separated into frames, which are then relayed from one node to another without any verification or processing
- Important difference between frame relay and X.25 is that frame relay does not guarantee reliable delivery of data, frame relay simply checks for errors and leaves error correct up to higher level layer
- Offers throughputs between 64 Kbps and 45 Mbps
Both Frame Relay and X.25 - Rely on virtual circuits which are connection between network nodes that although based on potentially disparate links, logically appear to be direct, dedicated links between those nodes
- One advantage of virtual circuits is their configurable use of limited bandwidth which can make them more efficient
- A virtual circuit uses a channel only when it needs to transmit data – leaving the channel available for use by other virtual circuits
- X.25 & Frame Relay may be configured as SVCs (switched virtual circuits) or PVCs (permanent virtual circuits)
- SVCs are connections that are established when parties need to transmit, then terminated after the transmission is complete
- PVCs are connections that are established before data needs to be transmitted and maintained after the transmission is complete
- Frame relays & X.25 are a fairly old technology an have been replaced by newer technologies in most of the world
PVCs are not dedicated, individual links. When leasing X.25 or frame relay circuit from your local carrier, your contract reflects the endpoints you specify and the amount of bandwidth you require between those endpoints. The service provider guarantee's a minimum amount of bandwidth called the CIR (committed information rate). PVC links are best suited to frequent and consistent data transmission. The advantage of leasing a frame relay circuit over leasing a dedicated service is that you pay for only the amount of bandwidth required. ISDN (Integrated Services Digital Network) - An international standard
- Specifies protocols at the Physical, Data Link, and Transport layers of the OSI model
- Handle signaling, framing, connection setup and termination, routing, flow controls, and error detection and correction
- Relies on PSTN for transmission medium
- Connections can be either dialup or dedicated
- ISDN can simultaneously carry as many as two voice calls and one data connection on a single line
- All ISDN connections are based on two types of channels: B channels and D channels.
- B channel is the “bearer” channel, employing circuit switching techniques to carry voice, video, and audio
- A single B channel has a maximum throughput 64 Kbps depending on the type of ISDN connection
- The number of B channels in a single ISDN connection may vary
- The D channel is the data channel
- Each ISDN uses only one D channel with a maximum throughput of either 16 or 64 Kbps depending on the type of ISDN connection
- You get two types of ISDN, PRI (Primary Rate Interface) and BRI (Basic Rate Interface) with BRI being the more common one for home use
- ISDN has a limit of 18000 linear feat before a repeater is required thus it is only feasible for the local loop portion of the WAN link
T-Carriers - T-carrier standards specify a method of signaling, which means they belong to the Physical layer of the OSI model
- A T-carrier uses TDM (time division multiplexing) over two wire pairs (one for transmitting and one for receiving) to divide a single channel into multiple channels
- Multiplexing allows a single T1 circuit to carry 24 channels, each capable of 64 Kbps thus a T1 connection has a maximum capacity of 1.544 Mbps
- Each channel may carry data, voice, or video signals
- T-carrier medium for signaling can be ordinary telephone wire, fiber-optic cable, or wireless links
Types of T-Carriers - A number of T-carrier varieties are available including T1’2, T2’s, T3’s etc.
- The speed of a T-carrier depends on its signal level
- DS0 (digital signal, level 0) is the equivalent of one data or voice channel – all other signal levels are multiples of DS0
T-Carrier Connectivity - T-carrier lines require specialized connectivity hardware that cannot be used with other WAN transmission methods
- T-carrier lines require different media, depending on their throughput
- T1 technology can use UTP or STO copper wiring (plain telephone wire, coax, microwave or fiber-optic)
- The faster the connection, the better the wiring (i.e. a T3 connection needs fiber-optic cabling or microwave)
- Smart jacks are required at the terminating point. They also function as a monitoring point to the connection
- CSU/DSU (Channel Service Unit / Data Service Unit) – although separate devices they are typically combined on a single electronic card.
- CSU provides termination for the digital signal and ensures connection integrity through error correction and line monitoring
- DSU converts the T-carrier frames into frames the LAN can interpret and vice versa
- A DSU usually incorporates a multiplexer
- Terminal Equipment consists of switches, routers, or bridges. the router switch accepts incoming signals from a CSU/DSU and, if necessary, translates Network layer protocols, then directs data to its destination exactly as it does on any LAN.
DSL (Digital Subscriber Line) - Operates over the PSTN and competes directly with ISDN & T1 services
- DSL can span only limited distances without the help of repeaters thus best suited to the local loop portion of a WAN link
- Can support multiple data and voice channels over a single line
- A DSL connection may use a modulation technique based on amplitude or phase modulation
- The details of DSL modulation are beyond the scope of this course
- The type of modulation used by a DSL version affect its throughput and the distance it signals can travel before requiring a repeater
Types of DSL - xDSL refers to all DSL varieties – at least 8 currently exist
- ADSL (Asymmetric DSL)
- G.Lite (a version of ADSL)
- HDSL (High Bit-Rate DSL)
- SDSL (Symmetric or Single line DSL)
- VDSL (Very high bit rate DSL)
- SHDSL (Single line high bit rate DSL)
DSL varieties can be broken into two categories - Asymmetrical – offers more throughput in one direction than in the other (typically faster downstream than upstream connection)
- Symmetrical – offers equal capacity for data traveling upstream and downstream
Broadband Cable - Broadband cable or cable modem access is based on the coaxial cable wiring used for TV signals
- Broadband is asymmetrical in nature
- Operates at the Physical and Data Link layer of the OSI model
ATM (Asynchronous Transfer Mode) - ATM is a third WAN technology that functions in the Data Link layer.
- In asynchronous communications, a node can transmit at any instant, and the destination node must accept the transmission as it comes
- ATM may run over fiber optic cable, Cat 5 or higher UTP or STP cable
- ATM specifies Data Link layer framing techniques at a fixed packet size
- In ATM, a packet is called a cell and always consists of 48 bytes of data plus a 5 byte header (53 bytes in total)
- On a ATM network, switches determine the optimal path between the sender and receiver, then establish this path before the network transmits data
- ATM is a connection oriented technology
- ATM’s throughput rivals any other described in this chapter
- ATM is relatively expensive, and is rarely used on small LANs
- Gigabit Ethernet has replaced ATM on many networks
- Where ATM is still used, it’s often deployed over the popular SONET WAN technology
SONET (Synchronous Optical Network) - High-bandwidth WAN signaling technique
- Specifies framing and multiplexing techniques at the Physical layer of the OSI model
- It has 4 key strengths
- It can integrate many other WAN technologies
- It offers fast data transfer rates
- It allows for simple link additions and removals
- It provides a high degree of fault tolerance
- The word synchronous as used in the name of this technology means that data being transmitted and received by nodes must conform to a timing scheme
- Possibly the most important factor for SONET is that it provides interoperability
- The data rate of a particular SONET ring is indicated by its OC (Optical Carrier) level
- SONET technology it typically not implemented by small or medium sized businesses because of its high cost
Remote Connectivity - Many remote access methods exist, and they vary according to the type of transmission technology, clients, hosts, and software they can or must use
Dial-up Networking - Refers to dialing directly into a private network’s ISP’s remote access server to log on to a network
- To accept client connections, the remote access server is attached to a group of modems, all of which are associated with one phone number
- When a connection is made, the remote access server presents the remote user with a prompt for his credentials
RAS (Remote Access Server) - A remote client attempting to connect to a LAN or WAN requires a server to accept its connection and grant it privileges to the network’s resources
- Many types of remote access servers exist
- RRAS (Routing and Remote Access Service) is Microsoft’s remote access software available with Windows Server
- RRAS enables a computer to accept multiple remote client connections over any type of transmission path
- Remote access servers depend on several types of protocols to communicate with clients as described in the next section
Remote Access Protocols - To exchange data, remote access servers and clients require special protocols
- SLIP (Serial Line Internet Protocol) and PPP (Point-to-Point Protocol) are two protocols that enable a workstation to connect to another computer using a serial connection
- Such protocols are necessary to transport Network layer traffic over serial interfaces, which belong to the Data Link layer of the OSI model
- Both SLIP and PPP encapsulate higher-layer networking protocols such as TCP and IP in their lower-layer data frames
- SLIP is an earlier and much simpler version of the protocol than PPP
- SLIP can carry only IP packets whereas PPP can carry many different types of Network layer packets
- SLIP requires significantly more setup than PPP
- SLIP supports only asynchronous data transmission, PPP supports both asynchronous and synchronous transmission
- When PPP is used over an Ethernet network it is known as PPPoE (PPP over Ethernet)
Remote Virtual Computing - Remote virtual computing allows a user on one computer to control another computer across a network connection
- Many types of remote virtual computing software exist including Remote Desktop, VNC or ICA
VPNs (Virtual Private Networks) - VPNs are wide area networks that are logically defined over public transmission systems
- VPNs provide a way of constructing a convenient and relatively inexpensive WAN
- Two important considerations when designing a VPN are interoperability and security
- VPN protocols encapsulate higher-layer protocols in a process known as tunneling
- Two major types of tunneling protocols are used on contemporary VPN’s: PPTP or L2TP
- PPTP (Point to Point Tunneling Protocol) was developed by Microsoft that expands on PPP
- L2TP (Layer 2 Tunneling Protocol) was developed by Cisco
|