ืกื™ืžื•ืœืึทื˜ื™ื ื’ ื ืขืฅ ืคึผืจืึธื‘ืœืขืžืก ืื™ืŸ ืœื™ื ื•ืงืก

ื”ืขืœื ืึทืœืขืžืขืŸ, ืžื™ื™ืŸ ื ืึธืžืขืŸ ืื™ื– ืกืึทืฉืึท, ืื™ืš ืคื™ืจืŸ ื‘ืึทืงืขื ื“ ื˜ืขืกื˜ื™ื ื’ ื‘ื™ื™ FunCorp. ืžื™ืจ, ื•ื•ื™ ืคื™ืœืข ืื ื“ืขืจืข, ื”ืึธื‘ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืึท ื“ื™ื ืกื˜-ืึธืจื™ืขื ื˜ื™ื“ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ. ืื•ื™ืฃ ื“ื™ ืื™ื™ืŸ ื”ืึทื ื˜, ื“ืึธืก ืกื™ืžืคึผืœืึทืคื™ื™ื– ื“ื™ ืึทืจื‘ืขื˜, ื•ื•ื™ื™ึทืœ ... ืขืก ืื™ื– ื’ืจื™ื ื’ืขืจ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ื™ืขื“ืขืจ ื“ื™ื ืกื˜ ืกืขืคึผืขืจืึทื˜ืœื™, ืึธื‘ืขืจ ืื•ื™ืฃ ื“ื™ ืื ื“ืขืจืข ื”ืึทื ื˜, ืขืก ืื™ื– ืึท ื ื•ื™ื˜ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ื“ื™ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืคื•ืŸ ืกืขืจื•ื•ื™ืกืขืก ืžื™ื˜ ื™ืขื“ืขืจ ืื ื“ืขืจืข, ื•ื•ืึธืก ืึธืคื˜ ืึทืงืขืจื– ืื™ื‘ืขืจ ื“ื™ ื ืขืฅ.

ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืื™ืš ื•ื•ืขืœ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ืฆื•ื•ื™ื™ ื™ื•ื˜ื™ืœืึทื˜ื™ื– ื•ื•ืึธืก ืงืขื ืขืŸ ื•ื•ืขืจืŸ ื’ืขื ื•ืฆื˜ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื™ืงืขืจื“ื™ืง ืกื™ื ืขืจื™ืึธื•ื– ื•ื•ืึธืก ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ ื“ืขื ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ื ืขืฅ ืคึผืจืึธื‘ืœืขืžืก.

ืกื™ืžื•ืœืึทื˜ื™ื ื’ ื ืขืฅ ืคึผืจืึธื‘ืœืขืžืก ืื™ืŸ ืœื™ื ื•ืงืก

ืกื™ืžื•ืœืึทื˜ื™ื ื’ ื ืขืฅ ืคึผืจืึธื‘ืœืขืžืก

ื˜ื™ืคึผื™ืงืึทืœืœื™, ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืื™ื– ื˜ืขืกื˜ืขื“ ืื•ื™ืฃ ืคึผืจื•ื‘ื™ืจืŸ ืกืขืจื•ื•ืขืจืก ืžื™ื˜ ืึท ื’ื•ื˜ ืื™ื ื˜ืขืจื ืขื˜ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’. ืื™ืŸ ื”ืึทืจื‘ ืคึผืจืึธื“ื•ืงืฆื™ืข ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ, ื“ื™ ื˜ื™ื ื’ื– ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืึทื–ื•ื™ ื’ืœืึทื˜, ืึทื–ื•ื™ ืžืืœ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ืžื’ื™ืœื” ืื™ืŸ ื ืขื‘ืขืš ืงืฉืจ ื˜ื ืึธื™ื. ืื•ื™ืฃ ืœื™ื ื•ืงืก, ื“ื™ ื ื•ืฆืŸ ื•ื•ืขื˜ ื”ืขืœืคืŸ ืžื™ื˜ ื“ื™ ืึทืจื‘ืขื˜ ืคื•ืŸ ืกื™ืžื™ืึทืœื™ื™ื˜ื™ื ื’ ืึทื–ืึท ื˜ื ืึธื™ื tc.

ื˜ืง(ืึทื‘ืจ. ืคื•ืŸ ืคืึทืจืงืขืจ ืงืึธื ื˜ืจืึธืœ) ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ื“ื™ ื˜ืจืึทื ืกืžื™ืกื™ืข ืคื•ืŸ โ€‹โ€‹ื ืขืฅ ืคึผืึทืงื™ืฅ ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื. ื“ืขื ื ื•ืฆืŸ ื”ืื˜ ื’ืจื•ื™ืก ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื–, ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ืขื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ ื–ื™ื™ ื“ืึธ. ื“ืึธ ืื™ืš ื•ื•ืขื˜ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื‘ืœื•ื™ื– ืึท ื‘ื™ืกืœ ืคื•ืŸ ื–ื™ื™: ืžื™ืจ ื–ืขื ืขืŸ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ืคืึทืจืงืขืจ ืกืงืขื“ื–ืฉื•ืœื™ื ื’, ืคึฟืึทืจ ื•ื•ืึธืก ืžื™ืจ ื ื•ืฆืŸ qdisc, ืื•ืŸ ื–ื™ื ื˜ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืขืžื™ืึทืœื™ื™ื˜ ืึทืŸ ืึทื ืกื˜ื™ื™ื‘ืึทืœ ื ืขืฅ, ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ ืงืœืึทืกืœืขืกืก ืงื“ื™ืกืง ื ืขื˜ืขื.

ืœืึธืžื™ืจ ืงืึทื˜ืขืจ ืึทืŸ ืขืงืึธื• ืกืขืจื•ื•ืขืจ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ (ืื™ืš ื’ืขื•ื•ื™ื™ื ื˜ nmap-ncat):

ncat -l 127.0.0.1 12345 -k -c 'xargs -n1 -i echo "Response: {}"'

ืื™ืŸ ืกื“ืจ ืฆื• ื•ื•ื™ื™ึทื–ืŸ ืื™ืŸ ื“ืขื˜ืึทืœ ืึทืœืข ื“ื™ ื˜ื™ืžืขืกื˜ืึทืžืคึผืก ืื™ืŸ ื™ืขื“ืขืจ ืฉืจื™ื˜ ืคื•ืŸ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืฆื•ื•ื™ืฉืŸ ื“ืขื ืงืœื™ืขื ื˜ ืื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ, ืื™ืš ื’ืขืฉืจื™ื‘ืŸ ืึท ืคึผืฉื•ื˜ ืคึผื™ื˜ื”ืึธืŸ ืฉืจื™ืคื˜ ื•ื•ืึธืก ืกืขื ื“ื– ืึท ื‘ืงืฉื” ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืื•ื ื“ื–ืขืจ ืขืงืึธื• ืกืขืจื•ื•ืขืจ.

ืงืœื™ืขื ื˜ ืžืงื•ืจ ืงืึธื“

#!/bin/python

import socket
import time

HOST = '127.0.0.1'
PORT = 12345
BUFFER_SIZE = 1024
MESSAGE = "Testn"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
t1 = time.time()
print "[time before connection: %.5f]" % t1
s.connect((HOST, PORT))
print "[time after connection, before sending: %.5f]" % time.time()
s.send(MESSAGE)
print "[time after sending, before receiving: %.5f]" % time.time()
data = s.recv(BUFFER_SIZE)
print "[time after receiving, before closing: %.5f]" % time.time()
s.close()
t2 = time.time()
print "[time after closing: %.5f]" % t2
print "[total duration: %.5f]" % (t2 - t1)

print data

ื–ืืœ ืก ืงืึทื˜ืขืจ ืขืก ืื•ืŸ ืงื•ืง ืื™ืŸ ื“ื™ ืคืึทืจืงืขืจ ืื•ื™ืฃ ื“ื™ ืฆื•ื‘ื™ื ื“ lo ืื•ืŸ ืคึผืึธืจื˜ 12345:

[user@host ~]# python client.py
[time before connection: 1578652979.44837]
[time after connection, before sending: 1578652979.44889]
[time after sending, before receiving: 1578652979.44894]
[time after receiving, before closing: 1578652979.45922]
[time after closing: 1578652979.45928]
[total duration: 0.01091]
Response: Test

ืคืึทืจืงืขืจ ื“ืึทืžืคึผ

