1. 연결상태를 어떻게 체크하는가?
- 일단, 소켓통신에는 크게 TCP 방식과 UDP 방식이 있습니다. TCP 방식과 UDP 방식의 가장 큰
차이점은 TCP는 \'연결\'을 한다는 것이고, UDP는 \'연결\'을 하지 않는다는 것입니다.
따라서, 연결상태를 체크한다는 것은 당연히 TCP 방식을 사용할 경우의 이야기이겠지요.
그렇다면, TCP 방식으로 소켓통신을 할 때 \'연결상태\'를 어떻게 체크할까요?
바로 \'3-Way Handshaking\' 기법을 사용합니다. 3-Way Handshaking이 무엇이냐면,
두 PC는 통신을 하기 전에 서로 \'통신 시작한다\'라는 신호를 주고 받는데, 이것이 3단계로
이루어집니다.

1단계: A PC에서 B PC로 SYN 패킷을 보낸다.(나 너랑 통신할래~)
2단계: B PC가 이 SYN 패킷을 받아서 A PC에게 ACK 패킷을 보낸다.(알았어 통신하자~)
3단계: A PC가 이 ACK 패킷을 받아서 다시 B PC에게 ACK 패킷을 보낸다.(그래 이제 간다~)

이 3단계가 완료되면 \'연결상태\'가 되며, 연결이 끊어지기 전까지는 쭈욱 연결상태가 유지됩니다.
연결이 끊어지는 경우는 2가지가 있는데, 하나는 통신을 완료한 후 연결을 종료하는 것이고,
다른 하나는 임의의 장애(?)가 발생하여 강제로 종료되는 것입니다.
통신 완료 후 연결 종료는 연결을 종료하려는 PC가 상대 PC에게 FIN 패킷을 보냄으로써 이루어집니다.
그러나, 장애로 인하여 연결이 종료되는 경우도 있는데, 이 경우 한 PC가 일정 시간 이상 다른 PC의
신호에 응답하지 않으면 연결이 강제로 종료됩니다. 그리고 이때 사용되는 신호란 특별한 것이 아니라,
서로 데이터를 주고 받다가 일정 시간 이상 데이터가 안오면 데이터를 못받은 PC가 \

Posted by 창신다이
BLOG main image
오랫동안 꿈을 그리는 사람은 마침내 그 꿈을 닮아 간다. -앙드레 말로- by 창신다이

공지사항

카테고리

분류 전체보기 (248)
공장이야기 (115)
Education (30)
회사이야기 (19)
일상 (73)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :