0% found this document useful (0 votes)
5 views6 pages

CSC430 L3 Sum

Uploaded by

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

CSC430 L3 Sum

Uploaded by

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

Lecture 3:

1) Principles of network applications:


2) A protocol at layer 5 for each application.
3) DNS Server, Telnet Server, Email Server, DHCP server, Web Server, FTP server.
4) Each of the network applications operates at Layer 5, utilizing a specific protocol to manage
communication sessions between devices.
5) Creating a Network Application:
6) The goal in creating a network application is to develop programs that run on different end
systems and communicate over a network.
7) Example: Web Application; Components: For example, in a web application, web server software
communicates with browser software on different end systems.
8) There is typically little software written for devices in the network core. Network core devices do
not run user application code.
9) Applications on end systems allow for rapid application development and easy propagation of
updates.
10) Application Architecture:
11) Client-Server:
12) In a client-server architecture, end systems are categorized as clients or servers. Clients request
services or resources, and servers provide these services. (Web browsing, where the browser
(client) requests web pages from a web server).
13) Peer-to-Peer (P2P):
14) In a peer-to-peer architecture, there is minimal or no reliance on dedicated servers. End systems
(peers) communicate directly with each other. (File-sharing applications where users can share
files directly without relying on a central server).
15) Hybrid:
16) Some applications use a hybrid architecture, combining elements of both client-server and peer-
to-peer models.

17) Server Characteristics:


18) Always-On Host: The server is an always-on host, continuously available to respond to client
requests.
19) Permanent IP Address: It typically has a permanent IP address, making it easily locatable on the
network.
20) Server Farms for Scaling: For scalability, server farms can be employed, where multiple servers
work together to handle a large number of client requests.
21) Client Characteristics:
22) Communicate with Server: Clients initiate communication with the server, requesting services or
resources.
23) Intermittently Connected: Clients may be intermittently connected to the network, accessing
services as needed.
24) Dynamic IP Addresses: Clients may have dynamic IP addresses, assigned by the network as
needed.
25) No Direct Communication: Clients do not communicate directly with each other in a client-server
architecture.
26) Client-Server Example: University Management System (UMS)
27) The University Management System (UMS) is hosted on a web server.
28) To find the location of the UMS system, you can use a Domain Name System (DNS) service.
DNS translates human-readable domain names (like "www.universityums.com") into IP
addresses, allowing you to locate the server.
29) From any place in the world, users can connect to the UMS server. This global accessibility is a
key characteristic of client-server architectures.
30) When a user connects to the UMS system by accessing its website, the user becomes the client.
31) Analogously, when you connect to www.google.com, you are the client, and Google's servers
provide the search service.
32) The server offer services.
33) The client request services.
34) P2P:
35) No Always-On Server: In a Peer-to-Peer architecture, there is no always-on central server.
Instead, end systems, or peers, directly communicate with each other.
36) Arbitrary End Systems Communication: Peers in a P2P network have the ability to communicate
directly with any other arbitrary end system participating in the network.
37) Intermittently Connected Peers: Peers in a P2P network may be intermittently connected to the
network, and they can change their IP addresses dynamically.
38) Example: Gnutella: An example of a P2P network is Gnutella, a decentralized file-sharing
network. In Gnutella, users can share files directly with each other without relying on a central
server.

39) Hybrid Architecture Example: Skype


40) Application: Skype - Internet Telephony App:
41) Skype is an internet telephony application that allows users to make voice and video calls over
the internet.
42) Centralized Server for Address Finding: Address Discovery: The process of finding the address
of a remote party is facilitated by centralized servers. This centralization helps in locating users
on the network.
43) Direct Client-Client Connection: Communication Flow: While the process of finding the remote
party's address is centralized, the actual communication (voice or video call) between clients is
direct. Once the addresses are discovered, clients establish a direct connection without going
through a central server.
44) Instant Messaging - Chatting Between Users: P2P Communication: The instant messaging feature
in Skype, where two users chat with each other, follows a peer-to-peer model. The
communication is direct between the chatting users.
45) Centralized Presence Detection/Location: Presence Detection: For presence detection (knowing
whether a user is online or offline) and location information, a centralized approach is employed.
When a user comes online, they register their IP address with a central server.
46) User Registration with Central Server: Online Registration: When a user comes online, they
register their current IP address with a central server. This registration helps the central server
keep track of users' presence.
47) Central Server for Buddy Information: Buddy Information Retrieval: When a user wants to
contact their buddies, they contact the central server to obtain the IP addresses of their buddies.
This information allows users to establish direct connections for communication.

