CS/네트워크

응용 계층

민철킹 2021. 7. 27. 22:45

인터넷 5계층에서는 Application Layer, Presentation Layer, Session Layer를 묶어 응용계층이라고 지칭한다.

응용 계층에는 어떤 것이 있을까?

==> 카카오톡, 게임, 인터넷 브라우저 상의 응용(구글 검색, 네이버 웹툰 등), 메일 등

 

 

네트워크 응용의 구조

 

Client - Server 구조

응용을 서비스하는 Server를 따로두는 구조. 웹 검색 또한 클라이언트 - 서버의 대표적인 예이다.(HTTP 통신)

항상 서비스를 제공하는 Server를 두고 Client의 요청에 의해서 서비스를 제공

서버가 모든 서비스를 관여해야하므로서비스가 많아질수록 서버에 부하가 급격히 증가한다. (대신 안정적임)

 

 

P2P(Peer-To-Peer) 구조

토렌트, 각 클라이언트들이 서버가 되는 구조로써 상호 연결된 노드(피어)들이 서로 간에 자원을 공유한다.

 

 

하이브리드 구조

Client - Server와 P2P를 합친 방식.

Skype ==> 사용자 접속에는 서버가 관여하지만 개인끼리의 통화에는 관여하지 않음

 

 

 

프로세스간 통신

응용 : 네트워크로 연결된 컴퓨터들이 협력하여 제공하는 서비스

 

프로세스 : 하나의 컴퓨터에서 독립된 메모리 공간을 가지고 수행되고 있는 프로그램의 단위

 

웹 브라우저(클라이언트)와 웹서버(서버)도 각각의 프로세스라고 볼 수 있다.(클라이언트 프로세스, 서버 프로세스)

P2P에서는 피어 프로세스

 

 

 

프로세스 주소

- 물리적 주소 : IP(2의 32승개 표현가능, 대략 40억개)

 

- 포트 번호 : TCP는 2의 16승개, UDP는 2의 16승개

 

포트번호와 물리적 주소를 알면 프로세스 간의 통신이 가능하다.웹 브라우저의 포트번호는 정해져 있지 않지만 웹 서버의 포트번호는 대부분 정해져있다.

 

 

 

소켓 통신

Server와 Client가 계속 연결을 유지하는 양방향 통신이다. private한 channel(포트 번호)를 통해 Server와 Client가 통신을 한다. 소켓이라는 클라이언트와 서버를 연결해주는 API를 사용하여 네트워크, 전송 계층의 캡슐화가 가능해진다.

TCP의 경우 클라이언트 소켓과 서버 소켓이 존재하는데 서로 양방향으로 데이터를 주고 받을 수 있다.

 

응용 계층을 잘 이해하기위해 전송 계층에 대해 간략하게만 알고넘어가자.

 

전송계층의 서비스

TCP

연결 기반 전송 계층

연결에 대한 관리를 해줌

    - 데이터 유실을 복구하는 서비스 제공 -> 한번 보낸 패킷은 목적지에 반드시 도달함.

    - 데이터 순서를 보장

혼잡에 민감해 패킷 전송률을 조정

    - 데이터가 자주 유실되면 네트워크가 혼잡하다고 판단하여 패킷을 느리게 전송

 

UDP

무연결 전송 계층, 두 프로세스 간의 연결을 명시적으로 만들지 않음.

각 프로세스의 소켓은 열려있는 상태에서 어느 곳이든 자유롭게 통신을 할 수 있음

데이터 유실 가능

데이터 순서가 보장되지 않아 순서 역전 가능

최대한의 성능으로 패킷 전송(빠름) - 실시간성이 중요한 서비스


응용 계층

 

FTP (File Transfer Protocol)

원격 host에 있는 파일을 가져오거나 원격 host에게 파일을 보내기 위한 protocol

    - ex : email (메일을 서버에 전송, 서버가 목적지로 전송)

기본적으로 원격 host에 이용하기 위한 사용자 ID와 Password가 있어야 원격 host에 접속 가능

경우에 따라 권한(계정)이 없는 사용자도 접근가능하도록 설정 가능

 

세션 로그인과 종료가 존재(HTTP 반대)

로그인을 통해 권한을 획득

로그인 정보를 서버가 관리

Stateful Protocol !!

서버가 많은 것을 관리하게 되는 것은 사실 좋지 않다. 새로운 기능이 추가될 때마다 프로토콜을 수정해야함

 

HTTP

FTP는 세션관리를 세션 계층에서 담당하지만, HTTP는 세션관리를 응용계층에서 담당한다.

Stateless Protocol !! ==> 확장성이 매우 높다.

 

반응형

'CS > 네트워크' 카테고리의 다른 글

컴퓨터 네트워크 계층  (0) 2021.07.23
컴퓨터 네트워크 소개  (0) 2021.07.20