26 Telnet Rlogin Computer Network Lab 1 1
제 26 장 Telnet과 Rlogin Computer Network Lab. 1
목 차 1. 개요 2. Rlogin 프로토콜 3. Rlogin 예 4. Telnet 프로토콜 5. Telnet 예 6. 요약 Computer Network Lab. 2
1. 개요 (cont’d) n Telnet과 Rlogin의 복잡성 비교 (소스 코드) Computer Network Lab. 5
3. Rlogin 예 3. 1 초기의 클라이언트-서버 프로토콜 1 3 6 8 PSH 1: 2(1) ack 1 0의 1 바이트 ack 2 PSH 2: 32(30 ) ack 1 (rstevens rs tevens ibm pc 3/9600 ) ack 32 PSH 1: 2(1) ack 32 0의 1바이트 ack 2 3 PSH 2: 3(1) ack 32, urg size request) (command 0 x 80: window PSH 32: 44(1 2) ack 3 (window siz e informatio n) ack 44 Computer Network Lab. 1~4 : 클라이언트는 4개 문자열 전송 2 4 5 5 : 서버는 0의 바이트로 응답 7 7 : 서버는 윈도우 크기 요청 9 8 : 클라이언트 윈도우 크기 정보 전송 0 xff, ’s’, 행/열의 수, 픽셀 수 15
3. 1 초기의 클라이언트-서버 프로토콜 (cont’d) 11 ack 44 PSH 3: 251(248) greeting) (operating system ack 251 12 13 ack 44 PSH 251: 296(45) greeting) (operating system ack 296 14 15 ack 44 PSH 296: 298(2) greeting) (operating system ack 298 16 17 ack 44 PSH 298: 333(35) greeting) (operating system ack 333 18 19 ack 44 PSH 333: 340(7) (shell prompt) ack 340 Computer Network Lab. 10 18 : 서버는 셀 프롬프트 에코 (“svr 4%”) 16
3. 2 클라이언트 인터럽트 키 (cont’d) 0. 016015(0. 0160) 0. 032272(0. 0163) 0. 198020(0. 1657) 4 0. 202015(0. 0040) 0. 397930(0. 1959) 6 22631: 23655(1024) ack 7, win 4096 23655: 24679(1024) ack 7, win 4096 24679: 25703(1024) ack 7, win 4096 1 2 3 ack 25703, win 1024 ack PSH 25703: 26378(675) 7, win 4096 4 : 출력이 멈췄기 때문에 세그먼트 4에서 ack를 1024의 윈도우를 통지 함 5 ack 26378, win 349 5. 103974(4. 7060) 26378: 26727(349) ack 7, 5. 197768(0. 0938) 8 ack 26727, win 0 Computer Network Lab. win 4096 1~3 : 서버는 클라이언트에 가득 채워진 세그먼트를 전송 5 : 가득 채워진 세그먼트가 아님 6 : ack는 4096 -바이트 수신 버퍼에서 나머지 공간만을 통지 7 7 : 타이머가 끝날 때 349 바이트를 전송 8 : 클라이언트 출력이 여전히 멈춰 있기 때문에 ack는 0의 윈도우를 통지 18
3. 2 클라이언트 인터럽트 키 (cont’d) 7. 082759(0. 0013) 7. 085015(0. 0023) 13 PHS 7: 8(1) ack 26727, w in 0 (interrupt key) in 4096 urg 30147 w 8, k ac 1) 8( 72 26 7: 72 26 ack 26727, win 0 7 ack 8, win 4096 urg 3014 ack 26727, win 4096 7. 089772(0. 0048) 7. 093828(0. 0041) 8, win 4096 urg 30147 26727: 27751(1024) ack 8, win 4096 urg 30147 27751: 28775(1024) ack 7. 066859(1. 8691) 9 7. 080527(0. 0137) 7. 081445(0. 0009) 11 7. 095692(0. 0019) 7. 100377(0. 0047) 7. 102663(0. 0023) 7. 108754(0. 0061) 7. 197779(0. 0890) 16 ack 28775, win 4096 9 : 인터럽트 키 전송 10 12 13 : 긴급 모드 통지 이후에 윈도우를 완전 개방 14 14~18 : 서버 버퍼에 저장 되어 15 있는 데이터 전송 win 4096 urg 30147 8, k ac ) 24 10 9( 79 17 29 5: 2877 7 14 30 g ur 96 ack 8, win 40 PHS 29799: 30147(348) 18 7 14 30 g ur 96 40 in w 8, k PHS 30147: 30149(2) ac 19 20 7. 199307(0. 0015) 7. 397798(0. 1985) 22 ack 30149, win 4096 k 8, win 4096 PHS 30149: 30157(8) ac ack 30157, win 4096 Computer Network Lab. 10 : 폐쇄된 윈도우에 1 바이트 데이터, 긴급 모드 표시 전송 19 : ‘^? ’ 에코 21 21 : 쉘 프롬프트 에코 19
4. 1 Telnet 명령어 n 양방향에서 대역내 신호방식 사용 IAC(Interpret As Command) : 0 xff l IAC가 선행하는 Telnet 명령어 l Computer Network Lab. 21
4. 2 옵션 협상 (cont’d) n Telnet 옵션 협상의 6가지 시나리오 Computer Network Lab. 23
4. 2 옵션 협상 (cont’d) n 구성 (3 -바이트) IAC + {WILL | DO | WONT | DONT } + 옵션 ID l 옵션 ID : 현재 40개 이상 l Computer Network Lab. 24
4. 4 운용 모드 (디폴트 운영 모드) n 여러 가지 Telnet 클라이언트와 서버간의 디폴트 운용 모드 서버 클라이언트 Sun OS 4. 1. 3 Solaris 2. 3 SVR 4 AIX 3. 2. 2 BSD/386 4. 4 BSD Sun OS 4. 1. 3 Solaris 2. 2 SVR 4 AIX 3. 2. 2 BSD/386 4. 4 BSD kludge linemode Char Char Computer Network Lab. Char Char Char Char Char kludge linemode 28
5. Telnet 예 5. 1 문자단위 모드 (클라이언트: BSD/386, 서버: SVR 4) 1 PSH 1: 25(24) ack 1, win 4096 [tos 0 x 10] ack 25, win 4096 PSH 1: 4(3) ack 25, win 4 2 4096 3 : 9. RCVD DO TERMINAL TYPE ack 4, win 4096 [tos 0 x 10 ] in 4096 PSH 4: 31(27) ack 25, w 6 3 PSH 25: 37(12) ack 31, w 5 in 4096 [tos 0 x 10] ack 37, win 4096 1 : 1. SENT DO SUPPRESS GO AHEAD 2. SENT WILL TERMINAL TYPE 3. SENT WILL NAWS 4. SENT WILL TSPEED 5. SENT WILL LFLOW 6. SENT WILL LINEMODE 7. SENT WILL ENVIRON 8. SENT DO STATUS 7 5 : 10. RCVD WILL SUPPRESS GO AHEAD 11. RCVD DONT NAWS 12. RCVD DONT TSPEED 13. RCVD DONT LFLOW 14. RCVD DONT LINEMODE 15. RCVD DONT ENVIRON 16. RCVD WONT STATUS 17. RCVD IAC SB TERMINAL-TYPE SEND 6 : 18. SENT IAC SB TERMINAL-TYPE IS “IBMPC 3” Computer Network Lab. 30
5. 1 문자단위 모드 (cont’d) in 4096 PSH 31: 84(53) ack 37, w 9 PSH 37: 43(6) ack 84, w in 4096 [tos 0 x 10] in 4096 PSH 84: 87(3) ack 43, w 11 10 ack 87, win 4093 [tos 0 x 10] in 4096 PSH 87: 94(7) ack 43, w 13 ack 94, win 4096 [tos 0 x 10] 14 PSH 43: 44(1) ack 94, w in 4096 [tos 0 x 10] in 4096 PSH 94: 95(1) ack 44, w 16 8 8 : 19. RCVD WILL ECHO 21. RCVD DO ECHO rnrNUNIX(R) System V Release 4. 0 (svr 4) rnr 9 : 20. SENT DO ECHO 22. SENT WONT ECHO 10 : 23. RCVD DONT ECHO 12 12 : ‘login: ’에코 14 : 입력 문자 ‘r’ 15 15 : 입력 문자 ‘r’ 에코 ack 95, win 4096 [tos 0 x Computer Network Lab. 10] 31
5. 2 라인모드 (vangogh % date 명령의 패킷 교환) 1 4 PSH 2: 8(6) ack 11 (datern) ack 8 2 PSH 11: 41(30) ack 8 T 1993rn) (Tue Jul 13 09: 10: 15 PD 3 ack 41 PSH 41: 51(10) ack 11 (vangogh % ) 6 P. 357, 그림 19. 2의 Rlogin과 비교해 봤을 때, Telnet의 라인모드는 적은 수의 세그먼트를 사용함을 알 수 있다. 5 ack 51 Computer Network Lab. 32
5. 3 kludge 라인모드 (cont’d) n kludge 라인모드 예 Svr 4% 클라이언트는 SUN이고 서버는 SVR 4이다. (에코하지 않는) telnet 클라이언트와 얘기하려 면 Control-]를 입력해야 한다. telnet> status 한번에 한문자 모드에서 쉽게 검증한다. Connected to svr 4. tuc. noao. edu Operating in character-at-a-time mode. Escape character is ‘^]’. telnet> toggle options 옵션처리과정을 보자 Will show option processing. telnet> mode line 그리고 kludge 라인 모드로 바꾼다. SENT dont SUPPRESS GO AHEAD SENT dont ECHO RCVD wont SUPPRESS GO AHEAD RCVD wont ECHO 클라이언트는 이 두 옵션을 보낸다. Computer Network Lab. 그리고 서버는 둘 모두에게 WONT로 답신한다. 35
5. 4 라인모드 : 클라이언트 인터럽트 키 type interrupt 1 1 : IP 명령어는 Telnet의 동기신호를 사용하여 보내져야 한다. PSH 6: 11(5) ack 41 <IAC, IP, IAC, DO, TM > PSH 41: 44(3) ack 11 <IAC, WILL, TM> 45 PSH 44: 45(1) ack 11 urg <IAC> PSH 45: 46(1) ack 11 <DM> 5 ack 46 7 PSH 46: 60(14) ack 11 r rnvangogh % ack 60 Computer Network Lab. 2 3 4 2 : DO Timing Mark 옵션에 대한 응답 3 : 동기 신호의 첫 바이트를 긴급 데이터로 전송 4 : Data Mark 명령 전송 6 6 : 쉘 프롬프트 에코 37
- Slides: 39