본문 바로가기
Infra & Security Eng/Network & Security

신뢰성 있는 통신의 핵심, TCP 헤더(Header)의 9가지 주요 필드 완벽 정리

by 엔지니어 E 2026. 3. 11.
반응형

 

 

1. TCP Data: 애플리케이션에서 생성된 순수 데이터
2. TCP Segment: TCP Data 앞에 TCP 헤더(포트 번호, 순서 번호 등)가 추가된 상태 (전송 계층)
3. IP Datagram: TCP Segment 전체를 데이터로 취급하며, 그 앞에 IP 헤더(출발지/목적지 IP 주소 등)를 추가한 최종 단위 (네트워크 계층)

 

1. Source Port: 송신측 애플리케이션 프로세스 식별 번호
2. Destination Port: 수신측 애플리케이션 프로세스 식별 번호

* 포트번호를 구분하는 이유: 네트워크 패킷이 컴퓨터에 도착했을 때, 포트 번호가 없다면 컴퓨터는 그 데이터를 어떤 앱에 넘겨줘야 할지 알 수 없다. 데이터의 최종 목적지인 '프로세스(애플리케이션)'를 식별하기 위해

3. Sequence Number(데이터의 Byte Stream 번호): 전송되는 데이터 패킷의 순서를 보장하고 손실을 확인하기 위해서 TCP/IP에서 **Sequence Number(시퀀스 번호)**를 부여한다 

4. ACK: 수신 측이 송신 측에 보내는 **"다음에 받을 데이터의 시작 번호"**를 의미함

5. Header Length(HLEN): TCP 헤더의 전체 길이를 나타내는 필드 (4바이트(1 Word) 단위를 기준)


예시) 필드 값이 5라면 실제 길이는 5 X 4 바이트 = 20바이트 가 된다

6. Reserved: 현재 사용하지 않지만, 미래에 새로운 기능을 추가하기 위해 비워둔 공간

7. U A P R S F 각 정의

1) U (URG= Urgent): 긴급 데이터 유무 표시. 1이면 Urgent Pointer가 가리키는 데이터를 최우선 읽음. (0이면 무시)
2) A (ACK=Acknowledgment): 수신 확인 응답. 승인 번호(ACK #) 필드가 유효함을 알리는 패킷의 '영수증' 역할
3) P (PSH=Push): 패킷을 즉시 전달하기 위해. 버퍼링(큐잉 지연)을 최소화하여 받은 즉시 상위 애플리케이션으로 밀어 올림
4) R (RST=Reset): 강제 종료. 연결 세션에 오류가 발생했을 때 즉시 폐기하고 통신을 다시 맺기 위해 보냄
5) S (SYN=Synchronize): 연결 요청. 클라이언트가 서버에 처음 통신을 제안하며 시퀀스 번호를 맞추는 인사 패킷
6) F (FIN=Finish): 정상 종료. 데이터 전송이 끝나 매너 있게 연결을 끊겠다는 신호. (클라이언트/서버 모두 가능)
7) Window Size: 리시버의 가용 버퍼. 수신 측의 남은 버퍼 크기를 알려주어 송신 측의 전송량을 조절함 
8) Checksum: 데이터 파손 확인. 전체 세그먼트(헤더+데이터)가 전송 중 깨졌는지 무결성을 체크함
9) Urgent Point: 긴급 데이터 위치. U=1일 때만 유효하며, 긴급하게 읽어야 할 데이터가 어디까지인지 지시함