프로세스

프로세스

프로세스는 실행 중인 프로그램입니다. 예를 들어 파이어폭스. "프로세스"와 "포트"라는 용어 사이의 관계와 차이점을 이해하지 못합니다.

cmd를 실행하면 netstat -no -p -TCP아래와 같이 여러 포트 번호가 각 프로세스와 연결되어 있는 것을 볼 수 있습니다. 그러나 포트와 프로세스 간의 관계는 나에게 불분명합니다.

스크린샷: "netstat -no -p -TCP"의 cmd 출력

답변1

질문에 직접 대답하려면 프로세스 ID와 포트 번호 사이에 연결이 없습니다. 그들은 완전히 다른 것을 열거합니다.

PID는 프로세스를 식별하고(예: Firefox 세션: 각 탭은 다른 프로세스로 실행될 수 있음) 포트 번호는 해당 프로세스가 통신에 사용하는 포트를 식별합니다. 특정 포트 번호에는 관례적인 용도가 있습니다. 일반적으로 HTTP에는 80이 사용되고 HTTPS에는 443이 사용됩니다. 그러나 프로세스는 시작된 시점에 따라 모든 PID 번호를 얻을 수 있습니다.

보시다시피, 로컬 포트 ​​번호는 순차적으로 사용되며 대상 포트 번호나 이를 사용하는 프로세스의 PID와 관련이 없습니다.

답변2

PID는 통신을 수행하는 특정 프로세스를 식별하기 위한 목적으로만 표시되며 포트 번호와는 관련이 없습니다.

하나의 프로그램 복사본이 여러 개 실행 중이고 모두 네트워크를 통해 통신하는 경우 프로그램 이름을 표시하는 것만으로는 어떤 포트가 프로그램 복사본에 속하는지 고유하게 식별하는 데 충분하지 않습니다.

특정 연결만 종료하고 프로그램의 모든 복사본을 종료하지 않으려면 프로그램 이름보다는 PID를 알아야 합니다.

답변3

프로세스

프로세스란 무엇입니까?

프로세스는 기본적으로 프로그램의 복사본입니다. 따라서 메모장과 같은 프로그램을 여러 번 실행하면 특정 시간마다 고유한 프로세스가 생성됩니다. 프로세스는 컴퓨터에서 사용 가능한 RAM과 같은 리소스를 사용합니다. 작업 관리자를 보고 프로그램이 여러 번 실행되는 것을 보면 프로그램이 발생할 때마다 서로 다른 프로세스가 될 수 있습니다.

프로세스는 어떻게 할당되나요?

PID("프로세스 ID") 번호는 새 프로세스가 만들어질 때마다 운영 체제에 의해 할당됩니다.

프로세스는 무엇에 좋은가요?

실행 중인 프로그램의 정확한 특정 복사본을 식별하는 프로세스 ID를 사용하면 해당 프로세스가 인스턴스인 소프트웨어 프로그램을 확인할 수 있습니다. TaskList(명령줄에서), WMIC PROCESS GET /FORMAT:LIST(명령줄에서) 또는 작업 관리자를 사용하여 이 작업을 수행할 수 있습니다. 일부 최신 버전의 Microsoft Windows에서는 작업 관리자에서 "세부 정보" 탭으로 이동해야 할 수도 있습니다. PID를 표시하는 열이 없으면 추가할 수 있습니다. (적어도 Windows 10에서는 열 이름을 마우스 오른쪽 버튼으로 클릭한 다음 표시되는 열을 선택할 수 있습니다. 메모리가 제공되므로 이전 버전의 Windows에는 이에 대한 메뉴 옵션이 있었습니다.)

유용할 수 있는 또 다른 명령은 netstat입니다. netstat를 사용하고 계시군요. "-b" 매개변수를 추가해 보세요. (이 옵션은 Microsoft Windows에만 해당되며 프롬프트의 C:\Users\User>를 기반으로 사용하고 있다고 가정합니다.) 그러면 Netstat이 PID를 사용하여 실행 파일의 이름을 알아내려고 시도하게 됩니다. 그리고 그것을 다음 줄에 인쇄하세요.

이 모든 것은 포트 번호와 전혀 관련이 없습니다.

포트 번호

포트 번호 란 무엇입니까?

포트 번호는 네트워크 연결의 일부로 사용됩니다. 모든 네트워크 통신이 포트 번호를 사용하는 것은 아닙니다. 예를 들어 TraceRoute(Microsoft Windows에서는 "TRACERT"로 명명됨) 및 Microsoft Windows "ping" 명령에서 사용되는 ICMP는 포트 번호를 사용하지 않습니다. 가장 일반적인 프로토콜은 UDP와 TCP입니다. (아마도 SCTP가 그 다음으로 흔한 것 아닐까요?) HTTP(S)와 SMTP(이메일용)를 포함한 많은 프로토콜이 TCP를 사용하므로 포트 번호가 사용됩니다.

