///
Search

네트워크 기초

1.1. 네트워크란?

네트워크는 Net + Work 의 합성어로 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결되어 데이터를 주고 받는 통신망이다. 네트워크에서 여러 장치들은 노드 간 연결을 사용하여 서로에게 데이터를 교환합니다.
노드: 컴퓨터 네크워크를 구성하는 기기 1개를 의미한다. 사전적 의미로는 매듭, 절, 집합점, 중심적이라는 의미를 가지고 있다. 그래프는 점과 선으로 구성되는 데 이때 점을 노드라고 합니다. 선은 두개의 노드를 연결한 것.

1.2. TCP와 UDP

OSI 7계층 모델: 국제표준화 기구에서 네트워크간의 연결에 있어서의 호환성 결여를 막기 위해 규정한 모델
TCP/IP 모형: OSI 모델을 기반으로 실제 인터넷에서 컴퓨터간의 정보 통신시 쓰이는 통신규약(프로토콜)의 모음으로 각 계층은 담당하는 위치마다 처리하는 역할을 구분한다. (OSI보다 더 실용적)
TCP와 UDP는 OSI 표준 모델과 TCP/IP 모델의 전송계층에서 사용되는 프로토콜이다.
전송 계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어등을 담당하는 계층이다. 즉, 데이터의 전달을 담당하는 프로토콜이다.
TCP와 UDP는 포트 번호를 이용하여 주소를 지정하며 데이터 오류 검사를 한다는 점에서 공통점을 가진다. 하지만 아래 표와 같은 차이점이 존재한다.

1.3. 소켓(socket)

소켓은 네트워크 통신에서 데이터 송수신의 접점을 말한다. 즉 TCP/UDP를 이용하여 데이터를 주고 받는 창구 역할을 한다. 서버와 클라이언트가 서로 통신할 수 있도록 양쪽에 생성되는 링크 단자이다.
소켓통신은 서버-클라이언트간 데이터를 주고 받는 양방향 통신이라는 특징을 가지고 있다. 클라이언트가 요청을 보내고, 요청에 따라 서버가 응답하는 단방향적인 일반적 HTTP 통신과 대조적이다.
또한 소켓은 보통 지속적으로 연결을 유지하며 실시간으로 데이터를 주고 받는다(Real time Networking). 예를 들어 채팅, 주식 등 즉각적으로 실시간 데이터를 보내는 경우이다.
→ 위와 같은 페이지는 클라이언트가 서버에게 직접 요청하지 않아도 서버에서 실시간 정보를 클라이언트에게 보여준다.

1.4. 소켓 실행 흐름

소켓통신을 위해서는 클라이언트(client)와 서버(Server) 모두 소켓을 생성해야 한다.