2010년 4월 28일 수요일

TCP 3 Way 핸드쉐이크의 사랑이란?...

오늘은 TCP 3 Way HandShake 의 과정을 이용하여 '사랑' 을 표현한 재미있는 만화 하나를 소개하고자 한다.

TCP가 UDP 와 다른점이 신뢰성 이다. UDP 는 패킷을 보내고 이것이 제대로 전달되었는지 확인하지 않는다.
그런데, TCP 는 3 Way 핸드쉐이크라는 과정을 거친다. UDP 보다 좀더 신뢰성이 있는 통신을 하는 것이다. 아래 이미지를 보면 SYN 을 보내고 SYN+ACK 를 받고 ACK 를 보내면서 통신 연결이 이뤄진다.

이미지출처 : www.tcpipguide.com


이러한 과정을 이용해 '사랑'을 표현한 것으로 한번 살펴보자. 남자가 SYN 을 보내고 여자는 이에 대한
대답으로 SYN-ACK 를 보낸다. 남자는 다시 ACK 를 보내고 환호한다. 데이트하기 위한 첫 과정은
성공했다 생각했을 것이다. 기뻐하는 것도 잠시, 여자가 RST 를 보내 단호히 거절한다. 그 후 남성의 표정은
확 바뀐다. 마지막 문구를 보면 TCP 를 비록 사용한다고 하더라도 사랑은 신뢰될 수 없단다.

이 그림을 보고 얼마나 웃음이 나오던지. TCP를 이해하고 있는 사람이라면 왜 웃음이 나오는지
금방 이해가 될 것이다.  ^.^
Love can be unreliable, even when you use TCP

댓글 3개:

  1. 궁금한 점이 하나 있는데요.



    TCP 통신에서



    Flow control 에서의 stop and wait 나 Sliding widdow 라던가.



    Fast Recovery에서 Tahoe, Reno, New Reno, Sack 과 같은 것들이 있는데..



    RFC에 다들 나와 있는거 같은데 이러한 방법들중 꼭 어느것을 써야 하나요? 송신측에서 자신이 원하는 대로 보내면 되는건가요? 어느 방법을 꼭 써야 한다는 규약이 되어 있는 건가요? RFC는 강제성이 있는건가요??

    답글삭제
  2. @홍홍 - 2010/05/03 21:07
    이러한 TCP Congestion Control 알고리즘은 운영체제 내에서 TCP 스택상 구현되어 있습니다. RFC 2581 을 참고해 보세요. 예를 들어, 윈도우 같은 경우라면 이런 TCP Retransmission 관련한 내용을 TCPIP 파라미터 상에서 조정이 가능합니다. (참고/ Windows TCP Retransmission Behavior : http://msdn.microsoft.com/en-us/library/ms819737.aspx) 그리고 RFC 규약이 지켜져야지만 정확한 통신이 될 수 있습니다. 예를들어, HTTP 프로토콜에서 클라이언트는 HTTP 표준에 맞춰서 요청하는데, HTTP 를 구현한 서버에서 응답을 줄때 규약을 지키지 않는다면 제대로 된 HTTP 통신이 이뤄질 수 없을 것입니다.

    답글삭제