전송 계층 TCP 프로토콜 연결 설정 및 연결 해제
TCP란 무엇인가?
세 단어로 구성된 전송 제어 프로토콜은 말 그대로 전송 제어 프로토콜입니다. 비트 학생이 네트워크 수영장에서 수영하려면 전송 계층 제어 기술을 배우고 마스터해야 한다는 것을 이해할 수 있습니다. 해당 행동 합의가 있어야만 그는 세계 네트워크의 초대형 수영장에서 수영할 수 있습니다.
TCP: 호스트 간 안정적인 전송을 제공하고 전이중을 지원하는 연결 지향 프로토콜인 전송 계층 프로토콜입니다.
TCP는 전송 계층에서 작동하며 상위 계층은 애플리케이션 계층입니다. 애플리케이션은 WeChat, Douyin 및 King of Glory와 같이 일반적으로 사용되는 서비스에 대한 프로토콜입니다. 두 개의 서로 다른 장치가 WeChat을 사용하여 채팅하고 음성을 보내는 경우 호스트 간 데이터 통신을 구현해야 하며 TCP 프로토콜을 직접 호출할 수 있습니다.
TCP 통신을 호출할 때 통신 포트를 지정해야 합니다. 다른 포트는 다른 애플리케이션에 해당하고, 다른 IP는 다른 호스트, 즉 다른 장치에 해당합니다. 여기에는 네트워크 계층에서 작동하는 IP 주소가 포함됩니다. 물론 TCP 계층은 해당 IP 주소와 포트를 네트워크 계층으로 전달하는 역할만 담당합니다.
인터넷 계층, 즉 네트워크 계층은 주소 간 통신을 제공하며, 장치 간 구체적인 통신만 데이터 링크 계층에서 구현합니다. MAC 주소 간의 통신에 특정 물리적 장치와 전송 매체가 물리적 계층을 담당합니다.
위 내용은 TCP/IP 프로토콜에서 일반적으로 사용되는 계층적 분할이며, 최종 목표는 호스트 간 서비스를 제공하고 애플리케이션 간 통신 서비스를 구현하는 것입니다.
연결과 세션이란 무엇입니까?
연결하려면 통신 당사자 모두의 협력이 필요합니다. 이는 두 통신 당사자가 모두 온라인 상태이고 후속 데이터 전송에 최대한 빨리 응답할 수 있는지 확인하기 위해 양측이 도달한 즉각적인 상태 합의입니다. .우리는 그것을 연결이라고 부릅니다.
연결은 네트워크 동작 상태에 대한 기록이며 연결에는 양측의 공동 노력이 필요하므로 양측 모두 현재 전송되는 데이터 유형, 상대방의 포트 및 정보를 기억하는 객체가 필요합니다. 효율성과 기타 우려 사항은 무엇입니까?
그러면 이와 관련된 또 다른 명사인 세션은 애플리케이션의 동작을 의미합니까? 모든 사람이 WeChat을 사용하여 채팅할 때마다 메시지를 보낼 수 있는 창이 있습니다. 이 창에는 많은 메시지가 있습니다. 우리가 대화할 때 연결이 이루어져야 합니다. 통신상태. 한동안 채팅을 하다 지쳐서 위챗을 종료했는데, 일반적으로 대화 내용은 삭제하지 않고 현재 대화 내용은 남아있지만 연결이 끊겼습니다.
이중/단방향 문제
당신이 이해한 바를 생각해 보십시오.
단방향: 언제든지 한 방향으로만 데이터를 보낼 수 있으며 단방향에는 최소한 한 줄이 필요합니다.
반전이중: 데이터를 한 번에 양방향으로 보낼 수 있습니다.
전이중: 언제든지 양방향으로 데이터를 전송할 수 있으며 한 라인보다 큽니다.
여기에 라인이 반드시 존재하는 것은 아닙니다. 물리적인 회선으로 구성되어 있으며 시뮬레이션 형태로 구현될 수 있습니다.
TCP는 전이중 프로토콜이므로 언제든지 서버와 클라이언트가 양방향으로 데이터를 보낼 수 있습니다. 필요에 따라 언제든지 정보를 보내고 받도록 선택하여 둘 다 호스트라고 부를 수 있습니다.
신뢰성의 정의
TCP는 신뢰성을 제공할 수 있는데, 신뢰성의 구체적인 구현 방법은 무엇입니까?
신뢰성은 데이터의 무손실 전송을 의미합니다. 송신 호스트는 순서대로 데이터를 전송하며, 데이터는 네트워크 조건에 따라 전송된 순서대로 수신자에게 도착하지 않습니다. 수신자가 발신자의 순서를 복원할 수 있다는 것입니다. 멀티캐스트라는 개념도 있습니다. 발신자는 동시에 여러 수신자에게 정보를 보냅니다. 수신자 중 한 명이 이 정보를 수신하면 다른 수신자도 동일한 정보를 수신해야 한다는 것을 보장해야 합니다. 여기서는 멀티캐스트에 대해 논의하지 않습니다.
TCP 핸드셰이크 및 웨이브
TCP는 연결 지향 프로토콜입니다. 핸드셰이크는 연결을 설정하는 프로세스이고 웨이브는 연결을 끊는 프로세스입니다.
TCP의 기본 동작
위의 세 가지 동작 후에 상대방은 즉시 ACK(Acknowledgement)를 개시자에게 반환해야 합니다. 이는 신뢰성을 보장하기 위한 TCP의 요구 사항입니다. 만약 어느 한 쪽이 보낸 사람에게 ACK로 응답하지 않으면 보낸 사람은 받는 사람이 정보를 받지 못했다고 생각하고 다시 보내게 됩니다.
연결 설정 프로세스 - 3방향 핸드셰이크
3방향 핸드셰이크의 형성은 송신자가 정보를 보낼 때마다 수신자가 다음을 수행해야 한다는 TCP의 요구 사항과 직접적인 관련이 있습니다. ACK 확인 반환
위 그림은 TCP 연결 설정 과정을 설명하며 6단계로 구분됩니다.
TCP 연결 설정 과정은 위와 같으니 왜 세 번이야?
두 번째 단계는 서버가 데이터 전송 요청을 처음 수신하기 때문에 이를 처리할 필요가 없으므로 즉시 데이터 상호작용 상태로 들어갈 수 있습니다. 클라이언트에게 즉시 SYN을 보내 준비가 되었음을 알릴 수 있습니다. 세 번째와 네 번째 단계를 하나의 핸드셰이크(ACK-SYN)로 결합하면 클라이언트가 ACK로 응답하고 연결이 설정됩니다. p>
위의 내용은 3방향 핸드셰이크입니다.
특정 데이터 상호 작용 프로세스 중에 ACK 및 SYN은 식별 비트로 표시되어야 합니다. 실제 응용 프로그램에서는 일반적으로 1을 사용하여 켜짐 및 켜짐을 나타냅니다. 0은 꺼짐을 나타냅니다.
그러면 웨이브가 4개 있는 이유는 서버가 웨이브 시 FIN을 수신한 후 아직 완료되지 않은 작업이 있기 때문에 FIN에 즉시 응답할 수 없기 때문입니다. 따라서 위에서 언급한 6개의 웨이브 중에 3단계와 4단계는 함께 응답할 수 없습니다. 먼저 ACK에 응답하고 자체 작업이 처리될 때까지 기다린 후 클라이언트에게 준비가 되었다고 알리고 연결을 닫을 수 있다고 알리면 아래와 같이 4번의 데이터 상호 작용이 필요합니다. :