0% found this document useful (0 votes)
154 views15 pages

PG NP Mod 1 Notes

The document outlines the vision and mission of Sri Devaraj Urs Educational Trust and its R. L. Jalappa Institute of Technology, focusing on providing quality education and fostering advanced skills in Computer Science and Engineering. It introduces network applications, detailing their types, importance, and the client-server model, including its advantages and disadvantages. Additionally, it explains the OSI model's layers and their functions, emphasizing the significance of network communication and data transmission.

Uploaded by

pushpagowda1995
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
154 views15 pages

PG NP Mod 1 Notes

The document outlines the vision and mission of Sri Devaraj Urs Educational Trust and its R. L. Jalappa Institute of Technology, focusing on providing quality education and fostering advanced skills in Computer Science and Engineering. It introduces network applications, detailing their types, importance, and the client-server model, including its advantages and disadvantages. Additionally, it explains the OSI model's layers and their functions, emphasizing the significance of network communication and data transmission.

Uploaded by

pushpagowda1995
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Sri Devaraj Urs Educational Trust (R.

)
R. L. JALAPPA INSTITUTE OF TECHNOLOGY
(Approved by AICTE, New Delhi, Affiliated to VTU, Belagavi & Accredited by NAAC “A” Grade)
Kodigehalli, Doddaballapur- 561 203
Department of CS&E - PG
Subject Code: MCS203
Subject Name: Network Programming Module Number: 01
Name of the Module: Introduction Scheme: 2024
Prepared by: Dr. Mamatha C M
Professor

Institute Vision
To be a premier Institution by imparting quality Technical education, Professional Training andResearch.
Institute Mission
M1:To provide an outstanding Teaching, Learning and Research environment through InnovativePractices in
Quality Education.
M2: Develop Leaders with high level of Professionalism to have career in the Industry, Zeal forHigher
Education, focus on Entrepreneurial and Societal activities.
Department Vision- PG
To nurture students with advanced expertise and research-oriented skills in Computer Science and Engineering,
empowering them to drive technological innovation and thrive in an evolving global landscape.
Department Mission- PG
M1: To foster advanced skills in specialized domains of Computer Science and Engineering, equippingstudents
with the necessary expertise to address contemporary challenges and meet the evolving demands of the global
industry.
M2: To promote cutting-edge research and technological innovation, while cultivating entrepreneurship and
consultancy skills that empower students to contribute to the technological needs of industries, governments, and
society.
PROGRAMME SPECIFIC OUTCOMES (PSOs)
PSO1: Students will have a knowledge of Advanced Software, Hardware, Network Models, Algorithms
PSO2: Students will be able to develop applications in the areas related to Artificial Intelligence, Machine
Learning, Data Science and IoT for efficient design of computer-based systems.
PROGRAMME EDUCATIONAL OBJECTIVES (PEOs)
PEO1: Our Graduates will have prospective careers in the IT Industry.
PEO2: Our Graduates will exhibit a high level of Professionalism and Leadership skills in work Environment.
PEO3: Our Graduates will pursue Research, and focus on Entrepreneurship.
Module-1
Introduction to network application, client/server communication, OSI Model, BSD Networking history, Test Networks
and Hosts, Unix Standards, 64-bit architectures, Transport Layer: TCP, UDP and SCTP

Introduction to network application:What is a Network Application?


