2017-12-12 9 views
0

예를 들어, 루비가 10.0.0.3:12345를 사용하여 10.0.0.3:12345를 사용했다면, ruby ​​on rails 앱 (10.0.0.3)을 가지고 있고, redis (10.0.0.4)와 mysql (10.0.0.5)한 서비스를 연결하는 데 포트가 사용되는 경우 다른 서비스를 연결하는 데 사용할 수 있습니까?

을 연결합니다. redis (10.0.0.4 : 6379)에 대한 TCP 연결은 10.0.0.3:12345를 사용하여 10.0.0.5:3306에 TCP를 연결할 수 있습니까?

dst ip가 다르므로 srcIP : srcPORT : dstIP : dstPORT를 혼동합니다. 따라서 포트를 사용할 수 있습니까 ??

+0

포트는 한 번에 한 가지에만 연결할 수 있으므로 redis를 수행하고 닫고 mysql을 연결할 수 있습니다. – pm100

+0

사용되는 전송 프로토콜에 따라 다릅니다. 한 서비스에 TCP를 사용하고 다른 서비스에 UDP를 사용하면 작동합니다. 포트는 일부 전송 프로토콜의 전송 계층 주소이지만 프로토콜 당 있습니다. TCP 12345는 UDP 12345와 같지 않습니다. –

+0

이 경우 모두 TCP입니다. – Sato

답변

1

TCP 연결이 {원본 IP, 원본 포트, 대상 IP, 대상 포트}로 식별되므로 이론적으로 이것이 가능합니다. bind()connect() 선행으로

그러나 커널은 아마 실제로 동일한 로컬 포트를 사용하여 두 번째 이후 bind() 호출을 허용하지 않습니다.