[user@host ~]# tcpdump -i lo -nn port 12345
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
10:42:59.448601 IP 127.0.0.1.54054 > 127.0.0.1.12345: Flags [S], seq 3383332866, win 43690, options [mss 65495,sackOK,TS val 606325685 ecr 0,nop,wscale 7], length 0
10:42:59.448612 IP 127.0.0.1.12345 > 127.0.0.1.54054: Flags [S.], seq 2584700178, ack 3383332867, win 43690, options [mss 65495,sackOK,TS val 606325685 ecr 606325685,nop,wscale 7], length 0
10:42:59.448622 IP 127.0.0.1.54054 > 127.0.0.1.12345: Flags [.], ack 1, win 342, options [nop,nop,TS val 606325685 ecr 606325685], length 0
10:42:59.448923 IP 127.0.0.1.54054 > 127.0.0.1.12345: Flags [P.], seq 1:6, ack 1, win 342, options [nop,nop,TS val 606325685 ecr 606325685], length 5
10:42:59.448930 IP 127.0.0.1.12345 > 127.0.0.1.54054: Flags [.], ack 6, win 342, options [nop,nop,TS val 606325685 ecr 606325685], length 0
10:42:59.459118 IP 127.0.0.1.12345 > 127.0.0.1.54054: Flags [P.], seq 1:15, ack 6, win 342, options [nop,nop,TS val 606325696 ecr 606325685], length 14
10:42:59.459213 IP 127.0.0.1.54054 > 127.0.0.1.12345: Flags [.], ack 15, win 342, options [nop,nop,TS val 606325696 ecr 606325696], length 0
10:42:59.459268 IP 127.0.0.1.54054 > 127.0.0.1.12345: Flags [F.], seq 6, ack 15, win 342, options [nop,nop,TS val 606325696 ecr 606325696], length 0
10:42:59.460184 IP 127.0.0.1.12345 > 127.0.0.1.54054: Flags [F.], seq 15, ack 7, win 342, options [nop,nop,TS val 606325697 ecr 606325696], length 0
10:42:59.460196 IP 127.0.0.1.54054 > 127.0.0.1.12345: Flags [.], ack 16, win 342, options [nop,nop,TS val 606325697 ecr 606325697], length 0

ืึทืœืฅ ืื™ื– ื ืึธืจืžืึทืœ: ืึท ื“ืจื™ื™-ื•ื•ืขื’ ื›ืึทื ื“ืฉื™ื™ืง, PSH / ACK ืื•ืŸ ACK ืื™ืŸ ืขื ื˜ืคืขืจ ืฆื•ื•ื™ื™ ืžืึธืœ - ื“ืึธืก ืื™ื– ื“ืขืจ ื•ื•ืขืงืกืœ ืคื•ืŸ ื‘ืขื˜ืŸ ืื•ืŸ ืขื ื˜ืคืขืจ ืฆื•ื•ื™ืฉืŸ ื“ืขื ืงืœื™ืขื ื˜ ืื•ืŸ ืกืขืจื•ื•ืขืจ, ืื•ืŸ FIN / ACK ืื•ืŸ ACK ืฆื•ื•ื™ื™ ืžืึธืœ - ืงืึทืžืคึผืœื™ื˜ื™ื ื’ ื“ื™ ืงืฉืจ.

ืคึผืึทืงืึทื˜ ืคืึทืจื”ืึทืœื˜ืŸ

ืื™ืฆื˜ ืœืึธืžื™ืจ ืฉื˜ืขืœืŸ ื“ื™ ืคืึทืจื”ืึทืœื˜ืŸ ืฆื• 500 ืžื™ืœื™ืกืขืงืึทื ื“ื–:

tc qdisc add dev lo root netem delay 500ms

ืžื™ืจ ืงืึทื˜ืขืจ ื“ืขื ืงืœื™ืขื ื˜ ืื•ืŸ ื–ืขืŸ ืึทื– ื“ื™ ืฉืจื™ืคื˜ ืœื•ื™ืคื˜ ืื™ืฆื˜ ืคึฟืึทืจ 2 ืกืขืงื•ื ื“ืขืก:

[user@host ~]# ./client.py
[time before connection: 1578662612.71044]
[time after connection, before sending: 1578662613.71059]
[time after sending, before receiving: 1578662613.71065]
[time after receiving, before closing: 1578662614.72011]
[time after closing: 1578662614.72019]
[total duration: 2.00974]
Response: Test

ื•ื•ืึธืก ืื™ื– ืื™ืŸ ื“ื™ ืคืึทืจืงืขืจ? ืœืืžื™ืจ ืงื•ืงืŸ:

ืคืึทืจืงืขืจ ื“ืึทืžืคึผ

13:23:33.210520 IP 127.0.0.1.58694 > 127.0.0.1.12345: Flags [S], seq 1720950927, win 43690, options [mss 65495,sackOK,TS val 615958947 ecr 0,nop,wscale 7], length 0
13:23:33.710554 IP 127.0.0.1.12345 > 127.0.0.1.58694: Flags [S.], seq 1801168125, ack 1720950928, win 43690, options [mss 65495,sackOK,TS val 615959447 ecr 615958947,nop,wscale 7], length 0
13:23:34.210590 IP 127.0.0.1.58694 > 127.0.0.1.12345: Flags [.], ack 1, win 342, options [nop,nop,TS val 615959947 ecr 615959447], length 0
13:23:34.210657 IP 127.0.0.1.58694 > 127.0.0.1.12345: Flags [P.], seq 1:6, ack 1, win 342, options [nop,nop,TS val 615959947 ecr 615959447], length 5
13:23:34.710680 IP 127.0.0.1.12345 > 127.0.0.1.58694: Flags [.], ack 6, win 342, options [nop,nop,TS val 615960447 ecr 615959947], length 0
13:23:34.719371 IP 127.0.0.1.12345 > 127.0.0.1.58694: Flags [P.], seq 1:15, ack 6, win 342, options [nop,nop,TS val 615960456 ecr 615959947], length 14
13:23:35.220106 IP 127.0.0.1.58694 > 127.0.0.1.12345: Flags [.], ack 15, win 342, options [nop,nop,TS val 615960957 ecr 615960456], length 0
13:23:35.220188 IP 127.0.0.1.58694 > 127.0.0.1.12345: Flags [F.], seq 6, ack 15, win 342, options [nop,nop,TS val 615960957 ecr 615960456], length 0
13:23:35.720994 IP 127.0.0.1.12345 > 127.0.0.1.58694: Flags [F.], seq 15, ack 7, win 342, options [nop,nop,TS val 615961457 ecr 615960957], length 0
13:23:36.221025 IP 127.0.0.1.58694 > 127.0.0.1.12345: Flags [.], ack 16, win 342, options [nop,nop,TS val 615961957 ecr 615961457], length 0

ืื™ืจ ืงืขื ืขืŸ ื–ืขืŸ ืึทื– ื“ื™ ื“ืขืจื•ื•ืึทืจื˜ ืึธืคึผืฉื˜ื™ื™ ืคื•ืŸ ืึท ื”ืึทืœื‘ ืจื’ืข ืื™ื– ืืจื•ื™ืก ืื™ืŸ ื“ื™ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืฆื•ื•ื™ืฉืŸ ื“ืขื ืงืœื™ืขื ื˜ ืื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ. ื“ื™ ืกื™ืกื˜ืขื ื‘ื™ื›ื™ื™ื•ื•ื– ืคื™ืœ ืžืขืจ ื™ื ื˜ืขืจืขืกื˜ื™ื ื’ืœื™ ืื•ื™ื‘ ื“ื™ ืึธืคึผืฉื˜ื™ื™ ืื™ื– ื’ืจืขืกืขืจ: ื“ืขืจ ืงืขืจืŸ ื”ื™ื™ื‘ื˜ ืฆื• ืจืขืกืขื ื“ ืขื˜ืœืขื›ืข ื˜ืงืคึผ ืคึผืึทืงื™ืฅ. ืœืึธืžื™ืจ ื˜ื•ื™ืฉืŸ ื“ื™ ืคืึทืจื”ืึทืœื˜ืŸ ืฆื• 1 ืกืขืงื•ื ื“ืข ืื•ืŸ ืงื•ืง ืื™ืŸ ื“ื™ ืคืึทืจืงืขืจ (ืื™ืš ื•ื•ืขืœ ื ื™ืฉื˜ ื•ื•ื™ื™ึทื–ืŸ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ืขื ืงืœื™ืขื ื˜, ืขืก ื–ืขื ืขืŸ ื“ื™ ื“ืขืจื•ื•ืึทืจื˜ 4 ืกืขืงื•ื ื“ืขืก ืื™ืŸ ื’ืึทื ืฅ ื’ืขื“ื•ื™ืขืจ):

tc qdisc change dev lo root netem delay 1s

ืคืึทืจืงืขืจ ื“ืึทืžืคึผ

