[네트워크] 네트워크의 구조 및 정의 (총 정리)

Q0. 개요

웹 개발을 하면서 자주 사용되는 주요 용어들이 있다. 그 중 네트워크/ 서버/ 클라이언트도 있다.

오늘은 작업하는데 이해도를 높이기 위하여 관련된 내용을 정리하였다.

 

Q1. 클라이언트, 서버, 네트워크

클라이언트(Client)란, Front-End영역이라고도 부른다.
실제 화면을 바라보면서 데이터 조작 (조회/삭제/생성/변경)을 요청하는 PC.
ex) 스마트폰, 노트북, 데스크탑, 태블릿과 같은 사용자가 실제 사용하는 기기

서버(Server)란, Back-End영역이라고도 부른다.
화면에서 요청한 내용을 처리하고 다시 화면으로 응답을 반환하는 PC.
ex) DB서버, 앱서버, 파일(NAS)서버, DNS등이 별도의 서버 장비 또는 데스크탑으로 구성되어 있다.


네트워크(Network)란, 둘 사이의 중간다리라고 한다.
클라이언트에서 서버로 데이터를 요청하고, 서버에서 클라이언트로 데이터 응답이 반환되는 과정에서 네트워크는 PC에서 유/무선을 통해 또 다른 PC로 데이터를 전송/반환할 수 있도록 도와주는 역할을 하는 PC.
ex) 스위치, 라우터, 게이트웨이, 모댐 등과 같은 장치들이 있다.

대체적으로는 클라이언트 N : 네트워크 1 : 서버 1의 관계로 구성된다.

 

클라이언트, 서버, 네트워크가 하나라도 없으면 어떻게 될까?클라이언트가 없으면, 당연히 핸드폰 없이 살아보는 것과 같은 불편함이 전부일 것이다.서버가 없으면, 업데이트나 조회/저장 등 데이터를 응답받을 수 없기 때문에 사실 내용없는 껍대기에 불과해진다.네트워크가 없으면, 사용자의 입장에서 네트워크를 통해 서버와 데이터 통신을 할 수 없기 때문에 서버가 없는 것과 같다.

 

Q2. 2가지 계층 구조 (OSI7계층과 TCP/IP4계층)

네트워크의 계층 구조는 서로 다른 용도로 2가지가 있다. 

OSI 7계층: 국제표준화기구 (ISO)에서 네트워크 프로토콜 디자인과 데이터 통신 계층을 나누어서 표준화한 것.
TCP/IP 4계층실제 사용하는 인터넷 표준. (7계층에서 표시된 항목이 4계층으로 축약되어 표현)

7계층이나 4계층과 같이 계층을 나누는 이유는
①이상있는 계층만 점검하거나 ②전체적으로 흐름을 파악하기 편하고 ③누구든지 이해하기 쉬운 목적이라고 한다.

이제 클라이언트와 서버 간의 요청/응답의 과정에서 발생되는 행위를 다루는 네트워크는 내부적으로 어떻게 실행되고 있는지를 확인해보자. (본인의 경우에는 OSI 7계층을 기준으로 작성하였다)

 

조금 더 간단하게 계층 별 프로토콜 예제를 정리하자면

 

Q3. 생소한 프로토콜 용어 정리

더보기

 [ 응용 계층 ] 
HTTP
: HyperText Transfer Protocol (하이퍼텍스트 전송 프로토콜)

FTP: File Transfer Protocol (파일 전송 프로토콜)
SSH: Secure Shell (네트워크 통신을 통해 타 컴퓨터의 쉘을 이용하여 데이터를 주고 받는 보안 프로토콜)
DNS: Domain Name System (도메인 주소인 URI를 IP주소로 변환하는 시스템)
IRC: Internet Relay Chat (응용 계층의 실시간 채팅 프로토콜)
End User Layer: 서버에 요청하는 클라이언트 PC (=일반 사용자)
IMAP: Internet Message Access Protocol (인터넷 메시지 액세스 프로토콜은 이메일을 받기 위한 프로토콜)
MPEG: Moving Picture Experts Group (엠맥은 멀티미디어를 압축하고, End User에게 효율적으로 전달하는 것)
JPEG: Joint Photographic Experts Group (제이팩은 정지된  이미지를 위해 만들어진 손실 압축 표준 기법)
Syntax Layer: 표현 계층의 코드 간의 번역을 담당하는 것
API's: Application Programming Interface (애플리케이션 간의 통신을 돕는 인터페이스)
Sockets: 네트워크 상의 프로세스간의 통신 경로. (= 통신 EndPoint)
WinSock: 윈도우 소켓 API라고 불리는 윈속은 소켓 프로그래밍에서 TCP/IP기반으로 통신을 위한 인터페이스.
SSL: Secure Socket Layer ( 보안 소켓 계층으로, 암호화 기반 인터넷 보안 프로토콜)
TLS: Transport Layer Security (전송 계층의 보안으로, 브라우저와 서버 간의 통신 상의 보안 향상)

