You are on page 1of 17

Network Protocols and Architecture

( Application layer and Services )

Lecture 1 Principles of Application Layer Protocols

Lecturer : Abdul Rahman Vakili E-Mail: hamidgml@gmail.com

Network Protocol
A protocol defines the format and the order of messages exchanged between two or more communicating entities, as well as the actions taken on the transmission and/or receipt of a message.

A network protocol is similar to a human protocol, except that the entities exchanging messages and taking actions are hardware or software components of a computer network.

Network Protocol

Network Edge

In computer networking , the computers that we use on a daily basis are often referred to hosts or end systems. They are referred to "hosts" because they host (run) application-level programs such as a Web browser or server program, or an e-mail program. They are also referred to "end systems" because they sit at the "edge" of the Internet.

Network Edge

Network Core

Connectionless and Connection-Oriented Services


When an application uses the connection-oriented service, the client and the server send control packets to each other before sending packets with real data (such as e-mail messages). This so-called handshaking procedure alerts the client and server, allowing them to prepare for flowing of packets. Once the handshaking procedure is finished, a "connection" is said to be established between the two end systems. Example: TCP

TCP three-way handshake

Connectionless Service

There is no handshaking with the Internet's connectionless service. When one side of an application wants to send packets to another side of an application, the sending application simply sends the packets.

Since there is no handshaking procedure prior to the transmission of the packets, data can be delivered faster.

But there are no acknowledgments either, so a source never knows for sure which packets arrive at the destination.
Example: UDP (User Datagram Protocol)

Network applications and Application-layer protocols


An application-layer protocol is only one piece of a network Application. Example: The Web is a network application that allows users to obtain "documents" from Web servers on demand. The Web application consists of many components, including a standard for document formats (i.e., HTML), Web browsers (e.g., Netscape Navigator and Internet Explorer), --->

Network applications and Application-layer protocols


---> Web servers (e.g., Apache, Microsoft and Netscape servers),and an application-layer protocol. The Web's application-layer protocol, HTTP (the HyperText Transfer Protocol), defines how messages are passed between browser and Web server. Thus, HTTP is only one piece of the Web application !

Some network apps

- E-mail - Web - Instant messaging - Remote login - P2P file sharing - Multi-user network games - Streaming stored video clips

- Voice over IP - Real-time video Conferencing - ...

Applications and application-layer protocols

Application architectures

- Client-server - Peer-to-peer (P2P) - Hybrid of client-server and P2P

Client-server architecture
server: always-on host permanent IP address server farms for scaling clients: communicate with server may be intermittently connected may have dynamic IP addresses do not communicate directly with each other

client/server

2: Application Layer

15

Pure P2P architecture


- no always-on server - arbitrary end systems directly communicate - peers are intermittently connected and change IP addresses

peer-peer

Highly scalable but difficult to manage

2: Application Layer

16

Hybrid of client-server and P2P


Skype voice-over-IP P2P application centralized server: finding address of remote party client-client connection: direct (not through server) Instant messaging chatting between two users is P2P centralized service: client presence detection/location user registers its IP address with central server when it comes online user contacts central server to find IP addresses of buddies
2: Application Layer 17

You might also like