Application Layer는 중요한 계층이라 여러 번 나눠서 알아볼게요.
1회차에선 application layer에서 제공하는 서비스인 Client-server paradigm, Peer-peer architecture를 먼저 간단히 알아보고 Processes Communicating, Sockets, Addressing Processes에 대해서도 알아보겠습니다!
----🐢
Client-Server Paradigm
- 서버(Server)
항상 켜져 있는 host / 고정 IP 주소 보유
- 클라이언트(Client)
서버에 접속, 통신 요청 / 연결이 불안정할 수 있음 / 동적(임시) IP 주소 가질 수 있음
예시: HTTP, IMAP, FTP
---🐢-
Peer-to-Peer(P2P) Architecture
항상 켜져 있는 서버 X
모든 엔드 시스템이 대등하게 직접 통신
Self Scalability: 새로운 피어가 추가될 때, 서비스 용량도 함께 증가하면서 네트워크의 서비스 수요 충족
예시: P2P file sharing(서버 접속 개념X)
--🐢--
Processes Communicating
(프로세스 간의 통신을 위해 OS가 지원)
Process : host 내에서 실행중인 프로그램
동일한 host 내에서 두 프로세스는 inter-process communication(OS에 의해 정의)을 통해 통신
서로 다른 host에 있는 프로세스는 소켓을 사용해 메시지를 교환하여 통신
-🐢---
소켓(Socket)
프로세스가 메시지를 송수신할 수 있도록 통로 제공
소켓은 TCP나 UDP와 같은 프로토콜을 통해 데이터 송수신
TCP: 보내는대로 전송(신뢰성 보장)
UDP: 그대로 안 갈 수도 있음(신뢰성 X)
네트워크 엔티티
소켓을 통해 통신을 주고받는 각 주체(클라이언트, 서버)
각 엔티티는 소켓을 통해 데이터 전송 요청/응답
소켓은 IP주소와 포트 번호로 식별
참고) TCP 소켓 통신에서 주로 사용되는 함수
socket(): 소켓 생성
bind(): 서버 소켓을 특정 IP 주소와 포트 번호에 연결(바인딩)
accept(): 서버가 클라이언트의 연결 요청을 수락
connect(): 클라이언트가 서버에 연결을 요청
위와 같은 소켓을 통한 함수 호출을 칼라를 입힌다고도 함
🐢----
Addressing Processes
메시지를 수신하기 위해 프로세스는 고유한 식별자(identifier)가 필요
host device는 고유한 32-bit IP 주소를 가짐
🤔: 한 IP주소에 여러 프로세서가 있으면 어떡하나요?
🐢: 각 프로세서는 서로 다른 포트 넘버를 가지고 있어서 괜찮아요!
그래서 식별자는 IP주소와 포트 넘버(port numbers)를 포함하고 있답니다.
예시 포트 번호
HTTP server: 80 (웹서버) / mail server: 25
'컴퓨터네트워크' 카테고리의 다른 글
Internet Protocol Stack (0) | 2024.09.27 |
---|---|
Queueing delay (0) | 2024.09.27 |
패킷 스위칭과 서킷 스위칭 (1) | 2024.09.20 |
Network Delay (1) | 2024.09.20 |
인터넷/네트워크 구조(기초) (0) | 2024.09.13 |