코가손의 블로그

[네트워크/C++] 네트워크 프로토콜, TCP 본문

GameDev/NetworkProgramming

[네트워크/C++] 네트워크 프로토콜, TCP

Cogason 2021. 12. 20. 16:36

우선 데이터를 전송하기 위해 사용하는 프로토콜을 알아보겠다

전송층은 OSI모델의 4계층 TCP/IP모델의 3계층에 존재한다.

TCP
연결형 서비스 가상회선 방식 제공, 신뢰성 높음
3-way handshake 이용해 연결 설정, 4-way handshaking을 통해 해제
IP는 데이터전송 처리, TCP는 패킷 추적 및 관리
흐름 및 혼잡 제어
UDP보다 속도 느림
< TCP서버의 특징 >

서버 소켓은 연결만 담당
서버와 클라이언트 1대1 연결
스트림 전송으로 데이터 크기 무제한
패킷에 대한 응답을 해야하기 때문에(시간 지연, CPU 소모)성능 낮음
Streaming 서비스에 불리함(손실된 경우 재전송 요청하므로)

 

용어 정리 및 부연설명

 

3-way Handshake

TCP/IP 프로토콜을 이용하는 프로그램이 데이터를 전송하기전에 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정이다. 간단하게 TCP의 연결을 초기화 할 때 사용한다.

 

4-way Handshake

세션을 종료하기 위해 수행되는 절차이다.

 

 

패킷

인터넷 내에서 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서 데이터를 여러 개의 조각들로 나누어 전송 하는데, 이 조각을 패킷이라고 함

 

 

Comments