CS

[네트워크] 모두의 네트워크 : 응용 계층 - 애플리케이션에 데이터 전송하기

개발자 조이 2024. 8. 11. 20:05
728x90
반응형

 

 

28 응용 계층의 역할


응용 계층의 역할

  • 응용 계층은 세션 계층과 표현 계층을 표현하는 것으로 간주
  • 클라이언트의 요청을 서버가 이해할 수 있는 데이터로 변환하고 전송 계층으로 전달하는 역할 → 애플리케이션과 데이터를 주고받기 위해 필요
  • 클라이언트 측의 애플리케이션이 서버 측 애플리케이션과 통신하려면 응용 계층의 프로토콜이 필요
    • HTTP - 웹 사이트 접속
    • DNS - 이름 해석
    • FTP - 파일 전송
    • SMTP - 메일 송신
    • POP3 - 메일 수신대표적인 프로토콜

 

29 웹 서버의 구조 (웹 사이트 접속)


WWW

  • HTML, URL, HTTP라는 3가지 기술이 사용
  • HTML : 하이퍼텍스트를 작성하는 마크업 언어, 태그 사용
    • 하이퍼텍스트로는 문자와 이미지를 표시, 하이퍼링크를 사용할 수 있음

HTTP

  • 클라이언트는 웹 사이트를 보기 위해 서버의 80번 포트를 사용하여 HTTP 통신을 함
    1. 클라이언트 → HTTP 요청 → 서버
    2. 클라이언트 ← HTTP 응답 ← 서버
  • 예전 HTTP/1.0 버전에서는 요청을 보낼 때마다 연결, 연결 끊기를 반복 → 웹 페이지가 느린 문제
  • 지금은 HTTP/2, HTTP/1.1 버전 사용
    • HTTP/1.1 버전에 keepalive 기능 추가
      • keepalive
        • 연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지, 데이터 교환이 끈나면 연결을 끊음 → 매번 연결 수립과 끊기를 하지 않아도 됨
        • 요청을 순서대로 처리하는 특징
          • 1 요청 시 1 응답, 2 요청 시 2 응답 반환 → 이전 요청을 처리하는 데 시간이 길어지면 다음 요청에 대한 처리가 늦어지는 단점
    • HTTP/2 버전
      • 요청을 보낸 순서대로 응답을 반환하지 않음 → 콘텐츠를 빠르게 표시 가능

 

30 DNS 서버의 구조 (이름 해석)


도메인 이름

  • 컴퓨터(서버)에는 IP 주소가 있어 인터넷을 통해 웹 서버에 접속하여 웹 사이트를 볼 수 있었음
  • 하지만 우리는 IP 주소 대신 URL을 입력하여 웹 페이지 접속

DNS

  • URL을 IP 주소로 변환하는 서비스(시스템)
  • URL을 이용해 사이트에 접속하도록 하는 것 → 이름 해석 (name resolution)

도메인 이름

  • 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름 (ex. www.google.com)

호스트 이름 (서버 이름)

  • 도메인 이름 앞에 있는 www

DNS를 이용한 접속 과정

  • 웹 브라우저가 www.google.com에 접속하는 경우
    1. C → www.google.com의 IP 주소를 알려주세요 → DNS 서버
    2. C ← 해당 URL의 주소는 222.235.64.222 입니다 ← DNS 서버
    3. C → IP 주소로 웹 서버 접속
  • DNS 서버가 도메인의 IP 주소를 모르는 경우
    1. C → www.google.com의 IP 주소를 알려주세요 → DNS 서버1 → IP 주소 알려주세요 → DNS 서버2
    2. C ← 222.235.64.222 입니다 ← DNS 서버1 ← 222.235.64.222 입니다 ← DNS 서버2
    3. C → IP 주소로 웹 서버 접속
  • DNS 서버는 전 세계에 흩어져 있고, 계층적으로 연결되어 있다 (서로 연계하며 동작)

 

31 메일 서버의 구조 (SMTP와 POP3)


메일 송수신 구조

  • 클라이언트 측의 메일 프로그램과 서버 측의 메일 서버 프로그램 간 통신 필요
  • 사용 프로토콜
    • SMTP : 메일 전송 시 사용 (포트번호 25), 메일 서버 간의 메일 전송에도 사용
    • POP3 : 메일 수신 시 사용 (포트번호 110)
  • 과정
    1. C1 → SMTP로 메일 전송 → 메일서버1 → SMTP로 메일 전송 → 메일서버2 ↔ POP3로 메일을 가져옴 C2

SMTP에 의한 메일 송신과 메일 전송

  • C1과 메일서버1 간의 통신 (각 통지 후 응답 과정 표기 생략)
    1. C1 → 세션 시작을 통지 → 메일서버1
    2. C1 → 송신자의 메일 주소 통지 → 메일서버1
    3. C1 → 목적지의 메일 주소 통지 → 메일서버1
    4. C1 → 메일 본문 전송을 통지 → 메일서버1
    5. C1 → 메일 본문 송신 → 메일서버1
    6. C1 → 세션 종료 통지 → 메일서버1

POP3에 의한 메일 수신

  • 메일 박스 : 메일 서버의 메일을 보관해주는 기능
  • 메일 서버2는 POP3를 사용하여 메일 서버2의 메일 박스에서 메일을 가져와 C2로 전송
  • 메일 수신 시에는 사용자 이름과 비밀번호를 이용한 사용자 인증 필요
    • 사용자 인증 흐름
      1. 메일서버2 ← 세션 시작 통지 ← C2
      2. 메일서버2 ← 수신자의 사용자 이름 통지 ← C2
      3. 메일서버2 → ‘OK’ → C2
      4. 메일서버2 ← 수신자의 비밀번호 통지 ← C2
      5. 메일서버2 → 비밀번호 확인 → C2
      6. 메일서버2 ← 메일 확인 ← C2
      7. 메일서버2 → ‘있음’ → C2
      8. 메일서버2 ← 메일의 전송 요청 ← C2
      9. 메일서버2 → 메일 박스에 보관된 이메일 → C2
      10. 메일서버2 ← 세션 종료 통지 ← C2

*ping명령

  • 목적지 컴퓨터와의 통신을 확인하려면 ping 명령 이용
  • ICMP(Internet Control Message Protocol)라는 프로토콜 사용
  • 목적지 컴퓨터에 ICMP 패킷 전송 후 패킷에 대한 응답이 제대로 오는지 확인
  • ping 명령이 정상으로 실행되면 네트워크 연결이 정상이라고 판단할 수 있으므로 문제 확인 시 자주 사용
ping 목적지 IP 주소
ping 목적지 호스트 이름

 

 

 

728x90
반응형