Beruflich Dokumente
Kultur Dokumente
TABLE OF CONTENTS
1. APPLICATION LAYER
1.1. Introduction to application layer
1.2. HTTP
1.3. SMTP
2. SECURITY PROBLEMS
2.1. Security Threats
2.2. Session Hijacking
3. DESIGN ISSUE WITH APPLICATION LAYER
3.1 . Pattern Language
3.2. Service Design Patterns
4. APPLICATION PROTOCOLS
4.1. Telnet
4.2. FTP
4.3. TFTP
4.4. NFS
5. FUNCTIONS OF APPLICATION LAYER
5.1. Functions of Application Layer
5.2. Designing Issues
5.3. Services of Application Layer
5.3. Network Application Architecture
6. CLIENT AND SERVER MODEL
6.1. Client
6.2. Server
6.3. Advantages of Client Server Network
6.3. Disadvantages of Client Server Network
7. SUMMARY
2
ABSTRACT
A majority of the internet uses a protocol suite called the Internet Protocol
Suite also known as the TCP/IP protocol suite. This suite is a
combination of protocols which encompasses a number of different
protocols for different purpose and need. Because the two major
protocols in this suites are TCP (Transmission Control Protocol) and IP
(Internet Protocol), this is commonly termed as TCP/IP Protocol suite.
3
1.1.Introduction to application Web Server and Internet Information Server
(IIS), while on client sideFirefox, Internet
layer Explorer, Mozilla and Google Chrome are
The application layer is the uppermost layer most common.
of the four-layer TCP/IP model and it merges
the three most significant layers of the OSI
model: application,
presentation and
session. This layer is
primarily concerned
with human
interaction and how
software applications
are implemented.
The application layer consists of interface
methods and underlying communication
protocols that can be applied in process-to-
process communications. It standardizes
communication and does not define specific
rules or data formats that applications need
to consider when connecting; the original
description does depend on and recommend
the general design guideline for software [2].
The application layer is concerned with
providing network services to applications. It
provides a mechanism to the next level,
transport services, for interfacing with host
programs for efficient use of network. At this
layer each application’s path and session
can be distinguished by the use of specific
sockets and port numbers.
4
Errors on the Internet can be quite requested. This means the webpage or
frustrating — especially if you do not other document you tried to load in
know the difference between a 404 your Web browser has either been
error and a 502 error. These error moved or deleted, or you entered the
messages, also called HTTP status wrong URL or document name.of type
codes are response codes given by and scrambled it to make a type specimen.
Web servers and help identify the SMTP provides a set of codes that
simplify the communication of email
messages.between.emailserversessenti
ally SMTP is able to transfer only text—
it isn't able to handle fonts, graphics,
attachments .
5
Every layer of communication has its own unique security challenges. The
application layer communication is a very weak link in terms of security because
that the application layer application layer security is a growing area of concern for
developers, designers, quality assurance specialist and programmers. In this paper,
the authors discuss about various security aspects at application layer and its
solution.
6
Series 1
3
Series 2
Series 3
2
0
Category 1 Category 2 Category 3 Category 4
6
2.2. Session Hijacking
1. Network Level
2. Application Level
Network Level hijacking includes TCP and UDP sessions.
Application Level hijacking occurs with HTTP Sessions.
Application Level Hijacking:
Here the valid session token is stolen or predicted to take over the session. Various
attacks involved here are-
Man in the middle attack:
By using automated tools/spoofing methods the attacker splits the connection
between the targets into two. One connection between the client and attacker and
another one between attacker and server. Since the attacker becomes the man in
the middle, all the traffic goes through him, hence he can capture the session Id.
Cross-site scripting:
Client-side vulnerabilities like XSS attacks allow an attacker to craft a malicious
script to get the session Id from the application.
Using Proxy:
By setting up a proxy and causing the traffic to flow through the proxy, one can
capture the session Id details.
Man-in the–Browser:
By installing a Trojan in the victim’s browser will notify the attacker the session Id.
7
Factors for Successful Session Hijacking
● If the application is deployed only in one node, i.e. has a single instance, then
in-process caching is the right candidate to store frequently accessed data
with fast data access.
● If the in-process cache will be deployed in multiple instances of the
application, then keeping data in sync across all instances could be a
challenge and cause data inconsistency.
● If server configurations are limited, then this type of cache can degrade the
performance of any application since it shares the same memory and CPU. A
garbage collector will be invoked often to clean up objects that may lead to
performance overhead
8
Application Cache
An application cache is a local cache that an application uses to keep frequently accessed
data in memory. An application cache evicts entries automatically to maintain its memory
footprint.
Hybrid Cache
A hybrid cache is a combination of a cache provided by standard ORM framework
and open-source/custom/JDBC API implementations. An application can use a
hybrid cache to leverage cache capability that's limited to standard ORM framework.
This kind of cache is used in mission-critical applications where response time is
significant.
Caching Design Considerations
Caching design considerations include data loading/updating, performance/memory
size, eviction policy, concurrency, and cache statistics.
Various Cache Solutions
There are various Java caching solutions available — the right choice for you
depends on your use case. Here are some questions and comparisons that can
assist in identifying the most cost-effective and feasible caching solution for you.
9
2.1. Mail Service
This layer provides the basis for E-mail forwarding and A mail server (sometimes also
referred to an e-mail server) is a server that handles and delivers e-mail over a network, usually
over the Internet. A mail server can receive e-mails from client computers and deliver them to other
mail servers. A mail server can also deliver e-mails to client computers. A client computer is normally
the computer where you read your e-mails, for example your computer at home or in your office.
Also an advanced mobile phone or Smartphone, with e-mail capabilities, can be regarded as a client
computer .
10
In computing, a virtual terminal (VT) is a program that emulates the functionality of
a classic terminal used during the early days of computing for accessing a server or
a corporate mainframe.
In e-commerce, a virtual terminal is a Web-based solution that allows merchants to
process credit card transactions. It is an alternative to a swipe machine.
A virtual terminal is also known as a terminal emulator.
A virtual terminal allows a PC to connect to a remote server, usually to perform a
file transfer or run an application. In the past, this functionality used to be
performed by a physical terminal, but is now emulated in software. The PC and the
server may be running different operating systems, but can communicate using
well-known network protocols such as Telnet, SSH, FTP, etc. A virtual terminal
normally has a command-line interface, which requires typing cryptic commands to
communicate with a server.
11
2.3 . Directory Services
Directory services are software systems that store, organize and provide access to
directory information in order to unify network resources. Directory services map
the network names of network resources to network addresses and define a naming
structure for networks.
The directory service provides transparency to protocols and network topology,
permitting users to access resources without having to be aware of the physical
location of the devices. It’s an important component of the network operating
system and is a central information repository for a service delivery platform.
12
In computing, directory service or name service maps the names of network
resources to their respective network addresses. It is a shared information
infrastructure for locating, managing, administering and organizing everyday items
and network resources, which can include volumes, folders, files, printers, users,
groups, devices, telephone numbers and other objects. A directory service is a
critical component of a network operating system. A directory server or name
server is a server which provides such a service. Each resource on the network is
considered an object by the directory server. Information about a particular
resource is stored as a collection of attributes associated with that resource or
object.
A directory service defines a namespace for the network. The namespace is used to
assign a name (unique identifier) to each of the objects. Directories typically have a
set of rules determining how network resources are named and identified, which
usually includes a requirement that the identifiers be unique and unambiguous.
When using a directory service, a user does not have to remember the physical
address of a network resource; providing a name locates the resource. Some
directory services include access control provisions, limiting the availability of
directory information to authorized users.
13
So far, FTAM, like other OSI protocols, has not caught on as a useful system for
transferring files between different vendor systems in the LAN environment. Many of
the implementations so far have failed to interoperate with one another. FTAM has
worked well as a way to bring mainframe information systems into distributed
environments.
14
4 DESIGN ISSUE WITH APPLICATION LAYER.
15
Like all languages, a pattern language has vocabulary, syntax, and grammar – but a
pattern language applies to some complex activity other than communication. In
pattern languages for design, the parts break down in this way:
This simplifies the design work because designers can start the process from any
part of the problem they understand and work toward the unknown parts. At the
same time, if the pattern language has worked well for many projects, there is
reason to believe that even a designer who does not completely understand the
design problem at first will complete the design process, and the result will be
usable. For example, skiers coming inside must shed snow and store equipment.
The messy snow and boot cleaners should stay outside. The equipment needs care,
so the racks should be inside.
16
4. APPLICATION PROTOCOLS
4.1 TELNET
Telnet is a protocol that allows you to connect to remote computers (called hosts)
over a TCP/IP network (such as the internet). Using telnet client software on your
computer, you can make a connection to a telnet server (that is, the remote host).
Once your telnet client establishes a connection to the remote host, your client
becomes a virtual terminal, allowing you to communicate with the remote host from
your computer. In most cases, you'll need to log into the remote host, which
requires that you have an account on that system. Occasionally, you can log in as
guest or public without having an account.
Telnet clients are available for all major operating systems.
17
4.2 File Transfer Protocol (FTP)
The File Transfer Protocol (FTP) is a standard network protocol used for the
transfer of computer files between a client and server on a computer network.
FTP is built on a client-server model architecture using separate control and data
connections between the client and the server.[1] FTP users may authenticate
themselves with a clear-text sign-in protocol, normally in the form of a username
and password, but can connect anonymously if the server is configured to allow it.
For secure transmission that protects the username and password, and encrypts the
content, FTP is often secured with SSL/TLS (FTPS) or replaced with SSH File
Transfer Protocol (SFTP).
The first FTP client applications were command-line programs developed before
operating systems had graphical user interfaces, and are still shipped with most
Windows, Unix, and Linux operating systems.[2][3] Many FTP clients and automation
utilities have since been developed for desktops, servers, mobile devices, and
hardware, and FTP has been incorporated into productivity applications, such as
HTML editors.
The original specification for the File Transfer Protocol was written by Abhay
Bhushan and published as RFC 114 on 16 April 1971. Until 1980, FTP ran on NCP,
the predecessor of TCP/IP.[2] The protocol was later replaced by a TCP/IP version,
RFC 765 (June 1980) and RFC 959 (October 1985), the current specification.
Several proposed standards amend RFC 959, for example RFC 1579 (February
1994) enables Firewall-Friendly FTP (passive mode), RFC 2228 (June 1997)
proposes security extensions, RFC 2428 (September 1998) adds support for IPv6
and defines a new type of passive mod
18
Command-line telnet clients are built into most versions of macOS, Windows, Unix,
and Linux. To use these clients, go to their respective command lines (that is, the
Terminal application in macOS, the shell in Unix or Linux, or the DOS prompt in
Windows).:
Historically, Telnet provided access to a command-line interface on a remote host.
However, because of serious security concerns when using Telnet over an open
network such as the Internet, its use for this purpose has waned significantly in
favor of SSH.
The term telnet is also used to refer to the software that implements the client part
of the protocol. Telnet client applications are available for virtually all computer
platforms. Telnet is also used as a verb. To telnet means to establish a connection
using the Telnet protocol, either with a command line client or with a graphical
interface. For example, a common directive might be: "To change your password,
telnet into the server, log in and run the passwd command." In most cases, a user
would be telnetting into a Unix-like server system or a network device (such as a
router).
19
4.3 TFTP (Trivial File Transfer Protocol)
The Trivial File Transfer Protocol (TFTP) is a protocol layered on the User Datagram transport Protocol
(UDP) used over the Internet Protocol (IPv4 or IPv6).
TFTP is a very simple file transfer protocol. It was first specified in 1980 and provides functions to copy
files across a network (a very basic form of FTP). It is defined in [RFC2347]. Since it is so simple, it is
easy to implement in a very small amount of memory, an important consideration at that time it was
defined. TFTP is therefore sometimes useful for booting or loading the configuration of systems (such as
routers, thin client, and wireless base stations) which do not have data storage devices. TFTP has no
authentication or encryption mechanisms, and generally provides the same access to all files in the tftp
directory. Due to this lack of security, use of tftp can be dangerous over the open Internet. Therefore,
TFTP is generally only used on private local area networks for applications where ftp would be too
expensive or difficult to implement (e.g. down-loading firmware, software and configuration data to
network devices).
The service uses the well-known UDP port of 69. Since TFTP utilises UDP, it has to supply its own
session support. Each file transferred via TFTP constitutes an independent exchange.
The initiating client host sends either an RRQ (read request) or WRQ (write request) packet, containing
the filename and the transfer mode.
The server responds to a received DATA packet with an ACK (acknowledgement) packet if it receives a
WRQ message and with a DATA packet if it received an RRQ message (this also indicates the ports in use
to the client).
The sending host then sends numbered DATA packets to the destination host after receiving each ACK
message. All but the last message contains a full-sized block of data. The destination host replies with
numbered ACK packets for each received DATA packet. This forms a simple ARQ protocol, providing
retransmission when a packet is lost.
The final DATA packet must contain less than a full-sized block of data (including possibly zero bytes) to
indicate that it is the last block of the transfer.
This data transfer is performed in lockstep. Only one packet (either a block of data, or an
'acknowledgement') is ever in flight on the network at any time. Due to this lack of windowing, TFTP has
a low throughput over high latency (delay) links.
20
4.4 NETWORK FILE SYSTEM (NFS)
21
4.5 Simple Mail Transfer Protocol (SMTP)
Email is emerging as one of the most valuable services on the internet today. Most
of the internet systems use SMTP as a method to transfer mail from one user to
another. SMTP is a push protocol and is used to send the mail whereas POP (post
office protocol) or IMAP (internet message access protocol) are used to retrieve
those mails at the receiver’s side.
SMTP Fundamentals
SMTP is an application layer protocol. The client who wants to send the mail opens a
TCP connection to the SMTP server and then sends the mail across the connection.
The SMTP server is always on listening mode. As soon as it listens for a TCP
connection from any client, the SMTP process initiates a connection on that port
(25). After successfully establishing the TCP connection the client process sends the
mail instantly.
SMTP Protocol
22
Version 2 of the protocol (defined in RFC 1094, March 1989) originally operated only
over User Datagram Protocol (UDP). Its designers meant to keep the server side
stateless, with locking (for example) implemented outside of the core protocol.
People involved in the creation of NFS version 2 include Russel Sandberg, Bob Lyon,
Bill Joy, Steve Kleiman, and others.[1][4]
The Virtual File System interface allows a modular implementation, reflected in a
simple protocol. By February 1986, implementations were demonstrated for
operating systems such as System V release 2, DOS, and VAX/VMS using Eunice.[4]
NFSv2 only allows the first 2 GB of a file to be read due to 32-bit limitations
Version 3 (RFC 1813, June 1995) added:
● support for 64-bit file sizes and offsets, to handle files larger than 2 Gigabytes
(GB);
● support for asynchronous writes on the server, to improve write performance;
● additional file attributes in many replies, to avoid the need to re-fetch them;
● a READDIRPLUS operation, to get file handles[5] and attributes along with file
names when scanning a directory;
● assorted other improvements.
Version 2 of the protocol (defined in RFC 1094, March 1989) originally operated only
over User Datagram Protocol (UDP). Its designers meant to keep the server side
stateless, with locking (for example) implemented outside of the core protocol.
People involved in the creation of NFS version 2 include Russel Sandberg, Bob Lyon,
Bill Joy, Steve Kleiman, and others.[1][4]
The Virtual File System interface allows a modular implementation, reflected in a
simple protocol. By February 1986, implementations were demonstrated for
operating systems such as System V release 2, DOS, and VAX/VMS using Eunice.[4]
NFSv2 only allows the first 2 GB of a file to be read due to 32-bit limitations
Version 3 (RFC 1813, June 1995) added:
● support for 64-bit file sizes and offsets, to handle files larger than 2 Gigabytes
(GB);
● support for asynchronous writes on the server, to improve write performance;
● additional file attributes in many replies, to avoid the need to re-fetch them;
23
5.1
24
25
26
27
6.1 . CLIENT AND SERVER MODEL
28
29
30