Computer Science/Network

Network] TCP 상태 전이

TwinParadox 2016. 7. 21. 13:21
728x90

TCP 상태 전이



연결 단계 : 3-way HandShaking


1. TCP는 종단 host 간의 논리적 접속을 설정하기 위해 3-way HandShaking 사용


Client->Server : TCP SYN

Client->Server : TCP ACK

Server->Client : TCP SYN ACK


SYN : Synchornize Sequence Numbers

ACK : Acknowledgement



2. TCP 연결 과정을 상태 전이도 측면


#1 : Client는 Sserver에 접속 요청하는 SYN Packet을 보내고, Server의 응답을 기다리는 SYN_SENT 상태로 전이

#2 : Server는 SYN 요청을 수신하고 Client에게 요청을 수락하는 ACK와 SYN 플래그가 설정된 Packet을 전송하고, SYN_RECEIVED 상태로 전이

#3 : Client는 Server에게 ACK를 송신하고, ESTABLISHED 상태로 전이하며 Server는 Client가 보낸 ACK를 수신하고 ESTABLISHED 상태로 전이



3. ESTABLISHED 상태의 Client와 Server 간에 실질적 데이터 통신 진행





전송 단계


1. ACK 값을 전송 바이트 만큼 증가시킴

- Packet 전송 확인 및 데이터 손실여부 확인

- ACK 번호 = SEQ 번호 + 1

- SEQ 번호는 반드시 0이나 1에서 시작하는 게 아니며 랜덤임



2. SEQ 전송 시 타이머 작동

- SEQ에 대한 ACK 응답이 time-out 내에 이뤄지지 않으면, 데이터 재전송

728x90