A network application is a software program or service that relies on network resources to perform specific functions,
enabling communication, data sharing, and collaboration among devices connected to a network.
These applications leverage the power of networks, whether local area networks (LANs), wide area networks (WANs),
or the internet, to provide various services and functionalities. Network applications use network protocols and
communication standards to transmit and receive data, making them integral to modern computing.
Whether you’re browsing the web, sending emails, sharing files, or engaging in video conferences, you’re likely using
network applications that seamlessly bridge the gap between your device and the broader networked world.
Types of Network Applications
There are several types of network applications, each designed to serve specific purposes and meet diverse
communication and data-sharing needs:
Web Browsers:
Examples: Google Chrome, Mozilla Firefox, Microsoft Edge
Web browsers allow users to access and navigate websites and web-based applications over the internet. They use
network protocols such as HTTP and HTTPS to retrieve web content.
Email Clients:
Examples: Microsoft Outlook, Apple Mail, Gmail
Email clients facilitate the sending, receiving, and management of email messages over email servers, typically using
protocols like SMTP, IMAP, and POP3.
File Transfer Protocols:
Examples: FTP (File Transfer Protocol), SFTP (Secure File Transfer Protocol)
These applications enable the transfer of files between devices and servers. FTP and SFTP ensure secure and efficient
file exchange over networks.
Messaging Apps:
Examples: WhatsApp, Slack, Microsoft Teams
Messaging applications allow real-time text, voice, and video communication between individuals and groups,
enhancing collaboration and connectivity.
Video Conferencing Tools:
Examples: Zoom, Microsoft Teams, Cisco Webex
Video conferencing applications enable virtual meetings, webinars, and remote collaboration through live video and
audio communication.
Remote Desktop Applications:
Examples: TeamViewer, AnyDesk, Remote Desktop Protocol (RDP)
These applications allow users to access and control remote computers over a network, facilitating technical support,
troubleshooting, and remote work.
Importance of Network Applications
Network applications play a pivotal role in today’s interconnected world for several reasons:
1. Enhanced Connectivity: Network applications enable individuals and organizations to connect and communicate
seamlessly, bridging geographical distances and fostering collaboration.
2. Data Sharing and Accessibility: They facilitate the sharing and access of data and resources, promoting efficient
information exchange and decision-making.
3. Streamlined Workflow: Network applications automate processes, reducing manual tasks and enhancing productivity
across various industries.
4. Improved Communication: These applications offer real-time communication channels, supporting video
conferencing, instant messaging, and email, which are essential for business operations and personal interactions.
5. Remote Work and Flexibility: Network applications empower remote work by providing secure access to corporate
resources, enabling businesses to adapt to changing work environments.
6. Scalability and Growth: As businesses expand, network applications can scale to accommodate increased demands,
ensuring they remain effective tools for communication and collaboration.
Advanced Concepts in Network Applications
In addition to the core functionalities of network applications, understanding advanced concepts can further enhance
the efficiency and security of these applications. Here are some key areas:
Network Architecture and Topology: Network architecture defines the design and layout of the network, including its
physical and logical structure. Topology refers to the arrangement of network elements and their interconnections.
Common topologies include star, mesh, and hybrid.
Client/server communication:
The Client-server model is a distributed application structure that partitions tasks or workloads between the providers of
a resource or service, called servers, and service requesters called clients. In the client-server architecture, when the
client computer sends a request for data to the server through the internet, the server accepts the requested process and
delivers the data packets requested back to the client. Clients do not share any of their resources. Examples of the
Client-Server Model are Email, World Wide Web, etc.
How Does the Client-Server Model Work?
In this article, we are going to take a dive into the Client-Server model and have a look at how the Internet works via,
web browsers. This article will help us have a solid WEB foundation and help us easily work with WEB technologies.
 Client: When we say the word Client, it means to talk of a person or an organization using a particular service.
Similarly in the digital world, a Client is a computer (Host) i.e. capable of receiving information or using a particular
service from the service providers (Servers).
 Servers: Similarly, when we talk about the word Servers, It means a person or medium that serves something.
Similarly in this digital world, a Server is a remote computer that provides information (data) or access to particular
services.
So, it is the Client requesting something and the Server serving it as long as it is in the database.

Client Server Model


How the Browser Interacts With the Servers?
There are a few steps to follow to interacts with the servers of a client.
 User enters the URL(Uniform Resource Locator) of the website or file. The Browser then requests
the DNS(DOMAIN NAME SYSTEM) Server.
 DNS Server lookup for the address of the WEB Server.
 The DNS Server responds with the IP address of the WEB Server.
 The Browser sends over an HTTP/HTTPS request to the WEB Server’s IP (provided by the DNS server).
 The Server sends over the necessary files for the website.
 The Browser then renders the files and the website is displayed. This rendering is done with the help
of DOM (Document Object Model) interpreter, CSS interpreter, and JS Engine collectively known as the JIT or
(Just in Time) Compilers.

Client Server Request and Response


Advantages of Client-Server Model
 Centralized system with all data in a single place.
 Cost efficient requires less maintenance cost and Data recovery is possible.
 The capacity of the Client and Servers can be changed separately.