48) Process Communication:


49) A process is a program running within a host, representing the execution of a specific task or
application.
50) Within the same host, two processes communicate using interprocess communication
mechanisms defined by the operating system. This allows processes to share data and coordinate
their activities.
51) Processes in different hosts communicate by exchanging messages over a network. This network
communication enables collaboration and data exchange between processes residing on separate
machines.
52) A client process is a process that initiates communication. In many client-server architectures, the
client process requests services or resources from a server process.
53) A server process is a process that waits to be contacted by client processes. It provides services or
resources in response to requests from client processes.
54) Note: Applications with Peer-to-Peer (P2P) architectures also have client processes and server
processes. In P2P systems, each peer can act as both a client and a server, allowing for direct
communication between peers.
55) Definition of Socket:
56) In networking, a socket is a fundamental mechanism that allows processes on different hosts to
send and receive messages. It serves as a communication endpoint.
57) Analogously, a socket can be thought of as a door. Through this "door," processes can send and
receive messages to and from each other.
58) A process communicates by sending and receiving messages through its socket. Messages can be
data, commands, or any information exchanged between processes.
59) When a sending process wants to communicate, it "shoves" a message out of its socket, initiating
the communication process.
60) The sending process relies on the transport infrastructure on the other side of the "door" (socket).
This infrastructure ensures the proper delivery of the message to the socket of the receiving
process.
61) The receiving process, on the other side of the communication, has its socket ready to receive
messages. It awaits incoming messages and processes them upon arrival.
62) The socket allows for bidirectional communication. A process can send messages out of its socket
and receive messages through the same socket.
63) Hosts are identified by a unique 32-bit IP address.
64) IP address of host on which process runs is not enough to identify the process (multi-
processing).
65) Another identifier is used to identify the process on a host (port number).
66) IP address and port number identify a process on host.

67) ipconfig: is a Windows command-line tool used to display and configure the network interfaces
on a system.
68) ipconfig command without any parameters provides basic information about the network
configuration, including:
69) IPv4 Address: The IP address assigned to the system (e.g., 192.168.3.252).
70) Subnet Mask: Specifies the subnet mask (e.g., 255.255.255.0).
71) Default Gateway: Indicates the IP address of the router (e.g., 192.168.3.1).
72) This command is useful for obtaining quick information about the system's network
configuration.
73) ipconfig /all: provides more detailed information about the network interfaces, including:
74) Physical (MAC) address.
75) DHCP (Dynamic Host Configuration Protocol) settings.
76) DNS (Domain Name System) settings.
77) Additional configuration details.
78) It's a comprehensive view of the system's network configuration.
79) ping: is a Windows command used to test the reachability of a host on a network using the
Internet Control Message Protocol (ICMP).
80) ping www.google.com checks if the specified domain (www.google.com) is reachable, providing
round-trip time statistics.
81) ping -t -l 65500 www.google.com: The provided command continuously pings www.google.com
with unusually large packet size (65500 bytes), potentially causing disruption and resembling a
form of network attack.

82) Application layer protocols define the types of messages exchanged between applications.
83) Types of Messages Exchanged: Application layer protocols determine the types of messages
exchanged, such as requests and responses. For example, in the HTTP protocol, a client sends a
request to a server, and the server responds with the requested data.
84) Message Syntax: Message syntax involves specifying the structure of messages, including fields
and how they are delineated. For instance, in HTTP, the syntax defines the headers, body, and
other components of a request or response message.
85) Fields in Messages: Protocols define the fields within messages, indicating the information they
contain. For example, an email protocol may have fields for sender, recipient, subject, and
message body.
86) Message Semantics: Message semantics define the meaning of information in fields. It specifies
the purpose and interpretation of each field, ensuring that communicating entities understand the
significance of the data being exchanged.
87) Rules for Sending and Responding: Protocols establish rules for when and how processes send
and respond to messages. These rules govern the timing, sequencing, and acknowledgment of
messages, ensuring orderly communication.

88) Transport Protocols: TCP and UDP


