어제 면접관이 ping을위한 포트 번호가 무엇이고 어떤 프로토콜 핑이 TCP / UDP를 사용하는지 물어 봅니다.
인터뷰 후 인터넷에서 검색합니다. 다른 결과를 찾았습니다. 누군가가 ICMP가 포트 7을 사용한다고 말합니다. 누군가가 포트 번호를 사용하지 않는다고 말합니다. 한 사이트에서 IP 프로토콜 1을 사용하는 것으로 나타났습니다.
누구나 올바른 설명으로 나를 도울 수 있습니까?
감사합니다, Nishad
코멘트
- TCP 및 UDP는 레이어 4 프로토콜이고 포트는 TCP 또는 UDP 주소이지만 ICMP는 IP (계층 -3)의 일부입니다. RFC 792에서 : " ICMP는 IP의 기본 지원을 더 높은 수준의 프로토콜 인 것처럼 사용하지만 실제로는 ICMP는 IP의 필수 부분이므로 모든 IP 모듈에 의해 구현됩니다. "
- 여기서 계층에 대해 논의하는 것은 ICMP, TCP 및 UDP가 프로토콜 1로 IP를 직접 전달하기 때문에 약간 오해의 소지가 있습니다. , 6 및 17입니다. OP에 ICMP / TCP / UDP의 헤더를 검토하거나 패킷 캡처를 실행하여 차이점을 확인하십시오. ICMP는 TCP 및 UDP와 완전히 분리되어 있다는 점만 기억하십시오.
- 직업을 구했습니까?
- 예, 구직했습니다.
답변
표준 ping 명령은 TCP 또는 UDP를 사용하지 않습니다. ICMP를 사용합니다. 보다 정확한 ICMP 유형 8 (에코 메시지)과 유형 0 (에코 응답 메시지)이 사용됩니다. ICMP에는 포트가 없습니다!
자세한 내용은 RFC792 를 참조하세요.
댓글
- 명확하게 말하자면, ICMP는 IP 프로토콜로서 IP를 통해 직접 이동합니다. 1. ICMP 헤더 내에 에코 / 에코 응답 등 유형이 있습니다. 이를 각각 IP 프로토콜 6 및 17로 IP를 통해 사용하는 TCP 및 UDP와 비교하고 애플리케이션을 차별화하기 위해 자체 포트 시스템을 사용합니다.
- " ICMP는 포트가 없습니다! " 특정 상황에서 포트처럼 취급되는 쿼리 ID가 있지만 (NAT와 관련된 상황은 아님)
답변
특히 질문의이 부분에 대한 추가 답변을 제공하고 싶습니다.
… 누군가 ICMP가 포트 7
포트 7 (TCP 및 UDP 모두)은 “echo”서비스에 사용됩니다.
이 서비스를 컴퓨터에서 사용할 수있는 경우 UDP 포트 7을 사용할 수 있습니다. 대신 ICMP에서 “ping”을 수행합니다.
그러나 대부분의 최신 컴퓨터에는 “echo”가 없습니다. 서비스가 실행 중이므로 UDP 포트 7을 사용하여 “ping”수행 ICMP가 작동하지 않습니다.
그리고 : “ICMP 대신”이라는 단어가 이미 표시했듯이 UDP 포트 7을 통한 “ping”은 작동하지 않습니다 ICMP를 사용하지만 UDP는 완전히 다른 프로토콜입니다!
댓글
- 답변, 여기 누군가가이 주제에 대해 찾은 포럼에서 언급 한 게시물이 있습니다. " ICMP가 포트 7 (모든 문자를 에코하는 이전 에코 서비스)을 사용한다고 생각하는 사람들 당신이 보낸) 네트워킹에 있어서는 안되며 총에 맞아야합니다. 내가 말한 내용에 동의하지 않으면 IP 데이터 그램과 ICMP 데이터 그램의 구조를 살펴보십시오. ICMP는 IP 데이터 그램에 캡슐화되고 IP 데이터 그램은 특정 미디어가 프레임을 형성하는 데 필요한 모든 항목으로 캡슐화됩니다. "
- " ICMP는 포트를위한 장소가 없기 때문에 포트를 사용하지 않습니다. IP 데이터 그램으로 만 캡슐화됩니다. 포트 옵션은 UDP 및 TCP 데이터 그램에서만 찾을 수 있습니다. ICMP 에코를 차단하려면 유형 및 코드를 명시 적으로 차단합니다. "
- 전체 포럼 주제는 커뮤니티입니다. infosecinstitute.com/discussion/8777
- @JesseP. ICMP가 포트 7을 사용한다고 작성 했습니까? 아니요. ICMP 대신 " "라는 단어를 "에 썼습니다. id = “49da4e655d”>
굵게 표시하면 포트 7이 ICMP와 관련이 없음을 나타냅니다. 저는 '이를 더 명확하게하기 위해 제 답변을 약간 수정하겠습니다.
답변
다른 사람들이 이미 언급했듯이 일반적으로 ping은 ICMP 기반이며 포트가 없습니다. . 그러나 일반적인 3 방향 TCP 핸드 셰이크 대신 처음 두 단계 만 수행하고 그 사이의 지연을 측정하는 TCP Ping과 같은 것이 있습니다. 측정이 완료되면 RST ACK가 전송되어 반 개방 연결을 닫습니다. 그런 다음 카운터 / 기간에 도달하거나 프로세스를 종료 할 때까지 프로세스가 반복됩니다.TCP Ping (시스템 관리자가 작업하는 서버에서 열린 포트를 테스트하기 위해 자주 사용)을 사용하면 테스트 할 대상 포트를 지정할 수 있습니다 (서버가 특정 포트에서 수신하는지 확인하기 위해). 소스 포트는 일시적인 임의의 포트 일뿐입니다.
TCP Ping 유틸리티 (Windows 시스템에서 사용하는 유틸리티)의 예를 보려면 다음으로 이동하십시오. TCPing . 또한 NMAP에는 TCP 기반 ping을 수행 할 수있는 플래그가있는 NPING이라는 유틸리티가 함께 제공됩니다.
참고로 일부 네트워크 장비 일부 최신 운영 체제 버전을 사용하는 Cisco ASA와 같은이 기능도 있습니다. 명령은 다음과 같습니다. ping tcp <destination IP> <destination port>
Answer
Ping은 포트가 아닌 프로토콜을 사용합니다. Ping은 ICMP (Internet Control Message Protocol) 에코 요청 패킷을 대상 호스트로 보내고 ICMP 에코 응답을 기다리는 방식으로 작동합니다. 그러나 보안 고려 사항으로 , 이것은 종종 비활성화됩니다.
답변
Windows & Linux 시스템에서 핑 기본적으로 ICMP를 사용합니다. ping 요청은 유형 8입니다. & 코드 0 핑 응답은 유형 0입니다. & 코드 0
TCP / UDP에 대한 ping 유사 테스트를 실행하는 데 사용할 수있는 다른 유틸리티가 있습니다. TCP 포트가 열려 있는지 확인하는 일반적인 빠른 테스트는 Windows에서 텔넷 클라이언트를 사용하는 것입니다. Nmap은 Windows 및 Linux에서 열린 포트를 테스트하기 위해 사용할 수있는 타사 유틸리티입니다.
Windows의 Traceroute는 ICMP를 사용하고 Linux는 실제로 기본적으로 UDP를 사용합니다.
다음 방법으로 확인할 수 있습니다. 와이어 샤크를 사용하여 트래픽을 캡처하여 이러한 운영 체제에서 문제 해결 도구를 사용하는 방법을 확인합니다.
문제는 유틸리티 문제 해결에 대한 지식을 테스트하는 것이었을 것입니다.