Disadvantages of Client-Server Model
 Clients are prone to viruses, Trojans, and worms if present in the Server or uploaded into the Server.
 Servers are prone to Denial of Service (DOS) attacks.
 Data packets may be spoofed or modified during transmission.
 Phishing or capturing login credentials or other useful information of the user are common and MITM(Man in
the Middle) attacks are common.
The Client-server model is a distributed application structure that partitions tasks or workloads between the providers
of a resource or service, called servers, and service requesters called clients. In the client-server architecture, when the
client computer sends a request for data to the server through the internet, the server accepts the requested process and
delivers the data packets requested back to the client. Clients do not share any of their resources. Examples of the
Client-Server Model are Email, World Wide Web, etc.
How Does the Client-Server Model Work?
In this article, we are going to take a dive into the Client-Server model and have a look at how the Internet works via,
web browsers. This article will help us have a solid WEB foundation and help us easily work with WEB technologies.
Client: When we say the word Client, it means to talk of a person or an organization using a particular service.
Similarly in the digital world, a Client is a computer (Host) i.e. capable of receiving information or using a particular
service from the service providers (Servers).
Servers: Similarly, when we talk about the word Servers, It means a person or medium that serves something. Similarly
in this digital world, a Server is a remote computer that provides information (data) or access to particular services.
So, it is the Client requesting something and the Server serving it as long as it is in the database.

Client Server Model


How the Browser Interacts With the Servers?
There are a few steps to follow to interacts with the servers of a client.
User enters the URL(Uniform Resource Locator) of the website or file. The Browser then requests the DNS(DOMAIN
NAME SYSTEM) Server.
DNS Server lookup for the address of the WEB Server.
The DNS Server responds with the IP address of the WEB Server.
The Browser sends over an HTTP/HTTPS request to the WEB Server’s IP (provided by the DNS server).
The Server sends over the necessary files for the website.
The Browser then renders the files and the website is displayed. This rendering is done with the help
of DOM (Document Object Model) interpreter, CSS interpreter, and JS Engine collectively known as the JIT or (Just in
Time) Compilers.

Client Server Request and Response


Advantages of Client-Server Model
Centralized system with all data in a single place.
Cost efficient requires less maintenance cost and Data recovery is possible.
The capacity of the Client and Servers can be changed separately.
Disadvantages of Client-Server Model
Clients are prone to viruses, Trojans, and worms if present in the Server or uploaded into the Server.
Servers are prone to Denial of Service (DOS) attacks.
Data packets may be spoofed or modified during transmission.
Phishing or capturing login credentials or other useful information of the user are common and MITM(Man in the
Middle) attacks are common.

OSI Model:
What is OSI Model? – Layers of OSI Model
The OSI (Open Systems Interconnection) Model is a set of rules that explains how different computer systems
communicate over a network. OSI Model was developed by the International Organization for Standardization (ISO).
The OSI Model consists of 7 layers and each layer has specific functions and responsibilities. This layered approach
makes it easier for different devices and technologies to work together. OSI Model provides a clear structure for data
transmission and managing network issues. The OSI Model is widely used as a reference to understand how network
systems function.
Layers of the OSI Model
There are 7 layers in the OSI Model and each layer has its specific role in handling data. All the layers are mentioned
below:
Physical Layer
Data Link Layer
Network Layer
Transport Layer
Session Layer
Presentation Layer
Application Layer
Layer 1 – Physical Layer
The lowest layer of the OSI reference model is the Physical Layer. It is responsible for the actual physical connection
between the devices. The physical layer contains information in the form of bits. Physical Layer is responsible for
transmitting individual bits from one node to the next. When receiving data, this layer will get the signal received and
convert it into 0s and 1s and send them to the Data Link layer, which will put the frame back together. Common
physical layer devices are Hub, Repeater, Modem, and Cables.

