Some groups of IP addresses are reserved for use only in private networks and are not routed over the Internet. These are called private IP addresses and have the following ranges:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
Home networking equipment/devices usually are configured in the factory with an IP address in the range 192.168.1.1 to 192.168.1.255.
You may be wondering how devices using private addresses could ever access the Internet if the use of private addresses on the Internet is illegal. The situation gets even more confusing if you consider the fact that hundreds of thousands of office and home networks use these same addresses. This must cause networking confusion. Don't worry, this problem is overcome by NAT.
The localhost IP Address
Whether or not your computer has a network interface card it will have a built-in IP address with which network-aware applications can communicate with one another. This IP address is defined as 127.0.0.1 and is frequently referred to as localhost. This concept is important to understand, and will be revisited in many later chapters.
TCP/IP is a universal standard suite of protocols used to provide connectivity between networked devices. It is part of the larger OSI model upon which most data communications is based.
One component of TCP/IP is the Internet Protocol (IP) which is responsible for ensuring that data is transferred between two addresses without being corrupted.
For manageability, the data is usually split into multiple pieces or packets each with its own error detection bytes in the control section or header of the packet. The remote computer then receives the packets and reassembles the data and checks for errors. It then passes the data to the program that expects to receive it.
How does the computer know what program needs the data? Each IP packet also contains a piece of information in its header called the type field. This informs the computer receiving the data about the type of layer 4 transportation mechanism being used.
The two most popular transportation mechanisms used on the Internet are Transmission Control Protocol (TCP) and User Datagram Protocol (UDP).
When the type of transport protocol has been determined, the TCP/UDP header is then inspected for the "port" value, which is used to determine which network application on the computer should process the data. This is explained in more detail later.
TCP Is a Connection-Oriented Protocol
TCP opens up a virtual connection between the client and server programs running on separate computers so that multiple and/or sporadic streams of data can be sent over an indefinite period of time between them. TCP keeps track of the packets sent by giving each one a sequence number with the remote server sending back acknowledgment packets confirming correct delivery. Programs that use TCP therefore have a means of detecting connection failures and requesting the retransmission of missing packets. TCP is a good example of a connection-oriented protocol.
How TCP Establishes A Connection
Any form of communication requires some form of acknowledgement for it to become meaningful. Someone knocks on the door to a house, the person inside asks "Who is it?", to which the visitor replies, "It's me!" Then the door opens. Both persons knew who was on the other side of the door before it opened and now a conversation can now begin.
TCP acts in a similar way. The server initiating the connection sends a segment with the SYN bit set in TCP header. The target replies with a segment with the SYN and ACK bits set, to which the originating server replies with a segment with the ACK bit set. This SYN, SYN-ACK, ACK mechanism is often called the "three-way handshake".
The communication then continues with a series of segment exchanges, each with the ACK bit set. When one of the servers needs to end the communication, it sends a segment to the other with the FIN and ACK bits set, to which the other server also replies with a FIN-ACK segment also. The communication terminates with a final ACK from the server that wanted to end the session.
This is the equivalent of ending a conversation by saying "I really have to go now, I have to go for lunch", to which the reply is "I think I'm finished here too, see you tomorrow..." The conversation ends with a final "bye" from the hungry person.
Here is a modified packet trace obtained from the tethereal program. You can clearly see the three way handshake to connect and disconnect the session.
In this trace, the sequence number represents the serial number of the first byte of data in the segment. So in the first line, a random value of 9766 was assigned to the first byte and all subsequent bytes for the connection from this host will be sequentially tracked. This makes the second byte in the segment number 9767, the third number 9768 etc. The acknowledgment number or Ack, not to be confused with the ACK bit, is the byte serial number of the next segment it expects to receive from the other end, and the total number of bytes cannot exceed the Win or window value that follows it. If data isn't received correctly, the receiver will re-send the requesting segment asking for the information to be sent again. The TCP code keeps track of all this along with the source and destination ports and IP addresses to ensure that each unique connection is serviced correctly.
UDP, TCP's "Connectionless" Cousin
UDP is a connectionless protocol. Data is sent on a "best effort" basis with the machine that sends the data having no means of verifying whether the data was correctly received by the remote machine. UDP is usually used for applications in which the data sent is not mission-critical. It is also used when data needs to be broadcast to all available servers on a locally attached network where the creation of dozens of TCP connections for a short burst of data is considered resource-hungry.
TCP and UDPPorts
The data portion of the IP packet contains a TCP or UDP segment sandwiched inside. Only the TCP segment header contains sequence information, but both the UDP and the TCP segment headers track the port being used. The source/destination port and the source/destination IP addresses of the client & server computers are then combined to uniquely identify each data flow.
Certain programs are assigned specific ports that are internationally recognized. For example, port 80 is reserved for HTTP Web traffic, and port 25 is reserved for SMTP e-mail. Ports below 1024 are reserved for privileged system functions, and those above 1024 are generally reserved for non-system third-party applications.
Usually when a connection is made from a client computer requesting data to the server that contains the data:
The client selects a random previously unused "source" port greater than 1024 and queries the server on the "destination" port specific to the application. If it is an HTTP request, the client will use a source port of, say, 2049 and query the server on port 80 (HTTP)
The server recognizes the port 80 request as an HTTP request and passes on the data to be handled by the Web server software. When the Web server software replies to the client, it tells the TCP application to respond back to port 2049 of the client using a source port of port 80.
The client keeps track of all its requests to the server's IP address and will recognize that the reply on port 2049 isn't a request initiation for "NFS", but a response to the initial port 80 HTTP query.
You need to know all the steps needed to configure IP addresses on a NIC card. Web site shopping cart applications frequently need an additional IP address dedicated to them. You also might need to add a secondary NIC interface to your server to handle data backups. Last but not least, you might just want to play around with the server to test your skills.
This section shows you how to do the most common server IP activities with the least amount of headaches.
Determining Your IP Address
Most modern PCs come with an Ethernet port. When Linux is installed, this device is called eth0. You can determine the IP address of this device with the ifconfig command.
In this example, eth0 has no IP address because this box is using wireless interface wlan0 as its main NIC. Interface wlan0 has an IP address of 192.168.1.100 and a subnet mask of 255.255.255.0
You can see that this command gives good information on the interrupts, or PCI bus ID, used by each card. On very rare occasions you might find that your NIC card doesn't work because it shares both an interrupt and memory access address with some other device. You can look at the contents of the /proc/interrupts file to get a listing of all the interrupt IRQs used by your system. In the example below we can see that there are no conflicts with each IRQ from 0 to 15 having only a single entry. Devices eth0 and eth1 use interrupts 10 and 5, respectively:
[root@bigboy tmp]# cat /proc/interrupts
CPU0
0: 2707402473 XT-PIC timer
1: 67 XT-PIC i8042
2: 0 XT-PIC cascade
5: 411342 XT-PIC eth1
8: 1 XT-PIC rtc
10: 1898752 XT-PIC eth0
11: 0 XT-PIC uhci_hcd
12: 58 XT-PIC i8042
14: 5075806 XT-PIC ide0
15: 506 XT-PIC ide1
NMI: 0
ERR: 43
[root@bigboy tmp]#
If there are conflicts, you might need to refer to the manual for the offending device to try to determine ways to either use another interrupt or memory I/O location.
Changing Your IP Address
If you wanted, you could give this eth0 interface an IP address using the ifconfig command.
[root@bigboy tmp]# ifconfig eth0 10.0.0.1 netmask 255.255.255.0 up
The "up" at the end of the command activates the interface. To make this permanent each time you boot up you'll have to add this command in your /etc/rc.local file which is run at the end of every reboot.
Fedora Linux also makes life a little easier with interface configuration files located in the /etc/sysconfig/network-scripts directory. Interface eth0 has a file called ifcfg-eth0, eth1 uses ifcfg-eth1, and so on. You can place your IP address information in these files, which are then used to auto-configure your NICs when Linux boots. See Figure 3-1 for two samples of interface eth0. One assumes the interface has a fixed IP address, and the other assumes it requires an IP address assignment using DHCP.
UNIX was originally developed circa 1969 in AT&T Bell Labs. Key developers: Dennis Richie and Ken Thompson.
Development was coupled to the invention of the C programming language, which allowed UNIX to be semi-portable to different hardware. (11,000 lines of portable C and 1000 lines of machine dependent assembler in those early days)
As discussed below, UNIX includes a kernel and a number of small components and utilities built to work with the kernel.
Circa 1974 the source was made available to selected Universities, including the U of T and especially Berkeley. This led to different "flavors" of UNIX. The code remained property of AT&T and the Universities signed non-disclosure agreements.
In about 1979 various commericial vendors began to adopt UNIX under license from AT&T. The number of flavors increased (System V, BSD, HP-UX, Solaris, IRIX, etc.).
In 1984 Richard Stallman drove the beginnings of the Open Source movement with the foundation of GNU. (GNU stands for "Gnu is Not Unix."). Later this became the Free Software Foundation. They began introduce open source products to work under UNIX.
m
One of their first and biggest successes was developing a C compiler, gcc, that was superior to any commercially available ones.
Virtually all of the proprietary utilities, shells, etc. that are associated with UNIX have now been re-written by GNU as Open Source.
In 1991 21 year old Linus Torvalds wanted to buy a UNIX for his own computer but couldn't afford it. So he began writing a UNIX-like operating system called Linux. He made it Open Source.
With the Linux kernel and all of the GNU utilities available as Open Source, the GNU/Linux computing environment is at least as rich and powerful as the proprietary UNIX one.
Below we will occasionally refer to "UNIX/Linux," implying that UNIX and Linux are synonyms. From the standpoint of a user this is largely true. We should more properly refer to "UNIX-GNU/Linux" to give proper credit to GNU for their important role in the Linux computing environment.
Under the terms of the GPL, any person may obtain and change the code covered under the license, but must make those changes available at no charge to the world.
m
The terms of the license means, for example, that a commercial vendor of GNU/Linux, such as Red Hat, must make their distribution available at no charge.
HOME /COMPUTER/HARDWARE/MONITOR/KEYBOARD/PRINTERS/SCANNER/MOUSE/HARD DISK DRIVE/ZIP DRIVE/PEN DRIVE/MOTHERBOARD/PROCESSORS/DVD DRIVES/CD DRIVES//RAM/ROM/ MEMORY/VIRTUAL MEMORY/
Computer networks may be classified according to the network topology upon which the network is based, such as Bus network, Star network, Ring network, Mesh network, Star-bus network, Tree or Hierarchical topology network, etc.
Network Topology signifies the way in which devices in the network see their logical relations to one another. The use of the term "logical" here is significant. That is, network topology is independent of the "physical" layout of the network. Even if networked computers are physically placed in a linear arrangement, if they are connected via a hub, the network has a Star topology, rather than a Bus Topology. In this regard the visual and operational characteristics of a network are distinct; the logical network topology is not necessarily the same as the physical layout.
In communication networks, a topology is a usually schematic description of the arrangement of a network, including its nodes and connecting lines. There are two ways of defining network geometry: the physical topology and the logical (or signal) topology.
The physical topology of a network is the actual geometric layout of workstations. There are several common physical topologies, as described below and as shown in the illustration.
In the bus network topology, every workstation is connected to a main cable called the bus. Therefore, in effect, each workstation is directly connected to every other workstation in the network.
In the star network topology, there is a central computer or server to which all the workstations are directly connected. Every workstation is indirectly connected to every other through the central computer.
In the ring network topology, the workstations are connected in a closed loop configuration. Adjacent pairs of workstations are directly connected. Other pairs of workstations are indirectly connected, the data passing through one or more intermediate nodes.
If a Token Ring protocol is used in a star or ring topology, the signal travels in only one direction, carried by a so-called token from node to node.
The mesh network topology employs either of two schemes, called full mesh and partial mesh. In the full mesh topology, each workstation is connected directly to each of the others. In the partial mesh topology, some workstations are connected to all the others, and some are connected only to those other nodes with which they exchange the most data.
The tree network topology uses two or more star networks connected together. The central computers of the star networks are connected to a main bus. Thus, a tree network is a bus network of star networks.
Logical (or signal) topology refers to the nature of the paths the signals follow from node to node. In many instances, the logical topology is the same as the physical topology. But this is not always the case. For example, some networks are physically laid out in a star configuration, but they operate logically as bus or ring networks.
All networks are made up of basic hardware building blocks to interconnect network nodes, such as Network Interface Cards (NICs), Bridges, Hubs, Switches, and Routers. In addition, some method of connecting these building blocks is required, usually in the form of galvanic cable (most commonly Category 5 cable). Less common are microwave links (as in IEEE 802.11) or optical cable ("optical fiber").
Network Interface Cards
A network card, network adapter or NIC (network interface card) is a piece of computer hardware designed to allow computers to communicate over a computer network. It provides physical access to a networking medium and often provides a low-level addressing system through the use of MAC addresses. It allows users to connect to each other either by using cables or wirelessly.
Repeaters
A repeater is an electronic device that receives a signal and retransmits it at a higher level or higher power, or onto the other side of an obstruction, so that the signal can cover longer distances without degradation. In most twisted pair ethernet configurations, repeaters are required for cable runs longer than 100 meters.
Hubs
A hub contains multiple ports. When a packet arrives at one port, it is copied to all the ports of the hub for transmission. When the packets are copied, the destination address in the frame does not change to a broadcast address. It does this in a rudimentary way, it simply copies the data to all of the Nodes connected to the hub.
Bridges
A network bridge connects multiple network segments at the data link layer (layer 2) of the OSI model. Bridges do not promiscuously copy traffic to all ports, as hubs do, but learns which MAC addresses are reachable through specific ports. Once the bridge associates a port and an address, it will send traffic for that address only to that port. Bridges do send broadcasts to all ports except the one on which the broadcast was received. Bridges learn the association of ports and addresses by examining the source address of frames that it sees on various ports. Once a frame arrives through a port, its source address is stored and the bridge assumes that MAC address is associated with that port. The first time that a previously unknown destination address is seen, the bridge will forward the frame to all ports other than the one on which the frame arrived.
Bridges come in three basic types:
Local bridges: Directly connect local area networks (LANs)
Remote bridges: Can be used to create a wide area network (WAN) link between LANs. Remote bridges, where the connecting link is slower than the end networks, largely have been replaced by routers.
Wireless bridges: Can be used to join LANs or connect remote stations to LANs.
Switches
A switch is a device that performs switching. Specifically, it forwards and filters OSI layer 2 datagrams (chunk of data communication) between ports (connected cables) based on the Mac-Addresses in the packets. This is distinct from a hub in that it only forwards the datagrams to the ports involved in the communications rather than all ports connected. Strictly speaking, a switch is not capable of routing traffic based on IP address (layer 3) which is necessary for communicating between network segments or within a large or complex LAN. Some switches are capable of routing based on IP addresses but are still called switches as a marketing term. A switch normally has numerous ports with the intention that most or all of the network be connected directly to a switch, or another switch that is in turn connected to a switch. Switches is a marketing term that encompasses routers and bridges, as well as devices that may distribute traffic on load or by application content (e.g., a Web URL identifier). Switches may operate at one or more OSI layers, including physical, data link, network, or transport (i.e., end-to-end). A device that operates simultaneously at more than one of these layers is called a multilayer switch. Overemphasizing the ill-defined term "switch" often leads to confusion when first trying to understand networking. Many experienced network designers and operators recommend starting with the logic of devices dealing with only one protocol level, not all of which are covered by OSI. Multilayer device selection is an advanced topic that may lead to selecting particular implementations, but multilayer switching is simply not a real-world design concept.
Routers
Routers are networking devices that forward data packets between networks using headers and forwarding tables to determine the best path to forward the packets. Routers work at the network layer of the TCP/IP model or layer 3 of the OSI model. Routers also provide interconnectivity between like and unlike media (RFC 1812). This is accomplished by examining the Header of a data packet, and making a decision on the next hop to which it should be sent (RFC 1812) They use preconfigured static routes, status of their hardware interfaces, and routing protocols to select the best route between any two subnets. A router is connected to at least two networks, commonly two LANs or WANs or a LAN and its ISP's network. Some DSL and cable modems, for home (and even office) use, have been integrated with routers to allow multiple home/office computers to access the Internet through the same connection. Many of these new devices also consist of wireless access points (waps) or wireless routers to allow for IEEE 802.11b/g wireless enabled devices to connect to the network without the need for a cabled connection.
The OSI layer was introduced by the International Organization for Standardization (ISO) in 1984 in order to provide a reference model to make sure products of different vendors would interoperate in networks.
·OSI is short for Open System Interconnection.
·The OSI layer shows WHAT needs to be done to send data from an application on one computer, trough a network, to an application on another computer, not HOW it should be done.
·A layer in the OSI model communicates with three other layers: the layer above it, the layer below it, and the same layer at its communication partner.
·Data transmitted between software programs passes all 7 OSI layers.
·The Application, Presentation and Session layers are also known as the Upper Layers.
·The Data Link and Physical layers are often implemented together to define LAN and WAN specifications.
Data Encapsulation
·Data Encapsulation is the process of adding a header to wrap the data that flows down the OSI model.
·Each OSI layer may add it's own header to the data received from above. (from the layer above or from the software program 'above' the Application layer.)
·The 5 Steps of Data Encapsulation are:
·1. The Application, Presentation and Session layers create DATA from users' input.
·2. The Transport layer converts the DATA to SEGMENTS
·3. The Network layer converts the SEGMENTS to PACKETS (or datagrams)
·4. The Data Link layer converts the PACKETS to FRAMES
·5. The Physical layer converts the FRAMES to BITS.
·At the sending computer the information goes from top to bottom while each layers divides the information received from upper layers in to smaller pieces and adds a header. At the receiving computer the information flows up the model discarding the corresponding header at each layer and putting the pieces back together.
(Although the data block shown in the animation below does not change size, it actually gets smaller as it passes down the OSI model until is goes in bits / electrical signals over the physical network cable.)
Application Layer (Layer 7)
·Provides network services directly to applications. Type of software programs vary a lot: from groupware and web browser to Tactical Ops(video game). Software programs itself are not part of the OSI model.
·Determines the identity and availability of communication partners, and determines if sufficient resources are available to start program-to-program communication.
·This layer is closest to the user.
·Examples of Application layer protocols are:
·Telnet
·SMTP
·FTP
·SNMP
·NCP
·SMB
·Gateways operate at this layer.
·Transmits Data.
Presentation Layer (Layer 6)
·Defines coding and conversion functions.
·Ensures that information sent from the application layer of one system is readable by the application layer of another system.
·Includes common data representation formats, conversion of character representation formats, common data compression schemes, and common data encryption schemes, common examples of these formats and schemes are:
·MPEG, QuickTime
·ASCII, EBCDIC
·GIF, TIFF, JPEG
·Gateways operate at this layer.
·Transmits Data.
Session Layer (Layer 5)
·The session layer establishes, manages, maintains and terminates communication channels between software programs on network nodes.
·Provides error reporting for the Application and Presentation layer.
·Examples of Session layer protocols are:
·NFS
·SQL
·RPC
·Zone Information Protocol (ZIP)
·Gateways operate at this layer.
·Transmits Data.
Transport Layer (Layer 4)
·The main purpose of this layers is making sure that the data is delivered error-free and in the correct sequence.
·Establishes, maintains and terminates virtual circuits.
·Provides error detection and recovery.
·Is concerned with reliable and unreliable transport. When using a connection-oriented, reliable transport protocol, such as TCP, acknowledgments are send back to the sender to confirm that the data has been received.
·Provides Flow Control and Windowing.
·Provides multiplexing; the support of different flows of data to different applications on the same host.
·UDP (connectionless, unreliable, less overhead, reliability can be provided by the Application layer)
·Gateways operate at this layer.
·Transmits Segments.
Network Layer (Layer 3)
·Defines logical addressing for nodes and networks/segments.
·Enables internetworking, passing data from one network to another.
·Defines the logical network layout so routers can determine how to forward packets trough an internetwork.
·Routing occurs at this layer, hence Routed and Routing protocols reside on this layer.
·Routed protocols are used to encapsulate data into packets. The header added by the Network layer contains a network address so it can be routed trough an internetwork.
·Examples of Network layer Routed protocols are:
·IP
·IPX
·AppleTalk
·Routing protocols are used to create routing tables; routing tables are used to determine the best path / route. Routing protocols provide periodic communication between routers in an internetwork to maintain information on network links in a routing table.
·Examples of Network layer Routing protocols are:
·OSPF
·IGRP/EIGRP
·RIP
·BGP
·NLSP
·Transmits Packets.
·Routers operate at this layer.
Data Link Layer (Layer 2)
·Defines psychical addressing, network topology, and is also concerned with error notification, sequencing of frames and flow control.
·Examples of network topologies are:
·Star
·Bus
·Ring
·Physical addresses are also known as hardware and BIA's (Burned In Addressess) but most commonly as MAC addresses.
·Examples of Data Link LAN specifications are:
·Ethernet
·FastEthernet
·Token Ring
·FDDI
·Examples of Data Link WAN specifications are:
·Frame Relay (operates also on the Physical layer)
·PPP (operates also on the Physical layer)
·X.25 (operates also on the Physical and Network layer)
·Transmits Frames.
·Bridges and Switches operate at this layer.
The Data Link layer consists of two sublayers:
·LCC (Logical Link Control) Layer
·Manages communication between devices over a single link of a network.
·Enables multiple higher-layer protocols to share a single physical data link.
·MAC Layer
·Manages protocol access to the physical network medium.
·Determines hardware addresses.
Physical Layer (Layer 1)
·The physical layer defines the electrical, mechanical, procedural, and functional specifications for activating, maintaining, and deactivating the physical link between communicating network systems.
·Physical layer specifications define characteristics such as:
·voltage levels
·timing of voltage changes
·physical data rates
·maximum transmission distances
·physical connectors
·Physical layer implementations can be categorized as either LAN or WAN specifications.