TCP 연결 설정 및 해제

       데이터 전송 바이트 스트림을위한 연결 지향, 종단 간 신뢰성 전이중 통신 프로토콜에 주 전송 계층 프로토콜의 하나로서 TCP 프로토콜.

 

1, TCP 세그먼트

인터뷰 TCP 바이트 스트림이지만, 그러나 TCP 데이터 유닛 세그먼트를 송신한다. TCP 헤더와 데이터 부분으로 TCP 세그먼트는 TCP 헤더 세그먼트의 처음 20 바이트를 고정, 4N 바이트 옵션은 40 바이트의 최대 요구하며 더 증가 하였다

 

  • 소스 및 대상 포트가 각각 두 바이트를 차지, TCP 포트를 통해 실현 하위 기능입니다.
  • 4 바이트는 범위 [0,2에서 32 ] 상기 TCP가 각 바이트는 순차적으로 넘버링되며, 바이트 스트림 지향한다. 예를 들어, 세그먼트는 시퀀스 번호 필드 (201)는 데이터 길이를 운반 한 후 첫 번째 데이터는 일련 번호 (201), (300)이 마지막 하나이고, 100이다. , 0에서 최대 범위는 시작합니다.
  • 승인 번호 4 바이트는 것이 바람직 인터페이스는 시퀀스 번호의 첫 번째 바이트의 다음 세그먼트를 수신한다. 승인 번호 = N은, 모든 데이터 개수 전에 N이 정확하게 수신되었음을 의미합니다.
  • 데이터를 오프셋 , 세그먼트가 거리에서 위치를 시작하는 세그먼트의 데이터 부분의 시작 위치를 나타내는 4 개 비트를. 간접적으로 헤더의 길이를 나타냅니다.
  • 예약은 현재 0, 사용을 위해 예약, (6)를 차지했다.
  • URG (긴급) = URG. 1, 긴급 포인터 필드는 유효한 데이터 패킷 세그먼트 긴급 가능한 한 빨리 송신하는 것을 나타낸다.
  • ACK ( 긍정 응답) ACK = 1, 승인 번호가 유효가 연결이 설정되는 경우에만, 모든 세그먼트는 ACK이다.
  • PSH ( 푸시) 수신자받은 PSH = 세그먼트 1은 응용 프로그램이 다시 전달 채우기 전체 캐시를 기다리지 않고, 일반받을 최대한 빨리 배달됩니다. 적은 실제 사용.
  • RST는 ( 재설정) RST = 1이 심각한 오류를 나타내는 연결해야하는 경우 다시 링크, TCP 연결에서 발생합니다.
  • SYN ( 동기화) 의 직렬 접속을 동기화하는 데 사용이 확립된다. SYN = 1, ACK = 0, 접속 요청 세그먼트임을 나타내는 경우. SYN = 1, ACK = 1은 다른 연결의 동의를 나타낸다. TCP는 연결을 설정하는 데 사용됩니다.
  • 지느러미 ( 종료) 커넥터 창을 해제. FIN = 1 세그먼트의 전송자가 데이터를 전송하지 않는 것을 나타내는 것은 일방향 접속의 해제를 요청하면. TCP는 사용을 분리.
  • 윈도우 2 바이트는 사이드 윈도우를 수신하는 자신의 송신 윈도우 값이 서로 전송되는 데이터의 양을 알 수 있도록하기 위해 사용된다 나타낸다.
  • 체크섬은 2 바이트 필드 테스트 및 검사는, 헤더 및 데이터 부분을 포함한다.
  • 정확한 비상 URG = 1, 긴급 포인터 신문 긴급 데이터 세그먼트의 바이트 수 (비상 일반적인 바이트 이후의 바이트 수)를 나타내고, 2 바이트를 점유한다.
  • 옵션 40 바이트 가변 길이까지. 예 최대 세그먼트 크기 MSS. MSS는 TCP 세그먼트가 아닌 전체 길이의 데이터 부분의 길이를 말한다 디폴트는 536 바이트 MSS이다. 창, 타임 스탬프 옵션을 확장합니다.

 

2, TCP 연결이 설정되어 - 세 방향 핸드 셰이크를

 

첫째, 클라이언트는 서버, SYN = 1, 서열의 = (X)에 접속 요구 패킷을 전송한다. YSN_END 후 상태로 전송되었습니다.

둘째, 서버가 메시지를 수신 한 결과, 확인 응답 메시지를 다시 송신 상기 ACK = 1, ACK = X + 1로 인해 메시지가 SYN = 서열 = Y (1 개)의 정보를 가지고 있으므로, 클라이언트 확인의 필요성. SYN_RCVD 상태를 입력 한 후 전송합니다.

셋째, 클라이언트가 메일을 수신하고, 그 수신 확인 패킷 ACK = 1, ACK = Y + 1을 송신한다. 클라이언트를 보내는 ESTABLISHED 상태로 전환 된 후, 서버는 메시지를 수신 확립 상태로 들어간다. 이 연결이 설정됩니다.

 

3, TCP 연결 해제 - 네 흔들며

제 파장 : 클라이언트가 서버에 FIN = 1, X = 서열 패킷을 전송하고, 그 일측 폐쇄에 변속기가 연결되고, 데이터가 전송되지되어야했다. 전송, 클라이언트는 FIN_WAIT_1 상태가됩니다.

2 파동은 : 상기 서비스 요청 패킷을 수신 한 후 ACK = 1을 다시 전송하고, ACK = X + 1이 수신 확인 패킷 끊어진 확인. 서버 상태를 입력 CLOSE_WAIT. 클라이언트가 패킷을 수신하면 FIN_WAIT_2 상태로된다. 이 시점에서 서버로 데이터 연결 클라이언트 연결이 끊어졌습니다.

제 3의 물결은 :이 서비스는 FIN = 1, 서열 계약 고객의 = Y, 그는 클라이언트에게 데이터를 제공하지 않았다 보냅니다. LAST_ACK 송신 상태로 진입 한 후, 확인 응답 패킷을 클라이언트 대기.

네 번째 파형 : 클라이언트가 요청 된 패킷을 수신하고 그것을 재전송 할 패킷을 확인하는 것이 가능하고, 상기 패킷 수신 확인 서버의 ACK = 1, ACK = Y + 1을 송신하고, TIME_WAIT 상태로 들어간다. 서버가 응답 패킷을 수신 한 후, 폐쇄 상태를 입력 단부 연결 서비스 클라이언트가 끊어. 클라이언트는 일정 기간이 끝날 때까지 CLOSED 상태가됩니다.

 

추천

출처www.cnblogs.com/ysuwangqiang/p/11485554.html