Physical Layer
Functions of the Physical Layer
Bit Synchronization: The physical layer provides the synchronization of the bits by providing a clock. This clock
controls both sender and receiver thus providing synchronization at the bit level.
Bit Rate Control: The Physical layer also defines the transmission rate i.e. the number of bits sent per second.
Physical Topologies: Physical layer specifies how the different, devices/nodes are arranged in a network i.e. bus
topology, star topology, or mesh topology.
Transmission Mode: Physical layer also defines how the data flows between the two connected devices. The various
transmission modes possible are Simplex, half-duplex and full duplex.
Layer 2 – Data Link Layer (DLL)
The data link layer is responsible for the node-to-node delivery of the message. The main function of this layer is to
make sure data transfer is error-free from one node to another, over the physical layer. When a packet arrives in a
network, it is the responsibility of the DLL to transmit it to the Host using its MAC address. Packet in the Data Link
layer is referred to as Frame. Switches and Bridges are common Data Link Layer devices.
The Data Link Layer is divided into two sublayers:
Logical Link Control (LLC)
Media Access Control (MAC)
The packet received from the Network layer is further divided into frames depending on the frame size of the NIC
(Network Interface Card). DLL also encapsulates Sender and Receiver’s MAC address in the header.
The Receiver’s MAC address is obtained by placing an ARP (Address Resolution Protocol) request onto the wire
asking, “Who has that IP address?” and the destination host will reply with its MAC address.
Functions of the Data Link Layer
Framing: Framing is a function of the data link layer. It provides a way for a sender to transmit a set of bits that are
meaningful to the receiver. This can be accomplished by attaching special bit patterns to the beginning and end of the
frame.
Physical Addressing: After creating frames, the Data link layer adds physical addresses (MAC addresses) of the sender
and/or receiver in the header of each frame.
Error Control: The data link layer provides the mechanism of error control in which it detects and retransmits damaged
or lost frames.
Flow Control: The data rate must be constant on both sides else the data may get corrupted thus, flow control
coordinates the amount of data that can be sent before receiving an acknowledgment.
Access Control: When a single communication channel is shared by multiple devices, the MAC sub-layer of the data
link layer helps to determine which device has control over the channel at a given time.
Layer 3 – Network Layer
The network layer works for the transmission of data from one host to the other located in different networks. It also
takes care of packet routing i.e. selection of the shortest path to transmit the packet, from the number of routes
available. The sender and receiver’s IP address are placed in the header by the network layer. Segment in the Network
layer is referred to as Packet. Network layer is implemented by networking devices such as routers and switches.
Functions of the Network Layer
Routing: The network layer protocols determine which route is suitable from source to destination. This function of the
network layer is known as routing.
Logical Addressing: To identify each device inter-network uniquely, the network layer defines an addressing scheme.
The sender and receiver’s IP addresses are placed in the header by the network layer. Such an address distinguishes
each device uniquely and universally.
Layer 4 – Transport Layer
The transport layer provides services to the application layer and takes services from the network layer. The data in the
transport layer is referred to as Segments. It is responsible for the end-to-end delivery of the complete message. The
transport layer also provides the acknowledgment of the successful data transmission and re-transmits the data if an
error is found. Protocols used in Transport Layer are TCP, UDP NetBIOS, PPTP.
At the sender’s side, the transport layer receives the formatted data from the upper layers, performs Segmentation, and
also implements Flow and error control to ensure proper data transmission. It also adds Source and Destination port
number in its header and forwards the segmented data to the Network Layer.
Generally, this destination port number is configured, either by default or manually. For example, when a web
application requests a web server, it typically uses port number 80, because this is the default port assigned to web
applications. Many applications have default ports assigned.
At the Receiver’s side, Transport Layer reads the port number from its header and forwards the Data which it has
received to the respective application. It also performs sequencing and reassembling of the segmented data.
Functions of the Transport Layer
Segmentation and Reassembly: This layer accepts the message from the (session) layer and breaks the message into
smaller units. Each of the segments produced has a header associated with it. The transport layer at the destination
station reassembles the message.
Service Point Addressing: To deliver the message to the correct process, the transport layer header includes a type of
address called service point address or port address. Thus, by specifying this address, the transport layer makes sure
that the message is delivered to the correct process.
Services Provided by Transport Layer
Connection-Oriented Service
Connectionless Service
Layer 5 – Session Layer
Session Layer in the OSI Model is responsible for the establishment of connections, management of connections,
terminations of sessions between two devices. It also provides authentication and security. Protocols used in the
Session Layer are NetBIOS, PPTP.
Functions of the Session Layer
Session Establishment, Maintenance, and Termination: The layer allows the two processes to establish, use, and
terminate a connection.
Synchronization: This layer allows a process to add checkpoints that are considered synchronization points in the data.
These synchronization points help to identify the error so that the data is re-synchronized properly, and ends of the
messages are not cut prematurely, and data loss is avoided.
Dialog Controller: The session layer allows two systems to start communication with each other in half-duplex or full
duplex.
Example
Let us consider a scenario where a user wants to send a message through some Messenger application running in their
browser. The “Messenger” here acts as the application layer which provides the user with an interface to create the data.
This message or so-called Data is compressed, optionally encrypted (if the data is sensitive), and converted into bits
(0’s and 1’s) so that it can be transmitted.

Communication in Session Layer


Layer 6 – Presentation Layer
The presentation layer is also called the Translation layer. The data from the application layer is extracted here and
manipulated as per the required format to transmit over the network. Protocols used in the Presentation Layer
are JPEG, MPEG, GIF, TLS/SSL, etc.
Functions of the Presentation Layer
Translation: For example, ASCII to EBCDIC.
Encryption/ Decryption: Data encryption translates the data into another form or code. The encrypted data is known as
the ciphertext, and the decrypted data is known as plain text. A key value is used for encrypting as well as decrypting
data.
Compression: Reduces the number of bits that need to be transmitted on the network.
Layer 7 – Application Layer
At the very top of the OSI Reference Model stack of layers, we find the Application layer which is implemented by the
network applications. These applications produce the data to be transferred over the network. This layer also serves as
a window for the application services to access the network and for displaying the received information to the user.
Protocols used in the Application layer are SMTP, FTP, DNS, etc.

Application Layer
Functions of the Application Layer
The main functions of the application layer are given below.
Network Virtual Terminal (NVT): It allows a user to log on to a remote host.
File Transfer Access and Management (FTAM): This application allows a user to access files in a remote host, retrieve
files in a remote host, and manage or control files from a remote computer.
Mail Services: Provide email service.
Directory Services: This application provides distributed database sources and access for global information about
various objects and services.
How Data Flows in the OSI Model?
When we transfer information from one device to another, it travels through 7 layers of OSI model. First data travels
down through 7 layers from the sender’s end and then climbs back 7 layers on the receiver’s end.
Data flows through the OSI model in a step-by-step process:
Application Layer: Applications create the data.
Presentation Layer: Data is formatted and encrypted.
Session Layer: Connections are established and managed.
Transport Layer: Data is broken into segments for reliable delivery.
Network Layer: Segments are packaged into packets and routed.
Data Link Layer: Packets are framed and sent to the next device.
Physical Layer: Frames are converted into bits and transmitted physically.
Each layer adds specific information to ensure the data reaches its destination correctly, and these steps are reversed
upon arrival.

We can understand how data flows through OSI Model with the help of an example mentioned below.
Let us suppose, Person A sends an e-mail to his friend Person B.
Step 1: Person A interacts with e-mail application like Gmail, outlook, etc. Writes his email to send. (This happens
at Application Layer).
Step 2: At Presentation Layer, Mail application prepares for data transmission like encrypting data and formatting it for
transmission.
Step 3: At Session Layer, there is a connection established between the sender and receiver on the internet.
Step 4: At Transport Layer, Email data is broken into smaller segments. It adds sequence number and error-checking
information to maintain the reliability of the information.
Step 5: At Network Layer, addressing of packets is done in order to find the best route for transfer.
Step 6: At Data Link Layer, data packets are encapsulated into frames, then MAC address is added for local devices
and then it checks for error using error detection.
Step 7: At Physical Layer, Frames are transmitted in the form of electrical/ optical signals over a physical network
medium like ethernet cable or WiFi.
After the email reaches the receiver i.e. Person B, the process will reverse and decrypt the e-mail content. At last, the
email will be shown on Person B email client.
Please refer the below animation for detailed flow.

Protocols Used in the OSI Layers

Layer Working Protocol Protocols


Data Unit

Establishing Physical Connections between USB, SONET/SDH,


1 – Physical Layer Bits
Devices. etc.

2 – Data Link Layer Node to Node Delivery of Message. Frames Ethernet, PPP, etc.

Transmission of data from one host to IP, ICMP, IGMP, O


3 – Network Layer Packets
another, located in different networks. SPF, etc.

Segments
Take Service from Network Layer and (for TCP) or TCP, UDP, SCTP, e
4 – Transport Layer
provide it to the Application Layer. Datagrams tc.
(for UDP)

Establishes Connection, Maintenance,


NetBIOS, RPC, PP
5 – Session Layer Ensures Authentication and Ensures Data
TP, etc.
security.

Data from the application layer is extracted TLS/SSL, MIME,


6 – Presentation
and manipulated in the required format for Data JPEG, PNG,
Layer
transmission. ASCII, etc.

Helps in identifying the client and FTP, SMTP, DNS,


7 – Application Layer Data
synchronizing communication. DHCP, etc.

Why Does the OSI Model Matter?


The OSI Model matters because it provides the user a clear structure of “how the data moves in the network?”. As the
OSI Model consists of 7 layers, each layer has its specific role, and due to which it helps in understanding, identifying
and solving the complex network problems easily by focusing on one of the layers not the entire network.
As the modern Internet does not prefer the OSI Model, but still, the OSI Model is still very helpful for solving network
problems. It helps people understanding network concepts very easily.
Difference Between OSI and TCP/IP Model

OSI Model TCP/IP Model

TCP/IP stands for Transmission Control


OSI stands for Open Systems Interconnection.
Protocol/Internet Protocol.

OSI model has 7 layers. TCP/IP model consists of 4 layers.

Package delivery is not guaranteed in the TCP/IP


Package delivery is guaranteed in OSI Model.
Model.

In the OSI model, only layers 1,2 and 3 are All layers of the TCP/IP model are needed for data
necessary for data transmission. transmission.

Protocols at each layer is independent of the other Layers are integrated; some layers are required by
layer. other layers of TCP/IP model.

OSI Model is a conceptual framework, less used in Widely used in actual networks like Internet and
practical applications. Communication Systems.

OSI vs TCP/IP
Advantages of OSI Model
The OSI Model defines the communication of a computing system into 7 different layers. Its advantages include:
It divides network communication into 7 layers which makes it easier to understand and troubleshoot.
It standardizes network communications, as each layer has fixed functions and protocols.
Diagnosing network problems is easier with the OSI model.
It is easier to improve with advancements as each layer can get updates separately.
Disadvantages of OSI Model
The OSI Model has seven layers, which can be complicated and hard to understand for beginners.
In real-life networking, most systems use a simpler model called the Internet protocol suite (TCP/IP), so the OSI Model
is not always directly applicable.
Each layer in the OSI Model adds its own set of rules and operations, which can make the process more time-
consuming and less efficient.
The OSI Model is more of a theoretical framework, meaning it’s great for understanding concepts but not always
practical for implementation.
BSD(Berkeley Software Distribution) Networking history:
The history of the Berkeley Software Distribution began in the 1970s when University of California, Berkeley received
a copy of Unix. Professors and students at the university began adding software to the operating system and released it
as BSD to select universities. Since it contained proprietary Unix code, it originally had to be distributed subject to
AT&T licenses. The bundled software from AT&T was then rewritten and released as free software under the BSD
license. However, this resulted in a lawsuit with Unix System Laboratories, the AT&T subsidiary responsible for Unix.
Eventually, in the 1990s, the final versions of BSD were publicly released without any proprietary licenses, which led
to many descendants of the operating system that are still maintained today.
Sl. No. Year technique
1 Late 1970s BSD started as a series of modifications to AT&T’s original UNIX,
made by students and faculty at UC Berkeley
2 Early 1980s The 4.x BSD series became increasingly independent and feature-rich,
particularly in areas like file systems and networking.
3 1983 - 4.2BSD Integrated the TCP/IP networking stack, making it the first widely
available OS to do so.
Developed under DARPA sponsorship, with the goal of implementing
the emerging ARPANET protocols.
Provided a reference implementation of the TCP/IP suite, which was
adopted by many other operating systems.
4 1982 Sockets API- This API became a de facto standard for Unix-like
systems and is still in use today across Linux, macOS, and
Windows.The sockets model helped unify communication between
different network protocol families (e.g., IPv4, IPv6, Unix domain
sockets)
5 1989 Net/1 - Released the networking code from 4.3BSD as open source,
under the BSD license
6 1991 Net/2- Contained much of the BSD system minus AT&T-licensed code.
These led to the creation of FreeBSD, NetBSD, and OpenBSD — all of
which continued to develop advanced networking features
Test Networks and Hosts:
To test networks and hosts, you can use tools like ping to check basic connectivity, traceroute to trace the path of
packets, and telnet to verify port access. Other methods include network testing tools, which provide a range of
functionalities for verifying network performance and connectivity.

