
TCP 헤더 필드
- Source Port & Destination Port
- 송수신 포트 주소
- Sequence Number
- 송신 프로세스가 지정하는 순서 번호
- 세그먼트 전송 과정에서 전송되는 바이트의 수를 기준으로 증가
- TCP에서는 전송 데이터의 각 바이트마다 순서 번호가 존재
- Acknowledgement Number
- 수신 프로세스가 제대로 수신한 바이트의 수를 읍닫하기 위해 사용
- ACK 플래그 비트가 지정된 경우에만 유효
- 다음에 수신을 기대하는 데이터의 순서 번호를 표시
- ACK 응답을 받은 송신 프로세스는 ACK Number-1까지의 모든 데이터가 올바로 전송되었음을 확인할 수 있다.
- Data Offset
- TCP 세그먼트가 시작되는 위치를 기준으로 데이터의 시작 위치를 나타낸다.
- TCP 헤더의 크기
- Window
- 슬라이딩 윈도우 프로토콜에서 수신 윈도우의 버퍼 크기를 지정하기 위해 사용
- 수신 프로세스가 수신할 수 있는 바이트의 수
- Checksum
- TCP 세그먼트에 포함되는 프로토콜 헤더와 데이터 모두에 대한 변형 오류를 검출하기 위해 사용
- IP 프로토콜에서 사용하는 오류 검출 알고리즘을 사용
- Urgent Pointer
- 긴급 데이터를 처리하기 위함
- URG 플래그 비트가 지정된 경우에 유효
- Sequence Number = 2,000, Urgent Pointer = 100으로 지정한 패킷을 전송하면 순서 번호 2,000~2,099번의 데이터는 긴급 데이터로 전송되며, 2,100번 이후는 다시 정상 데이터로 전송된다.
TCP 헤더 플래그 비트

- URG: Urgent Pointer 필드가 유효한지를 나타낸다.
- ACK: Acknowledgment Number 필드가 유효한지를 나타낸다.
- PSH: 현재 세그먼트에 포함된 데이터를 상위 계층에 즉시 전달하도록 지시할 때 사용
- 수신 프로세스로부터 PSH 세그먼트에 대한 응답 프레임이 도착하면, 프레임의 Acknowledgement Number 필드에 표시한 숫자까지의 모든 데이터가 상대 프로세스의 상위 계층에 전달되었음을 의미
- 수신 프로세스의 TCP 계층에 버퍼링된 데이터를 즉시 상위 계층에 전송함으로써 전송 지연이 감소되는 효과를 얻을 수 있음
- RST: 연결의 리셋 또는 유효하지 않은 세그먼트에 대한 응답용
- 전송했지만 수신 프로세스에 아직 도착하지 못한 세그먼트, 수신 프로세스가 아직 긍정 응답하지 않은 세그먼트는 연결이 재설정되었을 때 재전송되어야 한다.
- SYN: 연결 설정 요구를 의미하는 플래그 비트, 가상 회선 연결을 설정하는 과정에서 사용
- FIN: 연결 종료 플래그로 송수신 프로세스 모두 FIN 플래그를 전송해야 연결이 종료된다.
혼잡 제어
- ECE
- 네트워크 트래픽이 많아질 때 라우터가 송신 프로세스에 명시적으로 혼잡을 알리려고 사용
- 송신 프로세스에 직접 전달하지 않고, IP 헤더의 ECN 필드에 CE 값을 지정하여 간접적으로 수신 프로세스에 알려준 후에 수신 프로세스의 중개를 거쳐 송신 프로세스에 통지
- 수신한 송신 프로세스는 네트워크 부하를 줄이기 위해 전송 윈도우 크기를 줄인다.
- CWR
- ECE 비트를 수신한 송신 프로세스가 전송 윈도우 크기를 줄였음을 통지하는 것이 목적
- 더 이상의 ECE를 전송하지 말라는 의미
'CS > 네트워크' 카테고리의 다른 글
HTTP와 HTTPS 프로토콜 (0) | 2025.03.21 |
---|---|
TCP/IP (0) | 2025.03.06 |
프로토콜과 OSI 7 Layer (0) | 2025.03.06 |
네트워크 기초 (0) | 2025.03.06 |