[TCP / IP] 네트워크 프로그래밍 : 05TCP 원리 - 빠른 설명

TCP 간단한 분석과 토론이 문서에서는 주요 원칙.

는 I / O 버퍼의 TCP 소켓

전술 반드시 그것에 여기서 그 나머지 데이터를 최종 수신 한 시간이 일단에서 전송되는 데이터의 TCP 트래픽 데이터 경계선 특성되지 도입?

사실, 함수 호출 즉시 즉시 데이터를 수신하지 않는 읽기 함수 호출 후 데이터를 전송하지 않습니다 쓰기. 도시 아래 쓰기 함수 호출 순간, 이동하는 데이터 출력 버퍼 (적절한 허우 다른 입력 버퍼에 전달 될 때), 읽기 기능이 즉시 호출, 데이터 입력 버퍼로부터 판독된다.

 TCP는 I / O 버퍼 소켓

 TCP의 I / O 버퍼는 다음과 같은 특징이 있습니다 :

  • 각각의 TCP 소켓 I / O를 버퍼 존재
  • I / O 버퍼 생성 자동으로 생성 TCP 소켓
  • 전송 데이터가 기존의 버퍼 전송하는 경우에도 계속 소켓을 닫습니다
  • 버퍼에 입력 데이터를 폐기 할 소켓을 닫습니다

경우를 고려 수신단 입력 버퍼의 크기는 50 바이트이고, 출력측 버퍼 크기가 100 바이트 전송시 전송의 송신 측 일어나는 수신 측에 데이터의 100 바이트? 수신 측의 버퍼 오버플? TCP는 TCP의 프로토콜은 데이터 흐름 (흐름 제어), 제어하기 때문에 사실, 수신기가 제대로이 상황을 해결할 수있는 창을 슬라이딩 (미닫이 창) 메커니즘이 보장.

버퍼가 판독 될 데이터를 가지는 경우, 판독 함수의 복귀 타이밍은 수신되어 기록 된 함수 호출 및 데이터 판독 다룬, 기록 타이밍의 함수 호출은 출력 버퍼에 송신 측의 데이터로 복귀된다 (블록 모드).

 내부 TCP는 1 일 : 소켓이 서로 연결

 전반적으로, TCP 소켓은 다음과 같은 경험을 처리하기 위해 생성에서 사라 :

  • 다른 소켓과의 연결을 설정하려면
  • 다른 소켓 데이터 교환
  • 서로 소켓 연결을 분리

아래 그림과 같이 프로세스 프로세스는 소위 세 방향 핸드 셰이크 (3 방향 핸드 쉐이킹) 메커니즘, TCP 소켓에 연결을 설정합니다.

 TCP 소켓 연결 과정

[SYN] SEQ : 1000, ACK : -

제 1 접속 요청 메세지 필드 SYN (동기화), 즉 동기 메시지 송신을 이용하여 송신 전에 데이터를 수신 세웠다. SEQ 값 (1000)은 ACK 필드가 비어있는 패킷의 수를 나타낸다.

[SYN ACK +] SEQ : 2000, 1001 ACK

ACK는 필드의 끝에 피드백 값 (1001), 수신 된 메시지 번호 (1000)의 단부를 나타내고있다.

이성의 방법 및 확인 패킷 번호, 당신은 즉시 볼 수 있으며 재전송은 신뢰성있는 TCP 메시지 인 데이터 손실의 경우, 패킷을 잃었다.

호스트 최종 토론 ACK 메시지의 세 방향 핸드 셰이크, 무슨 일 경우 패킷 손실에 대해?

최종 ACK 메시지가 손실되는 경우, 서버 (호스트 B)가 SYN + ACK 메시지를 재전송하지 않고, 대신에 폐쇄 상태로 직송 RST 패킷들은 목적 SYN 범람 공격을 방지하는 것이다 다른 고려 제 클라이언트 만약 오랜 시간 동안 네트워크 혼잡에 의한 SYN 메시지 끝의 호스트 서버에 도착하고, 오랜 시간이 서버와의 연결을 설정하는 클라이언트 인해 아니고 소켓이 닫혀 따라서 응답 ACK 메시지와를받을 수없는이 시간에 서버, 필요가 SYN + ACK 메시지를 재전송합니다.

TCP (2)의 내부 동작 : 다른 호스트와의 데이터 교환

아래와 같이 양측 유효한 접속을 확립 할 세 방향 핸드 셰이크 후, 데이터 교환의 처리 하였다.

 TCP 소켓 데이터 교환 과정

SEQ 값 + + 1 송신 바이트 수 : 세 방향 핸드 쉐이크 메시지 필드와 같은 통신 방법보다도, ACK 메시지 필드 값에 의해 산출되는 것을 주목하여야한다. 플러스 1 메시지에 전송되는 서로 통지하기 전에 수신 한 상기 나머지 데이터는 다음에 전송 될 수있다. 패킷이 발생하면 어떻게 손실 될 것인가?

 TCP 소켓 데이터 전송 오류 처리

그림 절차, 데이터 패킷의 재전송을 완료하기 위해, TCP 소켓은 ACK 응답을 기다리는 타이머를 시작합니다. 대응하는 타이머의 타임 아웃이 발생한 경우 (타임 아웃) 재전송된다.

분리 및 소켓 연결 : TCP 3의 내부 동작

프로세스의 TCP 소켓 끝은 매우 우아하다. 직접 데이터 오프 상대방이 전송 될 경우 양측이 끊어 때 협상 할 필요가 있으므로에도 문제가있을 것입니다. 프로세스는, 아래, 즉 네 개의 파 (4 방향 핸드 쉐이크) 프로세스를 나타낸다.

 TCP 소켓 분리 공정

필드를 운반하는 FIN 패킷은 FIN 메시지를 전송 한 후 분리로 분리한다, 각 당사자를 나타냅니다.

추천

출처www.cnblogs.com/Glory-D/p/12075652.html