13:29:07.709981 IP 127.0.0.1.39306 > 127.0.0.1.12345: Flags [S], seq 283338334, win 43690, options [mss 65495,sackOK,TS val 616292946 ecr 0,nop,wscale 7], length 0
13:29:08.710018 IP 127.0.0.1.12345 > 127.0.0.1.39306: Flags [S.], seq 3514208179, ack 283338335, win 43690, options [mss 65495,sackOK,TS val 616293946 ecr 616292946,nop,wscale 7], length 0
13:29:08.711094 IP 127.0.0.1.39306 > 127.0.0.1.12345: Flags [S], seq 283338334, win 43690, options [mss 65495,sackOK,TS val 616293948 ecr 0,nop,wscale 7], length 0
13:29:09.710048 IP 127.0.0.1.39306 > 127.0.0.1.12345: Flags [.], ack 1, win 342, options [nop,nop,TS val 616294946 ecr 616293946], length 0
13:29:09.710152 IP 127.0.0.1.39306 > 127.0.0.1.12345: Flags [P.], seq 1:6, ack 1, win 342, options [nop,nop,TS val 616294947 ecr 616293946], length 5
13:29:09.711120 IP 127.0.0.1.12345 > 127.0.0.1.39306: Flags [S.], seq 3514208179, ack 283338335, win 43690, options [mss 65495,sackOK,TS val 616294948 ecr 616292946,nop,wscale 7], length 0
13:29:10.710173 IP 127.0.0.1.12345 > 127.0.0.1.39306: Flags [.], ack 6, win 342, options [nop,nop,TS val 616295947 ecr 616294947], length 0
13:29:10.711140 IP 127.0.0.1.39306 > 127.0.0.1.12345: Flags [.], ack 1, win 342, options [nop,nop,TS val 616295948 ecr 616293946], length 0
13:29:10.714782 IP 127.0.0.1.12345 > 127.0.0.1.39306: Flags [P.], seq 1:15, ack 6, win 342, options [nop,nop,TS val 616295951 ecr 616294947], length 14
13:29:11.714819 IP 127.0.0.1.39306 > 127.0.0.1.12345: Flags [.], ack 15, win 342, options [nop,nop,TS val 616296951 ecr 616295951], length 0
13:29:11.714893 IP 127.0.0.1.39306 > 127.0.0.1.12345: Flags [F.], seq 6, ack 15, win 342, options [nop,nop,TS val 616296951 ecr 616295951], length 0
13:29:12.715562 IP 127.0.0.1.12345 > 127.0.0.1.39306: Flags [F.], seq 15, ack 7, win 342, options [nop,nop,TS val 616297952 ecr 616296951], length 0
13:29:13.715596 IP 127.0.0.1.39306 > 127.0.0.1.12345: Flags [.], ack 16, win 342, options [nop,nop,TS val 616298952 ecr 616297952], length 0

ืžืขืŸ ืงืขืŸ ื–ืขืŸ ืึทื– ื“ืขืจ ืงืœื™ืขื ื˜ ื”ืึธื˜ ืฆื•ื•ื™ื™ ืžืึธืœ ื’ืขืฉื™ืงื˜ ืึท SYN ืคึผืึทืงืึทื˜, ืื•ืŸ ื“ืขืจ ืกืขืจื•ื•ืขืจ ื”ืึธื˜ ืฆื•ื•ื™ื™ ืžืึธืœ ื’ืขืฉื™ืงื˜ ืึท SYN/ACK.

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ืึท ืงืขืกื™ื™ื“ืขืจื“ื™ืง ื•ื•ืขืจื˜, ื“ื™ ืคืึทืจื”ืึทืœื˜ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืึทืฉื˜ื™ืžื˜ ืฆื• ืึท ื“ื™ื•ื•ื™ื™ื™ืฉืึทืŸ, ืึท ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืคึฟื•ื ืงืฆื™ืข ืื•ืŸ ืึท ืงืึธืจืึทืœื™ื™ืฉืึทืŸ (ืžื™ื˜ ื“ื™ ื•ื•ืขืจื˜ ืคึฟืึทืจ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืคึผืึทืงืึทื˜). ื“ืึธืก ืื™ื– ื’ืขื˜ืืŸ ื•ื•ื™ ื’ื™ื™ื˜:

tc qdisc change dev lo root netem delay 500ms 400ms 50 distribution normal

ื“ืึธ ืžื™ืจ ื”ืึธื‘ืŸ ื‘ืึทืฉื˜ื™ืžื˜ ื“ื™ ืคืึทืจื”ืึทืœื˜ืŸ ืฆื•ื•ื™ืฉืŸ 100 ืื•ืŸ 900 ืžื™ืœื™ืกืขืงืึทื ื“ื–, ื“ื™ ื•ื•ืึทืœื•ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ืœื•ื™ื˜ ืึท ื ืึธืจืžืึทืœ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืื•ืŸ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึท 50% ืงืึธืจืึทืœื™ื™ืฉืึทืŸ ืžื™ื˜ ื“ื™ ืคืึทืจื”ืึทืœื˜ืŸ ื•ื•ืขืจื˜ ืคึฟืึทืจ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืคึผืึทืงืึทื˜.

ืื™ืจ ืงืขืŸ ื”ืึธื‘ืŸ ื‘ืืžืขืจืงื˜ ืึทื– ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ื‘ืึทืคึฟืขืœ ืื™ืš ื’ืขื•ื•ื™ื™ื ื˜ ืฆื•ื’ืขื‘ืŸ, ืื•ืŸ ื“ืืŸ ื˜ื•ื™ืฉืŸ. ื“ืขืจ ื˜ื™ื™ึทื˜ืฉ ืคื•ืŸ ื“ื™ ืงืึทืžืึทื ื“ื– ืื™ื– ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’, ืึทื–ื•ื™ ืื™ืš ื•ื•ืขื˜ ื ืึธืจ ืœื™ื™ื’ืŸ ืึทื– ืขืก ืื™ื– ืžืขืจ ื“ืขืœ, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ.

ืคึผืึทืงืึทื˜ ืœืึธืก

ื–ืืœ ืก ืื™ืฆื˜ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ื˜ืึธืŸ ืคึผืึทืงืึทื˜ ืึธื ื•ื•ืขืจ. ื•ื•ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื–ืขืŸ ืคื•ืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ, ื“ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ืื™ืŸ ื“ืจื™ื™ ื•ื•ืขื’ืŸ: ืจืึทื ื“ืึทืžืœื™ ืœื•ื–ื™ื ื’ ืคึผืึทืงื™ืฅ ืžื™ื˜ ืขื˜ืœืขื›ืข ืžืึทืฉืžืึธืขืก, ื ื™ืฆืŸ ืึท ืžืึทืจืงืึธื•ื• ืงื™ื™ื˜ ืคื•ืŸ 2, 3 ืึธื“ืขืจ 4 ืฉื˜ืึทื˜ืŸ ืฆื• ืจืขื›ืขื ืขืŸ ืคึผืึทืงืึทื˜ ืึธื ื•ื•ืขืจ, ืึธื“ืขืจ ื ื™ืฆืŸ ื“ื™ Elliott-Gilbert ืžืึธื“ืขืœ. ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ืš ื•ื•ืขื˜ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ืขืจืฉื˜ืขืจ (ืกื™ืžืคึผืึทืกื˜ ืื•ืŸ ืžืขืจืกื˜ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’) ืื•ืคึฟืŸ, ืื•ืŸ ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ืขื ืขืŸ ื•ื•ืขื’ืŸ ืื ื“ืขืจืข ื“ืึธ.

ืœืึธืžื™ืจ ืžืึทื›ืŸ ื“ื™ ืึธื ื•ื•ืขืจ ืคื•ืŸ 50% ืคื•ืŸ ืคึผืึทืงื™ืฅ ืžื™ื˜ ืึท ืงืึธืจืึทืœื™ื™ืฉืึทืŸ ืคื•ืŸ 25%:

tc qdisc add dev lo root netem loss 50% 25%

ืœื™ื™ื“ืขืจ, ื˜ืงืคึผื“ื•ืžืคึผ ื•ื•ืขื˜ ื ื™ืฉื˜ ืงืขื ืขืŸ ืงืœืืจ ื•ื•ื™ื™ึทื–ืŸ ืื•ื ื“ื– ื“ื™ ืึธื ื•ื•ืขืจ ืคื•ืŸ ืคึผืึทืงื™ืฅ, ืžื™ืจ ื•ื•ืขืœืŸ ื ืึธืจ ื™ื‘ืขืจื ืขืžืขืŸ ืึทื– ืขืก ื˜ืึทืงืข ืึทืจื‘ืขื˜. ืื•ืŸ ื“ื™ ื’ืขื•ื•ืืงืกืŸ ืื•ืŸ ืึทื ืกื˜ื™ื™ื‘ืึทืœ ืคืœื™ืกื ื“ื™ืง ืฆื™ื™ื˜ ืคื•ืŸ ื“ื™ ืฉืจื™ืคื˜ ื•ื•ืขื˜ ื”ืขืœืคึฟืŸ ืื•ื ื“ื– ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ืขื. client.py (ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืขื ื“ื™ืงื˜ ื˜ื™ื™ืงืขืฃ, ืึธื“ืขืจ ืืคึฟืฉืจ ืื™ืŸ 20 ืกืขืงื•ื ื“ืขืก), ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืึท ื’ืขื•ื•ืืงืกืŸ ื ื•ืžืขืจ ืคื•ืŸ ืจื™ื˜ืจืึทื ืกืžื™ื˜ื˜ืขื“ ืคึผืึทืงื™ืฅ:

[user@host ~]# netstat -s | grep retransmited; sleep 10; netstat -s | grep retransmited
    17147 segments retransmited
    17185 segments retransmited

ืึทื“ื™ื ื’ ืจืึทืฉ ืฆื• ืคึผืึทืงื™ืฅ

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ืคึผืึทืงืึทื˜ ืึธื ื•ื•ืขืจ, ืื™ืจ ืงืขื ืขืŸ ืกื™ืžื•ืœื™ืจืŸ ืคึผืึทืงืึทื˜ ืฉืขื“ื™ืงืŸ: ืจืึทืฉ ื•ื•ืขื˜ ื“ืขืจืฉื™ื™ึทื ืขืŸ ืื™ืŸ ืึท ื˜ืจืึทืค - ืคึผืึทืงืึทื˜ ืฉื˜ืขืœืข. ืœืึธืžื™ืจ ืžืึทื›ืŸ ืคึผืึทืงืึทื˜ ืฉืขื“ื™ืงืŸ ืžื™ื˜ ืึท 50% ืžืึทืฉืžืึธืขืก ืื•ืŸ ืึธืŸ ืงืึธืจืึทืœื™ื™ืฉืึทืŸ:

tc qdisc change dev lo root netem corrupt 50%

ืžื™ืจ ืœื•ื™ืคืŸ ื“ืขื ืงืœื™ืขื ื˜ ืฉืจื™ืคื˜ (ื’ืึธืจื ื™ืฉื˜ ื˜ืฉื™ืงืึทื•ื•ืข ื“ืึธืจื˜, ืึธื‘ืขืจ ืขืก ื’ืขื ื•ืžืขืŸ 2 ืกืขืงื•ื ื“ืขืก ืฆื• ืคืึทืจืขื ื“ื™ืงืŸ), ืงื•ืง ืื™ืŸ ื“ื™ ืคืึทืจืงืขืจ:

ืคืึทืจืงืขืจ ื“ืึทืžืคึผ

