TCP 프로토콜은 연결의 릴리스와의 연결을 설정

TCP 프로토콜은 연결의 릴리스와의 연결을 설정

TCP의 프로토콜은 전송 데이터에 대한 연결 지향 프로토콜입니다, 당신은 연결, 데이터를 전송, 연결이 세 단계에서 해제를 설정해야합니다. 어느 연결을 설정하는 세 방향 핸드 셰이크를 필요로하며, 연결, 원칙으로 다음 4 개의 방향 핸드 셰이크를 해제해야합니다 :

연결을 설정하려면 :

먼저, 서버 측 생성, 서비스를 엽니 다 TCB에 다음 서버를 입력 (전송 제어 모듈) LISTEN 클라이언트 연결을 기다리는 상태.

또한 클라이언트 설정하며 TCB의를 다음 서버에 요청을 보낸다 . SYN = 1 , SEQ = W는, 다음 입력 SYN-SEND의 응답을 기다리는 상태.

서버가 요청을 수신 한 후 전송한다 : . SYN = 1 , . 상기 ACK = 1 , ACK = W. + 1, SEQ = U는 다음 입력 SYN-REVD의 상태.

송신을 수신 한 후에 : 상기 ACK = 1. , = ACK SEQ = 1 + W, U + 1.. 내로 설립 단계.

서버가 수신 한 후, 입력 설립 단계, TCP의 연결이 정식으로 설립했다.

세 방향 핸드 셰이크 이유

경우 A는 전송 B의 데이터 그램 방식 지연, 재전송, B , 두 번째를 받기로 부드럽게 연결을 설정합니다. AB 데이터 자료 접속의 송신을 완료 한 후, 다음 B가 있다는 제 수신 다음 두 커넥터 있으면되고, 이것에 응답도 및 접속 B가 갖는다 연결이 , 이 기간 B는 등 갖는다 전송 데이터, 자원의 소비. 그것은 세 방향 핸드 셰이크해야합니다.

연결 해제

클라이언트 요청은 접속 해제 요청을 송신한다 : FIN = 1. , SEQ = W는, 다음 입력 FIN-WAIT-1 단계.

서버 :( 전송 요청을 수신하는 . 1 ) 상기 ACK. = 1, W = + ACK. 1, SEQ = U, CLOSE-WAIT의 스테이지. 서버가 여전히 데이터를 전송하기 위해 필요한 경우이 때, 그것은 계속 전송합니다. 데이터가 전송되지 않을 때까지, 클라이언트에 전송 :( 2 ) FIN을 =한다. (1) 상기 ACK. = 1, W = + ACK. 1, SEQ = Y, LAST-ACK의 스테이지.

클라이언트는 (수신 1 ,)이 입사 FIN-WAIT-2 스테이지 (수신 2 서버로 전송) 상기 ACK = 1 , ACK = Y + 1, SEQ 1 = W +, TIME-WAIT의 단계, 클라이언트 두 기다려 MSL (최대 세그먼트 수명) 가까이 연결.

서버가 수신 한 후, 상기 접속을 닫는다.

TIME-WAIT의 역할

1. 경우 B가 수신되지 않는 마지막 송신 확인 요청을 상기 B는 다시 보낼 FIN , 2MSL의 수신 시간 B의 재전송을 (A)는 다음 따라서 방지 확인할 수 B가 이 서버 아무런 응답을 수신하지 않으면 끝이 제대로 입력 할 수 없습니다 CLOSED을.

2. 에서 2MSL은 현재 패킷과 관련된 모든 네트워크 연결에 문제는 세그먼트 접속 요청을 방지하는 데 실패했다 소비된다.

연결 유지 타이머

클라이언트 상태를 기록하기위한 서버 측 연결 유지 타이머는 그렇게 헛되이 기다리고 피하기 위해 같은 때마다 클라이언트 2 시간 이상이 새를받지 못한 경우, 일반적으로 서버를 두 시간 업데이트됩니다 연결 유지 타이머의 메시지를 수신있다 클라이언트의 상태를 검출하는 프로브 패킷을 전송합니다.

 

 

게시 47 개 원래 기사 · 원 찬양 8 ·은 30000 +를 볼

추천

출처blog.csdn.net/nanchengyu/article/details/53365996