정보관리기술/네트워크

소켓(Socket) 통신, HTTP 통신

아이티신비 2024. 1. 15. 10:00

문제5) 소켓(Socket) 통신과 관련하여 다음을 설명하시오.

 

가. 소켓 통신 정의

나. 소켓 통신 방식 개념도 및 유형

다. TCP 소캣 및 Web 소켓 흐름 설명

라. 소켓 통신 방식과 HTTP 통신 방식 비교

 

답)

 

 

1. 서버와 클라이언트의 양방향 통신방식, 소켓 통신의 개념

가. 소켓 통신의 정의

  • 웹서버와 웹브라우저간 양방향 통신이 가능한 TCP/IP 프로토콜 기반의 통신 규약

 

나. 소켓 통신의 특징

양방향 통신
  • 클라이언트와 서버간 상호작용하는데 적합
다양한 데이터 처리
  • 텍스트, 이진 데이터, 이미지 등 다양한 형식 지원
실시간 통신
  • 웹환경에서 실시간 통신 구현
  • 웹 환경에서 실시간성 확보하는 용도에 많이 활용

 

2. 소켓 통신 방식 개념도 및 유형

가. 소켓 통신 방식 개념도

 


  • 소켓 통신 방식은 TCP, UDP 통신으로 분류되며 각각의 특성과 용도에 따라 선택 가능

 

나. 소켓 통신 방식의 유형

유형
핵심요소
설명
TCP 통신
연결 지향
  • 클라이언트가 서버에 연결 요청을 보내면 서버는 이를 수락하여 양방향 통신 채널을 설정
신뢰성
  • 오류가 발생한 경우에도 재전송하여 데이터의 정확성을 유지
순서 보장
  • 전송된 데이터는 도착 순서대로 재조립되므로, 순서를 보장
느린 전송
  • 데이터의 신뢰성을 위해 추가적인 프로토콜 헤더 및 확인 절차가 필요하므로 상대적으로 느린 전송 속도 보유
UDP 통신
비연결 지향
  • 클라이언트와 서버 간에 연결 설정 과정이 없으며, 데이터를 전송하기만 하고 응답을 기다리지 않음
신속한 전송
  • 추가적인 프로토콜 헤더나 확인 절차가 없어 TCP 에 비해 더 빠른 전송 속도 보유
신뢰성 감소
  • 데이터 손실이나 손상 시 재전송을 하지 않음
순서 미보장
  • 데이터가 도착하는 순서가 보장되지 않음
  • 소켓 통신 유형은 TCP, Web 2가지 유형으로 분류

 

3. TCP 소켓 및 Web 소켓 흐름 설명

가. TCP 소켓 흐름 개념


개념
  • 클라이언트와 서버 간 신뢰성 있는 연결을 설정하고 데이터를 주고받는 동작 방식
서버 측면
  1. 소켓 생성
socket() 함수를 이용하여 소켓을 생성
2. IP,Port 번호 설정
bind() 함수로 IP와 Port 번호를 설정
3.클라이언트 대기 결정
listen() 함수로 클라이언트의 접근 요청에 수신 대기열을 구성함
(몇 개의 클라이언트를 대기시킬 지 결정)
4.클라이언트 연결 대기
accept() 함수를 사용하여 클라이언트와의 연결을 기다림
클라이언트 측면
  1. 소켓 Open
socket() 함수 이용하여 소켓을 Open
2. IP, Port 번호에 통신
connect() 함수를 이용하여 통신 할 서버의 설정되 IP와 Port 번호에 통신을 시도
3. 소켓 Descriptor 반환
통신 시도 시 서버가 accept() 함수를 이용하여 클라이언트의 socket descriptor 를 반환
4. 서버와 통신
클라이언트와 서버사 서로 read(), write() 를 하며 통신
  • 서버가 먼저 소켓을 오픈하고 클라이언트와 서로 read, write 를 수행하며 통신 과정이 반복됨

 

나. 웹소캣 흐름 개념

개념
클라이언트 Client 와 서버 Server 간 지속적으로 연결된 TCP 를 통해 실시간 양방향 전이중 데이터 통신하는 기술
클라이언트 측면
  1. 클라이언트 소켓 생성
연결 대상에 대한 정보가 들어있지 않은 소켓을 생성
2. 연결요청
IP, 포트 번호로 연결하고 싶은 대상을 특정
3. 데이터의 송수신
요청에 대한 결과를 수신(Send, Receive)
4. 소켓 Close
데이터 송수신 필요 없어지게 되면 소켓 Close
서버 측면
  1. 서버 소켓 생성
연결 대상에 대한 정보가 들어있지 않은 소켓 생성
2. 서버 소켓 바인딩
소켁과 포트 번호를 바인딩
3. 클라이언트 연결요청 대기
포트번호와 바인딩 작업 마친 후 클라이언트 요청 대기
4. 클라이언트 연결 수립
최종 요청을 받아들이면서(accept) 다른 연결 처리 위해 listen 이나 close
  • 채팅앱, SNS, 구글, Docs,LOL 같은 멀티플레이 게임, 화상회의 등 다양한 분야에서 사용

 

4. 소켓 통신 방식과 HTTP 통신 방식 비교

가. 소켓 통신 방식과 HTTP 통신 방식 개념 비교

구분
소켓통신
HTTP통신
개념
클라이언트와 서버 양쪽에서 서로에게 데이터 전달을 하는 방식의 양방향 통신
클라이언트의 요청이 있을때 서버사 응답하는 단방향 통신
개념도
  • 소켓은 양방향, HTTP 통신은 단방향으로 구성되며 각각 다른 통신 용도로 사용

 

나. 소켓 통신 방식과 HTTP 통신 방식 상세 비교

구분
소켓 통신
HTTP 통신
연결상태
실시간 데이터 송수신에 적합
일괄적인 요청과 응답에 적합
사용용도
바이트 단위의 데이터를 처리
웹 리소스를 요청하는 용도로 사용
속도
상대적 빠름
상대적 저하
방화벽 및 보안
방화벽 등 추가적 보안 설정 필요
HTTPS 사용하여 암호화된 통신 지원
단점
Statefu한 연결 상태 유지하므로 부하발생
실시간성 데이터 부적합
  • 실시간 통신이나 상태 유지가 필요한 경우는 소켓 통신 방식이 적합

 


  • Stateful : (컴퓨터 보안 장치가) 네트워크 연결 상태를 추적할 수 있는 (TCP 연결 등)

 

 


 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥

 

 

'정보관리기술 > 네트워크' 카테고리의 다른 글

프레임릴레이(Frame Relay) / ①  (3) 2024.01.15
WebRTC(Web Real Time Communication) / ①  (1) 2024.01.15
네트워크 서브네팅(Subnetting)  (2) 2024.01.15
QoS(Quality of Service)  (1) 2024.01.15
OSI 7 Layer  (2) 2024.01.14