TCP 통신
TCP 통신은 네트워크에서 데이터를 신뢰성 있게 전달하기 위해 사용하는 프로토콜임.
TCP는 OSI 7계층 중 전송 계층에 속하며, 주로 인터넷을 통해 데이터를 전송할 때 많이 사용됨.
TCP 통신의 주요 특징과 과정
1. 신뢰성 있는 데이터 전송
TCP는 데이터의 정확한 전달을 보장하기 위해, 데이터가 손실되거나 순서가 뒤바뀌는 것을 방지함.
이를 위해 TCP는 3-way 핸드셰이크 및 4-way 핸드셰이크를 통해 연결을 설정하고 해제함.
2. 3-way 핸드셰이크
TCP 통신을 시작하기 위해서는 클라이언트와 서버가 서로 연결을 설정해야 함.
이 과정은 다음과 같은 3단계를 거침
2-1. SYN
클라이언트가 서버에 연결 요청을 보냄.
2-2. SYN-ACK
서버는 클라이언트의 요청을 받아들이며, 응답으로 연결 요청과 승인 메시지를 보냄.
2-3. ACK
클라이언트가 서버의 응답을 확인하여 연결이 설정됨.
이를 통해 양쪽 모두 연결 준비가 되었음을 확인하고, 이후 데이터를 주고받을 수 있는 상태가 됨.
3. 데이터 전송 및 순서 제어
TCP는 데이터 전송 시 세그먼트라는 작은 단위로 데이터를 쪼개어 전송함.
그리고 각 세그먼트에 순서 번호를 부여하여 수신 측에서 순서를 맞춰 재조립할 수 있게 함.
이를 통해 패킷 순서가 어긋나는 것을 방지함.
수신 측은 각 세그먼트를 확인하고 누락된 세그먼트가 있을 경우 재요청을 함.
4. 흐름 제어 및 혼잡 제어
4-1. 흐름 제어
수신 측의 데이터 처리 속도보다 더 빠르게 데이터가 전송될 경우, 네트워크 혼잡이나 데이터 유실이 발생할 수 있음.
TCP는 수신 측이 처리할 수 있는 만큼만 데이터를 전송하도록 윈도우크기를 조정함.
4-2. 혼잡 제어
네트워크 혼잡을 줄이기 위해, 네트워크 상태를 확인하고 혼잡이 발생할 경우 송신 속도를 조절함.
대표적인 혼잡 제어 알고리즘으로는 AIMD가 있음.
5. 4-way 핸드셰이크 (연결 종료)
데이터 전송이 완료되면 TCP 연결을 종료하는 절차로, 다음과 같은 4단계를 거침.
5-1. FIN
클라이언트가 서버에게 연결 종료 요청을 보냄.
5-2. ACK
서버가 요청을 확인함
5-3. FIN
서버도 연결 종료를 요청함.
5-4. ACK
클라이언트가 확인 후 연결이 종료됨.
6. TCP의 주요 장점과 단점
6-1. 장점
데이터 전송의 신뢰성이 높고, 전송 중 데이터 손실이나 순서 뒤바뀜을 방지함.
6-2. 단점
연결 설정 및 종료 과정이 복잡하여 속도가 상대적으로 느리며, 데이터 전송량이 많은 경우에는 혼잡 제어로 인해 성능이 떨어질 수 있음.
7. TCP와 UDP의 차이점
UDP는 TCP와 달리 연결 지향형 프로토콜이 아니며, 데이터 전송의 신뢰성을 보장하지 않음.
따라서 실시간성이 중요한 애플리케이션(스트리밍, 온라인 게임)에서는 속도가 빠른 UDP를 많이 사용하며, 신뢰성이 중요한 애플리케이션(웹 브라우징, 이메일)에서는 TCP를 주로 사용함.
TCP 통신 정리
TCP 통신은 네트워크 상에서 신뢰성 있는 데이터 전송을 보장함.
사용자에게 안정적인 연결 환경을 제공함.
'Data Engineering > Zeppelin' 카테고리의 다른 글
[Zeppelin] Neo4j (0) | 2024.11.11 |
---|---|
[Zeppelin] 전송 계층 (0) | 2024.11.04 |
[Zeppelin] 웹소켓 (2) | 2024.10.27 |
[Zeppelin] Zeppelin에서 Flink를 사용하는 방법 (1) | 2024.10.17 |
[Zeppelin] Apache livy (0) | 2024.10.17 |