[user@host ~]# tcpdump -i lo -nn port 12345
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
10:20:54.812434 IP 127.0.0.1.43666 > 127.0.0.1.12345: Flags [S], seq 2023663770, win 43690, options [mss 65495,sackOK,TS val 1037001049 ecr 0,nop,wscale 7], length 0
10:20:54.812449 IP 127.0.0.1.12345 > 127.0.0.1.43666: Flags [S.], seq 2104268044, ack 2023663771, win 43690, options [mss 65495,sackOK,TS val 1037001049 ecr 1037001049,nop,wscale 7], length 0
10:20:54.812458 IP 127.0.0.1.43666 > 127.0.0.1.12345: Flags [.], ack 1, win 342, options [nop,nop,TS val 1037001049 ecr 1037001049], length 0
10:20:54.812509 IP 127.0.0.1.43666 > 127.0.0.1.12345: Flags [P.], seq 1:6, ack 1, win 342, options [nop,nop,TS val 1037001049 ecr 1037001049], length 5
10:20:55.013093 IP 127.0.0.1.43666 > 127.0.0.1.12345: Flags [P.], seq 1:6, ack 1, win 342, options [nop,nop,TS val 1037001250 ecr 1037001049], length 5
10:20:55.013122 IP 127.0.0.1.12345 > 127.0.0.1.43666: Flags [.], ack 6, win 342, options [nop,nop,TS val 1037001250 ecr 1037001250], length 0
10:20:55.014681 IP 127.0.0.1.12345 > 127.0.0.1.43666: Flags [P.], seq 1:15, ack 6, win 342, options [nop,nop,TS val 1037001251 ecr 1037001250], length 14
10:20:55.014745 IP 127.0.0.1.43666 > 127.0.0.1.12345: Flags [.], ack 15, win 340, options [nop,nop,TS val 1037001251 ecr 1037001251], length 0
10:20:55.014823 IP 127.0.0.1.43666 > 127.0.0.5.12345: Flags [F.], seq 2023663776, ack 2104268059, win 342, options [nop,nop,TS val 1037001251 ecr 1037001251], length 0
10:20:55.214088 IP 127.0.0.1.12345 > 127.0.0.1.43666: Flags [P.], seq 1:15, ack 6, win 342, options [nop,unknown-65 0x0a3dcf62eb3d,[bad opt]>
10:20:55.416087 IP 127.0.0.1.43666 > 127.0.0.1.12345: Flags [F.], seq 6, ack 15, win 342, options [nop,nop,TS val 1037001653 ecr 1037001251], length 0
10:20:55.416804 IP 127.0.0.1.12345 > 127.0.0.1.43666: Flags [F.], seq 15, ack 7, win 342, options [nop,nop,TS val 1037001653 ecr 1037001653], length 0
10:20:55.416818 IP 127.0.0.1.43666 > 127.0.0.1.12345: Flags [.], ack 16, win 343, options [nop,nop,TS val 1037001653 ecr 1037001653], length 0
10:20:56.147086 IP 127.0.0.1.12345 > 127.0.0.1.43666: Flags [F.], seq 15, ack 7, win 342, options [nop,nop,TS val 1037002384 ecr 1037001653], length 0
10:20:56.147101 IP 127.0.0.1.43666 > 127.0.0.1.12345: Flags [.], ack 16, win 342, options [nop,nop,TS val 1037002384 ecr 1037001653], length 0

ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื–ืขืŸ ืึทื– ืขื˜ืœืขื›ืข ืคึผืึทืงื™ืฅ ื–ืขื ืขืŸ ืจื™ืคึผื™ื˜ื™ื“ืœื™ ื’ืขืฉื™ืงื˜ ืื•ืŸ ืขืก ืื™ื– ืื™ื™ืŸ ืคึผืึทืงืึทื˜ ืžื™ื˜ ืฆืขื‘ืจืื›ืŸ ืžืขื˜ืึทื“ืึทื˜ืึท: ืึธืคึผืฆื™ืขืก [nop,unknown-65 0x0a3dcf62eb3d, [ืฉืœืขื›ื˜ ืึธืคึผื˜]>. ืื‘ืขืจ ื“ื™ ื”ื•ื™ืคึผื˜ ื–ืึทืš ืื™ื– ืึทื– ืื™ืŸ ื“ื™ ืกื•ืฃ ืึทืœืฅ ื’ืขืืจื‘ืขื˜ ืจื™ื›ื˜ื™ืง - ื˜ืงืคึผ ืงืึธื•ืคึผื˜ ืžื™ื˜ ื–ื™ื™ึทืŸ ืึทืจื‘ืขื˜.

ืคึผืึทืงืึทื˜ ื“ื•ืคึผืœื™ืงืึทื˜ื™ืึธืŸ

ื•ื•ืึธืก ืึทื ื“ืขืจืฉ ืงืขื ืขืŸ ืื™ืจ ื˜ืึธืŸ ืžื™ื˜ ื ืขื˜ืขื? ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืกื™ืžื•ืœื™ืจืŸ ื“ื™ ืคืึทืจืงืขืจื˜ ืกื™ื˜ื•ืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืคึผืึทืงืึทื˜ ืึธื ื•ื•ืขืจ - ืคึผืึทืงืึทื˜ ื“ื•ืคึผืœื™ืงื™ื™ืฉืึทืŸ. ื“ืขืจ ื‘ืึทืคึฟืขืœ ืื•ื™ืš ื ืขืžื˜ 2 ืึทืจื’ื•ืžืขื ื˜ืŸ: ืžืึทืฉืžืึธืขืก ืื•ืŸ ืงืึธืจืึทืœื™ื™ืฉืึทืŸ.

tc qdisc change dev lo root netem duplicate 50% 25%

ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ืกื“ืจ ืคื•ืŸ ืคึผืึทืงืึทื“ื–ืฉืึทื–

ืื™ืจ ืงืขื ืขืŸ ืžื™ืฉืŸ ื“ื™ ื‘ืึทื’ืก ืื™ืŸ ืฆื•ื•ื™ื™ ื•ื•ืขื’ืŸ.

ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ, ืขื˜ืœืขื›ืข ืคึผืึทืงื™ืฅ ื–ืขื ืขืŸ ื’ืขืฉื™ืงื˜ ืžื™ื“, ื“ื™ ืžื ื•ื—ื” ืžื™ื˜ ืึท ืกืคึผืขืกื™ืคื™ืขื“ ืคืึทืจื”ืึทืœื˜ืŸ. ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ:

tc qdisc change dev lo root netem delay 10ms reorder 25% 50%

ืžื™ื˜ ืึท ืžืึทืฉืžืึธืขืก ืคื•ืŸ 25% (ืื•ืŸ ืึท ืงืึธืจืึทืœื™ื™ืฉืึทืŸ ืคื•ืŸ 50%) ื“ื™ ืคึผืึทืงืึทื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืžื™ื“, ื“ื™ ืžื ื•ื—ื” ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืžื™ื˜ ืึท ืคืึทืจื”ืึทืœื˜ืŸ ืคื•ืŸ 10 ืžื™ืœื™ืกืขืงืึทื ื“ื–.

ื“ื™ ืฆื•ื•ื™ื™ื˜ืข ืื•ืคึฟืŸ ืื™ื– ื•ื•ืขืŸ ื™ืขื“ืขืจ ื ื˜ ืคึผืึทืงืึทื˜ ืื™ื– ื’ืขืฉื™ืงื˜ ื˜ื™ื™ืงืขืฃ ืžื™ื˜ ืึท ื’ืขื’ืขื‘ืŸ ืžืึทืฉืžืึธืขืก (ืื•ืŸ ืงืึธืจืึทืœื™ื™ืฉืึทืŸ), ืื•ืŸ ื“ื™ ืžื ื•ื—ื” ืžื™ื˜ ืึท ื’ืขื’ืขื‘ืŸ ืคืึทืจื”ืึทืœื˜ืŸ. ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ:

tc qdisc change dev lo root netem delay 10ms reorder 25% 50% gap 5

ื™ืขื“ืขืจ ืคื™ื ืคื˜ ืคึผืขืงืœ ื”ืื˜ ืึท 25% ื’ืขืœืขื’ื ื”ื™ื™ึทื˜ ืฆื• ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืึธืŸ ืคืึทืจื”ืึทืœื˜ืŸ.

ื˜ืฉืึทื ื’ื™ื ื’ ื‘ืึทื ื“ื•ื•ื™ื“ื˜

ื•ืกื•ืึทืœืœื™ ืื•ืžืขื˜ื•ื ื–ื™ื™ ืึธืคึผืฉื™ืงืŸ ืฆื• ื˜ื‘ืฃ, ืึธื‘ืขืจ ืžื™ื˜ ื“ืขืจ ื”ื™ืœืฃ ื ืขื˜ืขื ืื™ืจ ืงืขื ืขืŸ ืื•ื™ืš ื˜ื•ื™ืฉืŸ ื“ื™ ืฆื•ื‘ื™ื ื“ ื‘ืึทื ื“ื•ื•ื™ื“ื˜:

tc qdisc change dev lo root netem rate 56kbit

ื“ืขื ืงืึธืœืขืงื˜ื™ื•ื• ื•ื•ืขื˜ ืžืึทื›ืŸ ื˜ืจืขืงืก ืึทืจื•ื ืœืึธืงืึทืœื”ืึธืกื˜ ื•ื•ื™ ื•ื•ื™ื™ื˜ื™ืงื“ื™ืง ื•ื•ื™ ืกืขืจืคื™ื ื’ ื“ื™ ืื™ื ื˜ืขืจื ืขื˜ ื“ื•ืจืš ืึท ืจืขื“ืœ-ืึทืจื•ื™ืฃ ืžืึธื“ืขื. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ื™ ื‘ื™ื˜ืจืึทื˜ืข, ืื™ืจ ืงืขื ืขืŸ ืื•ื™ืš ืขืžื™ืึทืœื™ื™ื˜ ื“ื™ ืœื™ื ืง ืฉื™ื›ื˜ืข ืคึผืจืึธื˜ืึธืงืึธืœ ืžืึธื“ืขืœ: ืฉื˜ืขืœืŸ ื“ื™ ืึธื•ื•ื•ืขืจื›ืขื“ ืคึฟืึทืจ ื“ื™ ืคึผืึทืงืึทื˜, ื“ื™ ืฆืขืœ ื’ืจื™ื™ืก ืื•ืŸ ื“ื™ ืึธื•ื•ื•ืขืจื›ืขื“ ืคึฟืึทืจ ื“ื™ ืฆืขืœ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืกื™ืžื™ืึทืœื™ื™ื˜ื™ื“ ืึทื˜ื ืื•ืŸ ื‘ื™ื˜ืจืึทื˜ืข 56 ืงื‘ื™ื˜ / ืกืขืง:

tc qdisc change dev lo root netem rate 56kbit 0 48 5

ืกื™ืžื•ืœืึทื˜ื™ื ื’ ืงืฉืจ ื˜ื™ื™ืžืึทื•ื˜

ืืŸ ืื ื“ืขืจ ื•ื•ื™ื›ื˜ื™ืง ืคื•ื ื˜ ืื™ืŸ ื“ื™ ืคึผืจืึธื‘ืข ืคึผืœืึทืŸ ื•ื•ืขืŸ ืึทืงืกืขืคึผื˜ื™ื ื’ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืื™ื– ื˜ื™ื™ืžืึทื•ืฅ. ื“ืึธืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ื•ื•ื™ื™ึทืœ ืื™ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืกื™ืกื˜ืขืžืขืŸ, ื•ื•ืขืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ื™ืกืขืก ืื™ื– ืคืึทืจืงืจื™ืคึผืœื˜, ื“ื™ ืื ื“ืขืจืข ืžื•ื–ืŸ ืคืึทืœืŸ ืฆื•ืจื™ืง ืฆื• ื“ื™ ืื ื“ืขืจืข ืื™ืŸ ืฆื™ื™ื˜ ืึธื“ืขืจ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืึท ื˜ืขื•ืช ืฆื• ื“ืขื ืงืœื™ืขื ื˜, ืื•ืŸ ืื™ืŸ ืงื™ื™ืŸ ืคืึทืœ ื–ืึธืœ ื–ื™ื™ ืคืฉื•ื˜ ื”ืขื ื’ืขืŸ, ื•ื•ืืจื˜ืŸ ืคึฟืึทืจ ืึท ืขื ื˜ืคืขืจ ืึธื“ืขืจ ืึท ืงืฉืจ ืฆื• ื–ื™ื™ืŸ ื’ืขื’ืจื™ื ื“ืขื˜.

ืขืก ื–ืขื ืขืŸ ืขื˜ืœืขื›ืข ื•ื•ืขื’ืŸ ืฆื• ื˜ืึธืŸ ื“ืึธืก: ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื ื•ืฆืŸ ืึท ืฉืคึผืึธื˜ ื•ื•ืึธืก ื˜ื•ื˜ ื ื™ืฉื˜ ืจื™ืกืคึผืึทื ื“, ืึธื“ืขืจ ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• ื“ืขื ืคึผืจืึธืฆืขืก ื ื™ืฆืŸ ืึท ื“ืขื‘ื•ื’ื’ืขืจ, ืฉื˜ืขืœืŸ ืึท ื‘ืจื™ื™ืงืคึผื•ื™ื ื˜ ืื™ืŸ ื“ื™ ืจืขื›ื˜ ืึธืจื˜ ืื•ืŸ ื”ืึทืœื˜ืŸ ื“ืขื ืคึผืจืึธืฆืขืก (ื“ืึธืก ืื™ื– ืžื™ืกื˜ืึธืžืข ื“ื™ ืžืขืจืกื˜ ืคึผืขืจื•ื•ืขืจื˜ื™ื“ ื•ื•ืขื’). ืึธื‘ืขืจ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืžืขืจืกื˜ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืื™ื– ืฆื• ืคื™ืจืขื•ื•ืึทืœืœ ืคึผืึธืจืฅ ืึธื“ืขืจ ืžื—ื ื•ืช. ืขืก ื•ื•ืขื˜ ืื•ื ื“ื– ื”ืขืœืคืŸ ืžื™ื˜ ื“ืขื iptables.

ืคึฟืึทืจ ื“ืขืžืึทื ืกื˜ืจื™ื™ืฉืึทืŸ, ืžื™ืจ ื•ื•ืขืœืŸ ืคื™ื™ืจื•ื•ืึทืœ ืคึผืึธืจื˜ 12345 ืื•ืŸ ืœื•ื™ืคืŸ ืื•ื ื“ื–ืขืจ ืงืœื™ืขื ื˜ ืฉืจื™ืคื˜. ืื™ืจ ืงืขื ืขืŸ ืคื™ืจืขื•ื•ืึทืœืœ ืึทื•ื˜ื’ืึธื•ื™ื ื’ ืคึผืึทืงื™ืฅ ืฆื• ื“ืขื ืคึผืึธืจื˜ ื‘ื™ื™ ื“ื™ ืกืขื ื“ืขืจ ืึธื“ืขืจ ื™ื ืงืึทืžื™ื ื’ ืคึผืึทืงื™ืฅ ื‘ื™ื™ ื“ื™ ื•ืคื ืขืžืขืจ. ืื™ืŸ ืžื™ื™ืŸ ื‘ื™ื™ืฉืคื™ืœืŸ, ื™ื ืงืึทืžื™ื ื’ ืคึผืึทืงื™ืฅ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคื™ื™ืจื•ื•ืึทืœื“ (ืžื™ืจ ื ื•ืฆืŸ ืงื™ื™ื˜ INPUT ืื•ืŸ ื“ื™ ืึธืคึผืฆื™ืข --ื“ืคึผืึธืจื˜). ืึทื–ืึท ืคึผืึทืงื™ืฅ ืงืขื ืขืŸ ื–ื™ื™ืŸ DROP, REJECT ืึธื“ืขืจ REJECT ืžื™ื˜ ื“ื™ TCP ืคืึธืŸ RST, ืึธื“ืขืจ ืžื™ื˜ ICMP ื‘ืึทืœืขื‘ืึธืก ืึทื ืจื™ืึทื˜ืฉืึทื‘ืึทืœ (ืื™ืŸ ืคืึทืงื˜, ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื ืึทื˜ื•ืจ ืื™ื– icmp-port-unreachable, ืื•ืŸ ืขืก ืื™ื– ืื•ื™ืš ื“ื™ ื’ืขืœืขื’ื ื”ื™ื™ื˜ ืฆื• ืฉื™ืงืŸ ืึท ืขื ื˜ืคืขืจ icmp-net-unreachable, icmp-proto-unreachable, icmp-net-prohibited ะธ icmp-host-prohibited).

ืคืึทืœืŸ

ืื•ื™ื‘ ืขืก ืื™ื– ืึท ื”ืขืจืฉืŸ ืžื™ื˜ DROP, ืคึผืึทืงื™ืฅ ื•ื•ืขื˜ ืคืฉื•ื˜ "ืคืึทืจืฉื•ื•ื™ื ื“ืŸ".

iptables -A INPUT -p tcp --dport 12345 -j DROP

ืžื™ืจ ืงืึทื˜ืขืจ ื“ืขื ืงืœื™ืขื ื˜ ืื•ืŸ ื–ืขืŸ ืึทื– ืขืก ืคืจื™ื–ื™ื– ืื™ืŸ ื“ืขืจ ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹ืงืึทื ืขืงื˜ื™ื ื’ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ. ื–ืืœ ืก ืงื•ืง ืื™ืŸ ื“ื™ ืคืึทืจืงืขืจ:
ืคืึทืจืงืขืจ ื“ืึทืžืคึผ

[user@host ~]# tcpdump -i lo -nn port 12345
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
08:28:20.213506 IP 127.0.0.1.32856 > 127.0.0.1.12345: Flags [S], seq 3019694933, win 43690, options [mss 65495,sackOK,TS val 1203046450 ecr 0,nop,wscale 7], length 0
08:28:21.215086 IP 127.0.0.1.32856 > 127.0.0.1.12345: Flags [S], seq 3019694933, win 43690, options [mss 65495,sackOK,TS val 1203047452 ecr 0,nop,wscale 7], length 0
08:28:23.219092 IP 127.0.0.1.32856 > 127.0.0.1.12345: Flags [S], seq 3019694933, win 43690, options [mss 65495,sackOK,TS val 1203049456 ecr 0,nop,wscale 7], length 0
08:28:27.227087 IP 127.0.0.1.32856 > 127.0.0.1.12345: Flags [S], seq 3019694933, win 43690, options [mss 65495,sackOK,TS val 1203053464 ecr 0,nop,wscale 7], length 0
08:28:35.235102 IP 127.0.0.1.32856 > 127.0.0.1.12345: Flags [S], seq 3019694933, win 43690, options [mss 65495,sackOK,TS val 1203061472 ecr 0,nop,wscale 7], length 0

ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื–ืขืŸ ืึทื– ื“ืขืจ ืงืœื™ืขื ื˜ ืกืขื ื“ื– SYN ืคึผืึทืงื™ืฅ ืžื™ื˜ ืึท ืขืงืกืคึผืึธื•ื ืขื ืฉืึทืœื™ ื™ื ืงืจื™ืกื™ื ื’ ื˜ื™ื™ืžืึทื•ื˜. ืึทื–ื•ื™ ืžื™ืจ ื’ืขืคึฟื•ื ืขืŸ ืึท ืงืœื™ื™ืŸ ื–ืฉื•ืง ืื™ืŸ ื“ืขื ืงืœื™ืขื ื˜: ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื ื•ืฆืŸ ื“ืขื ืื•ืคึฟืŸ settimeout ()ืฆื• ื‘ืึทื’ืจืขื ืขืฆืŸ ื“ื™ ืฆื™ื™ื˜ ื‘ืขืฉืึทืก ื•ื•ืึธืก ื“ืขืจ ืงืœื™ืขื ื˜ ื•ื•ืขื˜ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ.

ืžื™ืจ ืžื™ื“ ืึทืจืึธืคึผื ืขืžืขืŸ ื“ื™ ื”ืขืจืฉืŸ:

iptables -D INPUT -p tcp --dport 12345 -j DROP

ืื™ืจ ืงืขื ืขืŸ ื•ื™ืกืžืขืงืŸ ืึทืœืข ื›ึผืœืœื™ื ืื™ืŸ ืึทืžืึธืœ:

iptables -F

ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ ื“ืึธืงืขืจ ืื•ืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืคื™ืจืขื•ื•ืึทืœืœ ืึทืœืข ืคืึทืจืงืขืจ ืฆื• ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ, ืื™ืจ ืงืขื ืขืŸ ื˜ืึธืŸ ื“ืึธืก ื•ื•ื™ ื’ื™ื™ื˜:

iptables -I DOCKER-USER -p tcp -d CONTAINER_IP -j DROP

ืึธืคึผื•ื•ืึทืจืคืŸ

ืื™ืฆื˜ ืœืึธื–ืŸ ืก ืœื™ื™ื’ืŸ ืึท ืขื ืœืขืš ื”ืขืจืฉืŸ, ืึธื‘ืขืจ ืžื™ื˜ REJECT:

iptables -A INPUT -p tcp --dport 12345 -j REJECT

ื“ืขืจ ืงืœื™ืขื ื˜ ื’ื™ื™ื˜ ืึทืจื•ื™ืก ื ืึธืš ืึท ืจื’ืข ืžื™ื˜ ืึท ื˜ืขื•ืช [ืขืจื ืึธ 111] ืงืฉืจ ืืคื’ืขื–ืื’ื˜. ื–ืืœ ืก ืงื•ืง ืื™ืŸ ื“ื™ ICMP ืคืึทืจืงืขืจ:

[user@host ~]# tcpdump -i lo -nn icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
08:45:32.871414 IP 127.0.0.1 > 127.0.0.1: ICMP 127.0.0.1 tcp port 12345 unreachable, length 68
08:45:33.873097 IP 127.0.0.1 > 127.0.0.1: ICMP 127.0.0.1 tcp port 12345 unreachable, length 68

ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื–ืขืŸ ืึทื– ื“ืขืจ ืงืœื™ืขื ื˜ ื‘ืืงื•ืžืขืŸ ืฆื•ื•ื™ื™ ืžืึธืœ ืคึผืึธืจื˜ ืึทื ืจื™ื˜ืฉืึทื‘ืึทืœ ืื•ืŸ ื“ืขืžืึธืœื˜ ื’ืขืขื ื“ื™ืงื˜ ืžื™ื˜ ืึท ื˜ืขื•ืช.

ืึธืคึผื•ื•ืึทืจืคืŸ ืžื™ื˜ tcp-ื‘ืึทืฉื˜ืขื˜ื™ืง

ื–ืืœ ืก ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืœื™ื™ื’ืŸ ื“ื™ ืึธืคึผืฆื™ืข - ืึธืคึผื•ื•ืึทืจืคืŸ-ืžื™ื˜ tcp-ื‘ืึทืฉื˜ืขื˜ื™ืง:

iptables -A INPUT -p tcp --dport 12345 -j REJECT --reject-with tcp-reset

ืื™ืŸ ื“ืขื ืคืึทืœ, ื“ืขืจ ืงืœื™ืขื ื˜ ื’ืœื™ื™ืš ืึทืจื•ื™ืก ืžื™ื˜ ืึท ื˜ืขื•ืช, ื•ื•ื™ื™ึทืœ ื“ืขืจ ืขืจืฉื˜ืขืจ ื‘ืขื˜ืŸ ื‘ืืงื•ืžืขืŸ ืึท RST ืคึผืึทืงืึทื˜:

[user@host ~]# tcpdump -i lo -nn port 12345
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
09:02:52.766175 IP 127.0.0.1.60658 > 127.0.0.1.12345: Flags [S], seq 1889460883, win 43690, options [mss 65495,sackOK,TS val 1205119003 ecr 0,nop,wscale 7], length 0
09:02:52.766184 IP 127.0.0.1.12345 > 127.0.0.1.60658: Flags [R.], seq 0, ack 1889460884, win 0, length 0

ืึธืคึผื•ื•ืึทืจืคืŸ ืžื™ื˜ icmp-host-unreachable

ืœืึธืžื™ืจ ืคึผืจื•ื‘ื™ืจืŸ ืืŸ ืื ื“ืขืจ ืึธืคึผืฆื™ืข ืคึฟืึทืจ ื ื™ืฆืŸ REJECT:

iptables -A INPUT -p tcp --dport 12345 -j REJECT --reject-with icmp-host-unreachable

ื“ืขืจ ืงืœื™ืขื ื˜ ื’ื™ื™ื˜ ืึทืจื•ื™ืก ื ืึธืš ืึท ืจื’ืข ืžื™ื˜ ืึท ื˜ืขื•ืช [ืขืจืจื ืึธ 113] ืงื™ื™ืŸ ืžืึทืจืฉืจื•ื˜ ืฆื• ื‘ืึทืœืขื‘ืึธืก, ืžื™ืจ ื–ืขืŸ ืื™ืŸ ICMP ืคืึทืจืงืขืจ ICMP ื”ืึธืกื˜ 127.0.0.1 ื ื™ื˜ ืจื™ื˜ืฉืึทื‘ืึทืœ.

ืื™ืจ ืงืขื ื˜ ืื•ื™ืš ืคึผืจื•ื‘ื™ืจืŸ ื“ื™ ืื ื“ืขืจืข ืึธืคึผื•ื•ืึทืจืคืŸ ืคึผืึทืจืึทืžืขื˜ืขืจืก, ืื•ืŸ ืื™ืš ื•ื•ืขื˜ ืคืึธืงื•ืก ืื•ื™ืฃ ื“ื™ :)

ืกื™ืžื•ืœืึทื˜ื™ื ื’ ื‘ืขื˜ืŸ ื˜ื™ื™ืžืึทื•ื˜

ืืŸ ืื ื“ืขืจ ืกื™ื˜ื•ืึทืฆื™ืข ืื™ื– ื•ื•ืขืŸ ื“ืขืจ ืงืœื™ืขื ื˜ ืื™ื– ื‘ื™ื›ื•ืœืช ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ, ืึธื‘ืขืจ ืงืขืŸ ื ื™ืฉื˜ ืฉื™ืงืŸ ืึท ื‘ืงืฉื” ืฆื• ืื™ื. ื•ื•ื™ ืฆื• ืคื™ืœื˜ืขืจ ืคึผืึทืงื™ืฅ ืึทื–ื•ื™ ืึทื– ืคื™ืœื˜ืขืจื™ื ื’ ื˜ื•ื˜ ื ื™ืฉื˜ ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื“? ืื•ื™ื‘ ืื™ืจ ืงื•ืง ืื™ืŸ ื“ื™ ืคืึทืจืงืขืจ ืคื•ืŸ ืงื™ื™ืŸ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืฆื•ื•ื™ืฉืŸ ื“ืขื ืงืœื™ืขื ื˜ ืื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ, ืื™ืจ ื•ื•ืขื˜ ื‘ืึทืžืขืจืงืŸ ืึทื– ื•ื•ืขืŸ ื’ืจื™ื ื“ืŸ ืึท ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’, ื‘ืœื•ื™ื– ื“ื™ SYN ืื•ืŸ ACK ืคืœืึทื’ืก ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜, ืึธื‘ืขืจ ื•ื•ืขืŸ ื“ื™ ื™ืงืกื˜ืฉื™ื™ื ื“ื–ืฉื™ื ื’ ื“ืึทื˜ืŸ, ื“ื™ ืœืขืฆื˜ืข ื‘ืขื˜ืŸ ืคึผืึทืงืึทื˜ ื•ื•ืขื˜ ืึทื ื˜ื”ืึทืœื˜ืŸ ื“ื™ PSH ืคืึธืŸ. ืขืก ื™ื ืกื˜ืึธืœื– ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ื‘ืึทืคืขืจื™ื ื’. ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ืขื ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืฆื• ืฉืึทืคึฟืŸ ืึท ืคื™ืœื˜ืขืจ: ืขืก ื•ื•ืขื˜ ืœืึธื–ืŸ ืึทืœืข ืคึผืึทืงื™ืฅ ืึทื—ื•ืฅ ื“ื™ ืžื™ื˜ ื“ื™ PSH ืคืึธืŸ. ืื–ื•ื™, ื“ืขืจ ืงืฉืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื’ืจื™ื ื“ืขื˜, ืึธื‘ืขืจ ื“ืขืจ ืงืœื™ืขื ื˜ ื•ื•ืขื˜ ื ื™ืฉื˜ ืงืขื ืขืŸ ืฆื• ืฉื™ืงืŸ ื“ืึทื˜ืŸ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ.

ืคืึทืœืŸ

ืคึฟืึทืจ DROP ื“ื™ ื‘ืึทืคึฟืขืœ ื•ื•ืขื˜ ืงื•ืงืŸ ื•ื•ื™ ื“ืึธืก:

iptables -A INPUT -p tcp --tcp-flags PSH PSH --dport 12345 -j DROP

ืงืึทื˜ืขืจ ื“ืขื ืงืœื™ืขื ื˜ ืื•ืŸ ื”ื™ื˜ืŸ ื“ื™ ืคืึทืจืงืขืจ:

ืคืึทืจืงืขืจ ื“ืึทืžืคึผ

[user@host ~]# tcpdump -i lo -nn port 12345
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
10:02:47.549498 IP 127.0.0.1.49594 > 127.0.0.1.12345: Flags [S], seq 2166014137, win 43690, options [mss 65495,sackOK,TS val 1208713786 ecr 0,nop,wscale 7], length 0
10:02:47.549510 IP 127.0.0.1.12345 > 127.0.0.1.49594: Flags [S.], seq 2341799088, ack 2166014138, win 43690, options [mss 65495,sackOK,TS val 1208713786 ecr 1208713786,nop,wscale 7], length 0
10:02:47.549520 IP 127.0.0.1.49594 > 127.0.0.1.12345: Flags [.], ack 1, win 342, options [nop,nop,TS val 1208713786 ecr 1208713786], length 0
10:02:47.549568 IP 127.0.0.1.49594 > 127.0.0.1.12345: Flags [P.], seq 1:6, ack 1, win 342, options [nop,nop,TS val 1208713786 ecr 1208713786], length 5
10:02:47.750084 IP 127.0.0.1.49594 > 127.0.0.1.12345: Flags [P.], seq 1:6, ack 1, win 342, options [nop,nop,TS val 1208713987 ecr 1208713786], length 5
10:02:47.951088 IP 127.0.0.1.49594 > 127.0.0.1.12345: Flags [P.], seq 1:6, ack 1, win 342, options [nop,nop,TS val 1208714188 ecr 1208713786], length 5
10:02:48.354089 IP 127.0.0.1.49594 > 127.0.0.1.12345: Flags [P.], seq 1:6, ack 1, win 342, options [nop,nop,TS val 1208714591 ecr 1208713786], length 5

ืžื™ืจ ื–ืขืŸ ืึทื– ื“ืขืจ ืงืฉืจ ืื™ื– ื’ืขื’ืจื™ื ื“ืขื˜ ืื•ืŸ ื“ืขืจ ืงืœื™ืขื ื˜ ืงืขืŸ ื ื™ืฉื˜ ืฉื™ืงืŸ ื“ืึทื˜ืŸ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ.

ืึธืคึผื•ื•ืึทืจืคืŸ

ืื™ืŸ ื“ืขื ืคืึทืœ, ื“ื™ ื ืึทื˜ื•ืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ ื–ืขืœื‘ืข: ื“ืขืจ ืงืœื™ืขื ื˜ ื•ื•ืขื˜ ื ื™ืฉื˜ ืงืขื ืขืŸ ืฆื• ืฉื™ืงืŸ ื“ื™ ื‘ืงืฉื”, ืึธื‘ืขืจ ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ICMP 127.0.0.1 tcp ืคึผืึธืจื˜ 12345 ืึทื ืจื™ืึทื˜ืฉืึทื‘ืึทืœ ืื•ืŸ ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ืฆื™ื™ื˜ ืฆื•ื•ื™ืฉืŸ ืจื™ืกื•ืžื™ื ื’ ื‘ืขื˜ืŸ ืขืงืกืคึผืึธื•ื ืขื ืฉืึทืœื™. ื“ืขืจ ื‘ืึทืคึฟืขืœ ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก:

iptables -A INPUT -p tcp --tcp-flags PSH PSH --dport 12345 -j REJECT

ืึธืคึผื•ื•ืึทืจืคืŸ ืžื™ื˜ tcp-ื‘ืึทืฉื˜ืขื˜ื™ืง

ื“ืขืจ ื‘ืึทืคึฟืขืœ ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก:

iptables -A INPUT -p tcp --tcp-flags PSH PSH --dport 12345 -j REJECT --reject-with tcp-reset

ืžื™ืจ ืฉื•ื™ืŸ ื•ื•ื™ืกืŸ ืึทื– ื•ื•ืขืŸ ื ื™ืฆืŸ - ืึธืคึผื•ื•ืึทืจืคืŸ-ืžื™ื˜ tcp-ื‘ืึทืฉื˜ืขื˜ื™ืง ื“ืขืจ ืงืœื™ืขื ื˜ ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ืึท RST ืคึผืึทืงืึทื˜ ืื™ืŸ ืขื ื˜ืคืขืจ, ืึทื–ื•ื™ ื“ื™ ื ืึทื˜ื•ืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคึผืจืขื“ื™ืงื˜ืขื“: ืจื™ืกื™ื•ื•ื™ื ื’ ืึท RST ืคึผืึทืงืึทื˜ ื‘ืฉืขืช ื“ื™ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืื™ื– ื’ืขื’ืจื™ื ื“ืขื˜ ืžื™ื˜ืœ ืึทื– ื“ื™ ื›ืึธืœืขืœ ืื™ื– ืื•ืžื’ืขืจื™ื›ื˜ ืคึฟืึทืจืžืึทื›ื˜ ืื•ื™ืฃ ื“ื™ ืื ื“ืขืจืข ื–ื™ื™ึทื˜, ื•ื•ืึธืก ืžื™ื˜ืœ ืึทื– ื“ืขืจ ืงืœื™ืขื ื˜ ื–ืึธืœ ื‘ืึทืงื•ืžืขืŸ ืงืฉืจ ื‘ืึทืฉื˜ืขื˜ื™ืง ื“ื•ืจืš ื™ื™ึทื ืงื•ืงื . ืœืึธืžื™ืจ ืœื•ื™ืคืŸ ืื•ื ื“ื–ืขืจ ืฉืจื™ืคื˜ ืื•ืŸ ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืคื•ืŸ ื“ืขื. ืื•ืŸ ื“ืึธืก ืื™ื– ื•ื•ืึธืก ื“ืขืจ ืคืึทืจืงืขืจ ื•ื•ืขื˜ ืงื•ืงืŸ ื•ื•ื™:

ืคืึทืจืงืขืจ ื“ืึทืžืคึผ

[user@host ~]# tcpdump -i lo -nn port 12345
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
10:22:14.186269 IP 127.0.0.1.52536 > 127.0.0.1.12345: Flags [S], seq 2615137531, win 43690, options [mss 65495,sackOK,TS val 1209880423 ecr 0,nop,wscale 7], length 0
10:22:14.186284 IP 127.0.0.1.12345 > 127.0.0.1.52536: Flags [S.], seq 3999904809, ack 2615137532, win 43690, options [mss 65495,sackOK,TS val 1209880423 ecr 1209880423,nop,wscale 7], length 0
10:22:14.186293 IP 127.0.0.1.52536 > 127.0.0.1.12345: Flags [.], ack 1, win 342, options [nop,nop,TS val 1209880423 ecr 1209880423], length 0
10:22:14.186338 IP 127.0.0.1.52536 > 127.0.0.1.12345: Flags [P.], seq 1:6, ack 1, win 342, options [nop,nop,TS val 1209880423 ecr 1209880423], length 5
10:22:14.186344 IP 127.0.0.1.12345 > 127.0.0.1.52536: Flags [R], seq 3999904810, win 0, length 0

ืึธืคึผื•ื•ืึทืจืคืŸ ืžื™ื˜ icmp-host-unreachable

ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืขืก ืื™ื– ืฉื•ื™ืŸ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืคึฟืึทืจ ืึทืœืขืžืขืŸ ื•ื•ื™ ื“ื™ ื‘ืึทืคึฟืขืœ ื•ื•ืขื˜ ืงื•ืงืŸ ื•ื•ื™ :) ื“ืขืจ ืึธืคึผืคื™ืจื•ื ื’ ืคื•ืŸ ื“ืขื ืงืœื™ืขื ื˜ ืื™ืŸ ื“ืขื ืคืึทืœ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึท ื‘ื™ืกืœ ืึทื ื“ืขืจืฉ ืคื•ืŸ ื“ืขื ืžื™ื˜ ืึท ืคึผืฉื•ื˜ ืึธืคึผื•ื•ืึทืจืคืŸ: ื“ืขืจ ืงืœื™ืขื ื˜ ื•ื•ืขื˜ ื ื™ืฉื˜ ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ื˜ื™ื™ืžืึทื•ื˜ ืฆื•ื•ื™ืฉืŸ ืคืจื•ื•ื•ืŸ ืฆื• ืฉื™ืงืŸ ื“ื™ ืคึผืึทืงืึทื˜ ื•ื•ื™ื“ืขืจ.

