CLOUD/Network

연결지향형 TCP 프로토콜

alsruds 2023. 2. 1. 15:29

[ TCP Protocol ]

● TCP 가 하는 일

》 프로세스 간 통신

》 안정적, 순차적

》 UDP 보다 안전하지만 느림

 

TCP Protocol 의 구조

Created by Troy Jessup - http://troyjessup.com

  • Offset : TCP header length (4로 나눈 값)
  • Reserved : 사용 안 함
  • TCP Flags
    • C (Congestion Window Reduced)
    • E (ECN-Echo)
    • U (Urgent) : 긴급 bit, 우선순위 높여줌
    • A (Acknowledgement) : 승인 bit, 대답
    • P (Push) : 밀어넣기 bit
    • R (Reset) : 초기화 bit
    • S (Syn) : 동기화 bit, 요청
    • F (Fin) : 종료 bit, 연결 끊기

 

[ TCP 를 이용한 통신과정 ]

● 연결 수립 과정

TCP 3 Way Handshake 

  1. 클라이언트 -> 서버 : 요청 패킷     (Flag : SYN)
  2. 서버 -> 클라이언트 : 요청 수락 + 요청 패킷     (Flag : SYN + ACK)
  3. 클라이언트 -> 서버 : 요청 수락 패킷     (Flag : ACK)

 

● 데이터 송수신 과정

S : Seq 번호     A : Ack 번호

  • 수신자의 SEQ 번호 = 받은 ACK 번호
  • 수신자의 ACK 번호 = 받은 SEQ 번호 + 데이터 크기
  • 받은 패킷없이 보낸 측에서 또 보낼 때는 SEQ 번호와 ACK 번호 변동 없음

 

[ TCP 상태전이도 ]

  • (서버) - 점선
  • Passive Open : 수동으로 서버를 켜면 LISTEN 상태로 전환
  • 클라이언트가 연결 요청 (수신 : SYN)
  • SYN + ACK 송신 후 SYN_RCVD 상태로 전환
  • 클라이언트가 보낸 ACK 를 받으면 ESTABLISHED 상태로 전환

 

  • (클라이언트) - 실선
  • Active Open : 서버에 SYN 송신 후 SYN_SENT 상태로 전환
  • 서버가 보낸 SYN + ACK 를 받으면 ESTABLISHED 상태로 전환

 


 

[ 실습 ]

♬ Wireshark 실행 ♬

》 TCP 3 Way Handshake 과정 계산해보기

 

1. Wireshark 실행

2. cmd 창에서 다른 컴퓨터와 통신 상태 확인

ping 명령어 사용!

3. Wireshark 로 돌아와  TCP Protocol 을 사용했던 패킷만을 캡쳐

TCP Protocol 위에서 우클릭 -> Follow -> TCP Stream

4. SYN -> SYN + ACK -> ACK 순의 패킷 확인

TCP 3 Way Handshake 확인!