Sl. No Type Purpose How Interpretation


1 Using Ping Checks if a host is reachable on
Open a command prompt If responses are received,
the network and measures or terminal and type ping the host is
latency (round-trip time) <IP address or reachable. High latency or
hostname>. For packet loss may indicate
example, ping network issues
8.8.8.8 or ping
www.google.com
2 Using Traceroute Traces the path a network Open a command prompt Traceroute will display
packet takes from your or terminal and the IP addresses of each
computer to a destination type traceroute <IP router or "hop" the packet
address or hostname> travels through until it
reaches the destination
3 Using Telnet (for Verifies if a specific port on a Open a command prompt If a connection is
port testing) host is open and accessible or terminal and type telnet established, the port is
<IP address> <port likely open
number>. For
example, telnet
192.168.1.100 80 (to
check if port 80 is open
on 192.168.1.100)
4 Network Testing Provide a range of Example: N-able N-central offers tools like "Test Host
Tools functionalities for verifying Connectivity" which includes PING, Dig, and
network performance and Traceroute testing. Other tools
connectivity, including testing include NetAlly and Check host.
network speed, latency, and
packet loss

Figure 1.1 shows the various networks and hosts used in the examples throughout the text. For each host, we show the
OS and the type of hardware (since some of the operating systems run on more than one type of hardware). The name
within each box is the hostname that appears in the text.

Figure 1.1. Networks and hosts

Discovering Network Topology


We show the network topology in Figure 1.16 for the hosts used for the examples throughout this text, but you may
need to know your own network topology to run the examples and exercises on your own network. Although there are
no current Unix standards with regard to network configuration and administration, two basic commands are provided
by most Unix systems and can be used to discover some details of a network: netstat and ifconfig. Check the manual
(man) pages for these commands on your system to see the details on the information that is output. Also be aware that
some vendors place these commands in an administrative directory, such as /sbin or /usr/sbin, instead of the normal
/usr/bin, and these directories might not be in your normal shell search path (PATH).

Unix Standards
The term UNIX standards generally refers to a set of specifications that define how UNIX
operating systems should behave to ensure compatibility, portability, and interoperability
across different UNIX systems. Here are the main UNIX standards:
1. POSIX (Portable Operating System Interface)
POSIX is an acronym for Portable Operating System Interface. POSIX is not a single standard, but a family of
standards being developed by the Institute for Electrical and Electronics Engineers, Inc., normally called the IEEE. The
POSIX standards have also been adopted as international standards by ISO and the International Electrotechnical
Commission (IEC), called ISO/IEC.
2. The Open Group
The Open Group was formed in 1996 by the consolidation of the X/Open Company (founded in 1984) and the Open
Software Foundation (OSF, founded in 1988). It is an international consortium of vendors and end-user customers from
industry, government, and academia.
3. Unification of Standards
The above brief backgrounds on POSIX and The Open Group both continue with The Austin Group's publication of The
Single Unix Specification(SUS) Version 3, as mentioned at the beginning of this section. Getting over 50 companies to
agree on a single standard is certainly a landmark in the history of Unix. Most Unix systems today conform to
some version of POSIX.1 and POSIX.2; many comply with The Single Unix Specification Version 3.
4. Internet Engineering Task Force (IETF)
The Internet Engineering Task Force (IETF) is a large, open, international community of network designers, operators,
vendors, and researchers concerned with the evolution of the Internet architecture and the smooth operation of the
Internet. It is open to any interested individual. The Internet standards process is documented in RFC 2026 [Bradner
1996]. Internet standards normally deal with protocol issues and not with programming APIs. Nevertheless, two RFCs
(RFC 3493 [Gilligan et al. 2003] and RFC 3542 [Stevens et al. 2003]) specify the sockets API for IPv6. These are
informational RFCs, not standards, and were produced to speed the deployment of portable applications by the
numerous vendors working on early releases of IPv6. Although standards bodies tend to take a long time, many APIs
were standardized in The Single Unix Specification Version 3.

