웹 ---- TCP 세 방향 핸드 셰이크

1, 우선 우리는 악수를해야하는 이유

먼저 우리는 TCP 세그먼트의 구조를 보면

하는 TCP 세그먼트의 창 필드 여기 (16) 부분은 교통 통제가 도입이 이유의 흐름을 제어 할 수있는 윈도우의 역할을 실현하는 것입니다? ? ? 이것은 다가올 : 속도 송신자보다 큰 경우, 데이터에 대한 액세스의 적용 속도 (인 혼잡하지 데이터 전송 프로세스를 가정)를 수신하는 데이터가 수신 측 왜곡 현상이 발생, 즉 데이터를 포함 보낸다 따라서, 송신 데이터는,이 16 비트 윈도우의 도입을 제어 할 필요가있다. 어떻게 도입? ?

송신자와 수신자가 버퍼 갖는다 (네트워크로부터 오는 데이터를 수신하는 경우, 그리고 애플리케이션에 제출), 수신기를 들어, 두 변수의 값을 유지해야 하나의 캐시 애플리케이션으로부터 판독되고 데이터 (아웃 표시), 다른 하나는 버퍼 안에 남아있는 공간 (로 - 아웃) Buffer- 인 후, 수신 측에서 (표시) 네트워크 데이터를 수신하는 버퍼의 버퍼의 수를 가정 = 창 (대표되는 의 수 - 아웃 응용 프로그램의 수는 다음 창을 쓸 수있는 창입니다), 즉, 캐시의 수는 창 수를 표시하는 데 사용할 수 있습니다 차지하는 공간의 총을 빼서 점령 읽어 보지 않았입니다 값, 보낸 사람이 값을 전달합니다 파티에 동의 내가 가능한 공간의 양을 나타냅니다.

송신자는 두 변수의 같은 값을 유지하기 위해, 동일한 캐시를해야합니다 하나는 이미 (전송) 전송되는 데이터의 수이며, 나머지는 확인 된 데이터의 수 (애크를)이며, 다음 보낼 - 이미 말한다 애크 덮어 쓰지 보냈지 만, 바꾸어 말하면, 데이터가 전송되고, 데이터의 개수를 확인되지 않았다 (이 더 잘 이해할 수 있지만 비트), 그 수신 버퍼 데이터하게, 데이터는 전송 이 수신기 창보다 작은 (전송 - <창 애크).

세 방향 핸드 셰이크에 대한 프로세스 짧게에서 :

첫째, 클라이언트는 TCP 짧은 메시지를 전송한다.

둘째, 서버는 응답 및 버퍼 변수의 설정을 송신한다.

셋째, 클라이언트는 회신 버퍼 변수의 설정을 송신한다.

참고 또한 세 방향 핸드 셰이크가 캐시를 설정하는 경우, 즉, A B와 통신 할 것인지, 둘 사이 좋은 계약은 다음 위의 이론에 따르면, 여기 버퍼의 설립 캐싱과 같은 몇 가지 매개 변수를해야합니다 목적은 데이터 (즉, 겹쳐 쓰기되는 데이터를 방지 할 수있다)의 신뢰할 수없는 전송을 방지하는 것입니다, 좋은 장소와 시간에 거래를 처음 할 때 데이터를 전송하기 전에, 즉 둘 사이에 어떤 계약을 할 수 있도록에서 거래를합니다.

따라서, 일반적으로 소위 링크는 메모리 및 기타 리소스를 할당하고, 신뢰할 수없는 전송을 방지하는 것입니다 그래서하지 오염에 대한 첫 번째 TCP 신뢰할 수있는 전송의 이름! ! !

2. 왜 내가 손을 세 번 흔들해야합니까

TCP 세 방향 핸드 셰이크는 스프레드가 연결된 호스트 다시 연결 만료 방지하기 위해 가장 중요하다. 두 경우에, 그런 일이 다음과 같습니다. 기밀 예는 기기 B에 접속되고, 기계 B에 도달하지 않은 어떤 이유로 인해 전송 된 접속 정보의 결과, 따라서 기기가 만들어 낸 있으며, B는 두 시스템을 연결하는 정보를 다시 보내도록 한 다음 그 결과를 수신하고, . 일 오프 돌파. 그 결과이 시간 이전에 갑자기 기계 B로 확산 도착하지 된 연결 정보는 다음 B 기계가 생각하는 A, 다음 A와 B 기계에 메시지를 보내도 과거에 패스 것들 시간 B 대기에서이 컴퓨터에. 2. 세 방향 핸드 셰이크 만 변경 두 핸드 셰이 킹을 필요로 교착 상태에 관계없이 컴퓨터 A와 B 사이의 통신이 발생할 가능성이, A가 B에 전송은 접속 요청 패킷을 수신 한 패킷 A, 및 확인 응답 패킷을 전송한다고 가정한다. 계약에 따라 두 사람은 A는 당신이 데이터 패킷을 전송하기 시작, 연결이 성공적으로 설립되었습니다 고려, 손을 흔들었다. 그러나 응답 패킷의 경우 B는 내가 권고의 어떤 종류의 일련 번호, B 및 그것의 자신의 연결 요청 패킷을 받았는지조차 의심을 모르는, 전송 손실, 그리고 A는 준비가되었는지 여부를 알 수 없습니다. 이 경우, B는 상기 접속 확인 응답 패킷을 대기에 의해 전송 된 데이터 패킷을 무시하고, 연결이 성공적으로 설정되어 있지 않은 고려한다. 이 교착 상태를 생성

 

하는 TCP의 서열

각 바이트는 바이트 스트림 TCP 전송 연결이 순차적으로 첫번째 바이트 번호는 임의로 로컬로 생성 된 번호가 매겨져

서열 실제로 데이터 세그먼트 번호의 첫 번째 바이트이다.

예를 들어, 패킷 (200) 동안, 및 (어떤이 있으면) 상기 데이터 번호 (300)에서 시작한다 분명 데이터 필드 (100), 그 다음 세그먼트의 총 수행하는 시퀀스 번호 필드 값;

길이 (100) [200, 300)! ! !

 

추천

출처www.cnblogs.com/yanxiaoge/p/11565944.html