[user@host ~]# tcpdump -i lo -nn icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
10:29:56.149202 IP 127.0.0.1 > 127.0.0.1: ICMP host 127.0.0.1 unreachable, length 65
10:29:56.349107 IP 127.0.0.1 > 127.0.0.1: ICMP host 127.0.0.1 unreachable, length 65
10:29:56.549117 IP 127.0.0.1 > 127.0.0.1: ICMP host 127.0.0.1 unreachable, length 65
10:29:56.750125 IP 127.0.0.1 > 127.0.0.1: ICMP host 127.0.0.1 unreachable, length 65
10:29:56.951130 IP 127.0.0.1 > 127.0.0.1: ICMP host 127.0.0.1 unreachable, length 65
10:29:57.152107 IP 127.0.0.1 > 127.0.0.1: ICMP host 127.0.0.1 unreachable, length 65
10:29:57.353115 IP 127.0.0.1 > 127.0.0.1: ICMP host 127.0.0.1 unreachable, length 65

ืจืขื–ื•ืœื˜ืึทื˜

ืขืก ืื™ื– ื ื™ื˜ ื ื™ื™ื˜ื™ืง ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึท ืจื™ื™ืฆื  ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ื“ื™ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืคื•ืŸ ืึท ื“ื™ื ืกื˜ ืžื™ื˜ ืึท ื’ืขื”ืื ื’ืขืŸ ืงืœื™ืขื ื˜ ืึธื“ืขืจ ืกืขืจื•ื•ืขืจ; ืžืืœ ืขืก ืื™ื– ื’ืขื ื•ื’ ืฆื• ื ื•ืฆืŸ ื ืึธืจืžืึทืœ ื™ื•ื˜ื™ืœืึทื˜ื™ื– ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ืœื™ื ื•ืงืก.