89) TCP (Transmission Control Protocol): (Email)
90) Data Loss Tolerance: TCP is a connection-oriented protocol that provides reliable, error-checked
data transfer. It is suitable for applications that require 100% reliable data transfer, such as file
transfers and telnet, where data loss is not tolerable.
91) Timing: TCP may introduce higher delay compared to UDP due to its reliable nature, making it
less suitable for applications that require low delay, such as real-time interactive games.
92) Bandwidth: TCP is more bandwidth-intensive due to the overhead associated with error checking,
flow control, and congestion control. Applications requiring a minimum amount of bandwidth,
like multimedia, may be affected by TCP's overhead.
93) Summary: TCP is ideal for applications prioritizing data integrity and reliability over low delay
and bandwidth efficiency.
94) UDP (User Datagram Protocol): (Online Games)
95) Data Loss Tolerance: UDP is a connectionless protocol that does not guarantee reliable data
transfer. It is suitable for applications that can tolerate some degree of data loss, such as real-time
audio streaming.
96) Timing: UDP introduces lower delay compared to TCP, making it suitable for applications like
Internet telephony and interactive games that require low delay to be effective.
97) Bandwidth: UDP is more bandwidth-efficient because it lacks the additional overhead for error
checking, flow control, and congestion control. Elastic applications that make use of whatever
bandwidth they get can benefit from UDP.
98) Summary: UDP is suitable for applications prioritizing low delay and bandwidth efficiency over
guaranteed data integrity.
99) TCP service:
100) connection-oriented: setup required between client and server processes
101) reliable transport: between sending and receiving process
102) Flow Control: TCP incorporates flow control mechanisms to prevent the sender from overwhelming the receiver. It
adjusts the rate of data transmission to match the receiver's processing capability.
103) Congestion Control: TCP includes congestion control mechanisms to throttle the sender when the network is
overloaded. This helps manage network congestion and ensures fair usage of available resources.
104) does not provide: timing, minimum bandwidth guarantees.
105) UDP service:
106) unreliable data transfer between sending and receiving process
107) does not provide: • connection setup, • reliability, • flow control, • congestion control, • timing, • bandwidth guarantee.

108) FTP: File Transfer Protocol


109) FTP is a protocol designed for the transfer of files between a local host (client) and a
remote host (server).
110) Client/Server Model: FTP follows a client/server model, where the client initiates the file
transfer, and the server responds to client requests.
111) Client: The client is the entity that initiates the file transfer. It can either upload (send)
files to the remote host or download (retrieve) files from the remote host.
112) Server: The server is the remote host that stores and manages files. It responds to client
requests, facilitating the transfer of files to and from the client.
113) FTP Standard: The FTP protocol is standardized in RFC 959 (Request for Comments
959), which outlines the specifications for the protocol.
114) FTP Server Port: The FTP server typically operates on port 21 for control. Port 21 is used
for managing the control connection between the client and the server.

115) FTP Connection and Data Transfer Overview:


116) The FTP client initiates contact with the FTP server at port 21, specifying TCP as the
transport protocol for the control connection.
117) The client obtains authorization over the control connection by providing appropriate
credentials (username and password).
118) Using the control connection, the client can send commands to browse the remote
directory on the FTP server. Common commands include changing directories (CD), listing files
(LS), and navigating the directory structure.
119) When the client initiates a file transfer command (e.g., GET or PUT), the FTP server
opens a second TCP connection (data connection) for the actual transfer. The data connection
may use a different port.
120) After receiving the file transfer command, the server establishes a separate TCP data
connection to the client for transferring the file. This connection is used exclusively for the data
transfer operation.
121) After transferring one file, the server closes the data connection. For each subsequent file
transfer, the server opens a new TCP data connection.
122) The control connection is considered "out of band" because it is used for sending
commands and receiving responses, while the data connection is dedicated to the actual file
transfer. This separation allows for better management of commands and data.
123) The FTP server maintains a "state" for each client, including the current directory, earlier
authentication details, and other session-specific information. This state helps the server manage
and track the ongoing FTP session.
124) Sample FTP Commands and Return Codes:
125) Sample Commands (Sent as ASCII Text over Control Channel):
126) USER username: Initiates the login process by providing the username.
127) PASS password: Provides the password for authentication.
128) LIST: Requests a list of files in the current directory on the remote host.
129) RETR filename: Retrieves (gets) a file from the remote host.
130) STOR filename: Stores (puts) a file onto the remote host.
131) Sample Return Codes (Status Code and Phrase, Similar to HTTP):
132) 331 Username OK, password required: Indicates that the provided username is
recognized, and a password is required for authentication.
133) 125 Data connection already open; transfer starting: Informs the client that the data
connection is already open, and the file transfer is beginning.
134) 425 Can't open data connection: Indicates an error in opening the data connection for file
transfer.
135) 452 Error writing file: Indicates an error in writing the file on the remote host.

You might also like