모두의 네트워크 🕶

On a regular basis·2021년 9월 18일
0

모두의 네트워크

목록 보기
7/9
post-thumbnail

🕶 <모두의 네트워크>를 읽고 학습한 내용을 정리한 포스트입니다! 화이팅! 🕶

7. 응용 계층: 애플리케이션에 데이터 전송하기

28) 응용계층의 역할
✍️ 응용계층의 역할

  • 애플리케이션은 서비스와 요청하는 측과 서비스를 제공하는 측으로 나뉘는데 서비스를 요청하는 측은 클라이언트(Client), 제공하는 측을 서버(Server)라고 함!

  • 이러한 애플리케이션은 응용계층에서 동작함!(5계층의 세션계층과 6계층의 표현계층을 포함!)

  • 웹 브라우저나 메일 프로그램은 클라이언트, 웹 서버 프로그램과 메일 서버 프로그램은 서버가 된다.

  • 응용 계층에서는 클라이언트의 요청을 전달하기 위해 서버가 이해할 수 있는 메세지(데이터)로 변환하고 전송 계층으로 전달하는 역할을 한다.

  • 클라이언트 측 애플리케이션(웹 브라우저, 메일 프로그램 등)이 서버 측 애플리케이션(웹 서버 프로그램, 메일 서버 프로그램 등)과 통신하려면 응용 계층의 프로토콜을 사용해야함!

  • 프로토콜에는 웹 사이트를 볼 때는 HTTP, 파일을 전송할 때는 FTP, 메일을 보낼 때는 SMTP, 메일을 받을 때는 POP3 등이 있음. 또한, 네트워크에서 컴퓨터나 네트워크에 붙여진 이름을 기반으로 IP 주소를 알아내는 것을 이름 해석(Name resolution)이라고 하는데, 이를 위해 DNS를 사용함!

  • 결국, 응용 계층은 각각의 애플리케이션에 대응되는 데이터를 전송하는 역할을 함.

29) 웹 서버의 구조(웹사이트 접속)
✍️ WWW란? 인터넷에서 핵심적인 역할을 하고 있는 WWW(World Wide Web)은 줄여서 웹(Web)!

  • WWW는 HTML, URL, HTTP라는 세 가지 기술이 사용됨!
  • 요기서 HTML은 웹페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어..👏 하이퍼텍스트(Hypertext)는 하이퍼링크(Hyperlink)를 사용해 아이콘이나 버튼 등에 있는 링크를 클릭하면 다른 사이트로 이동할 수 있음. 이동한 사이트에서는 html 파일이나 이미지 파일이 웹 서버에서 전송!

    ✍️ URL이란?
  • 클라이언트(웹 브라우저)는 웹 사이트를 보기 위해 서버(웹 서버 프로그램)의 80번 포트를 사용하여 HTTP 통신을 함. 다음 그림과 같이 클라이언트에서 HTTP 요청(Request)을 보내고 서버에서 HTTP 응답(Response)을 반환하는 것!
  • 클라이언트가 데이터를 요청할 때는 요청 정보(GET 등), 파일 이름, 버전 등을 서버에 전송. 그러면 서버는 응답으로 요청을 정상적으로 처리했다는 메세지(OK 등) 정보를 반환하고 payment.html을 클라이언트에게 보냄!
  • 지금은 HTTP/2나 HTTP/1.1 버전을 사용하지만, 예전 HTTP/1.0버전에서는 요청을 보낼 때마다 연결했다 끊는 작업 반복 😇 그러다 HTTP/1.1버전에서는 keepalive라는 기능이 추가.
    • keepalive란? 연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지하고 데이터 교환을 모두 끝내면 연결을 끊는 구조. 얘는 요청도 순서대로 처리하는 특징이 있어서 1요청-> 1응답반환-> 2요청-> 2요청반환 순서로 이루어짐.
  • 최근에는 HTTP/1.1 버전의 단점을 보완해서 빠르게 콘텐츠를 표시할 수 있는 프로토콜인 HTTP/2 버전도 사용할 수 있게 되었음!!
  • HTTP/2 버전은! HTTP/1.1 버전이 요청 보낸 순서대로 응답을 반환하면 처리가 늦어질 수도 있고 그럼 콘텐츠 표시도 늦어짐. HTTP/2 버전은 요청을 보낸 순서대로 응답을 반환하지 않아도 돼서 콘텐츠를 빠르게 표시할 수 있음!

30) DNS 서버의 구조(이름해석)
✍️ 도메인 이름이란?

  • 기본적으로 컴터에는 IP주소가 있어서 인터넷을 통해 웹 서버에 접속해 웹 사이트를 볼 수 있음! 근데 우리는 웹 브라우저 주소 창에 URL(Uniform Resource Locator)를 통해 웹 사이트에 접속한다...!
    • 🌷DNS는 URL을 IP주소로 변환하는 서비스!🌷
      -> DNS 서버의 이름해석(Name Resolution) 기능!
    • 예를 들어, http://www.google.com 에 접속하면 DNS서버가 이 웹 사이트 서버의 IP주소를 알려주는 것.
  • http://www.google.com 와 같이 컴터나 네트워크를 식별하기 위해 붙여진 이름을 도메인 이름이라고 하고, 도메인 이름 앞에 있는 www는 호스트 이름(서버 이름)이라고 함.
  • DNS 서버는 전 세계에 흩어져 있고 모두 계층적으로 연결되어 있음! 그래서 첫 번째 DNS 서버가 도멘인의 IP 주소를 모르는 경우, 연결되어 있는 다른 DNS 서버에 요청을 해서 IP 주소를 알아낼 수 있음! 👏

31) 메일 서버의 구조(SMTP와 POP3)
✍️ 메일의 송수신 구조

  • 메일을 송수신하려면 클라이언트 측 메일 프로그램서버 측 메일 서버 프로그램 간에 통신이 필요함! 그때 사용되는 프로토콜에는 두가지가 있음!
  • SMTP: 메일을 보내는 데 사용되는 프로토콜(포트번호 25번)
  • POP3: 메일을 받는 데 사용되는 프로토콜(포트번호 110번)

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

  • 컴터 1의 메일 프로그램은 SMTP를 사용하여 메일 서버1로 메일을 보냄. 메일 서버 간에도 SMTP를 사용해 메일을 전송

✍️ POP3에 의한 메일 수신

  • SMTP로 메일 서버 1이 메일 서버 2로 메일을 전송할 수 있음! 메일 서버에는 메일 박스라고 하는 메일을 보관해주는 기능이 있음. 메일서버 2는 POP3을 사용해 메일 서버 2의 메일 박스에서 메일을 가져와 컴터2로 전송.

🌱 ping 명령
목적지 컴터와의 통신을 확인하려면 ping 명령을 이용함. ping명령은 ICMP라는 프로토콜을 사용해 목적지 컴터에 ICMP 패킷을 전송하고 패킷에 대한 응답이 제대로 오는지 확인하는 명령.

출처: https://almotjalal.tistory.com/105?category=961085

profile
개발 기록

0개의 댓글