[전송계층]
- 전송계층이란?
전송계층은 패킷이 전송 과정에서 아무 문제 없이 제대로 수신지 컴퓨터에 도착할 수 있도록 패킷 전송을 제어하는 역할은 전송 계층이 담당합니다 이러한 과정을 하기 위해 실제로 연결되어 있지 않지만 연결되어 있는 것처럼 논리적 통신이 되어있습니다. 그리고 또한 통신과정에서 패킷에 손실이 없었는지의 대한 체크 및 오류 확인도 전송 계층에서 진행합니다.
[TCP/UDP]
- TCP 란?
TCP는 전송을 제어하는 프로토콜(규약)을 의미합니다. 위에서 배웠던 전송계층에서 배웠던 전송과정의 연결을 담당하는 역할을 합니다. 단순히 연결만 하는 역할을 하는 것은 TCP와 UDP의 차이는 없기 때문에 TCP와 UDP는 서로 다른 과정으로 연결을 담당하게 됩니다. TCP는 연결과정에서 최대한 안정성을 높여 전송하는 연결형 통신의 프로토콜입니다.
-TCP 특징
- 연결 지향 방식으로 패킷 교환 방식을 사용한다(가상 회선 방식이 아님).
- 3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제한다.
- 흐름 제어 및 혼잡 제어.
- 높은 신뢰성을 보장한다.
- UDP보다 속도가 느리다.
- 전이중(Full-Duplex), 점대점(Point to Point) 방식.
- UDP 란?
비연결형 통신은 최대한 빠르고 효율적으로 데이터를 전송하는 것을 목적으로 하는 통신 방식입니다.
비연결형 통신은 효율을 높이기 위해 확인 과정을 거치지 않고 데이터를 전송하는데, 이때 사용되는 프로토콜이 UDP입니다.
- UDP 특징
- 비연결형 서비스로 데이터그램 방식을 제공한다
- 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
- UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다.
- 신뢰성이 낮다
- TCP보다 속도가 빠르다
-TCP/UDP의 차이점
둘은 다음과 같이 속도적인 부분에서나 신뢰성적인 부분에서의 차이를 볼 수 있다. 해당하는 차이점 때문에 TCP의 경우 신뢰도가 필요한 전송과정에서 주로 쓰고, UDP의 경우 실시간 라이브 서버에서 주로 사용되는 통신 방식이다.
[흐름/혼잡제어]
-흐름 제어란?
흐름 제어는 송신자의 전송 속도와 수신자의 처리 속도의 차이에서 생기는 문제를 해결하기 위한 기능입니다.
예를 들어 송신자가 데이터를 전송하는 속도가 수신자가 데이터를 처리하는 속도보다 빠른 상황일 경우, 수신자의 데이터 버퍼가 가득차서 넘치게 되면 넘친 데이터는 없어져서 손실이 나게 됩니다. 이러한 격차를 줄이기 위해서 송신자의 데이터 전달 속도를 줄이는 방식이 흐름 제어 입니다. 흐름 제어를 하기 위해서 데이터를 보낼 때마다 확인 절차를 걸치는 Stop and Wait 방식을 사용합니다.
-혼잡 제어란?
혼잡 제어는 흐름제어와 비슷하지만 다른 방식의 문제를 해결하기 위한 기능입니다.
예를 들어 송신자가 데이터를 전달하는데 한번에 매우 많은 데이터를 수신자에게 전달하게 된다면, 수신자는 데이터를 처리할 것이고, 처리하는 버퍼보다 많은 양의 데이터가 들어오게 된다면 데이터가 넘쳐 손실이 나게 됩니다. 이러한 상황을 해결하기 위해 송신자의 데이터 전달 속도를 줄이는 방식이 혼잡 제어입니다. 혼잡 제어를 하기 위해서, 패킷을 조금씩 전달하게 조절하는 AIMD기술을 사용합니다.
'코딩 > 게임서버공부' 카테고리의 다른 글
[게임서버] 삼각함수, 역 삼각 함수 (0) | 2024.06.28 |
---|---|
[게임서버공부] 응용계층, DNS, HTTP (0) | 2024.06.20 |
[CS] Select 모델과 IOCP 모델 (0) | 2024.06.04 |
[CS]서브넷마스크, IP 주소의 종류, 라우터와 라우팅 (1) | 2024.05.30 |
[게임서버 3주차]IP,ARP,라우팅의 이해 (0) | 2024.05.28 |