Mosh (소프트웨어)
Mosh (software)![]() 간헐적 네트워크 연결 및 로컬 에코 기능에 대한 경고를 표시하는 Mosh. | |
| 원본 작성자 | 키스 윈스타인 |
|---|---|
| 초기 릴리즈 | 2012년 3월 12일; 전 |
| 안정적 해제 | 1.3.2 / 2017년 7월 22일; 전[1] |
| 리포지토리 | |
| 운영 체제 | 유닉스 유사 시스템 |
| 유형 | 유틸리티 소프트웨어 |
| 면허증 | OpenSSL 및 iOS 예외가 있는 GNU GPLv3 |
| 웹사이트 | mosh |
컴퓨팅에서 Mosh(모바일 셸)는 원격 단말기를 실행하기 위해 인터넷을 통해 클라이언트 컴퓨터에서 서버로 연결하는 데 사용되는 도구다.[2]Mosh는 SSH와 유사하며[3], 모바일 사용자의 사용성을 향상시키기 위한 추가 기능이 있다.주요 특징은 다음과 같다.
- 모쉬는 다른 Wi-Fi 네트워크로 이동하거나 Wi-Fi에서 3G로 변경하는 등, 「로밍」(클라이언트 엔드포인트가 다른 IP 주소로 변경했을 때)에도 세션을 유지한다.[4]
- Mosh는 사용자가 인터넷 접속을 잃거나 클라이언트를 "절전"하게 할 때에도 터미널 세션(Mosh가 UDP를 사용하기 때문에 TCP-sense에서 "연결"이 아님)을 유지한다.이에 비해, SSH는 TCP 시간이 초과되기 때문에 이러한 경우 연결이 끊길 수 있다.[5]
- Mosh 클라이언트는 네트워크 지연을 기다리지 않고 키보드 이벤트(타이핑, [Delete](삭제) 키로 문자 지우기 등)에 대한 대응을 시도한다.서버에서 실행 중인 응용 프로그램이 사용자의 키 입력 또는 삭제에 반향을 일으킬지 여부를 예측하는 적응형 시스템을 사용한다.[6][7]
mosh의 주요 단점은 서버에 대한 추가 전제조건으로 SSH의 일부 특수 기능(연결 포워딩 등)이 부족하고 네이티브 윈도우즈 클라이언트가 부족하다는 점이다.[2]리눅스 서버(서버에 여전히 설치가 필요한 경우)의 대안은 일반 SSH 연결 위에 GNU 화면을 사용하는 것이다.
디자인
Mosh는 SSH와는 다른 계층에서 작업한다.SSH가 TCP를 이용하여 각 방향(서버에서 클라이언트 또는 클라이언트로)의 바이트 스트림을 전송하는 반면에, Mosh는 화면에 무엇이 있어야 하는지 파악하기 위해 서버에서 터미널 에뮬레이터를 실행한다.[2]그러면 서버는 네트워크 속도에 따라 다른 프레임 속도로 이 화면을 클라이언트로 전송한다.[8]이를 통해 Mosh는 느린 연결이나 간헐적인 연결에서 네트워크 트래픽을 절약할 수 있다.
지원되는 플랫폼
Mosh는 대부분의 Linux 배포, MacOS, FreeBSD, NetBSD, OpenBSD, Android, Solaris, Cygwin, Chrome App에서 사용할 수 있다.[2]iOS 프로그램 Termius는 Mosh 프로토콜의 독립적인 구현을 포함한다.[9]
퍼포먼스
로밍
모쉬는 싱글패킷 로밍을 지원하는 스테이트-동기화 프로토콜(SSP)[10]을 기반으로 구축됐다.[11]클라이언트가 새로운 IP 주소로 전환한 후, 서버에 성공적으로 도달하는 단일 패킷은 연결을 "루밍"하기에 충분하다.고객은 그것이 돌아다녔다는 것을 알 필요가 없다.(클라이언트가 NAT을 사용하고 있고 NAT이 대신 로밍하고 있을 수 있음)[8]
패킷손실
모쉬 연구 논문에서 작성자들은 패킷 손실이 29%인 링크에서 SSP를 시험했고, SSP는 TCP를 사용하는 SSH에 비해 평균 응답 시간을 50배(16.8초에서 0.33초로 단축)로 단축한 것을 발견했다.[8]스탠퍼드대 학생들의 다른 연구에 따르면 SSP는 평균 응답 시간을 30배(5.9초에서 0.19초로) 단축했다.[12]
국소 에코
모쉬의 개발자들에 따르면 이 프로그램은 사용자 키 입력의 70%를 예측하고 즉시 표시할 수 있어 중앙값 응답 시간을 키 입력으로 5밀리초 미만으로 단축([2][8]네트워크의 지연 시간을 마스킹)하는 것으로 나타났다.스탠포드 대학의 학생들에 의한 다른 연구는 Mosh가 사용자 키 입력의 55%를 빠르게 반향할 수 있다는 것을 발견했다.[13]
단점
보다 대중적인 SSH에 비해 mosh는 다음과 같은 단점이 있다.
서버의 필수 구성 요소
mosh의 주요 단점은 ssh 자체로는 필요하지 않은 추가 전제조건을 서버가 이행하도록 요구하는 것이다.그것의 설계 때문에, mosh는 UDP를 통한 직접 연결을 허용하기 위해 서버를 필요로 한다.[14] 이러한 전제조건을 충족하지 않는 서버는 mosh에 의해 사용될 수 없다.그러한 시스템의 예로는 TCP를 통한 ssh-포트 연결을 제한하는 방화벽 뒤의 서버를 들 수 있다.간접적으로만 접근할 수 있는 서버도 문제다.후자는 보통 'ProxyCommand' 옵션을 통해 ssh에 의해 수용되지만, mosh는 이를 지원하지 않는다.[15]
연결당 포트 1개
기본적으로 서버는 연결당 60001~61000 범위의 첫 번째 사용 가능한 UDP 포트를 할당하려고 시도한다.이러한 동적 포트 할당은 방화벽 유지보수에 대한 추가적인 부담과 위험으로 간주된다.[16]방화벽 필터링의 상당 부분은 연결 추적을 통해 발생하며, 이는 TCP 세그먼트의 SYN/ACK 플래그를 기반으로 하며, UDP 패킷에는 이러한 플래그가 없다.[17]
완화:
- 서버의 UDP 포트는 mosh 연결당 설정할 수 있으므로 제한된 수의 포트만 열면 됨
- 심층 패킷 검사 방화벽과 애플리케이션 방화벽은 패킷의 내용을 보고 그것을 초기 연결에 연결함으로써 이것을 더 잘 처리할 수 있다.
출력 손실 및 단자 스크롤백 부족
현재 출시된 mosh에서는 Scrollback이 지원되지 않으며, 스크롤 막대가 있는 터미널 에뮬레이터에서 사용하면 사라지지만 1.3 릴리스용으로 계획되어 있다.[19]이 기능은 2진수 출력이 지워짐에[clarification needed] 따라 가비지 청소와 절충된다.현재 이것을 완화하는 한 가지 방법은 화면이나 tmux와 같은 터미널 멀티플렉서와 함께 mosh를 사용하는 것이다.[20]
ssh-에이전트 전달 부족
SSH-에이전트 전달은 현재 지원되지 않음.[21]
X11 포워딩
X11 포워딩은 아직 지원되지 않는다.[22]
참고 항목
참조
- ^ Winstein, Keith (22 July 2017). "mosh 1.3.2 released". mosh-users (Mailing list). Retrieved 31 July 2017.
- ^ a b c d e "모시: 이동식 껍데기"2013년 3월 28일 검색됨
- ^ Brockmeier, Joe. "2012년 4월 10일 Wayback Machine, linux.com" "In the Mosh Pit: A Mobile Shell Replacement for SSH" 2014-03-20 보관.2013년 3월 28일 검색됨
- ^ 딜로니, 데이비드.테크노피디아, 2012년 10월 19일 "모쉬: 고통 없는 안전한 껍질"2013년 3월 28일 검색됨
- ^ Cox, John. "MIT 연구원들이 모바일 인터넷 프로토콜에 대한 새로운 접근방식을 도표로 작성" 2012-10-18년 7월 6일 Wayback Machine, Network World에 보관2013년 3월 28일 검색됨
- ^ 벡커트, 액셀Linux Magazine, 2012년 11월, "Mosh and AutoSSH: 느리거나 지속적으로 morping 네트워크 상에서 여러분의 삶을 편리하게 해주는 원격 쉘 도구"
- ^ 레이든, 존. "2012년 4월 13일, MIT의 마음을 읽는 모쉬가 SSH 데몬에 대해 스스로를 비판한다.2013년 3월 28일 검색됨
- ^ a b c d 윈슈타인, 키스2012년 6월 14일 보스턴, 미사, USENIX 연례 기술 회의 "Mosh: 모바일 고객을 위한 대화형 원격 쉘"
- ^ "Termius Features", Crystalnix.
- ^ "MIT, 모바일 고객을 위한 새로운 인터넷 프로토콜 공개"
- ^ 윈스타인, 키스, 발라크리쉬난, 하리"Mosh: 모바일 클라이언트를 위한 대화형 원격 셸(더 자세한 초안)"2013년 3월 28일 검색됨
- ^ 나가라지, 칸티, 맥밀린, 에밀리2013년 3월 14일, Replicating Network Research "Mosh".2013년 3월 28일 검색됨
- ^ 알주니드, 아흐메드.2013년 3월 13일, Replicating Network Research, Mosh 'Mobile Shell' 성능 결과 평가.2013년 3월 28일 검색됨
- ^ "Mosh는 SSH를 통해 사용자를 로그인한 후 60000에서 61000 사이의 UDP 포트에서 연결을 시작할 것이다."라고 2014년 6월 19일에 검색되었다.
- ^ "Mosh 버그 보고서 #285: ProxyCommand 기반 SSH 연결을 사용할 수 없음", 2014년 6월 18일 검색됨
- ^ "광범위한 항구를 개방하는 당인들? (mosh)"," IT 보안(Stack Exchange), 2012년 4월 13일.2013년 3월 28일 검색됨
- ^ 더 많은 세션을 동일한 UDP 포트로 멀티플렉싱
- ^ " -p를 사용하여 원격 UDP 포트 정의"
- ^ https://github.com/keithw/mosh/issues/2 "Scrollback 지원은 버전 1에 대해 계획되어 있다.3"
- ^ "스크롤백 및 대체 화면(was: smcup/rmcup에 대체 화면 사용)"
- ^ "SSH 에이전트 전달"
- ^ "X 포워딩 지원"
