안녕하세요!

FE 개발자 유진주입니다.

CS/네트워크

[컴퓨터네트워크] Chapter2.1 응용계층원리

ypearl 2023. 10. 11. 21:07

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)

P2P 구조

  • 장점
    - 서버 의존성이 없음
    - 구축 및 관리 비용이 낮음
    - 자가 확장성(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)