TCP란?
- transport 계층의 대표적인 연결지향 프로토콜
- 하위 계층에서의 (network, datalink 계층) 패킷 손실, 중복 오류 등 모든 전송 문제를 검출하고 해결
- IP의 한계인 비연결성, 비신뢰성 해결
TCP의 구조
- 발신지 포트(Source Port) : 패킷을 송신하는 시스템의 포트번호 EX) HTTP(80)
- 목적지 포트(Destination Port) : 패킷을 수신할 시스템의 포트번호
- 순차 번호(Sequence Number) : 각 세그먼트의 첫 번째 바이트에 부여되는 번호
- 응답 확인 번호(Acknowledge Number) : 수신한 세그먼트의 확인 응답을 위한 필드
- 헤더 길이(Header Length) : TCP 헤더 길이를 나타내는 필드
- TCP 제어 플래그(TCP Control Flag) : 각 필드 흐름 제어, 종료, 데이터 전송 모드용 구성
URN(긴급플래그), ACK(응답플래그), PSH(Puch플래그),
RST(Reset플래그), SYN(연결요청플래그), FIN(Finish플래그)
- 윈도우 크기(Window Size) : 수신 윈도우의 보낼 수 있는 데이터의 양을 뜻함
- 검사합(Checksum) : 데이터가 전송 중에 손실되지 않고 원본과 동일한지 검사
- 긴급 포인터(Urgent Point) : 세그먼트가 긴급 데이터를 포함하고 있을 경우를 알림
TCP 특징
- 연결 지향 - TCP 3 way handshake(가상 연결)
- 데이터 전달 보증 - 패킷이 누락되었는지 확인
참고 - 인터넷 프로토콜 스택의 4 계층