소켓 통신과 TCP 통신의 차이점: 1. TCP 프로토콜은 전송 계층 프로토콜에 속하지만 소켓은 애플리케이션 계층과 전송 계층 사이의 추상화 계층입니다. 2. TCP 연결을 설정하려면 세 번의 핸드셰이크가 필요합니다. 소켓 연결은 긴 연결로 유지될 수 있습니다. 4. TCP 서버와 TCP 클라이언트는 소켓 통신 등을 사용합니다.
이 문서의 운영 환경: Windows 10 시스템, Dell G3 컴퓨터.
소켓 통신과 TCP 통신의 차이점은 무엇인가요?
tcp와 소켓의 차이점
1: tcp 프로토콜
tcp 프로토콜은 전송 계층 프로토콜입니다(UDP도 전송 계층 프로토콜이지만 UDP 프로토콜은 무국적). TCP 연결을 설정하려면 세 번의 핸드셰이크가 필요하고, TCP 연결을 끊으려면 네 번의 웨이브가 필요합니다. 휴대폰의 하위 계층은 TCP/IP 프로토콜을 구현하므로 휴대폰에서 네트워킹 기능을 사용할 수 있습니다. 휴대폰 단말기를 사용하면 무선 네트워크를 통해 서버와 TCP 연결을 설정할 수 있습니다. TCP 프로토콜은 상위 계층 네트워크에 대한 인터페이스를 제공할 수 있으므로 상위 계층 네트워크 데이터의 전송이 "차별화되지 않은" 네트워크에서 설정됩니다.
Tcp는 연결을 설정하기 위해 세 번의 핸드셰이크가 필요합니다.
그림 1: Tcp 연결 3방향 핸드셰이크 다이어그램
그림에 표시된 대로:
서버와 TCP 연결을 설정하려면 클라이언트는 먼저 syn J를 보냅니다. 이 신호를 받은 후 클라이언트는 ACK J+1 신호로 응답하고 추가 syn K 신호를 추가합니다. 클라이언트는 ACK J+1 신호를 받은 후 서버가 내 메시지를 받을 수 있음을 알게 됩니다. 나중에 I 클라이언트는 내가 보낸 데이터를 서버가 수신하지 못할까 봐 걱정하지 않고 안전하게 데이터를 서버로 보낼 수 있습니다.
클라이언트는 서버에서 보낸 SYN K 신호를 받은 후 ACK K+1 신호도 서버에 다시 보내야 합니다. 이런 방식으로 서버가 이 신호를 받으면 클라이언트가 보낸 신호를 알게 됩니다. 귀하의 서버는 귀하의 것입니다. 클라이언트가 이를 수신할 수 있으므로 귀하의 클라이언트가 자신이 보낸 데이터를 수신할 수 없다는 걱정 없이 내 서버가 귀하의 클라이언트에 안전하게 데이터를 보낼 수 있습니다.
사실 위의 설명을 보면 알 수 있습니다.
연결 설정은 TCP 연결 끊기와 마찬가지로 4단계로 수행할 수 있습니다. 이는 서버의 응답 신호인 ACK와 클라이언트의 인증 요청 신호인 SYNC를 한 단계로 결합한 것뿐입니다. 다 쓴.
TCP 연결이 끊어지면 4개의 웨이브가 필요합니다.
그림 2: TCP 연결이 끊어졌을 때 4개의 웨이브의 도식
클라이언트가 서버로부터 응답 신호 ACK M+1을 받은 후 클라이언트는 알고 있습니다: 서버 이제 내 클라이언트가 더 이상 데이터 패킷을 서버로 보내지 않는다는 것을 알았으므로 모니터링을 중지할 수 있습니다.
그러나 이때는 클라이언트->서버의 단방향 흐름만 중지되고 반대방향의 흐름은 멈췄습니다.
서버->클라이언트는 서버가 클라이언트 Wave에 FIN N을 보낼 때까지 계속해서 정상적으로 데이터를 보낼 수 있습니다. 신호를 받으면 클라이언트는 ACK N+1 신호로 서버에 응답하고 서버는 다음을 알고 있습니다. 클라이언트는 내 서버가 더 이상 클라이언트에 데이터 패킷을 보내지 않을 것임을 알고 있으므로 모니터링을 중지할 수 있습니다.
이 시점에서 클라이언트->서버의 단방향 흐름과 서버->클라이언트의 단방향 흐름이 양방향으로 중지되어 연결이 종료될 수 있습니다.
두 개: 소켓
두 프로세스가 통신해야 하는 경우 가장 기본적인 전제는 프로세스를 고유하게 식별할 수 있다는 것을 알고 있습니다. 로컬 프로세스 통신에서는 PID를 사용하여 프로세스를 고유하게 식별할 수 있지만 PID는 다음과 같습니다. 로컬 고유에만 존재하므로 네트워크의 두 프로세스 간에 PID 충돌 가능성이 매우 높습니다. 이때 IP 계층의 IP 주소가 호스트를 고유하게 식별할 수 있다는 것을 알고 있습니다. TCP 계층 프로토콜과 포트 번호는 프로세스를 고유하게 식별할 수 있으므로 IP 주소 + 프로토콜 + 포트 번호를 사용하여 네트워크에서 프로세스를 고유하게 식별할 수 있습니다.
네트워크에서 프로세스를 고유하게 식별할 수 있게 되면 소켓을 사용하여 통신할 수 있습니다.
우리는 종종 소켓을 소켓으로 번역합니다. 소켓은 애플리케이션 계층과 전송 계층 사이의 추상화 계층으로, 애플리케이션 계층이 구현된 프로세스를 호출할 수 있도록 TCP/IP 계층의 복잡한 작업을 여러 가지 간단한 인터페이스로 추상화합니다. 네트워크.
그림 5: 소켓 통신 시스템 모듈의 구성도
소켓 통신을 사용하는 TCP 서버와 TCP 클라이언트의 프로세스는 다음과 같습니다.
사진에서 보시다시피 소켓 연결이 오래도록 연결을 유지할 수 있습니다.
그림 6: 기본 소켓 클라이언트/서버 통신 프로세스의 개략도
소켓 연결은 클라이언트나 서버에 의해 능동적으로 닫힐 수 있습니다.
관련 지식이 더 궁금하시다면 FAQ 칼럼을 방문해 주세요!
위 내용은 소켓 통신과 TCP 통신의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

Dreamweaver Mac版
시각적 웹 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!