2016-06-22 2 views
-2

http에 지속적으로 "활성 상태 유지"타이머가 있습니다.HTTP가 TCP 연결에 어떤 영향을 미칩니 까?

연결 유지 시간이 끝나면 어떻게됩니까? tcp 연결이 닫힙니 까? 나는 그렇게 생각하지 않는다. 왜냐하면 거기에 존재하는 tcp 연결에 그 생명체가 남아 있기 때문이다.

"keep alive http timer"의 영향은 무엇입니까?

포트 80에서 url (TCP)에 대한 http 연결을 열면 포트는 TCP 연결이 종료 될 때까지 사용 가능하지 않습니다.

그래서 http를 계속 유지하면 어떻게됩니까?

나는 그것을 이해하려고 노력했다.

공식 소스를 얻으면 기쁠 것입니다.

감사합니다.

+0

의 후계자이다. TCP가 무슨 뜻인지 알지 못합니다. 연결은 언제든지 고의로 닫을 수 있습니다. TCP에 – usr

+0

@usr 살아 타이머를 유지있다 https://msdn.microsoft.com/en-us/library/windows/hardware/ff569970(v=vs.85).aspx RFC 1122 아무 얻는 경우 이 시간에 사용자로부터의 세그먼트는 tcp 연결이 끝날 것입니다 또 다른 시간 : if keep this 살아있는 타이머를 선천적으로 (1.0) 타이머가 종료됩니다 tcp 연결이 닫힙니다? 나는 이것에 공식적인 근원을 보는 행복 할 것이다 –

+0

양쪽이 아무것도 보내지 않는 것을 선택하는 경우에 TCP 연결은 영원히 산다. 유휴 TCP 연결은 영원히 살 수 있습니다. 타이머가 똑딱 거리지 않습니다. TCP에는 끊어진 연결을 감지하는 활성 유지 기능이 있지만 HTTP 시나리오에서이 기능을 사용하도록 선택하지 않는 것이 좋습니다. 따라서 TCP keepalive는 실제로 방정식을 입력하지 않습니다. 이것은 지정되지 않았습니다. 그러나 활성화 된 경우에도 연결을 종료 할 수만 있고 연결을 유지할 수는 없습니다. TCP keep alive를 사용하면 수명이 단축되고 연장되지 않습니다. – usr

답변

1

TCP 수준의 Keepalive가 대역 외에서 이루어 지므로 이와 관련된 스트림 데이터가 없습니다. 즉, 소켓을 사용하는 응용 프로그램은 TCP keepalive의 영향을받지 않으므로 유휴 연결은 http 서버 또는 프록시에 의해 여전히 닫힙니다.

또한 TCP keepalive를 보내는 간격은 일반적으로 기본적으로 매우 길습니다 (시간). Keepalive 소켓 옵션에 대한 자세한 정보는 here on MSDN

HTTP는 서버가 클라이언트에게 어떤 작업을 수행할지 묻는 시도를 허용하지 않으므로 클라이언트가 연결을 사용하지 않는 경우에만 닫을 수 있습니다 또는 열어 두십시오. 일반적으로 서버 또는 프록시의 구성 옵션입니다.

1

http에 지속적으로 "활성 상태 유지"타이머가 있습니다.

수정. TCP keepalive와 완전히 혼동하지 마십시오 (RFC 1122). 나는 당신이 당신의 텍스트에 따라 HTTP에 대해 이야기하고 있다고 가정하고있다.

살아있는 시간이 끝났을 때, 무슨 일이 일어 났습니까?

하나의 피어 또는 다른 피어가 연결을 종료합니다.

tcp 연결이 닫힙니 까?

수정.

존재하는 tcp 연결에 생존하고 있기 때문에 그렇게 생각하지 않습니다.

나는 이것이 무엇을 의미하는지 모른다.

"keep alive http timer"의 영향은 무엇입니까?

지정된 비 활동 기간이 만료되면 열려있는 HTTP 연결을 닫습니다.

포트 80에서 url (TCP)에 대한 http 연결을 열면 tcp 연결이 종료 될 때까지 서버 포트가 사용 가능하지 않습니다.

잘못된 것입니다. 동일한 수신 대기 포트에 대해 많은 연결을 열 수 있습니다.

그래서 http를 계속 유지하면 어떻게 되나요?

연결이 종료되었습니다. 벌써 물어 봤어.

공식 소스를 얻으면 기쁠 것입니다. HTTP 1.1에 대한

공식 소스는 RFC 7230-5, TCP 연결이 종료됩니다 RFC 2616