방학 불태우기 11

김민석·2021년 8월 4일
0

방학

목록 보기
11/16

TCP 3-way hand shaking

TCP는 연결 지향 프로토콜로, 프로토콜을 통해 연속적으로 패킷의 상태 정보를 확인하고 유지한다.

이런 이유로 데이터를 주고받기 위해서는 송,수신자간 연결을 맺어야 한다.

이렇게 송,수신자 사이에 연결을 맺는 과정을 3-way hand shking 이라고 한다.

그림과 같이 연결을 희망하는 쪽이 상대편에게 연결을 하고싶다는 의미인 SYN을 전송한다.

그리고 나서 수신자는 응답을 허락한다는 의미인 SYN과 잘 받았다는 의미인 ACK를 같이 보내준다.

마지막으로 송신자는 수신자의 응답을 잘 들었다는 의미로 ACK를 보내게 된다.

이렇게 연결이 구축되면 이 연결을 통해 데이터를 서로 주고 받을 수 있게 된다.

TCP 4-way hand shaking

4-way hand shaking이란 3-way hand shaking 방식과는 반대로 연결을 끊는 과정을 의미한다.

그림과 같이 연결을 끊고 싶다는 의미인 FIN을 수신자에게 보낸다.

그리고 나서 수신자는 요청을 잘 받았다는 의미인 ACK을 보낸다.

그 후, 수신자는 연결을 끊겠다는 의미인 FIN을 보낸다.

마지막으로 송신자는 응답을 잘 들었다는 의미로 ACK를 보낸다.

3-way 방식과 다르게 FIN과 ACK을 동시에 보내지 않는데, 그 이유는 수신자 측에서 송신자가 요청한 정보들을 아직 보내고 있는 상황일 수 있기 때문에 보내던 것들을 마저 보내고 다 보내면 연결을 끊겠다는 FIN을 보내는 것이다.

주로 송,수신 관계는 클라이언트와 서버의 관계로 표현할 수 있는데, 이 때 클라이언트는 주로 정보를 요청하고, 서버는 요청받은 정보를 제공한다. 따라서 서버에서 데이터를 제공하는 중에 FIN을 받고 바로 끊어버리면 요청받은 정보를 모두 전달할 수 없기에 하던 전달은 마저 하고 연결을 끊는 것이다.

참고 : https://sjlim5092.tistory.com/37?category=763426

더 알아보기

  • JSON.parse()
  • 순환참조
profile
김민석의 학습 정리 블로그

0개의 댓글