서버끼리 통신하는 작업을 하다가 방화벽이 뚫려 있는지 확인할 일이 생겼다.
ping도 쓰고 curl도 쓰는데 둘 차이가 뭔지 갑자기 궁금해져서 찾아봤다.
Ping
ping [대상 목적지 ip]
탁구 ping pong의 줄임말인 줄 알았는데(그런 의미도 있다고 하지만), Packet Internet Groper의 약자라고 한다...!
확인할 IP로 인터넷 패킷을 전송하고 대상이 보낸 응답을 분석하는 방식이다.
실제 ping google.com을 쳐보면 packets 전송상태를 나타내 준다.
ping은 ICMP 프로토콜(TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜)을 사용하는데 이 프로토콜은 OSI 7 계층의 3 layer에 해당하는 Network layer에 속하는 프로토콜을 사용한다.
그렇기 때문에 4 layer인 Transport layer에서 사용하는 port 정보를 이용하지 않는다.
그래서 ping 명령어로는 포트가 열려있는지 까지는 확인할 수 없는 것이다.
Curl
curl [대상 목적지] (default로 GET)
Curl은 Client URL의 약자라고 한다. URL로 데이터를 전송하여 서버에서 데이터를 가져오거나 서버에 데이터를 보낼 때 사용한다.
즉, curl을 활용하여 endpoint에 HTTP 프로토콜을 이용하여 PUT, POST 등의 요청을 보내고 그 결과를 확인할 수 있다.
telnet
telnet [대상 목적지] [포트번호]
ping이 단지 요청을 보내고 받아서 분석하는 명령어라면 telnet은 컴퓨터와 컴퓨터 사이를 연결해주는 명령어이다.
포트 오픈 확인까지 할 수 있는 telnet은 transport layer 를 통해 통신하는 거(겠지..?)
윈도우 컴퓨터에서는 설정을 통해 telnet을 활성화시키면 되고
맥 환경에서는 brew를 통해 다운로드하면 된다.
'코딩해 > 네트워크, 리눅스' 카테고리의 다른 글
[Linux] Shell 날짜 | shell for loop | shell 반복 | 스크립트 (0) | 2022.11.21 |
---|---|
[Linux] hadoop 명렁어 | 디렉터리, 파일 삭제 (0) | 2022.10.31 |
[grep] 파일 단어 카운트 | linux grep 명령어 (1) | 2022.10.04 |
[HTTP 완벽가이드] URI, URN, URL (0) | 2022.08.18 |