TCP 프로토콜에서 "syn, ack, fin"의 기능은 무엇입니까?
TCP의 3방향 핸드셰이크가 수행되는 방식: 송신자는 SYN=1 및 ACK=0인 데이터 패킷을 수신자에게 전송하여 연결을 요청합니다. 이는 수신자가 요청을 수신하는 경우 첫 번째 핸드셰이크입니다. 메시지가 수신되고 연결이 허용되면 SYN=1 및 ACK=1 플래그가 포함된 데이터 패킷이 송신측에 전송되어 통신이 가능함을 알리고 송신측에 확인 패킷을 보내도록 요청합니다. 이것이 두 번째 핸드셰이크입니다. ; 마지막으로 송신자는 연결이 확인되었음을 알리기 위해 SYN=0 및 ACK=1의 데이터 패킷을 수신자에게 보냅니다. 그 후 TCP 연결이 설정되고 통신이 시작됩니다. \x0d\*SYN: 동기화 플래그 \x0d\ 동기화 시퀀스 번호 열이 유효합니다. 이 플래그는 3방향 핸드셰이크로 TCP 연결을 설정할 때만 유효합니다. TCP 연결 시작자(일반적으로 클라이언트)의 초기 시퀀스 번호인 시퀀스 번호를 확인하라는 메시지를 TCP 연결 서버에 표시합니다. 여기서 TCP 시퀀스 번호는 0부터 4, 294, 967, 295까지의 32비트 카운터로 간주할 수 있다. TCP 연결을 통해 교환되는 각 데이터 바이트에는 시퀀스 번호가 지정됩니다. TCP 헤더의 시퀀스 번호 필드에는 TCP 세그먼트의 첫 번째 바이트의 시퀀스 번호가 포함됩니다. \x0d\*ACK: 승인 플래그 \x0d\ 승인 번호 필드가 유효합니다. 대부분의 경우 이 플래그가 설정됩니다. TCP 헤더의 승인 번호 열에 포함된 승인 번호(w1, 그림-1)는 다음으로 예상되는 시퀀스 번호이며 원격 시스템이 모든 데이터를 성공적으로 수신했음을 나타냅니다. \x0d\*RST: 재설정 플래그 \x0d\ 재설정 플래그가 유효합니다. 해당 TCP 연결을 재설정하는 데 사용됩니다. \x0d\*URG: 긴급 플래그\x0d\ 긴급(긴급 포인터) 플래그가 유효합니다. 비상 플래그가 설정되었습니다.\x0d\*PSH: 푸시 플래그\x0d\ 이 플래그가 설정되면 수신측에서는 처리를 위해 데이터를 대기열에 넣지 않고 가능한 한 빨리 처리할 수 있도록 데이터를 애플리케이션으로 전송합니다. 이 플래그는 Telnet 또는 rlogin과 같은 대화형 모드 연결을 처리할 때 항상 설정됩니다. \x0d\*FIN: 종료 플래그\x0d\ 이 플래그가 설정된 데이터 패킷은 TCP 대화를 종료하는 데 사용되지만 해당 포트는 여전히 열려 있고 후속 데이터를 수신할 준비가 되어 있습니다.\x0d\3-way Handshake\x0d \\ x0d\ 가상 연결 설정은 3방향 핸드셰이크를 통해 이루어집니다.\x0d\\x0d\ 1. (B) --gt [SYN] --gt (A)\x0d\\x0d\ 서버 A의 경우 클라이언트 B와 통신합니다. A가 B와 통신하려고 하면 B는 먼저 A에게 SYN(동기화) 표시된 패킷을 보내 A에게 연결 설정을 요청하라고 지시합니다.\x0d\\x0d\ 참고: SYN 패킷은 SYN으로 표시된 패킷은 값이 1인 TCP 패킷입니다(TCP 헤더 리소스 참조). A가 B로부터 SYN 패킷을 수신한 경우에만 연결이 설정될 수 있으며 다른 방법은 없습니다. 따라서 방화벽이 외부 인터페이스로 전송된 모든 SYN 패킷을 삭제하면 외부 호스트가 적극적으로 연결을 설정하도록 허용할 수 없습니다. \x0d\\x0d\ 2. (B) [ACK] --gt; (A)\x0d\\x0d\ B는 SYN/ACK 패킷을 수신하고 B는 확인 패킷(ACK)을 보내 A에게 연결이 이루어졌음을 알립니다. 설립되었습니다.
이 시점에서 three-way handshake가 완료되어 TCP 연결이 완료됩니다\x0d\\x0d\ 참고: ACK 패킷은 ACK 플래그만 1로 설정된 TCP 패킷입니다. -way 핸드셰이크가 완료되고 연결이 설정되면 각 TCP 연결 패킷에는 ACK 비트가 설정됩니다.\x0d\\x0d\ 이것이 연결 추적이 중요한 이유입니다. 연결 추적이 없으면 방화벽은 수신 여부를 확인할 수 없습니다. ACK 패킷은 설정된 연결에 속합니다. 일반 패킷 필터링(Ipchains) ACK 패킷을 수신하면 이를 통과시킵니다(이는 확실히 좋은 생각이 아닙니다). 그렇지 않으면 패킷을 삭제합니다. \x0d\\x0d\ 4방향 핸드셰이크\x0d\\x0d\ 4방향 핸드셰이크는 설정된 TCP 연결을 닫는 데 사용됩니다.\x0d \\x0d\ 1. (B) --gt; ACK/FIN -- gt; (A)\x0d\\x0d\ 2. (B) ACK --gt (A)\x0d\\x0d\ TCP 연결은 양방향 연결이기 때문에 연결 종료는 양방향으로 이루어져야 합니다. ACK/FIN 패킷(ACK 및 FIN 플래그가 1로 설정됨)은 일반적으로 FIN(최종) 패킷으로 간주됩니다. 그러나 연결이 닫히지 않았기 때문에 FIN 패킷은 항상 ACK 플래그 없이 패킷으로 표시됩니다. FIN 플래그는 합법적인 패키지가 아니며 종종 악성으로 간주됩니다.