I have always been fascinated by computers and technology when my parents bought me a computer. I spent most of my time trying to figure out it how it operates by searching the internet for answers. At first I thought it was as simple as just clicking icons and programs, but through my newly developed interest in technology I got to understand how complex technology is. With rapid technological advancements, I learned that it was impossible to learn all the complex elements that enable computers work. However, I developed an interest in computer networks. The fact that computers can communicate with other computers through a connection known as a network, made me really curious on how and what enabled this to happen. At first I only knew of Windows based operating system and had no idea of UNIX. However, I once heard of UNIX in a lesson in high school, but due to my wide knowledge and experience with Windows, I did not get so interested.
When I joined college and started my technology course, I once came across a senior student who was studying a degree in computer science; he was on his computer just typing commands on a command terminal. He also had some network equipment like routers and switches, and out of curiosity, I asked what he was doing. He was trying to configure the routers for a class practical using UNIX operating system. That was when I became interested in the UNIX network environment. The environment was very different from the Windows environment as UNIX had the ability to string utilities and commands altogether enabling multi-tasking. I realized that to have a better understanding of how networks operate, I must learn how to manage a UNIX network environment.
In this article I want to research and learn about how I can manage a UNIX network and how it operates. I think networking in UNIX is more complex than Windows based networking. Although both have a command based interface, UNIX seems more complex as it relies on commands most of the time. However, the use of commands in almost every operation makes it more secure than Windows, from my understanding. As I still don’t know much about UNIX networking, I would like to learn where it originated from, the basics, and other important factors. In simple terms I would like to know what a UNIX network administrator knows. I will learn the UNIX network environment in numerous topics to help me easily understand. UNIX is indeed the pioneer of TCP/IP network based model.
Evolution of UNIX networking
I first started my research on the evolution of the UNIX based networks. It all began in 1965, when the Multics (Multiplexed Information and Computing Service) project was started with an aim of developing a cheap general purpose operating system (Horwitz, 2002). However, the project stopped and it was only by the determination of computer scientists Ken Thompson, Brian, Kernighan, Joe Ossanna, Michael Lesk, Douglas Mcllory, and Dennis Ritchie (all employees to AT&T company), that UNIX operating system was developed. At first, the system was written using assembly language but advanced to C programming language that increased its usage and ability to support more peripherals. In 1978, Ken Thompson developed another version of the UNIX known as Berkeley Software Distribution (BSD) version. Since it was a free and open source code, other individuals developed it to System V (SVR4) (Horwitz, 2002).
TCP/IP
The biggest contribution that really caught my attention was the TCP/IP platform. TCP/IP was a channel of connecting computers and the internet using internet protocol addresses. Surprisingly, I learnt that the internet was based and is still based on UNIX. The internet is comprised of millions of computers and uses interconnected with the internet protocol set. TCP and IP are layered communications with four layers (Cormany, 2008). The first layer is the network access layer that is responsible for changing datagrams into a language that can be put in hardware or machine language. This is where protocols like ICMP and OSPF protocols are applied (Cormany, 2008). The second layer is the internet layer which uses the internet protocol to define addressing schemes, routing datagrams, and IP datagrams between two remote hosts. It hides the hardware requirements for the other layers through the use of IP addresses. The third layer is the transport layer, which transforming relayed data from the other two layers into correct datagrams for transmission through the user datagram protocol (UDP) (Cormany, 2008). Moreover, it sets other transmission controls, such as reliable delivery and error detection. The fourth layer is the application layer, which is what the user gets or the final transmitted data. This layer is involves protocol like file transmission protocol (FTP) and SMTP mail services (Schroder, 2005).
The transmission control protocol (TCP) and the user datagram protocol (UDP) are the most important protocols in a UNIX networking as they are used in all the four layers of the TCP/IP networking model. TCP connection or communications work like a phone connection, where two ends must connect and create a stream or channel before any information can be sent from one host to the other. When information is sent, TCP has to check on the destination host and verify that the information received is in the manner it was sent in. The user datagram protocol (UDP) operates like a postal service, where information is transmitted as individual messages (known as datagrams or packets) (Cormany, 2008). The packets follow different routes to the destination host and it is mostly considered unreliable because the some packets may not be delivered in the process. TCP is more reliable because it establishes a connection first before transmitting any information. Moreover, TCP is widely used in transporting large amounts of data securely, while UDP in transporting small occasional information. The fact that all other operating systems adopted the TCP/IP model from UNIX makes the topic more interesting as it is certainly the origin of computer networking.
Addresses and Names
In UNIX every machine or computer on a network has a distinctive number or address that is used by network protocols to transmit and deliver required information to the right host. The host address is the unique number protocols use to transmit and deliver datagrams or packets such as 137.2.1.4 that can the machine of user John in the U.S while another Jackie in China can have 165.234.1.34 as their unique address. The host name is used to give users a distinctive identifier that they can easily remember. For instance, the host’s address is 137.2.1.4 and has the host name John inside the domain cde.edu.au, which is easier for humans to remember. Addresses are usually 32 bit numbers characterized by four 8 bit parted by full stops like 165.234.1.34, and have a maximum range of 256 numbers (0-256) (Cormany, 2008). These numbers are known as IP addresses because they are used by the IP protocol in transmitting and delivering information to hosts. For information to be transmitted and received in the internet, every machine must have a distinctive IP address. The IP addresses have to be configured by the administrator to ensure they are no conflict. There are some addresses that are purposely reserved for different things, such as 127.0.0.1 that is a loopback address that refers to the host sending information and network.255 that is used as a broadcast address to send a single message to multiple recipient hosts (Schroder, 2005).
However, as users cannot remember all the IP addresses in a network especially the internet, UNIX has a way of creating host names from IP addresses. The host name contains four things including hostname, location, domain, and country in that order. A host name is the machine’s name, a location is the name of the place the machine is, domain is the user group the machine belongs to, and country is the name of the country the machine is found (Hunt, 2002). For instance, john.cde.edu.au means john is the host name, cde the site, edu is the domain, and au the country. This is what humans can understand but for the machine to understand, it must resolve the names to IP addresses. UNIX uses two methods to resolve names. One is by /etc/hosts File that is a text file containing one line per every host. All machines in a UNIX network have these files and due to their large amount, they use domain name service (DNS) to translate the names to addresses (Horwitz, 2002).
Routing
In my research, I discovered that for the UNIX network operates in an amazing manner. Routing enables packets of information know where they destination host. For instance, if there is local area network (LAN) comprised of three computers and one computer sends a packet, all the machines will see that packet, but will ignore it except the computer with the same address of the packet, which will request for it. Through this process, no one can access information they are not supposed to. For the packet to accept the request from the destination host it must compare its IP address and media access control address (MAC). A MAC address is a distinctive identification number that is inbuilt in all network card manufacturers (Hunt, 2002). Each packet sent contains the destinations host’s mac address and IP address. However, there has to be an address translation between the IP and Ethernet address through the Address Resolution Protocol.
Network Services
So far I have learnt how hosts communicate and what is involved in between. When managing a network in UNIX environment it is important to understand numerous network services are provided. There are different types of network services like FTP, Email, instant messenger, and others, these serves use network ports to send and receive information on the specific network service (Horwitz, 2002). They act as logical networks through which information streams to and from a machine. Network daemons are other important elements in ensuring users get network services. They are applications that wait and listen to defined network ports and wait for requests from other hosts. Network client applications are used to access network services, like using Microsoft Outlook to check email or using Yahoo Messenger to chat. Network protocols are also required in accessing different types of network services. This is basically how computers are able to communicate in a UNIX system.
Security
With my keen interest in computer networking, I also took time to research on user accounts and security. Security in UNIX is commonly managed through access lists that filters hosts and decides which ones to allow access and deny access (Schroder, 2005). In securing certain network services like file transfer, I learnt that one can create different users with different information access levels. Another thing I learnt in my research is the network file system that enables users to access files more easily over the network. It runs above TCP/IP model and makes it possible for users to share files easily over the network. Users can actually alter files on other domains through the network file system that is more like msdos and ext2 (Horwitz, 2002). My research has been a very interesting one, having learned all the basics of UNIX networking, I am sure I can comfortably manage a UNIX network.
Conclusion
In conclusion, UNIX has been the foundation of TCP/IP based networking. It all started with my interest in networks and it has led to me through a very interesting research study that has changed what I thought about networks. I never thought all the other operating systems developed their network models on the TCP/IP model. At first, I thought that Windows operating system was the best, but based on my research, UNIX definitely is the mother of all the operating systems. The TCP/IP model is well arranged with a very interesting functional process that enables machines to communicate worldwide. The internet is the largest network ever in history and is based on the TCP/IP model (Schroder, 2005).
As a technology student, my research has opened up my mind to a whole new experience of computer networks that I would really love to advance in. In my research, there were some few questions that came up, which I would really like answered, like the various commands used in implementing addresses and names to hosts. My plans now are to research more on UNIX network management. I am very confident I have understood how to manage a UNIX network environment by learning how different processes work together to ensure computers communicate.
References
Cormany, A. (2008, April 22). Speaking UNIX: Inside TCP/IP. Retrieved from http://www.ibm.com/developerworks/aix/library/au-speakingunix_tcpip/
Horwitz, J. (2002). UNIX System Management: Primer Plus. Indianapolis, IN: Sams Publishing.
Hunt, C. (2002). TCP/IP Network Administration. Sebastopol, CA: O'Reilly Media Inc.
Schroder, C. (2005, April 7). UNIX Server Admin Basics, What You Need to Know. Retrieved from http://www.serverwatch.com/tutorials/article.php/3496046/Unix-Server-Admin-Basics-What-You-Need-to-Know.htm