이유는 세 방향 핸드 셰이크 TCP입니다

참고

왜 TCP 세 방향 핸드 셰이크가 아니라 두 개 또는 네 개의보다입니까?

1. TCP 세 방향 핸드 셰이크 과정

7547741-359a7c576806c253.png
의 image.png

그림은 세 방향 핸드 쉐이크 TCP 키, 확인 응답 시퀀스 번호를 전환 서열을 보여준다.

2. 왜하지 양방향 핸드 셰이크 수

클라이언트와 서버 때문에,의 반대편에 양측 의 일련 번호는 신뢰할 수있는 전송의 열쇠 것을 확인합니다.
다음과 같이 두 가지 방향 핸드 셰이크입니다 :

  1. A는, 동기 신호 SYN + A의 초기 시퀀스 번호를 송신
  2. B는 동기 신호 SYN + B의 초기 시퀀스 번호 + B ACK의 시퀀스 번호를 송신

동작의 두번째 단계가 완료되면, 우리는 수 B는 시리얼 번호 A를 갖도록 두번째 단계 만 성공하는 첫 번째 단계 이후에 수행되기 때문에. 그러나 그것의 일련 번호가 B 인 것을 보증하지 않는 , 송신 이후 제 2 단계가 실패 할 수있다.

7547741 - da608c79e5ec7cb0.png
이 두 방향 핸드 셰이크에 = 1 전송 SYN의 세부 사항을 표시하지 않음

우리가 가정으로 두 개의 핸드 셰이크가 완료되면, TCP에만 두 번째 핸드 셰이크, 다음 보조 핸드 셰이크가 완료 B 연결이 제 2 송신을 핸드 셰이크에 상관없이 설정하지 않음을 성공적으로 완료되었습니다 생각했다 .
제 2 전송 악수를 실패하면 다음, A는 일련 번호 B를받을 수 없습니다, B는 처음 몇 숫자 데이터 전송의 시작을 확인할 수 없습니다.
이 경우, 전송 된 데이터 B의 일부 일련 번호 20000와 함께 A를 (TCP 전이중 통신, 서버 B는 클라이언트 A에 메시지를 보낼 수있는 이니셔티브를 취할 수있다), 수신 된되었다 :
7547741-0fe00213b03c571a.png

이번에는 두 가지 선택의 당황에 직면 :

  1. 데이터 패킷이 유지 될 수있다. 그러나 모르는 회사 B의 시작 시퀀스 번호, 패킷 때, 순서를 ACK로 응답에 저장할 수?
  2. A可以回复ACK。ACK的含义表示它的序号之前的字节数据都已收到,可是A连B的起始序列号都不知道:起始序列号可能是100,也可以是1000,A根本无法确定还缺哪些序号的字节,也就更不敢回复ACK了。

所以,不管哪个选择,都是不妥当的。这正是因为A没有确认B的序列号。
而在tcp中,通过三次握手,和丢包的处理机制,A和B都会确定自己的序列号被对方接收。

3. tcp对三次握手中丢包的处理

照搬自TCP 为什么是三次握手,而不是两次或四次?
tcp除了采用三次握手,还要对丢包意外进行适当的处置,以保证A、B双方序列号的传输和确认。

  1. 如果第一个包,即A发给B的SYN 中途被丢,没有到达B
    A会周期性超时重传,直到收到B的确认
  2. 如果第二个包,即B发给A的SYN +ACK 中途被丢,没有到达A
    B会周期性超时重传,直到收到A的确认
  3. 세 번째 패킷, 즉 ACK A가 중간에 B를 손실 보낼 경우, B는 도달하지 않는
    A는 TCP가 TCP와 B가 명확하게 활성 상태에 있음을 일방적으로 ACK, 인정 된 상태를 완료 :
    . 좋은 예가 것으로 가정하지도 않습니다 이 A, B, TCP 접속을 수신 한 후에 수신 확인 될 때까지 데이터 전송, 재전송 타임 아웃 B는 주기적으로
    도 성립 상태 양방향 계약을 할 수있다.
    B. 증례 데이터가 전송되는 것으로 가정하고, B + 데이터가 ACK의 수신을 자연 상태가 설정으로 전환하고 A 허용되는
    데이터 (ACK 방식 보내기 테이프 데이터 상태).
    C. B는 그것의 확인이가 확인을받지 않았다 (데이터를 보낼 수있는 수신 할 때까지, 접속이 확립되지 않고,주기 재송신 타임 아웃 SYN + ACK를 가질 것이며, 데이터 전송, 데이터 전송을 가정 여부, 그 데이터를 전송할 수 없다 ).

이러한 방식으로, 운반기구의 손실과 함께 TCP 세 방향 핸드 셰이크는 것을 보장 일련 번호의 양쪽에 응답 A, B. 그것은 신뢰할 수있는 전송을위한 기반을 구축 할 것이다.

4. 핸드 셰이크 수없는 이유

결합 십자 악수 두 번째 및 세 번째 단계는 세 방향 핸드 셰이크이다. 효율을 높이기 위해서는, 두 번째와 세 번째 단계의 합병된다.

추천

출처blog.csdn.net/weixin_33694620/article/details/90976677