본문 바로가기

Research/Smart Home

네트워크 기초 - 통신 / 프로토콜

1.  프로토콜

프로토콜은 메시지나 패킷 등을 전송할 때 지켜야 하는 약속 또는 규율을 의미한다.

이런 프로토콜은 OSI 7 계층 참조모델의 몇 번째 계층에서 작동하는가에 따라서 어떤 요인을 컨트롤하는지, Receive/Request의 주체는 어디인지 등 모든 것이 다르다.

 

[OSI 7 계층 참조모델]
(하단) 물리 / 데이터링크 / 네트워크 / 전송 / 세션 / 표현 / 응용 (상단)


1) HTTP,  SMTP,  FTP

이 대표적인 세가지 통신 프로토콜은 모두 OSI 7 계층의 7번째 레이어인 응용 계층 (Application layer)에서 동작한다.

어떤 것은 전송하느냐에 따라서 사용하는 프로토콜이 달라진다.

HTTP (Hypertext Transport Protocol)는 하이퍼텍스트를 전송할 때, SMTP (Simple Mail Transfer Protocol)는 이메일과 같은 메시지를 보낼 때, FTP (File Transfer Protocol)는 파일을 보낼 때 사용하는 프로토콜이다.

 

그중 가장 대표적인 HTTP의 작동 원리를 단순화한 것이 아래의 그림이다.

 

Ex) Http

 

그렇다면 프로토콜을 말할 때 항상 함께 나오는 IP, TCP는 무엇일까?

 

2) TCP,  UDP

두 프로토콜은 OSI 7계층의 4번째 레이어인 전송 계층 (Transport layer)에서 동작한다.

이 프로토콜들은 데이터 전달을 위해 응용 계층에서 작성한 메시지를 패킷 등으로 분해하는 역할을 한다.

두 프로토콜은 손실 고려 여부에서 가장 큰 차이를 보인다.

TCP (Transmission Control Protocol)는 정확한 데이터를 전달하는 것을 목적으로 하는 반면, UDP (User Datagram Protocol)는 어느 정도의 손실을 고려하고 스트리밍 데이터를 전달하는 데 사용된다.

 

3) IP

IP (Internet Protocol)는 인터넷 상의 주소에 대한 프로토콜이다. 이 프로토콜은 OSI 7 계층의 3번째 레이어인 네트워크 계층 (Network layer)에서 동작한다. 전송할 위치의 정보를 일정한 형태로 규정하며, IP 주소를 통해서 정확한 위치에 데이터는 전송할 수 있다.

 

작동하는 계층에 따라 분류될 수는 있으나, 모든 프로토콜이 아예 다른 것이라고 할 수는 없다.

예를 들어, HTTP는 결국 TCP를 기반으로 생성된 프로토콜이므로 HTTP는 TCP의 특성을 모두 가지고 있다. 결국, 이 프로토콜들이 각 계층에서 수행하는 역할이 다를 뿐, 기저 성격이 다르지는 않다는 의미이다.

 

 

2. 인터넷 통신 원리

 

 

우리가 컴퓨터를 사용해서 어떤 페이지에 접속하는 모든 과정이 위의 원리를 따른다고 볼 수 있다. 

예를 들어, 우리가 네이버에 접속하고싶다고 하자. 그러면 우리는 www.naver.com이라는 도메인 이름을 입력할 것이다. 전송된 도메인 이름을 DNS 서버가 해당 사이트의 IP 주소로 전환해주고, 전환된 IP 주소가 서버에 요청된다. 그 후, 서버가 보낸 응답 결과가 우리 컴퓨터의 브라우저에 나타나게 된다.

 

 

3. IP 주소

이렇듯, 어떤 서버나 다른 컴퓨터 등에 접속할 때 IP 주소는 정확한 목적지를 정해주는 중요한 역할을 한다. 

고정 IP를 할당할 수 있지만, 어떤 네트워크(i.e. Wi-Fi)에 연결되어 있냐에 따라서 해당 기기의 IP 주소는 변할 수 있다. 

 

또한, 실제 컴퓨터 IP와 외부에서 해당 컴퓨터에 접속 시 접속 IP가 다를 수 있다. 요즘은 보통 하나의 기기만 연결하는 것이 아니라 여러 기기를 인터넷에 한 번에 연결하기 때문에 라우터(i.e. 공유기)를 설치하여 연결하고는 한다. 인터넷 회선을 설치할 때 통신사에서 IP를 할당해주는데, 이 IP는 라우터의 IP가 된다. 하지만, 각 디바이스도 통신을 위해 IP가 있어야 한다. 이때 각 디바이스에 할당되는 IP를 "Private IP"라고 하고 라우터에 할단된 IP를 "Public IP"라고 한다. 보통 private IP는 public IP와 끝 한 자리만 다르게 해서 각 디바이스에 할당하는 방식을 취한다.

 

같은 라우터에 연결(내부)된 디바이스 간의 통신은 매우 자유로우며 통신 시 private IP를 직접 사용하여 접속한다. 하지만 외부에서 내부에 접속할 때는 private IP를 통해 접속할 수 없다. 라우터 즉, public IP에만 접속이 가능하다. 따라서, 외부에서 라우터로 묶여 있는 기기에 접속할 때  포트포워딩이 필요하다.

 

 

[Port Forwarding (포트 포워딩)]

- 개념

   : 라우터에서 설정 가능

   : 각 기기에 포트 번호를 할당함 (i.e. 8001)

   : 라우터 내부 디바이스를 접속할 때는 외부 IP + 포트번호의 조합으로 접속 가능 (i.e. 223.32.21.115:8001)

 

- 필요성

   : Public IP만으로는 어떤 디바이스에 접속하려는지 명확히 하기가 어려움

   : Private IP는 라우터 내부에서만 의미가 있음

 

 

4. MAC 주소(Media Access Control Address) - (참고)

MAC 주소란 컴퓨터 간 데이터를 전송하기 위한 컴퓨터의 물리적/하드웨어/이더넷 주소를 의미하며 이웃 노드 간 통신 시 사용된다. 네트워크 주소인 IP 주소와 달리, 불변의 고유 번호(하드웨어 식별 번호와 같음)이며 데이터 링크 계층에서 전송된다.

 

MAC-to-MAC 통신은 이웃 노드와의 통신에 사용되며, 이러한 통신이 연결되어 IP-to-IP의 통신을 이룬다. 즉, MAC-to-MAC 통신은 IP-to-IP 통신에 속한다고 볼 수 있다.

 

따라서, 데이터를 전송할 때에는 목적지의 네트워크 주소뿐만 아니라 하드웨어 주소가 명확히 지정되어야 정확한 전송을 할 수 있으므로 목적지의 IP 주소 + MAC 주소가 모두 지정되어야 데이터를 전송할 수 있다.

 

* APR : 네트워크 단에서 IP 주소로 MAC 주소를 알아오는 프로토콜

 

'Research > Smart Home' 카테고리의 다른 글

네트워크 기초 - 네트워크 장비  (0) 2021.08.07