● 3-way Handshake
1. SYN (synchronize): 클라이언트가 서버에게 연결 요청을 보내는 단계
2. SYN-ACK (Synchronize-Acknowledge): 서버가 클라이언트의 요청을 수락하고 연결을 승인하는 응답을 보내는 단계
3. ACK (Acknowledge): 클라이언트가 서버의 응답을 확인하고 연결을 완료하는 단계
Client Server
| |
| ----------- SYN --------------> |
| |
| <--------- SYN-ACK ------------- |
| |
| ----------- ACK --------------> |
| |
● 정확한 데이터 전송이란?
○ 오류가 없는 것
오류의 종류 : 분실, 손상, 순서 바뀜
○ 정확한 데이터 전송
오류를 감지하고 오류를 복구 하는 것 -> 오류 제어
● 오류 제어 기능
○ 정확한 데이터 교환 시 오류 종류는?
-> 데이터 손상, 데이터 분실, 데이터 순서 바뀜
○ 오류 검출 방법 (error detection)
-> 손상 : checksum / 분실 : sequence number, timer / 데이터 순서 바뀜 : sequence number
○ 오류 해결 방법 (error recovery)
-> 손상, 분실 : 재전송 / 데이터 순서 바뀜 : 재배열
● 접속 종료 기능
○ Half Close
- TCP 소켓은 데이터 스트림을 송수신할 수 있는 양방향 연결입니다. 하지만 특정 상황에서는 한쪽에서만 데이터를 더 이상 보내지 않으면서 다른 쪽에서는 계속 데이터를 보내야 하는 경우가 있습니다. 이를 위해 TCP는 "half-close"라는 메커니즘을 제공합니다.
○ Graceful Close
- TCP 연결에서 "Graceful Close"는 양쪽 모두 연결을 깨끗하게 종료하고자 할 때 사용됩니다. 이 과정은 데이터를 손실 없이 모두 전송하고 나서 연결을 종료하는 것을 목표로 합니다. 이 절차는 TCP의 기본적인 연결 종료 방식인 "4-way handshake"를 사용합니다.
==> TCP : 앱 간의 접속 설정 기능, 정확한 데이터 전송 기능, 접속 종료 기능을 이 3가지를 구현한 것
● TCP가 작성한 접속 설정요청 패킷은 어떻게 전달하지?
-> IP (우체국 프런트 기능)
● IP 기능은?
1) 주소 지정
2) 패킷 분할 및 조립
3) 라우팅
etc..
'인터넷과 소켓프로그래밍' 카테고리의 다른 글
포트번호와 주소변화 (0) | 2024.07.24 |
---|---|
서브넷 및 IPv6 주소 (3) | 2024.07.23 |
IPv4 (0) | 2024.07.20 |
공통통신기능 - 데이터전달 (0) | 2024.07.17 |
공통통신기능 - IP주소와 LAN카드 주소 변환 (0) | 2024.07.17 |