특정 패킷을 임시로 저장하여 패킷 흐름을 변경하려고 합니다.
예를 들어, 패킷 번호가 1, 2, 3, 4, 5 등인 경우 필요할 때 패킷 2를 해제할 수 있도록 패킷 2를 임시로 저장하고 싶습니다. 즉, 클라이언트는 1,3,,4,5,$ 임의의 숫자를 받게 됩니다.2
#RELEASEPACKETMAGICCOMMAND를 실행하기 전에 #HOLDPACKETMAGICCOMMAND 패킷 3을 찾는 데 도움을 주실 수 있나요?
특정 패킷에 대한 iptables 통계 속성의 구현을 살펴봤지만 거부/삭제만 찾을 수 있었습니다. 불행하게도 이 두 사람은 패킷을 복구 가능한 배열(예: 저장소)에 저장하는 대신 패킷을 삭제했습니다.
TCPFLOW를 살펴봤지만 원본 패킷의 복사본만 메모리가 아닌 파일에 저장합니다.
iptables에서 MAGICPACKETHOLD 명령을 찾는 것보다 더 좋은 방법이 있습니까?
답변1
네트워크에 패킷을 저장한다는 개념은 없습니다.
패킷은 목적지에 도달하거나 손실됩니다(거부/삭제).
또한 TCP에서는 패킷이 순서대로 정렬되어 있어야 하며, 패킷이 순서대로 수신되지 않으면 순서가 변경됩니다. 패킷이 손실되면 수신이 중단됩니다.
패킷을 버퍼에 넣을 수 있으면 수신 애플리케이션은 단순히 재전송을 요청합니다. 애플리케이션은 순서를 복원하고 손실된 특정 패킷부터 전송을 계속하려고 시도합니다.
따라서 패킷을 보존할 수 있더라도 전송 방법을 변경할 수는 없습니다.
답변2
Linux 패키지에 관심이 있을 수 있습니다.교통 통제( tc
)는 의 일부입니다 iproute2
. 적어도 이를 사용하면 무작위로 속도를 늦추거나(인수 ) 패킷을 삭제할 수 있습니다 delay
( reorder
인수 loss
). 좋은 출발점이 될 수 있습니다https://wiki.debian.org/TrafficControl,흐름 제어 사용그리고필터를 만드는 방법.