handshake란
3-way-handshake
TCP를 이용하여 통신을 할 때 프로세스와 프로세스를 연결하기 위해 가장 먼저 수행되는 과정
(클라이언트 : ESTABLISHED 상태)
(서버 : ESTABLISHED 상태)
연결 이후(ESTABLISHED상태) SYN/ACK 값의 규칙
- 보낸 쪽에서 또 보낼 떈 SEQ 번호와 ACK 번호가 그대로임
- 받은 쪽에서 SEQ번호는 받은 ACK 번호가 그대로 됨
- 받는 쪽에서 ACK 번호는 받은 SEQ 번호 + 데이터의 크기임
2-way-handshake는 안 되는 이유
- TCP는 양방향성 connection임
- 클라이언트가 연결 요청을 보내면, 서버는 클라이언트의 요청에 대한 대답과 함께 자신도 연결하겠다는 요청을 보내야며, 이에 대한 대답도 들어야 하기 때문에 3-wat-handshake가 필요함
4-way-handshake
FIN
플래그를 전송FIN
플래그를 전송