티스토리 뷰
TCP 프로토콜은 신뢰할 수 있고 정확한 데이터를 전달하기 위해 연결형 통신을 사용하는 프로토콜이다.
또한 데이터를 패킷으로 분할하여 전송하고, 패킷 전송 과정을 연결형 통신 방식으로 제어하며, 수신한 패킷들을 재조립하는 방식으로 데이터 전송의 정확성과 신뢰성을 확보하고 있다.
▶TCP Header
▷ Source/Destination Port # : 각 호스트에 있는 응용 프로그램의 포트 번호
▷ Sequence # : Segment Stream의 첫번째 Byte 번호, 송신되어지는 data의 순서를 구분하기 위해 사용
▷ ACK #:
성공적으로 수신한 마지막 byte 번호 + 1이다.
NACK가 없다 -> 누적 ACK를 이용한다.
▷ 헤더 길이 : TCP 헤더의 길이, 옵션부분이 가변이므로 헤더의 길이가 바뀔수 있다.
▷ 예약: 예약하여 아직 사용하지 않는 필드
▷ Window size: 흐름제어를 위한 윈도우 사이즈
▷ Flag:
U: URG
1 = 마지막 필드인 Urgent Point가 유효
- 특별한 제어 정보를 전달할때 쓰인다.
- 수신 즉시 TCP는 수신측 APP에게 정보를 전달한다.
- Telnet이나 rlogin과 같은 응용에서 인터럽트 키가 전송되거나 FTP에서 파일 전송
중단과 같은 경우에 사용된다.
A: ACK
1 = ACK#가 유효
P: PSH
1 = 클라이언트의 데이터가 TCP 버퍼에 쌓이지 않도록 한다.
- 현재 대부분의 API에서 제공하지 않는다.
R: RST
긴급하게 강제로 끊을때
1 = TCP 연결을 재설정한다.
시퀀스넘버와 버퍼를 초기화한다.
- FIN과는 달리 버퍼를 즉시 비우고 접속을 종료한다.
- half open 상태를 재설정한다.
- 닫힌 포트에 대한 접속 요청에 응답(종료신호)
S: SYN
1 = 연결 요청과 설정, 확인 응답에서 순서 번호 동기화
F: FIN
1 = TCP 연결 세션 종료
▷ checkSum: 헤더와 데이터를 모두 포함한 사용자 데이터그램 전체에 대해 오류를 탐지하기 위해 사용된다.
'Network' 카테고리의 다른 글
[Network] IPv4 CIDR 표기법 (0) | 2024.08.28 |
---|---|
[jNetPcap] JAVA packet capture Lib jNetPcap 설치 & 설정 (0) | 2022.03.30 |
[TCP/IP 아키텍쳐] UDP header의 구조 (0) | 2022.03.23 |
[TCP/IP 아키텍쳐] IPv4 header의 구조 (0) | 2022.03.23 |
[TCP/IP 아키텍쳐] ARP protocol 의 구조 (0) | 2022.03.23 |
- react
- 인천 구월동 이탈리안 맛집
- javascript
- redux-thunk
- 정보보안기사 #실기 #정리
- await
- 맛집
- Promise
- Async
- redux
- react-native
- 파니노구스토
- 이탈리안 레스토랑
- 인천 구월동 맛집
- AsyncStorage
- Total
- Today
- Yesterday