한 포트 전달을 다른 포트보다 우선순위 지정

한 포트 전달을 다른 포트보다 우선순위 지정

우선순위 포트 포워딩과 관련된 소규모 프로젝트의 연구 단계에 있습니다.

뒤에 있는 무선 장치를 사용하여 터미널 서버에 연결하려고 하는 일련의 클라이언트가 있습니다.

문제는 두 클라이언트가 터미널 서버의 동일한 대상 포트에 도달하면 잘못된 클라이언트에 가비지 데이터가 표시된다는 것입니다.

클라이언트 A가 대상 포트에서 무언가를 요청했지만 클라이언트 B가 이미 무언가를 요청하고 있다고 가정하면 해당 포트의 터미널 서버 뒤에 있는 장치는 보내기 위해 대기한 데이터로 응답합니다.

참고로, 대상 포트는 두 클라이언트 모두 동일합니다.

저는 서버 중 하나에 우선순위를 부여하고 싶기 때문에 두 클라이언트와 터미널 서버 사이에 Linux 기반 일종의 라우터 앱을 구현하고 싶습니다. 클라이언트는 각각 다른 포트에 접속하지만 우선 순위 클라이언트는 통신을 시작하면 전달됩니다. 다른 하나는 차단되거나, 중지되거나, 정지되거나 무엇이든 됩니다.

나는 총을 뛰어넘어 2개의 다른 포트를 수신하고 "우선순위" 포트를 터미널 서버로 전달하는 작은 Python 응용 프로그램을 개발했을 수도 있습니다. 우선순위 포트에서 일정량의 통신이 발생하지 않을 때까지 "비우선순위" 포트의 전달을 차단합니다.

iptables, 일부 NATing, socat, 약간의 QoS 등에 대해 읽었지만 내 문제에 대한 내용을 찾을 수 없는 것 같습니다.

저는 네트워킹 전문가가 아니며 약 2년 동안 Linux를 사용해 왔지만 이 TCP/ip 라우팅/전달 시나리오를 많이 수행한 적이 없으므로 도움이 될 수 있는 것이 있는지 알고 싶습니다. 한 포트를 다른 포트보다 우선시하는 것이 사용자 정의 Python 앱보다 더 효율적일 것입니다.

피드백을 보내주셔서 감사합니다.

내가 하려는 작업을 참조할 수 있는 작은 이미지는 다음과 같습니다.

우선 전달

답변1

나는 당신이 하려는 일을 다음과 같이 성취할 수 있다고 믿습니다.

  1. 소캣
  2. GNU 화면
  3. TMUX

내가 아는 한, 이 두 터미널이 어떻게 연결되어 있는지 다시 생각해 봐야 할 것입니다. 나는 TMUX가 두 개의 최종 클라이언트 터미널을 제공하는 앱으로 중간에 위치할 수 있다고 믿습니다. 뭔가 직렬 연결을 다중화해야 하는데, 이를 해결할 방법이 없습니다.

다음은 일부입니다.유용한 SOCAT 명령

나는 TMUX가 최선의 선택이 될 것이라고 믿습니다.tmux 시작하기 가이드

그럴 수도 있을 것 같아서 GNU 화면을 나열했습니다.유용한이 시나리오에서는.

또한 serverfault에서 귀하와 비슷한 질문을 발견했습니다.

https://serverfault.com/questions/797397/connect-two-ttys-via-tcp-ip

관련 정보