Application Layer
목표
- 네트워크 애플리케이션 프로토콜의 개념적, 구현 측면
- 운송 계층 서비스 모델
- 클라이언트-서버 패러다임
-
P2P 패러다임
- 널리 사용되는 애플리케이션 레벨 프로토콜을 검사하여 프로토콜에 대해 알아본다
- HTTP
- FTP
- SMTP / POP3 / IMAP
- DNS
- 네트워크 애플리케이션 생성
- 소켓 API
네트워크 앱들
- 이메일
- 웹
- 텍스트 메시지
- 원격 로그인
- P2P 파일 공유
- 멀티 유저 네트워크 게임
- 스트리밍 서비스
- VOIP
- 실시간 화상 회의
- 소셜 네트워킹
- 검색
새로운 네트워크 어플리케이션을 만드는 것
- 다른 엔드 시스템에서 실행
- 네트워크를 이용한 통신
- 예) 웹서버는 네트워크 장치용 소프트웨어를 작성할 필요 없이 브라우저 프로그램과 통신한다
- 네트워크 장치가 사용자 애플리케이션을 실행하지 않음
- 엔드 시스템의 애플리케이션을 통해 신속한 앱 개발, 보급 가능
프로세스 통신
- 프로세스 : 호스트 내에서 실행 중인 프로그램
-
- 동일한 호스트 내에서 프로세스 간 통신(OS에 의해 정의됨)을 사용하여 두 프로세스가 통신한다.
- 서로 다른 호스트의 프로세스 간에 메시지 교환으로 통신
- 클라이언트 프로세스 : 프로세스가 통신을 시작한다.
-
서버 프로세스 : 프로세스가 연락받을 때까지 기다린다.
- 별도로 : P2P 아키텍처를 사용하는 애플리케이션에는 클라이언트 프로세스 및 서버 프로세스가 있다.
소켓
- 프로세스는 메시지를 소켓을 이용하여 보내거나 받을 수 있다.
- 문과 비슷한 소켓
-
- 프로세스 밀치기 메시지 전송
- 전송 프로세스는 수신 프로세스 시 소켓에 메시지를 전달하기 위해 다른 쪽에 있는 전송 인프라에 의존한다.
프로세스 주소 지정
- 메시지를 받으려면 프로세스에는 식별자가 있어야 한다
- 호스트 장치의 고유한 32비트 IP 주소
- Q : 어떤 프로세스가 실행되는 호스트의 IP주소는 프로세스를 알아내는 데 충분한가?
-
- 아니요, 같은 호스트에서 많은 프로세스가 작동중일 수 있다.
- 식별자에는 호스트의 프로세스와 관련된 IP주소와 포트 번호가 모두 포함됩니다.
- 포트번호 예) HTTP (80), 메일서버(25), IP 주소, 포트번호
무슨 전송 서비스가 앱에 필요한가?
데이터 통합
- 몇몇 앱들은(파일 전송 웹 트랜잭션) 100% 신뢰할 수있는 파일 전송을 요구한다.
- 다른 앱들(오디오) 일부 손실을 견딜 수 있다.
타이밍
- 몇몇 앱들은(인터넷 전화, 게임) 낮은 지연시간을 요구한다.
쓰루풋
- 몇몇 앱들은(멀티미디어) 최소 처리량이 “효과적”이어야 한다.
- 다른 앱(“탄력적인 앱”)은 모든 처리량을 활용한다.
보안
- 암호화, 데이터 무결성
application | data loss | throughput | time sensitive |
---|---|---|---|
file transfer | 손실 없음 | 탄력적 | no |
이메일 | 손실 없음 | 탄력적 | no |
웹 문서 | 손실 없음 | 탄력적 | no |
실시간 오디오/비디오 | 손실 견딤 | 오디오 : 5kbps-1Mbps 비디오 : 10kbps-5Mbps | yes, 100’s msec |
저장된 오디오/비디오 | 손실 견딤 | 같은 앱위에 | |
상호작용 게임 | 손실 견딤 | 몇몇 kbps 이상 | yes, few secs |
텍스트 메시징 | 손실 견딤 | 탄력적 | yes, 100’x msec |
인터넷 전송 프로토콜 서비스
TCP 서비스
- 송수신간 신뢰할 수 있는 전송
- 흐름 제어 : 송신자가 수신자를 압도하지 않음
- 혼잡 제어 : 네트워크 과부하시 쓰로틀 보낸다
- 제공하지 않음 : 타이밍, 최소 처리량 보장, 보안
- 연결 지향 : 클라이언트와 서버 프로세스 간 설정 필요
UDP 서비스
- 송수신간 신뢰할 수 없는 데이터를 전송한다.
- 제공하지 않는 것 : 신뢰성, 흐름제어, 혼잡 제어, 타이밍, 처리량, 보장, 보안, 연결 설정
TCP 보안
TCP&UDP
- 암호화 X
- 클리어텍스트 비번은 소켓을 통해 보낸다.
- 암호화된 TCP연결을 제공한다
- 데이터 무결성
- 엔드포인트 인증
SSL은 앱 레이어에 있다.
- 앱들은 SSL 라이브러리를 사용한다.
SSL 소켓 API
- cleartext passwds는 소켓으로 인터넷에 암호화해서 보낸다.
앱 계층 프로토콜 정의
- 교환되는 메시지의 유형
- 예): 요청, 응답
- 메시지 구문 : 메시지의 필드, 필드 설명 방법
- 메시지 의미론
- 분야 정보의 의미
-
- 프로세스가 열린 프로토콜 메시지를 보내고 응답하는 시기와 방법에 대한 규칙
- RFC에 정의되어 있다
- 상호운용성 허용
-
HTTP, SMTP 프로토콜 - Skype
- 네트워크 애플리케이션 및 애플리케이션 계층 프로토콜의 구분
- 웹 애플리케이션은 다음과 같은 많은 구성요소로 구성된다.,
-
- 문서 형식 표준(HTML)
- 웹 브라우저(Firefox)
- 웹 서버(Apache)
- 응용 프로그램 계층 프로토콜(HTTP)
- 애플리케이션 계층 프로토콜은 네트워크 애플리케이션의 한 부분일 뿐 HTTML 는 웹 애플리케이션의 한 부분일 뿐이다.
- 이메일의 주요 애플리케이션 계층 프로토콜인 SMTP는 하나의 애플리케이션 일 뿐이다.
-