[ 전송 계층 ] 
End-to-end Connection
: TCP로 통신하는 두 개의 호스트 사이의 논리적인 종단간의 접속 (각 끝의 주소와 접속)

TCP: Transmission Control Protocol (전송 제어 프로토콜이라는 신뢰성 위주의 통신 프로토콜)
UDP: User Datagram Protocol (사용자 데이터그램 프로토콜이라는 전송 속도 위주의 통신 프로토콜)

[ 인터넷 계층 ] 
IP: Internet Protocol (각 송/수신 호스트 사이에서 패킷 단위의 데이터를 주고 받을 때 사용되는 통신 규약)
ICMP: Internet Control Message Protocol (장치가 네트워크에서 데이터 전송시 발생된 오류를 전달하는 통신 규칙)
IPSec: IP Security (VPN같이 IP 네트워크의 두 통신 지점 간의 데이터 전송을 보호하는 (네트워크) 보안 프로토콜)
IGMP: Internet Group Management Protocol (공유기 같이 여러 장치가 하나의 장치에서 IP를 공유받는 프로토콜)

[ 네트워크 엑세스 계층 ] 
Ethernet: 유선 네트워크 기술 (로컬 환경의 각종 장치에 네트워크를 연결하기 위한 통신 표준)
PPP: Point to Point Protocol (데이터 링크 계층에서 사용되며, 양단 간의 통신을 도와주는 프로토콜)
Switch: 이더넷 기반의 장치로 LAN선 (네트워크에서 데이터를 효율적으로 전송하고 관리하는 장치)
Bridge: 네트워크의 MAC 주소에 기반하여 패킷 신호를 전송하는 하드웨어 장치.

Coax: Coaxial cable이라는 동축 케이블.
Fiber: 광섬유라는 빛을 이용한 (데이터 전송) 네트워크 기술. 전기 신호를 사용하는 구리 케이블보다 빠른 성능.
Wireless: 흔히 WLAN기반의 WIFI에 사용되는 별도의 서로 간의 유선 연결없이(전도체의 연결없이) 통신하는 방식.
Hubs: 여러 장치들을 연결해주는 연결 장치.
Repeaters:  근거리 통신망을 구성하는 세그먼트를 확장시켜서 신호를 먼 곳까지 데이터를 전달하는 장비.

마지막으로, 상위 계층에서 하위게층으로 데이터를 전달할때 사용되는 제어정보를 PDU. (프로토콜 데이터 단위)
PDU는 각 계층에 단위의 명칭이 달라진다.
전송 계층에서는 Segment
IP가 있는 네트워크 계층에서는 Packet (패킷)
랜카드가 있는 데이터 링크 계층에서는 Frame.

빨간색의 응용계층에서는 실제 이루어지는 다양한 기능들이 대부분 포괄적으로 있었다.

파란색의 전송계층에서는 데이터를 전송하는 방식에 중점이 있었다.

초록색의 인터넷 계층에서는 IP를 중심으로 이루어져있었다.

노란색의 네트워크 계층에서는 대부분이 하드웨어였다.

 

Q4. 데이터 송/수신 프로세스

이제 클라이언트, 서버, 네트워크에 대해 알아보았으니 실제 사용자가 데이터를 요청하고 전달받는 과정에 대해서 알아보자.

예를 들어 실제 사용자가 임의의 일반 화면에서 조회 버튼을 클릭하여 데이터 송신 요청을 하였고, HTTP Request에 담겨 요청된 내용은 네트워크 상의 응용 계층을 시작으로(End User Layer) 물리 계층까지 순서대로 해당하는 계층들을 통해 요청 데이터가 서버에 전달된다.

그리고 서버에서는 요청에 대한 결과로 응답 데이터를 반환하면서 다시 네트워크상의 물리 계층부터 응용 계측(End User Layer)까지 역순으로 네트워크에서 해당하는 계층들을 통해 응답 데이터가 다시 클라이언트 사용자에게 반환된다.

 

Q5. 결론적으로

네트워크는 데이터를 주고 받기 위한 다양한 기능이 있는 필터라고 정리가 되었다. 때문에 우리의 일상에서 네트워크는 알게 모르게 이미 대부분 사용되고 있다.  이번 글을 통해 데이터를 주고 받는 과정은 어떻게 되는구나. 우리가 개발하면서 어떤 데이터를 어떠한 전송 방식으로 어느 IP주소에 도착해야하는지를 담당하는게 네트워크라는 중간장치구나를 알아가도 좋다. 한 시스템이 개발되면서 모든 계층이 전부 사용되지 않는다고 알고 있다. 화자의 글이 공부를 하며 놓친 부분이 있을 수 있기 때문에 응용, 전송 계층과 같은 꼭 필요한 부분은 다른 참고할 만한 글들과 함께 반복해서 한 번 이해시키면 다른 작업할 때 전반적인 시스템의 흐름을 이해하는데 편할 것이다.