본문 바로가기

Network/설명글

서버와 통신에대한 대략적인 설명

이번 글을 작성하며 혹시나 나와 같이 따라할 수 있는 누군가를 위하여 몇몇 설명을 추가하여 작성하고자 한다.

서버란 무엇인가?

서버란 어떠한 서비스를 사용자에게 제공하는 주체를 의미한다. 그렇기에 서비스를 제공하는 웹상의 무엇이든

서버가 될 수 있다.

현재 이 글은 SSH 서버 관련 게시글을 작성하기 이전에 가볍게 작성하는 글이다

 

그렇다면 어떻게 서비스를 제공할까?

 

서비스를 제공하는 방식은 쉽게 생각하면 간단하다고 볼 수 있다.

 

1. 사용자가 서버에 요청한다.

2. 서버는 그 요청에 응답한다.

3. 사용자는 서버가 제공하는 서비스를 사용한다

 

 

1. 사용자가 서버에 요청한다.

사용자가 서버에 요청하는 방식은 다양한 방식이 될 수 있다.

현재 설명하는 것이기에 SSH 뿐만아닌 다양한 방식의 서버를 의미하니 SSH 에 국한되어 생각하지 않았으면 한다.

 

사용자가 서버에 요청하기 위해서는 서버로 길이 필요하다. 내가 친구에게 부탁을 하러갈때도 길이 필요하지 않은가?

컴퓨터는 간단하게도 현실과 직결되어있다. 서버는 집이되고 그 집은 주소를 지닌다.

 

컴퓨터에게 있어서 그 집주소랜선 IP 주소가 된다.

이는 집 주소를 목적지로 삼아 길을 따라가는것과 같다

그렇기에 IP 주소를 목적지로 삼아서 랜선을 따라서 서버에 찾아가게 된다

 

목적지에 도착하면 사람은 서비스를 요청(부탁)해야한다 이는 대화를 통해 이루어지게 된다.

사람은 대화를 하기위해 언어문법이 필요하다

그렇기에 컴퓨터 또한 언어와 문법이 필요하다 

컴퓨터는 소켓통신이라는 문법을 사용하여 통신하게 된다. 이는

헤더와 몸통 등 세분화되어 나뉘며 사람이 사용하는 문법과 같이 규칙이 정해져있다.

 

2. 서버는 그 요청에 응답한다.

사람이 부탁하기전에 먼저 인사를 해야된다 인사를 하고나서 본론을 꺼내게 되는것이다.

인사가 있다면 거기에대한 수락 혹은 거절에 대한 응답이 있다.

컴퓨터도 그와 마찬가지로 사용자가 서버에게 요청하면 거기에 마땅한 응답을 하게된다.

기본적인 TCP 에서는 3WAY HAND SHAKE 를 이용하여 응답을한다

이는

ACK

SYN, ACK 

ACK

로 이루어져 있는데 쉽게 말하면

너 잘지내니?(ACK)

응(SYN), 너 잘지내니?(ACK)

응(SYN)

으로 이해하면 쉽다

 

그렇게 서버는 요청에 응답하고 대화의 물꼬를 트게 된다.

그렇게 대화의 물꼬를 틀고 통신을 주고받게 된다.

이 인사와 이 후에 이어질 통신 또한 소켓통신으로 이루어 진다.

 

 

3. 사용자는 서버가 제공하는 서비스를 사용한다.

이것 또한 현실과 비교를 해보자면

서버를 음식점에 비교해보겠다

음식점이라는 서버는 음식을 사용자에게 제공하며 사용자에게는 식당과 화장실이라는 영역이 허용된다.

음식점이라는 서버에 있어 주방과 금고는 사용자에게 허가되지 않은 영역이다

 

또한 음식점에서 사용자가 억지로 금고와 주방을 침범하려 하면 막게 된다.

 

컴퓨터 또한 마찬가지이다 

서버에서 제공하는 서비스를 제외하고는 사용자에게 허용되어있지 않다.

그렇게 허용된 서비스를 사용자는 사용하게 된다.