작성
·
315
1
클라이언트가 서버에 요청을 보내기 위해서
APP계층에서 메세지를 작성 후 소켓라이브러리를 이용해서 3hand shake로 가상연결 후, tcp/ip계층에서 패킷을 생성해서 요청을 전송하는 것으로 이해했습니다.
궁금한 점은
1. 서버에서 요청을 받았을 때도 마찬가지로 클라이언트와 3 hand shake 를 하고 응답을 보내나요?
2. 서버에서는 3 hand shake를 하지 않는다면 어떻게 가상연결 상태인 것을 알 수 있나요?
3. 서버에서 가상연결 상태인 것을 알고있다면, http는 비연결성이 아닌 건가요?
감사합니다.
답변 1
1
안녕하세요. whsrpdla님
1. 서버에서 요청을 받았을 때도 마찬가지로 클라이언트와 3 hand shake 를 하고 응답을 보내나요?
-> 아닙니다. 3 hand shake는 클라이언트와 서버가 서로 연결을 맺는 과정이고 클라이언트와 서버 사이에서 한번 발생합니다.
2. 서버에서는 3 hand shake를 하지 않는다면 어떻게 가상연결 상태인 것을 알 수 있나요?
-> 3 hand shake를 하면 클라이언트와 서버 모두 서로 IP, PORT를 알고 있습니다.
3. 서버에서 가상연결 상태인 것을 알고있다면, http는 비연결성이 아닌 건가요?
-> HTTP는 TCP로 3 hand shake를 해서 연결을 맺고 그 다음에 클라이언트에서 서버로 데이터를 요청하고, 서버가 응답을 하고나서 연결을 끊게 됩니다. 연결을 계속 유지하지 않습니다. 요청, 응답후에 연결을 제거합니다.
감사합니다.
친절한 답변 정말 감사합니다 김영한님
2번 질문에 대한 추가 질문을 드리고 싶습니다.
2-1. 클라이언트와 서버가 서로 IP, PORT 를 알고 있다는 것이 메모리에 저장을 해둔다는 개념인가요? 조금 더 구체적으로 설명해주실 수 있을까요
감사합니다.