일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정처기
- show
- postgresql
- drop
- wss 파싱
- UI
- 프로토타입
- restapi
- c# 클로저
- url파싱
- Git
- POST
- MariaDB
- create
- 정보처리기사 실기
- IndexOutOfRangeException
- WinForms
- C#
- MFC
- HeidiSQL
- VisualStudio2019
- 정보처리기사
- C# sprintf
- c# for
- 정처기 실기
- multipart/form-data
- Telerik
- git commit vi
- url 파싱
- System.IndexOutOfRangeException
- Today
- Total
달짱달짱
[TCP] TCP 관련 Flag 본문
출처 : http://www.ktword.co.kr/abbr_view.php?m_temp1=2437
참고 : https://pmj0403.tistory.com/entry/TCP-flagURG-ACK-PSH-RST-SYN-FIN
TCP(Transmission Control Protocol) 제어 플래그
- TCP 헤더는 6개의 Control Flag 필드 들이 있다. 이들은 논리적인 TCP 연결회선 제어 및 데이터 관리를 위해 사용된다.
ㅇ URG (Urgent) 긴급 데이터
- Urgent Pointer 필드에 값이 채워져있음을 알림
. 송신측 상위 계층이 긴급 데이터라고 알려주면,
. 긴급비트 URG를 1 로 설정하고,
. 순서에 상관없이 먼저 송신됨
- 긴급 데이터의 마지막 바이트 위치가 Urgent Pointer로 가리켜짐
ㅇ ACK (Acknowledgement) 응답
- 확인응답 필드에 확인응답번호(Acknowledgement Number) 값이 셋팅됐음을 알림
. 1로 셋팅되면, 확인번호 유효함을 뜻함
. 0로 셋팅되면, 확인번호 미포함 (즉, 32 비트 크기의 확인응답번호 필드 무시됨)
- SYN 세그먼트 전송 이후(TCP 연결 시작후) 모든 세그먼트에는 항상 이 비트가 1로 셋팅됨
ㅇ PSH (Push) 밀어넣기
- 버퍼링된 데이타를 가능한한 빨리 상위 계층 응용프로그램에 즉시 전달할 것
. 수신측은 버퍼가 찰 때까지 기다리지 않고, 수신 즉시 버퍼링된 데이터를 응용프로그램에 전달
. 例) telnet 세션에서 `q` 입력 만으로 세션 종료를 알릴 때 등
- 때론, 서버측에서 더이상 전송할 데이터가 없음을 나타내기도 함
※ 아래 3개 비트 플래그(RST,SYN,FIN)는 TCP 연결설정 및 TCP 연결종료에 주체적으로 사용됨
ㅇ RST (Reset) [강제 연결 초기화 용도] 재연결 종료
- 연결확립(ESTABLISHED)된 회선에 강제 리셋 요청
. 강제 리셋 : RST=1 (RST 세그먼트 또는 RESET 세그먼트)
. 연결 상의 문제를 발견한 장비가 RST 플래그를 `1`로 설정한 TCP 세그먼트를 송출
. LISTEN,SYN_RCVD 상태일때 => RST 수신한 경우에 => LISTEN 상태로 들어감 .
. 그밖의 상태 일때 => RST 수신한 경우에 => 연결 끓고 CLOSED 상태로 들어감
* 반 개방 또는 연결 문제 등의 상황 처리를 위한 특별한 초기화용 제어 비트
ㅇ SYN (Synchronize) [연결시작,회선개설 용도] 연결요청
- TCP 연결설정 초기화를 위한 순서번호의 동기화 ☞ TCP 연결 설정
. 연결요청 : SYN=1, ACK=0 (SYN 세그먼트)
. 연결허락 : SYN=1, ACK=1 (SYN+ACK 세그먼트)
ㅇ FIN (Finish) [연결해제,회선종결 용도] 연결 종료 요청
- 송신기가 데이타 보내기를 끝마침 ☞ TCP 연결 종료
. 종결요청 : FIN=1 (FIN 세그먼트)
. 종결응답 : FIN=1, ACK=1 (FIN+ACK 세그먼트)
* 즉, 연결을 종료하고 싶다는 뜻을 상대에게 보내는 것
'기타' 카테고리의 다른 글
[C] 문자열 url 파싱하기 (0) | 2023.02.17 |
---|