2009-12-10 6 views
0

내 PC에서 동일한 포트에서 두 개의 다른 서버를 텔넷으로 연결하면 다른 하나가 완료 될 때까지 완료할까요? 나가는 포트는 한 번에 하나의 나가는 연결 만 허용합니까?네트워크 포트 IO

답변

2

이들은 별개이며 로컬 TCP 포트 번호로 구분됩니다. 로컬 TCP 포트 번호는 각 발신 연결마다 다릅니다.

http://www.tcpipguide.com/free/t_TCPIPClientEphemeralPortsandClientServerApplicatio.htm

서버가 클라이언트에 응답; 그들은 그들과 접촉을 시작하지 않습니다. 따라서 클라이언트는 예약 된 포트 번호를 사용할 필요가 없습니다. ... 회신을 보낼 위치를 알기 위해서는 서버가 클라이언트가 사용중인 포트 번호를 알아야합니다. 이것은 클라이언트가 요청에서 소스 포트로 제공 한 다음 서버가 목적지 포트로 사용하여 응답을 보냅니다. 클라이언트 프로세스는 잘 알려진 포트 나 등록 된 포트를 사용하지 않습니다. 대신, 각 클라이언트 프로세스에 임시 포트 번호가 할당되어 사용됩니다. 일반적으로 임시 포트 번호라고합니다.

+0

그래서 telnet xxx.xx.xxx.xxx 80이라면 실제 로컬 TCP 포트 번호는 80과 다를 것입니까? – user217631

+0

맞습니다. 'telnet'의 목적지만을 지정합니다. 운영 체제는 임의의 아웃 바운드 포트를 선택하고 원본 주소는 네트워크 인터페이스에서 가져옵니다. –

0

원본 및 대상 포트간에 차이가 있습니다. 원격 서버는 동일한 포트를 사용할 수 있지만 host1 : 80 host2 : 80이라는 다른 대상입니다.

각 연결은 다른 소스 주소 localhost : random_port를 사용합니다.

유선 트래픽의 tcpdump 또는 wireshark 캡처에는 네트워크 트래픽에 반송 경로가 있도록 원본 및 대상 주소 및 포트가 태그 된 TCP 네트워크 패킷이 표시됩니다.

+0

나가는 포트가 실제로 선택된 포트와 다를 것이라고 말하는가? – user217631

+0

사실 host1 : 80 및 host2 : 80은 서로 영향을주지 않습니다. 맞습니까? – user217631

+0

로컬 발신 포트를 제어 할 수 없습니다. 원격 호스트에 대한 트래픽은 각각 다른 아웃 바운드 포트에서 전송되므로 서로 영향을 미치지 않습니다. src : localhost : 34567 dst : host1 : 80; src localhost : 34568 dst : host2 : 80; –