Chapter2.1 응용계층원리
- 네크워크와 네트워크 응용(Network and Network Application)
- 네트워크 응용 구조(Network Application Architecture)
- 네트워크 응용 프로세스와 응용 프로토콜(Network Application Process and Application Protocol)
- 네트워크 응용 프로세스와 트랜스포트 프로토콜(Application Protocol and Transport Protocol)
네트워크와 네트워크 응용
- 네트워크 응용 서비스
- 네트워크 통신 서비스를 사용/응용하여 최종 사용자에게 제공되는 서비스
- 네트워크에 연결된 2개 이상의 호스트에서 동작하는 프로그램으로 구현 - 네트워크 구성
- 호스트: 응용 정보(예, URL, HTML 페이지)를 교환하고 해석하고 처리
- 스위치(라우터): 네트워크 장치를 연결하고 패킷을 교환 - 패킷
- 응용 정보를 효율적인 교환을 위해 작은 크기로 나눈 정보단위
- 호스트에서 재조립되어(reassembly) 응용 계층에서 처리
> 의미 있는 정보를 주고 받는 호스트들에서 동작하는 네트워크 응용
> 스위치는 응용 정보 처리에 관여하지 않음 (단지, 응용 정보의 교환 단위인 패킷만 처리)
네트워크 응용 구조
- 네트워크 응용 구조
- 분산 네트워크 응용 프로그램이 작동하는 방식 - 네트워크 응용 구조 유형
- 클라이언트-서버 구조(Client-server architecture) *상호 대등 X
- P2P 구조(Peer-to-Peer architecture) *상호 대등한 실체
■ 클라이언트-서버 구조
- 동작 방식
- 항상 클라이언트 응용 프로그램은 요청하고,
- 서버 응용 프로그램은 응답을 수행
- 클라이언트(Client)
- 서버에게 응용 서비스 요청 (클라이언트 간 통신 No)
- 필요할 때만 작동
- 동적(임시) IP 주소 사용 가능 - 서버(Server)
- 다수의 클라이언트의 서비스 요청에 응답
- 항상 작동(Always-on)
- 고정 (또는 그에 준하는) IP 주소 사용
- 확장성(scalability) 문제: 서버가 클라이언트 용량에 맞게 적절히 서비스 역량이 늘어나기 어려움.
■ P2P 구조
- 동작 방식
- 임의의 호스트간에 직접 통신하고,
- 각 호스트는 클라이언트 역할과 서버 역할을 동시에 수행하며,
- 호스트 간의 관계가 대등(peer-to-peer)
- 장점
- 서버 의존성이 없음
- 구축 및 관리 비용이 낮음
- 자가 확장성(Self-scalability) - 문제점
- 보안 취약성(Security)
- 낮은 신뢰성(Reliability)
- 낮은 성능(Performance)
네트워크 응용 프로세스와 응용 프로토콜
- 네트워크 응용 프로세스(application process)
- 호스트에서 네트워크를 통해 응용 메시지를 교환하며 작동하는 프로그램 - 응용 프로토콜(application process)
- 네트워크 응용 프로그램 간의 응용 메시지 교환
- 응용 프로세스의 일부
- 클라이언트 프로세스(client process)
- 통신을 개시하는 응용 프로세스 - 서버 프로세스(server process)
- 클라이언트의 통신 요청을 기다리는 응용 프로세스
네트워크 응용 프로세스와 트랜스포트 프로토콜
- 소켓(Socket)
- 응용 프로세스가 네트워크로 메시지를 송신하고 수신하는 통로 자료구조
- 트랜스포트 계층 상에서 구현 - 소켓 API(Application Programming Interface)
- 소켓 자료구조를 사용하여 통신 서비스를 제공하는 프로그램 인터페이스
- API를 사용하여 응용 프로그램 구현
- 응용 프로세스 주소
● Socket 주소: IP 주소+Port 번호
*IP 주소: Host / 네트워크 장치 지정
*응용 프로세스를 어떻게 지정할 것인가?
문제는 Host에 어플리케이션이 하나만 동작하는게 아니라는 것!
= IP 주소만 가지고는 어플케이션 프로세스를 유니크하게 지정할 수 없다.
따라서, IP 주소에 Port 번호를 추가해 Socket 주소를 지정한다.
트랜스포트 프로토콜
- TCP(Transmission Control Protocol)
- UDP(User Datagram Protocol)
- TCP
- 응용 프로세스간 신뢰 전송
: 반드시 정보가 안전하게 목적지까지 도착하는 것이 보장 O
- 저성능 전송 - UDP
- 응용 프로세스간 비신뢰 전송
: : 반드시 정보가 안전하게 목적지까지 도착하는 것을 보장할 수 X
- 고성능 전송
* Email-SMTP / Web-HTTP / file-FTP => TCP 사용 (신뢰전송)
* streaming multimedia / Internet telephony(인터넷 전화) => UDP 사용 (신뢰전송 상관X)
'CS > 네트워크' 카테고리의 다른 글
[컴퓨터네트워크] Chapter2.2 웹과 HTTP(2): 메시지, 쿠키, 캐시 (0) | 2023.10.25 |
---|---|
[컴퓨터네트워크] Chapter2.2 웹과 HTTP(1): 동작원리와 지속 비지속 연결 (0) | 2023.10.24 |
[컴퓨터네트워크] Chapter1.5 네트워크 사이버 공격(Network Attacks) (0) | 2023.10.11 |
[컴퓨터네트워크] Chapter1.4 프로토콜 계층 구조 (0) | 2023.10.10 |
[컴퓨터네트워크] Chapter1.3 네트워크 코어와 라우터 (0) | 2023.10.10 |