Application Layer의 개요

갱두·2021년 12월 12일
0

📚 네트워크

목록 보기
11/15

현재 사용하는 모델은 TCP/IP Updated 입니다!
결국 위에 Application, Presentation, Session 부분만 합쳐져서 사용을 하고 있는 셈
✔️ Application layer는 어플리케이션 개발자에 의해 컨트롤 되지만, 나머지 계층들은 OS에 의해 컨트롤된다.

🚀 Network application

  • ex) Web = HTTP, e-mail = SMTP, IP address search = DNS .. etc
  • end system에만 구현되어 있다 = core에는 application layer protocol이 없다.
  • 네트워크를 통해서 communication을 한다.

✅ TCP/IP 소켓 프로그래밍

운영체제의 Transport Layer에서 제공하는 API를 활용해서 통신 가능한 프로그램을 만드는 것을 말함.
= 소켓프로그래밍 만으로도 서버와 클라이언트를 나눠서 프로그램 실행 가능
= 누구나 자신만의 Application Layer 인코더와 디코더를 만들 수 있다.
= 누구나 자신만의 Application Layer 프로토콜을 만들어서 사용할 수 있다는 것

ex) HTTP를 통해서 알아보자 !

당연히 데이터 전송이 클라이언트 측일 수도 있음.
그리고 당연히, 우리는 전송하기도, 수신하기도 하니까 인코더와 디코더를 모두 가지고 있음

위에서는 생략했지만 어플리케이션 레이어 프로토콜이 데이터를 보낼 때 정의하는 게 몇가지가 있음

  • types of message : request, response
  • rules : 언제 어떻게 프로세스가 보내고 응답해야 하는지
  • open protocols : HTTP SMTP가 예시
  • proprietary protocols : 개인이 소유한 프로토콜(zoom, webex, etc.)

등등

✅ 소켓?

application layer 와 transport layer protocol 사이에 있는 소프트웨어 인터페이스임

✔️ 어플리케이션과 네트워크 사이의 API
✔️ 프로세스는 소켓으로 메세지를 보내고 받는다

그렇담 서버와 클라이언트 패러다임은 무엇??

✅ 클라이언트-서버 패러다임

1. 서버

  • 항상 켜져 있음
  • IP 주소가 영구적임

2. 클라이언트

  • 일반적으로 서버와 연결하고, 소통함
  • 간헐적으로 연결이 됨
  • dynamic IP 주소를 가지고 있음
  • 서로와 바로 communicate ❌

+) P2P architecture

  • no always-on server
  • 임의의 end system(=peer)끼리 바로 통신함
  • peer들은 다른 peer들한테 서비스를 요청하기도 하고, 서비스를 해주기도 함
    = 즉 한 peer가 클라이언트도, 서버도 하는 것

✅ IP 주소

Host를 구분짓는 Identifier

메세지를 받으려면 프로세스는 반드시 IP주소가 있어야 함 !

  • IPv4 : 32bit
  • IPv6 : 128bit

정의에서도 알 수 있듯이 IP주소는 host만 구분할 수 있다. 프로세스까지 구분하려면 Port번호까지 있어야 함.

참조 : https://www.youtube.com/watch?v=1pfTxp25MA8

profile
👩🏻‍💻🔥

0개의 댓글