애플리케이션 계층의 역할
애플리케이션 계층은 사용자가 직접 사용하면서 체감할 수 있는 서비스를 제공.
데이터 전송 관련 계층을 제외한 모든 영역이 애플리케이션 계층의 범주
네트워크 계층 모델 중 트랜스포트 이하의 계층들은 데이터 전송을 담당하고 있다.
사용자가 직접적으로 사용하는 프로토콜
프로토콜 | 동작방식 |
HTTP | 웹 클라이언트와 웹 서버 사이에서 웹 페이지 데이터를 주고받음 |
POP, SMTP, IMAP | 메일 송수신 및 보관 |
SMB, AFP | LAN 안에서 파일을 공유 |
FTP | 서버를 통해 파일을 주고받는다. |
Telent, SSH | 원격에서 서버 제어 |
사용자가 간접적으로 사용하는 프로토콜
프로토콜 | 동작방식 |
DNS | 도메인명과 IP 어드레스의 정보를 서로 변환할 때 사용 |
DHCP | LAN 내의 컴퓨터에게 IP 어드레스를 할당할 때 사용 |
SSL / TLS | 통신 데이터를 암호화하여 주요 정보를 안전하게 주고받을 때 사용 |
NTP [ Time Protocol ] | 네트워크에 연결된 장비들의 시스템 시간 동기화할 때 사용 |
LDAP | 네트워크에 연결된 자원의 통합 관리에 필요한 디렉터리 서비스 제공할 때 사용 |
HTTP ( HyperText Transfer Protocol )
클라이언트 PC의 웹 브라우저와 웹 서버는 HTTP라는 애플리케이션 계층 프로토콜을 사용.
통신과정에서 주고받은 정보들은 HTTP 메시지라고 하고 요청 (request) / 응답(response)으로 구분
HTTP는 상태 정보를 저장하지 않는 스테이트리스이며, 대표적인 무상태 프로토콜이다.
[ 스테이트리스를 보완하기 위해서 쿠키와 세션이 개발 ]
HTTP 상태 코드의 의미
상태코드 | 의미 |
100 Continue | 서버가 헤더는 받았고 바디가 올 것을 기다리고 있음 |
101 switching Protocols | 클라이언트가 서버에게 프로토콜을 바꾸자고 제안했고, 서버도 수락 |
200 OK | 요청이 성공했고, 요청한 결과 데이터를 응답으로 보냄 |
201 Created | 요청이 성공했고 새로 만들어진 URL을 응답으로 보냄 웹 서비스나 웹 애플리케이션에서 사용 |
301 Moved Permanently | 요청이 내용이 다른 경로로 옮겨짐. 이후 옮겨진 경로로 요청해야 한다. |
302 Found | 요청한 내용이 다른 경로로 옮겨짐. 임시로 옮겨진 것이라 이후에도 동일한 경로로 요청해야 한다 |
304 Not Modified | 요청한 내용은 갱신되지 않았음 |
400 Bad Request | 요청에 문제가 있음 |
403 Forbidden | 요청한 내용은 접근 금지 ( 권한이 없음 ) |
404 Not Found | 요청한 내용 찾을 수 없음 |
CGI ( Common Gateway Interface ) : 웹 초창기에는 웹 서버에서 서버 측 프로그램을 실행하기 위해 방식을 사용.
이후에는 CGI보다 응답 속도가 우수한 웹 서버 추가 모듈 형태로 동작하는 방식이 사용.
GET 방식과 POST 방식
GET 방식 : 입력 폼의 내용이 요청 행에 포함된다.
http://search.service.com/search?q=TCP%2FIP
URL의 '?' 문자 뒤에 입력 폼의 내용이 붙는다
POST 방식 : GET 방식이 정보를 요청하는 것과 달리, POST 방식은 정보를 저장/변경할 때 사용. 더 많은 데이터 전송가능
입력 폼의 내용이 메시지 바디에 포함된다
AJAX( Asynchronous JavaScript and XML ) : 웹 서비스의 사용성을 높여준다. 페이지의 일부만 바꿀 수 있다.
AJAX는 웹 브라우저가 웹 서버로 요청하는 것이 아닌 자바스크립트라는 것에 차이가 있다.
쿠키( Cookie )
위에서 말한 것처럼 HTTP는 무상태 프로토콜이기 때문에 요청과 응답을 한 번씩 주고받은 후에 통신이 끊긴다.
예를 들어 온라인 쇼핑몰에서 상품 선택, 구매를 한 후 결제 화면으로 이동하는 것처럼 여러 단계의 흐름 처리를 할 땐 각 요청이 동일한 사용자가 보낸건지 다른 사용자가 보낸건지 판단을 못한다.
이런 경우 여러건의 요청 처리를 동일한 사용자 접속 세션(session)으로 인식할 수 있도록 쿠키( Cookie )를 사용한다.
이메일
이메일에서 사용되는 애플리케이션 계층 프로토콜에는
발산할 때 사용하는 SMTP ( Simple Mail Transfer Protocol ) , 수신할 때 사용하는 POP( Post Office Protocol ) 이 있다.
피어 투 피어 통신
개인 컴퓨터에서 많이 사용되는 파일공유는 각각의 컴퓨터가 서로 서버가 되기도 하고 클라이언트가 되기도 하는
피어 투 피어(P2P, peer to peer) 방식을 사용한다.
그 외에 NAS(Network Attached Storage)라는 파일 고유 프로토콜을 지원하는 컴퓨터도 있다.
= 피어 투 피어 방식은 중앙에서 관리하는 서버가 없다.
FTP ( File Transfer Protocol )
파일전송 프로토콜
파일을 주고받기 위한 데이터 커넥션 , 명령어를 보내기 위한 컨트롤 커넥션. 두 가지 접속 형태를 사용
FTP 서비스에서는 서버 내부에서 외부로 나가는 통신을 방화벽이 차단하여 파일 전송이 안되는 경우가 발생하기도 하는데, 이때는 패시브모드(passive mode)를 사용해서 클라이언트 쪽에서 서버 쪽으로 역방향으로 데이터 커넥션을 만들어주면 해결된다
VoIP ( Voice over IP )
음성이나 동영상 데이터는 메일 같은 텍스트 형태의 정보에 비해 데이터 용량이 크기 때문에 통신의 전송속도를 우선하고, 전송시 수신된 정보를 바로 재생할 수 있는 스트리밍 기술을 사용한다
= VoIP는 전송 중에 일부 데이터가 누락되더라도 신경 쓰지 않는다.
피어 투 피어 방식을 사용하는 것이 일반적.
다만 피어 투 피어 방식은 서로 통신할 상대를 찾는 것이 어렵기 때문에 우선 클라이언트 서버 방식으로 디렉토리 서버에 접속 후 상대를 찾고 통화할 때 피어 투 피어 방식으로 직접 통신하는 하이브리드 방식도 많이 활용한다.
'CS' 카테고리의 다른 글
TCP/IP - 라우팅과 인터넷계층 (0) | 2023.08.24 |
---|---|
TCP/IP - 트랜스포트 계층 (0) | 2023.08.23 |
TCP/IP - 컴퓨터 네트워크 (0) | 2023.08.22 |