TCP
패킷을 안전하게 전달해주는 전송 프로토콜. IP위에서 동작한다.
데이터의 전달을 보장하고, 순서 또한 보장한다.
특징
1) 신뢰성 : 데이터의 분실, 중복, 혹은 오류가 발생할 경우 재전송
2) 연결 지향적 : 통신 시작 전 송수신자를 연결
3) 흐름 제어 : 혼잡도를 감지하여 데이터 전송 속도를 조절해 통신을 보다 효율적으로 유지
4) 순서 보장 : 데이터는 전송된 순서대로 도착
흐름 제어 : 송신측과 수신측의 데이터 처리 속도의 차이를 해결하기 위한 기법
혼잡 제어 : 송신측의 데이터 전달과 네트워크의 데이터 처리 속도 차이를 해결하기 위한 기법
TCP 동작 과정
연결 설정 - 3 way handshake
두 종단 간 정확한 데이터 전송을 보장하기 위해 연결을 설정하는 과정
- 클라이언트에서 연결 생성을 위해 SYN 요청
- 서버에서 생성하겠다고 ACK 응답
- 클라이언트에서 생성 확인했다고 ACK 응답
- 서버에서 클라이언트로 부터 생성 확인 ACK 응답을 받으면 최종적으로 연결 생성 완료
Connection Time : 3-way handshake를 통해 연결이 생성되는 시간. 이 시간이 너무 오래 걸리면 요청 실패가 될 수 있다.
연결 종료 - 4 way handshake
두 종단 간 데이터 전송을 끝낸 후 연결 설정을 해제하는 과정
연결이 생성된 후 부터는 DATA를 전송하고 수신하는 처리를 거친 후 FIN 명령을 통해 연결 종료
- 클라이언트가 연결 종료를 위해 FIN 전송
- 서버가 연결 종료하겠다고 ACK, FIN 전송
- 클라이언트도 종료했다고 ACK 전송
- 서버도 ACK 수신 후 최종적으로 종료
TCP와 UDP
TCP : 프로토콜 내 여러 규칙으로 인해 신뢰성 높은 연결만 지원하지만 느린 속도
UDP : 프로토콜 내 규칙을 간소화 하고 신뢰성은 낮지만 빠른 전송속도
TCP | UDP | |
연결형 서비스 | 연결 방식 | 비연결성 서비스 |
가상 회선 방식 | 패킷 교환 | 데이터그램 방식 |
보장함 | 전송 순서 보장 | 보장 X |
높음 | 신뢰성 | 낮음 |
느림 | 전송 속도 | 빠름 |
UDP는 그렇다면 어디에 쓰일까?
>> 빠른 전송이 필요하면서 데이터 손실이 크게 문제가 되지 않는 환경( 온라인 게임, 중계방송 등 )
IP 와 TCP/IP는 내일이어서 투비 컨티뉴....
'STUDY > Computer Science' 카테고리의 다른 글
객체지향 프로그래밍 - 캡슐화, 추상화 (0) | 2024.05.13 |
---|---|
Network - TCP/IP (0) | 2024.05.03 |
Network - IP Address (Internet Protocol Address) (0) | 2024.05.02 |