![[네트워크프로그래밍] 응용 계층](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuFg6K%2Fbtr4vi9DCDy%2FicVzY4GU2tFmPsRCZsWnZ1%2Fimg.jpg)
[네트워크프로그래밍] 응용 계층CSE/네트워크 (network)2023. 3. 17. 16:54
Table of Contents
응용 계층
애플리케이션과 데이터를 주고받기 위해 필요
역할
클라이언트와 서버로 나뉨.
- 클라이언트: 서비스를 요청하는 측
- 서버: 서비스를 제공하는 측
- 각각의 애플리케이션에서 통신하려면 응용 계층의 프로토콜을 사용해야 함.
프로토콜의 종류는 다음과 같음.
HTTP
: 웹 사이트 접속DNS
: IP 주소를 알아냄FTP
: 파일 전송SMTP
: 메일 송신POP3
: 메일 수신
WWW(World Wide Web)
W3, Web이라고도 불림.
WWW는 세 가지 기술이 적용됨
HTML
: 웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용해 작성하는 마크업 언어.URL
: 주소HTTP
: 웹 사이트를 접속하기 위해 사용하는 프로토콜
HTTP
웹 사이트를 보기 위해 사용하는 프로토콜. 포트 번호 80
- 클라이언트는 HTTP 요청(request)을 보냄
- 서버는 HTTP 응답(response)를 반환함
HTTP/1.1
keepalive
기능 추가
- 기존에는 요청을 보낼 때마다 연결했다 끊는 작업을 반복함
- 한 번 연결을 하게 되면 데이터 교환을 마칠 때까지 유지하고, 데이터 교환을 모두 끝내면 연결을 끊는 구조
- 요청을 순서대로 처리함
HTTP/2
요청을 보낸 순서대로 응답을 반환하지 않아도 됨
- 콘텐츠를 빠르게 표시할 수 있음
DNS
URL을 IP 주소로 변환하는 서비스(시스템)
- (웹 사이트의 IP 주소를 모르기 때문에) DNS 서버에 요청 → IP 주소를 확인 → 웹 서버에 접속함
- 간혹 DNS 서버가 도메인의 IP 주소를 모를 수 있음. 그럴 경우 다른 DNS 서버에 요청함
- DNS 서버는 전 세계에 흩어져 있음
- 복제된 웹 서버: 하나의 이름에 해당하는 많은 IP 주소 존재
- 호스트 별칭: 표준, 별칭 이름
도메인 이름
컴퓨터나 네트워크를 식별하기 위해 붙여진 이름
- 도메인 이름 앞에 있는 www는 호스트 이름 (서버 이름)이라고 함
이름 해석 (name resolution)
IP 주소가 아닌 주소(<https://www.google.com>)를 사용해 접속하도록 돕는 것
- 구글 주소로 적힌 곳을 접속하게 되면 DNS 서버가 웹 사이트 서버의 IP 주소를 알려주는 것
DNS 계층 데이터베이스
DNS 레코드
도메인 이름과 IP 주소에 대한 정보를 제공하는 DNS 데이터베이스의 항목
- 웹 사이트의 IP 주소, 도메인의 이메일 처리를 담당하는 메일 서버 또는 도메인 쿼리를 해결하는 이름 서버 등의 정보가 포함됨
- DNS 서버가 도메인 이름을 IP 주소로 변환하는 데 사용되어 인터넷 상의 컴퓨터 간 통신을 가능케함
A 레코드
- 주소 레코드라고도 불림
- 도메인 이름을 IP 주소에 매핑하는 데 사용함
- 컴퓨터가 웹 사이트에 접근해야 할 때, 먼저 해당 A 레코드를 찾아 웹 사이트의 IP 주소를 얻음
AAAA 레코드
- IPv6 주소 레코드라고도 불림
- 도메인 이름을 IPv6 주소에 매핑하는 데 사용됨
- 컴퓨터가 IPv6을 사용하여 웹 사이트에 접근해야 할 때, 해당 AAAA 레코드를 찾아 웹 사이트의 IPv6 주소를 얻음
- AAAA 레코드는 A 레코드와 유사하지만 IPv4 주소 대신 IPv6 주소를 사용함
MX 레코드
- 메일 교환 레코드라고도 불림
- 도메인의 이메일 처리를 담당하는 메일 서버를 지정하는 데 사용됨
- 누군가가 도메인 주소로 이메일을 보낼 때, 보내는 메일 서버는 도메인의 MX 레코드를 찾아 이메일을 보낼 위치를 결정함
- 여러 메일 서버를 지정하여 장애 조치 및 부하 분산 제공
CNAME 레코드
- 정식 이름 레코드라고도 불림
- 도메인 이름에 대한 별칭을 만드는 데 사용됨
- 각 도메인 이름에 대해 별도의 A 레코드를 생성하는 대신 CNAME 레코드를 사용하여 하나의 도메인 이름을 다른 도메인 이름에 매핑할 수 있음
- 여러 도메인 이름이 동일한 IP 주소를 가리키도록 보장하는 데 유용함
TXT 레코드
- 텍스트 레코드라고도 불림
- DNS에 임의의 텍스트 데이터를 저장하는 데 사용
- 도메인에 대한 추가 정보를 제공하거나 도메인의 소유권을 확인하는 데 사용될 수 있음
- 도메인의 소유권을 확인하기 위해 DNS 구성에 추가해야 하는 확인 코드가 포함될 수 있음
SRV 레코드
- 서비스 레코드라고도 불림
- 도메인에서 특정 서비스 또는 애플리케이션의 위치를 정의하는 데 사용
- 서비스에 액세스할 수 있는 프로토콜, 포트 번호 및 호스트 이름과 같은 정보를 포함
- VoIP 서비스와 같은 특정 서비스의 위치를 정의해야 하는 도메인 관리자에게 유용
NS 레코드
- 이름 서버 레코드라고도 불림
- 도메인의 권위 있는 이름 서버를 지정하는 데 사용
- 도메인의 쿼리를 해결하는 데 책임이 있음
- DNS 쿼리가 올바르고 효율적으로 해결되도록 보장
DNS 레코드의 작동 방식
컴퓨터가 웹 사이트에 액세스해야 할 때, 먼저 DNS 서버에 해당 웹 사이트의 IP 주소를 얻기 위한 요청을 보냄 → DNS 서버는 도메인 이름에 해당하는 DNS 레코드를 찾아 컴퓨터에 IP 주소를 반환 → 컴퓨터는 이 IP 주소를 사용하여 웹 사이트와 연결을 설정
메일 송수신
Electornic mail (E-mail)
세 가지 중요 요소
- user agent
- mail servers
- SMTP
SMTP
메일을 보내는 데 사용되는 프로토콜. 포트 번호 25
- 메일 서버 간의 메일 전송에도 이용됨
- (메일을 보낼 때) 메일 서비스를 제공하는 포털사이트나 회사의 메일 서버에 메일을 보냄
SMTP는 다음과 같은 동작 흐름을 가짐
- 세션 시작 통지
- 송신자의 메일 주소 통지
- 목적지 메일 주소 통지
- 메일 본문 전송 통지
- 메일 본문 송신
- 세션 종료 통지
POP3
메일을 받는 데 사용되는 프로토콜. 포트 번호 110
- 메일 서버는 메일을 보관해 주는
메일 박스
를 가지고 있음 - 메일 서버는 POP3를 사용해 메일 서버의
메일 박스
에서 메일을 가져옴 → 수신자 컴퓨터에 전송 - 메일을 받을 때는 사용자 이름과 비밀번호를 이용한
사용자 인증
이 필요함
POP3는 다음과 같은 동작 흐름을 가짐
- 세션 시작 통지
- 수신자의 사용자 이름 통지
- 수신자의 비밀번호 통지
- 메일 확인
- 메일 전송 요청
- 세션 종료 통지
IMAP
전자 메일 클라이언트가 원격 서버에 있는 이메일을 읽고 관리하는 데 사용되는 프로토콜. 포트 번호 143
- 이메일을 서버에 남겨둠
- 이메일의 일부 또는 전체를 다운로드 할 수 있음
- 여러 기기 간에 이메일을 동기화하는데 사용함
ping 명령
ICMP라는 프로토콜을 사용해 목적지 컴퓨터에 ICMP 패킷을 전송하고 패킷에 대한 응답이 제대로 오는지 확인하는 명령
ping 명령
이 정상적으로 실행 → 네트워크 연결이 정상이라고 판단 → 문제 없음 확인
응용 계층 아키텍처
client-server
클라이언트와 서버가 네트워크를 통해 서로 통신하는 방식
- 클라이언트는 서버에 요청을 보내고, 서버는 해당 요청에 대한 응답을 보냄
- 주로 개인용 애플리케이션에 사용
peer-to-peer(p2p)
중앙 서버 없이 여러 클라이언트가 서로 통신하는 방식
- 각 클라이언트끼리 클라이언트/서버 역할을 할 수 있음
- 피어가 다른 피어에 서비스를 요청하고, 다른 피어에 서비스를 제공함
- 자체 확장성(self scalability) – 새로운 피어가 새로운 서비스 용량과 새로운 서비스 수요를 제공
- 주로 기업용 애플리케이션에 사용
- 임의의 엔드 시스템이 직접 통신
프로세스
호스트 내에서 실행 중인 프로그램
- 동일한 호스트 내에서 두 프로세스가 프로세스 간 통신(OS에 의해 정의됨)을 사용하여 통신
- 서로 다른 호스트의 프로세스가 메시지를 교환하여 통신
소켓
프로세스 간 통신 링크를 설정하는 소프트웨어 끝점
Socket API: 소켓을 사용하기 위해 만들어져 있는 인터페이스. 소켓 생성, 연결, 데이터 송수신 등의 함수 집합 제공
728x90
반응형
'CSE > 네트워크 (network)' 카테고리의 다른 글
TCP/IP 프로토콜 4판 - 연습문제 3장 (2) | 2023.12.31 |
---|---|
TCP/IP 프로토콜 4판 - 연습문제 2장 (2) | 2023.12.30 |
TCP/IP 프로토콜 4판 - 연습문제 1장 (2) | 2023.12.29 |
[네트워크프로그래밍] TCP와 UDP (0) | 2023.04.13 |
[네트워크프로그래밍] 네트워크란? (1) | 2023.03.17 |
@junyeokk :: 나무보다 숲을
컴퓨터 전공 관련, 프론트엔드 개발 지식들을 공유합니다. React, Javascript를 다룰 줄 알며 요즘에는 Typescript에도 관심이 생겨 공부하고 있습니다. 서로 소통하면서 프로젝트 하는 것을 즐기며 많은 대외활동으로 개발 능력과 소프트 스킬을 다듬어나가고 있습니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!