네트워크
모두의 네트워크 - 7장. 응용 계층: 애플리케이션에 데이터 전송하기
토리쟁이
2023. 1. 24. 21:04
이번 포스팅에서는 OSI 모델의 7계층인 응용 계층에서 일어나는 일들에 대해 다루어보고자 한다.
<응용 계층의 역할>
응용 계층(application layer)
- OSI 모델의 7계층 중 7계층으로, 최상위 계층
- 애플리케이션들이 동작하는 계층
- 다양하게 존재하는 응응 환경에서 공통적으로 필요한 기능을 함
- 상호 간에 통신하면서 일련의 업무를 처리할 수 있도록 필요한 서비스 기능 제공
- 이메일, 파일 전송, 웹 사이트 조회 등 애플리케이션에 대한 서비스를 제공하는 계층
- 애플리케이션과 데이터를 주고받기 위해 필요한 계층
- 클라이언트의 요청을 전달하기 위해 서버가 이해할 수 있는 데이터로 변환하고 전송 계층으로 전달
- 클라이언트 - 서비스를 요청하는 측
- 서버 - 서비스를 제공하는 측
- 클라이언트와 서버가 통신하기 위해 응용 계층의 여러 프로토콜 사용
- HTTP, FTP, DNS, SMTP, POP3 등
- 각각의 애플리케이션에 대응되는 데이터를 전송하는 역할
<웹 서버의 구조(웹 사이트 접속)>
WWW(World Wide Web)
- 인터넷 서비스의 하나
- 서로 연결되어 있어 언제 어디서든 필요한 곳에 접근하거나 정보를 공유하고 주고받을 수 있는 멀티미디어 인터넷 서버
- 인터넷과 완전히 동일한 개념은 아니고 인터넷보다는 작은 개념
- HTML, URL, HTTP 이 3가지 기술이 사용됨
- HTML
- WWW를 통해 볼 수 있는 문서를 만들 때 사용하는 마크업 언어
- 하이퍼텍스트를 작성하기 위해 개발되었음
- 하이퍼텍스트로는 문장이나 이미지를 표시하거나 하이퍼링크를 사용할 수 O
- 웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성
- URL
- 인터넷에서 파일 위치를 지정하기 위해 기술된 주소
- 웹 사이트 주소를 지정하기 위해 사용
- HTTP
- 웹 서비스에서 클라이언트와 웹 서버 간에 정보를 주고받기 위해 사용되는 프로토콜
- 클라이언트는 웹 사이트를 보기 위해 서버의 80번 포트를 사용하여 HTTP 통신
- 클라이언트에서 HTTP 요청을 보내면, 서버에서 HTTP 응답을 반환
- 요청할 때에는 GET, POST 방식 존재
- GET - URL에 정보 다 드러남 (보안에 취약)
- POST - 요청 정보를 바디에 숨김 (보안 유리)
- 요청할 때에는 GET, POST 방식 존재
- 과거 HTTP/1.0 사용
- 요청을 보낼 때마다 연결했다가 끊는 작업 반복
- 굉장히 느린 속도
- 현재 HTTP/1.1 or HTTP/2 사용
- 이전 버전과 달리 keepalive 기능이 추가됨
- 연결을 한 번 수립하면 데이터 교환이 마칠 때까지 유지
- 데이터 교환이 모두 끝내면 연결을 끊는 구조
- 둘 다 HTTP/1.0보다 훨씬 더 빠를 수 있게 됨
- HTTP/1.1 - 요청을 순서대로 처리하는 특징
- HTTP/2 - 요청을 순서대로 처리X => 1.1 버전보다 더 빠르게 콘텐츠 표시
- 이전 버전과 달리 keepalive 기능이 추가됨
- HTML
<DNS 서버의 구조(이름해석)>
DNS(Domain Name System)
- 호스트 이름을 IP 주소로 변환하는데 사용하는 시스템(서비스)
- URL을 IP 주소로 변환하는 서비스(시스템)
- URL - 인터넷에서 파일 위치를 지정하기 위해 기술된 주소
- 웹 사이트 주소를 지정하기 위해 사용
- 이름 해석 기능
- URL = 호스트 이름 + 도메인 이름
- 도메인 이름 - 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름
- 호스트 이름(서버 이름) - 도메인 이름 앞에 있는 www
- DNS 서버 - DNS 서비스가 동작하는 컴퓨터(서버)
- 요청 받은 DNS 서버가 해당 도메인 이름의 IP 주소를 모르는 경우에는 다른 DNS 서버에 질의
- DNS 서버는 전 세계에 흩어져 있고 모두 계층적으로 연결되어 있어 서로 연계하면서 동작함
<메일 서버의 구조 (SMTP와 POP3)>
SMTP(Simple Mail Transfer Protocol)
- 인터넷에서 메일을 송신하는데 사용하는 프로토콜
- 통신 포트는 기본적으로 25번 포트이나, 새 정책과 보안을 적용하기 위해 587번 포트 사용
- SMTP 서버 - SMTP를 지원하는 서버
POP3
- 인터넷에서 메일을 수신하는데 사용하는 프로토콜
- 통신 포트는 일반적으로 110번 사용
- POP3 서버 - POP3를 지원하는 서버
메일 송수신 과정
- SMTP를 사용하여 컴퓨터1에서 메일 서버1로 메일 전송
- SMTP를 사용하여 메일 서버1에서 메일 서버2로 메일 전송
- POP3를 사용하여 메일 서버2의 메일 박스에서 컴퓨터2로 메일 데이터 전송
FTP(File Transfer Protocol)
- 서버와 클라이언트 간에 파일을 전송하기 위한 프로토콜
- 일반적으로 통신 포트는 20, 21번
- 20번 - 데이터 전송 용도
- 21번 - 제어 용도
ping 명령
- 목적지 컴퓨터와의 통신을 확인하기 위한 명령어
- ICMP(Internet Control Message Protocol) 프로토콜 사용
- 목적지 컴퓨터에 ICMP 패킷을 전송하고 패킷에 대한 응답이 제대로 오는지 확인