ื“ื™ ื™ื•ื˜ื™ืœืึทื˜ื™ื– ื“ื™ืกืงืึทืกื˜ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ื”ืึธื‘ืŸ ืืคื™ืœื• ืžืขืจ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ื•ื•ื™ ื“ื™ืกืงืจื™ื™ื‘ื“, ืึทื–ื•ื™ ืื™ืจ ืงืขื ืขืŸ ืงื•ืžืขืŸ ืึทืจื•ื™ืฃ ืžื™ื˜ ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ ื ื™ืฆืŸ ื–ื™ื™. ืคึผืขืจืกื ืึทืœื™, ืื™ืš ืฉื˜ืขื ื“ื™ืง ื”ืึธื‘ืŸ ื’ืขื ื•ื’ ืคื•ืŸ ื•ื•ืึธืก ืื™ืš ื’ืขืฉืจื™ื‘ืŸ ื•ื•ืขื’ืŸ (ืื™ืŸ ืคืึทืงื˜, ืืคื™ืœื• ื•ื•ื™ื™ื ื™ืงืขืจ). ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ ื“ื™ ืึธื“ืขืจ ืขื ืœืขืš ื™ื•ื˜ื™ืœืึทื˜ื™ื– ืื™ืŸ ื˜ืขืกื˜ื™ื ื’ ืื™ืŸ ื“ื™ื™ืŸ ืคื™ืจืžืข, ื‘ื™ื˜ืข ืฉืจื™ื™ึทื‘ืŸ ื•ื•ื™ ืคึผื•ื ืงื˜. ืื•ื™ื‘ ื ื™ืฉื˜, ืื™ืš ื”ืึธืคึฟืŸ ืึทื– ื“ื™ื™ืŸ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืขืกืขืจ ืื•ื™ื‘ ืื™ืจ ื‘ืึทืฉืœื™ืกืŸ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ืขืก ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ื ืขืฅ ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ ื“ื™ ืกืึทื’ื“ื–ืฉืขืกื˜ื™ื“ ืžืขื˜ื”ืึธื“ืก.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’