64-Bit Architectures
During the mid to late 1990s, the trend began toward 64-bit architectures and 64-bit software. One reason is for larger
addressing within a process (i.e., 64-bit pointers), which can address large amounts of memory (more than 232 bytes).
The common programming model for existing 32-bit Unix systems is called the ILP32 model, denoting that integers (I),
long integers (L), and pointers (P) occupy 32 bits. The model that is becoming most prevalent for 64-bit Unix systems is
called the LP64 model, meaning only long integers (L) and pointers (P) require 64 bits. Figure 1.17 compares these two
models. Figure 1.2. Comparison of number of bits to hold various datatypes for the ILP32 and LP64 models.

The Transport Layer: TCP, UDP, and SCTP


User Datagram Protocol (UDP)
UDP is a simple transport-layer protocol. It is described in RFC 768 [Postel 1980]. The application writes a message to
a UDP socket, which is then encapsulated in a UDP datagram, which is then further encapsulated as an IP datagram,
which is then sent to its destination. There is no guarantee that a UDP datagram will ever reach its final destination, that
order will be preserved across the network, or that datagrams arrive only once. The problem that we encounter with
network programming using UDP is its lack of reliability. If a datagram reaches its final destination but the checksum
detects an error, or if the datagram is dropped in the network, it is not delivered to the UDP socket and is not
automatically retransmitted. If we want to be certain that a datagram reaches its destination, we can build lots of features
into our application: acknowledgments from the other end, timeouts, retransmissions, and the like. Each UDP datagram
has a length. The length of a datagram is passed to the receiving application along with the data. We have already
mentioned that TCP is a byte-stream protocol, without any record boundaries at all , which differs from UDP. We also
say that UDP provides a connectionless service, as there need not be any long-term relationship between a UDP client
and server. For example, a UDP client can create a socket and send a datagram to a given server and then immediately
send another datagram on the same socket to a different server. Similarly, a UDP server can receive several datagrams
on a single UDP socket, each from a different client.

Transmission Control Protocol (TCP)


The service provided by TCP to an application is different from the service provided by UDP. TCP is described in RFC
793 [Postel 1981c], and updated by RFC 1323 [Jacobson, Braden, and Borman 1992], RFC 2581 [Allman, Paxson, and
Stevens 1999], RFC 2988 [Paxson and Allman 2000], and RFC 3390 [Allman, Floyd, and Partridge 2002].
First, TCP provides connections between clients and servers. A TCP client establishes a connection with a given server,
exchanges data with that server across the connection, and then terminates the connection. TCP also provides reliability.
When TCP sends data to the other end, it requires an acknowledgment in return. If an acknowledgment is not received,
TCP automatically retransmits the data and waits a longer amount of time. After some number of retransmissions, TCP
will give up, with the total amount of time spent trying to send data typically between 4 and 10 minutes (depending on
the implementation).

Stream Control Transmission Protocol (SCTP)


SCTP provides services similar to those offered by UDP and TCP. SCTP is described in RFC 2960 [Stewart et al. 2000],
and updated by RFC 3309 [Stone, Stewart, and Otis 2002]. An introduction to SCTP is available in RFC 3286 [Ong and
Yoakum 2002]. SCTP provides associations between clients and servers. SCTP also provides applications with
reliability, sequencing, flow control, and full-duplex data transfer, like TCP. The word "association" is used in SCTP
instead of "connection" to avoid the connotation that a connection involves communication between only two IP
addresses. An association refers to a communication between two systems, which may involve more than two addresses
due to multihoming. SCTP can provide multiple streams between connection endpoints, each with its own reliable
sequenced delivery of messages. A lost message in one of these streams does not block delivery of messages in any of
the other streams. This approach is in contrast to TCP, where a loss at any point in the single stream of bytes blocks
delivery of all future data on the connection until the loss is repaired. SCTP also provides a multihoming feature, which
allows a single SCTP endpoint to support multiple IP addresses. This feature can provide increased robustness against
network failure. An endpoint can have multiple redundant network connections, where each of these networks has a
different connection to the Internet infrastructure. SCTP can work around a failure of one network or path across the
Internet by switching to another address already associated with the SCTP association.

You might also like