이더넷에 도착한 후 패킷을 관리하는 Linux 서비스

이더넷에 도착한 후 패킷을 관리하는 Linux 서비스

저는 TCP 3방향 핸드셰이크에 어떤 Linux 서비스/프로세스가 관련되어 있는지 이해하려고 노력하고 있습니다. 예를 들어 누가 거부 플래그 [R.]와 함께 SYN 요청을 보내는가입니다.

예: 포트 8088이 수신 중이고 8089가 열려 있습니다. 두 포트 모두에서 연결 요청을 발행한 후 tcpdump 출력은 다음과 같습니다.

8089의 경우:

$ sudo tcpdump -i any -nn port 8088 or port 8089
04:23:12.260621 IP 192.168.112.129.52298 > 192.168.112.129.8089: Flags [S], seq 300539809, win 43690, options [mss 65495,sackOK,TS val 19840756 ecr 0,nop,wscale 7], length 0
04:23:12.260637 IP 192.168.112.129.8089 > 192.168.112.129.52298: Flags [R.], seq 0, ack 300539810, win 0, length 0

8088의 경우:

$ sudo tcpdump -i any -nn port 8088 or port 8089
04:23:21.680070 IP 192.168.112.129.42814 > 192.168.112.129.8088: Flags [S], seq 670408355, win 43690, options [mss 65495,sackOK,TS val 19850176 ecr 0,nop,wscale 7], length 0
04:23:21.680087 IP 192.168.112.129.8088 > 192.168.112.129.42814: Flags [S.], seq 1185731197, ack 670408356, win 43690, options [mss 65495,sackOK,TS val 19850176 ecr 19850176,nop,wscale 7], length 0
04:23:21.680098 IP 192.168.112.129.42814 > 192.168.112.129.8088: Flags [.], ack 1, win 342, options [nop,nop,TS val 19850176 ecr 19850176], length 0

그렇다면 여기서 [R.] 8089 및 [S.] SYN-ACK 8088을 보내는 Linux 서비스는 무엇입니까? 또한 패킷이 수신기에 어떻게 도달하며 트래픽 양은 얼마나 됩니까? 8089에서 패킷을 삭제하기 위해 방화벽 규칙(iptables 사용)을 추가할 때 프로세스는 무엇입니까?

미리 감사드립니다 :)

답변1

TCP 패킷의 플래그는 서비스 및 프로세스에서 직접 관리되지 않습니다.

socket()일반적으로 개발자는 표준 POSIX 인터페이스를 사용하여 네트워크 기능( , connect(), listen(), 등) bind()을 개발합니다 .accept()

Linux 커널은 이러한 호출의 기본 수신자입니다.

  • 리소스는 서비스에 할당되며( socket()예: 호출 시) 리소스가 이미 사용 중이면(예: bind()이미 사용된 주소/포트 쌍 사용) 호출 프로세스에 적절한 오류가 반환됩니다.

  • 실제 TCP 스택 콘텐츠(예: 개발자가 호출할 때 3방향 핸드셰이크)를 관리 connect()하거나 요청된 주소/포트 쌍에 바인딩된 서비스가 없는 경우(또는 서비스가 연결을 거부하는 경우) RST를 반환합니다.

  • 외부로부터 패킷을 수신하고 그 내용을 적절한 프로세스( 주소/포트에서 완료되었거나 왔고 실제로 호출 중이 bind()거나 문제의 소켓에 있는 프로세스)로 전달합니다.connect()recv()read()

프로세스에 들어가기 전에 네트워크 트래픽이 허용되는지 확인하기 위해 방화벽이 트리거됩니다. 따라서 TCP/8000을 수신하는 서비스가 있더라도 방화벽이 해당 서비스에 대한 연결을 허용하지 않으면 다음과 같은 결과가 발생합니다.

  • Aiptables RST정책이나 규칙이 REJECT.
  • iptables 정책이나 규칙이 실행되면 시간 초과가 발생합니다 IGNORE.

관련 정보