Principles of application layer

Jaedeok Lee·2022년 4월 25일
0
post-thumbnail

Application layer

Conceptual, implementation aspects of network application protocols

Client-server paradigm

Peer-to-peer paradigm

Transport-layer service models


Server

Always on host

Permanent IP address

Data centers for scaling


Clients

Communicate with server

May be intermittently connected

May have dynamic IP addresses

Do not communicate directly with each other


P2P architecture

No always on server

Arbitrary end systems directly communicatee

Peers request and provide service

“Self scalability”

new peers bring new service capacity, as well as new service demands

새로운 peer가 늘어나면 전송 속도가 빨라짐

Peers are intermittently connected and change IP address


Process communicating

Process : program running within a host

Within same host, inter-process communication (defined by OS)

client process initiates communication

server process waits to be contacted


Sockets

Process sends/receives messages to/from its socket

Socket analogous to door


Addressing processes

To receive messages, process must have identifier

Host → 32-bit IP address (IPv4)

identifier = (IP address, port number)

example port numbers :

HTTP server : 80

Mail server : 25

To send HTTP message to http://gaia.cs.umass.edu web server :

IP address : 128.119.245.12

port number : 80


App-layer protocol defines

Types of messages exchanged

e.g. Request, response

Message syntax

What field in messages & how fields are delineated

Message semantics :

Meaning of information in fields

Rules

When and how processes send & respond to message

Open protocols :

Defined in RFCs

e.g. HTTP, SMTP

Proprietary protocols :

e.g. Skype


Characteristics of Applications

Data Integrity

100% 신뢰할 수 있는 데이터 전송 - e.g. file transfer, web transactions

데이터 손실의 관용(tolerant) - e.g. voice, video application

Timing

효율적으로 사용하기 위한 낮은 지연시간 - e.g. Internet telephony, interactive games

Throughput

효율적으로 사용하기 위한 최소 전송량(throughput)

사용자가 얻을 어떠한 전송량(whatever throughput)

Security

암호화(Encryption), 데이터 무결성(data integrity)


TCP(Transmission Control Protocol) service :

신뢰있는 전송, Reliable transport : 전송 중 데이터의 손실이 없게끔 함

흐름 제어, Flow control : Receiver가 데이터를 받을 때 수용하지 못하고 버려지는 상황을 없게 함

혼잡 제어, Congestion control : 라우터의 queue에서 오래 대기를 하지 않게 하거나 데이터가 버려지지 않게 함

연결지향, Connection-oriented : source가 destination으로 보낼 때 destination이 받을 수 있는 상태인지 확인하고 보냄

Does not porvide : timing, minimum throughput guarantee, security


UDP(User Datagram Protocol) service :

비신뢰성, Unreliable

Does not provide : reliability, flow control, congestion control, timing, throughput guarantee, security, or connection setup


Quiz

Network 기반 application들의 상호작용 모델은 크게, client-server model과 peer-to-peer model이 있다. 이 두 모델의 차이점을 두 모델의 차이점을 두 문장 내외로 기술하시오.

서버가 컨텐츠를 가지고 있고 클라이언트에게 주는 방식

서버가 컨텐츠를 가지고 있지만 엔드시스템인 사용자에게도 컨텐츠가 복제되어있음. 그렇기 때문에 사용자가 다른 사용자에게 컨텐츠를 제공할 수 있음

profile
서버 개발자

0개의 댓글