Application Layer
개괄
End to End Systems 끼리, 그리고 Application Layer 에서만 가능함
그러니까 Network Core 에 대한걸 Application 코더가 짤 필요도 그럴수도 없음
Interprocess Comunication (같은 Host 내의 Process 끼리) 가 아닌 다른 호스트
Architecture
Client-Server Architecture
Client 끼리 소통하려면 서버를 꼭 거쳐야함
Server 는 고정되고 잘 알려진 주소인 IP 주소를 가지고 대개 항상 켜져있음
서버 혼자 감당이 빡세면 Data Center 를 두는 경우도 있음
P2P(Peer-to-Peer) Architecture
항상 켜지고 고정된 위치의 서버가 필요없고, Client 끼리 직접 소통함
pairs of Intermittently Connected Host = peers.
Self Scalability - Service Capacity 도 늘려주면서 Service Demands 도 함.
peer 은 IP도 막 바꾸고, 보안도 약하고, 구현도 어렵지만 쌈.
파일공유, 다운로드 속도상승 프로그램, 화상통화/전화(스카이프)
메시지는 P2P로 IP Tracking 은 Client-Server 로 하는 Hybrid 도 많음
Process Communicating
Host
Server - process that waits to be contacted to begin the session
Client - process that initiates the communication
IP Address, Port Number(Process or Socket 인지용) 를 알아야 연결 가능
Socket
Interface between Application and Transport Layer in OS.
그래서 둘 레이어 상의 API 라고 부를 수도 있음
그 레이어에선 Transport Control, Transport Layer Parameters 만 제어가능
Protocol
구성
Type of messages Exchange(request, response)
Message Syntax / Semantics,
Rules(언제, 어떻게 보내고 받냐)
분류
Open Protocol(RFCs ...), Private Protocol(Skype)
종류
HTTP (HyperText Transfer Protocol)
[RFC 1945], [RFC 2616] 에 있음
WebPages
consists of Objectes (Base HTML + Images ...)
Objects referenced and addressable by URLs.
URLs
Hostname of the server + Object's path name
URI (Uniform Resource Identifier) 의 종류 vs URN
URL 은 위치이고 URN 은 파일의 고유한 이름. Extension 까지 포함.
TCP 를 사용함
Client initiating TCP Connection( Socket ) to Server; port 80
=> Server accepts TCP Connection from Client
=> HTTP Messages Exchange => TCP Connection Closed
Stateless
따로 Client 를 메모리에 저장안함
저장하면 Client 랑 Server 랑 동기화 안되면 서로 보이는게 달라서 복잡
Transport Layer
Services
특성
Reliable Data Transfer ( Data Integrity, Data Loss )
Overflow buffer in router(Packet Loss) or bits corrupted 의 경우에도 안정성
Throughput
Host 의 Process 끼리 Bandwidth 는 공유됨에도 r bits/sec 을 보장해줌.
bandwidth-sensitive applications(전화) 에서 필수
Timing - Delay 좀 줄여라
Security - 암호화, End-Point Authentication
종류
TCP
적용되는것
Connection-Oriented Service
Handshaking procedure -> TCP Connection -> messages flow
Full-duplex Connection - 양쪽 다 메시지를 동시에 보낼 수 있음
Reliable Data Transfer
Without Error, In Proper Order
Flow Control - 보낸이 몰빵해서 보내서 받는이가 압도안당하게함
Congestion Control - 보낸이의 네트워크가 혼잡해도 보낼 수 있음
안하는거
Timing, Minimum Throughput Guarantee, Security
UDP
되는게 없고 가벼움. 그래서 멀티미디어나 인터넷 전화에서만 쓰임.
방화벽이 보통 막는 경우가 많아서 인터넷전화도 안쓰는 경우가 가끔.
SSL (Secure Sockets Layer)
TCP Enhanced 버전, UDP, TCP 처럼 별도의 Socket API 를 쓰면 적용됨.