Network_TCP 통신과정

TCP를 이용한 클라이언트 & 서버 연결 과정

클라이언트 & 서버 연결 과정

3Way Handshake

  1.  클라이언트가 서버에게 요청 패킷 전송
  2. 서버가 클라이언트의 요청을 받아들이는 패킷 전송
  3. 클라이언트는 이를 최종적으로 수락하는 패킷을 전송 Handshake

S, A의 전송값 결정 과정

  1. 첫 번째 S(Sequence) 값: 송신자가 랜덤한 값을 생성하여 전송.
  2. 두 번째 S(Sequence) 값: 수신자가 랜덤한 값을 생성하여 송신자에게 응답.
  3. 두 번째 A(Acknowledgment) 값: 송신자가 보낸 S 값에 +1을 더한 값으로 설정하여 응답.
  4. 세 번째 과정:
    • 송신자는 수신자로부터 받은 A 값을 새로운 S 값으로 설정.
    • A 값은 수신자가 보낸 S 값에 +1을 더하여 전송.

 

 

TCP를 이용한 데이터 송/수신 과정

 

1. 첫 번째 과정

  • S 값: 클라이언트와 웹 서버가 연결된 마지막 S 값을 생성.
  • A 값: 연결된 마지막 A 값을 생성.
  • 요청 데이터 크기(100)를 패킷에 페이로드 하여 전송

 

2. 두 번째 과정

  • S 값: 송신자가 보낸 A 값을 그대로 사용.
  • A 값: 수신자가 송신자의 S 값에 요청한 데이터 크기를 더해 생성하여 응답.
  • 응답 데이터 크기(500)를 패킷에 페이로드 하여 응답.

 

데이터 전송 종료

3. 세 번째 과정

  • S 값: 수신자가 응답한 A 값을 그대로 사용.
  • A 값: 송신자가 수신자의 S 값에 응답한 데이터 크기(500)를 더한 값을 생성하여 전송.

 

 

TCP 연결 상태의 변화

  • LISTEN 상태: 클라이언트의 요청을 항상 응답 할 수 있도록 열어놓은 상태
  • ESTABLISHED 상태: 클라이언트와 서버 연결이 서로 수립이 된 상태
  • SYN_SENT 상태: SYN를 보낸 상태
  • SYN_RCVD 상태: SYN를 받은 상태

 

3Hand-Shake로 보는 TCP 상태 전이도

 

 

'Network' 카테고리의 다른 글

Network_7계층 HTTP 프로토콜  (0) 2024.12.31
Network_NAT & 포트포워딩  (0) 2024.12.30
Network_4계층 프로토콜  (0) 2024.12.29
Network_라우팅 테이블  (0) 2024.12.29
Network_ICMP 프로토콜, IPv4 조각화  (0) 2024.12.29