Networks

From CompSciWiki
Jump to: navigation, search

COMP 1010 Home > More About Computer Science


Introduction

Whether you realize it or not, computer networks are a vitally important part of your day to day life. Originally developed in the 1960's primarily as a means of military communication, computer networks have expanded exponentially since then. Many technological and telecommunications companies such as Google, Facebook, and MTS rely very heavily on computer networks. The internet itself is nothing more than a large and very extensive computer network. Computer networking is currently a rapidly growing, ever changing, and very interesting area of computer science.

...By Students

"Not long ago, I knew nothing about networks, but that had to change when I wanted to upgrade the speed and reliability of the wireless network at home. I started by doing some research on routers, looking for faster download speeds and stronger signal. I learned about the various network standards in speed, range, encryption and wireless protocols. I also leaned about various features and techniques that help make a network more secure. The one thing that really surprised me when I was researching all these things is that I now find networks kinda cool."


"It's an amazing world that we live in. I can find out what all of my friends are up to, send an e-mail to my aunt, buy a new printer, watch the most recent speech by Barack Obama, and find out how many points my beloved Oakland Raiders lost by. More amazing is that I can do all of this in 15 minutes without leaving the comfort of my living room. It's very easy to take networks for granted. But that is part of the joy of being a computer science student; we don't have to. We get to learn about all of these technologies, and have the opportunity to contribute to their growth."

What is a Network?

WAN.jpg Here are examples of Local Area Networks (top left and top right) and Wide Area Network (bottom)

A network is a link between two or more computers, connected using routers and network cable or wireless signals to transfer data between the computers on the network.

These networks vary greatly in size from small (eg: home network linking a laptop to a router), to large (eg: intranet at a large business), to massive (eg: Internet).

Networks allow for computing devices to communicate with one another. This allows for users to send messages via a computer network, share files and information, share software remotely, and share hardware (eg: printing devices).


Types of Networks

Blackberries.jpg Cellphones use WAN networks to connect to the internet and make calls

Local Area Networks (LANs)

A local area network (LAN) is a computer network covering a small physical area, like a home, office or university campus.

Wide Area Networks (WAN)

A wide area network is a computer network that spans a wide geographic area. The most common example of a WAN would be the internet, but mobile networks (eg: Rogers, MTS) are also examples of WANs.


Network Layers

A network can be conceptually subdivided into a number of different layers, including:

Physical Layer

The physical layer is the link between a computing device and a transmitter. This layer, usually comprised of cables or wireless network adapters, allows for the computer to be connected in a network.

Data Link Layer

The data link layer defines how data is transferred from one device to another. This layer is responsible for ensuring that there are no errors in the data that can be caused by the physical layer.

Network Layer

The Network Layer is responsible for choosing the root that each packet travels. Packets make use of intermediate routers when traveling between the sender and the receiver (ie: data is not sent directly from the sender to the receiver).

Transport Layer

The transport layer defines the protocols by which messages are sent and received. The most common of these protocols is called Transmission Control Protocol (TCP). The transport layer divides a message in to smaller pieces known as packets, and sends these packets to the network layer. The receiving transport layer gets the packets from the receiving network layer and converts them back into the original message.

Application Layer

The application layer is the link between the network and the network application. The application layer takes messages created by the network application (which are created by the user) and passes them to the transport layer.

Presentation Layer

The presentation layer is responsible for the delivery and formatting of information to the application layer for further processing or display.

Session Layer

The session layer provides the mechanism for opening, closing and managing a session between end-user application processes.


Network Applications

GoogleChrome.jpg Google's Chrome browser swallowing Microsoft's Internet Explorer browser

A network application is a software program that uses network connectivity and the internet to perform its functions.

Web browsers like Google's Chrome, Mozilla's Firefox and Microsoft's Internet Explorer are used by hundreds millions of people every single day. Google and Mozilla are both big supporters of the open source community and are always looking to encourage developers (like you!) to make cool and innovative extensions and apps for their browsers.

E-mail clients like Microsoft Outlook and Mozilla's Thunderbird are other examples of network applications used by tens of millions on a near-daily basis.

There are many more examples of network applications like Microsoft's MSN Messenger and AOL's AIM Chat instant messenging clients, as well as video conferencing applications.

As with any application that uses - and is therefore exposed to - the internet, security is always a concern. Particularly with web browsers and e-mail clients, malicious attacks are an increasingly common occurrence. To help protect users from these attacks, modern browsers will show you a warning message before you visit a site that is suspected of containing malware or phishing and some e-mail clients (like Google's Gmail) won't allow it's users to send an attachment that contains an executable file (since it could be a virus).


Courses

There are 4 courses required for the Networks and Security specialty at the U of M:

Computer Networks I covers the basics about what a network is and provides students with a basic understanding about how the internet works. Students taking Networks I will also learn about the various layers that comprise a network in more detail.

Computer Networks II deals with advanced network layers as well as multimedia networks, mobile and wireless networks, network management, and provides some basics about network security.

Computer Security teaches students how to prevent malicious users from attacking computers and potentially stealing information not intended for them. Topics discussed will include preventative measures such as firewalls, intrusion detection, and basic cryptography.

Cryptography and Cryptosystems is designed to teach students how to encrypt messages to make them unrecognizable. Cryptography is one of the most important security measures used in networking, and the course provides details about a number of methods used to disguise messages.


Career Opportunities

With the growth in the field of computer networks, demand for specialists in this area has also increased enormously. While there are a host of employment opportunities related to networking, the ones that computer scientists are regularly hired for are:

Network Administrator

Network administrators configure and manage Local Area Networks and Wide Area Networks. It is the job of the network administrator to maintain the hardware and software corresponding to a given network.

Network Programmer/Analyst

Network programmers write programs or scripts that aid in network analysis such as diagnostics or monitoring utilities. Software written by network programmers communicate with other programs on the network.

Web Application Developer

Web application developers write software programs specifically designed for the internet. These developers create web applications that make for dynamic and interactive web experiences using technologies like Adobe Flash, Java, and Microsoft Silverlight. Students in the coop program will have the opportunity to work as a web developer in companies including MTS, Tipping Canoe, and iQmetrix.


Current Research Topics

Cloud Computing

Cloud computing is essentially Internet-based computing. In cloud computing, software and resources are provided to a computer virtually. Users would log into 'the cloud' and utilize hardware and software not installed on their comuting device. While web applications make use of this idea already, several large companies (eg: Google, IBM, HP, Microsoft) are collaborating with universities to research the idea further, and broaden its use and usefulness. This concept will likely significantly change how we view computers in the not so distant future.

Cognitive Networking

A cognitive network is a network that can assess its current state, and make decisions based on a number of factors. Cognitive networking combines elements from networking and artificial intelligence and is taught at the U of M in a graduate level networking course (COMP 7810).

Useful Links

  • How various devices are connected over a network:

http://learn-networking.com/network-design/a-guide-to-network-topology

  • How to configure a home router:

http://compnetworking.about.com/od/homenetworking/ht/routerconfigure.htm

  • University of Manitoba Information Services and Technology (formerly Academic Computing and Networks - ACN):

http://umanitoba.ca/ist/

Previous Page: Multimedia Next Page: Software Engineering