TCP(Transmission Control Protocol)는 질서 있고 안전한 방식으로 데이터 전송을 보장하는 전송 프로토콜입니다. 동일한 순서로 데이터 패킷을 보내고 받습니다. TCP는 4층 프로토콜은 OSI(Open System Interconnection Model)와 비교됩니다. 7층 전송 과정. 서버와 클라이언트 간의 무결성과 보안으로 인해 높은 수준의 프로토콜에서 데이터를 전송하는 것이 좋습니다.
TCP는 종료를 위해 4방향 핸드셰이크가 필요합니다. 연결을 설정하려면 TCP에 3방향 핸드셰이크가 필요합니다. 그럼 여기서는 TCP가 TCP를 구축하는 과정을 자세히 살펴보겠습니다. 3방향 핸드셰이크 연결 및 종료를 위한 4방향 핸드셰이크 . 여기서는 다음 사항에 대해 논의하겠습니다.
TCP란 무엇입니까?
TCP 레이어
TCP 연결(3방향 핸드셰이크)
TCP 종료(4방향 핸드셰이크)
시작하자.
TCP란 무엇입니까?
TCP 연결 지향 프로토콜은 먼저 송신자와 수신자 사이의 연결을 다음과 같은 형태로 설정함을 의미합니다. 악수 . 두 연결이 모두 확인되면 패킷 전송이 시작됩니다. 이는 전송 프로세스에 오류가 없도록 만들고 데이터 전달을 보장합니다. 이는 인터넷에서 네트워크 장치를 상호 연결하는 데 사용되는 통신 프로토콜의 중요한 부분입니다. 전체 인터넷 시스템은 이 네트워크에 의존합니다.
TCP 보장하는 가장 일반적인 프로토콜 중 하나입니다. 끝으로 종료 배달. 이는 전송되는 데이터의 보안과 무결성을 보장합니다. 발신자와 수신자 사이에 항상 보안 연결이 설정됩니다. 송신기는 섬기는 사람 , 수신기는 다음과 같이 알려져 있습니다. 고객 . 또한 서버와 클라이언트 간에 데이터 전송이 발생한다고 말할 수도 있습니다. 따라서 TCP는 다음과 같은 대부분의 고급 프로토콜에서 사용됩니다. FTP (파일 전송 프로토콜) , HTTP (하이퍼 텍스트 전송 프로토콜) , 그리고 SMTP (간단한 마이 전송 프로토콜) .
TCP 레이어
그런 다음 데이터는 패킷으로 분할되어 주소에 할당되고 대상에서 전송, 라우팅 및 수신됩니다. 전송 프로세스는 애플리케이션 계층, 전송 계층, 인터넷 계층 및 데이터 링크 계층의 네 가지 계층으로 구성됩니다. 그만큼 애플리케이션 레이어 상위 3개 계층(애플리케이션, 프리젠테이션, 세션)과 유사한 기능을 수행합니다. OSI 모델 사용자 인터페이스 사양을 제어합니다. 사용자는 메시징 및 이메일 시스템과 같은 TCP 모델의 애플리케이션 계층과 상호 작용합니다. 그만큼 전송 계층 안정적이고 오류 없는 데이터 연결을 제공합니다. 애플리케이션 계층에서 받은 데이터를 패킷으로 나누어 정렬된 시퀀스를 만드는 데 도움이 됩니다. 그만큼 인터넷 레이어 패킷의 라우팅을 제어하고 목적지에서 패킷의 전달을 보장합니다. 데이터 링크 계층은 OSI 모델의 하위 두 계층(데이터 링크 및 물리적)과 유사한 기능을 수행합니다. 네트워크의 애플리케이션이나 장치 간에 데이터를 전송하는 역할을 담당합니다.
TCP 종료를 진행하기 전에 TCP 연결의 개념을 이해하는 것이 중요합니다. 이는 종료 프로세스를 더 잘 이해하는 데 도움이 됩니다.
TCP 연결(3방향 핸드셰이크)
핸드셰이크는 클라이언트와 서버 간의 연결을 설정하는 프로세스를 말합니다. 핸드셰이크는 간단히 말해서 통신 링크를 설정하는 프로세스로 정의됩니다. 패킷을 전송하려면 TCP는 데이터 전송을 시작하기 전에 3방향 핸드셰이크가 필요합니다. TCP에서의 안정적인 통신은 다음과 같습니다. 에 대한 (긍정적 승인 재전송). 송신자가 수신자에게 데이터를 보낼 때 수신자로부터 데이터 도착을 확인하는 긍정적인 승인이 필요합니다. 승인이 보낸 사람에게 도달하지 않은 경우 해당 데이터를 다시 보내야 합니다. 수신자로부터의 긍정적인 승인은 성공적인 연결을 설정합니다.
여기서 서버는 서버이고 클라이언트는 수신자입니다. 위 다이어그램은 성공적인 연결을 위한 3단계를 보여줍니다. 3방향 핸드셰이크는 일반적으로 SYN-SYN-ACK로 알려져 있으며 데이터를 교환하려면 클라이언트와 서버 모두 응답이 필요합니다. SYN은 다음을 의미합니다. 시퀀스 번호 동기화 ACK는 다음을 의미합니다. 승인 . 각 단계는 발신자와 수신자 간의 일종의 핸드셰이크입니다.
세 가지 핸드셰이크를 보여주는 성공적인 TCP 연결 다이어그램은 다음과 같습니다.
자바 xor
세 가지 핸드셰이크는 아래 단계에서 설명됩니다.
1단계: 동기화
SYN은 클라이언트가 서버로 보내는 세그먼트입니다. 이는 다음과 같은 역할을 합니다. 연결 요청 클라이언트와 서버 사이. 클라이언트가 연결을 설정하려고 한다는 것을 서버에 알립니다. 시퀀스 번호를 동기화하면 동일한 SYN 세그먼트가 연결 요청과 함께 시퀀스 번호를 요청하는 두 장치 간에 전송된 시퀀스 번호를 동기화하는 데도 도움이 됩니다.
2단계: SYN-ACK
서버가 보내는 SYN-ACK 세그먼트 또는 SYN + ACK 세그먼트입니다. ACK 세그먼트는 서버가 연결 요청을 수신했으며 연결을 구축할 준비가 되었음을 클라이언트에 알립니다. SYN 세그먼트는 서버가 세그먼트를 시작할 준비가 된 시퀀스 번호를 알려줍니다.
3단계: ACK
ACK(승인)는 클라이언트와 서버 간에 성공적인 TCP 연결을 설정하기 전 마지막 단계입니다. ACK 세그먼트는 서버로부터 수신된 ACK 및 SN에 대한 응답으로 클라이언트에 의해 전송됩니다. 그 결과 안정적인 데이터 연결이 설정됩니다.
이 세 단계를 마치면 클라이언트와 서버는 데이터 통신 프로세스를 위한 준비가 완료됩니다. TCP 연결 및 종료는 전이중 방식이므로 데이터가 동시에 양방향으로 이동할 수 있습니다.
TCP 종료(4방향 핸드셰이크)
모든 장치는 종료를 진행하기 전에 연결을 설정합니다. TCP에서는 데이터를 보내기 전에 클라이언트와 서버 간의 연결을 설정하기 위해 3방향 핸드셰이크가 필요합니다. 마찬가지로 데이터 전송을 종료하거나 중지하려면 4방향 핸드셰이크가 필요합니다. TCP 종료에 필요한 세그먼트는 FIN 세그먼트를 제외하고 TCP 연결(ACK 및 SYN)을 구축하는 세그먼트와 유사합니다. FIN 세그먼트는 한 장치에서 다른 장치로 보내는 종료 요청을 지정합니다.
송신자와 수신자 사이의 데이터 전송 과정에서 클라이언트는 데이터 전송자이고 서버는 수신자입니다. 클라이언트와 서버 간의 세그먼트 교환을 보여주는 아래 TCP 종료 다이어그램을 고려하세요.
네 번의 핸드셰이크를 보여주는 성공적인 TCP 종료 다이어그램은 다음과 같습니다.
전송된 요청과 대기 상태를 포함하는 6단계를 통해 TCP 종료 프로세스를 논의해 보겠습니다. 단계는 다음과 같습니다:
1단계: 핀
FIN은 다음을 가리킨다. 종료 요청 클라이언트가 서버로 보낸다. 첫 번째 FIN 종료 요청은 클라이언트에서 서버로 전송됩니다. 클라이언트와 서버 간의 종료 프로세스의 시작을 나타냅니다.
2단계: FIN_ACK_WAIT
클라이언트는 서버로부터 FIN 종료 요청에 대한 ACK를 기다립니다. 이것은 대기 상태 클라이언트를 위해.
3단계: ACK
서버는 FIN 종료 요청을 받으면 ACK(Acknowledgement) 세그먼트를 보냅니다. 이는 서버가 연결을 닫고 종료할 준비가 되었음을 나타냅니다.
4단계: FIN _WAIT_2
클라이언트는 서버로부터 FIN 세그먼트를 기다립니다. 서버가 연결을 종료할 준비가 되었음을 나타내는 일종의 승인된 신호입니다.
5단계: 핀
이제 FIN 세그먼트가 서버에서 클라이언트로 전송됩니다. 서버가 클라이언트에게 보내는 확인 신호입니다. 종료에 대한 성공적인 승인을 나타냅니다.
6단계: ACK
이제 클라이언트는 서버로부터 연결을 종료하라는 신호인 FIN 신호를 수신했다는 ACK(Acknowledgement) 세그먼트를 서버에 보냅니다. 서버는 ACK 세그먼트를 수신하자마자 연결을 종료합니다.