원격접속 서비스로서, 특정 사용자가 네트워크를
통해 다른 컴퓨터에 접속하여, 그 컴퓨터에서 제공하는 서비스를
받을수있도록 하는 인터넷 표준 프로토콜.
인터넷이나 로컬영역 네트워크 연결에 쓰이는
네트워크 프로토콜이다!
다만, 보안문제로, 원격제어를 위해 SSH로 대체되는 추세이다.
OSI 7계층에서, Application 계층에 속한다.
다른프로토콜: DHCP, DNS, FTP, HTTP, Telnet, SMTP
Ping과의 다른점: ping은 port를 사용하지않는다.
이유는, TCP/TP 계층에서 사용되고, 상위계층인
TCP/UDP와는 상관이 없기때문이다.
ping의 사용은 다음과같다 : ping [ip]
사용방법 :
$ telnet [ ip ] [ port ]
$ telnet localhost 7070
// 한줄씩 GET / HTTP/1.1
// 한줄씩 Host: localhost
// root 의 index파일 출력
일반적으로 cat명령과 비슷하지만, 대상이 파일이아니라
net connection이다.
포트의 확인말고도, 다양한 기능들이 있다.
telnet과 비슷하다
하지만, telnet은 서버에 요청을 한줄씩 보내는반면,
netcat은 스트림으로 보내야한다.
한줄씩 request를 보낸다면, 응답하지않음.
반대로, telnet도 netcat에서 사용하는 dos txt를 사용하여, request를 보낸다면, 응답하지않는다.
사용방법:
1. unix2dos 프로그램을 설치한다.
2. 임의의 파일을 생성
3. 파일안에 요청을 넣는다.
// 파일 예)
// test (파일명)
GET / HTTP/1.1\n
Host: localhost\n
\n
4. unix2dos명령어를 이용하여, 개행부분의 \n을
\r\n으로 바꾼다. HTTP 프로토콜은 개행이 \n이 아니라
\r\n이다.
// unix2dos test test
5. cat test | nc localhost 7070
telnet과 netcat을 자세하게 공부한것도 아니고,
webserv 구현하는과정에서 잠깐식 사용한것이기에,
많은 부분을 알지는 못함.
다만, telnet과 netcat은 사용부분에서 한줄씩 명령어를 쓴다거나
(복사해서 붙여넣기도됨), 또는 파일을 출력시켜, 그 결과값을
스트림으로 넣어주는 정도의 차이밖에 모름.