포트 번호는 어디에 유용합니까?

동일한 컴퓨터 간에 여러 개의 TCP 연결이 있을 수 있으며 포트 번호는 이러한 연결을 식별하는 데 사용됩니다. 예를 들어, E-Mail 프로그램이 E-Mail을 수신하는 경우 네트워크 연결은 [LOCAL PORT 52534, REMOTE/FOREIGN PORT 25] 사이에 있을 수 있지만 웹 브라우저는 [LOCAL PORT 54499, REMOTE/FOREIGN을 사용하여 연결을 생성할 수 있습니다. 포트 443]. 이렇게 하면 원격 컴퓨터가 응답하고 들어오는 트래픽이 [LOCAL PORT 54499, REMOTE/FOREIGN PORT 443]으로 정의되면 컴퓨터는 해당 트래픽이 로컬 전자 메일 프로그램용이 아니라는 것을 알게 됩니다. 실제로 웹 브라우저는 동시에 여러 그래픽을 다운로드하는 등의 작업을 수행하기 위해 여러 TCP 연결을 생성할 수 있습니다. 컴퓨터가 그래픽 데이터를 수신할 때 포트 번호는 웹 브라우저가 데이터가 어떤 연결을 의미하는지 알 수 있도록 도와주므로 웹 브라우저는 수신된 데이터가 어떤 그래픽을 의미하는지 알 수 있습니다.

(참고: 대괄호는 해당 단락을 좀 더 쉽게 읽을 수 있도록 제가 만든 표기법입니다. Netstat의 출력에서 ​​포트 번호는 콜론 뒤에 표시됩니다. 저는 일반적으로 "외국인"이라는 용어를 사용하는 것을 선호하지 않습니다. 포트 번호를 설명하지만 이 경우에는 netstat에서 사용하는 용어이기 때문에 그렇게 했습니다.)

포트 번호는 어떻게 할당되나요?

일반적으로 대부분의 소프트웨어는 단순히 "네트워크 스택"에 네트워크 연결을 원한다는 사실을 알려줍니다. 최신 운영 체제에서는 "네트워크 스택"이 운영 체제의 일부로 내장되어 있습니다(Windows 3.1 시대에는 일반적으로 Microsoft Internet Explorer 또는 Trumpet Winsock과 같은 소프트웨어 프로그램을 설치하는 동안 네트워크 스택이 추가되었지만). . 소프트웨어 프로그램은 일반적으로 네트워크 스택에 "원격 포트 443에 대한 새 TCP 연결 생성"과 같은 내용을 알려줍니다. 네트워크 스택은 사용할 소스 포트 번호를 결정합니다.

요약

프로세스와 포트 번호는 매우 다릅니다. 나는 여기의 다른 답변에 있는 정보의 대부분 또는 전부에 동의합니다. (그러나 숫자가 어디에서 할당되었는지와 같이 좀 더 자세히 설명하면 구별을 좀 더 명확하게 하는 데 도움이 될 수 있다고 생각했기 때문에 여기에 내 답변을 추가했습니다.)

답변4

프로세스는 대부분의 경우 실행 중인 프로그램입니다. Firefox와 같은 프로그램은 실제로 함께 작동하는 여러 프로세스로 구성될 수 있지만 운영 체제에 관한 한 이는 기본 작업 단위입니다. 모든 프로세스에는 이미지(실행 중인 실행 파일), 작업 디렉터리, (자원 할당), 메모리 주소 공간, CPU 및 I/O 우선 순위 등. 메모장을 실행하면 notepad.exe를 사용하여 프로세스가 시작되고 상호 작용할 수 있는 창이 열립니다.

포트는 리소스입니다. 운영 체제에는 특정 수의 사용 가능한 포트(65535)가 있으며 프로세스는 포트의 독점 사용을 얻기 위해 핸들을 요청할 수 있습니다. 프로세스는 사용하지 않는 포트에 대한 핸들을 원하는 수만큼 얻을 수 있습니다. 네트워크 통신을 위해서는 포트가 필요합니다. 나가는 연결(예: 웹 서버에 연결하는 브라우저)을 위해 선택된 포트 번호는 본질적으로 임의적입니다. 그것들은 당신이 신경 쓸 필요가 없는 의미를 가지고 있습니다.

이것은 모두 단순화된 개요이므로 그대로 받아들이지 마십시오.감독자정확한.

관련 정보