CLOUD/Network
연결지향형 TCP 프로토콜
alsruds
2023. 2. 1. 15:29
[ TCP Protocol ]
● TCP 가 하는 일
》 프로세스 간 통신
》 안정적, 순차적
》 UDP 보다 안전하지만 느림
● TCP Protocol 의 구조
- 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
- 클라이언트 -> 서버 : 요청 패킷 (Flag : SYN)
- 서버 -> 클라이언트 : 요청 수락 + 요청 패킷 (Flag : SYN + ACK)
- 클라이언트 -> 서버 : 요청 수락 패킷 (Flag : 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 창에서 다른 컴퓨터와 통신 상태 확인
3. Wireshark 로 돌아와 TCP Protocol 을 사용했던 패킷만을 캡쳐
4. SYN -> SYN + ACK -> ACK 순의 패킷 확인