주니곰의 괴발노트
TCP에 대하여 본문
정의
TCP(Transmission Control Protocol)는 전송 제어 프로토콜의 약자로 응용 프로그램이 데이터를 교환할 수 있는 네트워크 대화를 설정하고 유지하는 방법을 정의하는 표준
연결하는 과정
SYN: 클라이언트가 서버에 SYN을 전송. 클라이언트는 세그먼트의 시퀀스 번호를 임의의 값으로 설정
SYN-ACK: 응답으로 서버는 SYN-ACK로 응답. 수신된 시퀀스 보다 많은 숫자로 설정
ACK: 마지막으로 클라이언트가 서버에 다시 ACK를 전송
위와 같이 통신 경로를 한번 테스트하는 과정을 통해서 서버와 클라이언트는 연결을 맺으며 3 Way HandShake라고 함
연결을 끊는 과정
연결 종료는 4 Way HandShake라고 함
연결이 끊겼음에도 클라이언트에서 TIME WAIT을 하는 이유는 지연되거나 유실된 패킷이 뒤늦게 전송되는 경우가 있기 때문
TCP 헤더 구조
전송하는 SYN 패킷과 ACK 패킷은 TCP 헤더에서 위치에 해당하는 비트가 켜져서 전송
기타 특징
- IP 네트워크를 통해서 통신하는 호스트에서 실행되는 애플리케이션 간에 신뢰할 수 있고, 순서가 정해져있으며, 오류를 체크하고 전송
- 월드 와이드 웹, 이메일, 원격 관리, 파일 전송과 같은 주요 인터넷 애플리케이션은 전송 계층의 일부인 TCP에 의존
- SSL/TLS 또한 TCP 위에서 동작
- 패킷을 통해 소실된 데이터 파악
- 흐름제어 및 혼잡제어
자료 출처
https://afteracademy.com/blog/what-is-a-tcp-3-way-handshake-process/
Comments