TCP (Transmission Control Protocol)
호스트 상에서 작동하는 어플리케이션 간에 데이터를 안정적, 순서 대로, 에러없이 교환할 수 있도록 도와주는 프로토콜
TCP 프로토콜의 작동 과정
•
신뢰성 있는 연결이 생성되어야 하며, 그 뒤에 자료 전송 및 연결 종료 절차를 통해 할당된 자원을 반납
1.
연결 생성 (Connection establishment)
•
3방향 핸드셰이크(SYN, SYN_ACK, ACK)를 통해 어플리케이션 간 정상 통신이 가능한지 확인
2.
자료 전송 ( Data transfer)
•
어플리케이션 데이터에 어플리케이션 프로토콜 헤더와 TCP 헤더를 추가하여 TCP 세그먼트를 송수신
•
수신이 완료되면 ACK 메세지를 통해 수신 확인 응답
3.
연결 종료 (Connection termination)
•
데이터 송수신이 끝나면 4방향 핸드셰이크를 통해 연결 종료
TCP 헤더
•
포트 번호 : 적절한 어플리케이션 프로토콜에 데이터를 배분할 수 있도록 도와줌.
•
시퀀스 번호 : TCP로 전송하는 데이터들의 순서를 표기
•
ACK 번호 : 데이터의 정상적으로 수신되었는지 확인을 위해 사용
MSS (Maximum segment size)
TCP에서 어플리케이션 데이터를 분할하는 단위
•
MSS의 표준 크기는 1460바이트로, TCP에는 MSS를 넘는 크기의 데이터는 분할하는 기능 有
•
분할한 데이터들에 각각 TCP 헤더들이 붙고, 각각 TCP 세그먼트들이 됨.