링크 및 노드 오류에서의 신뢰성을 검사하기 위해 TCP 프로토콜을 테스트 중이며, ACK가 클라이언트로 손실되면 ACK 응답이 매우 빠르다는 것을 테스트하고 싶습니다. 이더넷 케이블을 꺼내십시오. ACK를 지연시킬 방법이 있습니까? 아니면 다른 목적을 달성 할 수있는 방법이 있습니까?클라이언트 측에서 서버 쪽에서 TCP ACK를 지연시킬 수 있습니까?
-1
A
답변
0
ACK를 지연 시키도록 커널에 알릴 방법이 없습니다. ACK가 손실되고 연결이 양쪽 측면에서 멈춘 것처럼 보일 경우 많은 재 시도가있을 수 있습니다.
TCP/IP를 테스트하기로 결정한 경우 Scapy와 같은 도구를 사용하여 간단한 TCP/IP 스택 구현을 빌드하면 요청한 작업을 수행 할 수 있습니다. 그렇게 할 경우 RST 패킷 전송을 방지하기 위해 호스트 기반 방화벽을 구성해야합니다. 다음은 모든 포트에 대한 SYN에 대한 응답으로 세 방향 핸드 셰이크를 완료하는 간단한 예입니다.
#!/usr/bin/python
from scapy.all import *
# My starting sequence number
sequence=100
# Wait for an inbound syn
packets=sniff(filter="tcp[13]&0x02 != 0", count=1, iface="eth0")
syn = packets[0]
my_ack = syn.getlayer("TCP").seq + 1
dest = syn.getlayer("IP").src
sport = syn.getlayer("TCP").dport
dport = syn.getlayer("TCP").sport
target = IP(dst=dest)
tcp_layer = TCP(sport=sport, dport=dport, ack=my_ack, seq=sequence, flags="SA")
response = sr1(target/tcp_layer)
synack = response[0]
target = IP(dst=dest)
tcp_layer=TCP(sport=sport, dport=dport, ack=my_ack, seq=sequence, flags="A")
send(target/tcp_layer)
+0
매우 유용합니다. –
+0
그럴 경우 upvote가 인정 될 것입니다. –
관련 문제
- 1. 서버 쪽에서 mongo에 연결할 때까지 클라이언트 측에서 대기하는 방법은 무엇입니까?
- 2. 클라이언트 측에서 텍스트 상자가 여전히 서버 쪽에서 사용되도록 설정되어 있습니다.
- 3. TCP 클라이언트/서버
- 4. 클라이언트 주소가 서버 쪽에서 null입니다.
- 5. 클라이언트 측에서 화면을 캡쳐하여 서버 측에 저장할 수 있습니까? (PHP)
- 6. 클라이언트 쪽에서 ASP.NET 텍스트 필드를 암호화하고 서버 쪽에서 암호 해독
- 7. ASP.NET : 서버 쪽에서 클라이언트 쪽을 업데이트하는 방법?
- 8. 클라이언트 서버 - (TCP)
- 9. $ _SESSION 변수를 클라이언트 쪽에서 변경할 수 있습니까?
- 10. 서버 측에서 클라이언트 측에서 Python 스크립트 실행
- 11. node.js 클라이언트 쪽에서 서버 측 기능 실행
- 12. 서버 측에서 스레드를 실행하고 클라이언트 측에서 진행 상황을 표시 할 수 있습니까?
- 13. UDP 서버, TCP 클라이언트?
- 14. TCP 클라이언트 - 서버 SIGPIPE
- 15. 서버 쪽에서 액세스 클라이언트 측 변수
- 16. HazelCast MapStore를 클라이언트 측에서 구현할 수 있습니까?
- 17. 인디 TCP 클라이언트/서버
- 18. 안드로이드 TCP 서버/클라이언트
- 19. TCP 클라이언트 서버 문제
- 20. Ruby TCP 클라이언트 서버
- 21. 클라이언트 측에서 서버 측으로의 호출
- 22. TCP 클라이언트/서버
- 23. 클라이언트 - 서버 TCP 통신
- 24. 클라이언트 쪽에서 캐싱에 문제가 있습니까?
- 25. 안드로이드 TCP 서버 클라이언트
- 26. TCP 스레드 서버/클라이언트
- 27. Java TCP 클라이언트/서버
- 28. 는 서버 측에서 클라이언트 측
- 29. 클라이언트 쪽에서 파일을 열 수 없습니다. 서버 쪽을 사용 중입니다.
- 30. 서버 쪽에서 파일을 gzip하고 브라우저에서 투명하게 풀 수 있습니까?
응용 프로그램을 테스트하십시오. 플랫폼을 테스트하지 마십시오. 그걸 테스트 해 봤어. 시간을 낭비하지 마십시오. 플랫폼 버그를 발견하면 정확히 그것에 대해 무엇을 할 것입니까? – EJP