네트워크 _ 전송 계층 TCP, UDP 프로토콜

1. TCP 및 UDP 프로토콜

TCP/IP协议族的传输层协议

TCP(Transmission Control Protocol)传输控制协议

UDP(User Datagram Protocol)用户数据报协议
  • TCP 프로토콜 : 전송 제어 프로토콜, 안정적이고 안정적인 전송

  • TCP는 연결 지향적이고 신뢰할 수있는 프로세스 간 통신 프로토콜입니다. TCP는 전이중 서비스를 제공합니다. 즉, 데이터를 동시에 양방향으로 전송할 수 있습니다. 각 TCP에는 임시로 전송 버퍼와 수신 버퍼가 있습니다. 저장 데이터.

  • UDP 프로토콜 : 사용자 데이터 그램 프로토콜, 더 높은 전송 효율성

  • UDP 프로토콜은 연결이없고 신뢰할 수있는 전송 계층 프로토콜입니다. 송신자는 송신 된 데이터가 대상 호스트에 도착했는지, 데이터가 잘못되었는지 등은 신경 쓰지 않습니다. 데이터를 수신 한 호스트는 데이터를 수신했는지 여부를 송신자에게 알리지 않으며 상위 계층 프로토콜에 의해 신뢰성이 보장됩니다. 데이터를 더 빠르고 효율적으로 전송합니다.

연결 지향 네트워크 프로토콜은 통신하기 전에 통신 당사자 간의 연결을 설정하는 것을 말합니다. 예를 들어, 전화를 걸 때 두 당사자는 통화하기 전에 연결을 설정해야합니다.

비 연결형 네트워크 프로토콜은 통신 당사자가 사전에 통신 회선을 설정할 필요없이 목적지 주소가있는 각 패킷을 네트워크 회선으로 전송하고 시스템이 독립적으로 전송 경로를 선택 함을 의미합니다. 예를 들어, qq, WeChat은 정보를 보냅니다.

2. TCP 패킷

TCP将若干个字节构成一个分组,叫报文段
TCP报文段封装在IP数据报中 10部分

여기에 사진 설명 삽입

  • 소스 포트 번호 : 발신자 프로세스에 해당하는 포트 번호입니다.
  • 대상 포트 번호 : 수신 측 프로세스의 포트 번호에 해당합니다.
  • 시퀀스 번호 : 발신자는 수신자의 올바른 재 조립을 용이하게하기 위해 각 바이트에 번호를 매 깁니다.
  • 확인 번호 : 발신자 정보를 확인하는 데 사용됩니다. 이는 송신자에게 시퀀스 번호 이전의 데이터 세그먼트가 수신되었음을 알리는 데 사용되며 확인 번호가 N이면 처음 N-1 개의 데이터 세그먼트가 수신되었음을 의미합니다.
  • 헤더 길이 : TCP 헤더 데이터 구조의 바이트 길이를 결정하는 데 사용합니다. 정상적인 상황에서 TCP 헤더는 20 바이트이지만 헤더 길이는 최대 60 바이트까지 확장 할 수 있습니다.
  • 예약 됨 : 확장 비트로 현재 사용되지 않습니다.

제어 비트 :

URG 비상용 비트 비상 포인터와 함께 사용되는 비상 포인터 유효 비트
ACK 확인 비트 ACK = 1이면 확인 시퀀스 번호 필드가 유효하고 0이면 유효하지 않습니다.
PSH 긴급 플래그 비트가 1 인 경우 수신자는 가능한 한 빨리 데이터 세그먼트를 애플리케이션 계층으로 전송해야합니다.
RST 리셋 비트 RST 값이 1이면 TCP 연결을 다시 설정하라는 알림이 표시됩니다.
SYN 동기화 (연결) 비트 동기화 시퀀스 번호 비트, TCP가 연결을 설정해야 할 때이 값을 1로 설정합니다.
종료 오프 비트 TCP가 데이터 전송을 완료하고 연결을 해제해야하는 경우 연결 해제를 제안하는 당사자는이 값을 1로 설정합니다.
  • 창 크기 : 로컬에서 허용 할 수있는 데이터 세그먼트 수를 나타냅니다. 이 값의 크기는 가변적입니다. 네트워크가 차단 해제되면 수신 측에서이 창 값을 높이라는 메시지에 응답하여 전송 속도를 높입니다. 네트워크가 불안정 할 때이 값을 줄이면 네트워크 데이터의 안정적인 전송을 보장 할 수 있습니다. , TCP 제어의 트래픽은 창 크기를 변경하여 이루어집니다. 예를 들어 다운로드 속도는 처음에 몇 KB에서 몇 MB로 점차 증가합니다. 네트워크 속도를 제어하는 ​​데 사용됩니다.

  • 체크섬 : 오류 제어에 사용됩니다. 현장 검사의 범위에는 헤더와 데이터의 두 부분이 포함됩니다. 데이터 세그먼트는 전송 될 때와 목적지에 도달 할 때 확인되고 계산됩니다. 값이 일치하지 않으면 데이터가 손상된 것으로 간주하고 수신 측에서 데이터를 폐기합니다.

  • 비상 포인터 : URG와 함께 사용되며 URG = 1 일 때 유효합니다.

  • 옵션 : TCP 헤더에 최대 40 바이트의 선택적 정보가있을 수 있습니다. 예를 들어, 최대 세그먼트 길이 MSS (Maximum Segment Size). MSS는 상대방 TCP에게 알려줍니다. 내 버퍼가받을 수있는 메시지 세그먼트의 데이터 필드는 최대 MSS 바이트입니다.

3. 3 방향 핸드 셰이크 프로세스

여기에 사진 설명 삽입

  • PC1은 PC2와 연결을 설정하려고합니다. 먼저 SYN 메시지 (SYN = 1)를 보내 연결 설정을 요청합니다. PC1seq 시퀀스 번호 x

  • PC2는이를 수신 한 후 SYN 및 ACK 패킷 즉, (ACK = 1) 확인 및 (SYN = 1) 연결 설정 요청을 보냅니다 .PC2seq는 y, Ack = x + 1,이 Ack는 확인 번호입니다. , 이것은 PC1의 x가 Roger 였다는 것을 의미합니다.

  • PC1은 PC2의 연결 요청을 수신하고 확인 (ACK = 1)하고 seq = x + 1로 응답합니다. Ack = y + 1은 PC2의 y가 수신되었음을 의미합니다.

넷. 네 웨이브 프로세스

여기에 사진 설명 삽입

  • PC1은 PC2와의 연결을 끊으려고합니다. 먼저 (FIN = 1)을 보내 연결 끊기 및 (ACK = 1) 확인을 요청합니다.

  • PC2가 응답 (ACK = 1)하고 연결 해제에 동의합니다. 이것은 절반 연결이 끊어졌습니다. 이때 PC1은 더 이상 PC2에 연결할 수 없지만 PC2는 여전히 PC1에 데이터를 보낼 수 있습니다.

  • 그런 다음 PC2는 또한 PC1에서 연결을 끊고 (FIN = 1)을 보내고 확인 (ACK = 1)하려고합니다.

  • PC1 (ACK = 1)은 연결 해제를 확인합니다.

추천

출처blog.csdn.net/Wsxyi/article/details/113658534