checkpoint: VT1200 reverse-engineering workspace before board-model work

This commit is contained in:
SDD committed 2026-10-16 01:37:50 +03:00
commit acb92d3e44
325 files changed
+951894

No files matched your search

+35
View File
@@ -0,0 +1,35 @@
# Generated emulator artifacts — never commit
harness/mame/out.avi
harness/mame/*.ppm
harness/mame/*.pgm
harness/mame/vt1200-ram-*.bin
harness/mame/vt1200-frame-*.ppm
harness/mame/hist.txt
harness/mame/debug.log
harness/mame/build.log
harness/mame/mpv.log
harness/mame/loupe.log
harness/mame/error.log
harness/mame/trace/*.trace*
# Crash dumps
core
core.*
*.core
# Python
__pycache__/
*.pyc
# Emulator + tooling scratch
.superpowers/
ghidra/vt1200.rep/
*.gpr
# Nested clone (re-clonable; our patches live in git-tracked files)
lat/code/latd/
# Large generated trace + nested reference clones
harness/mame/vt1200-reset.trace
reference/x11/
tools/ghidra-headless-mcp/
+339
View File
@@ -0,0 +1,339 @@
# VT1200 code-execution audit notes
**Objective:** run self-compiled TMS34010 code on the VT1200, loaded over the
network, **without modifying the ROMs** (user requirement). So: find a
remotely-triggerable control-flow hijack in the stock firmware.
**Hardware:** v2.2 unit (`SHOW` reports `Firmware Revision V2.2`; power-up
self-test passes), on the LAN. ROM/RAM map: see `MEMORY_MAP.md`.
`reference/dis34-a-v22.txt.gz` is the analyzed disassembly used below
(byte offset = displayed address, see `tools/`).
**Safety:** the terminal stores configuration in NVRAM. `INIT`, menu
diagnostics and any crash risk that config — capture the current setup (SHOW /
setup screen) before sending malformed data.
## Attack surfaces, ranked by attacker control
| Surface | Who initiates | Control | Evidence |
|---|---|---|---|
| **PCF / SNF font parsing** | terminal (font server or TFTP font path) | we serve the font bytes | `pcfReadBitmaps`, `Invalid SNF font file format.` |
| TFTP font file fetch | terminal | we are the TFTP server | `dwt_tftp.c`, `Setting TFTP Font Path`, `.DECW$FONT` |
| BOOTP reply | terminal (broadcast) | we are the BOOTP server | `bootp_proto`, `do_bootp` |
| MOP remote console | host → terminal | command args only | `DWT>>>`, `INIT/TEST/SHOW/HELP` |
| X11 requests | client → terminal | full protocol | X server (port 6000) |
| LAT / TCP | mixed | large | `x_tcp_interface`, `ni_rcbtom` |
## What is already guarded
* **Network receive path** (`ni_rcbtom`, `0x08006E`–`0x080170`): explicit size
checks — `cmpi 0x5EE` (`MAXSIZE_RCVPKT` = 1518) and `cmpi 0x226`
(`SIZE_OF_RCV_BUFS` = 550), each followed by an error + abort.
* **TFTP data path** (`tftp_read`, `0x07DD78`–`0x07DE40`): validates payload
length against buffer capacity (`0x7DDAA` `cmp a11,a9` / `jrle`), then the
`bufsize (%d) too small for %d bytes` error; standard 512-byte block logic
(`cmpi 0x200` → last-block flag at `0x1CB940`).
So the packet layers are not the low-hanging fruit.
## The promising target: the X11-derived font parser
The server is **MIT X11 sample-server derived** — the strings are its
internals: `pcfReadBitmaps`, `mfbValidateGC`, `mfbFaultGlyph`, `AM_FaultGlyph`,
`mfbFreeGlyphCacheSpace`. It parses **PCF**, **SNF** and a DEC font format.
Locations (v2.2 byte offsets):
| Code | Site | String |
|---|---|---|
| PCF bitmap reader | `0x0F09F2`, `0x0F0A2C` | `bad count in pcfReadBitmaps (expected %d, got %d)`, `allocation failure in pcfReadBitmaps (offsets,%d)` |
| PCF font reader | `0x0F177E` | `Failed to read PCF format bitmaps` |
| SNF reader | `0x0ED830` | `Invalid SNF font file format.` |
| metrics validation | `0x0EB288`, `0x0EB32E` | `bad packed/unpacked metrics, glyph=…` |
| glyph data | `0x0ED426` | `Failed to read glyph data (%d at %d) for %s.` |
| font-file open | `0x0ED014`, `0x0ED27A`, `0x0ED37A`, `0x0EDA1A` | `Could not open font file '%s'.` etc. |
**Why this matters:** this is X11R3/R4-era font code, a class with a long
public history of memory-safety bugs, well studied in `libXfont`
(Ilja van Sprundel's 2014–2015 audit: integer overflows in PCF/SNF/BDF table
size arithmetic leading to undersized allocations and heap overflows, plus
missing bounds checks in `pcfReadFont`). The firmware predates all of those
fixes, and the presence of *some* checks (`bad count in pcfReadBitmaps`)
just means it is a version that has a few — not necessarily all.
Suspect constructs already spotted in the font loader: `sub a5,a3` / `sll 0x6,a3`
(`0x0ED396`) and `sll 0x3,a12` (`0x0ED29E`) — table indexing by a value derived
from file data, with no visible bound check at the use site.
## CONFIRMED CANDIDATE: `pcfReadBitmaps` num_chars integer overflow (heap)
**Era source:** `reference/x11/r4/contrib/server/pcf/fonts/lib/pcf/pcfrbitmaps.c`
(X11R4, Dec 1989 — the firmware's error strings match *this* file exactly, e.g.
`allocation failure in pcfReadBitmaps (offsets,%d)`; R5's monolithic
`pcfread.c` does not contain that string).
```c
n = pcfReadInt32(file); /* attacker-controlled */
if (pCS->nChars==0) pCS->nChars = n; /* only cross-check is nChars, not a max */
else if (n != pCS->nChars) { error; return; }
offsets = (CARD32 *)fosAlloc(n*sizeof(CARD32)); /* n*4 — 32-bit, can wrap */
if (!offsets) { "allocation failure ... (offsets,%d)"; return; }
for (i=0;i<n;i++) offsets[i] = pcfReadInt32(file); /* writes n entries */
```
**Firmware (v2.2), `pcfReadBitmaps` at `0x0F09CE`–`0x0F0A5E`:**
```
0x0F09CE move *a9(0x270),a11,1 ; a11 = pCS->nChars
0x0F09D2 jrne ... ; nonzero -> only compare against n
0x0F09D4 move *a13(0x20),*a9(0x270),1 ; nChars==0 -> nChars = n (file value)
...
0x0F0A06 move *a13(0x20),a11,1 ; a11 = n
0x0F0A0A sll 0x2,a11 ; a11 = n*4 <-- NO overflow/range check
0x0F0A12 calla 0x3f703d90 ; fosAlloc(n*4, 1)
0x0F0A18 move a8,*a13(0x40),1 ; pBitOffsets = result
0x0F0A1E jrne ... ; alloc ok?
0x0F0A20 "allocation failure in pcfReadBitmaps (offsets,%d)"
0x0F0A42 sub a10,a10 ; i = 0
0x0F0A44 move *a13(0x20),a11,1 ; n
0x0F0A48 cmp a11,a10 / jrge ; loop while i < n
0x0F0A52 move a10,a7; sll 0x5,a7 ; i*32 bits = i*4 bytes
0x0F0A5A add a11,a7 ; offsets[i]
... ; writes n entries (n*4 bytes)
```
There is **no range check on `n`** between the read and the multiply, exactly as
in the R4 source. So `n >= 0x40000000` makes `n*4` wrap: e.g. `n = 0x40000001`
→ `alloc(4)` → the loop then writes ~4 GiB of file-derived data starting 0 bytes
in → **heap overflow with attacker-influenced content** (the first writes come
from our file; ultimately EOF-filled `0xFFFFFFFF`).
### Ruled out (fixed in this firmware)
* The R4 **stack** bug in `pcfrfont.c` (`TableDesc toc[NUM_FONT_TABLES=8]` with
loop bound `MAX_FONT_TABLES=32`) is **not present**: the firmware's loop is
bounded at 8 (`0x0F0A…`: `cmpi 0x8,a9; jrlt loop`), and its message says
`nTables>NUM_FONT_TABLES`.
### Secondary candidates (not yet audited in the firmware)
* `pcfReadBitmaps` repad path: `padTmp = alloc(padSize)` where `padSize` comes
from one table while the glyph offsets/metrics come from another — a
mismatched-size write if the two disagree.
* `pcfReadProperties` (`allocation failure ... (tmpbuf,%d)`, `(isstring,%d)`) —
property-table parsing.
* `pcfReadMetrics` (`bad char count (%d, expected %d)`, `(pCI,%d,0x%x)`).
## Harness — `tools/fontgen.py` (+ `test_fontgen.py`, 10 tests)
* **PCF**: `pcf_tables()`, `get_num_chars()` / `set_num_chars()` (byte-order aware
— PCF table bodies are MSBFirst when `format & FMT_MS_BYTE` (bit 2) is set;
this bit us once, the 10x20 font reads 223 only big-endian).
* **Baseline**: `minimal_bdf()` → `bdftopcf` → a valid PCF the terminal should
accept, so we can distinguish "parse error" from "never delivered".
* **TFTP** (`TFTPServer`): RFC 1350 octet read server; short-block termination,
error opcode for missing files, never dies on an idle socket (bug fixed).
* **CLI**:
```
python3 tools/fontgen.py baseline out.pcf
python3 tools/fontgen.py mutate base.pcf evil.pcf --num-chars 0x40000001
python3 tools/fontgen.py info some.pcf
python3 tools/fontgen.py serve evil.pcf --host 0.0.0.0 --port 69 --name font.DECW$FONT
```
Artifacts in `reference/fonts/`: `baseline.pcf`, `evil-numchars.pcf`
(`num_chars = 0x40000001`), `fonts.dir`, `system-10x20.pcf` (a real system font).
**Primitive:** `num_chars = 0x40000001` → `n*4` wraps to `4` → `alloc(4)` → the
offsets loop then writes `n` entries → heap overflow.
## Next: reachability
Still to determine before touching the live terminal: how the VT1200's TFTP font
path names the file it requests, and whether it fetches `fonts.dir` first
(strings: `/fonts.dir`, `font name different: name in path file='%s'`).
`serve` logs every request, so the first run against the unit will tell us.
## Font delivery: confirmed protocol (live, v2.2)
Learned by driving the real terminal:
* Setup has **two fields** — `LAT Font Path` and `TFTP Font Path` — with a radio
selecting which is used.
* The **TFTP Font Path is `<host>:<fontdirectory>`**:
* `100.103.255.254` bare → parsed as a *port* (`atoi` stops at the first `.`)
→ font path `:100,ROM` (host empty, no font source at all; `xlsfonts` then
reports no fonts).
* `100.103.255.254:69` → host `100.103.255.254`, directory `69`.
* The terminal then **fetches `<fontdirectory>/fonts.dir`** over TFTP and loads
the font files named inside. Observed RRQs: `"69"`, then `"69/fonts.dir"`.
* Confirmed exchange once routing was fixed:
`RRQ "69"` → `<us> DATA block 1` → `terminal ACK block 1` → `<us> DATA block 2`
→ `terminal ERROR ENOSPACE`. (Serving a *directory* path as if it were a file
makes the terminal abort with TFTP error 3.)
### Two non-obvious gotchas
1. **Routing:** our replies were hijacked into the WireGuard interface
(`ip route get 100.103.100.103` → `dev wg-k-space src 172.24.1.2`), so nothing
reached the terminal even though the server logged the requests. Fix: pin the
terminal to the LAN interface (`ip route add 100.103.100.103/32 dev enp197s0f3u1`)
or drop the tunnel.
2. **The TFTP server must not block:** the terminal can ACK then `ERROR`, so the
server has to abort that transfer on a TFTP ERROR, or it stalls on
retransmits and misses the following `fonts.dir` request.
### Working delivery recipe (confirmed)
1. Setup → Font Path Selection → **TFTP Font Path** = `<our-ip>:<fontdir>` (e.g.
`100.103.255.254:69`) → Apply. Font path becomes `100.103.255.254:69,ROM`.
2. The terminal TFTP-fetches **`<fontdir>/fonts.dir`** from us.
3. A **client `OpenFont`/`ListFontsWithInfo`** triggers the lazy fetch of the
font file named in `fonts.dir`. Observed working:
`RRQ "baseline.pcf"` → `DATA 1` → `ACK 1` → `DATA 2` → `ACK 2`.
4. The server registers our font name
(`-misc-vt1200test-medium-r-normal--8-80-75-75-c-80-iso8859-1` shows in
`xlsfonts`).
### Open issues
* `xlsfonts -l -o` / `ListFontsWithInfo` still reports the font **unmatched**, so
the delivered file is not becoming an openable font — the parser may be
rejecting it (`fonts.dir` name vs the name inside the file, or a required
table). Does not block the exploit (`pcfReadBitmaps` runs during the parse).
* `xset fp rehash` on the terminal returns "bad font path element … Directory
missing fonts.dir" and issues **no** TFTP request, so re-applying via Setup is
currently the only way to re-read a changed `fonts.dir`.
* The terminal sends a trailing `ACK block 3` after a short final block.
### Live results (patched payload)
* Small synthetic font (680 B = 2 TFTP blocks): transfers **cleanly**, name
registered, but `OpenFont`/`ListFontsWithInfo` still reports it unmatched and
`xmessage` can't convert it — so the delivered font is *not* accepted, and no
message is printed.
* Large real font (25,860 B ≈ 51 blocks): the terminal **ACKs block 1 and 2,
then stops**, and ~15 s later sends `ERROR ENOSPACE`. This happens for the
**unpatched** font too, so it is a *transfer/large-file* limit, not our patch.
* `num_chars = 0x40000001` therefore never produced corruption: the whole file
never arrived, and the failure is a clean `ENOSPACE`.
* The terminal prints **no** font error, so we have no black-box oracle for
where the parser bails.
### What that implies
* We can reliably push ≤ ~1 KiB of font data into the parser today.
* Two blockers: (1) our synthetic small font is rejected somewhere before it
becomes an openable font; (2) larger fonts cannot be transferred.
* To fire `pcfReadBitmaps` we need a font that (a) parses up to the BITMAPS
table and (b) fits the transfer window — or fix the large-transfer path.
### Candidate next moves
1. Fix/inspect the large-transfer path: try a fresh TID per transfer (spec
behaviour), a smaller/spec block size, and probe with a ~2 KB valid font to
find the real limit.
2. Make a small font the parser accepts (debug the rejection — likely a table or
property the terminal requires).
3. Get visibility: a minimal MAME driver for the TMS34010 + ROM would let us
watch the parse and choose values that corrupt rather than cleanly fail.
### Update: transfer window and font acceptance
* **Multi-block transfers work.** A 2248-byte real font transferred fully over
5 blocks — but the terminal **paused ~13 s mid-transfer** (busy processing), so
the server needs a generous ACK timeout (we now use 60 s). The earlier 25 KB
failure at 2 blocks was our 15 s timeout expiring during such a pause.
* **Even a real, valid font is not openable.** `decsess.pcf` (a genuine DEC
cursor font) fetched via TFTP shows up in `xlsfonts` as `VT1200PROBE1` but
`OpenFont`/`ListFontsWithInfo` still fails. So the rejection is *not* about our
synthetic font — something about the TFTP font path itself.
* Hypothesis under test: the firmware's own template is `DECW$FONTPATH:*.DECW$FONT;`
— the font files may need a **`.DECW$FONT`** name (and/or a DEC-specific
container format). Test: index lists `probe-uniq.DECW$FONT`.
### DEC's own font container (found in the firmware)
Font-file dispatch at `0x0ED764`:
```
cmpi 0x70636601, a5 ; "pcf\1" -> PCF reader
jrne L76BC60 ; otherwise -> SNF path
...
cmpi 0x1DF5E76, a5 ; SNF magic (NOT the MIT/X11 version 4!)
cmpi 0x54, <field@0x20>
cmpi 0x54, <field@0xb0>
<a9(0xd0)> must be 1
<a9(0xe0)> must be 6
else "Invalid SNF font file format." (0x0ED82E)
```
* Our PCF files carry `0x70636601`, so they take the **PCF path** and are rejected
*silently* — even a genuine DEC cursor font (`decsess.pcf`).
* Our MIT-style SNF is rejected with the message above — the firmware wants a
**DEC container** with magic `0x1DF5E76` and that field layout.
* We now have an **oracle** for the SNF path (the message names the failure) and a
concrete target format to reverse from the code at `0x0ED760`–`0x0ED8C0`.
## Terminal crash (observed on real hardware)
The unit displayed a Level-0 fault screen:
```
LEVEL0 ERROR -> Illegal OPCODE Occurrence - 28
007AA3F0 00200008 00000260 3F9B8EA0
00785110 00785070 00000020
```
* The firmware's own string for this fault is `ILLEGAL OPCODE, PC=%#08x`, so one
of those is the PC.
* Decoding the values as TMS34010 **bit** addresses (byte = `v >> 3`):
| value | physical byte | where |
|---|---|---|
| `007AA3F0` | `0x000F547E` | **RAM** ~0.96 MiB |
| `00200008` | `00040001` | **RAM** 0.25 MiB |
| `00000260` | `0x4C` | RAM |
| `3F9B8EA0` | `0x07F371D4` | ROM off `0x0F71D4` (the only ROM value) |
| `00785110` | `0x000F0A22` | **RAM** ~0.94 MiB |
| `00785070` | `0x000F0A0E` | **RAM** ~0.94 MiB |
| `00000020` | `0x4` | RAM |
* ROM code lives at bit `0x3F200000`+; only one entry is in ROM. **So the CPU
was almost certainly executing out of RAM** — it fetched a non-instruction and
trapped. That is the signature of **control flow redirected out of ROM into
RAM**, i.e. a hijack, reached via memory corruption.
* Circumstances: the terminal **crashed while idle** (a separate session was
running the `latd` (LAT) setup; no command was in flight). An idle crash
implies a *latent* corruption that surfaced on later execution, not a
just-in-time fault.
Prime suspects (both control attacker-supplied bytes into the terminal):
1. **LAT receive path** — see `lat/notes/lat-receive-audit.md`: the demultiplexer
at `0x16C44` walks `nbr_slots` (wire byte 1) with **no length bound**, so
`nbr_slots`/`byte_count` up to 255 give ~66 KB of out-of-bounds slots that are
*acted on* (Data_a delivered; Start/Stop/Reject mutate SCB state).
2. **Font path** — `pcfReadBitmaps` `num_chars*4` overflow (see above), delivered
over TFTP; the terminal retries the font path periodically.
Isolation plan: power-cycle, then (a) run only `latd` with the font path set to
`ROM`, and (b) run only the TFTP font path with `latd` stopped — see which one
reproduces the idle crash.
## Plan
1. **Baseline**: obtain or generate a valid PCF/SNF font the terminal will
accept, and confirm the terminal actually fetches it (proves reachability).
2. **Delivery harness**: a Python TFTP server (RFC 783 — trivial) serving
`.DECW$FONT` files, with the terminal's Font Path pointed at us; or
impersonate the font server.
3. **Find the bug**: compare the firmware's `pcfReadFont`/`pcfReadBitmaps`
against the published libXfont fixes to find the missing check; or fuzz
mutated PCFs and watch for a crash (terminal reset / hang / font error).
4. **Payload**: RAM is writable and executable and we know the map; place code
in RAM and redirect the corrupted control datum (return address or a
font/glyph structure field) to it.
The alternative (faster but needs physical work) is a ROM patch + bootloader —
explicitly ruled out, ROMs to stay original.
+145
View File
@@ -0,0 +1,145 @@
# VT1200 memory map
Derived statically from the firmware ROM images (v2.1 and v2.2) and
independently re-verified. Confidence is called out per section.
The CPU is a Texas Instruments **TMS34010**. It is a *bit-addressed* machine:
a 32-bit logical address selects a bit; the top two logical address bits are
not emitted, so the external physical space is 128 MiB and
`physical_bit == logical_bit & 0x3FFFFFFF`. **The firmware stores absolute
bit addresses**, so a stored pointer `P` refers to physical byte `P >> 3`.
## ROM — confidence: HIGH
| Property | Value |
|---|---|
| Size | 1,835,008 bytes (`0x1C0000`, 1.75 MiB) |
| Physical byte range | `0x07E40000` – `0x07FFFFFF` |
| Bit range | `0x3F200000` – `0x3FFFFFFF` |
| Placement | **top-aligned** in the 128 MiB space |
Evidence: 1000+ absolute string pointers in the image satisfy
`(P >> 3) - string_offset == 0x07E40000`; e.g. `"Messages re-xmt'ed"` at
offset `0xC2DDB` is referenced by the 32-bit value `0x3F816ED8`
(`0x3F816ED8 >> 3 == 0x07F02DDB == 0x07E40000 + 0xC2DDB`).
## Bank order — confidence: HIGH
The seven 256 KiB banks are laid out in **reverse part-number order**: the
highest-numbered EPROM pair sits at the lowest address. In the address-ordered
image (`reconstruct.py`, default) `file offset == physical byte - 0x07E40000`.
| `k` | v2.1 pair | v2.2 pair | file offset | physical byte | bit base |
|---|---|---|---|---|---|
| 0 | 23-222E9 / 223E9 | 23-286E9 / 287E9 | `0x000000` | `0x07E40000` | `0x3F200000` |
| 1 | 23-220E9 / 221E9 | 23-284E9 / 285E9 | `0x040000` | `0x07E80000` | `0x3F400000` |
| 2 | 23-218E9 / 219E9 | 23-282E9 / 283E9 | `0x080000` | `0x07EC0000` | `0x3F600000` |
| 3 | 23-216E9 / 217E9 | 23-280E9 / 281E9 | `0x0C0000` | `0x07F00000` | `0x3F800000` |
| 4 | 23-214E9 / 215E9 | 23-278E9 / 279E9 | `0x100000` | `0x07F40000` | `0x3FA00000` |
| 5 | 23-212E9 / 213E9 | 23-276E9 / 277E9 | `0x140000` | `0x07F80000` | `0x3FC00000` |
| 6 | 23-210E9 / 211E9 | 23-274E9 / 275E9 | `0x180000` | `0x07FC0000` | `0x3FE00000` |
Conversion, for a part-number-ordered image (e.g. a raw `reconstruct.py
--part-order` file):
```
physical_byte(F) = 0x07E40000 + (6 - (F >> 18)) * 0x40000 + (F & 0x3FFFF)
```
## Reset / interrupt vector page — confidence: HIGH
The vector page occupies the last 128 bytes of the ROM.
* Physical byte `0x07FFFF80`–`0x07FFFFFF` (file `0x1BFF80`–`0x1C0000`)
* Logical bit `0xFFFFFC00`–`0xFFFFFFFF`
* 32 entries, one 32-bit bit-address each; **entry 31 (`0xFFFFFFE0`) is reset**
| entry | value | target |
|---|---|---|
| 31 (RESET) | `0x3F200040` | `0x07E40008` — power-on code (`60 03 50 05 40 07 00 56 …`) |
| 1 | `0x3F207C40` | `0x07E40F88` |
| 22, 23 | `0x3F207CC0`, `0x3F207D00` | `0x07E40F98`, `0x07E40FA0` |
| 0, 2–21, 24–30 | `0x000009C0` … `0x00000F60` | unresolved (see Open items) |
The reset vector is **identical in v2.1 and v2.2**, and points at byte-identical
POST code.
## Bank header — confidence: HIGH (checksum), LOW (`h1`)
Every 256 KiB bank begins with an 8-byte header of four big-endian-friendly
16-bit little-endian words:
```
[ h0 ][ h1 ][ 0xAAAA ][ 0x5555 ]
```
* `h0` is a **16-bit additive checksum**: the sum of all 16-bit words from the
`0xAAAA` magic word to the end of the bank, mod 2^16. Verified for **all 14
banks in both revisions** (`tools/vt1200_map.py`).
* `0xAAAA5555` is a fixed format marker.
* `h1` is **unidentified** (not CRC32-low16, CRC-16/CCITT, XOR or byte sum). It
is per-bank and differs between revisions — possibly a build/part id.
The header is *not* a load address or length field.
## CPU on-chip registers — confidence: HIGH (datasheet)
The TMS34010's own I/O registers live in logical bit space
`0xC0000000`–`0xC00001FF`, register *n* at `0xC0000000 + 0x10*n`. Observed in
the firmware:
```
CONTROL 0xC00000B0 DPYCTL 0xC0000080
HSTCTLH 0xC0000100 INTENB 0xC0000110
INTPEND 0xC0000120 CONVSP 0xC0000130
CONVDP 0xC0000140 HSBLNK 0xC0000150
```
## RAM and board peripherals — confidence: MEDIUM (RAM) / LOW (peripherals)
* **RAM** begins at `0x0000000`. 1 MB on the system-logic board plus up to
3× 1 MB SIMMs (service guide). POST clears words from address 0; interrupt
handlers save registers at byte `0x40`–`0x100`; hundreds of `@0x1xxxx`…
`@0x4xxxx` globals are referenced, so at least the first ~`0x50000` bytes are
statically used.
* **Board peripherals** appear around byte `0x00B00000`, `0x00C40000`,
`0x00C80000` (bit `0x5800000`, `0x6200000`, `0x6400000`). POST writes
`@0x62000d0/f0` and `@0x64000d0/e0/f0`; the two identical windows at
`0xC40000`/`0xC80000` are presumed to be the two DUARTs. **Device decoding
not confirmed.**
Interrupt sources (service guide): Display, Host Interface, Interrupt 1,
Interrupt 2, NMI, Trap, Window Violation; plus LANCE Ethernet, DUART (2 ch +
2 timers), video clock.
## v2.1 vs v2.2 — confidence: HIGH
Same load base, same bank order, same vector page, same header format, and the
boot bank (286/287) is **byte-identical** (reset target `0x07E40008`). The
main X-server banks were relinked: ~90 % of bytes differ overall (bank 0 ≈50 %,
banks 1–6 ≈93–97 %). So v2.2 is not a small patch to v2.1.
## Reproduce
```sh
./reconstruct.py v2.2 # address-ordered image (default)
python3 tools/vt1200_map.py vt1200_v22.bin # vectors + header checksums
# disassemble the power-on / exception bank (address 0, bit base 0x3F200000):
unidasm vt1200_v22.bin -arch tms34010 -basepc 0 -count 40
python3 -m unittest test_reconstruct -v # layout regression tests
```
Load the image in an emulator/disassembler at byte base `0x07E40000`.
## Open items
1. `h1` header field meaning.
2. The 28 non-reset vector entries (`0x000009C0`…): look like low-RAM handlers
installed at boot, or unrelocated offsets — unresolved.
3. Exact RAM extent and the peripheral device decoding.
4. **Address model mismatch:** the firmware stores *bit* addresses, but the
Ghidra TMS34010 module models *byte* addresses (instructions step by 2). A
pointer constant must be divided by 8 to resolve in Ghidra. `tools/ptr_constants.py`
finds and resolves those constants; the remaining step is a Ghidra script to
rewrite them in place.
+234
View File
@@ -0,0 +1,234 @@
# VT1200 — next session handoff
Written 2026-10-15, end of session. Everything below is reproducible from the repo.
Read this first, then `EXPLOIT_NOTES.md` (full protocol/address record) and
`lat/notes/lat-receive-audit.md` (receive-path audit).
---
## 1. Where we are
**Goal:** run custom, self-compiled code on the real VT1200 over the network,
**with the ROMs untouched** (exploit route only).
**This session's result:** the crash is **not** caused by the session data stream.
- We extracted the exact bytes the terminal received in the capture where it died
(27,529 bytes, 136 slots) and replayed them at the terminal.
- It **survived** — twice over, in fact (the replay produced **two circuits**, so the
terminal got the data ~2.4×, and still no fault).
So the trigger is something *other* than the byte stream. The one protocol-level
difference we can see is now the top suspect:
> **latd's periodic LAT service announcements (message type `0xA`, multicast to
> `09:00:2b:00:00:0f`)** — 91 of them, one per ~10 s, for the entire crashing session.
> Our data-only replay contained **zero** of them.
This matters because the audit's **Finding 3** says exactly that path is unguarded:
type `0xA` → dispatcher `0x11634` → `0x118C0` → LAD update (`0x10660`/`0x103CA`),
which `memcpy`s with **announcement-derived lengths and no confirmed upper bound**.
---
## 2. The test that is armed and waiting
The soak is set up; it just needs a terminal connected to it and ~10–15 minutes.
**Services** (latd, node `SID`):
| service | command | note |
|---|---|---|
| `VT1200` | `lat/probe/heartbeat.sh` | **use this** — prints `alive HH:MM:SS` every 20 s |
| `SOAK` | `lat/probe/heartbeat.sh` | backup name, same thing |
| `SID` | the data-stream replayer | replays the 27 KB capture, then exits |
| `REPLAY` | the data-stream replayer | same |
**latd** is configured for the crash-session conditions:
`Multicast Timer (sec): 10` (verified empirically: gaps of exactly 10.0 s), so latd's
own live announcements now arrive at the same rate as in the crashing capture.
**Procedure:**
1. Terminal on, at the LAT service list.
2. Connect to **`VT1200`** (or `SOAK`).
3. Watch the screen 10–15 min. You should see a line every 20 s:
```
alive 23:20:05 -- soak running
alive 23:20:25 tick 1
```
4. **Text keeps ticking** → terminal alive (soak continues).
**Text freezes** → real fault. Announcements are implicated → go to §5.1.
**No crash after the full soak** → announcements exonerated → go to §5.2.
We no longer have to judge by eye: a live terminal sends LAT **keepalives every ~20 s**,
so death is also visible on the wire (see `lat/local/rep-*.pcap` captures).
---
## 3. The lesson that cost us time (read this before judging "it's broken")
**A blank terminal window does NOT mean a crash.** We picked `sleep 3600` as the soak
service, which prints nothing — and an idle LAT session window is *legitimately* blank:
titlebar only, empty inside. It looked identical to a dead terminal and caused a
needless power cycle.
Evidence it was benign: the connect handshake matched the healthy original session
frame-for-frame.
```
original (worked) our "blank"
VT cmd=0x6 (connect) yes yes
service name slot \x01\x1f\xff\x06VT1200\x00\x00 identical
host port reply ty=0xf ... /dev/pts/8 ty=0xf ... /dev/pts/0
then H ty=0x0 bc=1 b'@' (login text) (nothing -- sleep is silent)
```
**Rule: always use an output-producing service for a soak test.** `heartbeat.sh` exists
for exactly this. And check *both* the screen and the wire keepalives before concluding
anything.
---
## 4. Tools built this session (all in `lat/probe/`, all tested)
| file | what it does |
|---|---|
| `extract_stream.py` | self-contained libpcap + LAT parser → the exact host→VT1200 byte stream. Also `--stats`. |
| `replay_stream.py` | replays a stream to stdout; usable as a **latd service command**. `--limit N` sends the first N bytes (for bisecting). |
| `announce_replay.py` | re-sends the captured **service announcements verbatim** at a chosen interval. `--dry-run`, `--interval`, `--loops`, `--forever`. |
| `heartbeat.sh` | the soak service: prints a timestamp every 20 s. |
| `test_replay.py`, `test_announce_replay.py` | tests for the above (11 tests, green). |
Handy invocations:
```sh
cd /home/arti/code/k-space/vt1200/lat/probe
# re-extract the crashing stream and look at it
python3 extract_stream.py ../local/filter-test2.pcap -o ../local/crash-stream.bin --stats
# replay the announcements only (verbatim, 10 s apart, looping)
sudo python3 announce_replay.py ../local/filter-test2.pcap --interval 10 --forever --dry-run
# arm a service that replays the data stream (bisect with --limit)
sudo /home/arti/code/k-space/vt1200/lat/local/build/latcp -A -a REPLAY \
-C 'python3 /home/arti/code/k-space/vt1200/lat/probe/replay_stream.py /home/arti/code/k-space/vt1200/lat/local/crash-stream.bin' \
-r 100
```
---
## 5. Next steps, in order
### 5.1 If the soak crashes the terminal (announcements confirmed)
Shrink the trigger to a minimal frame. The announcement frame carries several slots;
the interesting one is **type `0xE`** (the service advertisement):
```
LATD for Linux \x01\x0e \x06VT1200 \x14login via OSC filter \x01\x01\x00\x00
```
Note the 2-byte field at payload offsets **14–15**, which **changes on every
announcement** (`\x01\x0e` → `\x01\x0f` → … → `\x02\x27`). Its source is
`lat/code/latd/server.cc:221`:
```c
announce->incarnation = --multicast_incarnation;
```
latd **decrements the node incarnation on every announcement**, so the terminal sees
the node's identity change every 10 s — a strong candidate for a receiver that
re-allocates/replaces its directory entry each time (the "unbounded" theme of
Finding A/3). Bisect plan:
1. Send **only** the type-`0xE` slot, at 10 s, and see if that alone kills it.
2. Then vary one field at a time — **incarnation first**, then the length fields —
until a single minimal frame reproduces it. That is the exploit primitive.
3. If it is the incarnation, the "trigger" is trivially `latcp -m 1`-style announcement
spam — a **network-only, ROM-untouched** trigger, which is exactly the goal.
### 5.2 If the soak does NOT crash it (announcements exonerated)
The remaining difference is **pacing**. The original delivered ~2 KB bursts every ~2.3 s
over ~527 s; our replay blasted everything in ~59 s.
- Add a `--timing` mode to `replay_stream.py`: `extract_stream.py` already records each
slot's timestamp (`events`), so emit `(delay, length)` pairs and sleep accordingly for
a faithful 527 s replay.
- Cheaper first probe: `--chunk 255 --pace 2.3` (a 2 KB burst every 2.3 s).
### 5.3 Font path (parallel thread, still blocked)
- Our PCFs register but **never open** (`OpenFont`/`ListFontsWithInfo` → "unmatched").
- DEC "SNF" container entry checks still fail (`Invalid SNF font file format.`) —
file→buffer offset mapping unverified.
- **New from the MAME harness (see `harness/mame/FINDINGS.md`):**
- `pcfReadBitmaps` `num_chars*4` overflow is **confirmed and reproduced in-emulator**
(`n` is a full 32-bit `pcfReadInt32`, no bound check, then a loop writing `n` CARD32s):
`n=0x10000001` → `fosAlloc(0x40000004)`; `n=0x40000000` → alloc of **0**.
- The ~1 KB font limit is the **firmware's own `tftp_read` buffer check**, not a disk
error: `cmp a11,a9 / jrle` → `tftp_read: bufsize (%d) too small for %d bytes`,
TFTP error code 3. The 516-byte value is the datagram buffer; ~1 KB is the
file-accumulation buffer.
- ROM is mapped at **bit `0x3f200000`**, mirrored at `0xff200000–0xffffffff`
(MAME's address-map unit is 1 bit for `memory_access<32,16,3>`).
---
## 6. Environment facts and gotchas (hard-won — do not relearn these)
- **Terminal:** MAC `08:00:2b:16:4b:5a`, IP `100.103.100.103`, v2.2, X server on TCP 6000.
- **Route:** either kill the WireGuard tunnel or
`ip route add 100.103.100.103/32 dev enp197s0f3u1`, or replies get hijacked into
`wg-k-space`. This silently broke TFTP for a long time.
- **Capture filter matters:** `ether host 08:00:2b:16:4b:5a` **does not capture
multicast** — use `ether proto 0x6004`. Half of "we saw no announcements" was this
filter, not reality. `filter-test2.pcap` used the broad filter and *did* capture them.
- **latcp needs root** (the socket is root-owned): `sudo latcp -d`.
- **latd start:** `cd lat/local/build && sudo ./latcp -s -d -v -v -i enp197s0f3u1 > ../latd.log 2>&1 &`
(it execs `./latd -d -v -v -i enp197s0f3u1`). Stop with `sudo latcp -h`.
- **latd runs service commands via `execvp`, not a shell** (`portservice.cc`/`serversession.cc:298`).
So `-C` needs a real executable path with a shebang — not a shell one-liner.
- **Multicast timer:** `latcp -m <seconds>`, accepted range **10–180** (value is a
separate argv: `-m 10`, not `-m10`).
- **Service management:** `latcp -D -a <name>` to delete, `latcp -A -a <name> -C <cmd> -r <rating>` to add.
- **`pkill -f foo` can kill your own shell** when the pattern appears in your own command
line. Use `pkill -f "[f]oo"`.
- **Access control:** the terminal's LAT service list is populated from **announcements**,
not from latd's actual service table. If a service doesn't appear, it isn't being
advertised — registering it with latcp is not enough.
- **Font path delivery:** must be `host:fontdir` over TFTP, and the value must **change**
to re-enable Apply; `xset fp+`/`rehash` are rejected; only a power cycle re-reads the
index. The terminal needs a ~60 s ACK timeout (it pauses ~13 s mid-transfer).
- **NVRAM corruption is acceptable** (setup saved; NVRAM reset jumper exists).
- **Crash signature to look for:** `LEVEL0 ERROR -> Illegal OPCODE Occurrence - 28`,
with values mostly in RAM ~1 MiB (only `3F9B8EA0` in ROM) → execution out of RAM.
---
## 7. Current process state at end of session
Left running deliberately (kill or keep as you prefer):
| process | note |
|---|---|
| `latd` (pid varies) | multicast timer 10 s; services SID/REPLAY/IDLE/VT1200/SOAK |
| `tcpdump -w lat/local/ann-run1.pcap` | broad filter, `timeout 5400` — **may still be recording** |
| `harness/serve.py 100.103.255.254 69` | TFTP font server (you asked to leave it running) |
| `announce_replay.py` | **stopped** |
Captures present: `filter-test2.pcap` (the crash, 73 KB), `replay-run1.pcap` (survived
data replay, 106 KB), `ann-run1.pcap` (announcement soak, in progress), plus older ones.
## 8. Key file map
- `EXPLOIT_NOTES.md` — full record: protocol, addresses, ruled-out items, crash decode.
- `MEMORY_MAP.md` — confirmed ROM/RAM/vector map.
- `lat/notes/lat-receive-audit.md` — receive-path audit (Finding 3 = announcements/LAD).
- `lat/local/HANDOFF.md` — earlier latd setup notes.
- `harness/mame/FINDINGS.md` — MAME harness results (font parser, ROM mapping).
- `lat/probe/` — the tools in §4.
- `reference/dis34-a-v22.txt.gz` — full analyzed disassembly (byte offset = displayed address).
- ROM images rebuilt by `reconstruct.py` into `v2.1/`, `v2.2/`.
- MAME source/binary: `/home/arti/code/k-space/mame0289` (outside the project).
+232
View File
@@ -0,0 +1,232 @@
# DEC VT1200 X Terminal — ROM images
The DEC VT1200 is a monochrome X Window System (X11) terminal (circa 1990).
It runs the X server, terminal manager, window manager, and VT emulator
entirely from ROM on a Texas Instruments TMS34010 CPU, with 2–4 MB of RAM and
no virtual memory.
These are the firmware ROM dumps, split by firmware revision. The confirmed
memory map is in **[MEMORY_MAP.md](MEMORY_MAP.md)**.
## Contents
| Folder | Firmware | ROMs | Part numbers |
|--------|----------|------|--------------|
| `v2.1/` | V2.1 | 14 x 128 KiB | 23-210E9 .. 23-223E9 |
| `v2.2/` | V2.2 | 14 x 128 KiB | 23-274E9 .. 23-287E9 |
Each file is 131072 bytes (128 KiB) and is named by its DEC part number.
## Source
Dumped and published by **9track.net** (Dave/9track collection):
- Index page: https://9track.net/roms/ (section "DEC VT1200", category *Terminal*)
- Files: https://9track.net/roms/files/dec/vt1200/
Fetched: 2026-10-15.
## Notes
- The bitsavers terminal document archive does not currently host VT1200 ROM
images (checked `/bits/` and `/pdf/dec/terminal/`), so 9track.net is the
canonical source for these dumps.
- The 9track table does not list the component/location for each ROM; only the
part-number-labeled filenames are given.
- Verify integrity with `sha256sum v2.1/* v2.2/*`.
## Firmware layout (reverse-engineered)
The 14 EPROMs are **byte-interleaved 16-bit words**, not a flat byte stream.
Within each consecutive pair of part numbers, the **odd part number holds the
low byte** and the **even part number holds the high byte**:
```
v2.1 pairs: (210,211) (212,213) (214,215) (216,217) (218,219) (220,221) (222,223)
v2.2 pairs: (274,275) (276,277) (278,279) (280,281) (282,283) (284,285) (286,287)
```
The seven 256 KiB banks are laid out so that `file offset == physical byte -
0x07E40000`: the **highest** part-number pair sits at the **lowest** address.
`reconstruct.py` writes that 1.75 MiB (0x1C0000) image by default; pass
`--part-order` for the legacy ascending-part-number ordering.
```sh
./reconstruct.py v2.1 # -> vt1200_v21.bin (address order)
./reconstruct.py v2.2 # -> vt1200_v22.bin
python3 -m unittest test_reconstruct -v # layout regression tests
```
Evidence this interleave is correct: only it produces readable text, e.g.
`-DEC-Terminal-Medium-R-Normal--14-100-100-100-C-80-ISO8859-1`, `WM XIO Error`,
`packet_size = %d exceeds MAXSIZE_RCVPKT`, and SCCS headers such as
`$Header: ctype.c,v 1.1 89/10/05 19:40:49 craig Exp $`. Getting the interleave
wrong shifts every string by one byte (e.g. `DEC` becomes `EDC`).
## Disassembly
The CPU is a TI **TMS34010**. The ROM is loaded at physical byte base
`0x07E40000` (bit `0x3F200000`); the reset vector (`0x3F200040`) points at the
power-on code at ROM+8 (`DINT; SETF 16,0,0; SETF 0,0,1; CLR A0; …`). Each
256 KiB bank begins with an 8-byte header `[checksum16][?][AAAA][5555]`.
MAME's bundled disassembler, which ships a `tms34010` backend:
```sh
unidasm vt1200_v22.bin -arch tms34010 -basepc 0x7E40000 -count 40
```
Or `smart34010`'s `dis34` (note `-b` is a *bit*-address base):
```sh
dis34 -a -l -b 3F200000 vt1200_v21.bin
```
`unidasm`/`dis34` print *bit* addresses (0x10 per 16-bit instruction), whereas
Ghidra uses byte addresses. `tools/vt1200_map.py` prints the vectors and
verifies the per-bank header checksums:
```sh
python3 tools/vt1200_map.py vt1200_v22.bin
```
## Pointer constants (bit-address → byte-address)
The firmware stores **bit** addresses; a 32-bit value `P` refers to physical
byte `P >> 3`. A byte-addressed tool such as Ghidra cannot resolve those
constants directly. `tools/ptr_constants.py` scans an address-ordered image
for such constants and resolves their targets:
```sh
python3 tools/ptr_constants.py vt1200_v22.bin
python3 tools/ptr_constants.py vt1200_v22.bin --strings
python3 tools/ptr_constants.py vt1200_v22.bin --tsv pointers.tsv
python3 -m unittest test_ptr_constants -v
```
On v2.2 it finds ~44,700 constants, of which ~3,680 distinct targets are
strings (e.g. `0x004B08 <- 0x3F225840 'LAT: could not allocate XCB for …'`).
The Ghidra side is implemented in `ghidra_scripts/FixPtrConstants.java`: it
scans the loaded ROM and adds a `DATA` reference from each constant to the byte
it points at (`P >> 3`), leaving the bytes untouched. `AssertPtrFix.java` is a
headless regression check for it. Already applied to the project:
| Program | references created |
|---------|--------------------|
| `vt1200_v21.bin` | 37,187 |
| `vt1200_v22.bin` | 40,290 |
```sh
/opt/ghidra/support/analyzeHeadless ghidra vt1200 \
-process -noanalysis \
-scriptPath ghidra_scripts \
-postScript FixPtrConstants.java
```
## Ghidra
Ghidra has no built-in TMS34010 language, so we install the community module
[`ZPaul2Fresh8/Ghidra_TMS34010`](https://github.com/ZPaul2Fresh8/Ghidra_TMS34010):
- `tools/ghidra-tms34010/` — vendored, patched module source
- `tools/ghidra-tms34010-local.patch` — all local changes vs. upstream
- `tools/install-ghidra-plugin.sh` — installs + compiles it into Ghidra
```sh
tools/install-ghidra-plugin.sh # needs sudo; installs into /opt/ghidra
```
The patch does two things:
1. **Ghidra 12 schema fixes** — `<data_space space="ROM">` must be lowercase
`rom` (matching the slaspec), and every `<memory_block>` needs
`initialized="false"` or a bit/byte-mapped address.
2. **Removes the Midway arcade content** — upstream shipped a Midway board map
(`VRAM`/`RAM`/`NVRAM`/`PALETTE`/`GFX`/`ROM` blocks plus `WATCHDOG`,
`DIPSWITCHES`, `INPUT_n`, `midtunit_*` and a `rom:0xFFFFC` trap table) that
does not describe the VT1200 and whose `GFX`/`ROM` blocks collided with the
loaded image. The cleaned `pspec` keeps only the CPU definition.
### Project
`ghidra/` is a ready-to-open Ghidra project (`ghidra/vt1200.gpr`) containing the
reconstructed **v2.1 and v2.2** images, imported with `tms34010:LE:32:default`
at byte base **`0x07E40000`** and disassembled from the reset vector plus a
linear pass over the boot bank.
| Program | Functions | Instructions |
|---------|-----------|--------------|
| `vt1200_v21.bin` | 8 | 61,401 |
| `vt1200_v22.bin` | 6 | 62,444 |
Helper scripts live in `ghidra_scripts/`:
- `VerifyTMS34010.java` — locates the loaded block, follows flow from the reset
vector, then linearly disassembles the boot bank, and prints regions.
- `StatsTMS34010.java` — function/instruction counts.
- `FixPtrConstants.java` — converts bit-address pointer constants to references.
- `AssertPtrFix.java` — headless regression check for the above.
Caveats:
- **`currentProgram.getImageBase()` is not the ROM base.** Use the *loaded*
block (`rom:07e40000`–`rom:07ffffff`); the helper script does this.
- The module's **pcode semantics are incomplete**, so flow-following cannot
expand far and the analyzers emit non-fatal `ArrayIndexOutOfBoundsException`s.
That is why the boot bank is also disassembled linearly.
- Ghidra 12 dropped Jython; its bundled Python scripts need PyGhidra, so the
helpers here are Java.
- Data cross-references are materialised by `FixPtrConstants.java` (the bit vs
byte address issue) — see the pointer-constants section above.
## Documentation
`docs/` holds the free DEC/TI documents gathered during this work. Each PDF
has a `.txt` sidecar with the extracted text (handy for `grep`).
| File | Source |
|------|--------|
| `EK-V1000-SV-002_service-guide.pdf` | filibeto.org/dec/hardware/EK-V1000-SV-002.pdf |
| `EK-V1000-UG-002_installing-VT1000.pdf` | filibeto.org/dec/hardware/EK-V1000-UG-002.pdf |
| `EK-V1200-UG-001_installing-VT1200.pdf` | filibeto.org/dec/hardware/EK-V1200-UG-001.pdf |
| `EK-V1000-RN-005_VT1000-v2.0-release-notes.pdf` | filibeto.org/dec/hardware/EK-V1000-RN-005.pdf |
| `EK-V1200-RN-001_VT1200-release-notes.pdf` | filibeto.org/dec/hardware/EK-V1200-RN-001.pdf |
| `EK-V1000-RC-003_installing-optional-memory.pdf` | filibeto.org/dec/hardware/EK-V1000-RC-003.pdf |
| `EK-V120I-IN-001_installing-DECimage-1200.pdf` | filibeto.org/dec/hardware/EK-V120I-IN-001.pdf |
| `EK-V1000-IP-001_illustrated-parts-breakdown.pdf` | filibeto.org/dec/hardware/EK-V1000-IP-001.pdf |
| `DTJ-1991-vol3num4_X-Window-Terminals.pdf` | Digital Technical Journal 3(4), Fall 1991, pp. 26–35 |
| `TMS34010-users-guide.pdf` | TI TMS34010 User's Guide |
| `ipb_pages/*.png` | page renders of the IPB (that scan has no text layer) |
`reference/` holds the VT1000 v1.2 ROM dump (12 × 27C010) published by bitsavers
(`bitsavers.org/pdf/dec/terminal/vt1000/VT1000-v1.2.zip`) plus an earlier linear
`dis34` disassembly of v2.1 (gzipped).
Notably **no online document contains the memory map** — the missing artifact is
the `MP-02989-01` VT1000/VT1200 System Box Maintenance Print Set (fold-out
schematics). See MEMORY_MAP.md.
## Repository layout
```
vt1200/
├── v2.1/ v2.2/ # original 28 EPROM dumps
├── reconstruct.py # de-interleave a revision -> address-ordered image
├── test_reconstruct.py
├── MEMORY_MAP.md # the confirmed memory map
├── README.md
├── vt1200_v21.bin vt1200_v22.bin
├── docs/ # DEC/TI manuals (PDF + extracted .txt) + ipb_pages/
├── reference/ # VT1000 v1.2 ROM dump, earlier dis34 output
├── ghidra/ # Ghidra project (vt1200.gpr + .rep)
├── ghidra_scripts/ # Verify/Stats/FixPtrConstants/AssertPtrFix .java
├── tools/
│ ├── vt1200_map.py # vectors + bank-header checksums
│ ├── ptr_constants.py # find/resolve bit-address constants
│ ├── smart34010/ # dis34 disassembler source
│ ├── ghidra-tms34010/ # patched processor module source
│ ├── ghidra-tms34010-local.patch
│ └── install-ghidra-plugin.sh
└── test_ptr_constants.py
```
+2
View File
@@ -0,0 +1,2 @@
MAME debugger version 0.289 (mame0289-dirty)
Currently targeting vt1200 (VT1200 X terminal (v2.2 firmware))
Binary file not shown.
@@ -0,0 +1,807 @@
X Window Terminals
Björn Engberg and Thomas Porcher
1 Abstract
X window terminals occupy a niche between X window workstations
and graphics terminals. The purpose of terminals in general is
to provide low-cost user access to host computers or smaller
dedicated systems. X window terminals further the advance in
graphics terminals and provide new and interesting ways to
utilize host systems. Ethernet cable provides for graphics
performance previously not seen in terminals. The X Window
System developed by MIT allows multiple applications to be
displayed and controlled from the user's workstation. Now,
with X window terminals, the same powerful user interface is
available on host and other non-workstation computers. [The
XTERMINALS paper starts here.]
In mid 1987, the Video, Image, and Print Systems (VIPS) Group
began the design of Digital's first X window terminal, the
VT1000 terminal and its code upgrade, the VT1200 terminal.
Our goal was to design and implement an X window terminal that
would allow the use of windowing capabilities on large computer
systems. In 1989, Digital developed the VT1300 X terminal and
in 1991 the VXT 2000 X terminal. The designs of these X window
terminals are all quite different. Our design approach changed
as the underlying technology changed.
This paper first compares host-system computing with applica-
tions run on workstations. It summarizes the significance of the
X Window System developed by MIT and discusses the client-server
model. The paper then presents the need for X window terminals
and follows their development stages. It compares and contrasts
Digital's different design strategies for the VT1000, VT1200,
and VT1300 X terminals. The paper concludes with a summary of
the recently announced VXT 2000 X terminal.
Digital Technical Journal Vol. 3 No. 4 Fall 1991 1
X Window Terminals
2 Background
Before the development of the X Window System, there was very
little overlap in functionality between workstations and other
kinds of computers. Workstations had stunning and fast graph-
ics, and many powerful applications were available on them.
Those applications were not available to users of basic 80-
by-24 character-cell text display terminals connected to a
host system located in a clean room. Graphics terminals, of
course, allowed the use of ReGIS or another protocol for math
and business graphics, but their performance was far below the
expectations of a workstation user. Few people have the patience
to run, for example, a computer-aided design application on a
VT240 terminal, assuming such a version of the application is
available.
Although a workstation offers fast graphics capabilities, its
applications sometimes need more CPU power or more disk space
to do calculations in a timely fashion. Graphics applications
written for workstations could not run on faster host computers,
which did not provide a display. Nor was there a standard way
to get data from the host to display on a workstation. Each
application required a unique solution to this problem.
Since the introduction of the new client-server model of comput-
ing and modern networks, many tasks can be divided into subtasks
that can run on the most suitable processor. The X Window Sys-
tem uses the client-server approach, as shown in Figure 1. The
application is viewed as an X client, and a workstation or a
terminal can run an X server that controls the display. The X
server also controls input from the keyboard and mouse or other
pointing devices.
An X client and an X server use an X wire to communicate, as
shown in Figure 2. The X wire is simply a two-way error-free
byte stream, which can be implemented in many different ways.
The X Window System architecture does not stipulate how the X
wire should be implemented, but several de facto standards have
emerged. Manufacturers have designed X wires usually based on
2 Digital Technical Journal Vol. 3 No. 4 Fall 1991
X Window Terminals
the data transport mechanisms that were available and conve-
nient when the X Window System was implemented. The X wires use
transmission control protocol/internet protocol (TCP/IP), DEC-
net, Local Area Transport (LAT), and other protocols, and even
shared memory buffers as a transport to avoid protocol over-
head. A single implementation often supports several transport
mechanisms.
The X server typically executes on a processor with display
hardware. The X client can execute on almost any processor. It
may execute on the same CPU as the X server, or it may execute
on a host, another workstation, or a compute server. The X
server can be connected to several X clients simultaneously,
with any combination of local (running on the same CPU) or
remote (running on another CPU) X clients. The X server treats
local and remote clients equally.
3 Workstation Environment
Figure 3 compares a traditional non-X windowing workstation with
an X windowing workstation. In both workstations the application
must use a graphics library to communicate with the display
hardware and software.
In an X windowing client environment, the library of routines
is called Xlib. An application designer can choose from a wide
variety of toolkits, which are essentially a level of additional
library routines between the application and Xlib. The use of
a toolkit can significantly reduce the amount of work an ap-
plication programmer has to do. The application software, Xlib,
optional toolkit, and other libraries compose the X client, as
shown in Figure 4.
With few exceptions, the X server comes with the display hard-
ware and input devices (keyboard and pointer) indicated in
Figure 5.
Digital Technical Journal Vol. 3 No. 4 Fall 1991 3
X Window Terminals
The X Window System with its flexibility neatly solves the prob-
lems of CPU power and disk space versus display availability.
Applications written for X can execute on a wide variety of com-
puters, and the results can be displayed on any of a multitude
of devices, even on a workstation that would not have the ca-
pacity to run the application locally. Figure 6 shows how the X
Window System fits into a network environment.
The X Window System has already generated many useful appli-
cations, and its widespread popularity ensures that many more
applications will be made available in the future.
4 Need for X Terminals
In a study to determine how workstations are used, the VIPS
Group found that many users did not take advantage of the full
potential of their workstations. In a software development or
document editing environment, the users often set up their work-
stations as terminals. They usually created a few terminal emu-
lation windows and used SET HOST or RLOGIN commands to connect
to a host system on which they stored their working environment
and files. Only two features of a workstation were frequently
used. Users kept several terminal emulators on their screens
at the same time, and set the terminal emulator windows to be
larger than 80 by 24 characters. Only rarely did the average
workstation user take advantage of the full power of graphics
applications.
The results of our study indicated a need for a cost-effective
alternative to a workstation that would provide the features
desired by a large number of users. We envisioned a new kind of
terminal, one that would allow people to have multiple windows
of arbitrary size, to connect with multiple hosts, and, since
the X architecture allowed it, to be able to use the same kind
of graphics as a workstation.
4 Digital Technical Journal Vol. 3 No. 4 Fall 1991
X Window Terminals
From an X architecture standpoint, X terminals and X worksta-
tions are quite similar. They can in fact use the same hardware.
For example, Digital's VT1300 terminal runs on the same hardware
as the VAXstation 3100 workstation. X terminal software can also
be made to run well on hardware platforms that are not suitable
for workstations.
The main architectural difference between X terminal and X
workstation software is that X terminals are closed systems
that do not support local user applications. Although this
may seem to be an unnecessary restriction, it does allow X
terminals to be made for less money. An open system that allows
any user application to run locally must have an established
CPU architecture, a supported operating system, such as the VMS,
UNIX, or ULTRIX system, and, subsequently, sufficient memory and
/or disk space to support such an environment. A closed system,
on the other hand, can be designed with simpler hardware, a
smaller operating system, less memory, and thus lower cost. The
absence of the ability to run user applications locally does
not impact usability significantly since the user can run any
desired application on another CPU. Digital's VT1000 and VT1200
X terminals were designed based on this approach.
5 X Terminal Environment
X terminals often have local applications, but they must be
built into the terminal by the designers. The VT1200 terminal
has a video terminal emulator (VTE), a window manager, and a
terminal manager as the local applications. The VTE allows the
VT1200 terminal to make American National Standards Institute
(ANSI) character-cell connections to a host, via the Ethernet
or the serial lines. This capability makes the VT1200 terminal
useful in an environment that does not have X window support.
Although any X server can run windows software, it does not
provide a user interface. To manipulate the windows, the user
needs a window manager. The window manager creates window frames
that allow the user to invoke functions to move windows, resize
Digital Technical Journal Vol. 3 No. 4 Fall 1991 5
X Window Terminals
windows, change stacking order, and use icons. This capability
also makes the VT1200 terminal useful when no host is available
to run a remote window manager. A terminal with a local window
manager generates less network traffic, and window management is
not slowed by host congestion or network round-trip delays. The
VT1200 X terminal allows use of a remote window manager, if the
user prefers a different style of window management.
The local terminal manager provides the user interface to initi-
ate connections to host systems. It is also responsible for the
terminal customization interface.
All clients communicate with the X server using standard X wire
commands only. Any window manager, remote or local, can manage
all the windows on the screen, regardless of whether the clients
are remote or local.
6 Development of X Windor Terminals
The development process of the VT1000 and VT1200 X terminals has
important lessons to teach us. The knowledge we gained in 1987
has helped us develop future generations of X terminals.
When we designed the VT1000 X terminal and its code upgrade,
the VT1200, we held many discussions within the group and with
people from other groups. We planned many iterations before we
arrived at the final architecture. It was by no means the only
way to design an X terminal, and in 1989 we tried a different
approach with the design of the VT1300 terminal. We knew that
the best decision at a particular time might be very different
from the best decision one year later, since the technical
and marketing environment is constantly changing. New tools,
standards, and practices enter the field while others become
obsolete. Newer products must always have new features to meet
changing technology requirements.
6 Digital Technical Journal Vol. 3 No. 4 Fall 1991
X Window Terminals
Hardware Platform
Our first step was to discuss the hardware platform and select
the kind of CPU to use, memory size, I/O considerations, type of
display, etc. We studied many different CPUs to determine which
one would provide the most capabilities for the lowest cost.
A VAX chip was rejected because, at the time, it was far too
expensive for the required price range of the VT1000 terminal.
The Motorola 68000 series CPUs are quite powerful, but we had
to consider other factors such as availability of software and
hardware tools, cross compilers and linkers that could run on
VMS, and hardware debugging facilities of sufficient power.
We finally selected Texas Instruments' TMS34010 microprocessor
with video support and several built-in graphics instructions
that made it a cost-effective solution. It also came with VMS
development tools, a C compiler, an assembler and linker, a
single-step, hardware trace buffer with disassembler, and a
powerful in-circuit emulator that made it possible to control
execution in detail, inspect registers and memory, and set
break points and hardware watch points (for example, break when
writing value x into location y).
We further discussed the kind of I/O to use. A sample imple-
mentation of the MIT X server on a VAXstation 2000 workstation
and a primitive serial line protocol showed, as expected, that
serial lines were clearly insufficient to carry the X wire pro-
tocol without some compression of the wire protocol itself.
We had to build Digital's first X terminal with an Ethernet
interface.
We needed to determine if this hardware platform could give us
sufficient performance. We made several performance estimates,
based on what little we knew then about the X server and other
software components. We went through each step in as much detail
as we could (before anything was built). We calculated how
many instructions were necessary to perform each task in the
chain of receiving a command and displaying it on the screen.
By knowing the speed of the CPU, we could estimate performance
in characters or vectors per second. Our estimates showed that
Digital Technical Journal Vol. 3 No. 4 Fall 1991 7
X Window Terminals
the VT1000 X terminal would not be exceedingly fast, but the
performance would most probably be sufficient, definitely faster
than a VAXstation 2000 in most cases.
In retrospect, actual performance of the VT1000 terminal and the
later software upgrade, the VT1200, was close to our estimates,
but it took several passes of code optimization to achieve such
performance.
We also discussed alternate hardware designs for performance
improvements. One solution proposed two CPUs, the TMS34010
microprocessor to handle the display and a 68000 microprocessor
to handle I/O and other tasks. Unfortunately, we found no easy
way to balance the workload between the two CPUs. We estimated
that the different software components would have the following
relative CPU demands:
Interrupts, 5 percent
Communications, 10 percent
Operating system, 5 percent
X server (minus display routines), 60 percent
Display routines, 20 percent
To equalize the load between the CPUs, we would have had to
split the X server in two, a solution that was not feasible.
Any other split of tasks would cause one CPU to spend most of
its time waiting for the other, and the overall performance
gain would be minimal. Communication between multiple CPUs is
complex and is very difficult to debug. Therefore, we decided
that two CPUs were not worth the trouble or the cost. The best
way to double performance is to install a single CPU that is
twice as fast. At that time, the TMS34020 was already being
mentioned as a follow-up microprocessor. Since its software
would be compatible with the TMS34010, we decided to keep it in
mind for possible use in a future terminal.
8 Digital Technical Journal Vol. 3 No. 4 Fall 1991
X Window Terminals
Code Selection
The use of read-only memory (ROM)-based code versus downloaded
code has been debated for some time. ROM-based code starts up
faster and incurs less network traffic at startup time (espe-
cially on a site with many X terminals), but is not flexible
when software is upgraded. On the other hand, downloaded code
can be easily distributed. An entire site can be upgraded with
one or a few installations by a system manager as opposed to
changing ROMs in a large number of terminals. (With the VT1200
X terminal, customers can change ROM boards.) From the point
of view of terminal business, it made sense to use ROM-based
code in 1987. We reasoned that not all sites would have Eth-
ernet, but with ROMs the X terminal would still be useful as a
multiwindow terminal emulator. We realized that such concerns
would change with time, and on the whole, downloaded code would
become the better approach. The only exceptions would be in the
home or small office markets where a boot host or an Ethernet
might not be available. Subsequent X terminals are being made in
both downloaded (for example, in the VT1300 terminal) and ROM
versions.
Operating System Selection
Next we considered which operating system to use. We looked at
other vendors' operating systems, but found they were either too
complex and big or inadequate. One of our coworkers had written
a very compact operating system for a VAX system used on another
project. We used it in our prototype and then adapted it for the
TMS34010 processor. We implemented additional functions to run
the rest of the software with minimum changes.
There are many advantages to working with "your own" operat-
ing system. It is easy to make changes, to work around tricky
problems, and to make special enhancements. But operating sys-
tem code is difficult to debug. Timing is very critical, and
throughout the project, we found strange bugs in code that had
initially appeared to be all right to everyone involved. We
found bugs under heavy load conditions after a rare sequence of
Digital Technical Journal Vol. 3 No. 4 Fall 1991 9
X Window Terminals
events uncovered little timing windows and race conditions that
had not been handled properly. Even with in-circuit emulators,
such bugs could take weeks to track down.
In the VT1300 we decided to use the VAXELN operating system. We
wanted to avoid the possibility of time wasted on finding and
patching holes in the design of a new operating system.
Local Terminal Manager
The VT1000 X terminal is self-starting at power-up, but without
a host system, it needs a local user interface. We decided that
this interface should resemble a workstation session manager and
thus called it the local terminal manager. Although it covers
a different set of functions, we wanted the local terminal
manager to implement a similar set of objects and operations
(the "look and feel" or style) of a workstation session manager.
The style of the DECwindows session manager was chosen to make
it easier for a user to switch between an X terminal and a
DECwindows workstation. We wrote a subset toolkit for all the
"customize" screens and ensured that the VTE could use the same
subset toolkit for its "customize" screens. As DECwindows has
progressed, subsequent X terminals have adapted the new user
interface preferences, in this case Motif.
Local Terminal Emulator
We considered a local terminal emulator to be an important
component. We knew that X-based terminal emulators could run on
the host, but in 1987 hosts with X windowing support were rare.
Since we were in the terminal group, a terminal that could not
manipulate ordinary text by itself was considered unsellable.
We wanted the ability to access both X and non-X hosts and we
wanted to support multiple text windows. Therefore we defined
the terminal emulator as an X client so that text windows could
coexist with X client windows. This feature has proved to be
exceptionally popular. A large number of users use nothing but
video terminal emulator windows. They are not interested in
10 Digital Technical Journal Vol. 3 No. 4 Fall 1991
X Window Terminals
X windowing graphics, but do want multiple and/or larger text
windows on a large screen.
Local Window Manager
We debated whether or not to implement a local window manager.
The DECwindows window manager was under development and was con-
stantly changing. The DECwindows window manager contained far
too many VMS dependencies to be ported easily. Also the X ter-
minal did not have enough memory to run the DECwindows toolkit
locally. We could have ported other window managers, but they
lacked the essential characteristics of the DECwindows window
manager. For a while we considered letting the local clients
have a primitive way to manage their own windows, until a full-
featured window manager could be started on a host. Again, this
alternative lacked the DECwindows system's qualities. We even-
tually decided to write a window manager based only on Xlib and
our subset toolkit calls. It has the essential characteristics
of the DECwindows product. Also, since the DECwindows window
manager of necessity would keep changing, we wrote the local
window manager in such a way that it could relinquish control to
a remote window manager. This solution gave us the most flexi-
bility for this hardware platform. The recently announced VXT
2000 X terminal has been designed with virtual memory to accom-
modate a well-established unmodified window manager, the Motif
Window Manager.
X Server
We also needed to choose an X server. We could have based our
code on the distribution tape from MIT, but at the time the X
Window System was not yet a mature product. Every implementor
had to spend considerable time stabilizing the implementation
enough to yield a product and improve performance. Since the
VMS DECwindows Group had been writing code for the server, we
decided to use DECwindows code. Once the porting effort started,
we found that most of the performance had been improved by VAX
MACRO code. Consequently, we had to re-engineer all the modules
or adapt new ones from the MIT tape. As we kept porting and
Digital Technical Journal Vol. 3 No. 4 Fall 1991 11
X Window Terminals
enhancing performance, our code changed more and more until
it became extremely difficult to track bug fixes made by the
DECwindows Group. The MIT patches were also nearly impossible to
use because of code changes and because our starting code was
one step removed from the tape.
Today the MIT X server is a mature product; patches and bug
fixes are readily available from MIT and the X community. In our
current X terminals, the high degree of portability of the MIT
X server allows us to keep most of the MIT X server source code
almost unchanged so patches are easily applied.
Communications Protocol
Many communications protocols were available, but our choice
was dictated by market pressures rather than technical reasons.
The market demanded TCP/IP. DECnet would have been acceptable,
but it was running out of available addresses, at least within
Digital. DECnet address space supports only 64,000 nodes and
requires manual address and name assignments. After waiting
weeks to get addresses for a few workstations, we realized that
adding thousands of X terminals into Digital's internal network
would not be possible. DECnet Phase V software has solved this
problem.
Next we looked at the LAT protocol used by Digital terminal
servers and found that it had several advantages. First, the
VMS operating system supports the LAT protocol. LAT uses unique
48-bit Ethernet addresses to identify each node, which allows a
large node address space. LAT also does not require any system
management to add another terminal. A user can connect a termi-
nal to a power source, and the terminal automatically becomes
part of the network. Our performance evaluations found that the
LAT interface on the host could be written to incur less host
overhead than DECnet, which is important when many X terminals
are connected to hosts.
12 Digital Technical Journal Vol. 3 No. 4 Fall 1991
X Window Terminals
Changes were needed in the VMS LAT driver to accommodate X wire
and font service connections. The VMS Software Engineering Group
worked with us to ensure that we would have those changes on
schedule and in the appropriate VMS releases. As a result, we
chose the LAT protocol for the VMS community and TCP/IP for
users of ULTRIX and UNIX systems.
Font File System
Storing fonts and changing font file formats were major prob-
lems. Since the VT1000 X terminal did not have a local file
system, some fonts had to be stored in ROM to allow the VT1000
terminal to function in standalone mode. A quick review of the
available DECwindows fonts showed that not all of them fit in
the ROM space allowed for the terminal. Furthermore, customer-
designed fonts or new font releases could not be accommodated.
The solution was to be able to read fonts from a host system.
This approach provided a font service on VMS, and enabled font
files to be read over the Internet. We designed a process called
the font daemon to run on the VMS operating system. This process
could deliver font data on request to one or several VT1000 ter-
minals. The VMS font daemon uses the LAT protocol to deliver the
fonts and protects somewhat against font file format changes. In
many ways, the design of the font daemon makes it a precursor
to a general font server, and it is very similar to the X Font
Server being delivered by MIT in the latest release of the X
Windows System.
To use the font service, the terminal user must specify a font
path in the VT1200 local terminal manager. Specifying a host
name is sufficient to access the default font path, although
users with their own font files can optionally search other
directories. At startup, the VT1200 terminal makes a font con-
nection to the host's font service and delivers the font path
specification to the font service. The font service sends font
names and other basic font information about all the fonts in
the selected path. When the VT1200 X server needs a font, the
VT1200 first searches the ROM-based fonts; if it is not there, a
request to read the font is sent to the font daemon. The daemon
Digital Technical Journal Vol. 3 No. 4 Fall 1991 13
X Window Terminals
sends the required information to the VT1200, and the X server
can display characters from that font. Since memory is limited,
the VT1200 has font caching, a mechanism to discard fonts no
longer used or to discard the least used fonts. Our current X
terminals increase the robustness of the font mechanism; for
example, they provide recovery should the font service or its
host become unavailable.
The special LAT code that we used on VMS systems for the font
service was not available on UNIX and ULTRIX operating systems.
Since internet protocol (IP) was available, we could use the
trivial file transfer protocol (TFTP) to read a file from a host
system, if the system manager set the proper protections. We
chose TFTP for its ease of implementation and its wide avail-
ability on UNIX and ULTRIX systems. The TFTP font path in a
VT1200 terminal specifies a host IP address and a complete path
to a file (usually named font.paths) that contains the complete
path to all the font files that the VT1200 can use. The terminal
can then access all those font files, again through TFTP, to
obtain font names and other basic information about each font.
When a client wishes to use a font, the proper font file can
be read again, this time to load the complete font. Since this
process is time-consuming, the font path pointing to the file
has an alternate format in which the font name follows the com-
plete path to each file. Using this alternate format, the VT1200
terminal does not have to open and read the font file until a
client actually intends to use it.
7 Comparison of X Terminals
The VT1200 and VT1300 X window terminals were built using dif-
ferent approaches to solve the problems encountered during de-
velopment. The X terminal is a new and flexible concept; there
is no single "best" design. Table 1 compares the most impor-
tant differences between the two terminals. We also include the
specifics for the VXT 2000 X terminal.
14 Digital Technical Journal Vol. 3 No. 4 Fall 1991
X Window Terminals
Digital Technical Journal Vol. 3 No. 4 Fall 1991 15
X Window Terminals
________________________________________________________________
Table_1:__Comparison_of_X_Window_Terminals______________________
VT1200 VT1300 VXT 2000
Monochrome only Color only Monochrome and
color
1 bit plane 4 or 8 bit planes 1 or 8 bit planes
Code in ROM Code downloaded Code downloaded
No virtual memory No virtual memory Virtual memory
2 to 4MB RAM 8 to 32MB RAM 4 to 16MB RAM
TMS34010 CPU VAX CPU VAX CPU
Special operating VAXELN operating Special operating
system system system
Local clients: No local clients Local clients:
Terminal manager Terminal manager
Window manager Motif window
Video terminal manager
emulator DECterm terminal
emulator
Local customization Customized on host Local customiza-
just as a worksta- tion
tion Centralized cus-
tomization
Choice of host Automatic X window Choice of host(LAT
(LAT only) login to boot host and TCP/IP using
XDMCP)
LAT protocol DECnet protocol LAT protocol
TCP/IPgprotocolhnical JTCP/IP Vol.o3oNo. 4 FallC1991 protocol
Special hardware Available on sev- Uses standard
eral hardware
workstation plat-
_______________________forms____________________________________
X Window Terminals
The VT1200 is ROM-based; all its software is permanently resi-
dent in the terminal. The VT1300 software is downloaded, so a
host or bootserver on the same network must supply the terminal
with a load image at power-up.
Since downloaded terminals are dependent on the existence of
at least one working host system, the user interface can be
designed differently. While the VT1200 X terminal has a built-in
user interface, the VT1300 does not need it. The VT1300 terminal
automatically makes an X connection to a host at power-up, and
the user is presented with the same DECwindows login box as on a
workstation. The VT1300 has no local clients; all clients run on
the host system.
The VT1200 terminal uses the LAT protocol for its ease of use
and minimal network management demands. The VT1300 terminal uses
the DECnet software already implemented in the VAXELN operating
system used internally. Both terminals support TCP/IP.
8 VXT 2000 X Terminal
One problem that has plagued all X terminals is limited memory
space. Workstations usually have a virtual memory system, which
provides large paging and swap areas on a disk, and applications
and X servers can use more memory space than the hardware has.
Until now X terminals have not had virtual memory systems. If
too many applications made excessive demands, or if a client
created large off-screen images (called "pixmaps" in the X Win-
dow System) the terminals quickly used all memory space. If the
X server implementation was correct, an error was reported and
a client might try a less demanding approach. In other cases,
the terminal or client might simply crash. One alternative was
to install more memory in the X terminal, although this can be
costly and offers no guarantees.
Digital Technical Journal Vol. 3 No. 4 Fall 1991 17
X Window Terminals
In the next generation of Digital's X terminals, the VXT 2000,
this problem has found a cost-effective solution. Based on the
VAX architecture, the VXT 2000 terminal uses virtual memory and
downloaded code. The Digital InfoServer, an Ethernet storage
server, provides the load image, virtual memory paging space,
fonts, and customization storage. The same InfoServer also
solves another problem: now the X terminal has access to a file
system. This allows more extensive customization, as well as
centralized management of the customization of all X terminals
on the network. Figure 8 shows the configuration for the VXT
2000 X terminal.
9 Conclusion
X terminals are not intended to replace workstations. Nor will
workstations replace host systems or completely displace X ter-
minals in the foreseeable future. It is likely that host comput-
ers will always be faster and have more memory and disk space
than reasonably priced workstations of the same era. It is also
likely that terminals can be built cheaper than workstations of
reasonable performance for some time to come. As long as that is
the case, there will be a market for X terminals and host sys-
tems. Future X terminals will be faster, and have more built-in
functionality, more local applications, X extensions, and most
likely, additional hardware features. X terminals will be the
networked terminals of the 1990s.
10 Acknowledgements
We wish to thank the members of the VT1200 development team
who worked many long hours on this project. Thanks to everyone
inside and outside the Video, Image and Print Systems Group who
contributed helpful suggestions, constructive criticism, and
important hours using and testing the products. Thanks to the
LAT and VMS Software Engineering Groups for incorporating the
changes needed for the VT1200 X terminal to be useful. Thanks to
18 Digital Technical Journal Vol. 3 No. 4 Fall 1991
X Window Terminals
the VIPS Quality Group for ensuring that as few bugs as possible
remained in the product when shipped.
Björn Engberg As a principal software engineer in the Video,
Image and Print Systems Group, Björn Engberg was the main ar-
chitect and software project leader for the VT1000 and VT1200
X window terminals. He joined Digital in 1978 and worked as
a development engineer at CSS in Sweden, where he modified
Digital's terminals for the European market. He relocated to
the United States in 1982 to work on the VT240, the VT320, the
LJ250, and several advanced development projects. Björn received
an M.S.E.E. (honors) from the Royal Institute of Technology in
Stockholm.
Thomas C. Porcher Principal engineer Tom Porcher is a member of
the Video, Image and Print Systems Group. He provided techni-
cal leadership in the development of the VXT 2000 X terminal.
Previously he was a technical leader for the VT240 terminal,
VAX Session Support Utility, and the DECterm terminal emulator.
Tom holds five patents for work on the VT240 terminal and on
the multisession protocol used in the VT340 and VT400 series
terminals. Tom received his B.S. in mathematics from Stevens
Institute of Technology (1975). He is a member of the ACM.
DECnet, DECwindows, Digital, LAT, ULTRIX, VAX, VAXELN, VMS,
VT1000, VT1200, VT1300, and VXT 2000 are trademarks of Digital
Equipment Corporation.
UNIX is a registered trademark of UNIX System Laboratories, Inc.
Digital Technical Journal Vol. 3 No. 4 Fall 1991 19
=============================================================================
Copyright 1991 Digital Equipment Corporation. Forwarding and copying of this
article is permitted for personal and educational purposes without fee
provided that Digital Equipment Corporation's copyright is retained with the
article and that the content is not modified. This article is not to be
distributed for commercial advantage. Abstracting with credit of Digital
Equipment Corporation's authorship is permitted. All rights reserved.
=============================================================================
Binary file not shown.
@@ -0,0 +1 @@
Binary file not shown.
@@ -0,0 +1,311 @@
EK–V1000–RC–003
VT1000/VT1200 Video Terminal
Installing Optional Memory
This card describes how to install optional RAM (random access
memory) into your VT1000 or VT1200 video terminal. A detailed
installation procedure also appears in Installing and Using the
VT1000 Video Terminal and Installing and Using the VT1200 Video
Terminal.
The VT1000 terminal comes with 1 megabyte of base memory.
The VT1200 terminal comes with 2 megabytes of base memory.
You can add 1, 2, or 3 megabytes of optional memory, for a total
of up to 4 megabytes. Optional memory comes on 1-megabyte
SIMM cards (single in-line memory module), which install on the
terminal’s memory controller board.
CAUTION
The memory controller board and the SIMM cards can be
damaged by electrostatic discharge. Handle the memory
controller board by its cover or strap. Handle the SIMM
card by the side edges of the card. Avoid contact with any
components or circuitry within the system box.
Digital recommends using a grounding wrist strap and
an antistatic mat to perform the installation, if available.
Otherwise, Digital recommends that you frequently touch
the metal chassis of the system box during installation, to
neutralize any existing static charges.
2
Unpack and check the contents of the box.
You should receive the correct number of 1-megabyte SIMM cards
you ordered. You will install the SIMM cards on the memory
controller board inside the system box.
VT1000 only: You will also receive a memory controller board,
if necessary. The board comes with a 1-megabyte SIMM card
already installed.
Carefully inspect the components for shipping damage. If you have
any missing or damaged items, contact your sales representative
and delivery agent.
Remove the system box cover.
1. Turn the system box’s | /O power switch off (O).
2. Turn the monitor’s | /O power switch off (O).
3. Disconnect the two power cords from the rear of the system
box.
4. Disconnect the monitor video cable from the rear of the
monitor.
5. Remove the monitor from the top of the system box. You may
need two people.
6. Release the top cover of the system box by pressing in the
two push tabs on the side of the box with the power switch,
as shown.
7. Slowly lift the top cover until you release the hinges on the
other side of the box. Then lift the top cover completely off
the system box.
3
23 4
2 5
6
22%
GSF_0839_89.DG
4
Identify the components in the system box.
There are five major components in the system box.
1 System logic board
2 RAM controller board
3 SIMM card (installed on the other side of the RAM
controller board)
4 ROM memory board
5 Power supply
2
3
4
1
5
23 4
2 5
6
22%
GSF_1362_89.DG
5
Remove the memory controller board (if installed).
1. Release the standoff clips by gently pushing each clip away
from the board and lifting up on the edges of the board.
2. Grasp the strap of the memory controller board and pull up
firmly to release the memory controller board connector from
the system logic board.
3. Place the board on top of the power supply’s metal cover,
with the strap side down. Use the metal cover as a work
surface to perform the SIMM card installation.
GSF_0957_89.DG
22% of full size
then imod scaled at 1.5
6
Install the SIMM cards on the memory controller board.
1. Remove the small SIMM card(s) from the shipping bag.
VT1000 only: Also remove the new memory controller board,
if ordered.
2. Place the SIMM cards and memory controller board on top
of the power supply’s metal cover, with the strap side of the
memory controller board facing down. Use the metal cover
as a work surface to install the SIMM cards. This prevents
electrostatic damage.
3. The memory controller board has one SIMM card preinstalled
in the connector labeled 2MB. Install the next SIMM card in
the connector labeled 3MB and the last SIMM card in the
connector labeled 4MB, as follows.
CAUTION
SIMM cards can be damaged by electrostatic discharge.
Handle the SIMM card by the side edges of the card.
Avoid contact with the gold contact fingers on the card.
7
a. Insert the SIMM card into the connector at a 45-degree
angle. Face the components on the SIMM card toward
the components on the memory controller board. Line
up the center key slot on the SIMM card with the
connector key on the memory controller board.
b. Push down on the top of the SIMM card to securely seat
the card in the connector.
c. Raise the SIMM card into a standup position, until both
sides of the card lock into the connector.
4M
B
3M
B
2M
B
0 %
a t 7
DG
T.
DI
_E
RD
OA
_B
M
RA
3M
B
3M
B
GSF_0840_89.DG
8
Install the memory controller board into the system box.
1. Grasp the strap of the memory controller board.
2. Carefully place the board on top of its connector and standoffs
in the system box. Use the standoffs as guides to align the
connector on the board with the logic board connector.
3. Press down firmly on the board and its edges to seat the
connector and lock each of the four standoff clips.
GSF_0842_89.DG
NOTE
If you have problems, recheck the installation procedures
carefully. If the problem continues, contact Digital
Customer Services.
9
Replace the system box cover.
1. From the rear of the system box, place the left side of the top
cover onto the hinge tabs in the left side of the system box.
2. Gently lower the right side of the top cover onto the system
box. Make sure the power connector frame slides into the
slot behind the power connectors.
3. Push down on the right side of the top cover until it snaps
into the two push tabs, locking it in place.
23 4
2 5
6
22%
GSF_0959_89.DG
4. Place the monitor on top of the system box.
5. Connect the two power cords to the rear of the system box.
6. Connect the monitor video cable to rear of the monitor.
7. Turn the system box’s | /O power switch on ( | ).
8. Turn the monitor’s | /O power switch on ( | ).
10
Verify the installation.
The Terminal Manager window should be displayed on your
screen. Find the Memory Remaining scale on the bottom of the
VT1000
Verify that the number on the right side of the Memory Remaining
scale displays the correct number of total megabytes in your
system.
Number
Standard + Optional = Displayed
VT1200
2 megabytes 1 megabyte 3M
2 megabytes 4M
VT1000
1 megabyte 1 megabyte 2M
2 megabytes 3M
3 megabyte 4M
NOTE
If you have problems, recheck the installation procedures
carefully. If the problem continues, contact Digital Customer
Services.
The installation procedure is complete.
Copyright © by Digital Equipment Corporation 1990
All Rights Reserved. Printed in Singapore.
VT1000 and VT1200 are trademarks of Digital Equipment
Corporation.
Binary file not shown.
@@ -0,0 +1,234 @@
EK-V1000-RN-005
VT1000 VIDEO TERMINAL V2.0
RELEASE NOTES
This document describes problems, corrections, and restrictions that pertain
to V2.0 of the VT1000 Video Terminal firmware.
Digital Equipment Corporation
July 1990
The information in this document is subject to change without notice and should
not be construed as a commitment by Digital Equipment Corporation. Digital
Equipment Corporation assumes no responsibility for any errors that may appear
in this document.
The software described in this document is furnished under a license and may
be used or copied only in accordance with the terms of such license.
No responsibility is assumed for the use or reliability of software on equipment
that is not supplied by Digital Equipment Corporation or its affiliated companies.
Restricted Rights: Use, duplication, or disclosure by the U. S. Government is
subject to restrictions as set forth in subparagraph ( c ) ( 1 ) ( ii ) of the Rights
in Technical Data and Computer Software clause at DFARS 252.227–7013.
Copyright © by Digital Equipment Corporation 1990
All Rights Reserved.
FCC NOTICE: The equipment described in this manual generates, uses, and
may emit radio frequency energy. The equipment has been type tested and found
to comply with the limits for a Class A computing device pursuant to Subpart
J of Part 15 of FCC Rules, which are designed to provide reasonable protec-
tion against such radio frequency interference when operated in a commercial
environment. Operation of this equipment in a residential area may cause in-
terference, in which case the user at his own expense may be required to take
measures to correct the interference.
AT&T and UNIX are trademarks of American Telephone and Telegraph Com-
pany.
X Window System is a trademark of the Massachusetts Institute of Technology.
The following are trademarks of Digital Equipment Corporation:
DEC LA12, LA34, LA35 PDP ThinWire
DECconnect LA36, LA38, LA50 P/OS ULTRIX
DECmailer LA75 Companion Professional ULTRIX-32
DECmate LA100, LA210 Q-bus UNIBUS
DECnet LJ250, LJ251 Q22-bus VAX
DECserver 200 LN01, LN03 Rainbow VAXstation
DECservice LN03 Plus ReGIS VMS
DECterm LQP02, LQP03 RSTS VT, VT52, VT100
DECUS LQP45 RSX VT220, VT320,
VT420
DECwindows MASSBUS RT VT1000
DECwriter MicroPDP Scholar
DIBOL MicroVAX SERVIcenter
This document was prepared using VAX DOCUMENT, Version 1.2
Contents
Chapter 1 Terminal Manager and VTE Windows
1.1 QUIT ENDS ALL CONNECTIONS . . . . . . . . . . . . . . . . . . . . . . . . 1–1
1.2 TERMINAL MANAGER - CREATE . . . . . . . . . . . . . . . . . . . . . . . . 1–1
1.2.1 CREATE LAT X SESSION . . . . . . . . . . . . . . . . . . . . . . . . 1–1
1.2.2 TCP/IP X SESSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–2
1.3 TERMINAL MANAGER - CUSTOMIZE . . . . . . . . . . . . . . . . . . . . 1–2
1.3.1 CUSTOMIZE SECURITY . . . . . . . . . . . . . . . . . . . . . . . . 1–2
1.3.2 CUSTOMIZE HOST AND PRINTER PORTS . . . . . . . . . 1–2
1.3.3 CUSTOMIZE LAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–2
1.3.4 CUSTOMIZE FONT PATH . . . . . . . . . . . . . . . . . . . . . . . 1–3
1.4 VTE - CUSTOMIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–4
1.4.1 CUSTOMIZE GENERAL . . . . . . . . . . . . . . . . . . . . . . . . . 1–4
1.4.2 CUSTOMIZE 7-BIT NRCS . . . . . . . . . . . . . . . . . . . . . . . . 1–4
1.4.3 CUSTOMIZE PRINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–4
1.5 SYSTEM MANAGER INFORMATION . . . . . . . . . . . . . . . . . . . . . 1–5
1.5.1 APPENDIX D - RUNNING REMOTE X SESSION . . . . . 1–5
iii
Chapter 1
Terminal Manager and VTE Windows
1.1 QUIT ENDS ALL CONNECTIONS
Complete your work before using either the Terminal Manager Quit or
Remote Session Manager Quit. Both Quits are intended to return the
terminal to its initial state at the end of a work session.
1.2 TERMINAL MANAGER - CREATE
1.2.1 CREATE LAT X SESSION
Session Manager and VMS
A problem can occur where a user cannot log into an X session on a host.
The terminal can still open VTE windows and pull down menus. The
watch cursor replaces the pointer.
If you have this problem, enter the command:
$ SHOW DEVICE TWA
If the host show a device number over 999, reboot the host. This action
will restore the VT1000’s ability to create X sessions.
To obtain a patch that permanently corrects this problem, contact your
Digital representative.
Terminal Manager and VTE Windows 1–1
1.2.2 TCP/IP X SESSION
Remote Pause Unsupported in UWS V2.1
A difference between UWS V2.1 and UWS V2.2 prevents the successful
return from a Remote Session Manager Pause state in UWS V2.1.
1.3 TERMINAL MANAGER - CUSTOMIZE
1.3.1 CUSTOMIZE SECURITY
TCP/IP BIND Name Service needs Names in Security
The Security authorization for TCP/IP requires that you only use decimal
dot notation (123.45.67.89) for the IP address of a remote system needing
access. However, if a BIND Name Server is available on the network and
it knows about the remote system, then you must use the name of the
remote system (eg, node.building.institution.area).
1.3.2 CUSTOMIZE HOST AND PRINTER PORTS
Use Speed 19200 or 38400, not both
Due to a hardware limitation in the communications circuits, the speeds
38.4Kbaud and 19.2Kbaud are mutually exclusive. All other speeds may
be mixed between the two serial ports, but only one or the other of the
two top speeds is available at one time.
Diagnostic Port supported on Printer Port
When this mode is enabled, a printer attached to the printer port will
print out all messages that are displayed in the Terminal Manager
Message Region as they are received. You can control the messages that
are printed by selecting the appropriate message types in the Customize
Terminal Manager dialog box.
1.3.3 CUSTOMIZE LAT
Software Update required for multiple Ethernet adaptors
If your system has multiple Ethernet adaptors to allow simultaneous
access to separate LANs, contact your Digital representative for an up-
dated copy of DECW$LAT_TRANSPORT.EXE. The new version provides
support for multiple link definitions.
1–2 Terminal Manager and VTE Windows
1.3.4 CUSTOMIZE FONT PATH
Must Quit to Reset Font Path
Once a session makes use of the fonts, you can view the font path, but
you can’t change it until you quit out of the Terminal Manager. This
applies to all sessions including VTEs. The VTE does not require a font
path but will use host-based fonts for character and line attributes if
available.
Link lost to font server requires quit to reset font path
If your link to the font service is disconnected, perhaps due to the font
server node shutting down, or due to a network problem, you will get
a message in the Terminal Manager window message area stating (for
example):
Session n to NODENAME terminated. Link lost with remote node.
Font path to node NODENAME lost. Reestablish font path before
starting X sessions.
Even if your other sessions to other nodes are still active, you need to
reset your font path to continue working. This is because the behaviors of
applications running on the terminal are not predictable when a request
for a new glyph or font fails. Therefore, you should close all sessions
and quit the terminal manager to restart the terminal and reset the font
path.
Font compiler needed for non-DECwindows environments
If your VT1000 application requires fonts that are not in the DECwin-
dows library, you will need to get a font compiler to convert the fonts you
have to a format the VT1000 can use. A compiler is available through
the Internet that will convert the standard .BDF interchange format of
most fonts to the .DWF format of the VT1000.
The pcf font compiler is available on gatekeeper.dec.com in the
/pub/DEC/VT1000 directory. There are two files in that directory:
README pcf.tar.Z
The README file contains:
Terminal Manager and VTE Windows 1–3
The file pcf.tar.Z in this directory contains the contents of
the contrib/server/pcf directory that is on tape4 of the MIT
X11R4 distribution. This code should allow you to build a
bdf->pcf compiler so that fonts can be generated that are
compatible with the VT1000 series terminals.
(Note that DEC’s .dwf format is also supported by the VT1000.)
and the pcf.tar.Z file is a compressed tar file containing the source code.
To retreive it via the internet, copy the files from:
gatekeeper.dec.com:~ftp/pub/DEC/VT1000
If you cannot copy from the internet, contact your Digital representative.
1.4 VTE - CUSTOMIZE
1.4.1 CUSTOMIZE GENERAL
Answerback only supports printable characters
Unlike the VT320, you cannot put control characters like CR or ESC into
the VTE answerback message.
1.4.2 CUSTOMIZE 7-BIT NRCS
Choose NRCS to Match Keyboard
When using a VTE with a non-US Keyboard and 7-bit NRCS character
sets, you must manually use the VTE Customize 7-bit NRCS Selection to
choose an NRCS set to match the current keyboard language. Select the
corresponding language if you use a typewriter layout. Data Processing
keyboards in any language require the ASCII (North American) NRCS
set. This is a 7-bit issue only.
1.4.3 CUSTOMIZE PRINT
VTE Printer Modes are user settable
Printer Modes are user settable from the Customize dialog box as well as
host settable by control functions. The buttons in the dialog box display
the mode that was set from either source.
1–4 Terminal Manager and VTE Windows
1.5 SYSTEM MANAGER INFORMATION
1.5.1 APPENDIX D - RUNNING REMOTE X SESSION
Wrong node value in command
The last command in the section should read
SET DISPLAY/CREATE/NODE=LOCAL/SERVER=100/TRANSPORT=DECNET
Terminal Manager and VTE Windows 1–5
Binary file not shown.
File diff suppressed because it is too large. Load diff
Binary file not shown.
File diff suppressed because it is too large. Load diff
Binary file not shown.
@@ -0,0 +1,222 @@
EK-V1200-RN-001
VT1200 VIDEO TERMINAL V2.0
RELEASE NOTES
This document describes problems, corrections, and restrictions that pertain
to V2.0 of the VT1200 Video Terminal firmware.
Digital Equipment Corporation
July 1990
The information in this document is subject to change without notice and should
not be construed as a commitment by Digital Equipment Corporation. Digital
Equipment Corporation assumes no responsibility for any errors that may appear
in this document.
The software described in this document is furnished under a license and may
be used or copied only in accordance with the terms of such license.
No responsibility is assumed for the use or reliability of software on equipment
that is not supplied by Digital Equipment Corporation or its affiliated companies.
Restricted Rights: Use, duplication, or disclosure by the U. S. Government is
subject to restrictions as set forth in subparagraph ( c ) ( 1 ) ( ii ) of the Rights
in Technical Data and Computer Software clause at DFARS 252.227–7013.
Copyright © by Digital Equipment Corporation 1990
All Rights Reserved.
FCC NOTICE: The equipment described in this manual generates, uses, and
may emit radio frequency energy. The equipment has been type tested and found
to comply with the limits for a Class A computing device pursuant to Subpart
J of Part 15 of FCC Rules, which are designed to provide reasonable protec-
tion against such radio frequency interference when operated in a commercial
environment. Operation of this equipment in a residential area may cause in-
terference, in which case the user at his own expense may be required to take
measures to correct the interference.
AT&T and UNIX are trademarks of American Telephone and Telegraph Com-
pany.
X Window System is a trademark of the Massachusetts Institute of Technology.
The following are trademarks of Digital Equipment Corporation:
DEC LA12, LA34, LA35 PDP ThinWire
DECconnect LA36, LA38, LA50 P/OS ULTRIX
DECmailer LA75 Companion Professional ULTRIX-32
DECmate LA100, LA210 Q-bus UNIBUS
DECnet LJ250, LJ251 Q22-bus VAX
DECserver 200 LN01, LN03 Rainbow VAXstation
DECservice LN03 Plus ReGIS VMS
DECterm LQP02, LQP03 RSTS VT, VT52, VT100
DECUS LQP45 RSX VT220, VT320,
VT420
DECwindows MASSBUS RT VT1000, VT1200
DECwriter MicroPDP Scholar
DIBOL MicroVAX SERVIcenter
This document was prepared using VAX DOCUMENT, Version 1.2
Contents
Chapter 1 Terminal Manager and VTE Windows
1.1 QUIT ENDS ALL CONNECTIONS . . . . . . . . . . . . . . . . . . . . . . . . 1–1
1.2 TERMINAL MANAGER - CREATE . . . . . . . . . . . . . . . . . . . . . . . . 1–1
1.2.1 CREATE LAT X SESSION . . . . . . . . . . . . . . . . . . . . . . . . 1–1
1.2.2 TCP/IP X SESSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–2
1.3 TERMINAL MANAGER - CUSTOMIZE . . . . . . . . . . . . . . . . . . . . 1–2
1.3.1 CUSTOMIZE SECURITY . . . . . . . . . . . . . . . . . . . . . . . . 1–2
1.3.2 CUSTOMIZE HOST AND PRINTER PORTS . . . . . . . . . 1–2
1.3.3 CUSTOMIZE LAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–2
1.3.4 CUSTOMIZE FONT PATH . . . . . . . . . . . . . . . . . . . . . . . 1–3
1.4 VTE - CUSTOMIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–4
1.4.1 CUSTOMIZE GENERAL . . . . . . . . . . . . . . . . . . . . . . . . . 1–4
1.4.2 CUSTOMIZE 7-BIT NRCS . . . . . . . . . . . . . . . . . . . . . . . . 1–4
1.4.3 CUSTOMIZE PRINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–4
iii
Chapter 1
Terminal Manager and VTE Windows
1.1 QUIT ENDS ALL CONNECTIONS
Complete your work before using either the Terminal Manager Quit or
Remote Session Manager Quit. Both Quits are intended to return the
terminal to its initial state at the end of a work session.
1.2 TERMINAL MANAGER - CREATE
1.2.1 CREATE LAT X SESSION
Session Manager and VMS
A problem can occur where a user cannot log into an X session on a host.
The terminal can still open VTE windows and pull down menus. The
watch cursor replaces the pointer.
If you have this problem, enter the command:
$ SHOW DEVICE TWA
If the host show a device number over 999, reboot the host. This action
will restore the VT1200’s ability to create X sessions.
To obtain a patch that permanently corrects this problem, contact your
Digital representative.
Terminal Manager and VTE Windows 1–1
1.2.2 TCP/IP X SESSION
Remote Pause Unsupported in UWS V2.1
A difference between UWS V2.1 and UWS V2.2 prevents the successful
return from a Remote Session Manager Pause state in UWS V2.1.
1.3 TERMINAL MANAGER - CUSTOMIZE
1.3.1 CUSTOMIZE SECURITY
TCP/IP BIND Name Service needs Names in Security
The Security authorization for TCP/IP requires that you only use decimal
dot notation (123.45.67.89) for the IP address of a remote system needing
access. However, if a BIND Name Server is available on the network and
it knows about the remote system, then you must use the name of the
remote system (eg, node.building.institution.area).
1.3.2 CUSTOMIZE HOST AND PRINTER PORTS
Use Speed 19200 or 38400, not both
Due to a hardware limitation in the communications circuits, the speeds
38.4Kbaud and 19.2Kbaud are mutually exclusive. All other speeds may
be mixed between the two serial ports, but only one or the other of the
two top speeds is available at one time.
Diagnostic Port supported on Printer Port
When this mode is enabled, a printer attached to the printer port will
print out all messages that are displayed in the Terminal Manager
Message Region as they are received. You can control the messages that
are printed by selecting the appropriate message types in the Customize
Terminal Manager dialog box.
1.3.3 CUSTOMIZE LAT
Software Update required for multiple Ethernet adaptors
If your system has multiple Ethernet adaptors to allow simultaneous
access to separate LANs, contact your Digital representative for an up-
dated copy of DECW$LAT_TRANSPORT.EXE. The new version provides
support for multiple link definitions.
1–2 Terminal Manager and VTE Windows
1.3.4 CUSTOMIZE FONT PATH
Must Quit to Reset Font Path
Once a session makes use of the fonts, you can view the font path, but
you can’t change it until you quit out of the Terminal Manager. This
applies to all sessions including VTEs. The VTE does not require a font
path but will use host-based fonts for character and line attributes if
available.
Link lost to font server requires quit to reset font path
If your link to the font service is disconnected, perhaps due to the font
server node shutting down, or due to a network problem, you will get
a message in the Terminal Manager window message area stating (for
example):
Session n to NODENAME terminated. Link lost with remote node.
Font path to node NODENAME lost. Reestablish font path before
starting X sessions.
Even if your other sessions to other nodes are still active, you need to
reset your font path to continue working. This is because the behaviors of
applications running on the terminal are not predictable when a request
for a new glyph or font fails. Therefore, you should close all sessions
and quit the terminal manager to restart the terminal and reset the font
path.
Font compiler needed for non-DECwindows environments
If your VT1200 application requires fonts that are not in the DECwin-
dows library, you will need to get a font compiler to convert the fonts you
have to a format the VT1200 can use. A compiler is available through
the Internet that will convert the standard .BDF interchange format of
most fonts to the .DWF format of the VT1200.
The pcf font compiler is available on gatekeeper.dec.com in the
/pub/DEC/VT1000 directory. There are two files in that directory:
README pcf.tar.Z
The README file contains:
Terminal Manager and VTE Windows 1–3
The file pcf.tar.Z in this directory contains the contents of
the contrib/server/pcf directory that is on tape4 of the MIT
X11R4 distribution. This code should allow you to build a
bdf->pcf compiler so that fonts can be generated that are
compatible with the VT1000 series terminals.
(Note that DEC’s .dwf format is also supported by the VT1000.)
and the pcf.tar.Z file is a compressed tar file containing the source code.
To retreive it via the internet, copy the files from:
gatekeeper.dec.com:~ftp/pub/DEC/VT1000
If you cannot copy from the internet, contact your Digital representative.
1.4 VTE - CUSTOMIZE
1.4.1 CUSTOMIZE GENERAL
Answerback only supports printable characters
Unlike the VT320, you cannot put control characters like CR or ESC into
the VTE answerback message.
1.4.2 CUSTOMIZE 7-BIT NRCS
Choose NRCS to Match Keyboard
When using a VTE with a non-US Keyboard and 7-bit NRCS character
sets, you must manually use the VTE Customize 7-bit NRCS Selection to
choose an NRCS set to match the current keyboard language. Select the
corresponding language if you use a typewriter layout. Data Processing
keyboards in any language require the ASCII (North American) NRCS
set. This is a 7-bit issue only.
1.4.3 CUSTOMIZE PRINT
VTE Printer Modes are user settable
Printer Modes are user settable from the Customize dialog box as well as
host settable by control functions. The buttons in the dialog box display
the mode that was set from either source.
1–4 Terminal Manager and VTE Windows
Binary file not shown.
File diff suppressed because it is too large. Load diff
Binary file not shown.
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

@@ -0,0 +1,481 @@
# VT1200 board register model — Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** Replace the driver's ad-hoc board-window stubs with a modelled, unit-testable register file for the four undecoded VT1200 windows, so the firmware's status/command handshakes behave as real state machines instead of constants.
**Architecture:** A standalone C++ class `vt1200_board` with **no MAME dependencies** (fixed-width integer types only), so it can be unit-tested with plain `g++` outside the emulator. It models two shapes discovered in the firmware: `big` (windows `0x6200000` and `0x6400000` — STATUS at `+0x10`, COMMAND/DATA at `+0x20`, plus `+0x30`/`+0xD0`/`+0xE0`/`+0xF0`) and `dma` (the `0x5800000` data port + `0x5900000` command port pair). The MAME driver owns one instance and forwards its address-map callbacks to it.
**Tech Stack:** C++17, MAME 0.289 driver harness, plain `g++` for the model's unit tests, the project's existing `harness/mame/build.sh`.
**Spec:** `docs/superpowers/specs/2026-10-16-vt1200-board-model-design.md`
## Global Constraints
- **No regression:** with no `VT1200_*` environment variables set, the driver must still reproduce the original wedge — `PC=3FDCE400` with ~199/200 frame samples — verified by the command in Task 1 Step 6.
- All harness behaviour stays **opt-in** via environment variables; new behaviour must default off.
- **Do not modify MAME's own source** (`/home/arti/code/k-space/mame0289/src/...`). Only the driver source in this repo changes.
- Builds use `harness/mame/build.sh` (it now exits non-zero on compile failure — a bare `built:` means success).
- The board model must use **only** `<cstdint>`, `<map>`, `<vector>` — no `emu.h` — so unit tests compile without MAME.
- Addresses inside the model are in the **harness's units**: window base `| (offset & 0xffff)`, where the base is the disassembly operand shifted right by 4 (e.g. code `@0x64000D0` is harness `0x0640000D`).
- Every finding discovered while implementing goes into `harness/mame/BRINGUP_LOG.md`.
---
## File Structure
| File | Responsibility |
|---|---|
| `harness/mame/vt1200_board.h` | **Create.** Declares `vt1200_board`: the four windows, both shapes, configuration, `read`/`write`/`tick`. No MAME types. |
| `harness/mame/vt1200_board.cpp` | **Create.** Implements the register file and the status state machines. |
| `harness/mame/test_vt1200_board.cpp` | **Create.** Standalone `g++` unit tests for the model. No MAME, no emulator. |
| `harness/mame/vt1200.cpp` | **Modify.** Own a `vt1200_board`, forward the four window callbacks to it, keep the existing env knobs working as configuration. |
| `harness/mame/build.sh` | **Modify.** Compile the extra translation unit and symlink it into the MAME tree. |
| `harness/mame/BRINGUP_LOG.md` | **Modify.** Record findings. |
Later plans (separate documents, not this one): *video RAM + scanline renderer*, then *DUARTs / NVRAM / MAC ROM*.
---
## Task 1: Extract the existing behaviour into a standalone, unit-tested class
Behaviour-preserving refactor. This is the riskiest task for regressions, so it lands first and alone.
**Files:**
- Create: `harness/mame/vt1200_board.h`
- Create: `harness/mame/vt1200_board.cpp`
- Create: `harness/mame/test_vt1200_board.cpp`
- Modify: `harness/mame/vt1200.cpp`
- Modify: `harness/mame/build.sh`
**Interfaces:**
- Consumes: nothing (first task).
- Produces:
- `class vt1200_board` with `uint16_t read(uint32_t addr)`, `void write(uint32_t addr, uint16_t data)`, `void tick()`
- `void set_default(uint16_t v)`, `void set_override(uint32_t addr, uint16_t v)`
- `void set_monitor_switch(uint8_t position)`, `void set_busy_ticks(int n)`
- `void set_model_handshake(bool on)`
- constants `VT1200_WIN0` = `0x05800000`, `VT1200_WIN1` = `0x05900000`, `VT1200_WIN2` = `0x06200000`, `VT1200_WIN3` = `0x06400000`
- [ ] **Step 1: Write the failing test**
Create `harness/mame/test_vt1200_board.cpp`:
```cpp
// Standalone unit tests for the VT1200 board register model.
// g++ -std=c++17 -o /tmp/t vt1200_board.cpp test_vt1200_board.cpp && /tmp/t
#include "vt1200_board.h"
#include <cassert>
#include <cstdio>
static int failures = 0;
#define CHECK(cond) do { if (!(cond)) { \
std::printf("FAIL %s:%d %s\n", __FILE__, __LINE__, #cond); failures++; } } while (0)
static void test_default_read(void)
{
vt1200_board b;
b.set_default(0x0000);
CHECK(b.read(VT1200_WIN2 + VT1200_OFF_STATUS) == 0x0000);
}
static void test_override_read(void)
{
vt1200_board b;
b.set_override(VT1200_WIN2 + VT1200_OFF_STATUS, 0x00b7);
CHECK(b.read(VT1200_WIN2 + VT1200_OFF_STATUS) == 0x00b7);
}
static void test_monitor_switch_is_mixed_with_latches(void)
{
vt1200_board b;
b.set_monitor_switch(7); // position 7 -> bits 4-6 = 0x70
b.write(VT1200_WIN3 + VT1200_OFF_SWITCH, 0x0001); // output latch writes bit 0
const uint16_t v = b.read(VT1200_WIN3 + VT1200_OFF_SWITCH);
CHECK((v & 0x0070) == 0x0070); // switch bits read back as input
CHECK((v & 0x0001) == 0x0001); // output bits read back as latched
}
static void test_busy_bit_arms_on_write_and_clears(void)
{
vt1200_board b;
b.set_model_handshake(true);
b.set_busy_ticks(2);
const uint32_t status = VT1200_WIN2 + VT1200_OFF_STATUS;
const uint32_t cmd = VT1200_WIN2 + VT1200_OFF_CMD;
CHECK((b.read(status) & 0x0001) == 0x0000); // idle
b.write(cmd, 0x00ca); // command arms it
CHECK((b.read(status) & 0x0001) == 0x0001); // busy
b.tick();
CHECK((b.read(status) & 0x0001) == 0x0001); // still busy
b.tick();
CHECK((b.read(status) & 0x0001) == 0x0000); // done
}
int main(void)
{
test_default_read();
test_override_read();
test_monitor_switch_is_mixed_with_latches();
test_busy_bit_arms_on_write_and_clears();
std::printf(failures ? "%d FAILURE(S)\n" : "all board tests passed\n", failures);
return failures ? 1 : 0;
}
```
- [ ] **Step 2: Run test to verify it fails**
Run: `cd harness/mame && g++ -std=c++17 -o /tmp/t vt1200_board.cpp test_vt1200_board.cpp`
Expected: FAIL — `vt1200_board.cpp: No such file or directory`.
- [ ] **Step 3: Write the header**
Create `harness/mame/vt1200_board.h`:
```cpp
// VT1200 board register model. Deliberately free of MAME dependencies so it can
// be unit-tested with plain g++.
#pragma once
#include <cstdint>
#include <map>
// Window bases in the harness's address units (disassembly operand >> 4).
static const uint32_t VT1200_WIN0 = 0x05800000; // data port of the DMA pair
static const uint32_t VT1200_WIN1 = 0x05900000; // command port of the DMA pair
static const uint32_t VT1200_WIN2 = 0x06200000; // big: STATUS +0x10, CMD +0x20
static const uint32_t VT1200_WIN3 = 0x06400000; // big, plus the monitor switch
// Window-relative register offsets IN HARNESS UNITS.
//
// The harness address is the firmware's operand shifted right by 4 (MAME's
// TMS34010 space is word-unit here), so an operand offset of +0x10 is harness
// +0x01, and an operand offset of +0xD0 is harness +0x0d. Getting this wrong
// makes registers silently unreachable, so always use these names.
//
// firmware operand harness offset role
// +0x10 0x01 STATUS (bit 0 = ready/done)
// +0x20 0x02 COMMAND / DATA
// +0x30 0x03 (read/written in the same block)
// +0xD0 0x0d mixed I/O -- monitor switch in bits 4-6
// +0xE0 0x0e
// +0xF0 0x0f
static const uint32_t VT1200_OFF_STATUS = 0x0001;
static const uint32_t VT1200_OFF_CMD = 0x0002;
static const uint32_t VT1200_OFF_IO30 = 0x0003;
static const uint32_t VT1200_OFF_SWITCH = 0x000d;
static const uint32_t VT1200_OFF_E0 = 0x000e;
static const uint32_t VT1200_OFF_F0 = 0x000f;
class vt1200_board
{
public:
vt1200_board() = default;
// Configuration (replaces the test-time env knobs).
void set_default(uint16_t v) { m_default = v; }
void set_override(uint32_t addr, uint16_t v) { m_override[addr] = v; }
void set_model_handshake(bool on) { m_handshake = on; }
void set_busy_ticks(int n) { m_busy_ticks = n; }
void set_monitor_switch(uint8_t position) { m_switch_bits = (uint16_t)((position & 7) << 4); }
// Bus interface.
uint16_t read(uint32_t addr);
void write(uint32_t addr, uint16_t data);
void tick();
private:
bool is_switch_port(uint32_t addr) const;
std::map<uint32_t, uint16_t> m_store; // write-back latches
std::map<uint32_t, uint16_t> m_override; // fixed values (experiments)
uint16_t m_default = 0;
bool m_handshake = false;
int m_busy_ticks = 0;
int m_busy_left = 0;
uint16_t m_switch_bits = 0;
};
```
- [ ] **Step 4: Write the implementation**
Create `harness/mame/vt1200_board.cpp`:
```cpp
#include "vt1200_board.h"
bool vt1200_board::is_switch_port(uint32_t addr) const
{
// The monitor-selection switch lives in bits 4-6 of winner 3's +0xD0
// register (harness offset 0x0d).
return addr == (VT1200_WIN3 + VT1200_OFF_SWITCH);
}
uint16_t vt1200_board::read(uint32_t addr)
{
auto ov = m_override.find(addr);
if (ov != m_override.end())
return ov->second;
uint16_t value = m_default;
auto st = m_store.find(addr);
if (st != m_store.end())
value = st->second;
if (is_switch_port(addr))
return (uint16_t)((value & 0xff8f) | (m_switch_bits & 0x0070));
if (m_handshake && (addr & 0xffff) == VT1200_OFF_STATUS)
{
if (m_busy_left > 0)
value |= 0x0001;
else
value &= ~0x0001;
}
return value;
}
void vt1200_board::write(uint32_t addr, uint16_t data)
{
m_store[addr] = data;
if (m_handshake && (addr & 0xffff) == VT1200_OFF_CMD)
m_busy_left = m_busy_ticks;
}
void vt1200_board::tick()
{
if (m_busy_left > 0)
m_busy_left--;
}
```
- [ ] **Step 5: Run the unit tests to verify they pass**
Run: `cd harness/mame && g++ -std=c++17 -o /tmp/t vt1200_board.cpp test_vt1200_board.cpp && /tmp/t`
Expected: `all board tests passed`
- [ ] **Step 6: Wire the driver to the model and verify no regression**
In `harness/mame/vt1200.cpp`: add `#include "vt1200_board.h"`, give `vt1200_state` a `vt1200_board m_board;` member, and in `board_read`/`board_write` delegate to `m_board.read(addr)` / `m_board.write(addr, data)` instead of the current inline logic. In `machine_start`, translate the existing env vars into the model's setters (`VT1200_BOARD_DEFAULT`, `VT1200_BOARD_MAP`, `VT1200_BOARD_MODEL`, `VT1200_BOARD_BUSY_TICKS`, `VT1200_BOARD_SWITCH`). Call `m_board.tick()` once per emulated frame — the simplest correct place is the existing `scanline` callback guarded so it only fires once per frame, or `screen_update` when `cliprect.min_y == 0`.
In `harness/mame/build.sh`: add the new source to the symlink list and to `SOURCES=` (comma-separated), and add `g++ -c vt1200_board.cpp` to the unit-test recipe.
Then verify:
Run:
```sh
cd /home/arti/code/k-space/vt1200
JOBS=8 harness/mame/build.sh 2>&1 | tail -2
M=/home/arti/code/k-space/mame0289/vt1200
PROG_FRAMES=200 timeout 300 $M vt1200 -rompath harness/mame/roms -video none -sound none \
-nothrottle -debug -debugger none -autoboot_script harness/mame/progress.lua -autoboot_delay 0 2>&1 \
| grep -oE "PC=[0-9A-F]{8} samples=[0-9]+" | head -1
```
Expected: `PC=3FDCE400 samples=199` (the original wedge — no regression).
Then re-run the handshake configuration and confirm it still advances:
Run:
```sh
VT1200_BOARD_MODEL=handshake VT1200_BOARD_BUSY_TICKS=2 VT1200_BOARD_SWITCH="0640000D:70:70" \
COV_FRAMES=600 COV_WINDOW=300 timeout 400 $M vt1200 -rompath harness/mame/roms -video none \
-sound none -nothrottle -debug -debugger none -autoboot_script harness/mame/coverage.lua -autoboot_delay 0 2>&1 \
| grep -E "^frame" | tail -1
```
Expected: a `total_distinct` in the high 50s (not the single-instruction wedge).
- [ ] **Step 7: Commit**
```bash
git add harness/mame/vt1200_board.h harness/mame/vt1200_board.cpp \
harness/mame/test_vt1200_board.cpp harness/mame/vt1200.cpp harness/mame/build.sh
git commit -m "harness: extract VT1200 board register model, unit-tested"
```
---
## Task 2: Per-window busy machines (`win_big` shape)
**Files:**
- Modify: `harness/mame/vt1200_board.h`, `harness/mame/vt1200_board.cpp`
- Modify: `harness/mame/test_vt1200_board.cpp`
**Interfaces:**
- Consumes: `vt1200_board` from Task 1.
- Produces: `void set_window_busy_ticks(uint32_t window_base, int n)` — per-window tick counts, so `0x6200000` and `0x6400000` can be tuned independently. `void tick()` now advances every window.
- [ ] **Step 1: Write the failing test**
Add to `test_vt1200_board.cpp`:
```cpp
static void test_windows_are_independent(void)
{
vt1200_board b;
b.set_model_handshake(true);
b.set_window_busy_ticks(VT1200_WIN2, 1);
b.set_window_busy_ticks(VT1200_WIN3, 3);
b.write(VT1200_WIN2 + VT1200_OFF_CMD, 0x0001);
b.write(VT1200_WIN3 + VT1200_OFF_CMD, 0x0001);
CHECK((b.read(VT1200_WIN2 + VT1200_OFF_STATUS) & 1) == 1);
CHECK((b.read(VT1200_WIN3 + VT1200_OFF_STATUS) & 1) == 1);
b.tick();
CHECK((b.read(VT1200_WIN2 + VT1200_OFF_STATUS) & 1) == 0); // WIN2 finished
CHECK((b.read(VT1200_WIN3 + VT1200_OFF_STATUS) & 1) == 1); // WIN3 still busy
}
```
Register it in `main()` with `test_windows_are_independent();`
- [ ] **Step 2: Run test to verify it fails**
Run: `cd harness/mame && g++ -std=c++17 -o /tmp/t vt1200_board.cpp test_vt1200_board.cpp && /tmp/t`
Expected: FAIL — `'set_window_busy_ticks' was not declared`.
- [ ] **Step 3: Implement per-window busy state**
In `vt1200_board.h`, replace the single `m_busy_left` with `std::map<uint32_t, int> m_busy_left; std::map<uint32_t, int> m_busy_ticks_by_win;`, declare `void set_window_busy_ticks(uint32_t window_base, int n);`, and keep `set_busy_ticks` as a shorthand that applies to all windows. In `.cpp`, key both maps by `addr & 0xffff0000` so all four windows behave uniformly, and have `tick()` decrement every entry.
- [ ] **Step 4: Run the tests to verify they pass**
Run: `cd harness/mame && g++ -std=c++17 -o /tmp/t vt1200_board.cpp test_vt1200_board.cpp && /tmp/t`
Expected: `all board tests passed`
- [ ] **Step 5: Verify in the emulator**
Run the Task 1 Step 6 emulator commands unchanged.
Expected: identical results (this task is a pure generalisation; observable behaviour must not move).
- [ ] **Step 6: Commit**
```bash
git add harness/mame/vt1200_board.h harness/mame/vt1200_board.cpp harness/mame/test_vt1200_board.cpp
git commit -m "harness: per-window busy state machines for the big windows"
```
---
## Task 3: The DMA pair (`win_pair` shape)
**Files:**
- Modify: `harness/mame/vt1200_board.h`, `harness/mame/vt1200_board.cpp`
- Modify: `harness/mame/test_vt1200_board.cpp`
**Interfaces:**
- Consumes: `vt1200_board` from Tasks 1-2.
- Produces: `void set_dma_ticks(int n)` and a real model of the pair — a write to the command port (`VT1200_WIN1`) followed by a write to the data port (`VT1200_WIN0`) completes in `n` ticks, after which the command port reads back `0`.
- [ ] **Step 1: Write the failing test**
Add to `test_vt1200_board.cpp`:
```cpp
static void test_dma_pair_command_completes(void)
{
vt1200_board b;
b.set_model_handshake(true);
b.set_dma_ticks(2);
b.write(VT1200_WIN0, 0x0000); // data port first (as the firmware does)
b.write(VT1200_WIN1, 0x0001); // then a command
CHECK(b.read(VT1200_WIN1) == 0x0001); // accepted
b.tick(); b.tick();
CHECK(b.read(VT1200_WIN1) == 0x0000); // completed
}
```
Register it in `main()`.
- [ ] **Step 2: Run test to verify it fails**
Run: `cd harness/mame && g++ -std=c++17 -o /tmp/t vt1200_board.cpp test_vt1200_board.cpp && /tmp/t`
Expected: FAIL — `'set_dma_ticks' was not declared`.
- [ ] **Step 3: Implement the DMA pair**
Add `int m_dma_ticks = 0; int m_dma_left = 0;` and `void set_dma_ticks(int n)`. In `write()`, a write to `VT1200_WIN1` (any offset whose high 16 bits are `VT1200_WIN1`) arms `m_dma_left = m_dma_ticks`. In `read()`, while `m_dma_left > 0` return the latched command for `VT1200_WIN1`; once it reaches 0 return `0`. Decrement in `tick()`.
- [ ] **Step 4: Run the tests to verify they pass**
Run: `cd harness/mame && g++ -std=c++17 -o /tmp/t vt1200_board.cpp test_vt1200_board.cpp && /tmp/t`
Expected: `all board tests passed`
- [ ] **Step 5: Commit**
```bash
git add harness/mame/vt1200_board.h harness/mame/vt1200_board.cpp harness/mame/test_vt1200_board.cpp
git commit -m "harness: model the 0x5800000/0x5900000 DMA command/data pair"
```
---
## Task 4: Make it configurable, and confirm on real firmware behaviour
**Files:**
- Modify: `harness/mame/vt1200.cpp`
- Modify: `harness/mame/BRINGUP_LOG.md`
**Interfaces:**
- Consumes: everything from Tasks 1-3.
- Produces: env knobs `VT1200_BOARD_BUSY_W2=<n>`, `VT1200_BOARD_BUSY_W3=<n>`, `VT1200_BOARD_DMA_TICKS=<n>`.
- [ ] **Step 1: Add the env plumbing**
In `machine_start()`, read the three new variables and call `set_window_busy_ticks(VT1200_WIN2, ...)`, `set_window_busy_ticks(VT1200_WIN3, ...)`, `set_dma_ticks(...)`. Keep every existing variable working unchanged.
- [ ] **Step 2: Rebuild and run a parameter sweep**
Run each of `VT1200_BOARD_BUSY_W2` in `{1,2,4,8}` (with `W3` fixed at 2, DMA at 2, handshake on, switch `0x70`), recording the coverage result:
```sh
for N in 1 2 4 8; do
printf "W2=%s -> " "$N"
VT1200_BOARD_MODEL=handshake VT1200_BOARD_BUSY_W2=$N VT1200_BOARD_BUSY_W3=2 \
VT1200_BOARD_DMA_TICKS=2 VT1200_BOARD_SWITCH="0640000D:70:70" \
COV_FRAMES=900 COV_WINDOW=300 timeout 600 $M vt1200 -rompath harness/mame/roms -video none \
-sound none -nothrottle -debug -debugger none -autoboot_script harness/mame/coverage.lua -autoboot_delay 0 2>&1 \
| grep -E "^frame" | tail -1
done
```
Expected: this is an experiment, not a pass/fail — but record which value moves the firmware furthest (most `total_distinct`, or a park point outside the blit loop).
- [ ] **Step 3: Check whether `INTENB` ever becomes non-zero**
Run `harness/mame/intr.lua` with the best sweep setting from Step 2.
Expected: if `INTENB CHANGED -> <non-zero>` appears, the firmware has passed into interrupt setup — record it, because that is the level-0 boundary. If it stays `0000`, record that too; it means the model is still missing an input.
- [ ] **Step 4: Record findings**
Append a section to `harness/mame/BRINGUP_LOG.md` titled
"Register model (2026-10-16)" with: the sweep table, the `INTENB` result, and which
window/offset still looks unmodelled.
- [ ] **Step 5: Commit**
```bash
git add harness/mame/vt1200.cpp harness/mame/BRINGUP_LOG.md
git commit -m "harness: configurable board model busy timings + findings"
```
---
## Self-review
**Spec coverage:** Task 1 establishes the two-shape structure and the unit-test harness; Task 2 covers the `big` shape (`0x6200000`/`0x6400000` with STATUS `+0x10`/CMD `+0x20`); Task 3 covers the `dma` pair (`0x5800000`/`0x5900000`); Task 4 turns env knobs into configuration, which the spec explicitly requires, and its sweep answers the "which values are right" question with data rather than a guess. The spec's *video RAM + renderer* and *DUART/NVRAM* items are deliberately **not** in this plan — they are the two follow-on plans named in the File Structure table above.
**Placeholder scan:** no TBD/TODO; every code step contains real code; the sweep in Task 4 Step 2 is an experiment by design and its expected-result line says so.
**Type consistency:** `set_window_busy_ticks(uint32_t, int)` (Task 2) is used unchanged in Task 4; `set_dma_ticks(int)` (Task 3) likewise; the constants `VT1200_WIN0..3` are defined in Task 1 and used in Tasks 2-4 with the same names.
---
## Execution note
The repository is **not** under git (`git status` reports no repo), so the `git add`/`git
commit` steps will fail until it is initialised. Execute them only if the user initialises
a repository; otherwise treat "Commit" as "stop here and report", and rely on the
BRINGUP_LOG for the audit trail.
@@ -0,0 +1,136 @@
# VT1200 board model — design
Date: 2026-10-16
Status: design approved in conversation; spec written for review
## Goal
Get the MAME VT1200 driver through **level 0 and level 1 power-up self-tests to the
Terminal Manager window**, with the screen rendering — so the emulator can be compared
against the real machine (font table, then the pie graph, then Terminal Manager).
Level 1 is the smallest scope that produces something *verifiable*. Level 0 alone risks
declaring victory on a subtle fake; a fully usable terminal (LANCE + LAT + X sessions) is
a larger project that this one is a prerequisite for anyway.
## Evidence this design rests on
* The firmware polls a **status bit** and writes a **command**, and the routine that does
it takes the **window base as an argument** (bit `0x3FA911C0`), i.e. the windows are
driven generically.
* Observed layout, from `VT1200_BOARD_LOG` plus disassembly:
| offset | role | evidence |
|---|---|---|
| `+0x10` | STATUS, bit 0 = ready/done; bit 2 tested after `FILL XY` | gate 1 poll `while(!(read8(base+0x10) & 1)) delay(100)` |
| `+0x20` | COMMAND / DATA, written in a delayed sequence | `move a9,*a11(0x20),0` then `delay(10)`, values 0xCA/0xEA/0x3A/... |
| `+0xD0` | mixed I/O — bits 4-6 = **monitor switch** (input), rest latched output | the monitor-switch check at `0x3F2C8320` |
* Four windows exist: `0x5800000`, `0x5900000`, `0x6200000`, `0x6400000`. All are in the
harness's address units (disassembly operand `>> 4`).
* The RAM dump contains ROM strings and ROM pointers — the firmware appears to run from a
**RAM copy** of the image.
* Hardware, confirmed from the service guide, the wiki part number (`TMS34010FNL-50`) and
a readable motherboard photo:
* CPU **TMS34010FNL-50 = 50 MHz**; display **1280x1024 @ 72 Hz**, mono, 1 bpp.
* Main RAM is **CY7C109 SRAM** (~1 MB on the system logic board; 4 MB total).
* Video memory is a **separate bank of Toshiba TC514256 DRAMs** — the framebuffer is
*not* in main RAM, which is why a RAM dump never located it.
* Level 0 = 8 tests within 5 s (incl. interrupt, video control register, I/O data path,
illegal monitor, LANCE-not-reset). Level 1 = 15 tests within 25 s (incl. video RAM,
video, NVR, Ethernet address ROM, DUART1/2 + timers, host/printer/keyboard/mouse ports,
keyboard, mouse). Level 1 begins with on-screen patterns, then a **pie graph**.
## Architecture
```
vt1200_state (driver)
|- TMS34010 50 MHz, 16 pixels/clock (exists)
|- screen / palette needs a real renderer (exists, incomplete)
|- main RAM 4 MiB (exists)
|- vt1200_board NEW: owns all four windows
| window[0] 0x5800000 <- register file, common layout
| window[1] 0x5900000 <- +0x10 STATUS
| window[2] 0x6200000 <- +0x20 COMMAND/DATA
| window[3] 0x6400000 <- +0xD0 mixed I/O
|- video RAM NEW: separate memory, display scans from here
\- (later) mc68681 x2, am79c90, NVRAM, MAC ROM as SIBLING devices
```
Decisions:
1. **The board device owns no other device.** DUARTs, LANCE, NVRAM and the MAC ROM are
siblings wired alongside, so each is independently testable and addable one at a time.
2. **Status bits are state, not constants.** A write to `+0x20` arms a small state
machine; `+0x10` reports its progress. Forcing constants merely relocates the wedge
(demonstrated twice: gates 3 and 4).
3. **Test-time env knobs become configuration.** `VT1200_BOARD_SWITCH` etc. become
constructor/config parameters, so the model is real rather than a debugging patch.
The env-var behaviour stays available for experiments.
## Risk, and the step this design takes first
The weakest link was the claim that **all four windows share one layout**. It was
validated before construction (see result below), and it is **half true** — there are
**two shapes, not one**.
### Validation result (2026-10-16)
Every absolute reference to each window, by offset:
```
W2 0x6200000: +00(36) +10(8) +20(1) +30(9) +D0(15) +E0(5) +F0(8)
W3 0x6400000: +00(18) +D0(29) +E0(9) +F0(17)
W0 0x5800000: +00(24) +20(1) +D0(1)
W1 0x5900000: +00(12) +10(1)
```
* **W2 and W3 share a common register set** — identical offsets `+0xD0`, `+0xE0`,
`+0xF0`, and both have a `+0x10` STATUS / `+0x20` COMMAND pair. This is the shape the
design was built on, and it holds.
* **W0 and W1 are a different, simpler shape** — dominated by `+0x00` (24 and 12 sites),
with almost nothing at the higher offsets. That matches the disassembly, where
`0x5800000`/`0x5900000` act as a **command/data pair at the window base** feeding a
byte-addressed (DMA-style) device.
* `+0xD0` is referenced at file offset `0x12` — inside the **reset vector region**, which
corroborates the service guide's statement that the monitor switch is read only during
power-up.
**Consequence for the design:** two register-file classes, not one.
```
vt1200_win_big (W2 0x6200000, W3 0x6400000) -> STATUS +0x10, CMD +0x20,
+0x30, +0xD0 (mixed I/O), +0xE0, +0xF0
vt1200_win_pair (W0 0x5800000, W1 0x5900000) -> command/data pair at the base,
bit->byte (DMA-style) addressing
```
The "status bits are state machines" and "env knobs become configuration" decisions are
unchanged. This is a much cheaper discovery than it would have been after building a
single generic class.
## Scope
**In:** the four windows as a modelled register file; status state machines; video RAM so
the display can render; the two DUARTs and NVRAM/MAC ROM as far as level 1 requires; the
monitor switch as configuration; a scanline renderer producing a real image.
**Out (for now):** a working LANCE/TCP-IP/LAT stack; keyboard and mouse *input* beyond
what the level-1 tests probe; sound; bit-accurate peripheral timings.
## Validation
* Per-register: write a command, assert the status machine reaches "done".
* Per-level: the firmware prints its own progress. Success at level 0 is the firmware
moving past the 8 tests; at level 1, reaching the patterns/pie graph/Terminal Manager.
* **Visual oracle:** the rendered screen should match the real boot sequence — a
character/font table, then a large circle (the pie graph) — which we have on video.
* Regression: with the model disabled, the driver must still reproduce the original
wedge at `PC=3FDCE400`.
## Success criteria
1. ~~The shared-layout hypothesis is confirmed or refuted, with evidence.~~
**DONE 2026-10-16 — half confirmed: two shapes (W2/W3 common; W0/W1 a command/data pair).**
2. `INTENB` becomes non-zero and level 0 completes.
3. A rendered frame shows the boot patterns, comparable against the real machine.
+9
View File
@@ -0,0 +1,9 @@
#Ghidra Lock File
#Fri Oct 16 01:36:23 EEST 2026
<META>\ Supports\ File\ Channel\ Locking=Channel Lock
Hostname=sid
OS\ Architecture=amd64
OS\ Name=Linux
OS\ Version=7.2.4-arch1-2
Timestamp=10/16/26, 1\:36\u202FAM
Username=arti
View File
Whitespace-only changes.
+72
View File
@@ -0,0 +1,72 @@
// Assert that bit-address pointer constants have been converted to references.
// Serves as the failing test for FixPtrConstants.java.
//@category VT1200
import ghidra.app.script.GhidraScript;
import ghidra.program.model.address.Address;
import ghidra.program.model.mem.MemoryBlock;
import ghidra.program.model.symbol.Reference;
public class AssertPtrFix extends GhidraScript {
// Known constant: 0x3F225CD8 at ROM+0x4A5E -> 'Connection request from user %s on node %s.'
private static final long CONST_OFF = 0x4A5EL;
private static final long CONST_VAL = 0x3F225CD8L;
private static final long TARGET_OFF = 0x4B9BL;
private int failures = 0;
private void check(boolean ok, String msg) {
println((ok ? "PASS: " : "FAIL: ") + msg);
if (!ok) {
failures++;
}
}
@Override
public void run() throws Exception {
MemoryBlock rom = null;
long best = -1;
for (MemoryBlock b : currentProgram.getMemory().getBlocks()) {
if (b.isInitialized()) {
long len = b.getEnd().getOffset() - b.getStart().getOffset();
if (len > best) {
best = len;
rom = b;
}
}
}
if (rom == null) {
throw new IllegalStateException("no initialized ROM block");
}
long base = rom.getStart().getOffset();
println(String.format("ROM block base: 0x%08X", base));
Address from = currentProgram.getAddressFactory().getDefaultAddressSpace()
.getAddress(base + CONST_OFF);
Address to = currentProgram.getAddressFactory().getDefaultAddressSpace()
.getAddress(base + TARGET_OFF);
byte[] raw = new byte[4];
rom.getBytes(from, raw);
long value = (raw[0] & 0xFFL) | ((raw[1] & 0xFFL) << 8)
| ((raw[2] & 0xFFL) << 16) | ((raw[3] & 0xFFL) << 24);
check(value == CONST_VAL,
String.format("constant at ROM+0x%X is 0x%08X (got 0x%08X)",
CONST_OFF, CONST_VAL, value));
boolean found = false;
for (Reference r : currentProgram.getReferenceManager().getReferencesFrom(from)) {
if (r.getToAddress().equals(to)) {
found = true;
break;
}
}
check(found, String.format("reference ROM+0x%X -> ROM+0x%X exists", CONST_OFF, TARGET_OFF));
if (failures > 0) {
throw new AssertionError(failures + " assertion(s) failed");
}
println("ASSERT: all pointer-fix checks passed");
}
}
+92
View File
@@ -0,0 +1,92 @@
// Convert TMS34010 bit-address pointer constants into Ghidra references.
//
// The firmware stores absolute *bit* addresses: a 32-bit constant P refers to
// physical byte P >> 3. A byte-addressed Ghidra program cannot resolve those,
// so this script scans the loaded ROM for such constants and adds a reference
// from each constant to the byte it points at. Byte data is left untouched.
//
// Companion: tools/ptr_constants.py does the same off-line (shared logic).
//@category VT1200
import ghidra.app.script.GhidraScript;
import ghidra.program.model.address.Address;
import ghidra.program.model.address.AddressSpace;
import ghidra.program.model.mem.MemoryBlock;
import ghidra.program.model.symbol.RefType;
import ghidra.program.model.symbol.Reference;
import ghidra.program.model.symbol.SourceType;
public class FixPtrConstants extends GhidraScript {
private MemoryBlock loadRom() {
MemoryBlock rom = null;
long best = -1;
for (MemoryBlock b : currentProgram.getMemory().getBlocks()) {
if (b.isInitialized()) {
long len = b.getEnd().getOffset() - b.getStart().getOffset();
if (len > best) {
best = len;
rom = b;
}
}
}
return rom;
}
@Override
public void run() throws Exception {
MemoryBlock rom = loadRom();
if (rom == null) {
throw new IllegalStateException("no initialized ROM block");
}
AddressSpace space = currentProgram.getAddressFactory().getDefaultAddressSpace();
long base = rom.getStart().getOffset();
long size = rom.getEnd().getOffset() - base + 1;
println(String.format("ROM block 0x%08X-0x%08X (%d bytes)",
base, base + size - 1, size));
int created = 0;
int already = 0;
int failed = 0;
int skipped = 0;
byte[] raw = new byte[4];
for (long off = 0; off + 4 <= size; off += 2) {
Address from = space.getAddress(base + off);
if (currentProgram.getListing().getInstructionContaining(from) != null) {
skipped++; // don't add refs from inside code
continue;
}
rom.getBytes(from, raw);
long value = (raw[0] & 0xFFL) | ((raw[1] & 0xFFL) << 8)
| ((raw[2] & 0xFFL) << 16) | ((raw[3] & 0xFFL) << 24);
long target = value >>> 3;
if (target < base || target >= base + size) {
skipped++;
continue;
}
Address to = space.getAddress(target);
boolean exists = false;
for (Reference r : currentProgram.getReferenceManager().getReferencesFrom(from)) {
if (r.getToAddress().equals(to)) {
exists = true;
break;
}
}
if (exists) {
already++;
continue;
}
try {
currentProgram.getReferenceManager().addMemoryReference(
from, to, RefType.DATA, SourceType.USER_DEFINED, 0);
created++;
} catch (Exception e) {
failed++;
}
}
println(String.format("references created=%d already=%d failed=%d skipped=%d",
created, already, failed, skipped));
}
}
+27
View File
@@ -0,0 +1,27 @@
// Report basic analysis stats for a TMS34010 program.
//@category VT1200
import ghidra.app.script.GhidraScript;
import ghidra.program.model.listing.Instruction;
import ghidra.program.model.listing.InstructionIterator;
public class StatsTMS34010 extends GhidraScript {
@Override
public void run() throws Exception {
println("=== " + currentProgram.getName()
+ " [" + currentProgram.getLanguageID() + "]");
println(" functions : " + currentProgram.getFunctionManager().getFunctionCount());
long count = 0;
InstructionIterator it = currentProgram.getListing().getInstructions(true);
while (it.hasNext()) {
Instruction ins = it.next();
count++;
if (count <= 3) {
println(" first insn : " + ins.getAddress() + ": " + ins);
}
}
println(" instructions : " + count);
}
}
+82
View File
@@ -0,0 +1,82 @@
// Verify the TMS34010 language load + disassembly and print a few regions.
//
// NOTE: the TMS34010 module ships "Midway arcade" default memory blocks
// (VRAM/RAM/GFX/ROM ...), so currentProgram.getImageBase() is NOT the address
// of our loaded ROM. We locate the loaded block by name instead.
//@category VT1200
import ghidra.app.script.GhidraScript;
import ghidra.app.cmd.disassemble.DisassembleCommand;
import ghidra.program.model.address.Address;
import ghidra.program.model.address.AddressSet;
import ghidra.program.model.address.AddressSpace;
import ghidra.program.model.listing.Instruction;
import ghidra.program.model.mem.MemoryBlock;
public class VerifyTMS34010 extends GhidraScript {
@Override
public void run() throws Exception {
AddressSpace space = currentProgram.getAddressFactory().getDefaultAddressSpace();
println("=== program: " + currentProgram.getName());
println("=== language: " + currentProgram.getLanguageID());
println("=== image base: 0x" + Long.toHexString(currentProgram.getImageBase().getOffset()) + " (language default)");
// The loaded ROM is the only *initialized* block; the language's
// default blocks are all uninitialized. Pick the largest such block.
long base = -1;
long best = -1;
for (MemoryBlock b : currentProgram.getMemory().getBlocks()) {
if (b.isInitialized()) {
long len = b.getEnd().getOffset() - b.getStart().getOffset();
println(String.format(" loaded block %-8s %s - %s (%,d bytes)",
b.getName(), b.getStart(), b.getEnd(), len + 1));
if (len > best) {
best = len;
base = b.getStart().getOffset();
}
}
}
if (base < 0) {
base = currentProgram.getImageBase().getOffset();
}
println(String.format("=== ROM block base: 0x%08X", base));
// Disassemble by following control flow from the reset target and the
// resolvable interrupt vectors, bounded to the ROM block.
MemoryBlock rom = null;
for (MemoryBlock b : currentProgram.getMemory().getBlocks()) {
if (b.isInitialized() && b.getStart().getOffset() == base) {
rom = b;
}
}
AddressSet restrict = new AddressSet(space.getAddress(base),
space.getAddress(base + 0x1C0000 - 1));
AddressSet starts = new AddressSet();
starts.add(space.getAddress(base + 0x8)); // reset target (POST)
for (long o : new long[] { 0xF88, 0xF98, 0xFA0 }) {
starts.add(space.getAddress(base + o)); // vector 1, 22, 23
}
new DisassembleCommand(starts, restrict, true).applyTo(currentProgram, monitor);
// the module's incomplete pcode limits flow-following, so also
// disassemble the boot/exception bank (first 256 KiB) linearly.
AddressSet bank0 = new AddressSet(space.getAddress(base),
space.getAddress(base + 0x40000 - 1));
new DisassembleCommand(bank0, null, false).applyTo(currentProgram, monitor);
long[] offs = { 0x0, 0x8, 0xF88 }; // header, reset target, vector-1 target
for (long o : offs) {
println(String.format("--- ROM+0x%X ---", o));
int n = 0;
for (Instruction ins : currentProgram.getListing()
.getInstructions(space.getAddress(base + o), true)) {
println(String.format(" 0x%08X: %s", ins.getAddress().getOffset(), ins));
if (++n >= 8) {
break;
}
}
}
}
}
+137
View File
@@ -0,0 +1,137 @@
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp197s0f3u1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
21:29:58.082774 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [S], seq 1203235174, win 64240, options [mss 1460,sackOK,TS val 1188831704 ecr 0,nop,wscale 10], length 0
21:29:58.101622 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [S.], seq 3915129556, ack 1203235175, win 4096, options [mss 1024], length 0
21:29:58.101661 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:29:58.101760 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:29:58.123749 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 13, win 4084, length 0
21:29:58.163056 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 13, win 4084, length 0
21:29:58.194419 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:29:58.194475 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:29:58.194559 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:29:58.208665 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 13, win 4084, length 0
21:29:58.231445 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 33, win 4064, length 0
21:29:58.273791 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:29:58.273911 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:29:58.306593 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 73, win 4024, length 0
21:29:58.329833 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 73, win 4024, length 0
21:29:58.380374 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:29:58.380517 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:29:58.394192 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 93, win 4004, length 0
21:29:58.405646 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 93, win 4004, length 0
21:29:58.430751 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:29:58.430950 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
21:29:58.443210 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 97, win 4000, length 0
21:29:58.456503 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 97, win 4000, length 0
21:29:58.481405 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [P.], seq 249:301, ack 97, win 4000, length 52
21:29:58.481551 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [P.], seq 97:101, ack 301, win 64056, length 4
21:29:58.493354 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 101, win 3996, length 0
21:29:58.505728 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 101, win 3996, length 0
21:29:58.531942 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [P.], seq 301:333, ack 101, win 3996, length 32
21:29:58.532098 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [P.], seq 101:105, ack 333, win 64056, length 4
21:29:58.543910 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 105, win 3992, length 0
21:29:58.556446 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 105, win 3992, length 0
21:29:58.581083 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [P.], seq 333:365, ack 105, win 3992, length 32
21:29:58.581260 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [P.], seq 105:109, ack 365, win 64056, length 4
21:29:58.593037 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 109, win 3988, length 0
21:29:58.606757 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 109, win 3988, length 0
21:29:58.631960 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [P.], seq 365:401, ack 109, win 3988, length 36
21:29:58.632179 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [P.], seq 109:129, ack 401, win 64056, length 20
21:29:58.645038 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 129, win 3968, length 0
21:29:58.656419 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 129, win 3968, length 0
21:29:58.681879 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [P.], seq 401:433, ack 129, win 3968, length 32
21:29:58.682009 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [P.], seq 129:161, ack 433, win 64056, length 32
21:29:58.694313 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 161, win 3936, length 0
21:29:58.707229 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 161, win 3936, length 0
21:29:58.732721 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [P.], seq 433:465, ack 161, win 3936, length 32
21:29:58.732821 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [P.], seq 161:173, ack 465, win 64056, length 12
21:29:58.744615 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 173, win 3924, length 0
21:29:58.756715 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 173, win 3924, length 0
21:29:58.780707 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [P.], seq 465:497, ack 173, win 3924, length 32
21:29:58.780880 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [P.], seq 173:185, ack 497, win 64056, length 12
21:29:58.794610 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 185, win 3912, length 0
21:29:58.807070 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 185, win 3912, length 0
21:29:58.837447 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [P.], seq 497:529, ack 185, win 3912, length 32
21:29:58.837573 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [F.], seq 185, ack 529, win 64056, length 0
21:29:58.842070 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [S], seq 1031950162, win 64240, options [mss 1460,sackOK,TS val 1574452678 ecr 0,nop,wscale 10], length 0
21:29:58.851586 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [.], ack 186, win 3911, length 0
21:29:58.866526 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [S.], seq 3915257556, ack 1031950163, win 4096, options [mss 1024], length 0
21:29:58.866554 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:29:58.866689 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:29:58.892953 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [F.], seq 529, ack 186, win 3911, length 0
21:29:58.893004 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [.], ack 530, win 64056, length 0
21:29:58.897046 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [F.], seq 529, ack 186, win 3911, length 0
21:29:58.897059 IP 100.103.255.254.46528 > 100.103.100.103.6000: Flags [.], ack 530, win 64056, length 0
21:29:58.919119 IP 100.103.100.103.6000 > 100.103.255.254.46528: Flags [R], seq 3915130086, win 4096, length 0
21:29:58.968682 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 13, win 4084, length 0
21:29:59.007605 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:29:59.007639 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:29:59.007820 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:29:59.023096 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 13, win 4084, length 0
21:29:59.062099 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 33, win 4064, length 0
21:29:59.117904 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:29:59.118002 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:29:59.129975 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 73, win 4024, length 0
21:29:59.143421 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 73, win 4024, length 0
21:29:59.170507 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:29:59.170594 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:29:59.182490 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 93, win 4004, length 0
21:29:59.194911 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 93, win 4004, length 0
21:29:59.220670 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:29:59.220800 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:29:59.233022 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 105, win 3992, length 0
21:29:59.245601 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 105, win 3992, length 0
21:29:59.367049 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
21:29:59.373335 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
21:29:59.373370 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
21:29:59.387913 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 105, win 3992, length 0
21:29:59.396899 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [P.], seq 2297:2949, ack 105, win 3992, length 652
21:29:59.397114 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 2949, win 64056, length 12
21:29:59.409200 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 117, win 3980, length 0
21:29:59.422655 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 117, win 3980, length 0
21:29:59.445463 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [P.], seq 2949:2981, ack 117, win 3980, length 32
21:29:59.445593 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [F.], seq 117, ack 2981, win 64056, length 0
21:29:59.451181 IP 100.103.255.254.46558 > 100.103.100.103.6000: Flags [S], seq 1534832306, win 64240, options [mss 1460,sackOK,TS val 1959952158 ecr 0,nop,wscale 10], length 0
21:29:59.458409 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [.], ack 118, win 3979, length 0
21:29:59.473779 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [S.], seq 3915321556, ack 1534832307, win 4096, options [mss 1024], length 0
21:29:59.473809 IP 100.103.255.254.46558 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:29:59.474008 IP 100.103.255.254.46558 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:29:59.495708 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [F.], seq 2981, ack 118, win 3979, length 0
21:29:59.495723 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [.], ack 2982, win 64056, length 0
21:29:59.499759 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [F.], seq 2981, ack 118, win 3979, length 0
21:29:59.499763 IP 100.103.255.254.46542 > 100.103.100.103.6000: Flags [.], ack 2982, win 64056, length 0
21:29:59.529953 IP 100.103.100.103.6000 > 100.103.255.254.46542: Flags [R], seq 3915260538, win 4096, length 0
21:29:59.575970 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [.], ack 13, win 4084, length 0
21:29:59.614688 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:29:59.614727 IP 100.103.255.254.46558 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:29:59.614901 IP 100.103.255.254.46558 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:29:59.629143 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [.], ack 13, win 4084, length 0
21:29:59.653347 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [.], ack 33, win 4064, length 0
21:29:59.722935 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:29:59.723046 IP 100.103.255.254.46558 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:29:59.739237 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [.], ack 73, win 4024, length 0
21:29:59.754795 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [.], ack 73, win 4024, length 0
21:29:59.782003 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:29:59.782179 IP 100.103.255.254.46558 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:29:59.794443 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [.], ack 93, win 4004, length 0
21:29:59.807748 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [.], ack 93, win 4004, length 0
21:29:59.831160 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:29:59.831268 IP 100.103.255.254.46558 > 100.103.100.103.6000: Flags [P.], seq 93:125, ack 249, win 64056, length 32
21:29:59.844253 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [.], ack 125, win 3972, length 0
21:29:59.855643 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [.], ack 125, win 3972, length 0
21:29:59.924466 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [P.], seq 249:313, ack 125, win 3972, length 64
21:29:59.924611 IP 100.103.255.254.46558 > 100.103.100.103.6000: Flags [P.], seq 125:137, ack 313, win 64056, length 12
21:29:59.938248 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [.], ack 137, win 3960, length 0
21:29:59.949690 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [.], ack 137, win 3960, length 0
21:29:59.975704 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [P.], seq 313:345, ack 137, win 3960, length 32
21:29:59.975768 IP 100.103.255.254.46558 > 100.103.100.103.6000: Flags [F.], seq 137, ack 345, win 64056, length 0
21:29:59.988396 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [.], ack 138, win 3959, length 0
21:30:00.002814 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [F.], seq 345, ack 138, win 3959, length 0
21:30:00.002843 IP 100.103.255.254.46558 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:30:00.006915 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [F.], seq 345, ack 138, win 3959, length 0
21:30:00.006926 IP 100.103.255.254.46558 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:30:00.028860 IP 100.103.100.103.6000 > 100.103.255.254.46558: Flags [R], seq 3915321902, win 4096, length 0
131 packets captured
131 packets received by filter
0 packets dropped by kernel
+517
View File
@@ -0,0 +1,517 @@
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp197s0f3u1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
21:21:39.053237 IP 100.103.100.103.1052 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:21:39.053569 IP 100.103.255.254.69 > 100.103.100.103.1052: TFTP, length 516, DATA block 1
21:21:39.073831 IP 100.103.100.103.1052 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:21:39.074060 IP 100.103.255.254.69 > 100.103.100.103.1052: TFTP, length 516, DATA block 2
21:21:39.090210 IP 100.103.100.103.1052 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:21:39.106049 IP 100.103.100.103.1053 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
21:21:39.106301 IP 100.103.255.254.69 > 100.103.100.103.1053: TFTP, length 79, DATA block 1
21:21:39.123042 IP 100.103.100.103.1053 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:21:39.131179 IP 100.103.100.103.1053 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:21:39.149093 IP 100.103.100.103.1054 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
21:21:39.149265 IP 100.103.255.254.69 > 100.103.100.103.1054: TFTP, length 79, DATA block 1
21:21:39.165903 IP 100.103.100.103.1054 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:21:39.174806 IP 100.103.100.103.1054 > 100.103.255.254.69: TFTP, length 4, ACK block 2
21:21:44.312818 ARP, Request who-has 100.103.100.103 tell 100.103.255.254, length 28
21:21:44.319226 ARP, Reply 100.103.100.103 is-at 08:00:2b:16:4b:5a, length 50
21:23:46.594514 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [S], seq 1337314193, win 64240, options [mss 1460,sackOK,TS val 1218950013 ecr 0,nop,wscale 10], length 0
21:23:46.608250 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [S.], seq 3982531278, ack 1337314194, win 4096, options [mss 1024], length 0
21:23:46.608273 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:23:46.608342 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:23:46.665854 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 13, win 4084, length 0
21:23:46.699375 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:23:46.699403 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:23:46.699571 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:23:46.714949 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 13, win 4084, length 0
21:23:46.736590 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 33, win 4064, length 0
21:23:46.816152 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:23:46.816333 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:23:46.832578 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 73, win 4024, length 0
21:23:46.855884 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 73, win 4024, length 0
21:23:46.882714 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:23:46.882855 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:23:46.896412 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 93, win 4004, length 0
21:23:46.907779 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 93, win 4004, length 0
21:23:46.933519 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:23:46.933636 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:23:46.946467 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 105, win 3992, length 0
21:23:46.958077 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 105, win 3992, length 0
21:23:47.078549 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
21:23:47.084843 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
21:23:47.084877 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
21:23:47.100261 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 105, win 3992, length 0
21:23:47.109400 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [P.], seq 2297:3009, ack 105, win 3992, length 712
21:23:47.109579 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 3009, win 64056, length 12
21:23:47.121930 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 117, win 3980, length 0
21:23:47.134099 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 117, win 3980, length 0
21:23:47.156925 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [P.], seq 3009:3041, ack 117, win 3980, length 32
21:23:47.157022 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [F.], seq 117, ack 3041, win 64056, length 0
21:23:47.163206 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [S], seq 1603116241, win 64240, options [mss 1460,sackOK,TS val 2885754070 ecr 0,nop,wscale 10], length 0
21:23:47.170565 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [.], ack 118, win 3979, length 0
21:23:47.191595 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [S.], seq 3982659278, ack 1603116242, win 4096, options [mss 1024], length 0
21:23:47.191636 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:23:47.191895 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:23:47.208362 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:23:47.208381 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:23:47.212455 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:23:47.212464 IP 100.103.255.254.33212 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:23:47.248143 IP 100.103.100.103.6000 > 100.103.255.254.33212: Flags [R], seq 3982534320, win 4096, length 0
21:23:47.287430 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 13, win 4084, length 0
21:23:47.327542 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:23:47.327611 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:23:47.327773 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:23:47.342241 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 13, win 4084, length 0
21:23:47.381135 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 33, win 4064, length 0
21:23:47.443189 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:23:47.443331 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:23:47.456509 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 73, win 4024, length 0
21:23:47.469681 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 73, win 4024, length 0
21:23:47.498310 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:23:47.498444 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:23:47.510200 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 93, win 4004, length 0
21:23:47.522941 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 93, win 4004, length 0
21:23:47.540400 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:23:47.540493 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:23:47.553383 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 105, win 3992, length 0
21:23:47.564835 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 105, win 3992, length 0
21:23:47.681031 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
21:23:47.687335 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
21:23:47.687380 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
21:23:47.702182 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 105, win 3992, length 0
21:23:47.711281 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [P.], seq 2297:3009, ack 105, win 3992, length 712
21:23:47.711455 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 3009, win 64056, length 12
21:23:47.723108 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 117, win 3980, length 0
21:23:47.735634 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 117, win 3980, length 0
21:23:47.758635 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [P.], seq 3009:3041, ack 117, win 3980, length 32
21:23:47.758721 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [F.], seq 117, ack 3041, win 64056, length 0
21:23:47.765398 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [S], seq 4223930548, win 64240, options [mss 1460,sackOK,TS val 1579056727 ecr 0,nop,wscale 10], length 0
21:23:47.771723 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [.], ack 118, win 3979, length 0
21:23:47.788579 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [S.], seq 3982787278, ack 4223930549, win 4096, options [mss 1024], length 0
21:23:47.788608 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:23:47.788777 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:23:47.842428 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:23:47.842485 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:23:47.846464 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:23:47.846474 IP 100.103.255.254.33224 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:23:47.868732 IP 100.103.100.103.6000 > 100.103.255.254.33224: Flags [R], seq 3982662320, win 4096, length 0
21:23:47.882796 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 13, win 4084, length 0
21:23:47.922999 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:23:47.923027 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:23:47.923106 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:23:47.937460 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 13, win 4084, length 0
21:23:47.958756 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 33, win 4064, length 0
21:23:48.043667 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:23:48.043856 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:23:48.059141 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 73, win 4024, length 0
21:23:48.080591 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 73, win 4024, length 0
21:23:48.107803 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:23:48.107958 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:23:48.120003 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 93, win 4004, length 0
21:23:48.132483 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 93, win 4004, length 0
21:23:48.158022 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:23:48.158158 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:23:48.169917 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 105, win 3992, length 0
21:23:48.182605 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 105, win 3992, length 0
21:23:48.304260 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
21:23:48.310580 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
21:23:48.310636 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
21:23:48.324694 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 105, win 3992, length 0
21:23:48.333900 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [P.], seq 2297:3009, ack 105, win 3992, length 712
21:23:48.334068 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 3009, win 64056, length 12
21:23:48.346146 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 117, win 3980, length 0
21:23:48.358757 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 117, win 3980, length 0
21:23:48.381577 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [P.], seq 3009:3041, ack 117, win 3980, length 32
21:23:48.381653 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [F.], seq 117, ack 3041, win 64056, length 0
21:23:48.386324 IP 100.103.255.254.33232 > 100.103.100.103.6000: Flags [S], seq 596020647, win 64240, options [mss 1460,sackOK,TS val 3717976026 ecr 0,nop,wscale 10], length 0
21:23:48.396120 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [.], ack 118, win 3979, length 0
21:23:48.415032 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [S.], seq 3982851278, ack 596020648, win 4096, options [mss 1024], length 0
21:23:48.415079 IP 100.103.255.254.33232 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:23:48.415268 IP 100.103.255.254.33232 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:23:48.432500 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:23:48.432557 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:23:48.436674 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:23:48.436696 IP 100.103.255.254.33228 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:23:48.466242 IP 100.103.100.103.6000 > 100.103.255.254.33228: Flags [R], seq 3982790320, win 4096, length 0
21:23:48.511212 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [.], ack 13, win 4084, length 0
21:23:48.554222 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:23:48.554280 IP 100.103.255.254.33232 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:23:48.554405 IP 100.103.255.254.33232 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:23:48.570592 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [.], ack 13, win 4084, length 0
21:23:48.594313 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [.], ack 33, win 4064, length 0
21:23:48.664424 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:23:48.664611 IP 100.103.255.254.33232 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:23:48.677210 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [.], ack 73, win 4024, length 0
21:23:48.689767 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [.], ack 73, win 4024, length 0
21:23:48.717188 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:23:48.717349 IP 100.103.255.254.33232 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:23:48.729781 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [.], ack 93, win 4004, length 0
21:23:48.742189 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [.], ack 93, win 4004, length 0
21:23:48.766843 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:23:48.766988 IP 100.103.255.254.33232 > 100.103.100.103.6000: Flags [P.], seq 93:113, ack 249, win 64056, length 20
21:23:48.779783 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [.], ack 113, win 3984, length 0
21:23:48.791237 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [.], ack 113, win 3984, length 0
21:23:48.903012 IP 100.103.100.103.1055 > 100.103.255.254.69: TFTP, length 21, RRQ "baseline.pcf" octet
21:23:48.903135 IP 100.103.255.254.69 > 100.103.100.103.1055: TFTP, length 516, DATA block 1
21:23:48.923428 IP 100.103.100.103.1055 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:23:48.923503 IP 100.103.255.254.69 > 100.103.100.103.1055: TFTP, length 172, DATA block 2
21:23:48.978995 IP 100.103.100.103.1055 > 100.103.255.254.69: TFTP, length 4, ACK block 2
21:23:49.023433 IP 100.103.100.103.1055 > 100.103.255.254.69: TFTP, length 4, ACK block 3
21:23:49.048741 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [P.], seq 249:309, ack 113, win 3984, length 60
21:23:49.048975 IP 100.103.255.254.33232 > 100.103.100.103.6000: Flags [P.], seq 113:125, ack 309, win 64056, length 12
21:23:49.061111 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [.], ack 125, win 3972, length 0
21:23:49.073481 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [.], ack 125, win 3972, length 0
21:23:49.100235 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [P.], seq 309:341, ack 125, win 3972, length 32
21:23:49.100399 IP 100.103.255.254.33232 > 100.103.100.103.6000: Flags [F.], seq 125, ack 341, win 64056, length 0
21:23:49.114321 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [.], ack 126, win 3971, length 0
21:23:49.127952 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [F.], seq 341, ack 126, win 3971, length 0
21:23:49.128014 IP 100.103.255.254.33232 > 100.103.100.103.6000: Flags [.], ack 342, win 64056, length 0
21:23:49.132012 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [F.], seq 341, ack 126, win 3971, length 0
21:23:49.132023 IP 100.103.255.254.33232 > 100.103.100.103.6000: Flags [.], ack 342, win 64056, length 0
21:23:49.154139 IP 100.103.100.103.6000 > 100.103.255.254.33232: Flags [R], seq 3982851620, win 4096, length 0
21:24:05.217838 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [S], seq 2065809736, win 64240, options [mss 1460,sackOK,TS val 3265199175 ecr 0,nop,wscale 10], length 0
21:24:05.231616 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [S.], seq 3984259278, ack 2065809737, win 4096, options [mss 1024], length 0
21:24:05.231645 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:24:05.231731 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:24:05.287167 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 13, win 4084, length 0
21:24:05.320065 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:24:05.320113 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:24:05.320267 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:24:05.335682 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 13, win 4084, length 0
21:24:05.358338 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 33, win 4064, length 0
21:24:05.410049 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:24:05.410248 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:24:05.426785 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 73, win 4024, length 0
21:24:05.482635 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 73, win 4024, length 0
21:24:05.515716 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:24:05.515947 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:24:05.528700 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 93, win 4004, length 0
21:24:05.540157 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 93, win 4004, length 0
21:24:05.565732 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:24:05.565904 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:24:05.578039 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 105, win 3992, length 0
21:24:05.590255 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 105, win 3992, length 0
21:24:05.711329 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
21:24:05.717632 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
21:24:05.717712 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
21:24:05.732486 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 105, win 3992, length 0
21:24:05.741652 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [P.], seq 2297:3009, ack 105, win 3992, length 712
21:24:05.741845 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 3009, win 64056, length 12
21:24:05.753462 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 117, win 3980, length 0
21:24:05.766189 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 117, win 3980, length 0
21:24:05.788898 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [P.], seq 3009:3041, ack 117, win 3980, length 32
21:24:05.789022 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [F.], seq 117, ack 3041, win 64056, length 0
21:24:05.802043 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [.], ack 118, win 3979, length 0
21:24:05.815727 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:24:05.815762 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:24:05.819787 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:24:05.819800 IP 100.103.255.254.60906 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:24:05.841189 IP 100.103.100.103.6000 > 100.103.255.254.60906: Flags [R], seq 3984262320, win 4096, length 0
21:24:16.180155 IP 100.103.255.254.57572 > 100.103.100.103.6000: Flags [S], seq 3192834060, win 64240, options [mss 1460,sackOK,TS val 3205118082 ecr 0,nop,wscale 10], length 0
21:24:16.195407 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [S.], seq 3985155278, ack 3192834061, win 4096, options [mss 1024], length 0
21:24:16.195432 IP 100.103.255.254.57572 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:24:16.195495 IP 100.103.255.254.57572 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:24:16.276740 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [.], ack 13, win 4084, length 0
21:24:16.306094 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:24:16.306149 IP 100.103.255.254.57572 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:24:16.306322 IP 100.103.255.254.57572 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:24:16.332141 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [.], ack 13, win 4084, length 0
21:24:16.366848 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [.], ack 33, win 4064, length 0
21:24:16.435255 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:24:16.435430 IP 100.103.255.254.57572 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:24:16.454035 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [.], ack 73, win 4024, length 0
21:24:16.475588 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [.], ack 73, win 4024, length 0
21:24:16.545106 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:24:16.545315 IP 100.103.255.254.57572 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:24:16.562824 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [.], ack 93, win 4004, length 0
21:24:16.582978 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [.], ack 93, win 4004, length 0
21:24:16.620199 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:24:16.620372 IP 100.103.255.254.57572 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:24:16.636288 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [.], ack 105, win 3992, length 0
21:24:16.657811 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [.], ack 105, win 3992, length 0
21:24:16.683973 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [P.], seq 249:281, ack 105, win 3992, length 32
21:24:16.684140 IP 100.103.255.254.57572 > 100.103.100.103.6000: Flags [F.], seq 105, ack 281, win 64056, length 0
21:24:16.696542 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [.], ack 106, win 3991, length 0
21:24:16.716737 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [F.], seq 281, ack 106, win 3991, length 0
21:24:16.716776 IP 100.103.255.254.57572 > 100.103.100.103.6000: Flags [.], ack 282, win 64056, length 0
21:24:16.720807 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [F.], seq 281, ack 106, win 3991, length 0
21:24:16.720819 IP 100.103.255.254.57572 > 100.103.100.103.6000: Flags [.], ack 282, win 64056, length 0
21:24:16.747982 IP 100.103.100.103.6000 > 100.103.255.254.57572: Flags [R], seq 3985155560, win 4096, length 0
21:24:21.991364 ARP, Request who-has 100.103.0.10 tell 100.103.100.103, length 50
21:24:21.991659 ARP, Reply 100.103.0.10 is-at 42:dd:26:6b:c7:c5, length 46
21:24:22.002035 IP 100.103.100.103.1024 > 100.103.0.10.23: Flags [S], seq 3985731278, win 2048, options [mss 1024], length 0
21:24:22.002447 IP 100.103.0.10.23 > 100.103.100.103.1024: Flags [S.], seq 686917651, ack 3985731279, win 64240, options [mss 1460], length 0
21:24:22.034394 IP 100.103.100.103.1024 > 100.103.0.10.23: Flags [.], ack 1, win 2048, length 0
21:24:22.062008 IP 100.103.100.103.1024 > 100.103.0.10.23: Flags [F.], seq 1, ack 1, win 2048, length 0
21:24:22.063876 IP 100.103.0.10.23 > 100.103.100.103.1024: Flags [.], ack 2, win 64239, length 0
21:24:22.306802 IP 100.103.0.10.23 > 100.103.100.103.1024: Flags [P.], seq 1:22, ack 2, win 64239, length 21 [telnet WILL AUTHENTICATION, WILL ENCRYPT, DO TERMINAL TYPE, DO TSPEED, DO XDISPLOC, DO NEW-ENVIRON, DO OLD-ENVIRON]
21:24:22.307113 IP 100.103.0.10.23 > 100.103.100.103.1024: Flags [F.], seq 22, ack 2, win 64239, length 0
21:24:22.321791 IP 100.103.100.103.1024 > 100.103.0.10.23: Flags [R], seq 3985731280, win 0, length 0
21:24:22.341301 IP 100.103.100.103.1024 > 100.103.0.10.23: Flags [R], seq 3985731280, win 0, length 0
21:24:23.229844 IP 100.103.255.254.57578 > 100.103.100.103.6000: Flags [S], seq 401945701, win 64240, options [mss 1460,sackOK,TS val 699942085 ecr 0,nop,wscale 10], length 0
21:24:23.243581 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [S.], seq 3985859278, ack 401945702, win 4096, options [mss 1024], length 0
21:24:23.243630 IP 100.103.255.254.57578 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:24:23.243766 IP 100.103.255.254.57578 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:24:23.296546 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [.], ack 13, win 4084, length 0
21:24:23.328650 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:24:23.328698 IP 100.103.255.254.57578 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:24:23.328875 IP 100.103.255.254.57578 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:24:23.344183 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [.], ack 13, win 4084, length 0
21:24:23.369128 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [.], ack 33, win 4064, length 0
21:24:23.445901 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:24:23.445987 IP 100.103.255.254.57578 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:24:23.458601 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [.], ack 73, win 4024, length 0
21:24:23.471087 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [.], ack 73, win 4024, length 0
21:24:23.498014 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:24:23.498159 IP 100.103.255.254.57578 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:24:23.510420 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [.], ack 93, win 4004, length 0
21:24:23.523693 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [.], ack 93, win 4004, length 0
21:24:23.547857 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:24:23.547960 IP 100.103.255.254.57578 > 100.103.100.103.6000: Flags [P.], seq 93:173, ack 249, win 64056, length 80
21:24:23.561036 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [.], ack 173, win 3924, length 0
21:24:23.574772 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [.], ack 173, win 3924, length 0
21:24:23.624135 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [P.], seq 249:313, ack 173, win 3924, length 64
21:24:23.624297 IP 100.103.255.254.57578 > 100.103.100.103.6000: Flags [P.], seq 173:185, ack 313, win 64056, length 12
21:24:23.637048 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [.], ack 185, win 3912, length 0
21:24:23.649593 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [.], ack 185, win 3912, length 0
21:24:23.675832 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [P.], seq 313:345, ack 185, win 3912, length 32
21:24:23.675966 IP 100.103.255.254.57578 > 100.103.100.103.6000: Flags [F.], seq 185, ack 345, win 64056, length 0
21:24:23.688238 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [.], ack 186, win 3911, length 0
21:24:23.701862 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [F.], seq 345, ack 186, win 3911, length 0
21:24:23.701899 IP 100.103.255.254.57578 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:24:23.705982 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [F.], seq 345, ack 186, win 3911, length 0
21:24:23.706016 IP 100.103.255.254.57578 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:24:23.728670 IP 100.103.100.103.6000 > 100.103.255.254.57578: Flags [R], seq 3985859624, win 4096, length 0
21:24:27.219866 ARP, Request who-has 100.103.100.103 tell 100.103.0.10, length 46
21:24:27.227711 ARP, Reply 100.103.100.103 is-at 08:00:2b:16:4b:5a, length 50
21:24:39.137730 IP 100.103.100.103.1025 > 100.103.0.10.23: Flags [S], seq 3987203278, win 2048, options [mss 1024], length 0
21:24:39.138300 IP 100.103.0.10.23 > 100.103.100.103.1025: Flags [S.], seq 1316990688, ack 3987203279, win 64240, options [mss 1460], length 0
21:24:39.152893 IP 100.103.100.103.1025 > 100.103.0.10.23: Flags [.], ack 1, win 2048, length 0
21:24:39.180104 IP 100.103.100.103.1025 > 100.103.0.10.23: Flags [F.], seq 1, ack 1, win 2048, length 0
21:24:39.183732 IP 100.103.0.10.23 > 100.103.100.103.1025: Flags [.], ack 2, win 64239, length 0
21:24:39.259550 IP 100.103.0.10.23 > 100.103.100.103.1025: Flags [P.], seq 1:22, ack 2, win 64239, length 21 [telnet WILL AUTHENTICATION, WILL ENCRYPT, DO TERMINAL TYPE, DO TSPEED, DO XDISPLOC, DO NEW-ENVIRON, DO OLD-ENVIRON]
21:24:39.259882 IP 100.103.0.10.23 > 100.103.100.103.1025: Flags [F.], seq 22, ack 2, win 64239, length 0
21:24:39.276447 IP 100.103.100.103.1025 > 100.103.0.10.23: Flags [R], seq 3987203280, win 0, length 0
21:24:39.289379 IP 100.103.100.103.1025 > 100.103.0.10.23: Flags [R], seq 3987203280, win 0, length 0
21:24:47.451532 IP 100.103.255.254.48126 > 100.103.100.103.6000: Flags [S], seq 730833635, win 64240, options [mss 1460,sackOK,TS val 2071298035 ecr 0,nop,wscale 10], length 0
21:24:47.465224 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [S.], seq 3987907278, ack 730833636, win 4096, options [mss 1024], length 0
21:24:47.465254 IP 100.103.255.254.48126 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:24:47.465340 IP 100.103.255.254.48126 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:24:47.517790 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [.], ack 13, win 4084, length 0
21:24:47.550266 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:24:47.550324 IP 100.103.255.254.48126 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:24:47.550469 IP 100.103.255.254.48126 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:24:47.565567 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [.], ack 13, win 4084, length 0
21:24:47.587684 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [.], ack 33, win 4064, length 0
21:24:47.641324 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:24:47.641434 IP 100.103.255.254.48126 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:24:47.700103 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [.], ack 73, win 4024, length 0
21:24:47.712537 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [.], ack 73, win 4024, length 0
21:24:47.739700 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:24:47.739819 IP 100.103.255.254.48126 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:24:47.751734 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [.], ack 93, win 4004, length 0
21:24:47.764416 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [.], ack 93, win 4004, length 0
21:24:47.788907 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:24:47.788971 IP 100.103.255.254.48126 > 100.103.100.103.6000: Flags [P.], seq 93:125, ack 249, win 64056, length 32
21:24:47.802034 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [.], ack 125, win 3972, length 0
21:24:47.813475 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [.], ack 125, win 3972, length 0
21:24:47.878624 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [P.], seq 249:313, ack 125, win 3972, length 64
21:24:47.878840 IP 100.103.255.254.48126 > 100.103.100.103.6000: Flags [P.], seq 125:137, ack 313, win 64056, length 12
21:24:47.890437 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [.], ack 137, win 3960, length 0
21:24:47.903446 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [.], ack 137, win 3960, length 0
21:24:47.929787 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [P.], seq 313:345, ack 137, win 3960, length 32
21:24:47.929940 IP 100.103.255.254.48126 > 100.103.100.103.6000: Flags [F.], seq 137, ack 345, win 64056, length 0
21:24:47.934504 IP 100.103.255.254.48136 > 100.103.100.103.6000: Flags [S], seq 1097518749, win 64240, options [mss 1460,sackOK,TS val 2975724388 ecr 0,nop,wscale 10], length 0
21:24:47.943672 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [.], ack 138, win 3959, length 0
21:24:47.964450 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [S.], seq 3988035278, ack 1097518750, win 4096, options [mss 1024], length 0
21:24:47.964493 IP 100.103.255.254.48136 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:24:47.964707 IP 100.103.255.254.48136 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:24:47.981003 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [F.], seq 345, ack 138, win 3959, length 0
21:24:47.981026 IP 100.103.255.254.48126 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:24:47.985106 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [F.], seq 345, ack 138, win 3959, length 0
21:24:47.985112 IP 100.103.255.254.48126 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:24:48.016461 IP 100.103.100.103.6000 > 100.103.255.254.48126: Flags [R], seq 3987907624, win 4096, length 0
21:24:48.058150 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [.], ack 13, win 4084, length 0
21:24:48.096117 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:24:48.096157 IP 100.103.255.254.48136 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:24:48.096305 IP 100.103.255.254.48136 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:24:48.111280 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [.], ack 13, win 4084, length 0
21:24:48.132795 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [.], ack 33, win 4064, length 0
21:24:48.210724 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:24:48.210932 IP 100.103.255.254.48136 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:24:48.223943 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [.], ack 73, win 4024, length 0
21:24:48.237077 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [.], ack 73, win 4024, length 0
21:24:48.255876 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:24:48.256055 IP 100.103.255.254.48136 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:24:48.269975 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [.], ack 93, win 4004, length 0
21:24:48.281254 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [.], ack 93, win 4004, length 0
21:24:48.303350 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:24:48.303496 IP 100.103.255.254.48136 > 100.103.100.103.6000: Flags [P.], seq 93:113, ack 249, win 64056, length 20
21:24:48.315328 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [.], ack 113, win 3984, length 0
21:24:48.327969 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [.], ack 113, win 3984, length 0
21:24:48.389478 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [P.], seq 249:341, ack 113, win 3984, length 92
21:24:48.389686 IP 100.103.255.254.48136 > 100.103.100.103.6000: Flags [P.], seq 113:125, ack 341, win 64056, length 12
21:24:48.401846 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [.], ack 125, win 3972, length 0
21:24:48.414527 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [.], ack 125, win 3972, length 0
21:24:48.441605 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [P.], seq 341:373, ack 125, win 3972, length 32
21:24:48.441754 IP 100.103.255.254.48136 > 100.103.100.103.6000: Flags [F.], seq 125, ack 373, win 64056, length 0
21:24:48.453654 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [.], ack 126, win 3971, length 0
21:24:48.467484 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [F.], seq 373, ack 126, win 3971, length 0
21:24:48.467520 IP 100.103.255.254.48136 > 100.103.100.103.6000: Flags [.], ack 374, win 64056, length 0
21:24:48.471594 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [F.], seq 373, ack 126, win 3971, length 0
21:24:48.471619 IP 100.103.255.254.48136 > 100.103.100.103.6000: Flags [.], ack 374, win 64056, length 0
21:24:48.492362 IP 100.103.100.103.6000 > 100.103.255.254.48136: Flags [R], seq 3988035652, win 4096, length 0
21:24:55.902382 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [S], seq 336560255, win 64240, options [mss 1460,sackOK,TS val 3119983862 ecr 0,nop,wscale 10], length 0
21:24:55.916226 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [S.], seq 3988675278, ack 336560256, win 4096, options [mss 1024], length 0
21:24:55.916273 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:24:55.916405 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:24:55.968483 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 13, win 4084, length 0
21:24:56.000795 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:24:56.000843 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:24:56.000980 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:24:56.016404 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 13, win 4084, length 0
21:24:56.039079 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 33, win 4064, length 0
21:24:56.090142 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:24:56.090263 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:24:56.106617 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 73, win 4024, length 0
21:24:56.162913 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 73, win 4024, length 0
21:24:56.195942 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:24:56.196181 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:24:56.208964 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 93, win 4004, length 0
21:24:56.221384 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 93, win 4004, length 0
21:24:56.245935 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:24:56.246095 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
21:24:56.258267 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 97, win 4000, length 0
21:24:56.270546 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 97, win 4000, length 0
21:24:56.295190 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [P.], seq 249:301, ack 97, win 4000, length 52
21:24:56.295297 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [P.], seq 97:101, ack 301, win 64056, length 4
21:24:56.307278 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 101, win 3996, length 0
21:24:56.320349 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 101, win 3996, length 0
21:24:56.344988 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [P.], seq 301:333, ack 101, win 3996, length 32
21:24:56.345081 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [P.], seq 101:105, ack 333, win 64056, length 4
21:24:56.357005 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 105, win 3992, length 0
21:24:56.370207 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 105, win 3992, length 0
21:24:56.395899 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [P.], seq 333:365, ack 105, win 3992, length 32
21:24:56.395972 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [P.], seq 105:109, ack 365, win 64056, length 4
21:24:56.407887 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 109, win 3988, length 0
21:24:56.420571 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 109, win 3988, length 0
21:24:56.446846 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [P.], seq 365:421, ack 109, win 3988, length 56
21:24:56.447033 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [P.], seq 109:129, ack 421, win 64056, length 20
21:24:56.459755 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 129, win 3968, length 0
21:24:56.471028 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 129, win 3968, length 0
21:24:56.495682 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [P.], seq 421:453, ack 129, win 3968, length 32
21:24:56.495850 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [P.], seq 129:161, ack 453, win 64056, length 32
21:24:56.508080 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 161, win 3936, length 0
21:24:56.521161 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 161, win 3936, length 0
21:24:56.546334 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [P.], seq 453:485, ack 161, win 3936, length 32
21:24:56.546462 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [P.], seq 161:173, ack 485, win 64056, length 12
21:24:56.558293 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 173, win 3924, length 0
21:24:56.571554 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 173, win 3924, length 0
21:24:56.596805 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [P.], seq 485:517, ack 173, win 3924, length 32
21:24:56.596924 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [P.], seq 173:185, ack 517, win 64056, length 12
21:24:56.608967 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 185, win 3912, length 0
21:24:56.621640 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 185, win 3912, length 0
21:24:56.648495 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [P.], seq 517:549, ack 185, win 3912, length 32
21:24:56.648667 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [F.], seq 185, ack 549, win 64056, length 0
21:24:56.654001 IP 100.103.255.254.39116 > 100.103.100.103.6000: Flags [S], seq 620221382, win 64240, options [mss 1460,sackOK,TS val 3875246064 ecr 0,nop,wscale 10], length 0
21:24:56.662832 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [.], ack 186, win 3911, length 0
21:24:56.683141 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [S.], seq 3988803278, ack 620221383, win 4096, options [mss 1024], length 0
21:24:56.683183 IP 100.103.255.254.39116 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:24:56.683270 IP 100.103.255.254.39116 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:24:56.699298 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [F.], seq 549, ack 186, win 3911, length 0
21:24:56.699318 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:24:56.703423 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [F.], seq 549, ack 186, win 3911, length 0
21:24:56.703432 IP 100.103.255.254.39106 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:24:56.733778 IP 100.103.100.103.6000 > 100.103.255.254.39106: Flags [R], seq 3988675828, win 4096, length 0
21:24:56.775048 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [.], ack 13, win 4084, length 0
21:24:56.820415 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:24:56.820493 IP 100.103.255.254.39116 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:24:56.820788 IP 100.103.255.254.39116 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:24:56.862979 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [.], ack 13, win 4084, length 0
21:24:56.902244 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [.], ack 33, win 4064, length 0
21:24:56.933931 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:24:56.934073 IP 100.103.255.254.39116 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:24:56.947394 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [.], ack 73, win 4024, length 0
21:24:56.960450 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [.], ack 73, win 4024, length 0
21:24:56.987664 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:24:56.987856 IP 100.103.255.254.39116 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:24:56.999328 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [.], ack 93, win 4004, length 0
21:24:57.011743 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [.], ack 93, win 4004, length 0
21:24:57.037298 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:24:57.037387 IP 100.103.255.254.39116 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
21:24:57.050731 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [.], ack 97, win 4000, length 0
21:24:57.061956 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [.], ack 97, win 4000, length 0
21:24:57.088434 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [P.], seq 249:305, ack 97, win 4000, length 56
21:24:57.088484 IP 100.103.255.254.39116 > 100.103.100.103.6000: Flags [P.], seq 97:141, ack 305, win 64056, length 44
21:24:57.101124 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [.], ack 141, win 3956, length 0
21:24:57.113795 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [.], ack 141, win 3956, length 0
21:24:57.145558 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [P.], seq 305:369, ack 141, win 3956, length 64
21:24:57.145677 IP 100.103.255.254.39116 > 100.103.100.103.6000: Flags [F.], seq 141, ack 369, win 64056, length 0
21:24:57.157712 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [.], ack 142, win 3955, length 0
21:24:57.171424 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [F.], seq 369, ack 142, win 3955, length 0
21:24:57.171445 IP 100.103.255.254.39116 > 100.103.100.103.6000: Flags [.], ack 370, win 64056, length 0
21:24:57.175494 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [F.], seq 369, ack 142, win 3955, length 0
21:24:57.175500 IP 100.103.255.254.39116 > 100.103.100.103.6000: Flags [.], ack 370, win 64056, length 0
21:24:57.197877 IP 100.103.100.103.6000 > 100.103.255.254.39116: Flags [R], seq 3988803648, win 4096, length 0
21:25:02.155947 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [S], seq 118110441, win 64240, options [mss 1460,sackOK,TS val 3476669632 ecr 0,nop,wscale 10], length 0
21:25:02.169713 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [S.], seq 3989315278, ack 118110442, win 4096, options [mss 1024], length 0
21:25:02.169756 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:25:02.169911 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:25:02.222691 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 13, win 4084, length 0
21:25:02.255145 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:25:02.255176 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:25:02.255301 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:25:02.270075 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 13, win 4084, length 0
21:25:02.290690 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 33, win 4064, length 0
21:25:02.333009 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:25:02.333216 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:25:02.351039 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 73, win 4024, length 0
21:25:02.373269 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 73, win 4024, length 0
21:25:02.443598 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:25:02.443762 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:25:02.455530 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 93, win 4004, length 0
21:25:02.467937 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 93, win 4004, length 0
21:25:02.492613 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:25:02.492773 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
21:25:02.505629 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 97, win 4000, length 0
21:25:02.518206 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 97, win 4000, length 0
21:25:02.542952 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [P.], seq 249:301, ack 97, win 4000, length 52
21:25:02.543091 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [P.], seq 97:101, ack 301, win 64056, length 4
21:25:02.554925 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 101, win 3996, length 0
21:25:02.568402 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 101, win 3996, length 0
21:25:02.591724 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [P.], seq 301:333, ack 101, win 3996, length 32
21:25:02.591806 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [P.], seq 101:105, ack 333, win 64056, length 4
21:25:02.605556 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 105, win 3992, length 0
21:25:02.616893 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 105, win 3992, length 0
21:25:02.642342 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [P.], seq 333:365, ack 105, win 3992, length 32
21:25:02.642399 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [P.], seq 105:109, ack 365, win 64056, length 4
21:25:02.654676 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 109, win 3988, length 0
21:25:02.666719 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 109, win 3988, length 0
21:25:02.690369 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [P.], seq 365:421, ack 109, win 3988, length 56
21:25:02.690449 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [P.], seq 109:129, ack 421, win 64056, length 20
21:25:02.702757 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 129, win 3968, length 0
21:25:02.715707 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 129, win 3968, length 0
21:25:02.741089 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [P.], seq 421:453, ack 129, win 3968, length 32
21:25:02.741235 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [P.], seq 129:161, ack 453, win 64056, length 32
21:25:02.753237 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 161, win 3936, length 0
21:25:02.765896 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 161, win 3936, length 0
21:25:02.791403 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [P.], seq 453:485, ack 161, win 3936, length 32
21:25:02.791512 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [P.], seq 161:173, ack 485, win 64056, length 12
21:25:02.803701 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 173, win 3924, length 0
21:25:02.816135 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 173, win 3924, length 0
21:25:02.839524 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [P.], seq 485:517, ack 173, win 3924, length 32
21:25:02.839668 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [P.], seq 173:185, ack 517, win 64056, length 12
21:25:02.853270 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 185, win 3912, length 0
21:25:02.864704 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 185, win 3912, length 0
21:25:02.890993 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [P.], seq 517:549, ack 185, win 3912, length 32
21:25:02.891129 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [F.], seq 185, ack 549, win 64056, length 0
21:25:02.903431 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [.], ack 186, win 3911, length 0
21:25:02.917661 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [F.], seq 549, ack 186, win 3911, length 0
21:25:02.917694 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:25:02.921717 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [F.], seq 549, ack 186, win 3911, length 0
21:25:02.921732 IP 100.103.255.254.39126 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:25:02.943082 IP 100.103.100.103.6000 > 100.103.255.254.39126: Flags [R], seq 3989315828, win 4096, length 0
511 packets captured
511 packets received by filter
0 packets dropped by kernel
+477
View File
@@ -0,0 +1,477 @@
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp197s0f3u1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
21:32:25.568032 IP 100.103.100.103.1024 > 100.103.255.255.771: UDP, length 64
21:32:53.474639 ARP, Request who-has 100.103.255.254 tell 100.103.100.103, length 50
21:32:53.474669 ARP, Reply 100.103.255.254 is-at 2c:16:db:a0:e7:b1, length 28
21:32:53.482812 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 12, RRQ "xyz" octet
21:32:53.482984 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 1
21:32:53.511027 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:32:53.511157 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 172, DATA block 2
21:32:53.527063 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:32:53.541711 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 22, RRQ "xyz/fonts.dir" octet
21:32:53.541853 IP 100.103.255.254.69 > 100.103.100.103.1026: TFTP, length 77, DATA block 1
21:32:53.557766 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:32:53.567005 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:32:53.585492 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 22, RRQ "xyz/fonts.dir" octet
21:32:53.585623 IP 100.103.255.254.69 > 100.103.100.103.1027: TFTP, length 77, DATA block 1
21:32:53.602760 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:32:53.610774 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 2
21:32:58.616775 ARP, Request who-has 100.103.100.103 tell 100.103.255.254, length 28
21:32:58.622373 ARP, Reply 100.103.100.103 is-at 08:00:2b:16:4b:5a, length 50
21:33:05.446961 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [S], seq 3840148586, win 64240, options [mss 1460,sackOK,TS val 1597732336 ecr 0,nop,wscale 10], length 0
21:33:05.465835 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [S.], seq 3801408561, ack 3840148587, win 4096, options [mss 1024], length 0
21:33:05.465871 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:33:05.466028 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:33:05.521184 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 13, win 4084, length 0
21:33:05.552450 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:33:05.552495 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:33:05.552659 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:33:05.568598 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 13, win 4084, length 0
21:33:05.590761 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 33, win 4064, length 0
21:33:05.633242 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:33:05.633357 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:33:05.657520 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 73, win 4024, length 0
21:33:05.681301 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 73, win 4024, length 0
21:33:05.748407 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:33:05.748531 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:33:05.761478 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 93, win 4004, length 0
21:33:05.772970 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 93, win 4004, length 0
21:33:05.798461 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:33:05.798618 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
21:33:05.810933 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 97, win 4000, length 0
21:33:05.823138 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 97, win 4000, length 0
21:33:05.848121 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [P.], seq 249:301, ack 97, win 4000, length 52
21:33:05.848253 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [P.], seq 97:101, ack 301, win 64056, length 4
21:33:05.860153 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 101, win 3996, length 0
21:33:05.873449 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 101, win 3996, length 0
21:33:05.898295 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [P.], seq 301:333, ack 101, win 3996, length 32
21:33:05.898380 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [P.], seq 101:105, ack 333, win 64056, length 4
21:33:05.910352 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 105, win 3992, length 0
21:33:05.922909 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 105, win 3992, length 0
21:33:05.949103 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [P.], seq 333:365, ack 105, win 3992, length 32
21:33:05.949215 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [P.], seq 105:109, ack 365, win 64056, length 4
21:33:05.961096 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 109, win 3988, length 0
21:33:05.973715 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 109, win 3988, length 0
21:33:05.999945 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [P.], seq 365:421, ack 109, win 3988, length 56
21:33:06.000090 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [P.], seq 109:129, ack 421, win 64056, length 20
21:33:06.012770 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 129, win 3968, length 0
21:33:06.024191 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 129, win 3968, length 0
21:33:06.049124 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [P.], seq 421:453, ack 129, win 3968, length 32
21:33:06.049431 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [P.], seq 129:161, ack 453, win 64056, length 32
21:33:06.062149 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 161, win 3936, length 0
21:33:06.074640 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 161, win 3936, length 0
21:33:06.099084 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [P.], seq 453:485, ack 161, win 3936, length 32
21:33:06.099224 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [P.], seq 161:173, ack 485, win 64056, length 12
21:33:06.112638 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 173, win 3924, length 0
21:33:06.124642 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 173, win 3924, length 0
21:33:06.150086 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [P.], seq 485:517, ack 173, win 3924, length 32
21:33:06.150271 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [P.], seq 173:185, ack 517, win 64056, length 12
21:33:06.162020 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 185, win 3912, length 0
21:33:06.174397 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 185, win 3912, length 0
21:33:06.200729 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [P.], seq 517:549, ack 185, win 3912, length 32
21:33:06.200908 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [F.], seq 185, ack 549, win 64056, length 0
21:33:06.205684 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [S], seq 2717978570, win 64240, options [mss 1460,sackOK,TS val 581116938 ecr 0,nop,wscale 10], length 0
21:33:06.215407 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [.], ack 186, win 3911, length 0
21:33:06.234607 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [S.], seq 3801536561, ack 2717978571, win 4096, options [mss 1024], length 0
21:33:06.234631 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:33:06.234858 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:33:06.250959 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [F.], seq 549, ack 186, win 3911, length 0
21:33:06.250986 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:33:06.255130 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [F.], seq 549, ack 186, win 3911, length 0
21:33:06.255140 IP 100.103.255.254.38868 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:33:06.285707 IP 100.103.100.103.6000 > 100.103.255.254.38868: Flags [R], seq 3801409111, win 4096, length 0
21:33:06.331126 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 13, win 4084, length 0
21:33:06.374005 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:33:06.374046 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:33:06.374204 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:33:06.388690 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 13, win 4084, length 0
21:33:06.412518 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 33, win 4064, length 0
21:33:06.482009 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:33:06.482228 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:33:06.503790 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 73, win 4024, length 0
21:33:06.516662 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 73, win 4024, length 0
21:33:06.545842 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:33:06.545981 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:33:06.557906 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 93, win 4004, length 0
21:33:06.570454 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 93, win 4004, length 0
21:33:06.595028 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:33:06.595181 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:33:06.607494 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 105, win 3992, length 0
21:33:06.620841 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 105, win 3992, length 0
21:33:06.740393 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
21:33:06.746648 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
21:33:06.746671 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
21:33:06.761372 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 105, win 3992, length 0
21:33:06.770485 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [P.], seq 2297:3009, ack 105, win 3992, length 712
21:33:06.770713 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 3009, win 64056, length 12
21:33:06.783180 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 117, win 3980, length 0
21:33:06.794690 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 117, win 3980, length 0
21:33:06.818500 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [P.], seq 3009:3041, ack 117, win 3980, length 32
21:33:06.818642 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [F.], seq 117, ack 3041, win 64056, length 0
21:33:06.822971 IP 100.103.255.254.38892 > 100.103.100.103.6000: Flags [S], seq 1247105321, win 64240, options [mss 1460,sackOK,TS val 2591425940 ecr 0,nop,wscale 10], length 0
21:33:06.832151 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [.], ack 118, win 3979, length 0
21:33:06.852994 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [S.], seq 3801600561, ack 1247105322, win 4096, options [mss 1024], length 0
21:33:06.853024 IP 100.103.255.254.38892 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:33:06.853190 IP 100.103.255.254.38892 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:33:06.869052 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:33:06.869075 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:33:06.873175 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:33:06.873189 IP 100.103.255.254.38882 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:33:06.902757 IP 100.103.100.103.6000 > 100.103.255.254.38882: Flags [R], seq 3801539603, win 4096, length 0
21:33:06.948992 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [.], ack 13, win 4084, length 0
21:33:06.993436 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:33:06.993494 IP 100.103.255.254.38892 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:33:06.993657 IP 100.103.255.254.38892 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:33:07.008552 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [.], ack 13, win 4084, length 0
21:33:07.032637 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [.], ack 33, win 4064, length 0
21:33:07.088922 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:33:07.089082 IP 100.103.255.254.38892 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:33:07.124133 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [.], ack 73, win 4024, length 0
21:33:07.136862 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [.], ack 73, win 4024, length 0
21:33:07.169219 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:33:07.169427 IP 100.103.255.254.38892 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:33:07.181256 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [.], ack 93, win 4004, length 0
21:33:07.193619 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [.], ack 93, win 4004, length 0
21:33:07.218387 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:33:07.218515 IP 100.103.255.254.38892 > 100.103.100.103.6000: Flags [P.], seq 93:125, ack 249, win 64056, length 32
21:33:07.230920 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [.], ack 125, win 3972, length 0
21:33:07.244244 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [.], ack 125, win 3972, length 0
21:33:07.285047 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 19, RRQ "v1200a.pcf" octet
21:33:07.285170 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 1
21:33:07.307430 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:33:07.307591 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 172, DATA block 2
21:33:07.363310 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 2
21:33:07.408412 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 3
21:33:07.441668 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [P.], seq 249:313, ack 125, win 3972, length 64
21:33:07.441878 IP 100.103.255.254.38892 > 100.103.100.103.6000: Flags [P.], seq 125:137, ack 313, win 64056, length 12
21:33:07.454778 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [.], ack 137, win 3960, length 0
21:33:07.466411 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [.], ack 137, win 3960, length 0
21:33:07.492254 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [P.], seq 313:345, ack 137, win 3960, length 32
21:33:07.492434 IP 100.103.255.254.38892 > 100.103.100.103.6000: Flags [F.], seq 137, ack 345, win 64056, length 0
21:33:07.505261 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [.], ack 138, win 3959, length 0
21:33:07.518988 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [F.], seq 345, ack 138, win 3959, length 0
21:33:07.519027 IP 100.103.255.254.38892 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:33:07.523105 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [F.], seq 345, ack 138, win 3959, length 0
21:33:07.523118 IP 100.103.255.254.38892 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:33:07.545014 IP 100.103.100.103.6000 > 100.103.255.254.38892: Flags [R], seq 3801600907, win 4096, length 0
21:33:21.791571 IP 100.103.255.254.36886 > 100.103.100.103.6000: Flags [S], seq 1698022286, win 64240, options [mss 1460,sackOK,TS val 262946279 ecr 0,nop,wscale 10], length 0
21:33:21.805332 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [S.], seq 3802880561, ack 1698022287, win 4096, options [mss 1024], length 0
21:33:21.805360 IP 100.103.255.254.36886 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:33:21.805439 IP 100.103.255.254.36886 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:33:21.860656 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [.], ack 13, win 4084, length 0
21:33:21.892225 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:33:21.892243 IP 100.103.255.254.36886 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:33:21.892293 IP 100.103.255.254.36886 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:33:21.909585 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [.], ack 13, win 4084, length 0
21:33:21.936598 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [.], ack 33, win 4064, length 0
21:33:21.987339 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:33:21.987481 IP 100.103.255.254.36886 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:33:22.018619 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [.], ack 73, win 4024, length 0
21:33:22.055727 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [.], ack 73, win 4024, length 0
21:33:22.088785 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:33:22.088939 IP 100.103.255.254.36886 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:33:22.101239 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [.], ack 93, win 4004, length 0
21:33:22.114519 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [.], ack 93, win 4004, length 0
21:33:22.138639 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:33:22.138737 IP 100.103.255.254.36886 > 100.103.100.103.6000: Flags [P.], seq 93:113, ack 249, win 64056, length 20
21:33:22.151198 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [.], ack 113, win 3984, length 0
21:33:22.163238 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [.], ack 113, win 3984, length 0
21:33:22.285520 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [P.], seq 249:309, ack 113, win 3984, length 60
21:33:22.285631 IP 100.103.255.254.36886 > 100.103.100.103.6000: Flags [P.], seq 113:125, ack 309, win 64056, length 12
21:33:22.297668 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [.], ack 125, win 3972, length 0
21:33:22.310172 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [.], ack 125, win 3972, length 0
21:33:22.337395 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [P.], seq 309:341, ack 125, win 3972, length 32
21:33:22.337572 IP 100.103.255.254.36886 > 100.103.100.103.6000: Flags [F.], seq 125, ack 341, win 64056, length 0
21:33:22.349414 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [.], ack 126, win 3971, length 0
21:33:22.356228 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [S], seq 2873126684, win 64240, options [mss 1460,sackOK,TS val 2804334454 ecr 0,nop,wscale 10], length 0
21:33:22.371258 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [S.], seq 3802944561, ack 2873126685, win 4096, options [mss 1024], length 0
21:33:22.371304 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:33:22.371459 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:33:22.394306 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [F.], seq 341, ack 126, win 3971, length 0
21:33:22.394361 IP 100.103.255.254.36886 > 100.103.100.103.6000: Flags [.], ack 342, win 64056, length 0
21:33:22.398336 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [F.], seq 341, ack 126, win 3971, length 0
21:33:22.398357 IP 100.103.255.254.36886 > 100.103.100.103.6000: Flags [.], ack 342, win 64056, length 0
21:33:22.419738 IP 100.103.100.103.6000 > 100.103.255.254.36886: Flags [R], seq 3802880903, win 4096, length 0
21:33:22.468839 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 13, win 4084, length 0
21:33:22.526623 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:33:22.526677 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:33:22.526778 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:33:22.540971 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 13, win 4084, length 0
21:33:22.566531 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 33, win 4064, length 0
21:33:22.623372 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:33:22.623522 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:33:22.635338 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 73, win 4024, length 0
21:33:22.648274 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 73, win 4024, length 0
21:33:22.675702 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:33:22.675921 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:33:22.688302 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 93, win 4004, length 0
21:33:22.700634 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 93, win 4004, length 0
21:33:22.725412 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:33:22.725547 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 93:113, ack 249, win 64056, length 20
21:33:22.738040 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 113, win 3984, length 0
21:33:22.751837 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 113, win 3984, length 0
21:33:22.777201 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 249:281, ack 113, win 3984, length 32
21:33:22.777354 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 113:133, ack 281, win 64056, length 20
21:33:22.789504 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 133, win 3964, length 0
21:33:22.801955 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 133, win 3964, length 0
21:33:22.827893 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 281:313, ack 133, win 3964, length 32
21:33:22.828957 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 133:157, ack 313, win 64056, length 24
21:33:22.840535 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 157, win 3940, length 0
21:33:22.852965 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 157, win 3940, length 0
21:33:22.877805 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 313:345, ack 157, win 3940, length 32
21:33:22.885030 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 157:181, ack 345, win 64056, length 24
21:33:22.899888 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 181, win 3916, length 0
21:33:22.911650 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 181, win 3916, length 0
21:33:22.932599 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 345:377, ack 181, win 3916, length 32
21:33:22.933689 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 181:301, ack 377, win 64056, length 120
21:33:22.946305 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 301, win 3796, length 0
21:33:22.959379 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 301, win 3796, length 0
21:33:23.009021 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 377:473, ack 301, win 3796, length 96
21:33:23.049832 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [.], ack 473, win 64056, length 0
21:33:23.051422 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 473:665, ack 301, win 3796, length 192
21:33:23.051446 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [.], ack 665, win 64056, length 0
21:33:23.051671 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 301:677, ack 665, win 64056, length 376
21:33:23.066236 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 301, win 3796, length 0
21:33:23.076683 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 301, win 3796, length 0
21:33:23.104809 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 677, win 3420, length 0
21:33:23.451609 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 665:729, ack 677, win 3420, length 64
21:33:23.451942 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 677:733, ack 729, win 64056, length 56
21:33:23.463724 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 733, win 3364, length 0
21:33:23.476417 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 733, win 3364, length 0
21:33:23.552663 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], seq 729:1753, ack 733, win 3364, length 1024
21:33:23.558925 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 1753:2777, ack 733, win 3364, length 1024
21:33:23.558968 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [.], ack 2777, win 64056, length 0
21:33:23.573051 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 733, win 3364, length 0
21:33:23.583821 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 2777:3741, ack 733, win 3364, length 964
21:33:23.584069 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 733:917, ack 3741, win 64056, length 184
21:33:23.596760 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 917, win 3180, length 0
21:33:23.610284 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 917, win 3180, length 0
21:33:23.654582 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 3741:3773, ack 917, win 3180, length 32
21:33:23.661848 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 917:961, ack 3773, win 64056, length 44
21:33:23.676320 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 961, win 3136, length 0
21:33:23.687771 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 961, win 3136, length 0
21:33:23.733008 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 3773:3873, ack 961, win 3136, length 100
21:33:23.733126 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 961:1005, ack 3873, win 64056, length 44
21:33:23.745140 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1005, win 3092, length 0
21:33:23.758491 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1005, win 3092, length 0
21:33:23.807040 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 3873:3973, ack 1005, win 3092, length 100
21:33:23.807163 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1005:1049, ack 3973, win 64056, length 44
21:33:23.819070 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1049, win 3048, length 0
21:33:23.832441 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1049, win 3048, length 0
21:33:23.880783 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 3973:4073, ack 1049, win 3048, length 100
21:33:23.880904 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1049:1093, ack 4073, win 64056, length 44
21:33:23.894158 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1093, win 3004, length 0
21:33:23.906641 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1093, win 3004, length 0
21:33:23.970198 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4073:4105, ack 1093, win 3004, length 32
21:33:23.970336 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1093:1113, ack 4105, win 64056, length 20
21:33:23.982799 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1113, win 2984, length 0
21:33:23.995003 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1113, win 2984, length 0
21:33:24.062394 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4105:4137, ack 1113, win 2984, length 32
21:33:24.062538 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1113:1137, ack 4137, win 64056, length 24
21:33:24.074299 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1137, win 2960, length 0
21:33:24.087013 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1137, win 2960, length 0
21:33:24.153380 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4137:4169, ack 1137, win 2960, length 32
21:33:24.153533 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1137:1181, ack 4169, win 64056, length 44
21:33:24.165627 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1181, win 2916, length 0
21:33:24.177859 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1181, win 2916, length 0
21:33:24.241012 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4169:4201, ack 1181, win 2916, length 32
21:33:24.241250 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1181:1201, ack 4201, win 64056, length 20
21:33:24.254601 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1201, win 2896, length 0
21:33:24.266040 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1201, win 2896, length 0
21:33:24.333077 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4201:4233, ack 1201, win 2896, length 32
21:33:24.333236 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1201:1225, ack 4233, win 64056, length 24
21:33:24.344949 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1225, win 2872, length 0
21:33:24.357012 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1225, win 2872, length 0
21:33:24.423299 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4233:4265, ack 1225, win 2872, length 32
21:33:24.423435 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1225:1269, ack 4265, win 64056, length 44
21:33:24.436369 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1269, win 2828, length 0
21:33:24.447834 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1269, win 2828, length 0
21:33:24.514073 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4265:4297, ack 1269, win 2828, length 32
21:33:24.514245 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1269:1289, ack 4297, win 64056, length 20
21:33:24.525889 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1289, win 2808, length 0
21:33:24.538743 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1289, win 2808, length 0
21:33:24.605330 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4297:4329, ack 1289, win 2808, length 32
21:33:24.605456 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1289:1313, ack 4329, win 64056, length 24
21:33:24.617304 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1313, win 2784, length 0
21:33:24.629690 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1313, win 2784, length 0
21:33:24.703071 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4329:4361, ack 1313, win 2784, length 32
21:33:24.703237 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1313:1357, ack 4361, win 64056, length 44
21:33:24.716263 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1357, win 2740, length 0
21:33:24.727410 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1357, win 2740, length 0
21:33:24.791037 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4361:4393, ack 1357, win 2740, length 32
21:33:24.791224 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1357:1377, ack 4393, win 64056, length 20
21:33:24.803349 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1377, win 2720, length 0
21:33:24.816432 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1377, win 2720, length 0
21:33:24.879432 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4393:4425, ack 1377, win 2720, length 32
21:33:24.879607 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1377:1401, ack 4425, win 64056, length 24
21:33:24.891592 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1401, win 2696, length 0
21:33:24.903994 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1401, win 2696, length 0
21:33:24.970514 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4425:4457, ack 1401, win 2696, length 32
21:33:24.970689 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1401:1445, ack 4457, win 64056, length 44
21:33:24.983027 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1445, win 2652, length 0
21:33:24.996438 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1445, win 2652, length 0
21:33:25.060403 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4457:4489, ack 1445, win 2652, length 32
21:33:25.060580 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1445:1461, ack 4489, win 64056, length 16
21:33:25.072884 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1461, win 2636, length 0
21:33:25.084265 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1461, win 2636, length 0
21:33:25.149187 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4489:4521, ack 1461, win 2636, length 32
21:33:25.149321 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1461:1481, ack 4521, win 64056, length 20
21:33:25.161564 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1481, win 2616, length 0
21:33:25.173758 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1481, win 2616, length 0
21:33:25.239200 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4521:4553, ack 1481, win 2616, length 32
21:33:25.239311 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1481:1525, ack 4553, win 64056, length 44
21:33:25.251263 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1525, win 2572, length 0
21:33:25.263890 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1525, win 2572, length 0
21:33:25.328452 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4553:4585, ack 1525, win 2572, length 32
21:33:25.328624 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1525:1545, ack 4585, win 64056, length 20
21:33:25.340785 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1545, win 2552, length 0
21:33:25.354112 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1545, win 2552, length 0
21:33:25.420315 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4585:4617, ack 1545, win 2552, length 32
21:33:25.420468 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1545:1569, ack 4617, win 64056, length 24
21:33:25.432623 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1569, win 2528, length 0
21:33:25.443992 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1569, win 2528, length 0
21:33:25.510326 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4617:4649, ack 1569, win 2528, length 32
21:33:25.510463 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1569:1613, ack 4649, win 64056, length 44
21:33:25.523851 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1613, win 2484, length 0
21:33:25.535298 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1613, win 2484, length 0
21:33:25.600266 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4649:4681, ack 1613, win 2484, length 32
21:33:25.600394 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1613:1633, ack 4681, win 64056, length 20
21:33:25.612209 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1633, win 2464, length 0
21:33:25.623632 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1633, win 2464, length 0
21:33:25.692551 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4681:4713, ack 1633, win 2464, length 32
21:33:25.692732 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1633:1657, ack 4713, win 64056, length 24
21:33:25.704783 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1657, win 2440, length 0
21:33:25.717152 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1657, win 2440, length 0
21:33:25.783524 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4713:4745, ack 1657, win 2440, length 32
21:33:25.783646 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1657:1705, ack 4745, win 64056, length 48
21:33:25.795964 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1705, win 2392, length 0
21:33:25.809280 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1705, win 2392, length 0
21:33:25.872057 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4745:4777, ack 1705, win 2392, length 32
21:33:25.872204 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1705:1725, ack 4777, win 64056, length 20
21:33:25.885099 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1725, win 2372, length 0
21:33:25.896489 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1725, win 2372, length 0
21:33:25.960702 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4777:4809, ack 1725, win 2372, length 32
21:33:25.960865 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1725:1749, ack 4809, win 64056, length 24
21:33:25.973254 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1749, win 2348, length 0
21:33:25.985423 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1749, win 2348, length 0
21:33:26.049909 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4809:4841, ack 1749, win 2348, length 32
21:33:26.050012 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1749:1797, ack 4841, win 64056, length 48
21:33:26.062154 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1797, win 2300, length 0
21:33:26.074642 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1797, win 2300, length 0
21:33:26.139461 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4841:4873, ack 1797, win 2300, length 32
21:33:26.139639 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1797:1817, ack 4873, win 64056, length 20
21:33:26.151911 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1817, win 2280, length 0
21:33:26.165246 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1817, win 2280, length 0
21:33:26.229307 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4873:4905, ack 1817, win 2280, length 32
21:33:26.229478 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1817:1841, ack 4905, win 64056, length 24
21:33:26.242369 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1841, win 2256, length 0
21:33:26.253802 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1841, win 2256, length 0
21:33:26.317811 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4905:4937, ack 1841, win 2256, length 32
21:33:26.317898 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1841:1889, ack 4937, win 64056, length 48
21:33:26.329883 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1889, win 2208, length 0
21:33:26.342481 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1889, win 2208, length 0
21:33:26.406151 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4937:4969, ack 1889, win 2208, length 32
21:33:26.406262 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1889:1909, ack 4969, win 64056, length 20
21:33:26.418275 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1909, win 2188, length 0
21:33:26.430724 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1909, win 2188, length 0
21:33:26.496088 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 4969:5001, ack 1909, win 2188, length 32
21:33:26.496213 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1909:1933, ack 5001, win 64056, length 24
21:33:26.508081 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1933, win 2164, length 0
21:33:26.521251 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1933, win 2164, length 0
21:33:26.585046 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5001:5033, ack 1933, win 2164, length 32
21:33:26.585174 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1933:1985, ack 5033, win 64056, length 52
21:33:26.598151 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1985, win 2112, length 0
21:33:26.609579 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 1985, win 2112, length 0
21:33:26.673486 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5033:5065, ack 1985, win 2112, length 32
21:33:26.673566 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 1985:2013, ack 5065, win 64056, length 28
21:33:26.685479 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 2013, win 2084, length 0
21:33:26.697926 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 2013, win 2084, length 0
21:33:26.763795 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5065:5097, ack 2013, win 2084, length 32
21:33:26.763931 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2013:2041, ack 5097, win 64056, length 28
21:33:26.775696 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 2041, win 2056, length 0
21:33:26.789038 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 2041, win 2056, length 0
21:33:26.854883 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5097:5129, ack 2041, win 2056, length 32
21:33:26.855066 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2041:2093, ack 5129, win 64056, length 52
21:33:26.866897 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 2093, win 2004, length 0
21:33:26.939459 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5129:5161, ack 2093, win 2048, length 32
21:33:26.939529 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2093:2117, ack 5161, win 64056, length 24
21:33:27.019792 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5161:5193, ack 2117, win 2048, length 32
21:33:27.019961 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2117:2145, ack 5193, win 64056, length 28
21:33:27.098486 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5193:5225, ack 2145, win 2048, length 32
21:33:27.098656 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2145:2193, ack 5225, win 64056, length 48
21:33:27.176469 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5225:5257, ack 2193, win 2048, length 32
21:33:27.176581 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2193:2217, ack 5257, win 64056, length 24
21:33:27.257601 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5257:5289, ack 2217, win 2048, length 32
21:33:27.257797 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2217:2245, ack 5289, win 64056, length 28
21:33:27.337534 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5289:5321, ack 2245, win 2048, length 32
21:33:27.337659 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2245:2297, ack 5321, win 64056, length 52
21:33:27.360413 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 2297, win 2048, length 0
21:33:27.420885 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5321:5353, ack 2297, win 2048, length 32
21:33:27.420976 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2297:2325, ack 5353, win 64056, length 28
21:33:27.500106 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5353:5385, ack 2325, win 2048, length 32
21:33:27.500235 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2325:2353, ack 5385, win 64056, length 28
21:33:27.579829 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5385:5417, ack 2353, win 2048, length 32
21:33:27.579984 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2353:2401, ack 5417, win 64056, length 48
21:33:27.659906 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5417:5449, ack 2401, win 2048, length 32
21:33:27.660094 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2401:2421, ack 5449, win 64056, length 20
21:33:27.741449 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5449:5481, ack 2421, win 2048, length 32
21:33:27.741637 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2421:2445, ack 5481, win 64056, length 24
21:33:27.821970 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5481:5513, ack 2445, win 2048, length 32
21:33:27.822132 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2445:2521, ack 5513, win 64056, length 76
21:33:27.877287 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5513:5893, ack 2521, win 2048, length 380
21:33:27.877445 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2521:2597, ack 5893, win 64056, length 76
21:33:27.932132 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 5893:6273, ack 2597, win 2048, length 380
21:33:27.932552 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2597:2953, ack 6273, win 64056, length 356
21:33:28.051385 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 6273:6305, ack 2953, win 2048, length 32
21:33:28.051573 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 2953:3465, ack 6305, win 64056, length 512
21:33:28.149887 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 6305:6561, ack 3465, win 2048, length 256
21:33:28.150087 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 3465:3561, ack 6561, win 64056, length 96
21:33:28.197978 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 6561:6657, ack 3561, win 2048, length 96
21:33:28.198092 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [P.], seq 3561:3849, ack 6657, win 64056, length 288
21:33:28.258635 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 6657:6689, ack 3849, win 2048, length 32
21:33:28.298806 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [.], ack 6689, win 64056, length 0
21:33:28.320638 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 6689:6753, ack 3849, win 2048, length 64
21:33:28.320714 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [.], ack 6753, win 64056, length 0
21:33:28.341857 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [F.], seq 3849, ack 6753, win 64056, length 0
21:33:28.347358 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [P.], seq 6753:6817, ack 3849, win 2048, length 64
21:33:28.347400 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [R], seq 2873130533, win 0, length 0
21:33:28.359433 IP 100.103.100.103.6000 > 100.103.255.254.36888: Flags [.], ack 3850, win 2048, length 0
21:33:28.359470 IP 100.103.255.254.36888 > 100.103.100.103.6000: Flags [R], seq 2873130534, win 0, length 0
21:33:41.249417 IP 100.103.255.254.35814 > 100.103.100.103.6000: Flags [S], seq 3695334503, win 64240, options [mss 1460,sackOK,TS val 3268511842 ecr 0,nop,wscale 10], length 0
21:33:41.264258 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [S.], seq 3804544561, ack 3695334504, win 4096, options [mss 1024], length 0
21:33:41.264291 IP 100.103.255.254.35814 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:33:41.264413 IP 100.103.255.254.35814 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:33:41.319224 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [.], ack 13, win 4084, length 0
21:33:41.351586 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:33:41.351618 IP 100.103.255.254.35814 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:33:41.351717 IP 100.103.255.254.35814 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:33:41.366341 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [.], ack 13, win 4084, length 0
21:33:41.388616 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [.], ack 33, win 4064, length 0
21:33:41.450351 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:33:41.450509 IP 100.103.255.254.35814 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:33:41.466814 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [.], ack 73, win 4024, length 0
21:33:41.503068 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [.], ack 73, win 4024, length 0
21:33:41.542876 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:33:41.543041 IP 100.103.255.254.35814 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:33:41.555087 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [.], ack 93, win 4004, length 0
21:33:41.568284 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [.], ack 93, win 4004, length 0
21:33:41.592862 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:33:41.592972 IP 100.103.255.254.35814 > 100.103.100.103.6000: Flags [P.], seq 93:173, ack 249, win 64056, length 80
21:33:41.605767 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [.], ack 173, win 3924, length 0
21:33:41.619545 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [.], ack 173, win 3924, length 0
21:33:41.673761 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [P.], seq 249:313, ack 173, win 3924, length 64
21:33:41.673935 IP 100.103.255.254.35814 > 100.103.100.103.6000: Flags [P.], seq 173:185, ack 313, win 64056, length 12
21:33:41.685993 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [.], ack 185, win 3912, length 0
21:33:41.698607 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [.], ack 185, win 3912, length 0
21:33:41.724149 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [P.], seq 313:345, ack 185, win 3912, length 32
21:33:41.724247 IP 100.103.255.254.35814 > 100.103.100.103.6000: Flags [F.], seq 185, ack 345, win 64056, length 0
21:33:41.736821 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [.], ack 186, win 3911, length 0
21:33:41.751071 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [F.], seq 345, ack 186, win 3911, length 0
21:33:41.751100 IP 100.103.255.254.35814 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:33:41.755194 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [F.], seq 345, ack 186, win 3911, length 0
21:33:41.755214 IP 100.103.255.254.35814 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:33:41.776468 IP 100.103.100.103.6000 > 100.103.255.254.35814: Flags [R], seq 3804544907, win 4096, length 0
471 packets captured
471 packets received by filter
0 packets dropped by kernel
+626
View File
@@ -0,0 +1,626 @@
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp197s0f3u1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
22:11:58.578800 IP 100.103.100.103.1024 > 100.103.255.255.771: UDP, length 64
22:12:02.877729 ARP, Request who-has 100.103.255.254 tell 100.103.100.103, length 50
22:12:02.877753 ARP, Reply 100.103.255.254 is-at 2c:16:db:a0:e7:b1, length 28
22:12:02.885992 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
22:12:02.886210 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 1
22:12:02.905779 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:12:02.905827 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 2
22:12:02.915621 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
22:12:03.126718 IP 100.103.100.103 > 100.103.255.254: ICMP 100.103.100.103 udp port 1025 unreachable, length 36
22:12:03.126776 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
22:12:03.126998 IP 100.103.255.254.69 > 100.103.100.103.1026: TFTP, length 33, DATA block 1
22:12:03.142908 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:12:03.151573 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:12:03.171130 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
22:12:03.171248 IP 100.103.255.254.69 > 100.103.100.103.1027: TFTP, length 33, DATA block 1
22:12:03.198063 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:12:03.204461 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 2
22:12:08.184812 ARP, Request who-has 100.103.100.103 tell 100.103.255.254, length 28
22:12:08.189494 ARP, Reply 100.103.100.103 is-at 08:00:2b:16:4b:5a, length 50
22:12:18.239480 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [S], seq 1933188989, win 64240, options [mss 1460,sackOK,TS val 3700003551 ecr 0,nop,wscale 10], length 0
22:12:18.258301 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [S.], seq 3799809394, ack 1933188990, win 4096, options [mss 1024], length 0
22:12:18.258347 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
22:12:18.258463 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
22:12:18.313906 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 13, win 4084, length 0
22:12:18.346312 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 1:153, ack 13, win 4084, length 152
22:12:18.346347 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
22:12:18.346412 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
22:12:18.361806 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 13, win 4084, length 0
22:12:18.399371 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 33, win 4064, length 0
22:12:18.485777 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 153:185, ack 33, win 4064, length 32
22:12:18.485860 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
22:12:18.498312 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 73, win 4024, length 0
22:12:18.509736 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 73, win 4024, length 0
22:12:18.538779 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 185:217, ack 73, win 4024, length 32
22:12:18.538850 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
22:12:18.628918 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 93, win 4004, length 0
22:12:18.628981 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 93, win 4004, length 0
22:12:18.629079 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 217:249, ack 93, win 4004, length 32
22:12:18.629157 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 93:113, ack 249, win 64056, length 20
22:12:18.645075 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 113, win 3984, length 0
22:12:18.753132 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 113, win 3984, length 0
22:12:18.753208 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 249:281, ack 113, win 3984, length 32
22:12:18.753277 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 113:133, ack 281, win 64056, length 20
22:12:18.765761 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 133, win 3964, length 0
22:12:18.777424 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 133, win 3964, length 0
22:12:18.798270 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 281:313, ack 133, win 3964, length 32
22:12:18.799112 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 133:157, ack 313, win 64056, length 24
22:12:18.812236 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 157, win 3940, length 0
22:12:18.823701 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 157, win 3940, length 0
22:12:18.848309 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 313:345, ack 157, win 3940, length 32
22:12:18.848640 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 157:181, ack 345, win 64056, length 24
22:12:18.860824 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 181, win 3916, length 0
22:12:18.874131 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 181, win 3916, length 0
22:12:18.900131 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 345:377, ack 181, win 3916, length 32
22:12:18.908012 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 181:301, ack 377, win 64056, length 120
22:12:18.921393 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 301, win 3796, length 0
22:12:18.933626 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 301, win 3796, length 0
22:12:18.983549 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 377:505, ack 301, win 3796, length 128
22:12:19.023291 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 505:665, ack 301, win 3796, length 160
22:12:19.023304 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [.], ack 665, win 64056, length 0
22:12:19.023592 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 301:677, ack 665, win 64056, length 376
22:12:19.098268 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 301, win 3796, length 0
22:12:19.118436 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 677, win 3420, length 0
22:12:19.433708 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 22, RRQ "probe-dec.snf" octet
22:12:19.433893 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 1
22:12:19.586760 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:12:19.587004 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 2
22:12:19.606846 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
22:12:19.657009 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 665:729, ack 677, win 3420, length 64
22:12:19.657242 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 677:733, ack 729, win 64056, length 56
22:12:19.679801 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 733, win 3364, length 0
22:12:19.724800 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 733, win 3364, length 0
22:12:19.818997 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], seq 729:1753, ack 733, win 3364, length 1024
22:12:19.825306 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 1753:2777, ack 733, win 3364, length 1024
22:12:19.825333 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [.], ack 2777, win 64056, length 0
22:12:19.839630 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 733, win 3364, length 0
22:12:19.849613 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 2777:3741, ack 733, win 3364, length 964
22:12:19.849832 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 733:917, ack 3741, win 64056, length 184
22:12:19.864060 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 917, win 3180, length 0
22:12:19.878039 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 917, win 3180, length 0
22:12:21.119357 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 3741:3773, ack 917, win 3180, length 32
22:12:21.126456 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 917:961, ack 3773, win 64056, length 44
22:12:21.138533 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 961, win 3136, length 0
22:12:21.149645 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 961, win 3136, length 0
22:12:21.213778 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 3773:3873, ack 961, win 3136, length 100
22:12:21.213898 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 961:1005, ack 3873, win 64056, length 44
22:12:21.227389 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1005, win 3092, length 0
22:12:21.238658 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1005, win 3092, length 0
22:12:21.284202 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 3873:3973, ack 1005, win 3092, length 100
22:12:21.284310 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1005:1049, ack 3973, win 64056, length 44
22:12:21.297460 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1049, win 3048, length 0
22:12:21.309225 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1049, win 3048, length 0
22:12:21.361910 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 3973:4073, ack 1049, win 3048, length 100
22:12:21.361978 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1049:1093, ack 4073, win 64056, length 44
22:12:21.393033 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1093, win 3004, length 0
22:12:21.406806 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1093, win 3004, length 0
22:12:21.466612 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4073:4105, ack 1093, win 3004, length 32
22:12:21.466657 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1093:1113, ack 4105, win 64056, length 20
22:12:21.612285 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1113, win 2984, length 0
22:12:21.623676 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1113, win 2984, length 0
22:12:21.687185 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4105:4137, ack 1113, win 2984, length 32
22:12:21.687312 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1113:1137, ack 4137, win 64056, length 24
22:12:21.699823 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1137, win 2960, length 0
22:12:21.711844 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1137, win 2960, length 0
22:12:21.777395 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4137:4169, ack 1137, win 2960, length 32
22:12:21.777555 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1137:1181, ack 4169, win 64056, length 44
22:12:21.790799 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1181, win 2916, length 0
22:12:21.802424 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1181, win 2916, length 0
22:12:21.865443 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4169:4201, ack 1181, win 2916, length 32
22:12:21.865548 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1181:1201, ack 4201, win 64056, length 20
22:12:22.105762 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1181:1201, ack 4201, win 64056, length 20
22:12:22.110728 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1201, win 2896, length 0
22:12:22.124498 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1201, win 2896, length 0
22:12:22.131995 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1201, win 2896, length 0
22:12:22.195706 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4201:4233, ack 1201, win 2896, length 32
22:12:22.195837 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1201:1225, ack 4233, win 64056, length 24
22:12:22.456571 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1225, win 2872, length 0
22:12:22.467963 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1225, win 2872, length 0
22:12:22.529303 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4233:4265, ack 1225, win 2872, length 32
22:12:22.529475 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1225:1269, ack 4265, win 64056, length 44
22:12:22.544658 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1269, win 2828, length 0
22:12:22.554928 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1269, win 2828, length 0
22:12:22.620846 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4265:4297, ack 1269, win 2828, length 32
22:12:22.620907 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1269:1289, ack 4297, win 64056, length 20
22:12:22.638754 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1289, win 2808, length 0
22:12:22.649927 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1289, win 2808, length 0
22:12:22.712106 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4297:4329, ack 1289, win 2808, length 32
22:12:22.712210 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1289:1313, ack 4329, win 64056, length 24
22:12:22.725124 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1313, win 2784, length 0
22:12:22.736496 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1313, win 2784, length 0
22:12:24.370903 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4329:4361, ack 1313, win 2784, length 32
22:12:24.370979 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1313:1357, ack 4361, win 64056, length 44
22:12:24.547401 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1357, win 2740, length 0
22:12:24.547435 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1357, win 2740, length 0
22:12:24.555261 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4361:4393, ack 1357, win 2740, length 32
22:12:24.555391 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1357:1377, ack 4393, win 64056, length 20
22:12:24.587255 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1377, win 2720, length 0
22:12:24.587307 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1377, win 2720, length 0
22:12:24.655058 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4393:4425, ack 1377, win 2720, length 32
22:12:24.655179 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1377:1401, ack 4425, win 64056, length 24
22:12:24.667088 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1401, win 2696, length 0
22:12:24.679757 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1401, win 2696, length 0
22:12:24.745788 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4425:4457, ack 1401, win 2696, length 32
22:12:24.746007 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1401:1445, ack 4457, win 64056, length 44
22:12:24.757341 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1445, win 2652, length 0
22:12:24.769766 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1445, win 2652, length 0
22:12:24.833960 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4457:4489, ack 1445, win 2652, length 32
22:12:24.834023 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1445:1461, ack 4489, win 64056, length 16
22:12:25.090721 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1461, win 2636, length 0
22:12:25.090791 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1461, win 2636, length 0
22:12:25.090889 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4489:4521, ack 1461, win 2636, length 32
22:12:25.090943 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1461:1481, ack 4521, win 64056, length 20
22:12:25.106025 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1481, win 2616, length 0
22:12:25.271934 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1481, win 2616, length 0
22:12:25.272010 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4521:4553, ack 1481, win 2616, length 32
22:12:25.272097 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1481:1525, ack 4553, win 64056, length 44
22:12:25.285543 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1525, win 2572, length 0
22:12:25.298025 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1525, win 2572, length 0
22:12:25.357218 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4553:4585, ack 1525, win 2572, length 32
22:12:25.357291 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1525:1545, ack 4585, win 64056, length 20
22:12:25.378589 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1545, win 2552, length 0
22:12:25.390313 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1545, win 2552, length 0
22:12:25.453476 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4585:4617, ack 1545, win 2552, length 32
22:12:25.453612 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1545:1569, ack 4617, win 64056, length 24
22:12:25.474587 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1569, win 2528, length 0
22:12:25.484954 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1569, win 2528, length 0
22:12:25.547898 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4617:4649, ack 1569, win 2528, length 32
22:12:25.548034 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1569:1613, ack 4649, win 64056, length 44
22:12:25.559883 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1613, win 2484, length 0
22:12:25.573244 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1613, win 2484, length 0
22:12:25.636391 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4649:4681, ack 1613, win 2484, length 32
22:12:25.636557 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1613:1633, ack 4681, win 64056, length 20
22:12:25.648592 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1633, win 2464, length 0
22:12:25.661041 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1633, win 2464, length 0
22:12:25.728754 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4681:4713, ack 1633, win 2464, length 32
22:12:25.728863 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1633:1657, ack 4713, win 64056, length 24
22:12:25.958742 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1657, win 2440, length 0
22:12:25.958984 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4713:4745, ack 1657, win 2440, length 32
22:12:25.959047 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1657:1705, ack 4745, win 64056, length 48
22:12:26.079386 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1705, win 2392, length 0
22:12:26.079449 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1705, win 2392, length 0
22:12:26.079534 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4745:4777, ack 1705, win 2392, length 32
22:12:26.079656 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1705:1725, ack 4777, win 64056, length 20
22:12:26.097174 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1725, win 2372, length 0
22:12:26.111138 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1725, win 2372, length 0
22:12:26.167302 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4777:4809, ack 1725, win 2372, length 32
22:12:26.167378 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1725:1749, ack 4809, win 64056, length 24
22:12:26.337937 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1749, win 2348, length 0
22:12:26.339441 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4809:4841, ack 1749, win 2348, length 32
22:12:26.339504 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1749:1797, ack 4841, win 64056, length 48
22:12:26.470296 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1797, win 2300, length 0
22:12:26.470353 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1797, win 2300, length 0
22:12:26.470442 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4841:4873, ack 1797, win 2300, length 32
22:12:26.470538 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1797:1817, ack 4873, win 64056, length 20
22:12:26.485511 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1817, win 2280, length 0
22:12:26.496126 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1817, win 2280, length 0
22:12:26.556564 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4873:4905, ack 1817, win 2280, length 32
22:12:26.556703 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1817:1841, ack 4905, win 64056, length 24
22:12:26.569025 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1841, win 2256, length 0
22:12:26.581594 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1841, win 2256, length 0
22:12:26.645035 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4905:4937, ack 1841, win 2256, length 32
22:12:26.645094 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1841:1889, ack 4937, win 64056, length 48
22:12:26.743791 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1889, win 2208, length 0
22:12:26.752508 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1889, win 2208, length 0
22:12:26.815276 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4937:4969, ack 1889, win 2208, length 32
22:12:26.815322 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1889:1909, ack 4969, win 64056, length 20
22:12:27.023782 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1909, win 2188, length 0
22:12:27.065866 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1909, win 2188, length 0
22:12:27.097101 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 4969:5001, ack 1909, win 2188, length 32
22:12:27.097165 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1909:1933, ack 5001, win 64056, length 24
22:12:27.110953 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1933, win 2164, length 0
22:12:27.382535 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 5001:5033, ack 1933, win 2164, length 32
22:12:27.382624 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1933:1985, ack 5033, win 64056, length 52
22:12:27.394833 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1985, win 2112, length 0
22:12:27.406417 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 1985, win 2112, length 0
22:12:27.465389 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 5033:5065, ack 1985, win 2112, length 32
22:12:27.465485 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 1985:2013, ack 5065, win 64056, length 28
22:12:27.477662 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 2013, win 2084, length 0
22:12:27.490138 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 2013, win 2084, length 0
22:12:28.435830 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 5065:5097, ack 2013, win 2084, length 32
22:12:28.435937 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 2013:2041, ack 5097, win 64056, length 28
22:12:28.448436 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 2041, win 2056, length 0
22:12:28.459825 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 2041, win 2056, length 0
22:12:28.522390 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 5097:5129, ack 2041, win 2056, length 32
22:12:28.522433 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 2041:2093, ack 5129, win 64056, length 52
22:12:28.540106 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 2093, win 2004, length 0
22:12:28.604985 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 5129:5161, ack 2093, win 2048, length 32
22:12:28.605039 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 2093:2117, ack 5161, win 64056, length 24
22:12:28.684623 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 5161:5193, ack 2117, win 2048, length 32
22:12:28.684725 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 2117:2145, ack 5193, win 64056, length 28
22:12:28.771452 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 5193:5225, ack 2145, win 2048, length 32
22:12:28.771526 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 2145:2193, ack 5225, win 64056, length 48
22:12:29.080792 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 2145:2193, ack 5225, win 64056, length 48
22:12:29.125329 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 2193, win 2048, length 0
22:12:30.061967 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 5225:5257, ack 2193, win 2048, length 32
22:12:30.062089 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 2193:2217, ack 5257, win 64056, length 24
22:12:30.149723 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 5257:5289, ack 2217, win 2048, length 32
22:12:30.149873 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [P.], seq 2217:2245, ack 5289, win 64056, length 28
22:12:30.198563 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 2245, win 2048, length 0
22:12:30.228822 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [F.], seq 2245, ack 5289, win 64056, length 0
22:12:30.234802 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [P.], seq 5289:5321, ack 2245, win 2048, length 32
22:12:30.234867 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [R], seq 1933191234, win 0, length 0
22:12:30.246983 IP 100.103.100.103.6000 > 100.103.255.254.40436: Flags [.], ack 2246, win 2048, length 0
22:12:30.247010 IP 100.103.255.254.40436 > 100.103.100.103.6000: Flags [R], seq 1933191235, win 0, length 0
22:17:57.942299 IP 100.103.100.103.1024 > 100.103.255.255.771: UDP, length 64
22:18:02.154804 ARP, Request who-has 100.103.255.254 tell 100.103.100.103, length 50
22:18:02.154825 ARP, Reply 100.103.255.254 is-at 2c:16:db:a0:e7:b1, length 28
22:18:02.163391 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
22:18:02.163628 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 1
22:18:02.185341 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:18:02.185522 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 2
22:18:02.202847 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
22:18:02.216645 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
22:18:02.216735 IP 100.103.255.254.69 > 100.103.100.103.1026: TFTP, length 34, DATA block 1
22:18:02.234749 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:18:02.242746 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:18:02.260637 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
22:18:02.260759 IP 100.103.255.254.69 > 100.103.100.103.1027: TFTP, length 34, DATA block 1
22:18:02.277826 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:18:02.285488 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 2
22:18:07.609797 ARP, Request who-has 100.103.100.103 tell 100.103.255.254, length 28
22:18:07.614476 ARP, Reply 100.103.100.103 is-at 08:00:2b:16:4b:5a, length 50
22:18:13.568706 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [S], seq 1493987220, win 64240, options [mss 1460,sackOK,TS val 627362851 ecr 0,nop,wscale 10], length 0
22:18:13.588122 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [S.], seq 3799489122, ack 1493987221, win 4096, options [mss 1024], length 0
22:18:13.588147 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
22:18:13.588228 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
22:18:13.642957 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 13, win 4084, length 0
22:18:13.674451 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 1:153, ack 13, win 4084, length 152
22:18:13.674472 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
22:18:13.674614 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
22:18:13.691711 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 13, win 4084, length 0
22:18:13.712171 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 33, win 4064, length 0
22:18:13.727664 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 33, win 4064, length 0
22:18:13.797698 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 153:185, ack 33, win 4064, length 32
22:18:13.797829 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
22:18:13.827640 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 73, win 4024, length 0
22:18:13.849816 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 73, win 4024, length 0
22:18:13.876836 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 185:217, ack 73, win 4024, length 32
22:18:13.876966 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
22:18:13.889952 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 93, win 4004, length 0
22:18:13.902351 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 93, win 4004, length 0
22:18:13.926821 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 217:249, ack 93, win 4004, length 32
22:18:13.926879 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 93:113, ack 249, win 64056, length 20
22:18:13.939195 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 113, win 3984, length 0
22:18:13.951405 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 113, win 3984, length 0
22:18:13.974216 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 249:281, ack 113, win 3984, length 32
22:18:13.974487 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 113:133, ack 281, win 64056, length 20
22:18:13.986313 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 133, win 3964, length 0
22:18:13.998708 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 133, win 3964, length 0
22:18:14.024166 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 281:313, ack 133, win 3964, length 32
22:18:14.025622 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 133:157, ack 313, win 64056, length 24
22:18:14.037292 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 157, win 3940, length 0
22:18:14.049973 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 157, win 3940, length 0
22:18:14.074813 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 313:345, ack 157, win 3940, length 32
22:18:14.075317 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 157:181, ack 345, win 64056, length 24
22:18:14.086803 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 181, win 3916, length 0
22:18:14.099282 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 181, win 3916, length 0
22:18:14.124422 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 345:377, ack 181, win 3916, length 32
22:18:14.125659 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 181:301, ack 377, win 64056, length 120
22:18:14.138308 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 301, win 3796, length 0
22:18:14.150133 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 301, win 3796, length 0
22:18:14.215019 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 377:569, ack 301, win 3796, length 192
22:18:14.245009 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 569:665, ack 301, win 3796, length 96
22:18:14.245023 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 665, win 64056, length 0
22:18:14.245351 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 301:677, ack 665, win 64056, length 376
22:18:14.258662 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 301, win 3796, length 0
22:18:14.279669 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 677, win 3420, length 0
22:18:14.582661 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 23, RRQ "probe-dec2.snf" octet
22:18:14.582963 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 100, DATA block 1
22:18:14.601568 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:18:14.612429 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:18:14.647737 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 665:729, ack 677, win 3420, length 64
22:18:14.647915 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 677:733, ack 729, win 64056, length 56
22:18:14.668599 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 733, win 3364, length 0
22:18:14.739087 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 733, win 3364, length 0
22:18:14.814878 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], seq 729:1753, ack 733, win 3364, length 1024
22:18:14.821181 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 1753:2777, ack 733, win 3364, length 1024
22:18:14.821199 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 2777, win 64056, length 0
22:18:14.835858 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 733, win 3364, length 0
22:18:14.846258 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 2777:3741, ack 733, win 3364, length 964
22:18:14.846458 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 733:917, ack 3741, win 64056, length 184
22:18:14.858821 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 917, win 3180, length 0
22:18:14.874041 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 917, win 3180, length 0
22:18:14.917433 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 3741:3773, ack 917, win 3180, length 32
22:18:14.924176 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 917:961, ack 3773, win 64056, length 44
22:18:14.939613 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 961, win 3136, length 0
22:18:14.949984 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 961, win 3136, length 0
22:18:14.996224 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 3773:3873, ack 961, win 3136, length 100
22:18:14.996294 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 961:1005, ack 3873, win 64056, length 44
22:18:15.008870 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1005, win 3092, length 0
22:18:15.021295 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1005, win 3092, length 0
22:18:15.073970 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 3873:3973, ack 1005, win 3092, length 100
22:18:15.074073 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1005:1049, ack 3973, win 64056, length 44
22:18:15.087034 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1049, win 3048, length 0
22:18:15.098524 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1049, win 3048, length 0
22:18:15.148108 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 3973:4073, ack 1049, win 3048, length 100
22:18:15.148188 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1049:1093, ack 4073, win 64056, length 44
22:18:15.160474 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1093, win 3004, length 0
22:18:15.172852 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1093, win 3004, length 0
22:18:15.236280 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4073:4105, ack 1093, win 3004, length 32
22:18:15.236348 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1093:1113, ack 4105, win 64056, length 20
22:18:15.377911 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1113, win 2984, length 0
22:18:15.377943 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1113, win 2984, length 0
22:18:15.378035 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4105:4137, ack 1113, win 2984, length 32
22:18:15.378097 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1113:1137, ack 4137, win 64056, length 24
22:18:15.393934 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1137, win 2960, length 0
22:18:15.405463 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1137, win 2960, length 0
22:18:15.469138 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4137:4169, ack 1137, win 2960, length 32
22:18:15.469282 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1137:1181, ack 4169, win 64056, length 44
22:18:15.488884 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1181, win 2916, length 0
22:18:15.499898 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1181, win 2916, length 0
22:18:15.560019 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4169:4201, ack 1181, win 2916, length 32
22:18:15.560082 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1181:1201, ack 4201, win 64056, length 20
22:18:15.582085 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1201, win 2896, length 0
22:18:15.753783 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1201, win 2896, length 0
22:18:15.753847 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4201:4233, ack 1201, win 2896, length 32
22:18:15.753981 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1201:1225, ack 4233, win 64056, length 24
22:18:15.766461 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1225, win 2872, length 0
22:18:15.777850 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1225, win 2872, length 0
22:18:15.841126 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4233:4265, ack 1225, win 2872, length 32
22:18:15.841292 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1225:1269, ack 4265, win 64056, length 44
22:18:15.853915 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1269, win 2828, length 0
22:18:15.870153 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1269, win 2828, length 0
22:18:15.933018 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4265:4297, ack 1269, win 2828, length 32
22:18:15.933078 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1269:1289, ack 4297, win 64056, length 20
22:18:15.945900 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1289, win 2808, length 0
22:18:15.957314 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1289, win 2808, length 0
22:18:16.023291 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4297:4329, ack 1289, win 2808, length 32
22:18:16.023437 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1289:1313, ack 4329, win 64056, length 24
22:18:16.036318 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1313, win 2784, length 0
22:18:16.048386 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1313, win 2784, length 0
22:18:16.114190 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4329:4361, ack 1313, win 2784, length 32
22:18:16.114313 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1313:1357, ack 4361, win 64056, length 44
22:18:16.126256 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1357, win 2740, length 0
22:18:16.138771 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1357, win 2740, length 0
22:18:16.202399 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4361:4393, ack 1357, win 2740, length 32
22:18:16.202553 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1357:1377, ack 4393, win 64056, length 20
22:18:16.215221 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1377, win 2720, length 0
22:18:16.227851 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1377, win 2720, length 0
22:18:16.294333 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4393:4425, ack 1377, win 2720, length 32
22:18:16.294499 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1377:1401, ack 4425, win 64056, length 24
22:18:16.306377 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1401, win 2696, length 0
22:18:16.320057 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1401, win 2696, length 0
22:18:16.384693 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4425:4457, ack 1401, win 2696, length 32
22:18:16.384861 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1401:1445, ack 4457, win 64056, length 44
22:18:16.397763 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1445, win 2652, length 0
22:18:16.409239 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1445, win 2652, length 0
22:18:16.472260 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4457:4489, ack 1445, win 2652, length 32
22:18:16.472425 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1445:1461, ack 4489, win 64056, length 16
22:18:16.484214 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1461, win 2636, length 0
22:18:16.496803 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1461, win 2636, length 0
22:18:16.561307 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4489:4521, ack 1461, win 2636, length 32
22:18:16.561424 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1461:1481, ack 4521, win 64056, length 20
22:18:16.573378 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1481, win 2616, length 0
22:18:16.586035 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1481, win 2616, length 0
22:18:16.651617 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4521:4553, ack 1481, win 2616, length 32
22:18:16.651776 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1481:1525, ack 4553, win 64056, length 44
22:18:16.663563 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1525, win 2572, length 0
22:18:16.674974 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1525, win 2572, length 0
22:18:16.741318 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4553:4585, ack 1525, win 2572, length 32
22:18:16.741492 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1525:1545, ack 4585, win 64056, length 20
22:18:16.755057 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1545, win 2552, length 0
22:18:16.766582 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1545, win 2552, length 0
22:18:16.832298 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4585:4617, ack 1545, win 2552, length 32
22:18:16.832422 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1545:1569, ack 4617, win 64056, length 24
22:18:16.844106 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1569, win 2528, length 0
22:18:16.857233 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1569, win 2528, length 0
22:18:16.922764 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4617:4649, ack 1569, win 2528, length 32
22:18:16.922821 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1569:1613, ack 4649, win 64056, length 44
22:18:16.934981 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1613, win 2484, length 0
22:18:16.947456 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1613, win 2484, length 0
22:18:17.010808 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4649:4681, ack 1613, win 2484, length 32
22:18:17.010945 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1613:1633, ack 4681, win 64056, length 20
22:18:17.022867 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1633, win 2464, length 0
22:18:17.037316 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1633, win 2464, length 0
22:18:17.102191 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4681:4713, ack 1633, win 2464, length 32
22:18:17.102347 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1633:1657, ack 4713, win 64056, length 24
22:18:17.115263 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1657, win 2440, length 0
22:18:17.126704 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1657, win 2440, length 0
22:18:17.193457 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4713:4745, ack 1657, win 2440, length 32
22:18:17.193570 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1657:1705, ack 4745, win 64056, length 48
22:18:17.205914 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1705, win 2392, length 0
22:18:17.218150 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1705, win 2392, length 0
22:18:17.281124 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4745:4777, ack 1705, win 2392, length 32
22:18:17.281170 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1705:1725, ack 4777, win 64056, length 20
22:18:17.293351 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1725, win 2372, length 0
22:18:17.305801 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1725, win 2372, length 0
22:18:17.369747 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4777:4809, ack 1725, win 2372, length 32
22:18:17.369817 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1725:1749, ack 4809, win 64056, length 24
22:18:17.381496 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1749, win 2348, length 0
22:18:17.395734 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1749, win 2348, length 0
22:18:17.458394 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4809:4841, ack 1749, win 2348, length 32
22:18:17.458531 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1749:1797, ack 4841, win 64056, length 48
22:18:17.471973 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1797, win 2300, length 0
22:18:17.483426 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1797, win 2300, length 0
22:18:17.549533 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4841:4873, ack 1797, win 2300, length 32
22:18:17.549662 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1797:1817, ack 4873, win 64056, length 20
22:18:17.562061 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1817, win 2280, length 0
22:18:17.574253 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1817, win 2280, length 0
22:18:17.638130 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4873:4905, ack 1817, win 2280, length 32
22:18:17.638368 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1817:1841, ack 4905, win 64056, length 24
22:18:17.650072 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1841, win 2256, length 0
22:18:17.662775 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1841, win 2256, length 0
22:18:17.725832 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4905:4937, ack 1841, win 2256, length 32
22:18:17.725971 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1841:1889, ack 4937, win 64056, length 48
22:18:17.738470 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1889, win 2208, length 0
22:18:17.751587 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1889, win 2208, length 0
22:18:17.815094 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4937:4969, ack 1889, win 2208, length 32
22:18:17.815221 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1889:1909, ack 4969, win 64056, length 20
22:18:17.827456 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1909, win 2188, length 0
22:18:17.840557 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1909, win 2188, length 0
22:18:17.904321 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 4969:5001, ack 1909, win 2188, length 32
22:18:17.904382 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1909:1933, ack 5001, win 64056, length 24
22:18:17.916299 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1933, win 2164, length 0
22:18:17.928801 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1933, win 2164, length 0
22:18:17.992316 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5001:5033, ack 1933, win 2164, length 32
22:18:17.992419 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1933:1985, ack 5033, win 64056, length 52
22:18:18.004339 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1985, win 2112, length 0
22:18:18.016991 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 1985, win 2112, length 0
22:18:18.080018 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5033:5065, ack 1985, win 2112, length 32
22:18:18.080126 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 1985:2013, ack 5065, win 64056, length 28
22:18:18.092250 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 2013, win 2084, length 0
22:18:18.104698 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 2013, win 2084, length 0
22:18:18.169441 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5065:5097, ack 2013, win 2084, length 32
22:18:18.169511 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2013:2041, ack 5097, win 64056, length 28
22:18:18.182014 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 2041, win 2056, length 0
22:18:18.195254 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 2041, win 2056, length 0
22:18:18.258783 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5097:5129, ack 2041, win 2056, length 32
22:18:18.258901 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2041:2093, ack 5129, win 64056, length 52
22:18:18.271985 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 2093, win 2004, length 0
22:18:18.346159 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5129:5161, ack 2093, win 2048, length 32
22:18:18.346311 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2093:2117, ack 5161, win 64056, length 24
22:18:18.425056 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5161:5193, ack 2117, win 2048, length 32
22:18:18.425175 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2117:2145, ack 5193, win 64056, length 28
22:18:18.504690 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5193:5225, ack 2145, win 2048, length 32
22:18:18.504874 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2145:2193, ack 5225, win 64056, length 48
22:18:18.582941 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5225:5257, ack 2193, win 2048, length 32
22:18:18.583015 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2193:2217, ack 5257, win 64056, length 24
22:18:18.662451 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5257:5289, ack 2217, win 2048, length 32
22:18:18.662513 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2217:2245, ack 5289, win 64056, length 28
22:18:18.741752 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5289:5321, ack 2245, win 2048, length 32
22:18:18.741838 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2245:2297, ack 5321, win 64056, length 52
22:18:18.820072 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5321:5353, ack 2297, win 2048, length 32
22:18:18.820194 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2297:2325, ack 5353, win 64056, length 28
22:18:18.899673 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5353:5385, ack 2325, win 2048, length 32
22:18:18.899725 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2325:2353, ack 5385, win 64056, length 28
22:18:18.922084 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 2353, win 2048, length 0
22:18:18.983683 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5385:5417, ack 2353, win 2048, length 32
22:18:18.983853 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2353:2401, ack 5417, win 64056, length 48
22:18:19.061035 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5417:5449, ack 2401, win 2048, length 32
22:18:19.061146 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2401:2421, ack 5449, win 64056, length 20
22:18:19.145023 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5449:5481, ack 2421, win 2048, length 32
22:18:19.145142 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2421:2445, ack 5481, win 64056, length 24
22:18:19.224767 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5481:5513, ack 2445, win 2048, length 32
22:18:19.224855 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2445:2521, ack 5513, win 64056, length 76
22:18:19.280824 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5513:5893, ack 2521, win 2048, length 380
22:18:19.280899 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2521:2597, ack 5893, win 64056, length 76
22:18:19.336298 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 5893:6273, ack 2597, win 2048, length 380
22:18:19.336475 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2597:2953, ack 6273, win 64056, length 356
22:18:19.451456 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 6273:6305, ack 2953, win 2048, length 32
22:18:19.451692 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 2953:3457, ack 6305, win 64056, length 504
22:18:19.501567 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 3457, win 2048, length 0
22:18:19.547681 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 6305:6529, ack 3457, win 2048, length 224
22:18:19.563994 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 6529:6561, ack 3457, win 2048, length 32
22:18:19.564065 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 6561, win 64056, length 0
22:18:19.564122 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 3457:3553, ack 6561, win 64056, length 96
22:18:19.618294 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 6561:6657, ack 3553, win 2048, length 96
22:18:19.618447 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 3553:3841, ack 6657, win 64056, length 288
22:18:19.683401 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 6657:6689, ack 3841, win 2048, length 32
22:18:19.723748 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 6689, win 64056, length 0
22:18:19.736222 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 6689:6817, ack 3841, win 2048, length 128
22:18:19.736283 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 6817, win 64056, length 0
22:18:19.736362 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 3841:3925, ack 6817, win 64056, length 84
22:18:19.806911 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 6817:6849, ack 3925, win 2048, length 32
22:18:19.847799 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 6849, win 64056, length 0
22:18:19.867153 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 6849:6881, ack 3925, win 2048, length 32
22:18:19.867247 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 6881, win 64056, length 0
22:18:19.965946 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 6881:6913, ack 3925, win 2048, length 32
22:18:19.965999 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 6913, win 64056, length 0
22:18:20.111230 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 6913:6977, ack 3925, win 2048, length 64
22:18:20.111270 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 6977, win 64056, length 0
22:18:20.111342 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 3925:4033, ack 6977, win 64056, length 108
22:18:20.165064 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 6977:7009, ack 4033, win 2048, length 32
22:18:20.205766 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 7009, win 64056, length 0
22:18:20.206439 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 7009:7041, ack 4033, win 2048, length 32
22:18:20.206490 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 7041, win 64056, length 0
22:18:20.276915 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 7041:7073, ack 4033, win 2048, length 32
22:18:20.276976 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 7073, win 64056, length 0
22:18:20.399741 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 7073:7137, ack 4033, win 2048, length 64
22:18:20.399794 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 7137, win 64056, length 0
22:18:20.665162 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 7137:7457, ack 4033, win 2048, length 320
22:18:20.665201 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 7457, win 64056, length 0
22:18:20.665412 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 4033:4097, ack 7457, win 64056, length 64
22:18:20.774375 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 7457:7713, ack 4097, win 2048, length 256
22:18:20.774501 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 4097:4117, ack 7713, win 64056, length 20
22:18:20.827226 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 7713:7777, ack 4117, win 2048, length 64
22:18:20.827284 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 4117:4161, ack 7777, win 64056, length 44
22:18:20.954292 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [P.], seq 7777:8097, ack 4161, win 2048, length 320
22:18:20.954375 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 4161:4225, ack 8097, win 64056, length 64
22:18:21.232761 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [P.], seq 4161:4225, ack 8097, win 64056, length 64
22:18:21.241323 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 4225, win 2048, length 0
22:18:21.251046 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 4225, win 2048, length 0
22:18:25.566882 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [F.], seq 4225, ack 8097, win 64056, length 0
22:18:25.576123 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [.], ack 4226, win 2048, length 0
22:18:25.587776 IP 100.103.100.103.6000 > 100.103.255.254.57752: Flags [F.], seq 8097, ack 4226, win 2048, length 0
22:18:25.587801 IP 100.103.255.254.57752 > 100.103.100.103.6000: Flags [.], ack 8098, win 64056, length 0
22:18:41.855623 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [S], seq 3309790550, win 64240, options [mss 1460,sackOK,TS val 4183901386 ecr 0,nop,wscale 10], length 0
22:18:41.869309 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [S.], seq 3801793122, ack 3309790551, win 4096, options [mss 1024], length 0
22:18:41.869348 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
22:18:41.869533 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
22:18:41.925182 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 13, win 4084, length 0
22:18:41.962244 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [P.], seq 1:153, ack 13, win 4084, length 152
22:18:41.962275 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
22:18:41.962356 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
22:18:41.977198 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 13, win 4084, length 0
22:18:41.998353 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 33, win 4064, length 0
22:18:42.052681 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [P.], seq 153:185, ack 33, win 4064, length 32
22:18:42.052775 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
22:18:42.069140 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 73, win 4024, length 0
22:18:42.093418 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 73, win 4024, length 0
22:18:42.153076 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [P.], seq 185:217, ack 73, win 4024, length 32
22:18:42.153163 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
22:18:42.165337 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 93, win 4004, length 0
22:18:42.178629 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 93, win 4004, length 0
22:18:42.202031 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [P.], seq 217:249, ack 93, win 4004, length 32
22:18:42.202113 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
22:18:42.215098 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 105, win 3992, length 0
22:18:42.226439 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 105, win 3992, length 0
22:18:42.348567 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
22:18:42.354833 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
22:18:42.354852 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
22:18:42.368592 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 105, win 3992, length 0
22:18:42.377982 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [P.], seq 2297:2961, ack 105, win 3992, length 664
22:18:42.378085 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 2961, win 64056, length 12
22:18:42.389692 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 117, win 3980, length 0
22:18:42.401906 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 117, win 3980, length 0
22:18:42.426037 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [P.], seq 2961:2993, ack 117, win 3980, length 32
22:18:42.426103 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [F.], seq 117, ack 2993, win 64056, length 0
22:18:42.429409 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [S], seq 2965101918, win 64240, options [mss 1460,sackOK,TS val 1651705082 ecr 0,nop,wscale 10], length 0
22:18:42.439474 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [.], ack 118, win 3979, length 0
22:18:42.461899 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [S.], seq 3801921122, ack 2965101919, win 4096, options [mss 1024], length 0
22:18:42.461936 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
22:18:42.462130 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
22:18:42.476840 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [F.], seq 2993, ack 118, win 3979, length 0
22:18:42.476866 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [.], ack 2994, win 64056, length 0
22:18:42.480652 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [F.], seq 2993, ack 118, win 3979, length 0
22:18:42.480676 IP 100.103.255.254.45268 > 100.103.100.103.6000: Flags [.], ack 2994, win 64056, length 0
22:18:42.511330 IP 100.103.100.103.6000 > 100.103.255.254.45268: Flags [R], seq 3801796116, win 4096, length 0
22:18:42.736752 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
22:18:42.790899 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 13, win 4084, length 0
22:18:42.791016 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [P.], seq 1:153, ack 13, win 4084, length 152
22:18:42.791050 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
22:18:42.791099 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 13, win 4084, length 0
22:18:42.791219 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
22:18:42.807382 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 13, win 4084, length 0
22:18:42.823524 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 33, win 4064, length 0
22:18:42.844830 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [P.], seq 153:185, ack 33, win 4064, length 32
22:18:42.844951 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
22:18:42.858703 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 73, win 4024, length 0
22:18:42.905132 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 73, win 4024, length 0
22:18:42.905202 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [P.], seq 185:217, ack 73, win 4024, length 32
22:18:42.905268 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
22:18:42.979255 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 93, win 4004, length 0
22:18:42.979303 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 93, win 4004, length 0
22:18:42.979386 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [P.], seq 217:249, ack 93, win 4004, length 32
22:18:42.979480 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [P.], seq 93:125, ack 249, win 64056, length 32
22:18:42.994585 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 125, win 3972, length 0
22:18:43.006336 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 125, win 3972, length 0
22:18:43.053255 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [P.], seq 249:313, ack 125, win 3972, length 64
22:18:43.053549 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [P.], seq 125:137, ack 313, win 64056, length 12
22:18:43.064779 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 137, win 3960, length 0
22:18:43.078130 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 137, win 3960, length 0
22:18:43.104286 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [P.], seq 313:345, ack 137, win 3960, length 32
22:18:43.104420 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [F.], seq 137, ack 345, win 64056, length 0
22:18:43.116476 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [.], ack 138, win 3959, length 0
22:18:43.130296 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [F.], seq 345, ack 138, win 3959, length 0
22:18:43.130335 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
22:18:43.134400 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [F.], seq 345, ack 138, win 3959, length 0
22:18:43.134429 IP 100.103.255.254.45284 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
22:18:43.156158 IP 100.103.100.103.6000 > 100.103.255.254.45284: Flags [R], seq 3801921468, win 4096, length 0
620 packets captured
620 packets received by filter
0 packets dropped by kernel
+841
View File
@@ -0,0 +1,841 @@
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp197s0f3u1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
21:36:50.852389 IP 100.103.100.103.1024 > 100.103.255.255.771: UDP, length 64
21:37:26.927577 ARP, Request who-has 100.103.255.254 tell 100.103.100.103, length 50
21:37:26.927597 ARP, Reply 100.103.255.254 is-at 2c:16:db:a0:e7:b1, length 28
21:37:26.936207 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 12, RRQ "xyz" octet
21:37:26.936466 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 1
21:37:26.957526 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:37:26.957733 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 172, DATA block 2
21:37:26.973596 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:37:26.988275 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 22, RRQ "xyz/fonts.dir" octet
21:37:26.988498 IP 100.103.255.254.69 > 100.103.100.103.1026: TFTP, length 75, DATA block 1
21:37:27.005441 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:37:27.013275 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:37:27.031864 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 22, RRQ "xyz/fonts.dir" octet
21:37:27.032026 IP 100.103.255.254.69 > 100.103.100.103.1027: TFTP, length 75, DATA block 1
21:37:27.049970 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:37:27.057617 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 2
21:37:32.024761 ARP, Request who-has 100.103.100.103 tell 100.103.255.254, length 28
21:37:32.029386 ARP, Reply 100.103.100.103 is-at 08:00:2b:16:4b:5a, length 50
21:37:45.711840 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [S], seq 1934282797, win 64240, options [mss 1460,sackOK,TS val 3760044559 ecr 0,nop,wscale 10], length 0
21:37:45.730651 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [S.], seq 4142298707, ack 1934282798, win 4096, options [mss 1024], length 0
21:37:45.730679 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:37:45.730784 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:37:45.775939 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 13, win 4084, length 0
21:37:45.792186 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 13, win 4084, length 0
21:37:45.825372 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:37:45.825411 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:37:45.825516 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:37:45.840339 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 13, win 4084, length 0
21:37:45.860214 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 33, win 4064, length 0
21:37:45.902176 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:37:45.902250 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:37:45.918977 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 73, win 4024, length 0
21:37:45.956789 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 73, win 4024, length 0
21:37:46.010049 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:37:46.010209 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:37:46.022230 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 93, win 4004, length 0
21:37:46.034674 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 93, win 4004, length 0
21:37:46.061221 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:37:46.061345 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 93:113, ack 249, win 64056, length 20
21:37:46.073068 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 113, win 3984, length 0
21:37:46.085762 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 113, win 3984, length 0
21:37:46.102853 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 249:281, ack 113, win 3984, length 32
21:37:46.102973 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 113:133, ack 281, win 64056, length 20
21:37:46.116591 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 133, win 3964, length 0
21:37:46.128116 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 133, win 3964, length 0
21:37:46.153508 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 281:313, ack 133, win 3964, length 32
21:37:46.154595 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 133:157, ack 313, win 64056, length 24
21:37:46.166136 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 157, win 3940, length 0
21:37:46.179442 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 157, win 3940, length 0
21:37:46.204335 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 313:345, ack 157, win 3940, length 32
21:37:46.204931 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 157:181, ack 345, win 64056, length 24
21:37:46.216436 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 181, win 3916, length 0
21:37:46.228825 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 181, win 3916, length 0
21:37:46.255168 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 345:377, ack 181, win 3916, length 32
21:37:46.256344 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 181:301, ack 377, win 64056, length 120
21:37:46.267990 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 301, win 3796, length 0
21:37:46.281514 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 301, win 3796, length 0
21:37:46.330537 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 377:473, ack 301, win 3796, length 96
21:37:46.370766 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 473, win 64056, length 0
21:37:46.373206 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 473:665, ack 301, win 3796, length 192
21:37:46.373268 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 665, win 64056, length 0
21:37:46.373675 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 301:677, ack 665, win 64056, length 376
21:37:46.387250 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 301, win 3796, length 0
21:37:46.398135 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 301, win 3796, length 0
21:37:46.426015 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 677, win 3420, length 0
21:37:46.751097 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 17, RRQ "evil.pcf" octet
21:37:46.751363 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 1
21:37:46.772160 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:37:46.772373 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 172, DATA block 2
21:37:46.827007 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 2
21:37:46.873117 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 3
21:37:46.905969 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 665:729, ack 677, win 3420, length 64
21:37:46.906088 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 677:733, ack 729, win 64056, length 56
21:37:46.919184 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 733, win 3364, length 0
21:37:46.931604 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 733, win 3364, length 0
21:37:47.008996 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], seq 729:1753, ack 733, win 3364, length 1024
21:37:47.015234 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 1753:2777, ack 733, win 3364, length 1024
21:37:47.015285 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 2777, win 64056, length 0
21:37:47.029596 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 733, win 3364, length 0
21:37:47.039525 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 2777:3741, ack 733, win 3364, length 964
21:37:47.039979 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 733:917, ack 3741, win 64056, length 184
21:37:47.052721 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 917, win 3180, length 0
21:37:47.066671 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 917, win 3180, length 0
21:37:47.115053 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 3741:3773, ack 917, win 3180, length 32
21:37:47.123629 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 917:961, ack 3773, win 64056, length 44
21:37:47.137806 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 961, win 3136, length 0
21:37:47.148531 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 961, win 3136, length 0
21:37:47.195120 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 3773:3873, ack 961, win 3136, length 100
21:37:47.195253 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 961:1005, ack 3873, win 64056, length 44
21:37:47.208249 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1005, win 3092, length 0
21:37:47.220664 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1005, win 3092, length 0
21:37:47.270459 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 3873:3973, ack 1005, win 3092, length 100
21:37:47.270578 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1005:1049, ack 3973, win 64056, length 44
21:37:47.283000 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1049, win 3048, length 0
21:37:47.295359 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1049, win 3048, length 0
21:37:47.344679 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 3973:4073, ack 1049, win 3048, length 100
21:37:47.344817 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1049:1093, ack 4073, win 64056, length 44
21:37:47.357715 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1093, win 3004, length 0
21:37:47.369206 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1093, win 3004, length 0
21:37:47.432967 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4073:4105, ack 1093, win 3004, length 32
21:37:47.433078 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1093:1113, ack 4105, win 64056, length 20
21:37:47.444942 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1113, win 2984, length 0
21:37:47.457546 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1113, win 2984, length 0
21:37:47.524655 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4105:4137, ack 1113, win 2984, length 32
21:37:47.524788 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1113:1137, ack 4137, win 64056, length 24
21:37:47.536721 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1137, win 2960, length 0
21:37:47.549235 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1137, win 2960, length 0
21:37:47.615769 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4137:4169, ack 1137, win 2960, length 32
21:37:47.615862 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1137:1181, ack 4169, win 64056, length 44
21:37:47.628340 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1181, win 2916, length 0
21:37:47.641634 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1181, win 2916, length 0
21:37:47.705362 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4169:4201, ack 1181, win 2916, length 32
21:37:47.705595 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1181:1201, ack 4201, win 64056, length 20
21:37:47.718465 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1201, win 2896, length 0
21:37:47.730688 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1201, win 2896, length 0
21:37:47.796167 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4201:4233, ack 1201, win 2896, length 32
21:37:47.796312 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1201:1225, ack 4233, win 64056, length 24
21:37:47.808563 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1225, win 2872, length 0
21:37:47.820729 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1225, win 2872, length 0
21:37:47.886981 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4233:4265, ack 1225, win 2872, length 32
21:37:47.887161 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1225:1269, ack 4265, win 64056, length 44
21:37:47.899010 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1269, win 2828, length 0
21:37:47.912053 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1269, win 2828, length 0
21:37:47.977029 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4265:4297, ack 1269, win 2828, length 32
21:37:47.977205 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1269:1289, ack 4297, win 64056, length 20
21:37:47.989368 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1289, win 2808, length 0
21:37:48.002395 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1289, win 2808, length 0
21:37:48.068936 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4297:4329, ack 1289, win 2808, length 32
21:37:48.069044 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1289:1313, ack 4329, win 64056, length 24
21:37:48.080648 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1313, win 2784, length 0
21:37:48.093797 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1313, win 2784, length 0
21:37:48.159585 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4329:4361, ack 1313, win 2784, length 32
21:37:48.159683 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1313:1357, ack 4361, win 64056, length 44
21:37:48.172948 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1357, win 2740, length 0
21:37:48.184178 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1357, win 2740, length 0
21:37:48.249087 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4361:4393, ack 1357, win 2740, length 32
21:37:48.249231 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1357:1377, ack 4393, win 64056, length 20
21:37:48.261102 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1377, win 2720, length 0
21:37:48.273814 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1377, win 2720, length 0
21:37:48.340103 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4393:4425, ack 1377, win 2720, length 32
21:37:48.340261 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1377:1401, ack 4425, win 64056, length 24
21:37:48.352296 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1401, win 2696, length 0
21:37:48.364671 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1401, win 2696, length 0
21:37:48.431899 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4425:4457, ack 1401, win 2696, length 32
21:37:48.432052 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1401:1445, ack 4457, win 64056, length 44
21:37:48.444326 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1445, win 2652, length 0
21:37:48.457429 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1445, win 2652, length 0
21:37:48.521039 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4457:4489, ack 1445, win 2652, length 32
21:37:48.521142 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1445:1461, ack 4489, win 64056, length 16
21:37:48.533880 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1461, win 2636, length 0
21:37:48.545301 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1461, win 2636, length 0
21:37:48.610398 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4489:4521, ack 1461, win 2636, length 32
21:37:48.610523 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1461:1481, ack 4521, win 64056, length 20
21:37:48.622801 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1481, win 2616, length 0
21:37:48.634990 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1481, win 2616, length 0
21:37:48.700183 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4521:4553, ack 1481, win 2616, length 32
21:37:48.700321 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1481:1525, ack 4553, win 64056, length 44
21:37:48.712881 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1525, win 2572, length 0
21:37:48.724677 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1525, win 2572, length 0
21:37:48.789305 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4553:4585, ack 1525, win 2572, length 32
21:37:48.789457 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1525:1545, ack 4585, win 64056, length 20
21:37:48.802077 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1545, win 2552, length 0
21:37:48.814715 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1545, win 2552, length 0
21:37:48.881138 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4585:4617, ack 1545, win 2552, length 32
21:37:48.881272 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1545:1569, ack 4617, win 64056, length 24
21:37:48.893059 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1569, win 2528, length 0
21:37:48.904437 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1569, win 2528, length 0
21:37:48.971249 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4617:4649, ack 1569, win 2528, length 32
21:37:48.971427 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1569:1613, ack 4649, win 64056, length 44
21:37:48.984348 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1613, win 2484, length 0
21:37:48.995874 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1613, win 2484, length 0
21:37:49.060884 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4649:4681, ack 1613, win 2484, length 32
21:37:49.061134 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1613:1633, ack 4681, win 64056, length 20
21:37:49.073383 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1633, win 2464, length 0
21:37:49.084753 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1633, win 2464, length 0
21:37:49.151613 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4681:4713, ack 1633, win 2464, length 32
21:37:49.151868 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1633:1657, ack 4713, win 64056, length 24
21:37:49.163785 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1657, win 2440, length 0
21:37:49.176317 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1657, win 2440, length 0
21:37:49.242714 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4713:4745, ack 1657, win 2440, length 32
21:37:49.242858 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1657:1705, ack 4745, win 64056, length 48
21:37:49.255858 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1705, win 2392, length 0
21:37:49.269224 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1705, win 2392, length 0
21:37:49.333584 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4745:4777, ack 1705, win 2392, length 32
21:37:49.333675 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1705:1725, ack 4777, win 64056, length 20
21:37:49.345945 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1725, win 2372, length 0
21:37:49.357378 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1725, win 2372, length 0
21:37:49.421428 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4777:4809, ack 1725, win 2372, length 32
21:37:49.421614 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1725:1749, ack 4809, win 64056, length 24
21:37:49.433932 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1749, win 2348, length 0
21:37:49.446140 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1749, win 2348, length 0
21:37:49.510009 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4809:4841, ack 1749, win 2348, length 32
21:37:49.510142 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1749:1797, ack 4841, win 64056, length 48
21:37:49.522308 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1797, win 2300, length 0
21:37:49.535248 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1797, win 2300, length 0
21:37:49.599999 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4841:4873, ack 1797, win 2300, length 32
21:37:49.600136 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1797:1817, ack 4873, win 64056, length 20
21:37:49.612563 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1817, win 2280, length 0
21:37:49.626335 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1817, win 2280, length 0
21:37:49.689659 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4873:4905, ack 1817, win 2280, length 32
21:37:49.689832 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1817:1841, ack 4905, win 64056, length 24
21:37:49.702701 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1841, win 2256, length 0
21:37:49.714168 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1841, win 2256, length 0
21:37:49.778198 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4905:4937, ack 1841, win 2256, length 32
21:37:49.778369 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1841:1889, ack 4937, win 64056, length 48
21:37:49.789991 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1889, win 2208, length 0
21:37:49.803152 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1889, win 2208, length 0
21:37:49.867411 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4937:4969, ack 1889, win 2208, length 32
21:37:49.867566 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1889:1909, ack 4969, win 64056, length 20
21:37:49.879506 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1909, win 2188, length 0
21:37:49.892061 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1909, win 2188, length 0
21:37:49.956500 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 4969:5001, ack 1909, win 2188, length 32
21:37:49.956663 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1909:1933, ack 5001, win 64056, length 24
21:37:49.968607 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1933, win 2164, length 0
21:37:49.981631 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1933, win 2164, length 0
21:37:50.045403 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5001:5033, ack 1933, win 2164, length 32
21:37:50.045525 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1933:1985, ack 5033, win 64056, length 52
21:37:50.058575 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1985, win 2112, length 0
21:37:50.069963 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 1985, win 2112, length 0
21:37:50.134616 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5033:5065, ack 1985, win 2112, length 32
21:37:50.134750 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 1985:2013, ack 5065, win 64056, length 28
21:37:50.146565 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 2013, win 2084, length 0
21:37:50.159250 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 2013, win 2084, length 0
21:37:50.224275 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5065:5097, ack 2013, win 2084, length 32
21:37:50.224439 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2013:2041, ack 5097, win 64056, length 28
21:37:50.236356 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 2041, win 2056, length 0
21:37:50.248930 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 2041, win 2056, length 0
21:37:50.326419 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5097:5129, ack 2041, win 2056, length 32
21:37:50.326576 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2041:2093, ack 5129, win 64056, length 52
21:37:50.344409 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 2093, win 2004, length 0
21:37:50.454652 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5129:5161, ack 2093, win 2048, length 32
21:37:50.454910 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2093:2117, ack 5161, win 64056, length 24
21:37:50.578986 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5161:5193, ack 2117, win 2048, length 32
21:37:50.579153 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2117:2145, ack 5193, win 64056, length 28
21:37:50.701477 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5193:5225, ack 2145, win 2048, length 32
21:37:50.701670 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2145:2193, ack 5225, win 64056, length 48
21:37:50.818764 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5225:5257, ack 2193, win 2048, length 32
21:37:50.818928 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2193:2217, ack 5257, win 64056, length 24
21:37:50.942360 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5257:5289, ack 2217, win 2048, length 32
21:37:50.942451 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2217:2245, ack 5289, win 64056, length 28
21:37:50.986662 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 2245, win 2048, length 0
21:37:51.057136 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5289:5321, ack 2245, win 2048, length 32
21:37:51.057318 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2245:2297, ack 5321, win 64056, length 52
21:37:51.134655 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5321:5353, ack 2297, win 2048, length 32
21:37:51.134787 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2297:2325, ack 5353, win 64056, length 28
21:37:51.247954 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5353:5385, ack 2325, win 2048, length 32
21:37:51.248059 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2325:2353, ack 5385, win 64056, length 28
21:37:51.372396 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5385:5417, ack 2353, win 2048, length 32
21:37:51.372660 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2353:2401, ack 5417, win 64056, length 48
21:37:51.495451 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5417:5449, ack 2401, win 2048, length 32
21:37:51.495678 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2401:2421, ack 5449, win 64056, length 20
21:37:51.566525 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 2421, win 2048, length 0
21:37:51.622635 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5449:5481, ack 2421, win 2048, length 32
21:37:51.622785 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2421:2445, ack 5481, win 64056, length 24
21:37:51.748257 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5481:5513, ack 2445, win 2048, length 32
21:37:51.748405 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2445:2521, ack 5513, win 64056, length 76
21:37:51.831452 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5513:5893, ack 2521, win 2048, length 380
21:37:51.831599 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2521:2597, ack 5893, win 64056, length 76
21:37:51.907089 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 5893:6273, ack 2597, win 2048, length 380
21:37:51.907291 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2597:2953, ack 6273, win 64056, length 356
21:37:52.129735 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 6273:6305, ack 2953, win 2048, length 32
21:37:52.130017 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 2953:3457, ack 6305, win 64056, length 504
21:37:52.145498 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 3457, win 1544, length 0
21:37:52.240959 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 6305:6561, ack 3457, win 2048, length 256
21:37:52.241120 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 3457:3553, ack 6561, win 64056, length 96
21:37:52.289449 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 6561:6657, ack 3553, win 2048, length 96
21:37:52.289683 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 3553:3841, ack 6657, win 64056, length 288
21:37:52.351805 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 6657:6689, ack 3841, win 2048, length 32
21:37:52.392802 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 6689, win 64056, length 0
21:37:52.414877 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 6689:6785, ack 3841, win 2048, length 96
21:37:52.414972 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 6785, win 64056, length 0
21:37:52.439415 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 6785:6817, ack 3841, win 2048, length 32
21:37:52.439484 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 6817, win 64056, length 0
21:37:52.439622 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 3841:3925, ack 6817, win 64056, length 84
21:37:52.498599 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 6817:6849, ack 3925, win 2048, length 32
21:37:52.542775 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 6849, win 64056, length 0
21:37:52.573520 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 6849:6881, ack 3925, win 2048, length 32
21:37:52.573655 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 6881, win 64056, length 0
21:37:52.661697 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 6881:6913, ack 3925, win 2048, length 32
21:37:52.661782 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 6913, win 64056, length 0
21:37:52.807078 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 6913:6945, ack 3925, win 2048, length 32
21:37:52.807189 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 6945, win 64056, length 0
21:37:52.864647 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 6945:6977, ack 3925, win 2048, length 32
21:37:52.864793 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 6977, win 64056, length 0
21:37:52.864896 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 3925:4033, ack 6977, win 64056, length 108
21:37:52.951724 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 6977:7041, ack 4033, win 2048, length 64
21:37:52.992799 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 7041, win 64056, length 0
21:37:53.063969 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 7041:7073, ack 4033, win 2048, length 32
21:37:53.064070 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 7073, win 64056, length 0
21:37:53.149465 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 7073:7137, ack 4033, win 2048, length 64
21:37:53.149592 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 7137, win 64056, length 0
21:37:53.552181 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [P.], seq 7137:7457, ack 4033, win 2048, length 320
21:37:53.552214 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 7457, win 64056, length 0
21:37:53.552342 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [P.], seq 4033:4097, ack 7457, win 64056, length 64
21:37:53.710200 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [F.], seq 4097, ack 7457, win 64056, length 0
21:37:53.721093 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [.], ack 4098, win 2048, length 0
21:37:53.761698 IP 100.103.100.103.6000 > 100.103.255.254.60662: Flags [F.], seq 7457, ack 4098, win 2048, length 0
21:37:53.761735 IP 100.103.255.254.60662 > 100.103.100.103.6000: Flags [.], ack 7458, win 64056, length 0
21:37:59.718546 IP 100.103.255.254 > 100.103.100.103: ICMP echo request, id 24262, seq 1, length 64
21:37:59.726832 IP 100.103.100.103 > 100.103.255.254: ICMP echo reply, id 24262, seq 1, length 64
21:38:00.718989 IP 100.103.255.254 > 100.103.100.103: ICMP echo request, id 24262, seq 2, length 64
21:38:00.726820 IP 100.103.100.103 > 100.103.255.254: ICMP echo reply, id 24262, seq 2, length 64
21:38:00.730988 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [S], seq 30109229, win 64240, options [mss 1460,sackOK,TS val 3551825239 ecr 0,nop,wscale 10], length 0
21:38:00.744676 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [S.], seq 4143578707, ack 30109230, win 4096, options [mss 1024], length 0
21:38:00.744724 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:38:00.744888 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:38:00.800690 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 13, win 4084, length 0
21:38:00.837556 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:38:00.837608 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:38:00.837785 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:38:00.853883 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 13, win 4084, length 0
21:38:00.876562 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 33, win 4064, length 0
21:38:00.947297 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:38:00.947475 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:38:01.008290 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 73, win 4024, length 0
21:38:01.043613 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 73, win 4024, length 0
21:38:01.092991 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:38:01.093164 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:38:01.105062 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 93, win 4004, length 0
21:38:01.117004 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 93, win 4004, length 0
21:38:01.141593 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:38:01.141787 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
21:38:01.154604 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 97, win 4000, length 0
21:38:01.167184 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 97, win 4000, length 0
21:38:01.191881 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [P.], seq 249:301, ack 97, win 4000, length 52
21:38:01.192038 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [P.], seq 97:101, ack 301, win 64056, length 4
21:38:01.204620 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 101, win 3996, length 0
21:38:01.216617 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 101, win 3996, length 0
21:38:01.241951 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [P.], seq 301:333, ack 101, win 3996, length 32
21:38:01.242117 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [P.], seq 101:105, ack 333, win 64056, length 4
21:38:01.253891 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 105, win 3992, length 0
21:38:01.266270 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 105, win 3992, length 0
21:38:01.290846 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [P.], seq 333:365, ack 105, win 3992, length 32
21:38:01.291071 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [P.], seq 105:109, ack 365, win 64056, length 4
21:38:01.303138 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 109, win 3988, length 0
21:38:01.316427 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 109, win 3988, length 0
21:38:01.338900 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [P.], seq 365:421, ack 109, win 3988, length 56
21:38:01.339068 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [P.], seq 109:129, ack 421, win 64056, length 20
21:38:01.351388 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 129, win 3968, length 0
21:38:01.362785 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 129, win 3968, length 0
21:38:01.388238 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [P.], seq 421:453, ack 129, win 3968, length 32
21:38:01.388387 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [P.], seq 129:161, ack 453, win 64056, length 32
21:38:01.401245 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 161, win 3936, length 0
21:38:01.412762 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 161, win 3936, length 0
21:38:01.431111 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [P.], seq 453:485, ack 161, win 3936, length 32
21:38:01.431251 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [P.], seq 161:173, ack 485, win 64056, length 12
21:38:01.443916 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 173, win 3924, length 0
21:38:01.456529 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 173, win 3924, length 0
21:38:01.481102 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [P.], seq 485:517, ack 173, win 3924, length 32
21:38:01.481226 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [P.], seq 173:185, ack 517, win 64056, length 12
21:38:01.494284 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 185, win 3912, length 0
21:38:01.507472 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 185, win 3912, length 0
21:38:01.533816 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [P.], seq 517:549, ack 185, win 3912, length 32
21:38:01.533940 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [F.], seq 185, ack 549, win 64056, length 0
21:38:01.545833 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [.], ack 186, win 3911, length 0
21:38:01.560003 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [F.], seq 549, ack 186, win 3911, length 0
21:38:01.560039 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:38:01.564097 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [F.], seq 549, ack 186, win 3911, length 0
21:38:01.564108 IP 100.103.255.254.56646 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:38:01.585957 IP 100.103.100.103.6000 > 100.103.255.254.56646: Flags [R], seq 4143579257, win 4096, length 0
21:38:40.389939 IP 100.103.255.254.39538 > 100.103.100.103.6000: Flags [S], seq 2340916846, win 64240, options [mss 1460,sackOK,TS val 3502982920 ecr 0,nop,wscale 10], length 0
21:38:40.403679 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [S.], seq 4146714707, ack 2340916847, win 4096, options [mss 1024], length 0
21:38:40.403744 IP 100.103.255.254.39538 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:38:40.403927 IP 100.103.255.254.39538 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:38:40.459202 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [.], ack 13, win 4084, length 0
21:38:40.491525 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:38:40.491589 IP 100.103.255.254.39538 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:38:40.491773 IP 100.103.255.254.39538 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:38:40.507187 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [.], ack 13, win 4084, length 0
21:38:40.530655 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [.], ack 33, win 4064, length 0
21:38:40.621360 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:38:40.621565 IP 100.103.255.254.39538 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:38:40.637850 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [.], ack 73, win 4024, length 0
21:38:40.651438 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [.], ack 73, win 4024, length 0
21:38:40.679312 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:38:40.679459 IP 100.103.255.254.39538 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:38:40.691411 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [.], ack 93, win 4004, length 0
21:38:40.704073 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [.], ack 93, win 4004, length 0
21:38:40.727386 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:38:40.727540 IP 100.103.255.254.39538 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
21:38:40.740507 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [.], ack 97, win 4000, length 0
21:38:40.753029 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [.], ack 97, win 4000, length 0
21:38:40.779812 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [P.], seq 249:305, ack 97, win 4000, length 56
21:38:40.780001 IP 100.103.255.254.39538 > 100.103.100.103.6000: Flags [P.], seq 97:141, ack 305, win 64056, length 44
21:38:40.792915 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [.], ack 141, win 3956, length 0
21:38:40.805135 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [.], ack 141, win 3956, length 0
21:38:40.837905 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [P.], seq 305:369, ack 141, win 3956, length 64
21:38:40.838051 IP 100.103.255.254.39538 > 100.103.100.103.6000: Flags [F.], seq 141, ack 369, win 64056, length 0
21:38:40.850169 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [.], ack 142, win 3955, length 0
21:38:40.863800 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [F.], seq 369, ack 142, win 3955, length 0
21:38:40.863831 IP 100.103.255.254.39538 > 100.103.100.103.6000: Flags [.], ack 370, win 64056, length 0
21:38:40.867863 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [F.], seq 369, ack 142, win 3955, length 0
21:38:40.867883 IP 100.103.255.254.39538 > 100.103.100.103.6000: Flags [.], ack 370, win 64056, length 0
21:38:40.890659 IP 100.103.100.103.6000 > 100.103.255.254.39538: Flags [R], seq 4146715077, win 4096, length 0
21:38:52.379692 IP 100.103.255.254.35714 > 100.103.100.103.6000: Flags [S], seq 1581251526, win 64240, options [mss 1460,sackOK,TS val 1258742312 ecr 0,nop,wscale 10], length 0
21:38:52.393447 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [S.], seq 4147738707, ack 1581251527, win 4096, options [mss 1024], length 0
21:38:52.393482 IP 100.103.255.254.35714 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:38:52.393559 IP 100.103.255.254.35714 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:38:52.449055 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [.], ack 13, win 4084, length 0
21:38:52.482503 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:38:52.482531 IP 100.103.255.254.35714 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:38:52.482670 IP 100.103.255.254.35714 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:38:52.498078 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [.], ack 13, win 4084, length 0
21:38:52.519742 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [.], ack 33, win 4064, length 0
21:38:52.570788 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:38:52.570969 IP 100.103.255.254.35714 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:38:52.601313 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [.], ack 73, win 4024, length 0
21:38:52.641778 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [.], ack 73, win 4024, length 0
21:38:52.670656 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:38:52.670894 IP 100.103.255.254.35714 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:38:52.682711 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [.], ack 93, win 4004, length 0
21:38:52.695394 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [.], ack 93, win 4004, length 0
21:38:52.719909 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:38:52.720069 IP 100.103.255.254.35714 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
21:38:52.733750 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [.], ack 97, win 4000, length 0
21:38:52.745087 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [.], ack 97, win 4000, length 0
21:38:52.771485 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [P.], seq 249:305, ack 97, win 4000, length 56
21:38:52.771639 IP 100.103.255.254.35714 > 100.103.100.103.6000: Flags [P.], seq 97:161, ack 305, win 64056, length 64
21:38:52.785341 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [.], ack 161, win 3936, length 0
21:38:52.796886 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [.], ack 161, win 3936, length 0
21:38:52.828066 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [P.], seq 305:369, ack 161, win 3936, length 64
21:38:52.828231 IP 100.103.255.254.35714 > 100.103.100.103.6000: Flags [F.], seq 161, ack 369, win 64056, length 0
21:38:52.841275 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [.], ack 162, win 3935, length 0
21:38:52.854879 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [F.], seq 369, ack 162, win 3935, length 0
21:38:52.854924 IP 100.103.255.254.35714 > 100.103.100.103.6000: Flags [.], ack 370, win 64056, length 0
21:38:52.858963 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [F.], seq 369, ack 162, win 3935, length 0
21:38:52.858977 IP 100.103.255.254.35714 > 100.103.100.103.6000: Flags [.], ack 370, win 64056, length 0
21:38:52.880804 IP 100.103.100.103.6000 > 100.103.255.254.35714: Flags [R], seq 4147739077, win 4096, length 0
21:38:56.837482 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [S], seq 3985841666, win 64240, options [mss 1460,sackOK,TS val 2183267832 ecr 0,nop,wscale 10], length 0
21:38:56.851680 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [S.], seq 4148186707, ack 3985841667, win 4096, options [mss 1024], length 0
21:38:56.851730 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:38:56.851893 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:38:56.906640 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 13, win 4084, length 0
21:38:56.940071 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:38:56.940111 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:38:56.940241 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:38:56.954462 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 13, win 4084, length 0
21:38:56.981271 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 33, win 4064, length 0
21:38:57.037117 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:38:57.037262 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:38:57.052825 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 73, win 4024, length 0
21:38:57.092144 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 73, win 4024, length 0
21:38:57.136148 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:38:57.136343 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:38:57.147807 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 93, win 4004, length 0
21:38:57.160522 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 93, win 4004, length 0
21:38:57.185216 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:38:57.185391 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
21:38:57.198311 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 97, win 4000, length 0
21:38:57.209729 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 97, win 4000, length 0
21:38:57.235416 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [P.], seq 249:301, ack 97, win 4000, length 52
21:38:57.235558 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [P.], seq 97:101, ack 301, win 64056, length 4
21:38:57.247792 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 101, win 3996, length 0
21:38:57.259957 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 101, win 3996, length 0
21:38:57.284569 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [P.], seq 301:333, ack 101, win 3996, length 32
21:38:57.284714 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [P.], seq 101:105, ack 333, win 64056, length 4
21:38:57.296759 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 105, win 3992, length 0
21:38:57.309660 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 105, win 3992, length 0
21:38:57.334301 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [P.], seq 333:365, ack 105, win 3992, length 32
21:38:57.334460 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [P.], seq 105:109, ack 365, win 64056, length 4
21:38:57.346397 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 109, win 3988, length 0
21:38:57.358869 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 109, win 3988, length 0
21:38:57.386281 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [P.], seq 365:421, ack 109, win 3988, length 56
21:38:57.386513 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [P.], seq 109:129, ack 421, win 64056, length 20
21:38:57.398145 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 129, win 3968, length 0
21:38:57.410803 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 129, win 3968, length 0
21:38:57.434240 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [P.], seq 421:453, ack 129, win 3968, length 32
21:38:57.434460 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [P.], seq 129:161, ack 453, win 64056, length 32
21:38:57.448070 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 161, win 3936, length 0
21:38:57.459540 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 161, win 3936, length 0
21:38:57.484864 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [P.], seq 453:485, ack 161, win 3936, length 32
21:38:57.485121 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [P.], seq 161:173, ack 485, win 64056, length 12
21:38:57.497196 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 173, win 3924, length 0
21:38:57.509902 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 173, win 3924, length 0
21:38:57.534630 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [P.], seq 485:517, ack 173, win 3924, length 32
21:38:57.534823 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [P.], seq 173:185, ack 517, win 64056, length 12
21:38:57.546552 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 185, win 3912, length 0
21:38:57.559230 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 185, win 3912, length 0
21:38:57.586961 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [P.], seq 517:549, ack 185, win 3912, length 32
21:38:57.587120 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [F.], seq 185, ack 549, win 64056, length 0
21:38:57.599061 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [.], ack 186, win 3911, length 0
21:38:57.613407 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [F.], seq 549, ack 186, win 3911, length 0
21:38:57.613439 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:38:57.617509 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [F.], seq 549, ack 186, win 3911, length 0
21:38:57.617526 IP 100.103.255.254.51686 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:38:57.639717 IP 100.103.100.103.6000 > 100.103.255.254.51686: Flags [R], seq 4148187257, win 4096, length 0
21:39:15.630514 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [S], seq 3910915696, win 64240, options [mss 1460,sackOK,TS val 2395342841 ecr 0,nop,wscale 10], length 0
21:39:15.644208 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [S.], seq 4149722707, ack 3910915697, win 4096, options [mss 1024], length 0
21:39:15.644241 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:39:15.644376 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:39:15.700472 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 13, win 4084, length 0
21:39:15.733448 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:39:15.733492 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:39:15.733651 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:39:15.748362 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 13, win 4084, length 0
21:39:15.770654 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 33, win 4064, length 0
21:39:15.866318 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:39:15.866442 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:39:15.879977 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 73, win 4024, length 0
21:39:15.893168 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 73, win 4024, length 0
21:39:15.919781 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:39:15.919856 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:39:15.932316 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 93, win 4004, length 0
21:39:15.945418 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 93, win 4004, length 0
21:39:15.969413 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:39:15.969496 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:39:15.982468 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 105, win 3992, length 0
21:39:15.993979 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 105, win 3992, length 0
21:39:16.115799 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
21:39:16.122026 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
21:39:16.122050 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
21:39:16.136329 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 105, win 3992, length 0
21:39:16.145467 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [P.], seq 2297:3009, ack 105, win 3992, length 712
21:39:16.145582 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 3009, win 64056, length 12
21:39:16.157995 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 117, win 3980, length 0
21:39:16.170767 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 117, win 3980, length 0
21:39:16.194274 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [P.], seq 3009:3041, ack 117, win 3980, length 32
21:39:16.194360 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [F.], seq 117, ack 3041, win 64056, length 0
21:39:16.198954 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [S], seq 2735195086, win 64240, options [mss 1460,sackOK,TS val 4002902120 ecr 0,nop,wscale 10], length 0
21:39:16.207518 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [.], ack 118, win 3979, length 0
21:39:16.227640 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [S.], seq 4149786707, ack 2735195087, win 4096, options [mss 1024], length 0
21:39:16.227687 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:39:16.227890 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:39:16.239580 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:39:16.239612 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:39:16.243760 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:39:16.243771 IP 100.103.255.254.43306 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:39:16.282823 IP 100.103.100.103.6000 > 100.103.255.254.43306: Flags [R], seq 4149725749, win 4096, length 0
21:39:16.325175 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 13, win 4084, length 0
21:39:16.362273 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:39:16.362338 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:39:16.362518 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:39:16.377803 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 13, win 4084, length 0
21:39:16.400187 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 33, win 4064, length 0
21:39:16.470662 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:39:16.470952 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:39:16.487420 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 73, win 4024, length 0
21:39:16.504414 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 73, win 4024, length 0
21:39:16.532668 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:39:16.532905 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:39:16.545074 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 93, win 4004, length 0
21:39:16.557727 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 93, win 4004, length 0
21:39:16.574116 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:39:16.574230 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:39:16.586540 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 105, win 3992, length 0
21:39:16.599836 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 105, win 3992, length 0
21:39:16.722929 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
21:39:16.729331 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
21:39:16.729392 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
21:39:16.744202 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 105, win 3992, length 0
21:39:16.753537 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [P.], seq 2297:3009, ack 105, win 3992, length 712
21:39:16.753707 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 3009, win 64056, length 12
21:39:16.765612 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 117, win 3980, length 0
21:39:16.778183 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 117, win 3980, length 0
21:39:16.796143 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [P.], seq 3009:3041, ack 117, win 3980, length 32
21:39:16.796258 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [F.], seq 117, ack 3041, win 64056, length 0
21:39:16.800666 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [S], seq 3770569867, win 64240, options [mss 1460,sackOK,TS val 4039451462 ecr 0,nop,wscale 10], length 0
21:39:16.810113 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [.], ack 118, win 3979, length 0
21:39:16.825183 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [S.], seq 4149914707, ack 3770569868, win 4096, options [mss 1024], length 0
21:39:16.825223 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:39:16.825397 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:39:16.851527 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:39:16.851560 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:39:16.855755 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:39:16.855775 IP 100.103.255.254.43318 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:39:16.876962 IP 100.103.100.103.6000 > 100.103.255.254.43318: Flags [R], seq 4149789749, win 4096, length 0
21:39:16.925745 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 13, win 4084, length 0
21:39:16.965852 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:39:16.965904 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:39:16.966110 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:39:16.984299 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 13, win 4084, length 0
21:39:17.008136 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 33, win 4064, length 0
21:39:17.064261 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:39:17.064419 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:39:17.089793 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 73, win 4024, length 0
21:39:17.103159 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 73, win 4024, length 0
21:39:17.131596 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:39:17.131784 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:39:17.144248 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 93, win 4004, length 0
21:39:17.156633 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 93, win 4004, length 0
21:39:17.181404 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:39:17.181541 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:39:17.193429 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 105, win 3992, length 0
21:39:17.206880 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 105, win 3992, length 0
21:39:17.327551 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
21:39:17.333841 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
21:39:17.333891 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
21:39:17.348537 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 105, win 3992, length 0
21:39:17.358576 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [P.], seq 2297:3009, ack 105, win 3992, length 712
21:39:17.358930 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 3009, win 64056, length 12
21:39:17.370666 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 117, win 3980, length 0
21:39:17.383301 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 117, win 3980, length 0
21:39:17.406126 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [P.], seq 3009:3041, ack 117, win 3980, length 32
21:39:17.406218 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [F.], seq 117, ack 3041, win 64056, length 0
21:39:17.410656 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [S], seq 2622197384, win 64240, options [mss 1460,sackOK,TS val 2542177701 ecr 0,nop,wscale 10], length 0
21:39:17.419580 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [.], ack 118, win 3979, length 0
21:39:17.439946 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [S.], seq 4150042707, ack 2622197385, win 4096, options [mss 1024], length 0
21:39:17.439992 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:39:17.440155 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:39:17.457381 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:39:17.457404 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:39:17.461439 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:39:17.461449 IP 100.103.255.254.43334 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:39:17.492032 IP 100.103.100.103.6000 > 100.103.255.254.43334: Flags [R], seq 4149917749, win 4096, length 0
21:39:17.538312 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 13, win 4084, length 0
21:39:17.574673 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:39:17.574720 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:39:17.574897 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:39:17.590147 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 13, win 4084, length 0
21:39:17.612855 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 33, win 4064, length 0
21:39:17.690928 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:39:17.691138 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:39:17.703606 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 73, win 4024, length 0
21:39:17.716148 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 73, win 4024, length 0
21:39:17.743374 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:39:17.743535 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:39:17.755836 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 93, win 4004, length 0
21:39:17.769117 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 93, win 4004, length 0
21:39:17.793190 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:39:17.793333 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:39:17.805650 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 105, win 3992, length 0
21:39:17.817048 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 105, win 3992, length 0
21:39:17.940339 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
21:39:17.946596 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
21:39:17.946617 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
21:39:17.961344 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 105, win 3992, length 0
21:39:17.970457 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [P.], seq 2297:3009, ack 105, win 3992, length 712
21:39:17.970674 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 3009, win 64056, length 12
21:39:17.983620 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 117, win 3980, length 0
21:39:17.995169 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 117, win 3980, length 0
21:39:18.018447 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [P.], seq 3009:3041, ack 117, win 3980, length 32
21:39:18.018629 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [F.], seq 117, ack 3041, win 64056, length 0
21:39:18.030689 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [.], ack 118, win 3979, length 0
21:39:18.045165 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:39:18.045193 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:39:18.049289 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [F.], seq 3041, ack 118, win 3979, length 0
21:39:18.049306 IP 100.103.255.254.43348 > 100.103.100.103.6000: Flags [.], ack 3042, win 64056, length 0
21:39:18.070892 IP 100.103.100.103.6000 > 100.103.255.254.43348: Flags [R], seq 4150045749, win 4096, length 0
21:40:41.849608 IP 100.103.100.103.1024 > 100.103.255.255.771: UDP, length 64
21:41:06.588432 ARP, Request who-has 100.103.255.254 tell 100.103.100.103, length 50
21:41:06.588458 ARP, Reply 100.103.255.254 is-at 2c:16:db:a0:e7:b1, length 28
21:41:06.596315 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:41:06.596486 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 1
21:41:06.619167 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:41:06.619316 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 2
21:41:06.637633 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:41:06.651716 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
21:41:06.651839 IP 100.103.255.254.69 > 100.103.100.103.1026: TFTP, length 78, DATA block 1
21:41:06.670000 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:41:06.679182 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:41:06.697621 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
21:41:06.697776 IP 100.103.255.254.69 > 100.103.100.103.1027: TFTP, length 78, DATA block 1
21:41:06.714619 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:41:06.722388 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 2
21:41:11.674002 ARP, Request who-has 100.103.100.103 tell 100.103.255.254, length 28
21:41:11.680183 ARP, Reply 100.103.100.103 is-at 08:00:2b:16:4b:5a, length 50
21:41:19.091177 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [S], seq 2023709663, win 64240, options [mss 1460,sackOK,TS val 3354405142 ecr 0,nop,wscale 10], length 0
21:41:19.110689 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [S.], seq 3857251151, ack 2023709664, win 4096, options [mss 1024], length 0
21:41:19.110716 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:41:19.110806 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:41:19.166706 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 13, win 4084, length 0
21:41:19.199984 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:41:19.200021 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:41:19.200144 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:41:19.214910 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 13, win 4084, length 0
21:41:19.235443 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 33, win 4064, length 0
21:41:19.277345 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:41:19.277421 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:41:19.294174 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 73, win 4024, length 0
21:41:19.346206 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 73, win 4024, length 0
21:41:19.384963 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:41:19.385174 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:41:19.397141 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 93, win 4004, length 0
21:41:19.409593 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 93, win 4004, length 0
21:41:19.435131 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:41:19.435333 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [P.], seq 93:113, ack 249, win 64056, length 20
21:41:19.447046 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 113, win 3984, length 0
21:41:19.459712 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 113, win 3984, length 0
21:41:19.485035 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [P.], seq 249:281, ack 113, win 3984, length 32
21:41:19.485226 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [P.], seq 113:133, ack 281, win 64056, length 20
21:41:19.497778 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 133, win 3964, length 0
21:41:19.509197 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 133, win 3964, length 0
21:41:19.534461 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [P.], seq 281:313, ack 133, win 3964, length 32
21:41:19.536164 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [P.], seq 133:157, ack 313, win 64056, length 24
21:41:19.547613 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 157, win 3940, length 0
21:41:19.560618 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 157, win 3940, length 0
21:41:19.585224 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [P.], seq 313:345, ack 157, win 3940, length 32
21:41:19.585773 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [P.], seq 157:181, ack 345, win 64056, length 24
21:41:19.597852 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 181, win 3916, length 0
21:41:19.610050 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 181, win 3916, length 0
21:41:19.635711 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [P.], seq 345:377, ack 181, win 3916, length 32
21:41:19.636771 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [P.], seq 181:301, ack 377, win 64056, length 120
21:41:19.649099 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 301, win 3796, length 0
21:41:19.662200 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 301, win 3796, length 0
21:41:19.722346 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [P.], seq 377:505, ack 301, win 3796, length 128
21:41:19.760184 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [P.], seq 505:665, ack 301, win 3796, length 160
21:41:19.760234 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [.], ack 665, win 64056, length 0
21:41:19.760609 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [P.], seq 301:725, ack 665, win 64056, length 424
21:41:19.773282 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 301, win 3796, length 0
21:41:19.796255 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 725, win 3372, length 0
21:41:20.116350 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 22, RRQ "evil-real.pcf" octet
21:41:20.116541 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 1
21:41:20.137143 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:41:20.137358 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 2
21:41:20.183803 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 2
21:41:20.184019 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 3
21:41:31.089076 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [F.], seq 725, ack 665, win 64056, length 0
21:41:31.105366 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [.], ack 726, win 3371, length 0
21:41:31.129774 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [F.], seq 665, ack 726, win 3371, length 0
21:41:31.129806 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [.], ack 666, win 64056, length 0
21:41:31.133874 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [F.], seq 665, ack 726, win 3371, length 0
21:41:31.133902 IP 100.103.255.254.50304 > 100.103.100.103.6000: Flags [.], ack 666, win 64056, length 0
21:41:31.191211 IP 100.103.100.103.6000 > 100.103.255.254.50304: Flags [R], seq 3857251817, win 4096, length 0
21:41:35.184173 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 3
21:41:35.738540 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:41:39.096519 IP 100.103.255.254 > 100.103.100.103: ICMP echo request, id 24263, seq 1, length 64
21:41:39.108142 IP 100.103.100.103 > 100.103.255.254: ICMP echo reply, id 24263, seq 1, length 64
21:41:40.097308 IP 100.103.255.254 > 100.103.100.103: ICMP echo request, id 24263, seq 2, length 64
21:41:40.106110 IP 100.103.100.103 > 100.103.255.254: ICMP echo reply, id 24263, seq 2, length 64
21:41:40.110248 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [S], seq 365742348, win 64240, options [mss 1460,sackOK,TS val 2205776862 ecr 0,nop,wscale 10], length 0
21:41:40.123962 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [S.], seq 3858979151, ack 365742349, win 4096, options [mss 1024], length 0
21:41:40.123997 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:41:40.124161 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:41:40.179504 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 13, win 4084, length 0
21:41:40.214357 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:41:40.214398 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:41:40.214475 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:41:40.232405 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 13, win 4084, length 0
21:41:40.281574 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 33, win 4064, length 0
21:41:40.351188 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:41:40.351352 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:41:40.365531 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 73, win 4024, length 0
21:41:40.378674 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 73, win 4024, length 0
21:41:40.406352 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:41:40.406516 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:41:40.418945 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 93, win 4004, length 0
21:41:40.431311 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 93, win 4004, length 0
21:41:40.456124 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:41:40.456384 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
21:41:40.468074 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 97, win 4000, length 0
21:41:40.481376 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 97, win 4000, length 0
21:41:40.506235 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [P.], seq 249:301, ack 97, win 4000, length 52
21:41:40.506447 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [P.], seq 97:101, ack 301, win 64056, length 4
21:41:40.518195 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 101, win 3996, length 0
21:41:40.530845 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 101, win 3996, length 0
21:41:40.555222 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [P.], seq 301:333, ack 101, win 3996, length 32
21:41:40.555382 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [P.], seq 101:105, ack 333, win 64056, length 4
21:41:40.568255 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 105, win 3992, length 0
21:41:40.579713 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 105, win 3992, length 0
21:41:40.604052 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [P.], seq 333:365, ack 105, win 3992, length 32
21:41:40.604291 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [P.], seq 105:109, ack 365, win 64056, length 4
21:41:40.616865 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 109, win 3988, length 0
21:41:40.630033 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 109, win 3988, length 0
21:41:40.656450 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [P.], seq 365:421, ack 109, win 3988, length 56
21:41:40.656674 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [P.], seq 109:129, ack 421, win 64056, length 20
21:41:40.668335 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 129, win 3968, length 0
21:41:40.680806 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 129, win 3968, length 0
21:41:40.705708 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [P.], seq 421:453, ack 129, win 3968, length 32
21:41:40.705921 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [P.], seq 129:161, ack 453, win 64056, length 32
21:41:40.718760 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 161, win 3936, length 0
21:41:40.730207 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 161, win 3936, length 0
21:41:40.756397 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [P.], seq 453:485, ack 161, win 3936, length 32
21:41:40.756539 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [P.], seq 161:173, ack 485, win 64056, length 12
21:41:40.768761 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 173, win 3924, length 0
21:41:40.781715 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 173, win 3924, length 0
21:41:40.806269 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [P.], seq 485:517, ack 173, win 3924, length 32
21:41:40.806456 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [P.], seq 173:185, ack 517, win 64056, length 12
21:41:40.818186 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 185, win 3912, length 0
21:41:40.830598 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 185, win 3912, length 0
21:41:40.857011 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [P.], seq 517:549, ack 185, win 3912, length 32
21:41:40.857229 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [F.], seq 185, ack 549, win 64056, length 0
21:41:40.869928 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [.], ack 186, win 3911, length 0
21:41:40.882520 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [F.], seq 549, ack 186, win 3911, length 0
21:41:40.882555 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:41:40.886577 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [F.], seq 549, ack 186, win 3911, length 0
21:41:40.886606 IP 100.103.255.254.59328 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:41:40.909177 IP 100.103.100.103.6000 > 100.103.255.254.59328: Flags [R], seq 3858979701, win 4096, length 0
21:41:51.656767 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [S], seq 2508516643, win 64240, options [mss 1460,sackOK,TS val 1933895659 ecr 0,nop,wscale 10], length 0
21:41:51.670541 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [S.], seq 3859939151, ack 2508516644, win 4096, options [mss 1024], length 0
21:41:51.670575 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:41:51.670694 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:41:51.727535 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 13, win 4084, length 0
21:41:51.757347 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:41:51.757394 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:41:51.757553 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:41:51.773585 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 13, win 4084, length 0
21:41:51.797426 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 33, win 4064, length 0
21:41:51.859845 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:41:51.860053 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:41:51.876563 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 73, win 4024, length 0
21:41:51.919467 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 73, win 4024, length 0
21:41:51.939310 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:41:51.939382 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:41:51.951512 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 93, win 4004, length 0
21:41:51.963952 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 93, win 4004, length 0
21:41:51.989433 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:41:51.989512 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
21:41:52.001309 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 97, win 4000, length 0
21:41:52.014024 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 97, win 4000, length 0
21:41:52.038323 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [P.], seq 249:301, ack 97, win 4000, length 52
21:41:52.038435 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [P.], seq 97:101, ack 301, win 64056, length 4
21:41:52.050919 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 101, win 3996, length 0
21:41:52.063250 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 101, win 3996, length 0
21:41:52.088330 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [P.], seq 301:333, ack 101, win 3996, length 32
21:41:52.088534 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [P.], seq 101:105, ack 333, win 64056, length 4
21:41:52.101240 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 105, win 3992, length 0
21:41:52.112666 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 105, win 3992, length 0
21:41:52.137916 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [P.], seq 333:365, ack 105, win 3992, length 32
21:41:52.138068 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [P.], seq 105:109, ack 365, win 64056, length 4
21:41:52.149765 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 109, win 3988, length 0
21:41:52.162064 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 109, win 3988, length 0
21:41:52.187566 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [P.], seq 365:421, ack 109, win 3988, length 56
21:41:52.187712 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [P.], seq 109:129, ack 421, win 64056, length 20
21:41:52.200720 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 129, win 3968, length 0
21:41:52.213086 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 129, win 3968, length 0
21:41:52.237826 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [P.], seq 421:453, ack 129, win 3968, length 32
21:41:52.238110 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [P.], seq 129:161, ack 453, win 64056, length 32
21:41:52.250120 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 161, win 3936, length 0
21:41:52.262349 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 161, win 3936, length 0
21:41:52.284353 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [P.], seq 453:485, ack 161, win 3936, length 32
21:41:52.284516 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [P.], seq 161:173, ack 485, win 64056, length 12
21:41:52.296525 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 173, win 3924, length 0
21:41:52.308972 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 173, win 3924, length 0
21:41:52.333664 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [P.], seq 485:517, ack 173, win 3924, length 32
21:41:52.333892 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [P.], seq 173:185, ack 517, win 64056, length 12
21:41:52.345999 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 185, win 3912, length 0
21:41:52.359935 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 185, win 3912, length 0
21:41:52.386308 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [P.], seq 517:549, ack 185, win 3912, length 32
21:41:52.386471 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [F.], seq 185, ack 549, win 64056, length 0
21:41:52.398190 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [.], ack 186, win 3911, length 0
21:41:52.414385 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [F.], seq 549, ack 186, win 3911, length 0
21:41:52.414418 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:41:52.418496 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [F.], seq 549, ack 186, win 3911, length 0
21:41:52.418513 IP 100.103.255.254.52364 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:41:52.439267 IP 100.103.100.103.6000 > 100.103.255.254.52364: Flags [R], seq 3859939701, win 4096, length 0
835 packets captured
835 packets received by filter
0 packets dropped by kernel
+872
View File
@@ -0,0 +1,872 @@
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp197s0f3u1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
21:50:47.746141 IP 100.103.100.103.1024 > 100.103.255.255.771: UDP, length 64
21:51:44.561456 ARP, Request who-has 100.103.255.254 tell 100.103.100.103, length 50
21:51:44.561477 ARP, Reply 100.103.255.254 is-at 2c:16:db:a0:e7:b1, length 28
21:51:44.568861 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:51:44.569087 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 1
21:51:44.591123 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:51:44.591299 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 2
21:51:44.608736 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:51:44.625157 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
21:51:44.625326 IP 100.103.255.254.69 > 100.103.100.103.1026: TFTP, length 34, DATA block 1
21:51:44.641156 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:51:44.650042 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:51:44.667228 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
21:51:44.667389 IP 100.103.255.254.69 > 100.103.100.103.1027: TFTP, length 34, DATA block 1
21:51:44.685542 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:51:44.694372 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 2
21:51:49.624772 ARP, Request who-has 100.103.100.103 tell 100.103.255.254, length 28
21:51:49.632362 ARP, Reply 100.103.100.103 is-at 08:00:2b:16:4b:5a, length 50
21:51:56.687472 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [S], seq 1675414623, win 64240, options [mss 1460,sackOK,TS val 4047453694 ecr 0,nop,wscale 10], length 0
21:51:56.706916 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [S.], seq 3967226462, ack 1675414624, win 4096, options [mss 1024], length 0
21:51:56.706945 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:51:56.707050 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:51:56.763289 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 13, win 4084, length 0
21:51:56.796838 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:51:56.796865 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:51:56.796928 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:51:56.827653 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 13, win 4084, length 0
21:51:56.833884 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 33, win 4064, length 0
21:51:56.930648 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:51:56.930702 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:51:56.944545 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 73, win 4024, length 0
21:51:56.960880 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 73, win 4024, length 0
21:51:56.997229 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:51:56.997348 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:51:57.008876 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 93, win 4004, length 0
21:51:57.021606 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 93, win 4004, length 0
21:51:57.042477 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:51:57.042580 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [P.], seq 93:113, ack 249, win 64056, length 20
21:51:57.054029 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 113, win 3984, length 0
21:51:57.067807 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 113, win 3984, length 0
21:51:57.092645 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [P.], seq 249:281, ack 113, win 3984, length 32
21:51:57.092808 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [P.], seq 113:133, ack 281, win 64056, length 20
21:51:57.112969 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 133, win 3964, length 0
21:51:57.115329 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 133, win 3964, length 0
21:51:57.143215 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [P.], seq 281:313, ack 133, win 3964, length 32
21:51:57.144817 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [P.], seq 133:157, ack 313, win 64056, length 24
21:51:57.155484 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 157, win 3940, length 0
21:51:57.168028 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 157, win 3940, length 0
21:51:57.192766 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [P.], seq 313:345, ack 157, win 3940, length 32
21:51:57.193327 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [P.], seq 157:181, ack 345, win 64056, length 24
21:51:57.206215 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 181, win 3916, length 0
21:51:57.217778 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 181, win 3916, length 0
21:51:57.245367 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [P.], seq 345:377, ack 181, win 3916, length 32
21:51:57.246661 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [P.], seq 181:301, ack 377, win 64056, length 120
21:51:57.265412 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 301, win 3796, length 0
21:51:57.278578 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 301, win 3796, length 0
21:51:57.329477 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [P.], seq 377:505, ack 301, win 3796, length 128
21:51:57.369752 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [.], ack 505, win 64056, length 0
21:51:57.371031 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [P.], seq 505:665, ack 301, win 3796, length 160
21:51:57.371040 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [.], ack 665, win 64056, length 0
21:51:57.371270 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [P.], seq 301:677, ack 665, win 64056, length 376
21:51:57.383333 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 301, win 3796, length 0
21:51:57.395853 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 301, win 3796, length 0
21:51:57.423943 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 677, win 3420, length 0
21:51:57.742515 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 23, RRQ "probe-uniq.pcf" octet
21:51:57.742779 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 1
21:51:57.762046 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:51:57.762213 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 2
21:51:57.798944 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 2
21:51:57.799116 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 3
21:52:08.686418 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [F.], seq 677, ack 665, win 64056, length 0
21:52:08.700328 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [.], ack 678, win 3419, length 0
21:52:08.737920 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [F.], seq 665, ack 678, win 3419, length 0
21:52:08.737940 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [.], ack 666, win 64056, length 0
21:52:08.742098 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [F.], seq 665, ack 678, win 3419, length 0
21:52:08.742104 IP 100.103.255.254.43638 > 100.103.100.103.6000: Flags [.], ack 666, win 64056, length 0
21:52:08.786415 IP 100.103.100.103.6000 > 100.103.255.254.43638: Flags [R], seq 3967227128, win 4096, length 0
21:52:10.513716 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 3
21:52:10.513881 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 4
21:52:10.639947 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 4
21:52:10.640168 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 204, DATA block 5
21:52:10.763649 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 5
21:52:10.819502 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 6
21:52:28.444917 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [S], seq 2047017641, win 64240, options [mss 1460,sackOK,TS val 1007686461 ecr 0,nop,wscale 10], length 0
21:52:28.458733 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [S.], seq 3969850462, ack 2047017642, win 4096, options [mss 1024], length 0
21:52:28.458768 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:52:28.458909 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:52:28.514096 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 13, win 4084, length 0
21:52:28.546251 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:52:28.546275 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:52:28.546416 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:52:28.561345 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 13, win 4084, length 0
21:52:28.583297 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 33, win 4064, length 0
21:52:28.642767 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:52:28.642853 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:52:28.671918 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 73, win 4024, length 0
21:52:28.703767 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 73, win 4024, length 0
21:52:28.733276 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:52:28.733365 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:52:28.744604 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 93, win 4004, length 0
21:52:28.771644 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 93, win 4004, length 0
21:52:28.782947 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:52:28.782995 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:52:28.796129 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 105, win 3992, length 0
21:52:28.808105 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 105, win 3992, length 0
21:52:28.928831 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
21:52:28.935145 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
21:52:28.935158 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
21:52:28.950305 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 105, win 3992, length 0
21:52:28.959988 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [P.], seq 2297:2961, ack 105, win 3992, length 664
21:52:28.960153 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 2961, win 64056, length 12
21:52:28.978453 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 117, win 3980, length 0
21:52:28.985285 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 117, win 3980, length 0
21:52:29.008737 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [P.], seq 2961:2993, ack 117, win 3980, length 32
21:52:29.008787 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [F.], seq 117, ack 2993, win 64056, length 0
21:52:29.012822 IP 100.103.255.254.41692 > 100.103.100.103.6000: Flags [S], seq 2495062325, win 64240, options [mss 1460,sackOK,TS val 322936333 ecr 0,nop,wscale 10], length 0
21:52:29.022484 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [.], ack 118, win 3979, length 0
21:52:29.041708 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [S.], seq 3969914462, ack 2495062326, win 4096, options [mss 1024], length 0
21:52:29.041769 IP 100.103.255.254.41692 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:52:29.041984 IP 100.103.255.254.41692 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:52:29.058359 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [F.], seq 2993, ack 118, win 3979, length 0
21:52:29.058395 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [.], ack 2994, win 64056, length 0
21:52:29.062460 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [F.], seq 2993, ack 118, win 3979, length 0
21:52:29.062489 IP 100.103.255.254.41678 > 100.103.100.103.6000: Flags [.], ack 2994, win 64056, length 0
21:52:29.116880 IP 100.103.100.103.6000 > 100.103.255.254.41678: Flags [R], seq 3969853456, win 4096, length 0
21:52:29.139102 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [.], ack 13, win 4084, length 0
21:52:29.194058 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:52:29.194091 IP 100.103.255.254.41692 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:52:29.194262 IP 100.103.255.254.41692 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:52:29.223314 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [.], ack 13, win 4084, length 0
21:52:29.267389 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [.], ack 33, win 4064, length 0
21:52:29.290000 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:52:29.290063 IP 100.103.255.254.41692 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:52:29.302064 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [.], ack 73, win 4024, length 0
21:52:29.316564 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [.], ack 73, win 4024, length 0
21:52:29.352596 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:52:29.352763 IP 100.103.255.254.41692 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:52:29.364578 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [.], ack 93, win 4004, length 0
21:52:29.375038 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [.], ack 93, win 4004, length 0
21:52:29.397065 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:52:29.397160 IP 100.103.255.254.41692 > 100.103.100.103.6000: Flags [P.], seq 93:125, ack 249, win 64056, length 32
21:52:29.409583 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [.], ack 125, win 3972, length 0
21:52:29.426455 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [.], ack 125, win 3972, length 0
21:52:29.472486 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [P.], seq 249:313, ack 125, win 3972, length 64
21:52:29.472560 IP 100.103.255.254.41692 > 100.103.100.103.6000: Flags [P.], seq 125:137, ack 313, win 64056, length 12
21:52:29.484720 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [.], ack 137, win 3960, length 0
21:52:29.497867 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [.], ack 137, win 3960, length 0
21:52:29.527250 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [P.], seq 313:345, ack 137, win 3960, length 32
21:52:29.527374 IP 100.103.255.254.41692 > 100.103.100.103.6000: Flags [F.], seq 137, ack 345, win 64056, length 0
21:52:29.532922 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [S], seq 3416408860, win 64240, options [mss 1460,sackOK,TS val 3529400635 ecr 0,nop,wscale 10], length 0
21:52:29.546135 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [.], ack 138, win 3959, length 0
21:52:29.564667 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [S.], seq 3970042462, ack 3416408861, win 4096, options [mss 1024], length 0
21:52:29.564683 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:52:29.564779 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:52:29.581215 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [F.], seq 345, ack 138, win 3959, length 0
21:52:29.581231 IP 100.103.255.254.41692 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:52:29.584995 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [F.], seq 345, ack 138, win 3959, length 0
21:52:29.585004 IP 100.103.255.254.41692 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:52:29.614904 IP 100.103.100.103.6000 > 100.103.255.254.41692: Flags [R], seq 3969914808, win 4096, length 0
21:52:29.659555 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 13, win 4084, length 0
21:52:29.690712 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:52:29.690729 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:52:29.690831 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:52:29.707309 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 13, win 4084, length 0
21:52:29.730041 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 33, win 4064, length 0
21:52:29.807398 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:52:29.807545 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:52:29.821976 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 73, win 4024, length 0
21:52:29.832609 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 73, win 4024, length 0
21:52:29.859547 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:52:29.859707 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:52:29.871918 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 93, win 4004, length 0
21:52:29.885416 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 93, win 4004, length 0
21:52:29.930887 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:52:29.930957 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 93:113, ack 249, win 64056, length 20
21:52:29.944700 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 113, win 3984, length 0
21:52:29.954586 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 113, win 3984, length 0
21:52:29.976131 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 249:281, ack 113, win 3984, length 32
21:52:29.976201 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 113:133, ack 281, win 64056, length 20
21:52:29.988310 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 133, win 3964, length 0
21:52:30.000745 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 133, win 3964, length 0
21:52:30.026605 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 281:313, ack 133, win 3964, length 32
21:52:30.027620 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 133:157, ack 313, win 64056, length 24
21:52:30.038659 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 157, win 3940, length 0
21:52:30.052522 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 157, win 3940, length 0
21:52:30.078730 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 313:345, ack 157, win 3940, length 32
21:52:30.078984 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 157:181, ack 345, win 64056, length 24
21:52:30.099085 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 181, win 3916, length 0
21:52:30.111100 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 181, win 3916, length 0
21:52:30.132827 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 345:377, ack 181, win 3916, length 32
21:52:30.133348 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 181:301, ack 377, win 64056, length 120
21:52:30.146081 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 301, win 3796, length 0
21:52:30.159860 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 301, win 3796, length 0
21:52:30.233146 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 377:569, ack 301, win 3796, length 192
21:52:30.253763 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 569:665, ack 301, win 3796, length 96
21:52:30.253794 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 665, win 64056, length 0
21:52:30.254047 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 301:677, ack 665, win 64056, length 376
21:52:30.268230 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 301, win 3796, length 0
21:52:30.287308 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 677, win 3420, length 0
21:52:30.547408 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 665:729, ack 677, win 3420, length 64
21:52:30.547585 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 677:733, ack 729, win 64056, length 56
21:52:30.559382 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 733, win 3364, length 0
21:52:30.588427 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 733, win 3364, length 0
21:52:30.648657 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], seq 729:1753, ack 733, win 3364, length 1024
21:52:30.654969 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 1753:2777, ack 733, win 3364, length 1024
21:52:30.654979 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 2777, win 64056, length 0
21:52:30.670757 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 733, win 3364, length 0
21:52:30.680431 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 2777:3741, ack 733, win 3364, length 964
21:52:30.680657 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 733:917, ack 3741, win 64056, length 184
21:52:30.693985 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 917, win 3180, length 0
21:52:30.708164 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 917, win 3180, length 0
21:52:30.752180 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 3741:3773, ack 917, win 3180, length 32
21:52:30.759485 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 917:961, ack 3773, win 64056, length 44
21:52:30.772600 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 961, win 3136, length 0
21:52:30.784795 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 961, win 3136, length 0
21:52:30.829188 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 3773:3873, ack 961, win 3136, length 100
21:52:30.829302 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 961:1005, ack 3873, win 64056, length 44
21:52:30.841812 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1005, win 3092, length 0
21:52:30.854673 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1005, win 3092, length 0
21:52:30.903805 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 3873:3973, ack 1005, win 3092, length 100
21:52:30.903897 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1005:1049, ack 3973, win 64056, length 44
21:52:30.926491 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1049, win 3048, length 0
21:52:30.948923 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1049, win 3048, length 0
21:52:30.982749 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 3973:4073, ack 1049, win 3048, length 100
21:52:30.982805 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1049:1093, ack 4073, win 64056, length 44
21:52:30.995909 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1093, win 3004, length 0
21:52:31.008312 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1093, win 3004, length 0
21:52:31.074892 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4073:4105, ack 1093, win 3004, length 32
21:52:31.075089 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1093:1113, ack 4105, win 64056, length 20
21:52:31.091623 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1113, win 2984, length 0
21:52:31.105131 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1113, win 2984, length 0
21:52:31.165611 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4105:4137, ack 1113, win 2984, length 32
21:52:31.165663 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1113:1137, ack 4137, win 64056, length 24
21:52:31.177528 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1137, win 2960, length 0
21:52:31.189613 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1137, win 2960, length 0
21:52:31.256538 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4137:4169, ack 1137, win 2960, length 32
21:52:31.256629 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1137:1181, ack 4169, win 64056, length 44
21:52:31.268782 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1181, win 2916, length 0
21:52:31.281240 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1181, win 2916, length 0
21:52:31.345549 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4169:4201, ack 1181, win 2916, length 32
21:52:31.345638 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1181:1201, ack 4201, win 64056, length 20
21:52:31.356749 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1201, win 2896, length 0
21:52:31.384559 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1201, win 2896, length 0
21:52:31.439643 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4201:4233, ack 1201, win 2896, length 32
21:52:31.439795 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1201:1225, ack 4233, win 64056, length 24
21:52:31.457155 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1225, win 2872, length 0
21:52:31.468828 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1225, win 2872, length 0
21:52:31.532345 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4233:4265, ack 1225, win 2872, length 32
21:52:31.532404 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1225:1269, ack 4265, win 64056, length 44
21:52:31.551351 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1269, win 2828, length 0
21:52:31.565499 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1269, win 2828, length 0
21:52:31.622891 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4265:4297, ack 1269, win 2828, length 32
21:52:31.622964 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1269:1289, ack 4297, win 64056, length 20
21:52:31.634741 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1289, win 2808, length 0
21:52:31.656481 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1289, win 2808, length 0
21:52:31.719692 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4297:4329, ack 1289, win 2808, length 32
21:52:31.719775 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1289:1313, ack 4329, win 64056, length 24
21:52:31.735908 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1313, win 2784, length 0
21:52:31.749458 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1313, win 2784, length 0
21:52:31.808264 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4329:4361, ack 1313, win 2784, length 32
21:52:31.808393 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1313:1357, ack 4361, win 64056, length 44
21:52:31.822820 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1357, win 2740, length 0
21:52:31.834230 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1357, win 2740, length 0
21:52:31.897965 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4361:4393, ack 1357, win 2740, length 32
21:52:31.898040 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1357:1377, ack 4393, win 64056, length 20
21:52:31.911464 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1377, win 2720, length 0
21:52:31.922861 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1377, win 2720, length 0
21:52:31.988573 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4393:4425, ack 1377, win 2720, length 32
21:52:31.988643 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1377:1401, ack 4425, win 64056, length 24
21:52:32.000763 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1401, win 2696, length 0
21:52:32.029925 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1401, win 2696, length 0
21:52:32.080189 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4425:4457, ack 1401, win 2696, length 32
21:52:32.080252 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1401:1445, ack 4457, win 64056, length 44
21:52:32.092613 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1445, win 2652, length 0
21:52:32.112531 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1445, win 2652, length 0
21:52:32.176135 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4457:4489, ack 1445, win 2652, length 32
21:52:32.176207 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1445:1461, ack 4489, win 64056, length 16
21:52:32.187194 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1461, win 2636, length 0
21:52:32.198832 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1461, win 2636, length 0
21:52:32.259497 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4489:4521, ack 1461, win 2636, length 32
21:52:32.259590 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1461:1481, ack 4521, win 64056, length 20
21:52:32.271844 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1481, win 2616, length 0
21:52:32.284849 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1481, win 2616, length 0
21:52:32.348457 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4521:4553, ack 1481, win 2616, length 32
21:52:32.348541 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1481:1525, ack 4553, win 64056, length 44
21:52:32.363130 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1525, win 2572, length 0
21:52:32.374181 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1525, win 2572, length 0
21:52:32.438754 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4553:4585, ack 1525, win 2572, length 32
21:52:32.438825 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1525:1545, ack 4585, win 64056, length 20
21:52:32.458361 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1545, win 2552, length 0
21:52:32.471153 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1545, win 2552, length 0
21:52:32.536944 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4585:4617, ack 1545, win 2552, length 32
21:52:32.537010 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1545:1569, ack 4617, win 64056, length 24
21:52:32.554265 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1569, win 2528, length 0
21:52:32.566784 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1569, win 2528, length 0
21:52:32.628268 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4617:4649, ack 1569, win 2528, length 32
21:52:32.628356 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1569:1613, ack 4649, win 64056, length 44
21:52:32.642411 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1613, win 2484, length 0
21:52:32.653478 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1613, win 2484, length 0
21:52:32.716712 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4649:4681, ack 1613, win 2484, length 32
21:52:32.716767 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1613:1633, ack 4681, win 64056, length 20
21:52:32.728618 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1633, win 2464, length 0
21:52:32.741814 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1633, win 2464, length 0
21:52:32.807305 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4681:4713, ack 1633, win 2464, length 32
21:52:32.807376 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1633:1657, ack 4713, win 64056, length 24
21:52:32.821061 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1657, win 2440, length 0
21:52:32.833284 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1657, win 2440, length 0
21:52:32.898036 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4713:4745, ack 1657, win 2440, length 32
21:52:32.898087 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1657:1705, ack 4745, win 64056, length 48
21:52:32.911189 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1705, win 2392, length 0
21:52:32.922623 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1705, win 2392, length 0
21:52:32.989033 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4745:4777, ack 1705, win 2392, length 32
21:52:32.989102 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1705:1725, ack 4777, win 64056, length 20
21:52:33.007528 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1725, win 2372, length 0
21:52:33.018442 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1725, win 2372, length 0
21:52:33.079300 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4777:4809, ack 1725, win 2372, length 32
21:52:33.079367 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1725:1749, ack 4809, win 64056, length 24
21:52:33.100930 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1749, win 2348, length 0
21:52:33.112464 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1749, win 2348, length 0
21:52:33.172517 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4809:4841, ack 1749, win 2348, length 32
21:52:33.172620 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1749:1797, ack 4841, win 64056, length 48
21:52:33.196773 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1797, win 2300, length 0
21:52:33.196841 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1797, win 2300, length 0
21:52:33.261410 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4841:4873, ack 1797, win 2300, length 32
21:52:33.261489 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1797:1817, ack 4873, win 64056, length 20
21:52:33.273247 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1817, win 2280, length 0
21:52:33.286311 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1817, win 2280, length 0
21:52:33.351572 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4873:4905, ack 1817, win 2280, length 32
21:52:33.351637 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1817:1841, ack 4905, win 64056, length 24
21:52:33.362915 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1841, win 2256, length 0
21:52:33.382980 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1841, win 2256, length 0
21:52:33.440131 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4905:4937, ack 1841, win 2256, length 32
21:52:33.440198 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1841:1889, ack 4937, win 64056, length 48
21:52:33.454490 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1889, win 2208, length 0
21:52:33.464906 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1889, win 2208, length 0
21:52:33.528162 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4937:4969, ack 1889, win 2208, length 32
21:52:33.528232 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1889:1909, ack 4969, win 64056, length 20
21:52:33.541000 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1909, win 2188, length 0
21:52:33.553566 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1909, win 2188, length 0
21:52:33.620261 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 4969:5001, ack 1909, win 2188, length 32
21:52:33.620338 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1909:1933, ack 5001, win 64056, length 24
21:52:33.638373 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1933, win 2164, length 0
21:52:33.649598 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1933, win 2164, length 0
21:52:33.709082 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5001:5033, ack 1933, win 2164, length 32
21:52:33.709167 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1933:1985, ack 5033, win 64056, length 52
21:52:33.722176 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1985, win 2112, length 0
21:52:33.734145 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 1985, win 2112, length 0
21:52:33.798166 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5033:5065, ack 1985, win 2112, length 32
21:52:33.798279 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 1985:2013, ack 5065, win 64056, length 28
21:52:33.817419 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 2013, win 2084, length 0
21:52:33.839177 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 2013, win 2084, length 0
21:52:33.889804 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5065:5097, ack 2013, win 2084, length 32
21:52:33.889864 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2013:2041, ack 5097, win 64056, length 28
21:52:33.902007 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 2041, win 2056, length 0
21:52:33.915167 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 2041, win 2056, length 0
21:52:33.979635 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5097:5129, ack 2041, win 2056, length 32
21:52:33.979765 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2041:2093, ack 5129, win 64056, length 52
21:52:33.992144 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 2093, win 2004, length 0
21:52:34.061453 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5129:5161, ack 2093, win 2048, length 32
21:52:34.061537 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2093:2117, ack 5161, win 64056, length 24
21:52:34.124638 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 2117, win 2048, length 0
21:52:34.147879 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5161:5193, ack 2117, win 2048, length 32
21:52:34.147937 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2117:2145, ack 5193, win 64056, length 28
21:52:34.231599 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5193:5225, ack 2145, win 2048, length 32
21:52:34.231708 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2145:2193, ack 5225, win 64056, length 48
21:52:34.310004 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5225:5257, ack 2193, win 2048, length 32
21:52:34.310138 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2193:2217, ack 5257, win 64056, length 24
21:52:34.399157 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5257:5289, ack 2217, win 2048, length 32
21:52:34.399215 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2217:2245, ack 5289, win 64056, length 28
21:52:34.472422 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5289:5321, ack 2245, win 2048, length 32
21:52:34.472495 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2245:2297, ack 5321, win 64056, length 52
21:52:34.550537 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5321:5353, ack 2297, win 2048, length 32
21:52:34.550674 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2297:2325, ack 5353, win 64056, length 28
21:52:34.630748 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5353:5385, ack 2325, win 2048, length 32
21:52:34.630844 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2325:2353, ack 5385, win 64056, length 28
21:52:34.703529 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 2353, win 2048, length 0
21:52:34.718648 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5385:5417, ack 2353, win 2048, length 32
21:52:34.718758 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2353:2401, ack 5417, win 64056, length 48
21:52:34.796277 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5417:5449, ack 2401, win 2048, length 32
21:52:34.796350 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2401:2421, ack 5449, win 64056, length 20
21:52:34.881184 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5449:5481, ack 2421, win 2048, length 32
21:52:34.881349 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2421:2445, ack 5481, win 64056, length 24
21:52:34.962067 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5481:5513, ack 2445, win 2048, length 32
21:52:34.962194 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2445:2521, ack 5513, win 64056, length 76
21:52:35.018980 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5513:5893, ack 2521, win 2048, length 380
21:52:35.019123 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2521:2597, ack 5893, win 64056, length 76
21:52:35.074552 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 5893:6273, ack 2597, win 2048, length 380
21:52:35.074942 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2597:2953, ack 6273, win 64056, length 356
21:52:35.191911 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 6273:6305, ack 2953, win 2048, length 32
21:52:35.192167 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 2953:3461, ack 6305, win 64056, length 508
21:52:35.284716 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 6305:6561, ack 3461, win 2048, length 256
21:52:35.284810 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 3461:3557, ack 6561, win 64056, length 96
21:52:35.333125 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 6561:6657, ack 3557, win 2048, length 96
21:52:35.333225 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 3557:3845, ack 6657, win 64056, length 288
21:52:35.410759 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 6657:6689, ack 3845, win 2048, length 32
21:52:35.441390 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 6689:6817, ack 3845, win 2048, length 128
21:52:35.441407 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 6817, win 64056, length 0
21:52:35.441508 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 3845:3929, ack 6817, win 64056, length 84
21:52:35.501225 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 6817:6849, ack 3929, win 2048, length 32
21:52:35.551763 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 6849, win 64056, length 0
21:52:35.566638 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 6849:6881, ack 3929, win 2048, length 32
21:52:35.566706 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 6881, win 64056, length 0
21:52:35.664370 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 6881:6913, ack 3929, win 2048, length 32
21:52:35.664463 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 6913, win 64056, length 0
21:52:35.808573 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 6913:6977, ack 3929, win 2048, length 64
21:52:35.808619 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 6977, win 64056, length 0
21:52:35.808706 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 3929:4037, ack 6977, win 64056, length 108
21:52:35.861292 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 4037, win 2048, length 0
21:52:35.869896 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 6977:7041, ack 4037, win 2048, length 64
21:52:35.911745 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 7041, win 64056, length 0
21:52:35.951360 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 7041:7073, ack 4037, win 2048, length 32
21:52:35.951420 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 7073, win 64056, length 0
21:52:36.016687 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 7073:7137, ack 4037, win 2048, length 64
21:52:36.016737 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 7137, win 64056, length 0
21:52:36.281825 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 7137:7457, ack 4037, win 2048, length 320
21:52:36.281910 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 7457, win 64056, length 0
21:52:36.282025 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 4037:4101, ack 7457, win 64056, length 64
21:52:36.418519 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 7457:7777, ack 4101, win 2048, length 320
21:52:36.418848 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 4101:4165, ack 7777, win 64056, length 64
21:52:36.468045 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 4165, win 1984, length 0
21:52:36.588338 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [P.], seq 7777:8097, ack 4165, win 2048, length 320
21:52:36.588479 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 4165:4229, ack 8097, win 64056, length 64
21:52:36.865757 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [P.], seq 4165:4229, ack 8097, win 64056, length 64
21:52:36.874010 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 4229, win 2048, length 0
21:52:37.531682 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [F.], seq 4229, ack 8097, win 64056, length 0
21:52:37.536339 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [S], seq 1008414196, win 64240, options [mss 1460,sackOK,TS val 4234973212 ecr 0,nop,wscale 10], length 0
21:52:37.541152 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [.], ack 4230, win 2048, length 0
21:52:37.561090 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [S.], seq 3970746462, ack 1008414197, win 4096, options [mss 1024], length 0
21:52:37.561115 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:52:37.561239 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:52:37.582492 IP 100.103.100.103.6000 > 100.103.255.254.41696: Flags [F.], seq 8097, ack 4230, win 2048, length 0
21:52:37.582506 IP 100.103.255.254.41696 > 100.103.100.103.6000: Flags [.], ack 8098, win 64056, length 0
21:52:37.625556 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 13, win 4084, length 0
21:52:37.727035 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 13, win 4084, length 0
21:52:37.767525 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:52:37.767545 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:52:37.767610 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:52:37.796798 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 13, win 4084, length 0
21:52:37.826323 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 33, win 4064, length 0
21:52:37.954358 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:52:37.954507 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:52:37.970092 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 73, win 4024, length 0
21:52:37.991352 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 73, win 4024, length 0
21:52:38.163231 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:52:38.163307 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:52:38.177058 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 93, win 4004, length 0
21:52:38.196859 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 93, win 4004, length 0
21:52:38.234708 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:52:38.234792 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
21:52:38.249980 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 97, win 4000, length 0
21:52:38.266474 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 97, win 4000, length 0
21:52:38.302301 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [P.], seq 249:301, ack 97, win 4000, length 52
21:52:38.302367 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [P.], seq 97:101, ack 301, win 64056, length 4
21:52:38.349669 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 101, win 3996, length 0
21:52:38.349736 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 101, win 3996, length 0
21:52:38.386246 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [P.], seq 301:333, ack 101, win 3996, length 32
21:52:38.386310 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [P.], seq 101:105, ack 333, win 64056, length 4
21:52:38.406791 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 105, win 3992, length 0
21:52:38.418041 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 105, win 3992, length 0
21:52:38.448928 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [P.], seq 333:365, ack 105, win 3992, length 32
21:52:38.448973 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [P.], seq 105:109, ack 365, win 64056, length 4
21:52:38.464702 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 109, win 3988, length 0
21:52:38.474307 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 109, win 3988, length 0
21:52:38.501376 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [P.], seq 365:421, ack 109, win 3988, length 56
21:52:38.501490 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [P.], seq 109:129, ack 421, win 64056, length 20
21:52:38.522100 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 129, win 3968, length 0
21:52:38.541905 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 129, win 3968, length 0
21:52:38.555014 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [P.], seq 421:453, ack 129, win 3968, length 32
21:52:38.555115 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [P.], seq 129:161, ack 453, win 64056, length 32
21:52:38.567655 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 161, win 3936, length 0
21:52:38.580752 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 161, win 3936, length 0
21:52:38.605235 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [P.], seq 453:485, ack 161, win 3936, length 32
21:52:38.605304 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [P.], seq 161:173, ack 485, win 64056, length 12
21:52:38.620218 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 173, win 3924, length 0
21:52:38.630318 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 173, win 3924, length 0
21:52:38.654802 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [P.], seq 485:517, ack 173, win 3924, length 32
21:52:38.654879 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [P.], seq 173:185, ack 517, win 64056, length 12
21:52:38.669051 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 185, win 3912, length 0
21:52:38.679765 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 185, win 3912, length 0
21:52:38.699675 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [P.], seq 517:549, ack 185, win 3912, length 32
21:52:38.699712 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [F.], seq 185, ack 549, win 64056, length 0
21:52:38.720828 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [.], ack 186, win 3911, length 0
21:52:38.738676 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [F.], seq 549, ack 186, win 3911, length 0
21:52:38.738699 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:52:38.738751 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [F.], seq 549, ack 186, win 3911, length 0
21:52:38.738757 IP 100.103.255.254.51508 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
21:52:38.774848 IP 100.103.100.103.6000 > 100.103.255.254.51508: Flags [R], seq 3970747012, win 4096, length 0
21:54:27.141629 IP 100.103.100.103.1024 > 100.103.255.255.771: UDP, length 64
21:54:31.479392 ARP, Request who-has 100.103.255.254 tell 100.103.100.103, length 50
21:54:31.479406 ARP, Reply 100.103.255.254 is-at 2c:16:db:a0:e7:b1, length 28
21:54:31.490531 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:54:31.491013 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 1
21:54:31.509213 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:54:31.509358 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 2
21:54:31.522227 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:54:31.534967 IP 100.103.100.103 > 100.103.255.254: ICMP 100.103.100.103 udp port 1025 unreachable, length 36
21:54:31.548562 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
21:54:31.548656 IP 100.103.255.254.69 > 100.103.100.103.1026: TFTP, length 40, DATA block 1
21:54:31.563583 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:54:31.573649 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:54:31.589928 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
21:54:31.590118 IP 100.103.255.254.69 > 100.103.100.103.1027: TFTP, length 40, DATA block 1
21:54:31.608450 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:54:31.616403 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 2
21:54:36.536784 ARP, Request who-has 100.103.100.103 tell 100.103.255.254, length 28
21:54:36.552664 ARP, Reply 100.103.100.103 is-at 08:00:2b:16:4b:5a, length 50
21:54:42.323016 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [S], seq 825019978, win 64240, options [mss 1460,sackOK,TS val 722414313 ecr 0,nop,wscale 10], length 0
21:54:42.353588 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [S.], seq 3882850483, ack 825019979, win 4096, options [mss 1024], length 0
21:54:42.353611 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:54:42.353716 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:54:42.408987 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 13, win 4084, length 0
21:54:42.439534 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:54:42.439556 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:54:42.439649 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:54:42.454471 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 13, win 4084, length 0
21:54:42.475678 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 33, win 4064, length 0
21:54:42.543063 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:54:42.543134 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:54:42.585930 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 73, win 4024, length 0
21:54:42.601056 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 73, win 4024, length 0
21:54:42.627518 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:54:42.627595 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:54:42.648395 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 93, win 4004, length 0
21:54:42.667853 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 93, win 4004, length 0
21:54:42.681991 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:54:42.682114 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
21:54:42.702199 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 105, win 3992, length 0
21:54:42.714849 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 105, win 3992, length 0
21:54:42.832865 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
21:54:42.837512 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
21:54:42.837521 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
21:54:42.851687 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 105, win 3992, length 0
21:54:42.861273 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [P.], seq 2297:2961, ack 105, win 3992, length 664
21:54:42.861360 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 2961, win 64056, length 12
21:54:42.876331 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 117, win 3980, length 0
21:54:42.891644 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 117, win 3980, length 0
21:54:42.908950 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [P.], seq 2961:2993, ack 117, win 3980, length 32
21:54:42.908996 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [F.], seq 117, ack 2993, win 64056, length 0
21:54:42.912310 IP 100.103.255.254.39322 > 100.103.100.103.6000: Flags [S], seq 366336985, win 64240, options [mss 1460,sackOK,TS val 3657099931 ecr 0,nop,wscale 10], length 0
21:54:42.923469 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [.], ack 118, win 3979, length 0
21:54:42.943918 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [S.], seq 3882914483, ack 366336986, win 4096, options [mss 1024], length 0
21:54:42.943944 IP 100.103.255.254.39322 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:54:42.944044 IP 100.103.255.254.39322 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:54:42.961399 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [F.], seq 2993, ack 118, win 3979, length 0
21:54:42.961417 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [.], ack 2994, win 64056, length 0
21:54:42.967736 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [F.], seq 2993, ack 118, win 3979, length 0
21:54:42.967748 IP 100.103.255.254.39312 > 100.103.100.103.6000: Flags [.], ack 2994, win 64056, length 0
21:54:43.012023 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 13, win 4084, length 0
21:54:43.024822 IP 100.103.100.103.6000 > 100.103.255.254.39312: Flags [R], seq 3882853477, win 4096, length 0
21:54:43.045151 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 13, win 4084, length 0
21:54:43.082079 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:54:43.082092 IP 100.103.255.254.39322 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:54:43.082237 IP 100.103.255.254.39322 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:54:43.097660 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 13, win 4084, length 0
21:54:43.162218 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 33, win 4064, length 0
21:54:43.199626 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:54:43.199710 IP 100.103.255.254.39322 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:54:43.211725 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 73, win 4024, length 0
21:54:43.225305 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 73, win 4024, length 0
21:54:43.262816 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:54:43.262875 IP 100.103.255.254.39322 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:54:43.273954 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 93, win 4004, length 0
21:54:43.286169 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 93, win 4004, length 0
21:54:43.307495 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:54:43.307591 IP 100.103.255.254.39322 > 100.103.100.103.6000: Flags [P.], seq 93:125, ack 249, win 64056, length 32
21:54:43.319581 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 125, win 3972, length 0
21:54:43.332196 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 125, win 3972, length 0
21:54:43.362251 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 29, RRQ "probe-uniq.DECW$FONT" octet
21:54:43.362431 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 1
21:54:43.386658 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:54:43.386814 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 2
21:54:43.421043 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 2
21:54:43.421258 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 3
21:54:43.546599 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 3
21:54:43.546806 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 4
21:54:43.670795 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 4
21:54:43.670958 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 204, DATA block 5
21:54:43.794930 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 5
21:54:43.845498 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 6
21:54:43.884173 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [P.], seq 249:313, ack 125, win 3972, length 64
21:54:43.884311 IP 100.103.255.254.39322 > 100.103.100.103.6000: Flags [P.], seq 125:137, ack 313, win 64056, length 12
21:54:43.896159 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 137, win 3960, length 0
21:54:43.911955 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 137, win 3960, length 0
21:54:43.946105 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [P.], seq 313:345, ack 137, win 3960, length 32
21:54:43.946200 IP 100.103.255.254.39322 > 100.103.100.103.6000: Flags [F.], seq 137, ack 345, win 64056, length 0
21:54:43.953161 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [S], seq 2914004826, win 64240, options [mss 1460,sackOK,TS val 1188038242 ecr 0,nop,wscale 10], length 0
21:54:43.957976 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [.], ack 138, win 3959, length 0
21:54:43.977314 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [S.], seq 3883106483, ack 2914004827, win 4096, options [mss 1024], length 0
21:54:43.977337 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
21:54:43.977444 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
21:54:43.993571 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [F.], seq 345, ack 138, win 3959, length 0
21:54:43.993592 IP 100.103.255.254.39322 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:54:43.997655 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [F.], seq 345, ack 138, win 3959, length 0
21:54:43.997670 IP 100.103.255.254.39322 > 100.103.100.103.6000: Flags [.], ack 346, win 64056, length 0
21:54:44.028706 IP 100.103.100.103.6000 > 100.103.255.254.39322: Flags [R], seq 3882914829, win 4096, length 0
21:54:44.075171 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 13, win 4084, length 0
21:54:44.114175 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 1:153, ack 13, win 4084, length 152
21:54:44.114190 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
21:54:44.114264 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
21:54:44.130575 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 13, win 4084, length 0
21:54:44.156098 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 33, win 4064, length 0
21:54:44.228719 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 153:185, ack 33, win 4064, length 32
21:54:44.228790 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
21:54:44.240813 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 73, win 4024, length 0
21:54:44.254624 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 73, win 4024, length 0
21:54:44.294187 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 185:217, ack 73, win 4024, length 32
21:54:44.294262 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
21:54:44.305294 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 93, win 4004, length 0
21:54:44.318455 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 93, win 4004, length 0
21:54:44.340196 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 217:249, ack 93, win 4004, length 32
21:54:44.340269 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 93:113, ack 249, win 64056, length 20
21:54:44.359229 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 113, win 3984, length 0
21:54:44.376429 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 113, win 3984, length 0
21:54:44.393817 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 249:281, ack 113, win 3984, length 32
21:54:44.393893 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 113:133, ack 281, win 64056, length 20
21:54:44.406698 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 133, win 3964, length 0
21:54:44.418740 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 133, win 3964, length 0
21:54:44.445565 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 281:313, ack 133, win 3964, length 32
21:54:44.446891 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 133:157, ack 313, win 64056, length 24
21:54:44.457375 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 157, win 3940, length 0
21:54:44.468759 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 157, win 3940, length 0
21:54:44.493646 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 313:345, ack 157, win 3940, length 32
21:54:44.494310 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 157:181, ack 345, win 64056, length 24
21:54:44.509783 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 181, win 3916, length 0
21:54:44.519496 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 181, win 3916, length 0
21:54:44.548817 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 345:377, ack 181, win 3916, length 32
21:54:44.549898 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 181:301, ack 377, win 64056, length 120
21:54:44.566671 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 301, win 3796, length 0
21:54:44.578512 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 301, win 3796, length 0
21:54:44.625561 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 377:473, ack 301, win 3796, length 96
21:54:44.665777 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 473, win 64056, length 0
21:54:44.667505 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 473:665, ack 301, win 3796, length 192
21:54:44.667517 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 665, win 64056, length 0
21:54:44.667762 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 301:677, ack 665, win 64056, length 376
21:54:44.681394 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 301, win 3796, length 0
21:54:44.691973 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 301, win 3796, length 0
21:54:44.721033 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 677, win 3420, length 0
21:54:45.055628 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 665:729, ack 677, win 3420, length 64
21:54:45.055899 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 677:733, ack 729, win 64056, length 56
21:54:45.074846 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 733, win 3364, length 0
21:54:45.087048 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 733, win 3364, length 0
21:54:45.158529 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], seq 729:1753, ack 733, win 3364, length 1024
21:54:45.164853 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 1753:2777, ack 733, win 3364, length 1024
21:54:45.164865 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 2777, win 64056, length 0
21:54:45.181248 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 733, win 3364, length 0
21:54:45.191960 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 2777:3741, ack 733, win 3364, length 964
21:54:45.192329 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 733:917, ack 3741, win 64056, length 184
21:54:45.212557 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 917, win 3180, length 0
21:54:45.221131 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 917, win 3180, length 0
21:54:45.259932 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 3741:3773, ack 917, win 3180, length 32
21:54:45.267134 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 917:961, ack 3773, win 64056, length 44
21:54:45.280306 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 961, win 3136, length 0
21:54:45.291732 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 961, win 3136, length 0
21:54:45.337767 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 3773:3873, ack 961, win 3136, length 100
21:54:45.337894 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 961:1005, ack 3873, win 64056, length 44
21:54:45.349899 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1005, win 3092, length 0
21:54:45.377815 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1005, win 3092, length 0
21:54:45.412413 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 3873:3973, ack 1005, win 3092, length 100
21:54:45.412484 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1005:1049, ack 3973, win 64056, length 44
21:54:45.424207 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1049, win 3048, length 0
21:54:45.438137 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1049, win 3048, length 0
21:54:45.485626 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 3973:4073, ack 1049, win 3048, length 100
21:54:45.485675 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1049:1093, ack 4073, win 64056, length 44
21:54:45.497592 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1093, win 3004, length 0
21:54:45.520354 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1093, win 3004, length 0
21:54:45.574599 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4073:4105, ack 1093, win 3004, length 32
21:54:45.574686 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1093:1113, ack 4105, win 64056, length 20
21:54:45.586560 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1113, win 2984, length 0
21:54:45.597951 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1113, win 2984, length 0
21:54:45.664742 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4105:4137, ack 1113, win 2984, length 32
21:54:45.664821 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1113:1137, ack 4137, win 64056, length 24
21:54:45.678568 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1137, win 2960, length 0
21:54:45.689684 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1137, win 2960, length 0
21:54:45.756476 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4137:4169, ack 1137, win 2960, length 32
21:54:45.756575 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1137:1181, ack 4169, win 64056, length 44
21:54:45.767660 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1181, win 2916, length 0
21:54:45.792095 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1181, win 2916, length 0
21:54:45.842506 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4169:4201, ack 1181, win 2916, length 32
21:54:45.842571 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1181:1201, ack 4201, win 64056, length 20
21:54:45.855202 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1201, win 2896, length 0
21:54:45.871278 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1201, win 2896, length 0
21:54:45.934021 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4201:4233, ack 1201, win 2896, length 32
21:54:45.934073 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1201:1225, ack 4233, win 64056, length 24
21:54:45.945999 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1225, win 2872, length 0
21:54:45.960127 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1225, win 2872, length 0
21:54:46.046985 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4233:4265, ack 1225, win 2872, length 32
21:54:46.047037 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1225:1269, ack 4265, win 64056, length 44
21:54:46.058173 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1269, win 2828, length 0
21:54:46.073087 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1269, win 2828, length 0
21:54:46.129947 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4265:4297, ack 1269, win 2828, length 32
21:54:46.130010 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1269:1289, ack 4297, win 64056, length 20
21:54:46.154240 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1289, win 2808, length 0
21:54:46.165754 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1289, win 2808, length 0
21:54:46.228083 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4297:4329, ack 1289, win 2808, length 32
21:54:46.228155 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1289:1313, ack 4329, win 64056, length 24
21:54:46.240063 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1313, win 2784, length 0
21:54:46.254792 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1313, win 2784, length 0
21:54:46.319536 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4329:4361, ack 1313, win 2784, length 32
21:54:46.319663 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1313:1357, ack 4361, win 64056, length 44
21:54:46.331274 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1357, win 2740, length 0
21:54:46.342685 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1357, win 2740, length 0
21:54:46.406876 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4361:4393, ack 1357, win 2740, length 32
21:54:46.407000 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1357:1377, ack 4393, win 64056, length 20
21:54:46.420350 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1377, win 2720, length 0
21:54:46.432845 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1377, win 2720, length 0
21:54:46.498941 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4393:4425, ack 1377, win 2720, length 32
21:54:46.499067 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1377:1401, ack 4425, win 64056, length 24
21:54:46.512185 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1401, win 2696, length 0
21:54:46.523409 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1401, win 2696, length 0
21:54:46.589420 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4425:4457, ack 1401, win 2696, length 32
21:54:46.589512 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1401:1445, ack 4457, win 64056, length 44
21:54:46.602884 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1445, win 2652, length 0
21:54:46.630295 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1445, win 2652, length 0
21:54:46.678174 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4457:4489, ack 1445, win 2652, length 32
21:54:46.678231 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1445:1461, ack 4489, win 64056, length 16
21:54:46.690671 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1461, win 2636, length 0
21:54:46.702423 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1461, win 2636, length 0
21:54:46.767173 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4489:4521, ack 1461, win 2636, length 32
21:54:46.767241 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1461:1481, ack 4521, win 64056, length 20
21:54:46.781631 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1481, win 2616, length 0
21:54:46.792156 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1481, win 2616, length 0
21:54:46.856852 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4521:4553, ack 1481, win 2616, length 32
21:54:46.856924 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1481:1525, ack 4553, win 64056, length 44
21:54:46.869431 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1525, win 2572, length 0
21:54:46.882604 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1525, win 2572, length 0
21:54:46.943938 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4553:4585, ack 1525, win 2572, length 32
21:54:46.944044 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1525:1545, ack 4585, win 64056, length 20
21:54:46.956854 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1545, win 2552, length 0
21:54:46.969458 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1545, win 2552, length 0
21:54:47.035332 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4585:4617, ack 1545, win 2552, length 32
21:54:47.035451 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1545:1569, ack 4617, win 64056, length 24
21:54:47.047349 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1569, win 2528, length 0
21:54:47.059764 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1569, win 2528, length 0
21:54:47.128842 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4617:4649, ack 1569, win 2528, length 32
21:54:47.128943 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1569:1613, ack 4649, win 64056, length 44
21:54:47.147196 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1613, win 2484, length 0
21:54:47.160522 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1613, win 2484, length 0
21:54:47.218937 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4649:4681, ack 1613, win 2484, length 32
21:54:47.219059 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1613:1633, ack 4681, win 64056, length 20
21:54:47.231434 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1633, win 2464, length 0
21:54:47.244785 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1633, win 2464, length 0
21:54:47.472642 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4681:4713, ack 1633, win 2464, length 32
21:54:47.472737 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1633:1657, ack 4713, win 64056, length 24
21:54:47.483671 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1657, win 2440, length 0
21:54:47.494146 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1657, win 2440, length 0
21:54:47.556406 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4713:4745, ack 1657, win 2440, length 32
21:54:47.556553 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1657:1705, ack 4745, win 64056, length 48
21:54:47.568710 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1705, win 2392, length 0
21:54:47.581570 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1705, win 2392, length 0
21:54:47.646251 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4745:4777, ack 1705, win 2392, length 32
21:54:47.646327 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1705:1725, ack 4777, win 64056, length 20
21:54:47.660329 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1725, win 2372, length 0
21:54:47.673613 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1725, win 2372, length 0
21:54:47.734902 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4777:4809, ack 1725, win 2372, length 32
21:54:47.734963 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1725:1749, ack 4809, win 64056, length 24
21:54:47.775253 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1749, win 2348, length 0
21:54:47.961984 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1749, win 2348, length 0
21:54:47.962033 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4809:4841, ack 1749, win 2348, length 32
21:54:47.962118 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1749:1797, ack 4841, win 64056, length 48
21:54:47.974407 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1797, win 2300, length 0
21:54:47.986021 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1797, win 2300, length 0
21:54:48.046225 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4841:4873, ack 1797, win 2300, length 32
21:54:48.046312 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1797:1817, ack 4873, win 64056, length 20
21:54:48.058509 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1817, win 2280, length 0
21:54:48.070978 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1817, win 2280, length 0
21:54:48.134570 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4873:4905, ack 1817, win 2280, length 32
21:54:48.134642 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1817:1841, ack 4905, win 64056, length 24
21:54:48.171175 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1841, win 2256, length 0
21:54:48.171236 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1841, win 2256, length 0
21:54:48.224169 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4905:4937, ack 1841, win 2256, length 32
21:54:48.224272 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1841:1889, ack 4937, win 64056, length 48
21:54:48.243853 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1889, win 2208, length 0
21:54:48.256392 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1889, win 2208, length 0
21:54:48.314920 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4937:4969, ack 1889, win 2208, length 32
21:54:48.315000 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1889:1909, ack 4969, win 64056, length 20
21:54:48.328665 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1909, win 2188, length 0
21:54:48.340561 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1909, win 2188, length 0
21:54:48.404472 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 4969:5001, ack 1909, win 2188, length 32
21:54:48.404555 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1909:1933, ack 5001, win 64056, length 24
21:54:48.426494 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1933, win 2164, length 0
21:54:48.665874 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1933, win 2164, length 0
21:54:48.665967 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5001:5033, ack 1933, win 2164, length 32
21:54:48.666060 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1933:1985, ack 5033, win 64056, length 52
21:54:48.679327 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1985, win 2112, length 0
21:54:48.691179 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 1985, win 2112, length 0
21:54:48.748916 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5033:5065, ack 1985, win 2112, length 32
21:54:48.748986 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 1985:2013, ack 5065, win 64056, length 28
21:54:48.762668 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 2013, win 2084, length 0
21:54:48.777923 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 2013, win 2084, length 0
21:54:48.841050 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5065:5097, ack 2013, win 2084, length 32
21:54:48.841169 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2013:2041, ack 5097, win 64056, length 28
21:54:48.857195 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 2041, win 2056, length 0
21:54:48.874560 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 2041, win 2056, length 0
21:54:48.931762 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5097:5129, ack 2041, win 2056, length 32
21:54:48.931879 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2041:2093, ack 5129, win 64056, length 52
21:54:48.952307 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 2093, win 2004, length 0
21:54:49.019484 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5129:5161, ack 2093, win 2048, length 32
21:54:49.019611 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2093:2117, ack 5161, win 64056, length 24
21:54:49.098107 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5161:5193, ack 2117, win 2048, length 32
21:54:49.098242 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2117:2145, ack 5193, win 64056, length 28
21:54:49.177762 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5193:5225, ack 2145, win 2048, length 32
21:54:49.177837 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2145:2193, ack 5225, win 64056, length 48
21:54:49.255589 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5225:5257, ack 2193, win 2048, length 32
21:54:49.255725 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2193:2217, ack 5257, win 64056, length 24
21:54:49.335679 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5257:5289, ack 2217, win 2048, length 32
21:54:49.335805 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2217:2245, ack 5289, win 64056, length 28
21:54:49.390558 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 2245, win 2048, length 0
21:54:49.419963 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5289:5321, ack 2245, win 2048, length 32
21:54:49.420089 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2245:2297, ack 5321, win 64056, length 52
21:54:49.497939 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5321:5353, ack 2297, win 2048, length 32
21:54:49.498003 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2297:2325, ack 5353, win 64056, length 28
21:54:49.579403 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5353:5385, ack 2325, win 2048, length 32
21:54:49.579458 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2325:2353, ack 5385, win 64056, length 28
21:54:49.658145 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5385:5417, ack 2353, win 2048, length 32
21:54:49.658257 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2353:2401, ack 5417, win 64056, length 48
21:54:49.735277 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5417:5449, ack 2401, win 2048, length 32
21:54:49.735355 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2401:2421, ack 5449, win 64056, length 20
21:54:49.817093 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5449:5481, ack 2421, win 2048, length 32
21:54:49.817177 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2421:2445, ack 5481, win 64056, length 24
21:54:49.899254 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5481:5513, ack 2445, win 2048, length 32
21:54:49.899320 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2445:2521, ack 5513, win 64056, length 76
21:54:49.955291 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5513:5893, ack 2521, win 2048, length 380
21:54:49.955387 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2521:2597, ack 5893, win 64056, length 76
21:54:49.969490 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 2597, win 1972, length 0
21:54:50.015243 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 5893:6273, ack 2597, win 2048, length 380
21:54:50.015459 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2597:2953, ack 6273, win 64056, length 356
21:54:50.129850 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 6273:6305, ack 2953, win 2048, length 32
21:54:50.130055 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 2953:3461, ack 6305, win 64056, length 508
21:54:50.224001 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 6305:6497, ack 3461, win 2048, length 192
21:54:50.241951 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 6497:6561, ack 3461, win 2048, length 64
21:54:50.242039 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 6561, win 64056, length 0
21:54:50.242134 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 3461:3557, ack 6561, win 64056, length 96
21:54:50.296182 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 6561:6657, ack 3557, win 2048, length 96
21:54:50.296360 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 3557:3845, ack 6657, win 64056, length 288
21:54:50.360833 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 6657:6689, ack 3845, win 2048, length 32
21:54:50.402751 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 6689, win 64056, length 0
21:54:50.428771 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 6689:6817, ack 3845, win 2048, length 128
21:54:50.428841 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 6817, win 64056, length 0
21:54:50.428944 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 3845:3929, ack 6817, win 64056, length 84
21:54:50.491055 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 6817:6849, ack 3929, win 2048, length 32
21:54:50.531747 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 6849, win 64056, length 0
21:54:50.548125 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 6849:6881, ack 3929, win 2048, length 32
21:54:50.548201 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 6881, win 64056, length 0
21:54:50.647523 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 6881:6913, ack 3929, win 2048, length 32
21:54:50.647567 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 6913, win 64056, length 0
21:54:50.786834 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 6913:6977, ack 3929, win 2048, length 64
21:54:50.786873 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 6977, win 64056, length 0
21:54:50.786936 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 3929:4037, ack 6977, win 64056, length 108
21:54:50.849751 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 6977:7041, ack 4037, win 2048, length 64
21:54:50.889753 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 7041, win 64056, length 0
21:54:50.942484 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 7041:7073, ack 4037, win 2048, length 32
21:54:50.942514 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 7073, win 64056, length 0
21:54:51.047984 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 7073:7137, ack 4037, win 2048, length 64
21:54:51.048017 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 7137, win 64056, length 0
21:54:51.298690 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 7137:7457, ack 4037, win 2048, length 320
21:54:51.298767 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 7457, win 64056, length 0
21:54:51.298891 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 4037:4101, ack 7457, win 64056, length 64
21:54:51.451315 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 7457:7777, ack 4101, win 2048, length 320
21:54:51.451518 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 4101:4165, ack 7777, win 64056, length 64
21:54:51.640165 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [P.], seq 7777:8097, ack 4165, win 2048, length 320
21:54:51.640335 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [P.], seq 4165:4229, ack 8097, win 64056, length 64
21:54:51.706028 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 4229, win 2048, length 0
21:54:51.950510 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [F.], seq 4229, ack 8097, win 64056, length 0
21:54:51.960685 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [.], ack 4230, win 2048, length 0
21:54:51.973860 IP 100.103.100.103.6000 > 100.103.255.254.40134: Flags [F.], seq 8097, ack 4230, win 2048, length 0
21:54:51.973881 IP 100.103.255.254.40134 > 100.103.100.103.6000: Flags [.], ack 8098, win 64056, length 0
866 packets captured
866 packets received by filter
0 packets dropped by kernel
+399
View File
@@ -0,0 +1,399 @@
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp197s0f3u1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
22:01:25.424496 ARP, Request who-has 100.103.255.254 tell 100.103.100.103, length 50
22:01:25.424528 ARP, Reply 100.103.255.254 is-at 2c:16:db:a0:e7:b1, length 28
22:01:25.446868 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
22:01:25.447070 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 1
22:01:25.467721 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:01:25.467898 IP 100.103.255.254.69 > 100.103.100.103.1025: TFTP, length 516, DATA block 2
22:01:25.485233 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
22:01:25.500416 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
22:01:25.500550 IP 100.103.255.254.69 > 100.103.100.103.1026: TFTP, length 29, DATA block 1
22:01:25.518177 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:01:25.527129 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:01:25.543565 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 21, RRQ "69/fonts.dir" octet
22:01:25.543677 IP 100.103.255.254.69 > 100.103.100.103.1027: TFTP, length 29, DATA block 1
22:01:25.561456 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:01:25.715649 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 2
22:01:29.761667 IP 100.103.255.254 > 100.103.100.103: ICMP echo request, id 24264, seq 1, length 64
22:01:29.791117 IP 100.103.100.103 > 100.103.255.254: ICMP echo reply, id 24264, seq 1, length 64
22:01:29.794176 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [S], seq 918453009, win 64240, options [mss 1460,sackOK,TS val 2881042238 ecr 0,nop,wscale 10], length 0
22:01:29.817143 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [S.], seq 3798913292, ack 918453010, win 4096, options [mss 1024], length 0
22:01:29.817185 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
22:01:29.817302 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
22:01:29.875602 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 13, win 4084, length 0
22:01:29.924390 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [P.], seq 1:153, ack 13, win 4084, length 152
22:01:29.924409 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
22:01:29.924544 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
22:01:29.948731 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 13, win 4084, length 0
22:01:30.008702 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 33, win 4064, length 0
22:01:30.043046 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [P.], seq 153:185, ack 33, win 4064, length 32
22:01:30.043172 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
22:01:30.055884 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 73, win 4024, length 0
22:01:30.068878 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 73, win 4024, length 0
22:01:30.096722 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [P.], seq 185:217, ack 73, win 4024, length 32
22:01:30.096952 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
22:01:30.108575 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 93, win 4004, length 0
22:01:30.121762 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 93, win 4004, length 0
22:01:30.146408 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [P.], seq 217:249, ack 93, win 4004, length 32
22:01:30.146623 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [P.], seq 93:97, ack 249, win 64056, length 4
22:01:30.159238 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 97, win 4000, length 0
22:01:30.170615 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 97, win 4000, length 0
22:01:30.195541 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [P.], seq 249:301, ack 97, win 4000, length 52
22:01:30.195771 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [P.], seq 97:101, ack 301, win 64056, length 4
22:01:30.208217 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 101, win 3996, length 0
22:01:30.220635 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 101, win 3996, length 0
22:01:30.245935 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [P.], seq 301:333, ack 101, win 3996, length 32
22:01:30.246026 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [P.], seq 101:105, ack 333, win 64056, length 4
22:01:30.257743 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 105, win 3992, length 0
22:01:30.270104 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 105, win 3992, length 0
22:01:30.295092 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [P.], seq 333:365, ack 105, win 3992, length 32
22:01:30.295234 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [P.], seq 105:109, ack 365, win 64056, length 4
22:01:30.308062 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 109, win 3988, length 0
22:01:30.319509 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 109, win 3988, length 0
22:01:30.345665 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [P.], seq 365:421, ack 109, win 3988, length 56
22:01:30.345858 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [P.], seq 109:129, ack 421, win 64056, length 20
22:01:30.358426 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 129, win 3968, length 0
22:01:30.371063 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 129, win 3968, length 0
22:01:30.395743 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [P.], seq 421:453, ack 129, win 3968, length 32
22:01:30.395944 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [P.], seq 129:161, ack 453, win 64056, length 32
22:01:30.407689 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 161, win 3936, length 0
22:01:30.419011 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 161, win 3936, length 0
22:01:30.444452 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [P.], seq 453:485, ack 161, win 3936, length 32
22:01:30.444610 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [P.], seq 161:173, ack 485, win 64056, length 12
22:01:30.457586 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 173, win 3924, length 0
22:01:30.469185 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 173, win 3924, length 0
22:01:30.494736 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [P.], seq 485:517, ack 173, win 3924, length 32
22:01:30.494895 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [P.], seq 173:185, ack 517, win 64056, length 12
22:01:30.507186 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 185, win 3912, length 0
22:01:30.519631 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 185, win 3912, length 0
22:01:30.545670 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [P.], seq 517:549, ack 185, win 3912, length 32
22:01:30.545853 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [F.], seq 185, ack 549, win 64056, length 0
22:01:30.550624 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [S], seq 3756767680, win 64240, options [mss 1460,sackOK,TS val 3735967124 ecr 0,nop,wscale 10], length 0
22:01:30.558155 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [.], ack 186, win 3911, length 0
22:01:30.580058 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [S.], seq 3799041292, ack 3756767681, win 4096, options [mss 1024], length 0
22:01:30.580081 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
22:01:30.580203 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
22:01:30.596680 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [F.], seq 549, ack 186, win 3911, length 0
22:01:30.596714 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
22:01:30.600793 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [F.], seq 549, ack 186, win 3911, length 0
22:01:30.600800 IP 100.103.255.254.57856 > 100.103.100.103.6000: Flags [.], ack 550, win 64056, length 0
22:01:30.631686 IP 100.103.100.103.6000 > 100.103.255.254.57856: Flags [R], seq 3798913842, win 4096, length 0
22:01:30.677041 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 13, win 4084, length 0
22:01:30.715287 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [P.], seq 1:153, ack 13, win 4084, length 152
22:01:30.715344 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
22:01:30.715496 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
22:01:30.730905 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 13, win 4084, length 0
22:01:30.752566 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 33, win 4064, length 0
22:01:30.836870 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [P.], seq 153:185, ack 33, win 4064, length 32
22:01:30.837071 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
22:01:30.858458 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 73, win 4024, length 0
22:01:30.871736 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 73, win 4024, length 0
22:01:30.895970 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [P.], seq 185:217, ack 73, win 4024, length 32
22:01:30.896047 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
22:01:30.908723 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 93, win 4004, length 0
22:01:30.922447 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 93, win 4004, length 0
22:01:30.946599 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [P.], seq 217:249, ack 93, win 4004, length 32
22:01:30.946772 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [P.], seq 93:105, ack 249, win 64056, length 12
22:01:30.959102 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 105, win 3992, length 0
22:01:30.970487 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 105, win 3992, length 0
22:01:31.091799 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], seq 249:1273, ack 105, win 3992, length 1024
22:01:31.098058 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [P.], seq 1273:2297, ack 105, win 3992, length 1024
22:01:31.098086 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [.], ack 2297, win 64056, length 0
22:01:31.111807 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 105, win 3992, length 0
22:01:31.121134 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [P.], seq 2297:2961, ack 105, win 3992, length 664
22:01:31.121298 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [P.], seq 105:117, ack 2961, win 64056, length 12
22:01:31.133205 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 117, win 3980, length 0
22:01:31.145817 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 117, win 3980, length 0
22:01:31.168687 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [P.], seq 2961:2993, ack 117, win 3980, length 32
22:01:31.168821 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [F.], seq 117, ack 2993, win 64056, length 0
22:01:31.176051 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [S], seq 2603209737, win 64240, options [mss 1460,sackOK,TS val 2854814229 ecr 0,nop,wscale 10], length 0
22:01:31.181291 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [.], ack 118, win 3979, length 0
22:01:31.196379 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [S.], seq 3799169292, ack 2603209738, win 4096, options [mss 1024], length 0
22:01:31.196403 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 1, win 64240, length 0
22:01:31.196488 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64240, length 12
22:01:31.222951 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [F.], seq 2993, ack 118, win 3979, length 0
22:01:31.222976 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [.], ack 2994, win 64056, length 0
22:01:31.227072 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [F.], seq 2993, ack 118, win 3979, length 0
22:01:31.227084 IP 100.103.255.254.57862 > 100.103.100.103.6000: Flags [.], ack 2994, win 64056, length 0
22:01:31.248858 IP 100.103.100.103.6000 > 100.103.255.254.57862: Flags [R], seq 3799044286, win 4096, length 0
22:01:31.298279 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 13, win 4084, length 0
22:01:31.333460 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 1:153, ack 13, win 4084, length 152
22:01:31.333494 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 153, win 64088, length 0
22:01:31.333586 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 13:33, ack 153, win 64088, length 20
22:01:31.348978 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 13, win 4084, length 0
22:01:31.372611 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 33, win 4064, length 0
22:01:31.429392 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 153:185, ack 33, win 4064, length 32
22:01:31.429474 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 33:73, ack 185, win 64056, length 40
22:01:31.445817 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 73, win 4024, length 0
22:01:31.479528 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 73, win 4024, length 0
22:01:31.507010 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 185:217, ack 73, win 4024, length 32
22:01:31.507100 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 73:93, ack 217, win 64056, length 20
22:01:31.520831 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 93, win 4004, length 0
22:01:31.532311 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 93, win 4004, length 0
22:01:31.557602 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 217:249, ack 93, win 4004, length 32
22:01:31.557675 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 93:113, ack 249, win 64056, length 20
22:01:31.569984 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 113, win 3984, length 0
22:01:31.583271 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 113, win 3984, length 0
22:01:31.608659 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 249:281, ack 113, win 3984, length 32
22:01:31.608736 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 113:133, ack 281, win 64056, length 20
22:01:31.620522 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 133, win 3964, length 0
22:01:31.631968 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 133, win 3964, length 0
22:01:31.658276 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 281:313, ack 133, win 3964, length 32
22:01:31.659302 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 133:157, ack 313, win 64056, length 24
22:01:31.671521 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 157, win 3940, length 0
22:01:31.682914 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 157, win 3940, length 0
22:01:31.708169 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 313:345, ack 157, win 3940, length 32
22:01:31.708647 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 157:181, ack 345, win 64056, length 24
22:01:31.721946 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 181, win 3916, length 0
22:01:31.734605 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 181, win 3916, length 0
22:01:31.760074 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 345:377, ack 181, win 3916, length 32
22:01:31.761150 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 181:301, ack 377, win 64056, length 120
22:01:31.772819 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 301, win 3796, length 0
22:01:31.785758 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 301, win 3796, length 0
22:01:31.844525 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 377:505, ack 301, win 3796, length 128
22:01:31.882467 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 505:665, ack 301, win 3796, length 160
22:01:31.882511 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 665, win 64056, length 0
22:01:31.882732 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 301:677, ack 665, win 64056, length 376
22:01:31.895595 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 301, win 3796, length 0
22:01:31.916481 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 677, win 3420, length 0
22:01:32.230559 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 18, RRQ "probe.snf" octet
22:01:32.230686 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 1
22:01:32.251494 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 1
22:01:32.251601 IP 100.103.255.254.69 > 100.103.100.103.1028: TFTP, length 516, DATA block 2
22:01:32.270691 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
22:01:32.307530 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 665:729, ack 677, win 3420, length 64
22:01:32.307721 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 677:733, ack 729, win 64056, length 56
22:01:32.327420 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 733, win 3364, length 0
22:01:32.351395 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 733, win 3364, length 0
22:01:32.478010 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], seq 729:1753, ack 733, win 3364, length 1024
22:01:32.484302 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 1753:2777, ack 733, win 3364, length 1024
22:01:32.484319 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 2777, win 64056, length 0
22:01:32.498606 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 733, win 3364, length 0
22:01:32.509087 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 2777:3741, ack 733, win 3364, length 964
22:01:32.509249 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 733:917, ack 3741, win 64056, length 184
22:01:32.522650 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 917, win 3180, length 0
22:01:32.537289 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 917, win 3180, length 0
22:01:32.577927 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 3741:3773, ack 917, win 3180, length 32
22:01:32.585554 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 917:961, ack 3773, win 64056, length 44
22:01:32.599411 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 961, win 3136, length 0
22:01:32.610833 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 961, win 3136, length 0
22:01:32.656081 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 3773:3873, ack 961, win 3136, length 100
22:01:32.656148 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 961:1005, ack 3873, win 64056, length 44
22:01:32.668713 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1005, win 3092, length 0
22:01:32.681317 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1005, win 3092, length 0
22:01:32.730103 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 3873:3973, ack 1005, win 3092, length 100
22:01:32.730229 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1005:1049, ack 3973, win 64056, length 44
22:01:32.742510 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1049, win 3048, length 0
22:01:32.754748 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1049, win 3048, length 0
22:01:32.803631 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 3973:4073, ack 1049, win 3048, length 100
22:01:32.803786 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1049:1093, ack 4073, win 64056, length 44
22:01:32.816739 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1093, win 3004, length 0
22:01:32.828243 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1093, win 3004, length 0
22:01:32.891315 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4073:4105, ack 1093, win 3004, length 32
22:01:32.891397 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1093:1113, ack 4105, win 64056, length 20
22:01:32.903282 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1113, win 2984, length 0
22:01:32.915932 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1113, win 2984, length 0
22:01:32.981639 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4105:4137, ack 1113, win 2984, length 32
22:01:32.981830 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1113:1137, ack 4137, win 64056, length 24
22:01:32.993751 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1137, win 2960, length 0
22:01:33.006324 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1137, win 2960, length 0
22:01:33.072231 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4137:4169, ack 1137, win 2960, length 32
22:01:33.072349 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1137:1181, ack 4169, win 64056, length 44
22:01:33.084799 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1181, win 2916, length 0
22:01:33.098099 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1181, win 2916, length 0
22:01:33.161064 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4169:4201, ack 1181, win 2916, length 32
22:01:33.161195 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1181:1201, ack 4201, win 64056, length 20
22:01:33.174200 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1201, win 2896, length 0
22:01:33.187122 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1201, win 2896, length 0
22:01:33.252704 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4201:4233, ack 1201, win 2896, length 32
22:01:33.252836 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1201:1225, ack 4233, win 64056, length 24
22:01:33.265188 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1225, win 2872, length 0
22:01:33.277387 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1225, win 2872, length 0
22:01:33.344179 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4233:4265, ack 1225, win 2872, length 32
22:01:33.344309 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1225:1269, ack 4265, win 64056, length 44
22:01:33.356910 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1269, win 2828, length 0
22:01:33.369433 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1269, win 2828, length 0
22:01:33.432557 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4265:4297, ack 1269, win 2828, length 32
22:01:33.432714 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1269:1289, ack 4297, win 64056, length 20
22:01:33.444937 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1289, win 2808, length 0
22:01:33.458190 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1289, win 2808, length 0
22:01:33.523792 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4297:4329, ack 1289, win 2808, length 32
22:01:33.523846 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1289:1313, ack 4329, win 64056, length 24
22:01:33.536323 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1313, win 2784, length 0
22:01:33.547738 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1313, win 2784, length 0
22:01:33.613513 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4329:4361, ack 1313, win 2784, length 32
22:01:33.613689 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1313:1357, ack 4361, win 64056, length 44
22:01:33.625925 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1357, win 2740, length 0
22:01:33.638140 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1357, win 2740, length 0
22:01:33.700172 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4361:4393, ack 1357, win 2740, length 32
22:01:33.700293 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1357:1377, ack 4393, win 64056, length 20
22:01:33.713298 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1377, win 2720, length 0
22:01:33.725386 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1377, win 2720, length 0
22:01:33.792108 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4393:4425, ack 1377, win 2720, length 32
22:01:33.792245 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1377:1401, ack 4425, win 64056, length 24
22:01:33.804000 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1401, win 2696, length 0
22:01:33.816686 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1401, win 2696, length 0
22:01:33.879047 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4425:4457, ack 1401, win 2696, length 32
22:01:33.879157 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1401:1445, ack 4457, win 64056, length 44
22:01:33.891273 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1445, win 2652, length 0
22:01:33.903746 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1445, win 2652, length 0
22:01:33.967096 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4457:4489, ack 1445, win 2652, length 32
22:01:33.967300 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1445:1461, ack 4489, win 64056, length 16
22:01:33.979026 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1461, win 2636, length 0
22:01:33.993509 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1461, win 2636, length 0
22:01:34.057192 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4489:4521, ack 1461, win 2636, length 32
22:01:34.057300 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1461:1481, ack 4521, win 64056, length 20
22:01:34.070205 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1481, win 2616, length 0
22:01:34.081645 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1481, win 2616, length 0
22:01:34.146452 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4521:4553, ack 1481, win 2616, length 32
22:01:34.146584 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1481:1525, ack 4553, win 64056, length 44
22:01:34.158449 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1525, win 2572, length 0
22:01:34.172127 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1525, win 2572, length 0
22:01:34.235561 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4553:4585, ack 1525, win 2572, length 32
22:01:34.235692 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1525:1545, ack 4585, win 64056, length 20
22:01:34.247655 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1545, win 2552, length 0
22:01:34.260219 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1545, win 2552, length 0
22:01:34.327012 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4585:4617, ack 1545, win 2552, length 32
22:01:34.327114 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1545:1569, ack 4617, win 64056, length 24
22:01:34.339769 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1569, win 2528, length 0
22:01:34.352829 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1569, win 2528, length 0
22:01:34.417585 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4617:4649, ack 1569, win 2528, length 32
22:01:34.417702 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1569:1613, ack 4649, win 64056, length 44
22:01:34.430711 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1613, win 2484, length 0
22:01:34.442088 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1613, win 2484, length 0
22:01:34.505966 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4649:4681, ack 1613, win 2484, length 32
22:01:34.506058 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1613:1633, ack 4681, win 64056, length 20
22:01:34.518347 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1633, win 2464, length 0
22:01:34.530513 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1633, win 2464, length 0
22:01:34.596251 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4681:4713, ack 1633, win 2464, length 32
22:01:34.596329 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1633:1657, ack 4713, win 64056, length 24
22:01:34.608480 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1657, win 2440, length 0
22:01:34.620915 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1657, win 2440, length 0
22:01:34.686751 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4713:4745, ack 1657, win 2440, length 32
22:01:34.686887 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1657:1705, ack 4745, win 64056, length 48
22:01:34.699191 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1705, win 2392, length 0
22:01:34.712462 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1705, win 2392, length 0
22:01:34.774569 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4745:4777, ack 1705, win 2392, length 32
22:01:34.774662 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1705:1725, ack 4777, win 64056, length 20
22:01:34.787661 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1725, win 2372, length 0
22:01:34.799094 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1725, win 2372, length 0
22:01:34.863554 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4777:4809, ack 1725, win 2372, length 32
22:01:34.863649 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1725:1749, ack 4809, win 64056, length 24
22:01:34.875342 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1749, win 2348, length 0
22:01:34.889132 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1749, win 2348, length 0
22:01:34.953031 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4809:4841, ack 1749, win 2348, length 32
22:01:34.953114 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1749:1797, ack 4841, win 64056, length 48
22:01:34.965220 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1797, win 2300, length 0
22:01:34.978634 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1797, win 2300, length 0
22:01:35.041936 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4841:4873, ack 1797, win 2300, length 32
22:01:35.042038 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1797:1817, ack 4873, win 64056, length 20
22:01:35.053893 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1817, win 2280, length 0
22:01:35.067555 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1817, win 2280, length 0
22:01:35.130382 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4873:4905, ack 1817, win 2280, length 32
22:01:35.130446 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1817:1841, ack 4905, win 64056, length 24
22:01:35.143404 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1841, win 2256, length 0
22:01:35.154858 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1841, win 2256, length 0
22:01:35.218631 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4905:4937, ack 1841, win 2256, length 32
22:01:35.218787 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1841:1889, ack 4937, win 64056, length 48
22:01:35.230629 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1889, win 2208, length 0
22:01:35.243023 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1889, win 2208, length 0
22:01:35.306581 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4937:4969, ack 1889, win 2208, length 32
22:01:35.306767 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1889:1909, ack 4969, win 64056, length 20
22:01:35.318519 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1909, win 2188, length 0
22:01:35.331067 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1909, win 2188, length 0
22:01:35.394693 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 4969:5001, ack 1909, win 2188, length 32
22:01:35.394839 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1909:1933, ack 5001, win 64056, length 24
22:01:35.406849 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1933, win 2164, length 0
22:01:35.419316 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1933, win 2164, length 0
22:01:35.483869 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5001:5033, ack 1933, win 2164, length 32
22:01:35.483972 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1933:1985, ack 5033, win 64056, length 52
22:01:35.496415 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1985, win 2112, length 0
22:01:35.509727 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 1985, win 2112, length 0
22:01:35.571914 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5033:5065, ack 1985, win 2112, length 32
22:01:35.572029 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 1985:2013, ack 5065, win 64056, length 28
22:01:35.584941 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 2013, win 2084, length 0
22:01:35.596426 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 2013, win 2084, length 0
22:01:35.661976 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5065:5097, ack 2013, win 2084, length 32
22:01:35.662162 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2013:2041, ack 5097, win 64056, length 28
22:01:35.673993 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 2041, win 2056, length 0
22:01:35.687135 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 2041, win 2056, length 0
22:01:35.751362 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5097:5129, ack 2041, win 2056, length 32
22:01:35.751452 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2041:2093, ack 5129, win 64056, length 52
22:01:35.763916 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 2093, win 2004, length 0
22:01:35.835319 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5129:5161, ack 2093, win 2048, length 32
22:01:35.835462 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2093:2117, ack 5161, win 64056, length 24
22:01:35.915084 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5161:5193, ack 2117, win 2048, length 32
22:01:35.915134 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2117:2145, ack 5193, win 64056, length 28
22:01:35.994529 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5193:5225, ack 2145, win 2048, length 32
22:01:35.994672 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2145:2193, ack 5225, win 64056, length 48
22:01:36.029778 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 2193, win 2048, length 0
22:01:36.077270 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5225:5257, ack 2193, win 2048, length 32
22:01:36.077404 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2193:2217, ack 5257, win 64056, length 24
22:01:36.156042 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5257:5289, ack 2217, win 2048, length 32
22:01:36.156172 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2217:2245, ack 5289, win 64056, length 28
22:01:36.235423 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5289:5321, ack 2245, win 2048, length 32
22:01:36.235553 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2245:2297, ack 5321, win 64056, length 52
22:01:36.313692 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5321:5353, ack 2297, win 2048, length 32
22:01:36.313780 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2297:2325, ack 5353, win 64056, length 28
22:01:36.393361 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5353:5385, ack 2325, win 2048, length 32
22:01:36.393475 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2325:2353, ack 5385, win 64056, length 28
22:01:36.472572 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5385:5417, ack 2353, win 2048, length 32
22:01:36.472672 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2353:2401, ack 5417, win 64056, length 48
22:01:36.550673 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5417:5449, ack 2401, win 2048, length 32
22:01:36.550821 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2401:2421, ack 5449, win 64056, length 20
22:01:36.608633 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 2421, win 2048, length 0
22:01:36.637921 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5449:5481, ack 2421, win 2048, length 32
22:01:36.637998 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2421:2445, ack 5481, win 64056, length 24
22:01:36.717589 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5481:5513, ack 2445, win 2048, length 32
22:01:36.717718 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2445:2521, ack 5513, win 64056, length 76
22:01:36.773637 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5513:5893, ack 2521, win 2048, length 380
22:01:36.773794 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2521:2597, ack 5893, win 64056, length 76
22:01:36.829122 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 5893:6273, ack 2597, win 2048, length 380
22:01:36.829373 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2597:2953, ack 6273, win 64056, length 356
22:01:36.943008 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 6273:6305, ack 2953, win 2048, length 32
22:01:36.943161 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 2953:3457, ack 6305, win 64056, length 504
22:01:37.031844 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 6305:6561, ack 3457, win 2048, length 256
22:01:37.031953 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 3457:3553, ack 6561, win 64056, length 96
22:01:37.079694 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 6561:6657, ack 3553, win 2048, length 96
22:01:37.079887 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 3553:3841, ack 6657, win 64056, length 288
22:01:37.135030 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 6657:6689, ack 3841, win 2048, length 32
22:01:37.175759 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 6689, win 64056, length 0
22:01:37.197372 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 6689:6753, ack 3841, win 2048, length 64
22:01:37.197469 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 6753, win 64056, length 0
22:01:37.223446 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 6753:6817, ack 3841, win 2048, length 64
22:01:37.223490 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 6817, win 64056, length 0
22:01:37.223554 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 3841:3925, ack 6817, win 64056, length 84
22:01:37.283408 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 6817:6849, ack 3925, win 2048, length 32
22:01:37.329788 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 6849, win 64056, length 0
22:01:37.337418 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 6849:6881, ack 3925, win 2048, length 32
22:01:37.337517 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 6881, win 64056, length 0
22:01:37.450202 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 6881:6913, ack 3925, win 2048, length 32
22:01:37.450299 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 6913, win 64056, length 0
22:01:37.590595 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 6913:6977, ack 3925, win 2048, length 64
22:01:37.590703 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 6977, win 64056, length 0
22:01:37.590845 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 3925:4033, ack 6977, win 64056, length 108
22:01:37.659365 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 6977:7041, ack 4033, win 2048, length 64
22:01:37.699751 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 7041, win 64056, length 0
22:01:37.718629 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 7041:7073, ack 4033, win 2048, length 32
22:01:37.718717 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 7073, win 64056, length 0
22:01:37.839051 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 7073:7137, ack 4033, win 2048, length 64
22:01:37.839103 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 7137, win 64056, length 0
22:01:38.103723 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 7137:7457, ack 4033, win 2048, length 320
22:01:38.103817 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 7457, win 64056, length 0
22:01:38.103960 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 4033:4097, ack 7457, win 64056, length 64
22:01:38.270089 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 7457:7777, ack 4097, win 2048, length 320
22:01:38.270244 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 4097:4161, ack 7777, win 64056, length 64
22:01:38.359074 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 4161, win 2048, length 0
22:01:38.406051 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [P.], seq 7777:8097, ack 4161, win 2048, length 320
22:01:38.406137 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 4161:4225, ack 8097, win 64056, length 64
22:01:38.688761 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [P.], seq 4161:4225, ack 8097, win 64056, length 64
22:01:38.700432 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 4225, win 2048, length 0
22:01:43.173002 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [F.], seq 4225, ack 8097, win 64056, length 0
22:01:43.282125 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [.], ack 4226, win 2048, length 0
22:01:43.282202 IP 100.103.100.103.6000 > 100.103.255.254.57874: Flags [F.], seq 8097, ack 4226, win 2048, length 0
22:01:43.282236 IP 100.103.255.254.57874 > 100.103.100.103.6000: Flags [.], ack 8098, win 64056, length 0
393 packets captured
394 packets received by filter
0 packets dropped by kernel
+45
View File
@@ -0,0 +1,45 @@
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp197s0f3u1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
21:09:03.436986 08:00:2b:16:4b:5a > ab:00:00:02:00:00, ethertype MOP RC (0x6002), length 71:
0x0000: 3700 0700 4000 0100 0303 0000 0200 0261 7...@..........a
0x0010: 0003 0006 0000 0000 0000 0400 020c 0005 ................
0x0020: 0002 2000 0600 0258 0207 0006 0800 2b16 .......X......+.
0x0030: 4b5a 6400 0172 0000 00 KZd..r...
21:09:04.767629 IP 100.103.100.103.1024 > 100.103.255.255.771: UDP, length 64
21:10:23.136993 ARP, Request who-has 100.103.255.254 tell 100.103.100.103, length 50
21:10:23.137023 ARP, Reply 100.103.255.254 is-at 2c:16:db:a0:e7:b1, length 28
21:10:23.146046 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:10:34.249117 IP 172.24.1.2.37940 > 100.103.100.103.6000: Flags [S], seq 3347781111, win 64860, options [mss 1380,sackOK,TS val 2916070350 ecr 0,nop,wscale 10], length 0
21:10:34.328338 ARP, Request who-has 100.103.0.1 tell 100.103.100.103, length 50
21:10:34.331472 ARP, Reply 100.103.0.1 is-at 90:e2:ba:82:8d:50, length 46
21:10:34.338005 IP 100.103.100.103.6000 > 172.24.1.2.37940: Flags [S.], seq 3920131278, ack 3347781112, win 4096, options [mss 1024], length 0
21:10:34.362914 IP 172.24.1.2.37940 > 100.103.100.103.6000: Flags [.], ack 1, win 64860, length 0
21:10:34.362999 IP 172.24.1.2.37940 > 100.103.100.103.6000: Flags [P.], seq 1:13, ack 1, win 64860, length 12
21:10:34.422805 IP 100.103.100.103.6000 > 172.24.1.2.37940: Flags [.], ack 13, win 4084, length 0
21:10:39.289873 ARP, Request who-has 100.103.100.103 tell 100.103.0.1, length 46
21:10:39.294881 ARP, Reply 100.103.100.103 is-at 08:00:2b:16:4b:5a, length 50
21:10:39.354952 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:10:39.364516 IP 100.103.100.103.1025 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:10:39.379372 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:10:44.505068 IP 172.24.1.2.37940 > 100.103.100.103.6000: Flags [F.], seq 13, ack 1, win 64860, length 0
21:10:44.633531 IP 100.103.100.103.6000 > 172.24.1.2.37940: Flags [.], ack 14, win 4083, length 0
21:10:44.633561 IP 100.103.100.103.6000 > 172.24.1.2.37940: Flags [F.], seq 1, ack 14, win 4083, length 0
21:10:44.633644 IP 100.103.100.103.6000 > 172.24.1.2.37940: Flags [F.], seq 1, ack 14, win 4083, length 0
21:10:44.677462 IP 172.24.1.2.37940 > 100.103.100.103.6000: Flags [F.], seq 13, ack 1, win 64860, length 0
21:10:44.688882 IP 100.103.100.103.6000 > 172.24.1.2.37940: Flags [F.], seq 1, ack 14, win 4083, length 0
21:10:44.804292 IP 172.24.1.2.37940 > 100.103.100.103.6000: Flags [.], ack 2, win 64859, length 0
21:10:55.605791 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:10:55.669881 IP 100.103.100.103.1026 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:10:55.669960 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:11:11.856459 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:11:11.864208 IP 100.103.100.103.1027 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:11:11.877801 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:11:28.105488 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:11:28.114575 IP 100.103.100.103.1028 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:11:28.128731 IP 100.103.100.103.1029 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:11:44.353325 IP 100.103.100.103.1029 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:11:44.366669 IP 100.103.100.103.1029 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
35 packets captured
35 packets received by filter
0 packets dropped by kernel
+41
View File
@@ -0,0 +1,41 @@
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp197s0f3u1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
21:15:02.879915 IP 100.103.100.103.1030 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:15:02.889008 IP 100.103.100.103.1030 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:15:02.904494 IP 100.103.100.103.1031 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:15:19.128973 IP 100.103.100.103.1031 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:15:19.138436 IP 100.103.100.103.1031 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:15:19.152120 IP 100.103.100.103.1032 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:15:27.522233 ARP, Request who-has 100.103.255.254 tell 100.103.0.1, length 46
21:15:27.522268 ARP, Reply 100.103.255.254 is-at 2c:16:db:a0:e7:b1, length 28
21:15:35.379573 IP 100.103.100.103.1032 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:15:35.388751 IP 100.103.100.103.1032 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:15:35.402329 IP 100.103.100.103.1033 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:15:51.630305 IP 100.103.100.103.1033 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:15:51.640287 IP 100.103.100.103.1033 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:15:51.653450 IP 100.103.100.103.1034 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:16:07.879340 IP 100.103.100.103.1034 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:16:07.892899 IP 100.103.100.103.1034 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:16:08.292061 IP 100.103.100.103.1035 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:16:08.471511 ARP, Request who-has 100.103.255.254 tell 100.103.0.1, length 46
21:16:08.471545 ARP, Reply 100.103.255.254 is-at 2c:16:db:a0:e7:b1, length 28
21:16:24.529775 IP 100.103.100.103.1035 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:16:24.538800 IP 100.103.100.103.1035 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:16:24.553003 IP 100.103.100.103.1036 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:16:40.778104 IP 100.103.100.103.1036 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:16:40.787962 IP 100.103.100.103.1036 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:16:40.802097 IP 100.103.100.103.1037 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:16:50.561109 ARP, Request who-has 100.103.255.254 tell 100.103.0.1, length 46
21:16:50.561160 ARP, Reply 100.103.255.254 is-at 2c:16:db:a0:e7:b1, length 28
21:16:57.028815 IP 100.103.100.103.1037 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:16:57.038958 IP 100.103.100.103.1037 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:16:57.053645 IP 100.103.100.103.1038 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:17:13.277647 IP 100.103.100.103.1038 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:17:13.287394 IP 100.103.100.103.1038 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
21:17:13.301094 IP 100.103.100.103.1039 > 100.103.255.254.69: TFTP, length 11, RRQ "69" octet
21:17:29.528661 IP 100.103.100.103.1039 > 100.103.255.254.69: TFTP, length 4, ACK block 1
21:17:29.541078 IP 100.103.100.103.1039 > 100.103.255.254.69: TFTP, length 36, ERROR ENOSPACE "Disk full or allocation exceeded" [|tftp]
35 packets captured
35 packets received by filter
0 packets dropped by kernel
+8669
View File
File diff suppressed because it is too large. Load diff
+6
View File
@@ -0,0 +1,6 @@
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp197s0f3u1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
0 packets captured
0 packets received by filter
0 packets dropped by kernel
+11
View File
@@ -0,0 +1,11 @@
#!/bin/sh
# Disassemble a ROM byte range with dis34, using physical bit addresses.
# usage: disrange.sh <image.bin> <start_byte_hex> <len_byte_hex>
set -e
IMG="$1"; START="$2"; LEN="$3"
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
TMP="$(mktemp)"
dd if="$IMG" of="$TMP" bs=1 skip=$((START)) count=$((LEN)) 2>/dev/null
BASE=$(printf '%x' $(( (0x07E40000 + START) * 8 )))
"$ROOT/tools/smart34010/dis34" -a -l -b "$BASE" "$TMP"
rm -f "$TMP"
File diff suppressed because it is too large. Load diff
+1
View File
@@ -0,0 +1 @@
dis34: analyze: 1892 seq blocks + recursive descent, 577301/917504 words marked as code
Binary file not shown.
+953
View File
@@ -0,0 +1,953 @@
3f5ec000: .word 0xffe0
3f5ec010: .word 0x0d5f
3f5ec020: .word 0x8580
3f5ec030: .word 0x3f5b
3f5ec040: .word 0x0788
3f5ec050: .word 0xb840
3f5ec060: .word 0x001c
3f5ec070: .word 0x1028
3f5ec080: .word 0xcb19
3f5ec090: .word 0xa3cf
3f5ec0a0: .word 0xd3ae
3f5ec0b0: .word 0xffe0
3f5ec0c0: movi 0x3f5f0638, a8
3f5ec0f0: move a8, *a14+, 1
3f5ec100: movi 0xffff, a9
3f5ec120: move a9, *a14+, 1
3f5ec130: calla 0x3f5969b0
3f5ec160: move @0x1b3900, a9, 1
3f5ec190: move *a9(0x100), a11, 1
3f5ec1b0: movi 0x31, a9
3f5ec1d0: movb a9, *a11(0x20)
3f5ec1f0: movi 0xffff, a8
3f5ec210: jruc L3F5EC810
3f5ec220: move a14, -*sp, 1
3f5ec230: movi 0x45, a9
3f5ec250: move a9, *a14+, 1
3f5ec260: calla 0x3fb2c000
3f5ec290: setf 16, 0, 0
3f5ec2a0: move a8, @0x1cb830, 0
3f5ec2d0: movi 0x1c85a0, a9
3f5ec300: move a9, @0x1c95c0, 1
3f5ec330: move a14, -*sp, 1
3f5ec340: move a9, *a14+, 1
3f5ec350: move *a13(0xffc0), *a14+, 1
3f5ec370: movk 1, a11
3f5ec380: move a11, *a14+, 1
3f5ec390: calla L3F5ECE40
3f5ec3c0: move a8, *a13(0x20), 1
3f5ec3e0: move a14, -*sp, 1
3f5ec3f0: move a8, *a14+, 1
3f5ec400: move @0x1c95c0, *a14+, 1
3f5ec430: movi 0x3f5f0748, a8
3f5ec460: move a8, *a14+, 1
3f5ec470: calla L3F5EFE20
3f5ec4a0: move a14, -*sp, 1
3f5ec4b0: movk 16, a11
3f5ec4c0: move a11, *a14+, 1
3f5ec4d0: movi 0x1cb820, a11
3f5ec500: move a11, *a14+, 1
3f5ec510: sub a9, a9
3f5ec520: move a9, *a14+, 1
3f5ec530: move *a13(0x20), *a14+, 1
3f5ec550: movi 0x1c85a0, a9
3f5ec580: move a9, *a14+, 1
3f5ec590: move *a13(0x0), *a14+, 1
3f5ec5b0: calla 0x3f5d3d70
3f5ec5e0: move *a13(0x20), a9, 1
3f5ec600: cmp a9, a8
3f5ec610: jreq L3F5EC750
3f5ec620: move a14, -*sp, 1
3f5ec630: movi 0x3f5f0770, a8
3f5ec660: move a8, *a14+, 1
3f5ec670: movi 0xffff, a11
3f5ec690: move a11, *a14+, 1
3f5ec6a0: calla 0x3f596830
3f5ec6d0: move a14, -*sp, 1
3f5ec6e0: move *a13(0x0), *a14+, 1
3f5ec700: calla 0x3f5e8930
3f5ec730: move a11, a8
3f5ec740: jruc L3F5EC810
L3F5EC750:
3f5ec750: movk 1, a11
3f5ec760: move a11, @0x1c9700, 1
3f5ec790: sub a9, a9
3f5ec7a0: move a9, @0x1c96e0, 1
3f5ec7d0: move a9, @0x1cb940, 1
3f5ec800: move *a13, a8, 1
L3F5EC810:
3f5ec810: move *sp(0x80), a14, 1
3f5ec830: mmfm sp, a9,a11,a13
3f5ec850: rets 2
3f5ec860: .word 0x098f
3f5ec870: .word 0x0054
3f5ec880: .word 0x4dcd
3f5ec890: .word 0x100e
3f5ec8a0: .word 0x07ab
3f5ec8b0: .word 0xb940
3f5ec8c0: .word 0x001c
3f5ec8d0: .word 0xca43
3f5ec8e0: .word 0x07a9
3f5ec8f0: .word 0x95c0
3f5ec900: .word 0x001c
3f5ec910: .word 0xa3cf
3f5ec920: .word 0x188b
3f5ec930: .word 0x936e
3f5ec940: .word 0x0d5f
3f5ec950: .word 0xc000
3f5ec960: .word 0x3fb2
3f5ec970: .word 0x0570
3f5ec980: .word 0x8109
3f5ec990: .word 0x07a9
3f5ec9a0: .word 0x95c0
3f5ec9b0: .word 0x001c
3f5ec9c0: .word 0xa3cf
3f5ec9d0: .word 0x0550
3f5ec9e0: .word 0x05ab
3f5ec9f0: .word 0x96e0
3f5eca00: .word 0x001c
3f5eca10: .word 0x936e
3f5eca20: .word 0x0d5f
3f5eca30: .word 0xc000
3f5eca40: .word 0x3fb2
3f5eca50: .word 0x0570
3f5eca60: .word 0xb109
3f5eca70: .word 0x0010
3f5eca80: .word 0x188b
3f5eca90: .word 0x836d
3f5ecaa0: .word 0x07a9
3f5ecab0: .word 0x96e0
3f5ecac0: .word 0x001c
3f5ecad0: .word 0x1029
3f5ecae0: .word 0x0789
3f5ecaf0: .word 0x96e0
3f5ecb00: .word 0x001c
3f5ecb10: .word 0xa3cf
3f5ecb20: .word 0x936e
3f5ecb30: .word 0xd60e
3f5ecb40: .word 0x95c0
3f5ecb50: .word 0x001c
3f5ecb60: .word 0x09e8
3f5ecb70: .word 0x0748
3f5ecb80: .word 0x3f5f
3f5ecb90: .word 0x930e
3f5ecba0: .word 0x0d5f
3f5ecbb0: .word 0xfe20
3f5ecbc0: .word 0x3f5e
3f5ecbd0: .word 0xa3cf
3f5ecbe0: .word 0x1a09
3f5ecbf0: move a9, *a14+, 1
3f5ecc00: movi 0x1cb820, a9
3f5ecc30: move a9, *a14+, 1
3f5ecc40: sub a9, a9
3f5ecc50: move a9, *a14+, 1
3f5ecc60: move a11, *a14+, 1
3f5ecc70: movi 0x1c85a0, a9
3f5ecca0: move a9, *a14+, 1
3f5eccb0: move *a13(0xffe0), *a14+, 1
3f5eccd0: calla 0x3f5d3d70
3f5ecd00: jruc L3F5ECD90
3f5ecd10: move a14, -*sp, 1
3f5ecd20: movk 3, a9
3f5ecd30: move a9, *a14+, 1
3f5ecd40: move *a13(0xffe0), *a14+, 1
3f5ecd60: calla L3F5EF610
L3F5ECD90:
3f5ecd90: move a14, -*sp, 1
3f5ecda0: move *a13(0xffe0), *a14+, 1
3f5ecdc0: calla 0x3f5e8930
3f5ecdf0: move *sp(0x80), a14, 1
3f5ece10: mmfm sp, a9,a11,a13
3f5ece30: rets 2
L3F5ECE40:
3f5ece40: mmtm sp, a7,a9,a11,a13
3f5ece60: move a14, a13
3f5ece70: move *a13(0xffa0), a11, 1
3f5ece90: move a14, -*sp, 1
3f5ecea0: setf 16, 0, 0
3f5eceb0: move *a13(0xffe0), a7, 0
3f5eced0: move a7, *a14+, 1
3f5ecee0: calla 0x3fb2c000
3f5ecf10: setf 16, 1, 0
3f5ecf20: move a8, *a11, 0
3f5ecf30: move a11, a9
3f5ecf40: addk 16, a9
3f5ecf50: move a14, -*sp, 1
3f5ecf60: move *a13(0xffc0), *a14+, 1
3f5ecf80: move a9, *a14+, 1
3f5ecf90: calla 0x3fb45720
3f5ecfc0: move a14, -*sp, 1
3f5ecfd0: move *a13(0xffc0), *a14+, 1
3f5ecff0: calla 0x3fb458d0
3f5ed020: sll 0x3, a8
3f5ed030: add a8, a9
3f5ed040: sub a7, a7
3f5ed050: setf 8, 1, 0
3f5ed060: move a7, *a9+, 0
3f5ed070: move a14, -*sp, 1
3f5ed080: movi 0x1c95e0, a7
3f5ed0b0: move a7, *a14+, 1
3f5ed0c0: move a9, *a14+, 1
3f5ed0d0: calla 0x3fb45720
3f5ed100: move a14, -*sp, 1
3f5ed110: move a7, *a14+, 1
3f5ed120: calla 0x3fb458d0
3f5ed150: sll 0x3, a8
3f5ed160: add a8, a9
3f5ed170: sub a7, a7
3f5ed180: setf 8, 1, 0
3f5ed190: move a7, *a9+, 0
3f5ed1a0: move a9, a7
3f5ed1b0: sub a11, a7
3f5ed1c0: move a7, a8
3f5ed1d0: sra 0x3, a8
3f5ed1e0: move *sp(0xa0), a14, 1
3f5ed200: mmfm sp, a7,a9,a11,a13
3f5ed220: rets 2
3f5ed230: .word 0x098f
3f5ed240: .word 0x0054
3f5ed250: .word 0x4dcd
3f5ed260: .word 0x0b0e
3f5ed270: .word 0x0860
3f5ed280: .word 0x456b
3f5ed290: .word 0xb36d
3f5ed2a0: .word 0x0040
3f5ed2b0: .word 0x07ab
3f5ed2c0: .word 0x9700
3f5ed2d0: .word 0x001c
3f5ed2e0: .word 0xca0c
3f5ed2f0: .word 0x456b
3f5ed300: .word 0x078b
3f5ed310: .word 0x9700
3f5ed320: .word 0x001c
3f5ed330: .word 0xa3cf
3f5ed340: .word 0x936e
3f5ed350: .word 0x0d5f
3f5ed360: .word 0xb9d0
3f5ed370: .word 0x3f5e
3f5ed380: .word 0x0788
3f5ed390: .word 0xb960
3f5ed3a0: .word 0x001c
3f5ed3b0: .word 0x07ab
3f5ed3c0: .word 0x96e0
3f5ed3d0: .word 0x001c
3f5ed3e0: .word 0x102b
3f5ed3f0: .word 0x078b
3f5ed400: .word 0x96e0
3f5ed410: .word 0x001c
3f5ed420: .word 0x07ab
3f5ed430: .word 0xb940
3f5ed440: .word 0x001c
3f5ed450: .word 0xca03
3f5ed460: .word 0x4508
3f5ed470: .word 0xc000
3f5ed480: .word 0x0213
L3F5ED490:
3f5ed490: move a14, -*sp, 1
3f5ed4a0: movk 20, a11
3f5ed4b0: move a11, *a14+, 1
3f5ed4c0: calla 0x3f5ea3a0
L3F5ED4F0:
3f5ed4f0: movk 16, a11
3f5ed500: move a11, @0x1cb920, 1
3f5ed530: move a14, -*sp, 1
3f5ed540: movi 0x1cb920, a9
3f5ed570: move a9, *a14+, 1
3f5ed580: movi 0x1cb8a0, a11
3f5ed5b0: move a11, *a14+, 1
3f5ed5c0: sub a9, a9
3f5ed5d0: move a9, *a14+, 1
3f5ed5e0: movi 0x204, a9
3f5ed600: move a9, *a14+, 1
3f5ed610: move @0x1cb960, *a14+, 1
3f5ed640: move *a13(0xffe0), *a14+, 1
3f5ed660: calla 0x3f5d7d50
3f5ed690: move a8, *a13, 1
3f5ed6a0: move a8, a8
3f5ed6b0: jreq L3F5ED4F0
3f5ed6c0: move *a13, a11, 1
3f5ed6d0: jrge L3F5ED830
3f5ed6e0: move a14, -*sp, 1
3f5ed6f0: move @0x1b3900, a9, 1
3f5ed720: move *a9(0x100), a11, 1
3f5ed740: movb *a11(0x20), a8
3f5ed760: move a8, *a14+, 1
3f5ed770: movi 0x3f5f0810, a8
3f5ed7a0: move a8, *a14+, 1
3f5ed7b0: movi 0xffff, a11
3f5ed7d0: move a11, *a14+, 1
3f5ed7e0: calla 0x3f5969b0
3f5ed810: jauc L3F5EF0A0
L3F5ED830:
3f5ed830: setf 16, 0, 0
3f5ed840: move @0x1cb8b0, @0x1cb830, 0
3f5ed890: move a14, -*sp, 1
3f5ed8a0: move a11, *a14+, 1
3f5ed8b0: move @0x1cb960, *a14+, 1
3f5ed8e0: movi 0x3f5f0928, a8
3f5ed910: move a8, *a14+, 1
3f5ed920: calla L3F5EFE20
3f5ed950: move @0x1cb960, a9, 1
3f5ed980: move a14, -*sp, 1
3f5ed990: setf 16, 1, 0
3f5ed9a0: move *a9, a8, 0
3f5ed9b0: move a8, *a14+, 1
3f5ed9c0: calla 0x3fb2c000
3f5ed9f0: setf 16, 1, 0
3f5eda00: move a8, *a9, 0
3f5eda10: move @0x1cb960, a9, 1
3f5eda40: move a14, -*sp, 1
3f5eda50: move *a9(0x10), a8, 0
3f5eda70: move a8, *a14+, 1
3f5eda80: calla 0x3fb2c000
3f5edab0: setf 16, 1, 0
3f5edac0: move a8, *a9(0x10), 0
3f5edae0: move @0x1cb960, a9, 1
3f5edb10: move *a9, a11, 0
3f5edb20: subk 5, a11
3f5edb30: jane L3F5EE3A0
3f5edb50: move a14, -*sp, 1
3f5edb60: addk 32, a9
3f5edb70: move a9, *a14+, 1
3f5edb80: move @0x1cb960, a11, 1
3f5edbb0: move *a11(0x10), a8, 0
3f5edbd0: move a8, *a14+, 1
3f5edbe0: movi 0x3f5f0970, a8
3f5edc10: move a8, *a14+, 1
3f5edc20: movi 0xffff, a9
3f5edc40: move a9, *a14+, 1
3f5edc50: calla 0x3f596be0
3f5edc80: jruc L3F5EE110
3f5edc90: move @0x1b3900, a11, 1
3f5edcc0: move *a11(0x100), a9, 1
3f5edce0: movk 5, a11
3f5edcf0: movb a11, *a9(0x20)
3f5edd10: jruc L3F5EE300
3f5edd20: move @0x1b3900, a11, 1
3f5edd50: move *a11(0x100), a9, 1
3f5edd70: movk 2, a11
3f5edd80: movb a11, *a9(0x20)
3f5edda0: jruc L3F5EE300
3f5eddb0: move @0x1b3900, a11, 1
3f5edde0: move *a11(0x100), a9, 1
3f5ede00: movk 1, a11
3f5ede10: movb a11, *a9(0x20)
3f5ede30: jruc L3F5EE300
3f5ede40: move @0x1b3900, a11, 1
3f5ede70: move *a11(0x100), a9, 1
3f5ede90: movk 28, a11
3f5edea0: movb a11, *a9(0x20)
3f5edec0: jruc L3F5EE300
3f5eded0: move @0x1b3900, a11, 1
3f5edf00: move *a11(0x100), a9, 1
3f5edf20: movk 22, a11
3f5edf30: movb a11, *a9(0x20)
3f5edf50: jruc L3F5EE300
3f5edf60: move @0x1b3900, a11, 1
3f5edf90: move *a11(0x100), a9, 1
3f5edfb0: movk 13, a11
3f5edfc0: movb a11, *a9(0x20)
3f5edfe0: jruc L3F5EE300
3f5edff0: move @0x1b3900, a11, 1
3f5ee020: move *a11(0x100), a9, 1
3f5ee040: movk 17, a11
3f5ee050: movb a11, *a9(0x20)
3f5ee070: jruc L3F5EE300
3f5ee080: move @0x1b3900, a11, 1
3f5ee0b0: move *a11(0x100), a9, 1
3f5ee0d0: movk 1, a11
3f5ee0e0: movb a11, *a9(0x20)
3f5ee100: jruc L3F5EE300
L3F5EE110:
3f5ee110: move @0x1cb960, a11, 1
3f5ee140: setf 16, 1, 0
3f5ee150: move *a11(0x10), a8, 0
3f5ee170: cmpi 0x7, a8
3f5ee190: jrhi L3F5EE300
3f5ee1a0: sll 0x5, a8
3f5ee1b0: addi 0x3f5ee200, a8
3f5ee1e0: move *a8, a8, 1
3f5ee1f0: jump a8
L3F5EE200:
3f5ee200: .word 0xdc90
3f5ee210: .word 0x3f5e
3f5ee220: .word 0xdd20
3f5ee230: .word 0x3f5e
3f5ee240: .word 0xddb0
3f5ee250: .word 0x3f5e
3f5ee260: .word 0xde40
3f5ee270: .word 0x3f5e
3f5ee280: .word 0xded0
3f5ee290: .word 0x3f5e
3f5ee2a0: .word 0xdf60
3f5ee2b0: .word 0x3f5e
3f5ee2c0: .word 0xdff0
3f5ee2d0: .word 0x3f5e
3f5ee2e0: .word 0xe080
3f5ee2f0: .word 0x3f5e
L3F5EE300:
3f5ee300: move a14, -*sp, 1
3f5ee310: move *a13(0xffe0), *a14+, 1
3f5ee330: calla 0x3f5e8930
3f5ee360: movi 0xffff, a8
3f5ee380: jauc L3F5EF5C0
L3F5EE3A0:
3f5ee3a0: move *a9, a11, 0
3f5ee3b0: subk 3, a11
3f5ee3c0: jrne L3F5EE720
3f5ee3d0: move *a9(0x10), a11, 0
3f5ee3f0: move @0x1c96e0, a9, 1
3f5ee420: cmp a9, a11
3f5ee430: jreq L3F5EE720
3f5ee440: move @0x1cb960, a11, 1
3f5ee470: move *a11(0x10), a11, 0
3f5ee490: inc a11
3f5ee4a0: cmp a9, a11
3f5ee4b0: jreq L3F5EE720
3f5ee4c0: move @0x1cb960, a11, 1
3f5ee4f0: move *a11(0x10), a11, 0
3f5ee510: cmp a9, a11
3f5ee520: jalt L3F5ED490
3f5ee540: move a14, -*sp, 1
3f5ee550: move *a13(0xffe0), *a14+, 1
3f5ee570: calla 0x3f5e8930
3f5ee5a0: move a14, -*sp, 1
3f5ee5b0: move @0x1c96e0, *a14+, 1
3f5ee5e0: move @0x1cb960, a11, 1
3f5ee610: setf 16, 1, 0
3f5ee620: move *a11(0x10), a8, 0
3f5ee640: move a8, *a14+, 1
3f5ee650: movi 0x3f5f0a60, a8
3f5ee680: move a8, *a14+, 1
3f5ee690: movk 4, a9
3f5ee6a0: move a9, *a14+, 1
3f5ee6b0: calla 0x3f596be0
3f5ee6e0: movi 0xffff, a8
3f5ee700: jauc L3F5EF5C0
L3F5EE720:
3f5ee720: move @0x1c95c0, a11, 1
3f5ee750: move a14, -*sp, 1
3f5ee760: movk 4, a9
3f5ee770: move a9, *a14+, 1
3f5ee780: calla 0x3fb2c000
3f5ee7b0: setf 16, 1, 0
3f5ee7c0: move a8, *a11, 0
3f5ee7d0: move @0x1c95c0, a11, 1
3f5ee800: move a14, -*sp, 1
3f5ee810: setf 16, 0, 0
3f5ee820: move @0x1c96e0, a9, 0
3f5ee850: move a9, *a14+, 1
3f5ee860: calla 0x3fb2c000
3f5ee890: setf 16, 1, 0
3f5ee8a0: move a8, *a11(0x10), 0
3f5ee8c0: movk 4, a11
3f5ee8d0: move a11, *a13(0x20), 1
3f5ee8f0: move a14, -*sp, 1
3f5ee900: move a11, *a14+, 1
3f5ee910: move @0x1c95c0, *a14+, 1
3f5ee940: movi 0x3f5f0748, a8
3f5ee970: move a8, *a14+, 1
3f5ee980: calla L3F5EFE20
3f5ee9b0: move a14, -*sp, 1
3f5ee9c0: movk 16, a9
3f5ee9d0: move a9, *a14+, 1
3f5ee9e0: movi 0x1cb820, a9
3f5eea10: move a9, *a14+, 1
3f5eea20: sub a9, a9
3f5eea30: move a9, *a14+, 1
3f5eea40: move a11, *a14+, 1
3f5eea50: movi 0x1c85a0, a9
3f5eea80: move a9, *a14+, 1
3f5eea90: move *a13(0xffe0), *a14+, 1
3f5eeab0: calla 0x3f5d3d70
3f5eeae0: cmp a11, a8
3f5eeaf0: jreq L3F5EEBC0
3f5eeb00: move a14, -*sp, 1
3f5eeb10: movi 0x3f5f0c28, a8
3f5eeb40: move a8, *a14+, 1
3f5eeb50: movi 0xffff, a9
3f5eeb70: move a9, *a14+, 1
3f5eeb80: calla 0x3f596830
3f5eebb0: jruc L3F5EF0A0
L3F5EEBC0:
3f5eebc0: move @0x1cb960, a9, 1
3f5eebf0: setf 16, 1, 0
3f5eec00: move *a9, a9, 0
3f5eec10: subk 3, a9
3f5eec20: jane L3F5ED490
3f5eec40: move @0x1cb960, a9, 1
3f5eec70: move *a9(0x10), a9, 0
3f5eec90: move @0x1c96e0, a11, 1
3f5eecc0: cmp a11, a9
3f5eecd0: jane L3F5ED490
3f5eecf0: move *a13, a9, 1
3f5eed00: subk 4, a9
3f5eed10: move a9, *a13(0x20), 1
3f5eed30: move *a13(0xffa0), a11, 1
3f5eed50: cmp a11, a9
3f5eed60: jrle L3F5EEED0
3f5eed70: move a14, -*sp, 1
3f5eed80: move a9, *a14+, 1
3f5eed90: move a11, *a14+, 1
3f5eeda0: movi 0x3f5f0c98, a8
3f5eedd0: move a8, *a14+, 1
3f5eede0: movi 0xffff, a9
3f5eee00: move a9, *a14+, 1
3f5eee10: calla 0x3f596be0
3f5eee40: move a14, -*sp, 1
3f5eee50: movk 3, a9
3f5eee60: move a9, *a14+, 1
3f5eee70: move *a13(0xffe0), *a14+, 1
3f5eee90: calla L3F5EF610
3f5eeec0: jruc L3F5EF0A0
L3F5EEED0:
3f5eeed0: move a14, -*sp, 1
3f5eeee0: move a9, *a14+, 1
3f5eeef0: move *a13(0xffc0), *a14+, 1
3f5eef10: move @0x1cb960, a9, 1
3f5eef40: addk 32, a9
3f5eef50: move a9, *a14+, 1
3f5eef60: calla 0x3fb44400
3f5eef90: move *a13(0x40), a9, 1
3f5eefb0: move *a13(0x20), a11, 1
3f5eefd0: add a11, a9
3f5eefe0: move a9, *a13(0x40), 1
3f5ef000: cmpi 0x200, a11
3f5ef020: movk 1, a9
3f5ef030: jrne L3F5EF050
3f5ef040: sub a9, a9
L3F5EF050:
3f5ef050: move a9, @0x1cb940, 1
3f5ef080: move a11, a8
3f5ef090: jruc L3F5EF5C0
L3F5EF0A0:
3f5ef0a0: move a14, -*sp, 1
3f5ef0b0: movi 0x3f5f0e18, a8
3f5ef0e0: move a8, *a14+, 1
3f5ef0f0: move a13, a11
3f5ef100: addi 0x60, a11
3f5ef120: move a11, *a14+, 1
3f5ef130: calla 0x3f580e40
3f5ef160: move a14, -*sp, 1
3f5ef170: move a11, *a14+, 1
3f5ef180: movi 0xffff, a9
3f5ef1a0: move a9, *a14+, 1
3f5ef1b0: calla 0x3f596830
3f5ef1e0: move *a13(0xffe0), a9, 1
3f5ef200: inc a9
3f5ef210: jreq L3F5EF500
3f5ef220: move @0x1c95c0, a9, 1
3f5ef250: move a14, -*sp, 1
3f5ef260: movk 4, a11
3f5ef270: move a11, *a14+, 1
3f5ef280: calla 0x3fb2c000
3f5ef2b0: setf 16, 1, 0
3f5ef2c0: move a8, *a9, 0
3f5ef2d0: move @0x1c95c0, a9, 1
3f5ef300: move a14, -*sp, 1
3f5ef310: setf 16, 0, 0
3f5ef320: move @0x1c96e0, a11, 0
3f5ef350: move a11, *a14+, 1
3f5ef360: calla 0x3fb2c000
3f5ef390: setf 16, 1, 0
3f5ef3a0: move a8, *a9(0x10), 0
3f5ef3c0: move a14, -*sp, 1
3f5ef3d0: movk 16, a11
3f5ef3e0: move a11, *a14+, 1
3f5ef3f0: movi 0x1cb820, a9
3f5ef420: move a9, *a14+, 1
3f5ef430: sub a11, a11
3f5ef440: move a11, *a14+, 1
3f5ef450: movk 4, a11
3f5ef460: move a11, *a14+, 1
3f5ef470: movi 0x1c85a0, a11
3f5ef4a0: move a11, *a14+, 1
3f5ef4b0: move *a13(0xffe0), *a14+, 1
3f5ef4d0: calla 0x3f5d3d70
L3F5EF500:
3f5ef500: move a14, -*sp, 1
3f5ef510: movi 0x3f5f0e68, a8
3f5ef540: move a8, *a14+, 1
3f5ef550: movi 0xffff, a11
3f5ef570: move a11, *a14+, 1
3f5ef580: calla 0x3f596830
3f5ef5b0: move a11, a8
L3F5EF5C0:
3f5ef5c0: move *sp(0x80), a14, 1
3f5ef5e0: mmfm sp, a9,a11,a13
3f5ef600: rets 2
L3F5EF610:
3f5ef610: mmtm sp, a7,a9,a10,a11,a13
3f5ef630: move a14, a13
3f5ef640: addk 32, a14
3f5ef650: move a14, -*sp, 1
3f5ef660: move *a13(0xffe0), *a14+, 1
3f5ef680: calla 0x3f5e41c0
3f5ef6b0: move a8, a8
3f5ef6c0: jreq L3F5EFDD0
3f5ef6d0: movi 0x1c85a0, a9
3f5ef700: move a14, -*sp, 1
3f5ef710: movk 5, a11
3f5ef720: move a11, *a14+, 1
3f5ef730: calla 0x3fb2c000
3f5ef760: setf 16, 1, 0
3f5ef770: move a8, *a9, 0
3f5ef780: move a14, -*sp, 1
3f5ef790: setf 16, 0, 0
3f5ef7a0: move *a13(0xffc0), a11, 0
3f5ef7c0: move a11, *a14+, 1
3f5ef7d0: calla 0x3fb2c000
3f5ef800: setf 16, 1, 0
3f5ef810: move a8, *a9(0x10), 0
3f5ef830: movi 0x1cb980, a10
3f5ef860: move *a10, a11, 1
3f5ef870: jrlt L3F5EF910
L3F5EF880:
3f5ef880: move *a10, a11, 1
3f5ef890: move *a13(0xffc0), a7, 1
3f5ef8b0: cmp a7, a11
3f5ef8c0: jreq L3F5EF910
3f5ef8d0: addi 0x40, a10
3f5ef8f0: move *a10, a11, 1
3f5ef900: jrge L3F5EF880
L3F5EF910:
3f5ef910: move *a10, a11, 1
3f5ef920: jrge L3F5EFA00
3f5ef930: move *a13(0xffc0), a11, 1
3f5ef950: sll 0x5, a11
3f5ef960: addi 0x1b5290, a11
3f5ef990: move *a11(0x0), *a10(0x20), 1
3f5ef9c0: sub a11, a11
3f5ef9d0: setf 16, 1, 0
3f5ef9e0: move a11, *a9(0x10), 0
L3F5EFA00:
3f5efa00: move a14, -*sp, 1
3f5efa10: move *a10(0x20), *a14+, 1
3f5efa30: move a9, a11
3f5efa40: addk 32, a11
3f5efa50: move a11, *a14+, 1
3f5efa60: calla 0x3fb45720
3f5efa90: move a14, -*sp, 1
3f5efaa0: move *a10(0x20), *a14+, 1
3f5efac0: calla 0x3fb458d0
3f5efaf0: addk 4, a8
3f5efb00: move a8, *a13, 1
3f5efb10: move a14, -*sp, 1
3f5efb20: move a8, *a14+, 1
3f5efb30: move a9, *a14+, 1
3f5efb40: movi 0x3f5f0748, a8
3f5efb70: move a8, *a14+, 1
3f5efb80: calla L3F5EFE20
3f5efbb0: move a14, -*sp, 1
3f5efbc0: movk 16, a11
3f5efbd0: move a11, *a14+, 1
3f5efbe0: movi 0x1cb820, a7
3f5efc10: move a7, *a14+, 1
3f5efc20: sub a11, a11
3f5efc30: move a11, *a14+, 1
3f5efc40: move *a13(0x0), *a14+, 1
3f5efc60: movi 0x1c85a0, a11
3f5efc90: move a11, *a14+, 1
3f5efca0: move *a13(0xffe0), *a14+, 1
3f5efcc0: calla 0x3f5d3d70
3f5efcf0: move *a13, a7, 1
3f5efd00: cmp a7, a8
3f5efd10: jreq L3F5EFDD0
3f5efd20: move a14, -*sp, 1
3f5efd30: movi 0x3f5f1490, a8
3f5efd60: move a8, *a14+, 1
3f5efd70: movi 0xffff, a11
3f5efd90: move a11, *a14+, 1
3f5efda0: calla 0x3f596830
L3F5EFDD0:
3f5efdd0: move *sp(0xc0), a14, 1
3f5efdf0: mmfm sp, a7,a9,a10,a11,a13
3f5efe10: rets 2
L3F5EFE20:
3f5efe20: mmtm sp, a7,a9,a10,a11,a13
3f5efe40: move a14, a13
3f5efe50: addk 16, a14
3f5efe60: move a14, -*sp, 1
3f5efe70: move *a13(0xffc0), a11, 1
3f5efe90: setf 16, 1, 0
3f5efea0: move *a11, a8, 0
3f5efeb0: move a8, *a14+, 1
3f5efec0: calla 0x3fb2c000
3f5efef0: setf 16, 0, 0
3f5eff00: move a8, *a13, 0
3f5eff10: setf 16, 1, 0
3f5eff20: move @0x1b9460, a11, 0
3f5eff50: subk 2, a11
3f5eff60: jrlt L3F5F01A0
3f5eff70: setf 16, 0, 0
3f5eff80: move *a13, a11, 0
3f5eff90: jreq L3F5F0100
3f5effa0: subk 5, a11
3f5effb0: jrls L3F5F0100
3f5effc0: jruc L3F5F0100
L3F5EFFD0:
3f5effd0: move *a13(0xffa0), a11, 1
3f5efff0: subk 2, a11
3f5f0000: move a11, *a13(0xffa0), 1
3f5f0020: move *a13(0xffc0), a7, 1
3f5f0040: move a7, a9
3f5f0050: addk 16, a9
3f5f0060: move a9, a10
3f5f0070: move a14, -*sp, 1
3f5f0080: sub a7, a7
3f5f0090: move a7, *a14+, 1
3f5f00a0: move a9, *a14+, 1
3f5f00b0: calla 0x3f9329f0
3f5f00e0: move a8, a9
3f5f00f0: jruc L3F5F01A0
L3F5F0100:
3f5f0100: move *a13, a8, 0
3f5f0110: dec a8
3f5f0120: jreq L3F5EFFD0
3f5f0130: dec a8
3f5f0140: jreq L3F5EFFD0
3f5f0150: dec a8
3f5f0160: jreq L3F5F01A0
3f5f0170: dec a8
3f5f0180: jreq L3F5F01A0
3f5f0190: dec a8
L3F5F01A0:
3f5f01a0: move *sp(0xc0), a14, 1
3f5f01c0: mmfm sp, a7,a9,a10,a11,a13
3f5f01e0: rets 2
3f5f01f0: .word 0x098f
3f5f0200: .word 0x0014
3f5f0210: .word 0x4dcd
3f5f0220: .word 0x0b0e
3f5f0230: .word 0x1060
3f5f0240: .word 0x456b
3f5f0250: .word 0x836d
3f5f0260: .word 0xb36d
3f5f0270: .word 0x0020
3f5f0280: .word 0x87ab
3f5f0290: .word 0xca1b
3f5f02a0: .word 0xb7ab
3f5f02b0: .word 0x0020
3f5f02c0: .word 0x102b
3f5f02d0: .word 0xb36d
3f5f02e0: .word 0x0020
3f5f02f0: .word 0xa3cf
3f5f0300: .word 0x1a0b
3f5f0310: .word 0x936e
3f5f0320: .word 0x09eb
3f5f0330: .word 0xb820
3f5f0340: .word 0x001c
3f5f0350: .word 0x936e
3f5f0360: .word 0x456b
3f5f0370: .word 0x936e
3f5f0380: .word 0x09cb
3f5f0390: .word 0x0204
3f5f03a0: .word 0x936e
3f5f03b0: .word 0x4dab
3f5f03c0: .word 0x0b0b
3f5f03d0: .word 0x0040
3f5f03e0: .word 0x936e
3f5f03f0: .word 0xd3ae
3f5f0400: .word 0xffe0
3f5f0410: .word 0x0d5f
3f5f0420: .word 0x7d50
3f5f0430: .word 0x3f5d
3f5f0440: .word 0xc0e3
3f5f0450: .word 0xb7a8
3f5f0460: .word 0x0020
3f5f0470: .word 0xb7ee
3f5f0480: .word 0x0060
3f5f0490: .word 0x09af
3f5f04a0: .word 0x2800
3f5f04b0: .word 0x0962
3f5f04c0: .word 0x6674
3f5f04d0: .word 0x7074
3f5f04e0: .word 0x6f5f
3f5f04f0: .word 0x6570
3f5f0500: .word 0x3a6e
3f5f0510: .word 0x7420
3f5f0520: .word 0x7063
3f5f0530: .word 0x735f
3f5f0540: .word 0x636f
3f5f0550: .word 0x656b
3f5f0560: .word 0x2074
3f5f0570: .word 0x6572
3f5f0580: .word 0x7574
3f5f0590: .word 0x6e72
3f5f05a0: .word 0x6465
3f5f05b0: .word 0x7620
3f5f05c0: .word 0x6c61
3f5f05d0: .word 0x6575
3f5f05e0: .word 0x3c20
3f5f05f0: .word 0x3020
3f5f0600: .word 0x2820
3f5f0610: .word 0x6425
3f5f0620: .word 0x0a29
L3F5F0630:
3f5f0630: .word 0x7400
3f5f0640: .word 0x7466
3f5f0650: .word 0x5f70
3f5f0660: .word 0x706f
3f5f0670: .word 0x6e65
3f5f0680: .word 0x203a
3f5f0690: .word 0x6162
3f5f06a0: .word 0x2064
3f5f06b0: .word 0x6f68
3f5f06c0: .word 0x7473
3f5f06d0: .word 0x6120
3f5f06e0: .word 0x6464
3f5f06f0: .word 0x6572
3f5f0700: .word 0x7373
3f5f0710: .word 0x2820
3f5f0720: .word 0x7325
3f5f0730: .word 0x0a29
L3F5F0740:
3f5f0740: .word 0x7300
3f5f0750: .word 0x6e65
3f5f0760: .word 0x0074
L3F5F0770:
3f5f0770: .word 0x6674
3f5f0780: .word 0x7074
3f5f0790: .word 0x203a
3f5f07a0: .word 0x6573
3f5f07b0: .word 0x646e
3f5f07c0: .word 0x6f74
3f5f07d0: .word 0x6520
3f5f07e0: .word 0x7272
3f5f07f0: .word 0x726f
3f5f0800: .word 0x000a
L3F5F0810:
3f5f0810: .word 0x6674
3f5f0820: .word 0x7074
3f5f0830: .word 0x725f
3f5f0840: .word 0x6165
3f5f0850: .word 0x3a64
3f5f0860: .word 0x7220
3f5f0870: .word 0x6365
3f5f0880: .word 0x2076
3f5f0890: .word 0x6572
3f5f08a0: .word 0x7574
3f5f08b0: .word 0x6e72
3f5f08c0: .word 0x6465
3f5f08d0: .word 0x6520
3f5f08e0: .word 0x7272
3f5f08f0: .word 0x726f
3f5f0900: .word 0x2520
3f5f0910: .word 0x0a64
L3F5F0920:
3f5f0920: .word 0x7200
3f5f0930: .word 0x6365
3f5f0940: .word 0x6965
3f5f0950: .word 0x6576
3f5f0960: .word 0x0064
L3F5F0970:
3f5f0970: .word 0x6674
3f5f0980: .word 0x7074
3f5f0990: .word 0x725f
3f5f09a0: .word 0x6165
3f5f09b0: .word 0x3a64
3f5f09c0: .word 0x4520
3f5f09d0: .word 0x7272
3f5f09e0: .word 0x726f
3f5f09f0: .word 0x6320
3f5f0a00: .word 0x646f
3f5f0a10: .word 0x2065
3f5f0a20: .word 0x6425
3f5f0a30: .word 0x203a
3f5f0a40: .word 0x7325
3f5f0a50: .word 0x000a
L3F5F0A60:
3f5f0a60: .word 0x6674
3f5f0a70: .word 0x7074
3f5f0a80: .word 0x725f
3f5f0a90: .word 0x6165
3f5f0aa0: .word 0x3a64
3f5f0ab0: .word 0x7520
3f5f0ac0: .word 0x656e
3f5f0ad0: .word 0x7078
3f5f0ae0: .word 0x6365
3f5f0af0: .word 0x6574
3f5f0b00: .word 0x2064
3f5f0b10: .word 0x6c62
3f5f0b20: .word 0x636f
3f5f0b30: .word 0x206b
3f5f0b40: .word 0x6425
3f5f0b50: .word 0x202c
3f5f0b60: .word 0x6177
3f5f0b70: .word 0x746e
3f5f0b80: .word 0x6465
3f5f0b90: .word 0x2520
3f5f0ba0: .word 0x2e64
3f5f0bb0: .word 0x7220
3f5f0bc0: .word 0x7465
3f5f0bd0: .word 0x7275
3f5f0be0: .word 0x696e
3f5f0bf0: .word 0x676e
3f5f0c00: .word 0x2d20
3f5f0c10: .word 0x0a31
L3F5F0C20:
3f5f0c20: .word 0x7400
3f5f0c30: .word 0x7466
3f5f0c40: .word 0x3a70
3f5f0c50: .word 0x7320
3f5f0c60: .word 0x6e65
3f5f0c70: .word 0x7464
3f5f0c80: .word 0x0a6f
L3F5F0C90:
3f5f0c90: .word 0x7400
3f5f0ca0: .word 0x7466
3f5f0cb0: .word 0x5f70
3f5f0cc0: .word 0x6572
3f5f0cd0: .word 0x6461
3f5f0ce0: .word 0x203a
3f5f0cf0: .word 0x7562
3f5f0d00: .word 0x7366
3f5f0d10: .word 0x7a69
3f5f0d20: .word 0x2065
3f5f0d30: .word 0x2528
3f5f0d40: .word 0x2964
3f5f0d50: .word 0x7420
3f5f0d60: .word 0x6f6f
3f5f0d70: .word 0x7320
3f5f0d80: .word 0x616d
3f5f0d90: .word 0x6c6c
3f5f0da0: .word 0x6620
3f5f0db0: .word 0x726f
3f5f0dc0: .word 0x2520
3f5f0dd0: .word 0x2064
3f5f0de0: .word 0x7962
3f5f0df0: .word 0x6574
3f5f0e00: .word 0x0a73
L3F5F0E10:
3f5f0e10: .word 0x7400
3f5f0e20: .word 0x7466
3f5f0e30: .word 0x5f70
3f5f0e40: .word 0x6572
3f5f0e50: .word 0x6461
L3F5F0E60:
3f5f0e60: .word 0x7400
3f5f0e70: .word 0x7466
3f5f0e80: .word 0x5f70
3f5f0e90: .word 0x6572
3f5f0ea0: .word 0x6461
3f5f0eb0: .word 0x203a
3f5f0ec0: .word 0x6e69
3f5f0ed0: .word 0x6120
3f5f0ee0: .word 0x6f62
3f5f0ef0: .word 0x7472
3f5f0f00: .word 0x202e
3f5f0f10: .word 0x6572
3f5f0f20: .word 0x7574
3f5f0f30: .word 0x6e72
3f5f0f40: .word 0x6e69
3f5f0f50: .word 0x2067
3f5f0f60: .word 0x312d
3f5f0f70: .word 0x000a
3f5f0f80: .word 0x6e55
3f5f0f90: .word 0x6564
3f5f0fa0: .word 0x6966
3f5f0fb0: .word 0x656e
3f5f0fc0: .word 0x2064
3f5f0fd0: .word 0x7265
3f5f0fe0: .word 0x6f72
3f5f0ff0: .word 0x2072
+590
View File
@@ -0,0 +1,590 @@
# VT1200 MAME bring-up log
Gate-by-gate boot progress. Companion to `FULL_BOOT_ESTIMATE.md` (the cost estimate)
and `FINDINGS.md` (the original harness + font work).
Goal: get the driver to actually boot the terminal, by discovering each hardware
handshake the firmware waits on and modelling it correctly.
---
## Harness features added (all opt-in via env vars)
| env var | effect |
|---|---|
| `VT1200_BOARD_LOG=<path>` | log every distinct (addr, PC) access to the three undecoded board windows |
| `VT1200_BOARD_MAP=<a=v;...>` | per-address fixed return values, e.g. `0x06200001=1` |
| `VT1200_BOARD_DEFAULT=<v>` | value for addresses with no override |
| `VT1200_BOARD_MODEL=handshake` | write-back registers **plus a self-clearing busy bit** |
| `VT1200_BOARD_BUSY=<addr>` / `_TICKS=<n>` / `_BIT=<mask>` | tune the handshake |
| `VT1200_BOARD_RAM=1` | windows behave as plain read/write RAM |
| `VT1200_NO_RENDER=1` | restore the old blank-everything video behaviour |
| `VT1200_DUMP_FRAME=<n>` / `VT1200_DUMP_DIR=<d>` | write that frame as a PPM |
With **no** env vars set the driver behaves exactly as before. Tools: `progress.lua`
(where is it), `stackwalk.lua` (who called it), `coverage.lua` (progress vs loop),
`dpyctl.lua` (display registers).
---
## Gates found, in order
### Gate 1 — hardware-ready poll (SOLVED, real value gate)
```
bcf240: CALLA delay(100)
bcf2a0: MOVE *A9(10h),A11,0 ; read the 0x6200000 window
bcf2c0: BTST 0h,A11
bcf2d0: JREQ BCF200h ; retry until bit0 set
```
`while (!(read8(0x06200010) & 1)) delay(100);`
Fixed with a single override on the harness's address `0x06200001`. Verified: the
firmware leaves the poll and runs on into bank 6.
### Gate 2 — NOT a gate (a pure delay)
`008880: MOVI 112A880h,A0` / `0088b0: DSJS A0,88B0h` — 18,000,000 iterations inside a
routine that writes `0640000D/E/F` with long settling delays. Passes with time; no
value needed. **Do not confuse a `DSJS` spin for a missing register.**
### Gate 3 — the register is a HANDSHAKE, so constants cannot work
The same register bit is polled with **opposite polarity**:
```
bcf420: BTST 0h,A9 JRNE -> waits for bit0 SET (command accepted)
bce670: BTST 0h,A11 JREQ -> waits for bit0 CLEAR (operation finished)
```
Therefore "the correct value" is not a constant. Implemented a stateful model:
registers are write-back RAM, and the busy bit arms on any write and clears after
`VT1200_BOARD_BUSY_TICKS` reads.
Result: with `VT1200_BOARD_MODEL=handshake VT1200_BOARD_BUSY_TICKS=2` the boot leaves
early POST and reaches the **display/blit** code.
### Gate 4 — graphics/blit-complete poll (needs a stateful model, like gate 3)
In the boot bank, immediately after a TMS34010 graphics operation:
```
004880: JREQ 4960h
004a10: FILL XY ; graphics fill
004a20: CMPI 32h,A10 / JRNE 4BA0h
004a60: MOVE @64000D0h,A0,0 ; read the 0x6400000 window
004a90: BTST 2h,A0 ; test BIT 2
004aa0: JAEQ 3F204BA0h ; bit clear -> branch away
```
The access log corroborates it exactly: `R 0640000D pc=3F204A90`. So the firmware waits on
**bit 2 of the 0x6400000 window right after a graphics fill** — i.e. a
"graphics/blit complete" status bit.
Measured:
| `0640000D` bit 2 | result |
|---|---|
| `0` (stub default) | parked in the display/blit loop, 59 distinct PCs |
| `4` (forced set) | falls back into the POST video/refresh **delay** loop, 10 distinct PCs |
**Neither boots.** Forcing the bit constant simply relocates the wedge — the same lesson
as gate 3. These board status bits are **dynamic handshakes** (busy → done), so a static
value can never satisfy every site that reads them.
### The shape of the problem (worth recording)
Every gate so far has been one of just two kinds:
1. **A pure `DSJS` delay** (gate 2) — passes with time, needs nothing.
2. **A status/handshake bit** (gates 1, 3, 4) — needs *behaviour*, not a value.
That is a much better-scoped problem than "decode an unknown ASIC": the work is to
understand the **semantics of a handful of status bits**, not hundreds of registers.
---
## Where it stands
| stage | stuck at |
|---|---|
| no stubs | `PC=3FDCE400` — one instruction, forever |
| gate 1 fixed | runs into bank 6, then the POST delay loop |
| handshake model | **display/blit code**, ~59–72 distinct PCs, still discovering new ones |
| + 4 MiB RAM | unchanged — size alone is not the blocker |
| + gate 4 bit forced | moves to the POST delay loop — also not it |
`coverage.lua` shows new PCs still appearing at frame 3000 (30 → 72 distinct), so it is
executing, not frozen — but over a very tight footprint, which may be a legitimate
display-refresh loop.
---
## Video status (asked: "are we getting any video?")
**The display controller IS enabled.** Probed live:
```
frame 200 DPYCTL=E008 <ENABLED> CONTROL=000C DPYSTRT=FFFC DPYINT=0000 DPYTAP=0000 DPYADR=E4FC
frame 600 DPYCTL=6008 (bit 15 momentarily clear)
```
Register map used (MAME's tms34010 enum — **MEMORY_MAP.md is correct here**, but note
these are *not* the classic datasheet offsets):
```
0x80 DPYCTL 0x90 DPYSTRT 0xA0 DPYINT 0xB0 CONTROL
0x1B0 DPYTAP 0x1E0 DPYADR 0x160 PSIZE 0x1F0 REFCNT
```
Firmware reference counts (ROM is **little-endian** for instruction operands —
verified against the reset instruction at file 0x54):
```
DPYCTL 45 PSIZE 48 CONTROL 88 DPYADR 4 DPYTAP 2 DPYSTRT 2 DPYINT 8
```
So the display *is* fully configured by the firmware.
**But the rendered frame is black — and that is our harness's fault, not the
firmware's.** MAME's `tms340x0_ind16` only paints the *blanking* regions:
```cpp
if (params.enabled)
m_scanline_ind16_cb(screen, bitmap, cliprect.min_y, &params); // active pixels
...
// blank out the blank regions
```
The **active pixels are the driver's job** — every TMS34010 driver in MAME supplies a
scanline renderer (see `atari/harddriv_v.cpp:411 scanline_driver` for the pattern).
Our callback draws nothing, so the active area stays zero.
### Two traps hit while chasing this (recorded so they are not repeated)
1. **`-video none` never calls `screen_update`**, so the scanline callback never runs
and `VT1200_DUMP_FRAME` silently does nothing. Force rendering with `-aviwrite`.
2. **`logerror` needs `-log`** (writes `error.log`); `-debuglog` only captures
*debugger console* output (e.g. the `printf` inside a `bpset` action).
3. **Put frame/RAM dumps in the *scanline* callback, not `screen_update`.** MAME
calls `screen_update` with small clip regions, and the "region that reaches the
last line" (`clip_y = 1..999`) only happened **once** in an 80-frame run — so a
dump guarded on it silently never fires. The scanline callback is invoked once
per line (`168, 169, 170, …`), so guard on `scanline == screen.visible_area().max_y`.
Both callbacks do fire when rendering is forced, and the scanline callback reports
`enabled=1` — i.e. the display really is on.
### Observed frame dump (frame 60)
```
vt1200-frame-60.ppm 80x901, "79.56% lit"
```
Treat both numbers as **unreliable**: 80x901 is what MAME reconfigured the screen to
from the firmware's HEBLNK/HSBLNK/VTOTAL registers (implausible for a real display —
suggesting the timing registers are not yet properly initialised), and the "lit"
percentage counts uninitialised bitmap data because the active pixels are never drawn.
### RAM dump (frame 200, via the shared RAM pointer)
`vt1200-ram-200.bin` is **262,144 bytes = 256 KiB** — and that size is itself a finding,
because the map range `0..0x1fffff` with 8 address units per byte means **the driver
only models 256 KiB of main RAM**. The real VT1200 has 1 MiB onboard plus up to
3 × 1 MiB SIMMs (service guide), and POST runs a memory test. **Enlarging the RAM
mapping is now a prime suspect and is a cheap experiment.**
Contents of what we do model: full of 32-bit **ROM pointers** (`0x3FD24A90`, `0x3FD2C800`,
…) and resident strings (`$Header: init.c,v 1.3 …`, `DWT TCP/IP Rev 1.0`,
`LATSERVER`/`LANCESERVER`/`MOPSERVER`). 99.6% of the *earlier* low-memory dump was
zeros, but that dump's granularity was wrong; the real picture is tables + pointers.
**No framebuffer appears in main RAM.** Combined with the self-test having a separate
`N - VIDEO MEMORY TEST`, the framebuffer is most likely **separate VRAM** mapped
somewhere not yet identified. That fits the black screen: the display address resolves
into unmapped space, so the renderer reads zeros.
### Hardware facts supplied from the real machine (2026-10-16)
* Output is **always mono black and white** → 1 bit/pixel.
* **1280×1024** → **160 bytes per scanline**, framebuffer **163,840 bytes (0xA0000)**.
* Boot sequence on real hardware: an **ASCII/font table** is printed first, then the
screen wipes, then the **self-test progress** runs — shown as a large **circle** in
the middle of the screen.
These give the renderer its geometry **and** a validation target: a correct renderer
should show the character table first.
### RAM-as-bitmap probe
`vt1200-ram-200.bin` rendered at the 160-byte stride (`ram-as-bitmap.png`,
`crop-glyphs.png`) shows a dense band around rows 738–747. Zooming shows it is **not**
glyphs — the hexdump is little-endian 32-bit ROM pointers, i.e. a pointer table.
## What the service guide says (already in `docs/` — read this first next time)
`docs/EK-V1000-SV-002_service-guide.txt` §2.1.1 documents the power-up self-test almost
exactly as observed on the real machine. This is the authoritative boot sequence.
**Level 0 — 8 tests, must complete within 5 seconds:**
```
Simple CPU test Video control register test
ROM checksum test I/O data path test
RAM test Illegal monitor test
Interrupt test Ethernet port (LANCE) not reset on power-up test
```
**Level 1 — 15 tests, complete within 25 seconds of power-up.** It "begins by
displaying various patterns on the screen. Next, a **pie graph** display appears to
indicate the progress of level 1 testing. As each test finishes, a segment of the pie
fills in."
```
Video RAM test Video test NVR checksum test Ethernet address ROM test
Option RAM test Host port test Printer port test Image test
DUART1 timer test Keyboard port test Mouse port test DUART2 timer test
Ethernet port (LANCE) test Mouse test Keyboard test
```
### Why this matters for our stall
* The user's **"large circle in the middle of the screen" is the level-1 pie graph** —
and the "ASCII font table" seen first is the level-1 "various patterns". So the real
machine is well into **level 1** by ~12 s, and finished by ~25 s.
* We have run **22–44 s of emulated time** and are still stuck. Confirmed: blocked, not slow.
* **Level 0 needs hardware we do not model**: an *Interrupt test*, an *I/O data path
test*, and an *Ethernet port (LANCE) not reset on power-up* test. Our gates
(status bits on the `0x6400000` window) are almost certainly part of the
**video control register test** or the **I/O data path test**.
### The monitor selection switch is read at power-up
From §1.1.2: "The terminal searches for the monitor selection switch position **only
during the power-up sequence**." Positions select the monitor model, which sets the
screen size / dots-per-inch:
```
1 = VR150 CRT (15") 2 = VR319 CRT (19") 3 = VR262 CRT (19")
3 = VRE01 EL flat panel 5 = VR315 CRT (15")
```
And level 0 includes an **Illegal monitor test**. So the firmware reads that switch
during power-up, and **our model does not provide it** — a stub returning all-ones or
zero could plausibly fail "illegal monitor". **Finding where that switch is read, and
returning a valid position, is a concrete next target.**
### Video alignment patterns (§2.1.3) — useful validation targets
* **Screen of H's** — fills the active area with uppercase H's (focus)
* **Circle Cross-hatch** — crosshatch plus a large circle in the middle (linearity/aspect)
* **All White** — the whole active area white (active-area adjustment)
### Confirmed hardware facts
* CPU is a **TMS34010FNL-50** → **50 MHz** (the driver currently guesses 40 MHz; the
users guide lists the -50 part and VCC = max, 50 MHz).
* Display **1280 x 1024 at 72 Hz**, monochrome.
* Memory: 4 MB total — 1 MB on the system logic board plus up to three 1 MB SIMMs.
## Monitor-selection switch — FOUND (2026-10-16)
Located via the ROM string **"Undefined monitor switch setting"** (file `0x019AF4`,
bit `0x3F2CD7A0`) and its reference at file `0x190F8`. The checking code is around bit
`0x3F2C8320` (file ~`0x19060`):
```
3f2c80b0: move @0x62000d0, a11, 0 ; another config bit -> "Present"/"Not Present"
3f2c80e0: btst 5, a11
3f2c8320: move @0x64000d0, a11, 0 ; <<< THE MONITOR SWITCH PORT
3f2c8350: andi 0x70, a11 ; switch position is bits 4-6
3f2c8380: cmpi 0x70, a11 -> "VR150"
3f2c84a0: cmpi 0x50, a11 -> "VR262"
3f2c85c0: cmpi 0x30, a11 -> "VR315"
(also) -> "VR319"
else -> "Undefined monitor switch setting"
```
| bits 4–6 | monitor |
|---|---|
| `0x70` | VR150 |
| `0x50` | VR262 |
| `0x30` | VR315 |
| other | VR319 / undefined |
The firmware prints a configuration block on screen during power-up:
```
Display Type Monochrome
Monitor Type VR150
```
All 6,574 ROM strings are now extracted to **`reference/rom-strings.txt`** (file offset
and bit address per line), so these messages are browsable.
### The reason a constant override did NOT unblock the boot
`0x64000D0` is a **bit-mixed port**: bits 4–6 are the switch *input*, while the rest is
a latched *output* that the firmware writes (the reset vector writes 0 to it). Returning
a constant for the whole byte breaks the output bits, so the boot stays stuck.
New harness knob for exactly this: **`VT1200_BOARD_SWITCH=<addr>:<mask>:<value>`** —
bits in `<mask>` read as `<value>`, all other bits stay write-back.
```
VT1200_BOARD_MODEL=handshake VT1200_BOARD_BUSY_TICKS=2 \
VT1200_BOARD_SWITCH="0640000D:70:70"
```
Note the harness address is the disassembly operand `>> 4` (see the address-unit note at
the end of this file), so the code's `@0x64000D0` is the harness's `0x0640000D`.
**Verified** with `VT1200_BOARD_LOG`: the port reads `0x70` while the firmware's own
write is `0x0000`, i.e. the switch bits are inputs and the rest are latched outputs, as
intended.
**It does not by itself unblock the boot** — `0x00` and `0x70` take different paths
(56 vs 57 distinct PCs, different park points) but both still wedge in the display/blit
code. The remaining read sites are unchanged:
```
06200001 (6 PCs) 06200003 (3 PCs)
0640000D (6 PCs) 0640000E (2 PCs) 0640000F (2 PCs)
```
So the monitor switch was a *correctness* fix (no more "Undefined monitor switch
setting"), not the blocker.
### Harness bug fixed: `build.sh` was hiding compile failures
`make ... | tee "$LOG"` made the script's exit status that of `tee`, so `set -e` never
fired and **the script printed `built:` even when the compile had failed** — which sent
one whole round of experiments against a stale binary. `build.sh` now captures make's
status, tails the log and exits non-zero on failure. Treat a bare `built:` as
insufficient; it now genuinely means success.
## Raster geometry — SOLVED (16 pixels per clock)
The firmware's own raster registers were the key:
```
DPYCTL=E008 (enabled) HTOTAL=004F(79) VTOTAL=0384(900) HSBLNK=004C(76)
DPYINT=0000 VCOUNT=0383
```
MAME computes `width = (HTOTAL+1) * pixels_per_clock`. With the driver's guess of
**1 pixel per clock** that gave an absurd **80-pixel** line. But:
```
80 pixel-clocks per line x 16 pixels/clock = 1280 pixels <- exactly the display width
72 Hz x 80 x 900 = 5.184 MHz <- a sane pixel clock
```
So the TMS34010 fetches **16 pixels per clock**, and the driver now sets:
```cpp
TMS34010(config, m_maincpu, XTAL(50'000'000)); // TMS34010FNL-50
m_maincpu->set_pixel_clock(5'184'000);
m_maincpu->set_pixels_per_clock(16);
m_screen->set_raw(5'184'000, 1280, 0, 1280, 901, 0, 901);
```
Verified: `screen: 1280x901`, effective frame period 0.0142 s (**~70 Hz**, target 72).
**Crash trap:** `pixels_per_clock` must match the SCREEN's raw geometry. With
`pixels_per_clock=16` and an 80-wide bitmap, the renderer computed
`heblnk = 76 * 16 = 1216` and wrote 1216 pixels into an 80-wide bitmap —
`double free or corruption`. **Always keep the screen width consistent with
`(HTOTAL+1) * pixels_per_clock`.**
### The clock comment in the driver was wrong
The original driver said *"the exact value is irrelevant to instruction semantics"*.
That is false: the firmware **calibrates its delays from the video**, and the raster
geometry drives MAME's whole emulated timebase.
---
## Interrupts — where the real blocker is
The self-test error strings sit immediately adjacent to the wedge we spent hours on
(file `0x178F00`-`0x179500`; our stuck loop was `0x179C80`):
```
LEVEL0 ERROR -> no display interrupt error - 28
LEVEL0 ERROR -> display interrupt too slow error - 28
LEVEL0 ERROR -> display interrupt too fast error - 28
LEVEL0 ERROR -> Perpetual (pending) Display Interrupt - 28
LEVEL0 ERROR -> Extraneous Interrupt 1 / 2 Occurrence - 28
LEVEL0 ERROR -> Extraneous Host Interface Interrupt Occurrence - 28
LEVEL0 ERROR -> Extraneous Non-Maskable Interrupt Occurrence - 28
LEVEL0 ERROR -> Trap Interrupt Occurrence - 28
```
**That is level 0's interrupt test, and it is exactly where we were stuck.** Probed live:
```
DPYCTL=E008 INTENB=0000 (interrupts NOT enabled) INTPEND=0400 (display IRQ pending)
```
So MAME *is* generating the display interrupt, but **INTENB never gets enabled** by the
firmware, so the CPU never takes it and the test can never pass. Either the firmware is
stuck before it enables interrupts, or the enable write is being lost.
`INTENB` (0xC0000110) write sites in the ROM: file `0x000060`, `0x00077C`, `0x000810`,
`0x000EE4` (the reset/POST bank — these are the *disable* at reset), plus `0x06F308`,
`0x09DC54`, `0x09DC60`, `0x09DDAC`. Our wedge is at file `0x17F2xx`, so the firmware has
not reached the later enable sites.
**This is the item to attack next**: find what the firmware is waiting for *before*
enabling interrupts, and model it.
### Watchpoint results (decisive)
`harness/mame/wp.lua` arms debugger watchpoints on the CPU's internal registers (the
driver cannot see those writes). Over 300 frames:
```
watchpoints armed on INTENB / INTPEND / DPYCTL
done (300 frames) <- NOT ONE write reported
```
And sampling INTENB every frame (`intr.lua`) shows it is **never** written — it is
cleared once in the reset bank and stays `0000` for the whole run:
```
f 1 INTENB CHANGED -> 0000 (DI=0)
f 1 INTPEND CHANGED -> 0000
f 2 INTPEND CHANGED -> 0400 <- display IRQ fires here and stays pending
distinct INTENB values: 0000 (all 600 frames)
```
**Conclusion:** the firmware is stuck *before* any interrupt setup. It is not failing the
interrupt test — it has not reached it. Whatever it is spinning on is a board-level wait
(a status bit in the undecoded windows), not the CPU's interrupt registers.
### What this means for the remaining work
The bring-up has reached the boundary the original estimate predicted: to go further we
need a **modelled interrupt controller / status block** in the `0x5800000`–`0x6400000`
windows, and eventually the DUARTs and the LANCE (level 0 explicitly tests the LANCE, and
level 1 tests both DUARTs, keyboard and mouse).
The difference from the original estimate is that the problem is now **scoped**: we know
the access surface (`VT1200_BOARD_LOG` gives ~18 read sites), we know the gate shapes
(handshake bits, not values), we have the right raster and clocks, and every finding is
recorded here.
## Board register map — current best understanding
From the access log (`VT1200_BOARD_LOG`) and the disassembly. All addresses in the
harness's units (disassembly operand `>> 4`). **Four** windows, not three — `0x5900000`
was only discovered when a disassembly read showed the firmware pairing it with
`0x5800000`.
| window | what we know |
|---|---|
| `05800000` | **command/data pair, low half.** Written with a value; the code at `3fddcbf0` writes a *bit address shifted right by 3* (bit -> byte) into it, implying a DMA-style device that uses **byte** addressing |
| `05900000` | **command/data pair, high half.** Written with command numbers (0, 1, 2, 4, 0x42). Only one access seen in 400 frames, so barely used during our stall |
| `06200001` | polled **6 sites**; bit 0 = a ready/handshake flag (gate 1). Bit 2 tested elsewhere |
| `06200003` | polled **3 sites**, written with 0x11/0x8C/0xE1 in sequence |
| `06200000/02/08/09/0A` | written in a block by the code at file `3FA91xxx` (looks like a register initialisation table) |
| `0640000D` | **bit-mixed port**: bits 4-6 = the **monitor-selection switch**; the rest is latched output. Bit 2 is polled after a `FILL XY` (gate 4) |
| `0640000E/F` | written 1 / 0xFF around the POST video delay routine; read at 2 sites each |
### Tools that did NOT work (so they are not retried)
* `screen_update` for frame dumps — only called in small clip regions; use the **scanline** callback.
* `logerror` for diagnostics — needs `-log`; `-debuglog` only captures debugger console output.
* The `history` debugger command — produces nothing in free-run (`-nothrottle`) mode; it needs
the debugger to be actively stepping.
* `dis34 -a` (analyze) — mis-detects several code regions here as data (reports
`0/N words marked as code`). Disassemble those **linearly** with `dis34 -l -b <base>`.
## The windows share a common register layout (key structural finding)
The routine at bit `0x3FA911C0` (file `0x112238`) takes the **window base as an
argument** and drives it generically:
```
3fa911f0: move *a13(0xffe0), a11, 1 ; a11 = window base, passed in
3fa91210: movi 0xca, a9
3fa91240: move a9, *a11(0x20), 0 ; write the COMMAND/DATA register
3fa91260: push 10 / calla 0x3fdce1c0 ; delay(10)
3fa912c0: addk 32, a9 ; next pattern value
3fa912e0: move a9, *a11(0x20), 0 ; and again
...
```
and the gate-1 poll reads `*[base+0x10]` (`0x06200010`) testing bit 0.
So each window is a **same-shaped controller**:
| offset | role |
|---|---|
| `+0x10` | **STATUS** (bit 0 = ready/complete; bit 2 tested after `FILL XY`) |
| `+0x20` | **COMMAND / DATA** (written in a delayed sequence: 0xCA, 0xEA, 0x3A, 0x4A, 0x5A, 0x1A, ...) |
| `+0xD0` | **mixed I/O**: bits 4-6 = monitor switch (input), rest latched output |
That means the model is **one generic register file instantiated per window**, not four
unrelated blocks — and it explains why the same shapes keep appearing.
---
## Next steps
(Design work now — see the design spec once approved.)
1. **Design the generic register-file model** for the four windows: STATUS at `+0x10`,
COMMAND/DATA at `+0x20`, mixed I/O at `+0xD0`, latched outputs elsewhere.
2. **Decide the scope** — level-0 POST only, or toward a fully working terminal
(LANCE, DUARTs, video, keyboard/mouse).
3. Then the remaining items: stateful busy/done status, the scanline renderer, and
confirming the firmware runs from a RAM copy of the image.
1. **The `05800000`/`05900000` command/data pair is the most promising unexplored block.**
A DMA-style interface (bit->byte address conversion) that the firmware barely touches
during our stall — probably not the immediate blocker, but it is where LANCE / host
interface traffic will live, and level 0 requires the LANCE.
2. **Find what the firmware waits for before enabling interrupts.** `INTENB` is never
written at all (verified with watchpoints), so the stall is a board-level wait.
3. **Hunt the remaining bit-mixed ports** (`VT1200_BOARD_SWITCH=<addr>:<mask>:<value>`).
4. **Build the stateful status model**: board status bits are busy/done handshakes, never
constants — every gate so far has needed behaviour.
5. **Write the scanline renderer** (needs the framebuffer layout; MAME has no generic
TMS34010 renderer).
6. **The RAM is full of ROM strings and ROM pointers** — evidence the firmware runs from
a RAM copy of the image; worth confirming.
1. **Find what the firmware waits for *before* enabling interrupts.** `INTENB` never
becomes non-zero, so level 0's display-interrupt test can never pass. This is the
current blocker. `INTENB` write sites: file `0x000060`, `0x00077C`, `0x000810`,
`0x000EE4` (reset-bank disables) plus `0x06F308`, `0x09DC54`, `0x09DC60`, `0x09DDAC`.
2. **Hunt the remaining bit-mixed ports** — level 0 includes an *I/O data path test*,
and every other configuration input will have the shape "input bits mixed with
latched outputs" (use `VT1200_BOARD_SWITCH=<addr>:<mask>:<value>`).
3. **Build the stateful status model** (gate 4, and the video / I-O-path tests): a
graphics or I/O op starts -> busy bit set -> clears after N reads. Every gate so far
has needed behaviour, never a constant.
4. **Write the scanline renderer** — the whole of the remaining video work. It needs the
VT1200's framebuffer layout, which is *board-specific* (MAME gives no generic
TMS34010 renderer). Derive it from the display-init code that writes DPYADR/PSIZE
(`DPYADR` sites: file `0x016DF0`, `0x016F7A`, `0x0E29E6`, `0x1185A2`).
Note MAME's quirk: `if (!(DPYCTL & 0x400)) dpyadr ^= 0xfffc;` then
`rowaddr = dpyadr >> 4` — with our values that yields `rowaddr = 0x1B0`.
5. **Keep gating**: the remaining read sites after the handshake model are
`0640000D` (6 PCs), `0640000E`, `0640000F`, `06200001`, `06200003`. Each needs its
*semantics* (what the bit means), not just a value.
6. Once video shows something, the terminal state is verifiable at a glance — which
also makes further bring-up much faster.
**Done so far:** monitor switch (bits 4-6 of `0x64000D0`), raster geometry
(16 px/clock, 1280x901 @ 72 Hz), CPU 50 MHz.
## Address-unit note
In the harness's board windows, `log address = disassembly operand >> 4`
(e.g. code `@64000F0h` appears as `0640000F`). The override/log key is the harness
address, and the override lookup is consistent with it, so this does not affect the
experiments — but it does mean the window addresses are **not** directly comparable to
the register operands printed by `unidasm`.
+234
View File
@@ -0,0 +1,234 @@
# VT1200 execution harness — results
Companion to `README.md` in this directory. This records what was built, the
exact commands, the evidence, and what was learned about the two font questions.
## 1. What was set up
A minimal MAME machine for the VT1200 firmware, built as a single-driver
subtarget of MAME 0.289:
| File | Purpose |
|---|---|
| `harness/mame/vt1200.cpp` | the driver (TMS34010 + RAM + ROM) |
| `harness/mame/build.sh` | build wrapper (`-j8`, registers the driver) |
| `harness/mame/trace.lua` | headless run: trace execution from the reset vector |
| `harness/mame/overflow.lua` | headless run: exercise `pcfReadBitmaps` `n*4` |
| `harness/mame/roms/vt1200/` | MAME ROM dir (symlink to `vt1200_v22.bin`) |
MAME source lives outside the project (disposable) at
`/home/arti/code/k-space/mame0289` (shallow clone of tag `mame0289`).
The driver is deliberately incomplete: only the CPU, 4 MiB of RAM at bit
address 0, and the ROM are modelled. LANCE Ethernet, the DUARTs and the board
peripherals are **not** modelled, so the terminal never boots to the X server.
That is fine: the goal is execution visibility, and reset + breakpoints +
single-step + trace are enough.
### Address model (the thing that had to be right)
`memory_access<32,16,3>` ⇒ the address-map unit is **1 bit**. The ROM is mapped
at bit `0x3f200000` (its byte base `0x07e40000 × 8`), and the reset-vector page
at logical bit `0xffffffe0` is covered by mirroring the ROM into the top
logical quadrant `0xff200000`–`0xffffffff`. The reset vector
(`0x3f200040`) lands on ROM file offset `0x1bfffc`.
## 2. Build and run
```sh
# build (memory-hungry; defaults to -j8)
cd /home/arti/code/k-space/vt1200
harness/mame/build.sh # -> /home/arti/code/k-space/mame0289/vt1200
# run: trace from the reset vector
M=/home/arti/code/k-space/mame0289/vt1200
$M vt1200 -rompath harness/mame/roms -video none -sound none -nothrottle \
-debug -debugger none -autoboot_script harness/mame/trace.lua -autoboot_delay 0
# run: pcfReadBitmaps n*4 overflow (OVF_N optional, decimal)
$M vt1200 -rompath harness/mame/roms -video none -sound none -nothrottle \
-debug -debugger none -debuglog -seconds_to_run 5 \
-autoboot_script harness/mame/overflow.lua -autoboot_delay 0
```
Notes on MAME headless debugging: `-debugscript` does **not** work without a
debugger UI (the console only processes scripts while the debugger UI drives
the loop). The reliable headless route is the Lua debugger API
(`manager.machine.debugger`, `device.debug`, `emu.register_frame_done`) driven
from `-autoboot_script`.
## 3. Evidence it executes the firmware
`trace.lua` prints the reset PC and writes an instruction trace of the first
two frames (`harness/mame/vt1200-reset.trace.gz`, 650 815 lines; a head excerpt
is in `reset-trace.head.txt`):
```
[space] program shift=3 data_width=16
PC at harness start = 3F200040 (expect 3F200040)
after 2 frames: PC=3FDF99F0
```
First instructions of the trace (bit addresses; byte = /8):
```
3F200040: DINT
3F200050: SETF 10h,0,0
3F200060: SETF 20h,0,1
3F200070: CLR A0
3F200080: MOVE A0,@64000D0h,0 ; board peripheral
3F2000B0: MOVI FFh,A0
3F2000D0: MOVB A0,@64000F0h
3F200100: MOVI Fh,A0
3F200120: MOVB A0,@64000E0h
3F200150: CLR A0
3F200160: MOVE A0,@62000D0h,0 ; board peripheral
3F200190: MOVI 4h,A0
3F2001B0: MOVE A0,@62000F0h,0
3F2001E0: CLR A8
3F2001F0: MOVI 1h,A0
3F200220: MOVB A0,@64000F0h
3F200250: CLR A0
3F200260: MOVE A0,@C00000B0h,0 ; CONTROL
3F200290: MOVE A0,@C0000080h,0 ; DPYCTL
3F2002C0: MOVE A0,@C0000100h,0 ; HSTCTLH
...
```
This matches the known power-on code (`DINT; SETF 16,0,0; SETF 0,0,1; CLR A0 …`)
and the peripheral/CONTROL writes documented in `MEMORY_MAP.md`. The CPU then
runs several hundred thousand instructions of POST and ends the second frame at
`0x3fdf99f0` (`PIXBLT B,XY`).
### In-emulator `pcfReadBitmaps` overflow
`overflow.lua` jumps straight into the arithmetic block and stops after the
shift. Measured results (register `a11` is the argument to `fosAlloc`):
| n (input) | `n*4` / fosAlloc arg | note |
|---|---|---|
| `0x00001000` | `0x00004000` | control, no wrap |
| `0x10000001` | `0x40000004` | wraps |
| `0x40000000` | `0x00000000` | `fosAlloc(0)`, then 4 GiB of writes |
| `0x40000001` | `0x00000004` | `fosAlloc(4)`, then 4 GiB of writes |
```
RESULT n=40000001 a11_fosAlloc_arg=00000004 nChars=40000001
```
## 4. Findings
### 4.1 `pcfReadBitmaps` arithmetic and `num_chars*4` (confirmed)
The firmware's `pcfReadBitmaps` is at bit `0x3f984e70` (byte `0x0f09ce`).
Disassembly (bit addresses) of the relevant block:
```
3f984e70: move *a9(0x270),a11,1 ; a11 = pCS->nChars
3f984e90: jrne L3F984EE0 ; nChars != 0 -> just cross-check n
3f984ea0: move *a13(0x20),*a9(0x270),1 ; nChars == 0 -> nChars = n
...
3f985030: move *a13(0x20),a11,1 ; a11 = n (pcfReadInt32 result)
3f985050: sll 0x2,a11 ; a11 = n*4 <-- NO overflow check
3f985090: calla L3F703D90 ; fosAlloc(n*4, 1)
3f9850c0: move a8,*a13(0x40),1 ; pCS->pBitOffsets = result
...
3f985260: (loop i = 0 .. n-1) ; writes n CARD32 entries
3f985290: move a10,a7 ; a7 = i
3f9852a0: sll 0x5,a7 ; i*32 bits = i*4 bytes
3f9852d0: add a11,a7 ; dest = offsets + i*4
3f985310: calla L3F96EEE0 ; read 4 bytes from file into dest
```
There is **no bound check on `n`** between the read and the multiply, exactly
matching X11R4 `reference/x11/r4/contrib/server/pcf/fonts/lib/pcf/pcfrbitmaps.c`
(`offsets = fosAlloc(n*sizeof(CARD32)); for (i=0;i<n;i++) offsets[i]=…`).
`n = 0x40000001` makes `n*4` wrap to 4 while the loop writes ~4 GiB.
One important detail verified against MAME's core: the font code uses the
TMS34010 **field-1** moves (`…,1`), and `SETF 0,0,1` leaves field 1 at 32
bits. So `move *a13(0x20),a11,1` really is a 32-bit load — `n` is the full
32-bit `pcfReadInt32`, not a 16-bit value. The emulator run above confirms it.
### 4.2 The ~1 KB TFTP font limit
The failure seen on the wire (`ACK block 1`, `ACK block 2`, then TFTP
`ERROR 3`/ENOSPACE) is the firmware's own `tftp_read` giving up:
```
3f5eed30: move *a13(0xffa0),a11,1 ; a11 = bufsize / remaining capacity
3f5eed50: cmp a11,a9 ; a9 = current DATA payload length
3f5eed60: jrle L3F5EEED0 ; payload <= capacity -> copy it
...
3f5eeda0: movi 0x3f5f0c98,a8 ; "tftp_read: bufsize (%d) too small for %d bytes\n"
3f5eee50: movk 3,a9 ; TFTP error code 3 (ENOSPACE)
3f5eee90: calla L3F5EF610 ; send error packet
```
So ENOSPACE is not a disk error: it is `tftp_read` rejecting a datagram
because the destination buffer's remaining space is smaller than the payload.
The observed 1024-byte cutoff (works ≤ 2 blocks, fails on the 3rd) implies the
font receive buffer is ~1 KiB. `tftp_read` itself uses a 0x204-byte (516 =
512+4) datagram buffer (`movi 0x204` at `3f5ed5e0`), so the ~1 KiB limit is in
the *file accumulation* buffer, not the packet buffer. Pinning the exact size
needs a breakpoint on `3f5eed30` while a live transfer runs, or a small
additional harness.
## 5. Q1 — why the small synthetic font is rejected
Not yet answered with certainty. What is established:
* The firmware contains a full X11R4-era PCF reader. The dispatcher
(`pcfReadFont`) is around bit `0x3f98bxxx`; it prints
`Failed to read PCF format properties/accelerators/encodings/metrics/bitmaps`
when a table reader returns failure, and the per-reader strings
(`unknown bitmap format 0x%x`, `bad count in pcfReadBitmaps (expected %d, got %d)`,
`bad packed/unpacked metrics, glyph=…`, `pcfReadBitmaps called with bitmaps loaded`, …)
all match the R4 sources.
* The `fonts.dir` path also has a name check:
`font name different: name in path file='%s'` / `name in font file='%s'`
(bit `0x3f990538`), a strong candidate for "name listed" but "OpenFont
unmatched".
* A freshly generated `baseline.pcf` has all nine tables and version
`0x70636601`, so the version/TOC checks should pass; the failure is one of
the per-table or name checks.
**Why it isn't answered yet:** invoking the parser requires the `fos` file
abstraction (`fosRead` at `0x3f96eee0`, `fosAlloc` at `0x3f703d90`,
`fosFilePtr` at `*a13(0xffe0)`), which the boot path sets up only after the
network/TFTP fetch. The harness can run the CPU, but reaching `pcfReadFont`
means either booting far enough (needs LANCE/DUART models — out of reach) or a
small purpose-built call stub.
## 6. Blockers and remaining effort
* **Q1 needs a call harness.** Cheapest next step: give the driver a writable
overlay at the `fosRead`/`fosAlloc` addresses, have Lua write a tiny
TMS34010 stub there that serves bytes from a RAM copy of `baseline.pcf`, then
set PC to the PCF loader with a crafted `fosFilePtr`. That lets us single-step
the exact bail path. Effort: moderate (hand-encoding a handful of TMS34010
instructions, or assembling with `as34`).
* **The ~1 KB limit** can be pinned by breaking at `0x3f5eed30` during a real
transfer, or by the same call harness feeding oversized data.
* **Full boot** (X server, network) needs LANCE + DUART + video models; that is
a large, separate project and was explicitly out of scope.
* The driver is a visibility tool, not an accurate VT1200: the CRT timing,
palette and peripherals are stubs.
## 7. Tree layout (new files)
```
harness/mame/
vt1200.cpp driver (source of truth; symlinked into MAME)
build.sh build wrapper (JOBS=8 default)
trace.lua reset-vector trace
overflow.lua pcfReadBitmaps n*4 harness
reset.dasm disassembly of the reset vector window
reset-trace.head.txt first 60 traced instructions
vt1200-reset.trace.gz full 650k-instruction trace
roms/vt1200/vt1200_v22.bin -> ../../vt1200_v22.bin
harness/dis/
fontregion-v22.txt dis34 of the font code
tftp-v22.txt dis34 of the TFTP client
full-v22.txt.gz dis34 of the whole ROM
```
+309
View File
@@ -0,0 +1,309 @@
# How much work is a "full boot" of the VT1200 in MAME?
Investigated 2026-10-15/16. Companion to `FINDINGS.md` (which covers the harness that
exists today and the font questions). This file answers: **what would it take to make
the MAME driver boot this machine as opposed to merely executing its firmware?**
Short answer: **a multi-week project, dominated by one unknown** — decoding the
board's custom peripheral windows. Everything else has a device model in MAME
already. Below is the evidence and the breakdown.
---
## 1. What "full boot" means here
The terminal boots to an **X server + the VTE terminal emulator + a LAT client + a
4.3BSD TCP/IP stack**. "Full boot" = the firmware completes POST, initialises video,
the DUARTs, the LANCE and the NVRAM, and reaches the point where it is listening on
the network and driving the screen. That is exactly the state in which the crash we
have been chasing happens — i.e. it is *not* just a debugging convenience. It is the
condition needed to reproduce the LAT/announcement crash offline.
A weaker goal — "run *specific* firmware routines" (e.g. the font parser) — is far
cheaper and is covered in §6.
---
## 2. Hardware inventory (derived, not guessed)
The ROM ships a **self-test menu that enumerates the board**, which gives a clean
device list (each entry is the test's bit in the selection mask, not an address):
```
C - LANCE TEST (00008000h)
D - KEYBOARD TEST (00004000h)
E - DUART1, CHANNEL A (HOST) TEST (00000400h)
F - DUART1, CHANNEL B (PRINT) TEST (00000800h)
G - DUART1 TIMER TEST (00080000h)
H - DUART2, CHANNEL A (KEYBOARD) TEST (00001000h)
I - DUART2, CHANNEL B (MOUSE) TEST (00002000h)
J - DUART2 TIMER TEST (00100000h)
K - MOUSE/TABLET TEST (00010000h)
L - VIDEO TEST (00020000h)
N - VIDEO MEMORY TEST (00000100h)
M - ETHERNET ROM TEST (00040000h)
A[x]/Y - ROM TEST (x = bank select)/NVM
```
So the board is:
| block | notes |
|---|---|
| **LANCE Ethernet** | AM79C90-class; 4.3BSD-derived stack above it (`lance_inet_interface.c`, `lpd_lance_devdriver.c`) |
| **2× DUART** | DUART1 = host + printer; DUART2 = keyboard + mouse; each has 2 timers. MC68681 / SCN2681 class |
| **Ethernet ROM** | MAC address storage |
| **NVM** | non-volatile setup memory (battery-backed) |
| **Video** | TMS34010 on-chip display controller + VRAM + an output stage |
| **Keyboard, mouse/tablet** | serial, behind DUART2 |
| **Custom ASIC(s)** | the undecoded windows in §4 |
Interrupt sources documented in the service guide: Display, Host Interface,
Interrupt 1, Interrupt 2, NMI, Trap, Window Violation, plus LANCE, DUART (2 ch +
2 timers) and video clock.
---
## 3. What MAME already gives us (this is the good news)
Everything needed exists as a device model, and there are two near-perfect templates:
| need | MAME device | template driver |
|---|---|---|
| CPU | `tms34010` (incl. display controller) | already used here |
| LANCE Ethernet | `am79c90` | `dec/kn01.cpp` (DEC PMAX) — shows the DMA callback wiring |
| DUART ×2 | `scn2681` / `mc68681` | `ncd/ncd68k.cpp` |
| NVRAM | `nvram`, `eepromser`, `ds1215` (phantom clock) | many |
| Video RAMDAC | `bt478_device`, `ramdac` family | `ncd/ncd68k.cpp` |
| Keyboard | `pc_kbdc`, or a plain serial model | `ncd/ncd68k.cpp` |
**`ncd/ncd68k.cpp` is the closest analogue in MAME: it is an NCD X terminal** with
LANCE + SCN2681 + VRAM + RAMDAC + EEPROM + keyboard. Anyone doing this work should
start from that file and from `dec/kn01.cpp`.
So the chipset is *not* the hard part. Nothing here needs a new device model.
---
## 4. The one real unknown: the board's custom windows
`MEMORY_MAP.md` already flags this, and it is the dominant cost:
> **Board peripherals** appear around byte `0x00B00000`, `0x00C40000`, `0x00C80000`
> (bit `0x5800000`, `0x6200000`, `0x6400000`). POST writes `@0x62000d0/f0` and
> `@0x64000d0/e0/f0`; the two identical windows at `0xC40000`/`0xC80000` are presumed
> to be the two DUARTs. **Device decoding not confirmed.**
The reset vector (file offset 0x08) is literally:
```
3F200080: MOVE A0,@64000D0h,0 ; before anything else
3F2000D0: MOVB A0,@64000F0h
3F200120: MOVB A0,@64000E0h
3F200160: MOVE A0,@62000D0h,0
3F2001B0: MOVE A0,@62000F0h,0
3F200260: MOVE A0,@C00000B0h,0 ; CONTROL
3F200290: MOVE A0,@C0000080h,0 ; DPYCTL
```
So two opaque windows (`0x6200000`, `0x6400000`) are programmed **before the CPU's own
display registers**, i.e. they are essential. They are presumably the system-logic
ASIC (interrupt controller, video timing, NVM chip-select, LAN chip-select, maybe a
watchdog). Nobody has decoded them yet.
**Work required:** reverse-engineer those register sets from POST + the diagnostics
code. This is ordinary RE with good anchors (the diagnostic tests name each block),
but it is open-ended: the register count is unknown until it is done.
**Risk:** high, and it is the item that decides the schedule. Everything else can be
estimated; this cannot.
---
## 4b. Can we just stub the unknown windows? (tested)
Yes — and it is cheap — but **it does not produce a boot**. Tested 2026-10-16.
The driver now takes `VT1200_BOARD_STUB`:
| value | behaviour of the `0x5800000` / `0x6200000` / `0x6400000` windows |
|---|---|
| unset | windows stay **unmapped** — identical to the pre-experiment driver |
| `0` | windows mapped, every read returns 0 (same visible result as unset) |
| `0xffff` | every read returns all-ones, i.e. every polled "ready" bit asserted |
| `ram` | windows behave as read/write RAM — **writes persist and read back** |
Results, 1200 frames each — three different places to get stuck, none of them a boot:
| stub | parked at | what that code is |
|---|---|---|
| `0` | `PC=3FDCE400` (file `0x179C80`) | the `0x6200000` ready-poll (see below) |
| `0xffff` | `PC=3F2082C0` (file `0x1058`) | POST video/refresh delay loop, `JR 8060h` |
| `ram` | `PC=3F2088B0` (file `0x1116`) | a third, different gate |
### What the ready-poll actually is
`stackwalk.lua` dumps the stack while parked in the delay loop, which is how the
first gate was identified. The delay routine is *fine* (it gets count 5968 ×
multiplier 100 ≈ 600k iterations ≈ 45 ms); it is simply **called in a poll loop**:
```
bcf210: MOVI 64h,A11 ; 100
bcf240: CALLA 3FDCE1C0h ; delay(100)
bcf270: MOVE *A13(FF80h),A9,1 ; A9 = 0x06200000
bcf2a0: MOVE *A9(10h),A11,0 ; read byte @ 0x06200010
bcf2c0: BTST 0h,A11 ; test bit 0
bcf2d0: JREQ BCF200h ; not ready -> delay + retry
```
i.e. `while (!(read8(0x06200010) & 1)) delay(100);` — a **hardware-ready poll on the
undecoded window**. Note the CPU's own registers (`CONTROL`, `HSTCTLH`) *are* modelled
by MAME's tms34010, so those reads were already real; the gate is purely the board ASIC.
### The conclusion that matters
Stubbing is a good **diagnostic** and a poor **shortcut**:
- It is cheap (≈20 lines in the driver) and it does move the firmware — from the
ready-poll into the POST video phase, and onwards under a different policy.
- But each policy lands somewhere *different* and still looping. Blindly asserting
"ready" does not walk the boot forward; it selects a different wrong path.
- Passing a gate *correctly* still requires knowing what the register means.
**The useful part:** iterating targeted per-gate stubs **enumerates the gates**. In one
afternoon, one known gate became three distinct stuck points. If that enumeration is
done systematically, item 1 above stops being "decode an unknown ASIC" and becomes
"decode the specific registers these N gates touch" — a bounded, much smaller job.
That is the recommended way to attack item 1.
The experimental stub is committed in `vt1200.cpp` and defaults to the old behaviour,
so nothing regresses if `VT1200_BOARD_STUB` is unset.
---
## 5. Where the boot stops today (measured, not assumed)
`harness/mame/progress.lua` (new) samples the PC once per emulated frame and reports
the hottest PCs. Two runs:
- 400 frames, and
- 3000 frames (≈ 10 minutes of emulated time at this driver's ~4.9 Hz frame rate).
Result — **the CPU sits in one instruction**:
```
PC=3FDCE400 samples=2976 of 3000 first_frame=1
PC=3FDCE1C0 samples=1 first_frame=2848 <- routine entry
PC=3FDCE460 samples=1 first_frame=2736 <- its RETS
```
Disassembled (`PC 0x3FDCE400` -> byte `0x07FB9C80` -> file `0x179C80`), the routine is:
```
bce1c0: MMTM SP,A9,A11,A13 ; entry
bce210: MOVE *A13(FFE0h),A9,1 ; A9 = caller's argument
bce230: MOVI C00000B0h,A11 ; CONTROL
bce2d0: MOVE *A13(20h),A11,1
bce300: MOVE *A11,A11,0 ; read CONTROL
bce310: BTST Fh,A11 ; test bit 15
bce330: MOVE *A13(40h),A11,1 ; HSTCTLH (C0000100)
bce350: MOVE *A11,A11,0 ; read HSTCTLH
bce360: BTST Eh,A11 ; test bit 14
bce380: MOVK 1Eh,A11 ; multiplier = 30
bce3b0: MOVI 64h,A11 ; ... or 100
bce3e0: MPYS A11,A9 ; A9 = argument * multiplier
bce400: DSJS A9,BCE400h ; <-- THE SPIN: ~2^32 iterations
bce460: RETS 2h
```
**Reading:** this is a timed-wait / calibration helper. **One call to it takes ~2,700
frames ≈ 9 minutes of emulated CPU time**, because the multiplier/count inputs come
from peripheral status that the current driver stubs to `0xFFFF` — so the loop runs
on garbage. The real machine boots in seconds, so this is not "slow firmware", it is
"missing hardware".
This is a useful, concrete marker: **the first thing that must be modelled is whatever
feeds this routine**, and we cannot get past early POST without it. It also confirms
the driver's own note that unmapped reads returning `0xffff` are being acted upon.
---
## 6. Work breakdown and estimate
Ordered by dependency. Effort is for one engineer already familiar with this codebase
and MAME, working part-time, and excludes the §6b shortcut.
| # | item | effort | uncertainty |
|---|---|---|---|
| 1 | Decode the `0x6200000` / `0x6400000` windows (interrupt controller, chip selects, video timing, NVM) | **1–3 weeks** | **high — this is the schedule** |
| 2 | Wire LANCE: address, DMA, IRQ (`dec/kn01.cpp` pattern) | 2–4 days | low |
| 3 | Wire 2× DUART + their 4 timers + IRQs | 2–3 days | low |
| 4 | NVRAM + Ethernet ROM (MAC) | 1–2 days | low (needs correct contents) |
| 5 | Video: display params, VRAM mapping, palette/output stage; get a non-blank screen | 3–7 days | medium (TMS34010 display is modelled; the *board* video path is not) |
| 6 | Interrupt plumbing: TMS34010 INTENB/INTPEND + the external controller | 2–4 days | medium — depends on #1 |
| 7 | Keyboard + mouse so the terminal is usable | 2–4 days | low–medium |
| 8 | Boot debugging to "network up + screen up" | **1–3 weeks** | high (integration) |
| 9 | Bonus: make the LAN path work end-to-end against latd | 3–7 days | medium |
**Total: roughly 6–12 weeks part-time**, with the spread driven almost entirely by
items 1 and 8. Nothing in it is research-grade; it is a large, ordinary bring-up task
with one genuinely unknown block.
### What would make it collapse to something much smaller
- If the custom windows turn out to be a **few dozen registers** and the diagnostics
code documents them (quite likely — the self-test knows every register it pokes),
item 1 could be days rather than weeks.
- If the boot turns out not to need the LANCE before reaching video, items 2 and 9
can be deferred, and the terminal becomes usable on-screen much sooner.
### What would blow it up
- The custom ASIC turning out to contain a DMA engine or a video path with
undocumented timings (plausible for the `0x6200000` writes at reset).
- POST validating device responses in ways that require behavioural accuracy, not
just register presence.
---
## 6b. The much cheaper alternative (and what I'd actually do)
For this project's real questions — the font parser, the VTE, the LAT client — a full
boot is **not the cheapest route**, and probably not needed at all.
A **call harness** gets you inside a specific routine in **days**:
- put a writable overlay at `fosRead` (`0x3f96eee0`) / `fosAlloc` (`0x3f703d90`),
- have Lua write a small TMS34010 stub that serves bytes from a RAM copy of the file
under test (a `.pcf`, an SNF, a LAT session buffer),
- set `PC` to the routine of interest with a crafted argument block.
That is how the `pcfReadBitmaps` overflow was already demonstrated in-emulator
(`overflow.lua` does exactly this pattern, jumping straight into the arithmetic with
fabricated state). Extending it to `pcfReadFont` is the cheapest way to answer the
outstanding font question.
**Recommendation:** do the call harness now; treat the full boot as an optional
parallel project, and only start it if you want offline reproduction of the LAT crash
— in which case item 1 (the custom-window decode) is the thing to schedule.
---
## 7. Reproduce
```sh
cd /home/arti/code/k-space/vt1200
M=/home/arti/code/k-space/mame0289/vt1200
# where does the boot get, and where does it spin?
PROG_FRAMES=3000 $M vt1200 -rompath harness/mame/roms -video none -sound none -nothrottle \
-debug -debugger none -autoboot_script harness/mame/progress.lua -autoboot_delay 0
# hardware inventory (the self-test menu)
strings -n 6 vt1200_v22.bin | grep -E "TEST ?\(|Selftest"
# disassemble the spin site (byte offsets; printed address = byte*8)
python3 lat/notes/ua.py 0x179c30 0x179cd0
```
Note: Lua `print()` goes to **stdout**; debugger `printf`/`-debuglog` output goes to
`./debug.log`. Two different streams — easy to lose an afternoon to that.
+114
View File
@@ -0,0 +1,114 @@
# VT1200 execution harness (MAME)
A minimal MAME machine that loads the VT1200 firmware into a TMS34010 CPU so
we can **run it under MAME's debugger**: instruction trace, breakpoints,
single-stepping, and direct memory watch. It is a *visibility* tool, not an
accurate VT1200 emulation.
Everything in this directory is source-of-truth in this repo; the MAME source
tree is disposable and lives outside the project
(`/home/arti/code/k-space/mame0289`).
```
harness/mame/
├── vt1200.cpp # the MAME driver (symlinked into the MAME tree)
├── build.sh # clone-safe build wrapper
├── trace.lua # Lua: trace execution from the reset vector
├── overflow.lua # Lua: exercise the pcfReadBitmaps n*4 overflow
├── FINDINGS.md # results, evidence, and what was learned
└── roms/vt1200/ # MAME ROM dir (symlink to ../../vt1200_v22.bin)
```
## Address model (the important part)
The TMS34010 is **bit-addressed**: a register/PC holds a bit address, and a
pointer `P` refers to physical byte `P >> 3`. MAME models this with a program
space of `memory_access<32, 16, 3>`, i.e. the **address-map unit is 1 bit**
(a 16-bit word spans 16 address units). Therefore:
* Address-map entries here are **bit addresses**, not byte addresses.
* `read_word(0x3f200000)` returns ROM bytes 0..1 (physical byte 0x07e40000).
* The reset vector is read from logical bit `0xffffffe0`, which maps to the
last 4 bytes of the image (file offset `0x1bfffc`).
The driver maps:
| region | bit range | bytes |
|---|---|---|
| RAM | `0x00000000`–`0x001fffff` | 4 MiB at byte 0 |
| ROM | `0x3f200000`–`0x3fffffff` | 1.75 MiB at byte 0x07e40000 |
| ROM aliases | `0x7f…`, `0xbf…`, `0xff200000`–`0xffffffff` | same ROM (top 2 logical bits not decoded) |
The `0xff…` alias is what makes the reset-vector page resolve. Board
peripherals (LANCE Ethernet, DUARTs) are **not** modelled; their reads return
`0xffff` and writes are dropped. The terminal will therefore not boot to the
X server — that is expected and not the goal.
## Build
MAME source is required. A shallow 0.289 checkout is large and slow to fetch.
```sh
git clone --depth 1 --branch mame0289 \
https://github.com/mamedev/mame.git /home/arti/code/k-space/mame0289
harness/mame/build.sh # symlinks the driver in and runs make
```
`build.sh` runs `make -j$JOBS SUBTARGET=vt1200
SOURCES=src/mame/dec/vt1200.cpp`, which builds a single-driver binary
`/home/arti/code/k-space/mame0289/vt1200`.
The MAME tree is large and the build is **memory-hungry**: `build.sh`
defaults to **`-j8`**, not all cores. Override with `JOBS=4
harness/mame/build.sh` on a small/low-memory machine. Progress is written to
`harness/mame/build.log`.
## Run
Headless execution and inspection use MAME's Lua debugger API from
`-autoboot_script`. (`-debugscript` only works when a debugger UI drives the
console, so it is not usable headless.)
```sh
cd /home/arti/code/k-space/vt1200
M=/home/arti/code/k-space/mame0289/vt1200
# trace execution from the reset vector
$M vt1200 -rompath harness/mame/roms -video none -sound none -nothrottle \
-debug -debugger none \
-autoboot_script harness/mame/trace.lua -autoboot_delay 0
# demonstrate the pcfReadBitmaps n*4 overflow (OVF_N overrides n, decimal)
$M vt1200 -rompath harness/mame/roms -video none -sound none -nothrottle \
-debug -debugger none -debuglog -seconds_to_run 5 \
-autoboot_script harness/mame/overflow.lua -autoboot_delay 0
```
The Lua API exposes `manager.machine.debugger`, `device.debug` (step, go,
bpset, wpset), CPU registers (`cpu.state['A0'].value`), memory
(`cpu.spaces['program']:read_u32/write_u32`), and frame hooks.
### Trace from the reset vector (`trace.lua`)
Prints the reset PC (expect `3F200040`), disassembles the power-on code to
`reset.dasm`, and writes an instruction trace of the first two frames to
`vt1200-reset.trace`.
### Exercise the `pcfReadBitmaps` overflow (`overflow.lua`)
Instead of booting the parser we jump directly into its arithmetic block with
a crafted in-memory `PCF_CharInfo`:
```
a9 = 0x00040000 ; fake pCS; pCS->nChars at a9+0x270
a13 = 0x00060000 ; fake arg blk; n (from pcfReadInt32) at a13+0x20
write_u32(0x00040270, 0) ; nChars == 0
write_u32(0x00060020, n) ; n
pc = 3f984e70
break at 3f985060 ; just after 'sll 0x2,a11'
```
This is possible because the font parser's field moves use **field 1**, which
`SETF 0,0,1` leaves at 32 bits, so `n` is a full 32-bit `pcfReadInt32` value.
See `FINDINGS.md` for results and the rest of the analysis.
+56
View File
@@ -0,0 +1,56 @@
# kind addr pc value (bit addresses; distinct (addr,pc) only)
W 0640000D pc=3F2000B0 val=0000
R 0640000F pc=3F200100 val=0000
R 0640000E pc=3F200150 val=0000
W 0620000D pc=3F200190 val=0000
W 0620000F pc=3F2001E0 val=0004
R 0640000F pc=3F200250 val=00FF
R 0640000D pc=3F200380 val=0070
R 0640000D pc=3F200A20 val=0070
R 0640000D pc=3F202650 val=0070
W 05900000 pc=3FDDCAE0 val=0000
W 05800000 pc=3FDDCB20 val=0004
R 0640000D pc=3F2045A0 val=0070
W 0620000D pc=3F2052C0 val=0000
W 0620000E pc=3F205310 val=00FF
W 0620000F pc=3F205370 val=0004
R 0640000E pc=3F2042D0 val=000F
R 0640000D pc=3F204300 val=0070
W 0640000D pc=3FDF1150 val=0000
W 0640000F pc=3FDF1190 val=0001
R 06200001 pc=3FDF3900 val=0001
W 06200003 pc=3FDF3AD0 val=0011
W 06200003 pc=3FDF3BE0 val=008C
R 0640000D pc=3FDF7DE0 val=0070
W 06200002 pc=3FA91260 val=00CA
W 06200002 pc=3FA91300 val=002A
W 06200002 pc=3FA913B0 val=003A
W 06200002 pc=3FA91460 val=004A
W 06200002 pc=3FA91500 val=005A
W 06200002 pc=3FA915A0 val=001A
W 0620000A pc=3FA91650 val=00CA
W 0620000A pc=3FA916F0 val=002A
W 0620000A pc=3FA917A0 val=003A
W 0620000A pc=3FA91850 val=004A
W 0620000A pc=3FA91900 val=005A
W 0620000A pc=3FA919A0 val=001A
W 06200000 pc=3FA91A30 val=0013
W 06200000 pc=3FA91AC0 val=0007
W 06200001 pc=3FA91B70 val=0099
W 06200002 pc=3FA91C70 val=0005
W 06200008 pc=3FA91D10 val=0007
W 06200008 pc=3FA91DB0 val=0007
W 06200009 pc=3FA91E60 val=0099
W 0620000A pc=3FA91F40 val=0005
W 06200005 pc=3FA91FE0 val=0000
R 06200001 pc=3FDCE670 val=0099
R 06200003 pc=3FDCE700 val=008C
R 06200001 pc=3FDCE820 val=0099
W 06200003 pc=3FDCE8D0 val=00E1
R 06200001 pc=3FDCE910 val=0099
R 06200003 pc=3FDCE970 val=00E1
R 06200001 pc=3FDCEA90 val=0099
W 0620000D pc=3FDF1B40 val=0000
W 0620000E pc=3FDF1B80 val=000C
R 06200001 pc=3FDCF420 val=0099
R 06200003 pc=3FDCF560 val=00E1
+53
View File
@@ -0,0 +1,53 @@
# kind addr pc value (bit addresses; distinct (addr,pc) only)
W 0640000D pc=3F2000B0 val=0000
R 0640000F pc=3F200100 val=0000
R 0640000E pc=3F200150 val=0000
W 0620000D pc=3F200190 val=0000
W 0620000F pc=3F2001E0 val=0004
R 0640000F pc=3F200250 val=0000
R 0640000D pc=3F200380 val=0000
R 0640000D pc=3F200A20 val=0000
R 0640000D pc=3F202650 val=0000
W 05800000 pc=3FDDCB20 val=0004
R 0640000D pc=3F2045A0 val=0000
W 0620000D pc=3F2052C0 val=0000
W 0620000E pc=3F205310 val=00FF
W 0620000F pc=3F205370 val=0004
R 0640000D pc=3F204A90 val=0000
R 0640000E pc=3F2042D0 val=0000
R 0640000D pc=3F204300 val=0000
W 0640000D pc=3FDF1150 val=0000
W 0640000F pc=3FDF1190 val=0001
R 06200001 pc=3FDF3900 val=0000
R 06200001 pc=3FDF3A20 val=0000
W 06200003 pc=3FDF3AD0 val=0011
W 06200003 pc=3FDF3BE0 val=008C
R 0640000D pc=3FDF7DE0 val=0000
W 06200002 pc=3FA91260 val=00CA
W 06200002 pc=3FA91300 val=002A
W 06200002 pc=3FA913B0 val=003A
W 06200002 pc=3FA91460 val=004A
W 06200002 pc=3FA91500 val=005A
W 06200002 pc=3FA915A0 val=001A
W 0620000A pc=3FA91650 val=00CA
W 0620000A pc=3FA916F0 val=002A
W 0620000A pc=3FA917A0 val=003A
W 0620000A pc=3FA91850 val=004A
W 0620000A pc=3FA91900 val=005A
W 0620000A pc=3FA919A0 val=001A
W 06200000 pc=3FA91A30 val=0013
W 06200000 pc=3FA91AC0 val=0007
W 06200001 pc=3FA91B70 val=0099
W 06200002 pc=3FA91C70 val=0005
W 06200008 pc=3FA91D10 val=0007
W 06200008 pc=3FA91DB0 val=0007
W 06200009 pc=3FA91E60 val=0099
W 0620000A pc=3FA91F40 val=0005
W 06200005 pc=3FA91FE0 val=0000
R 06200001 pc=3FDCE670 val=0000
W 06200003 pc=3FDCE8D0 val=00E1
R 06200001 pc=3FDCE910 val=0000
W 0620000D pc=3FDF1B40 val=0000
W 0620000E pc=3FDF1B80 val=000C
R 06200001 pc=3FDCF420 val=0000
R 06200001 pc=3FDCF500 val=0000
+81
View File
@@ -0,0 +1,81 @@
# kind addr pc value (bit addresses; distinct (addr,pc) only)
W 0640000D pc=3F2000B0 val=0000
R 0640000F pc=3F200100 val=0000
R 0640000E pc=3F200150 val=0000
W 0620000D pc=3F200190 val=0000
W 0620000F pc=3F2001E0 val=0004
R 0640000F pc=3F200250 val=0000
R 0640000D pc=3F200380 val=0000
R 0640000D pc=3F200A20 val=0000
R 0640000D pc=3F202650 val=0000
W 05800000 pc=3FDDCB20 val=0004
R 0640000D pc=3F2045A0 val=0000
W 0620000D pc=3F2052C0 val=0000
W 0620000E pc=3F205310 val=00FF
W 0620000F pc=3F205370 val=0004
R 0640000D pc=3F204A90 val=0000
R 0640000E pc=3F2042D0 val=0000
R 0640000D pc=3F204300 val=0000
W 0640000D pc=3FDF1150 val=0000
W 0640000F pc=3FDF1190 val=0001
R 06200001 pc=3FDF3900 val=0001
W 06200003 pc=3FDF3AD0 val=0011
W 06200003 pc=3FDF3BE0 val=008C
R 0640000D pc=3FDF7DE0 val=0000
W 06200002 pc=3FA91260 val=00CA
W 06200002 pc=3FA91300 val=002A
W 06200002 pc=3FA913B0 val=003A
W 06200002 pc=3FA91460 val=004A
W 06200002 pc=3FA91500 val=005A
W 06200002 pc=3FA915A0 val=001A
W 0620000A pc=3FA91650 val=00CA
W 0620000A pc=3FA916F0 val=002A
W 0620000A pc=3FA917A0 val=003A
W 0620000A pc=3FA91850 val=004A
W 0620000A pc=3FA91900 val=005A
W 0620000A pc=3FA919A0 val=001A
W 06200000 pc=3FA91A30 val=0013
W 06200000 pc=3FA91AC0 val=0007
W 06200001 pc=3FA91B70 val=0099
W 06200002 pc=3FA91C70 val=0005
W 06200008 pc=3FA91D10 val=0007
W 06200008 pc=3FA91DB0 val=0007
W 06200009 pc=3FA91E60 val=0099
W 0620000A pc=3FA91F40 val=0005
W 06200005 pc=3FA91FE0 val=0000
R 06200001 pc=3FDCE670 val=0001
R 06200003 pc=3FDCE700 val=0000
R 06200001 pc=3FDCE820 val=0001
W 06200003 pc=3FDCE8D0 val=00E1
R 06200001 pc=3FDCE910 val=0001
R 06200003 pc=3FDCE970 val=0000
R 06200001 pc=3FDCEA90 val=0001
W 0620000D pc=3FDF1B40 val=0000
W 0620000E pc=3FDF1B80 val=000C
W 06400002 pc=3FA90A00 val=00CA
W 06400002 pc=3FA90AB0 val=002A
W 06400002 pc=3FA90B60 val=003A
W 06400002 pc=3FA90C10 val=004A
W 06400002 pc=3FA90CC0 val=005A
W 06400002 pc=3FA90D60 val=001A
W 0640000A pc=3FA90E10 val=00CA
W 0640000A pc=3FA90EC0 val=002A
W 0640000A pc=3FA90F70 val=003A
W 0640000A pc=3FA91020 val=004A
W 0640000A pc=3FA910D0 val=005A
W 0640000A pc=3FA91170 val=001A
W 06200002 pc=3FA90A00 val=00CA
W 06200002 pc=3FA90AB0 val=002A
W 06200002 pc=3FA90B60 val=003A
W 06200002 pc=3FA90C10 val=004A
W 06200002 pc=3FA90CC0 val=005A
W 06200002 pc=3FA90D60 val=001A
W 0620000A pc=3FA90E10 val=00CA
W 0620000A pc=3FA90EC0 val=002A
W 0620000A pc=3FA90F70 val=003A
W 0620000A pc=3FA91020 val=004A
W 0620000A pc=3FA910D0 val=005A
W 0620000A pc=3FA91170 val=001A
W 0640000F pc=3FA7C330 val=0080
W 0640000D pc=3F208830 val=0000
W 0640000F pc=3F208880 val=00FF
+55
View File
@@ -0,0 +1,55 @@
# kind addr pc value (bit addresses; distinct (addr,pc) only)
W 0640000D pc=3F2000B0 val=0000
R 0640000F pc=3F200100 val=0000
R 0640000E pc=3F200150 val=0000
W 0620000D pc=3F200190 val=0000
W 0620000F pc=3F2001E0 val=0004
R 0640000F pc=3F200250 val=00FF
R 0640000D pc=3F200380 val=0070
R 0640000D pc=3F200A20 val=0070
R 0640000D pc=3F202650 val=0070
W 05800000 pc=3FDDCB20 val=0004
R 0640000D pc=3F2045A0 val=0070
W 0620000D pc=3F2052C0 val=0000
W 0620000E pc=3F205310 val=00FF
W 0620000F pc=3F205370 val=0004
R 0640000E pc=3F2042D0 val=000F
R 0640000D pc=3F204300 val=0070
W 0640000D pc=3FDF1150 val=0000
W 0640000F pc=3FDF1190 val=0001
R 06200001 pc=3FDF3900 val=0001
W 06200003 pc=3FDF3AD0 val=0011
W 06200003 pc=3FDF3BE0 val=008C
R 0640000D pc=3FDF7DE0 val=0070
W 06200002 pc=3FA91260 val=00CA
W 06200002 pc=3FA91300 val=002A
W 06200002 pc=3FA913B0 val=003A
W 06200002 pc=3FA91460 val=004A
W 06200002 pc=3FA91500 val=005A
W 06200002 pc=3FA915A0 val=001A
W 0620000A pc=3FA91650 val=00CA
W 0620000A pc=3FA916F0 val=002A
W 0620000A pc=3FA917A0 val=003A
W 0620000A pc=3FA91850 val=004A
W 0620000A pc=3FA91900 val=005A
W 0620000A pc=3FA919A0 val=001A
W 06200000 pc=3FA91A30 val=0013
W 06200000 pc=3FA91AC0 val=0007
W 06200001 pc=3FA91B70 val=0099
W 06200002 pc=3FA91C70 val=0005
W 06200008 pc=3FA91D10 val=0007
W 06200008 pc=3FA91DB0 val=0007
W 06200009 pc=3FA91E60 val=0099
W 0620000A pc=3FA91F40 val=0005
W 06200005 pc=3FA91FE0 val=0000
R 06200001 pc=3FDCE670 val=0099
R 06200003 pc=3FDCE700 val=008C
R 06200001 pc=3FDCE820 val=0099
W 06200003 pc=3FDCE8D0 val=00E1
R 06200001 pc=3FDCE910 val=0099
R 06200003 pc=3FDCE970 val=00E1
R 06200001 pc=3FDCEA90 val=0099
W 0620000D pc=3FDF1B40 val=0000
W 0620000E pc=3FDF1B80 val=000C
R 06200001 pc=3FDCF420 val=0099
R 06200003 pc=3FDCF560 val=00E1
+56
View File
@@ -0,0 +1,56 @@
#!/bin/sh
# Build the minimal VT1200 MAME subtarget.
#
# harness/mame/build.sh # incremental
# harness/mame/build.sh clean # wipe object dir first
#
# Requires a MAME source checkout (default /home/arti/code/k-space/mame0289).
# The driver source lives in this repo and is symlinked into the MAME tree.
set -e
HERE=$(cd "$(dirname "$0")" && pwd)
MAME_SRC=${MAME_SRC:-/home/arti/code/k-space/mame0289}
JOBS=${JOBS:-8}
DRIVER="$HERE/vt1200.cpp"
DEST="$MAME_SRC/src/mame/dec/vt1200.cpp"
LOG="$HERE/build.log"
if [ ! -d "$MAME_SRC/src/mame" ]; then
echo "MAME source tree not found at $MAME_SRC (set MAME_SRC)" >&2
exit 1
fi
mkdir -p "$MAME_SRC/src/mame/dec"
ln -sf "$DRIVER" "$DEST"
# MAME's SOURCES= build only recognises source files registered in the master
# list (src/mame/mame.lst). Register ours idempotently.
if ! grep -q "@source:dec/vt1200.cpp" "$MAME_SRC/src/mame/mame.lst"; then
printf '@source:dec/vt1200.cpp\nvt1200\n' >> "$MAME_SRC/src/mame/mame.lst"
fi
cd "$MAME_SRC"
if [ "$1" = clean ]; then
rm -rf "obj/vt1200"
fi
# -j$(nproc). SUBTARGET + SOURCES gives a single-driver build; the device
# set (tms34010, screen, ...) is pulled in automatically.
# Build with a bounded parallel job count: the MAME tree is large and
# memory-hungry, and each C++ translation unit can use a lot of RAM.
# Defaults to 8; override with e.g. JOBS=4 harness/mame/build.sh
set -x
make -j"$JOBS" SUBTARGET=vt1200 SOURCES=src/mame/dec/vt1200.cpp REGENIE=1 > "$LOG" 2>&1
status=$?
set +x
if [ $status -ne 0 ]; then
echo
echo "BUILD FAILED (make exited $status); last lines of $LOG:" >&2
tail -25 "$LOG" >&2
exit 1
fi
echo
echo "built: $MAME_SRC/vt1200"
+39
View File
@@ -0,0 +1,39 @@
-- Is the firmware making forward progress, or orbiting a fixed set of addresses?
--
-- Samples the PC once per emulated frame and, every COV_WINDOW frames, reports
-- how many *new* PCs appeared in that window. A plateau means a loop; a steady
-- trickle means it is still executing new code.
--
-- COV_FRAMES=3000 COV_WINDOW=100 <mame> vt1200 ... \
-- -autoboot_script harness/mame/coverage.lua -autoboot_delay 0
local machine = manager.machine
local cpu = machine.devices[':maincpu']
local dbg = machine.debugger
local pc = cpu.state['PC']
local maxframes = tonumber(os.getenv("COV_FRAMES") or "3000")
local window = tonumber(os.getenv("COV_WINDOW") or "100")
local seen = {}
local frames, winnew, total = 0, 0, 0
emu.register_frame_done(function()
frames = frames + 1
local v = pc.value
if not seen[v] then
seen[v] = true
winnew = winnew + 1
total = total + 1
end
if frames % window == 0 then
print(string.format("frame %5d new=%4d total_distinct=%5d PC=%08X",
frames, winnew, total, v))
winnew = 0
end
if frames >= maxframes then
machine:exit()
end
end, "vt1200-coverage")
dbg.execution_state = 'run'
Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

+35
View File
@@ -0,0 +1,35 @@
-- Is the TMS34010 display controller enabled, and what does the firmware have
-- in the display registers? The video renderer (and therefore the driver's
-- scanline/frame dump) only runs when DPYCTL bit 15 is set.
--
-- DPY_FRAMES=600 <mame> vt1200 ... -autoboot_script harness/mame/dpyctl.lua
local machine = manager.machine
local cpu = machine.devices[':maincpu']
local dbg = machine.debugger
local prog = cpu.spaces['program']
local maxframes = tonumber(os.getenv("DPY_FRAMES") or "600")
local every = tonumber(os.getenv("DPY_EVERY") or "50")
local n = 0
local seen_enabled = false
local function rd(a) return prog:read_u16(a) end
emu.register_frame_done(function()
n = n + 1
local dpyctl = rd(0xc0000080)
if (dpyctl & 0x8000) ~= 0 then seen_enabled = true end
if n % every == 0 then
print(string.format(
"frame %5d DPYCTL=%04X%s CONTROL=%04X DPYSTRT=%04X DPYINT=%04X DPYTAP=%04X DPYADR=%04X",
n, dpyctl, (dpyctl & 0x8000) ~= 0 and " <ENABLED>" or "",
rd(0xc00000b0), rd(0xc0000090), rd(0xc00000a0), rd(0xc00001b0), rd(0xc00001e0)))
end
if n >= maxframes then
print("display enabled at any point: " .. tostring(seen_enabled))
machine:exit()
end
end, "vt1200-dpyctl")
dbg.execution_state = 'run'
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

+30
View File
@@ -0,0 +1,30 @@
-- Dump the debugger's execution history at a chosen frame. This gives the actual
-- instruction stream leading into the stuck loop, including call sites -- i.e.
-- which routine called what, which no amount of static reading has told us.
--
-- HIST_FRAME=300 <mame> vt1200 ... -autoboot_script harness/mame/hist.lua
local machine = manager.machine
local dbg = machine.debugger
if not dbg then
print("ERROR: debugger not enabled; pass -debug")
machine:exit()
return
end
local target = tonumber(os.getenv("HIST_FRAME") or "300")
local path = os.getenv("HIST_OUT")
or "/home/arti/code/k-space/vt1200/harness/mame/hist.txt"
local n = 0
emu.register_frame_done(function()
n = n + 1
if n >= target then
dbg:command("history " .. path)
print("history written to " .. path .. " at frame " .. n)
machine:exit()
end
end, "vt1200-hist")
dbg.execution_state = 'run'
+56
View File
@@ -0,0 +1,56 @@
-- Interrupt diagnostic. The stuck loop sits inside the LEVEL0 display-interrupt
-- test, which waits for the TMS34010's display interrupt. MAME generates it when
-- VCOUNT == DPYINT and the display is enabled, provided INTENB has the DI bit.
--
-- Register map (MAME tms34010 enum, index*0x10 from 0xC0000000):
-- 0x00 HESYNC 0x10 HEBLNK 0x20 HSBLNK 0x30 HTOTAL
-- 0x40 VESYNC 0x50 VEBLNK 0x60 VSBLNK 0x70 VTOTAL
-- 0x80 DPYCTL 0x90 DPYSTRT 0xA0 DPYINT 0xB0 CONTROL
-- 0x110 INTENB 0x120 INTPEND 0x1B0 DPYTAP 0x1C0 HCOUNT 0x1D0 VCOUNT 0x1E0 DPYADR
--
-- INT_FRAMES=400 <mame> vt1200 ... -autoboot_script harness/mame/intr.lua
local machine = manager.machine
local cpu = machine.devices[':maincpu']
local dbg = machine.debugger
local prog = cpu.spaces['program']
local maxframes = tonumber(os.getenv("INT_FRAMES") or "400")
local every = tonumber(os.getenv("INT_EVERY") or "50")
local n = 0
local rd = function(a) return prog:read_u16(a) end
local seen = {}
local last_intenb, last_intpend = -1, -1
emu.register_frame_done(function()
n = n + 1
local intenb = rd(0xc0000110)
local intpend = rd(0xc0000120)
local dpyctl = rd(0xc0000080)
seen[intenb] = (seen[intenb] or 0) + 1
-- Report changes immediately; sampling every N frames can miss a transient.
if intenb ~= last_intenb then
print(string.format("f%4d INTENB CHANGED -> %04X (DI=%d)", n, intenb, (intenb & 0x0400) ~= 0 and 1 or 0))
last_intenb = intenb
end
if intpend ~= last_intpend then
print(string.format("f%4d INTPEND CHANGED -> %04X", n, intpend))
last_intpend = intpend
end
if n % every == 0 then
print(string.format(
"f%4d DPYCTL=%04X INTENB=%04X(DI=%d) INTPEND=%04X DI=%d DPYINT=%04X VCOUNT=%04X VTOTAL=%04X HTOTAL=%04X HSBLNK=%04X",
n, dpyctl, intenb, (intenb & 0x0400) ~= 0 and 1 or 0, intpend,
(intpend & 0x0400) ~= 0 and 1 or 0, rd(0xc00000a0), rd(0xc00001d0),
rd(0xc0000070), rd(0xc0000030), rd(0xc0000020)))
end
if n >= maxframes then
print("distinct INTENB values seen:")
for v, c in pairs(seen) do
print(string.format(" INTENB=%04X DI=%d (%d frames)", v, (v & 0x0400) ~= 0 and 1 or 0, c))
end
machine:exit()
end
end, "vt1200-intr")
dbg.execution_state = 'run'
+45
View File
@@ -0,0 +1,45 @@
-- VT1200: demonstrate the pcfReadBitmaps n*4 integer overflow in-emulator.
--
-- We jump straight into the arithmetic block with a crafted PCF_CharInfo:
-- a9 = fake pCS, pCS->nChars at a9+0x270
-- a13 = fake arg blk, n (32-bit pcfReadInt32 result) at a13+0x20
-- PC = 3f984e70
-- A breakpoint after 'sll 0x2,a11' (3f985060) prints the resulting size and
-- quits, so we never enter fosAlloc with a bogus heap.
--
-- <mame> vt1200 -rompath harness/mame/roms -video none -sound none -nothrottle \
-- -debug -debugger none -debuglog \
-- -autoboot_script harness/mame/overflow.lua -autoboot_delay 0
local function hex(v) return string.format("%08X", v) end
local machine = manager.machine
local cpu = machine.devices[':maincpu']
local dbg = machine.debugger
local prog = cpu.spaces['program']
if not dbg then
print("ERROR: debugger not enabled; pass -debug")
machine:exit()
return
end
-- n defaults to 0x40000001: n*4 wraps mod 2^32 to 4, but the following loop
-- still writes n CARD32 entries -- a heap overflow. Override with OVF_N
-- (decimal) to run a control case.
local n = tonumber(os.getenv("OVF_N") or "1073741825")
cpu.state['SP'].value = 0x00080000
cpu.state['A9'].value = 0x00040000 -- fake pCS
cpu.state['A13'].value = 0x00060000 -- fake arg block
prog:write_u32(0x00040270, 0) -- pCS->nChars = 0
prog:write_u32(0x00060020, n) -- n
cpu.state['PC'].value = 0x3f984e70 -- pcfReadBitmaps arithmetic block
print(string.format("setup: n=%s (n*4 should wrap to 00000004)", hex(n)))
-- 3f985060 is the instruction right after '3f985050 sll 0x2,a11'.
dbg:command("bpset 3f985060,,{ printf \"RESULT n=%08X a11_fosAlloc_arg=%08X nChars=%08X\\n\", d@00060020, a11, d@00040270 ; quit }")
dbg.visible_cpu = cpu
dbg.execution_state = 'run'
+56
View File
@@ -0,0 +1,56 @@
-- VT1200: how far does the boot get with the current (peripheral-less) driver,
-- and where does it end up spinning? Samples the PC once per emulated frame and
-- prints a histogram of the hottest PCs at the end.
--
-- <mame> vt1200 -rompath harness/mame/roms -video none -sound none -nothrottle \
-- -debug -debugger none -debuglog \
-- -autoboot_script harness/mame/progress.lua -autoboot_delay 0
--
-- PROG_FRAMES overrides the frame budget (default 600).
local function hex(v) return string.format("%08X", v) end
local machine = manager.machine
local cpu = machine.devices[':maincpu']
local dbg = machine.debugger
local pc = cpu.state['PC']
if not dbg then
print("ERROR: debugger not enabled; pass -debug")
machine:exit()
return
end
local maxframes = tonumber(os.getenv("PROG_FRAMES") or "600")
local frames = 0
local hist = {}
local first = {}
emu.register_frame_done(function()
frames = frames + 1
local v = pc.value
hist[v] = (hist[v] or 0) + 1
if not first[v] then first[v] = frames end
if frames % 50 == 0 then
print(string.format("frame %5d PC=%s", frames, hex(v)))
end
if frames >= maxframes then
print("--- distinct PCs sampled: " .. tostring((function()
local n = 0
for _ in pairs(hist) do n = n + 1 end
return n
end)()))
print("--- hottest PCs (one sample per frame) ---")
local list = {}
for k, c in pairs(hist) do list[#list + 1] = {k, c} end
table.sort(list, function(a, b) return a[2] > b[2] end)
for i = 1, math.min(15, #list) do
print(string.format(" PC=%s samples=%d first_frame=%d",
hex(list[i][1]), list[i][2], first[list[i][1]]))
end
machine:exit()
end
end, "vt1200-progress")
dbg.visible_cpu = cpu
dbg.execution_state = 'run'
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

+60
View File
@@ -0,0 +1,60 @@
3F200040: DINT
3F200050: SETF 10h,0,0
3F200060: SETF 20h,0,1
3F200070: CLR A0
3F200080: MOVE A0,@64000D0h,0
3F2000B0: MOVI FFh,A0
3F2000D0: MOVB A0,@64000F0h
3F200100: MOVI Fh,A0
3F200120: MOVB A0,@64000E0h
3F200150: CLR A0
3F200160: MOVE A0,@62000D0h,0
3F200190: MOVI 4h,A0
3F2001B0: MOVE A0,@62000F0h,0
3F2001E0: CLR A8
3F2001F0: MOVI 1h,A0
3F200220: MOVB A0,@64000F0h
3F200250: CLR A0
3F200260: MOVE A0,@C00000B0h,0
3F200290: MOVE A0,@C0000080h,0
3F2002C0: MOVE A0,@C0000100h,0
3F2002F0: MOVE A0,@C0000110h,0
3F200320: MOVE A0,@C0000120h,0
3F200350: MOVE @64000D0h,A0,0
3F200380: BTST 2h,A0
3F200390: JAEQ 3F2006F0h
3F2006F0: MOVI 800Ch,A0
3F200720: MOVE A0,@C00000B0h,0
3F200750: MOVE @C00000B0h,A0,0
3F200780: MOVI 4000h,A0
3F2007A0: MOVE A0,@C0000100h,0
3F2007D0: MOVE @C00000B0h,A0,0
3F200800: MOVI 0h,A0
3F200820: MOVE A0,@C0000100h,0
3F200850: MOVE @C00000B0h,A0,0
3F200880: MOVI Ch,A0
3F2008A0: MOVE A0,@C00000B0h,0
3F2008D0: MOVE @C00000B0h,A0,0
3F200900: MOVI 0h,SP
3F200930: MOVI 0h,A13
3F200960: CLR B10
3F200970: MOVI 29Fh,B9
3F2009A0: MOVI 0h,B8
3F2009D0: MOVE B10,*B8+,1
3F2009E0: DSJS B9,3F2009D0h
3F2009D0: MOVE B10,*B8+,1
3F2009E0: DSJS B9,3F2009D0h
3F2009D0: MOVE B10,*B8+,1
3F2009E0: DSJS B9,3F2009D0h
3F2009D0: MOVE B10,*B8+,1
3F2009E0: DSJS B9,3F2009D0h
3F2009D0: MOVE B10,*B8+,1
3F2009E0: DSJS B9,3F2009D0h
3F2009D0: MOVE B10,*B8+,1
3F2009E0: DSJS B9,3F2009D0h
3F2009D0: MOVE B10,*B8+,1
3F2009E0: DSJS B9,3F2009D0h
3F2009D0: MOVE B10,*B8+,1
3F2009E0: DSJS B9,3F2009D0h
3F2009D0: MOVE B10,*B8+,1
3F2009E0: DSJS B9,3F2009D0h
+19
View File
@@ -0,0 +1,19 @@
3F200000: 7AE9 DW 7AE9h
3F200010: F5E2 PIXT *SP,XY,*A2,XY
3F200020: AAAA MOVE -*A5,-*A10,1
3F200030: 5555 OR B10,B5
3F200040: 0360 DINT
3F200050: 0550 SETF 10h,0,0
3F200060: 0740 SETF 20h,0,1
3F200070: 5600 CLR A0
3F200080: 0580 00D0 0640 MOVE A0,@64000D0h,0
3F2000B0: 09C0 00FF MOVI FFh,A0
3F2000D0: 05E0 00F0 0640 MOVB A0,@64000F0h
3F200100: 09C0 000F MOVI Fh,A0
3F200120: 05E0 00E0 0640 MOVB A0,@64000E0h
3F200150: 5600 CLR A0
3F200160: 0580 00D0 0620 MOVE A0,@62000D0h,0
3F200190: 09C0 0004 MOVI 4h,A0
3F2001B0: 0580 00F0 0620 MOVE A0,@62000F0h,0
3F2001E0: 5708 CLR A8
3F2001F0: 09E0 0001 0000 MOVI 1h,A0
+1
View File
@@ -0,0 +1 @@
../../../../vt1200_v22.bin
+52
View File
@@ -0,0 +1,52 @@
-- When the CPU is parked in the POST delay loop, dump the stack so we can see
-- the caller chain -- i.e. who passes the absurd delay count, and where the
-- count comes from.
--
-- <mame> vt1200 -rompath harness/mame/roms -video none -sound none -nothrottle \
-- -debug -debugger none -autoboot_script harness/mame/stackwalk.lua -autoboot_delay 0
--
-- TMS34010 note: SP is a *bit* address, and a 32-bit word occupies 32 bit
-- addresses, so consecutive stack words are +/- 32.
local function hex(v) return string.format("%08X", v) end
local machine = manager.machine
local cpu = machine.devices[':maincpu']
local dbg = machine.debugger
local prog = cpu.spaces['program']
local pc = cpu.state['PC']
local sp = cpu.state['SP']
if not prog or not prog.read_u32 then
print("ERROR: program space has no read_u32")
end
local TARGET = tonumber(os.getenv("WALK_PC") or "0x3FDCE400")
local SKIP = tonumber(os.getenv("WALK_SKIP") or "40")
local frames = 0
local done = false
emu.register_frame_done(function()
frames = frames + 1
if done then return end
if pc.value == TARGET and frames > SKIP then
done = true
local s = sp.value
print(string.format("=== parked at %s SP=%s frame=%d ===", hex(TARGET), hex(s), frames))
for i = -4, 28 do
local a = (s + i * 32) & 0xFFFFFFFF
local v = prog:read_u32(a)
local tag = ""
if v >= 0x3F200000 and v < 0x40000000 then
tag = string.format(" <- ROM bit addr -> file 0x%06X", (v - 0x3F200000) / 8)
elseif v < 0x00200000 then
tag = " <- low RAM bit addr"
end
print(string.format(" [%+3d] @%s = %s%s", i, hex(a), hex(v), tag))
end
machine:exit()
end
end, "vt1200-stackwalk")
dbg.visible_cpu = cpu
dbg.execution_state = 'run'
+37
View File
@@ -0,0 +1,37 @@
-- How much *emulated* time have we run? Real hardware reaches the font table in
-- ~12 s, so this answers "is the emulator slow, or is the firmware stuck?"
--
-- TIM_FRAMES=1500 <mame> vt1200 ... -autoboot_script harness/mame/timing.lua
--
-- Also reports the screen's frame period, which sets the whole emulated timebase.
local machine = manager.machine
local dbg = machine.debugger
local maxframes = tonumber(os.getenv("TIM_FRAMES") or "1500")
local every = tonumber(os.getenv("TIM_EVERY") or "250")
local n = 0
local t0 = nil
local scr = nil
for _, s in pairs(machine.screens) do scr = s end
if scr then
print(string.format("screen: %dx%d refresh=%.4f Hz frame_period=%.6f s",
scr.width, scr.height, scr.refresh, scr.refresh > 0 and (1.0 / scr.refresh) or 0))
end
emu.register_frame_done(function()
n = n + 1
if t0 == nil then t0 = machine.time:as_double() end
if n % every == 0 then
print(string.format("frame %5d emulated_time=%8.2fs", n, machine.time:as_double()))
end
if n >= maxframes then
local dt = machine.time:as_double() - t0
print(string.format("TOTAL: %d frames = %.2f s emulated (%.4f s/frame)",
maxframes, dt, dt / maxframes))
machine:exit()
end
end, "vt1200-timing")
dbg.execution_state = 'run'
+48
View File
@@ -0,0 +1,48 @@
-- VT1200 firmware execution harness (headless, Lua debugger API).
--
-- Run:
-- <mame> vt1200 -rompath harness/mame/roms \
-- -video none -sound none -nothrottle \
-- -debug -debugger none \
-- -autoboot_script harness/mame/trace.lua -autoboot_delay 0
--
-- Proves the firmware executes from the reset vector and writes an
-- instruction trace of the first frames.
local function hex(v) return string.format("%08X", v) end
local machine = manager.machine
local cpu = machine.devices[':maincpu']
local dbg = machine.debugger
local pc = cpu.state['PC']
local prog = cpu.spaces['program']
if not dbg then
print("ERROR: debugger not enabled; pass -debug")
machine:exit()
return
end
local base = "/home/arti/code/k-space/vt1200/harness/mame/"
local tracepath = base .. "vt1200-reset.trace"
print(string.format("[space] program shift=%d data_width=%d", prog.shift, prog.data_width))
print(string.format("PC at harness start = %s (expect 3F200040)", hex(pc.value)))
dbg.visible_cpu = cpu
dbg:command("trace " .. tracepath .. ",maincpu,noloop")
dbg:command("dasm " .. base .. "reset.dasm,3f200000,200,1")
-- Let the machine run; stop after a couple of frames.
local frames = 0
emu.register_frame_done(function()
frames = frames + 1
if frames >= 2 then
dbg:command("trace off")
print(string.format("after %d frames: PC=%s", frames, hex(pc.value)))
machine:exit()
end
end, "vt1200-harness")
-- The debugger stops the machine at the reset vector; release it.
dbg.execution_state = 'run'
File diff suppressed because it is too large. Load diff
Binary file not shown.
+509
View File
@@ -0,0 +1,509 @@
// license:BSD-3-Clause
// copyright-holders: VT1200 reverse-engineering project
/***************************************************************************
DEC VT1200 X terminal -- MAME execution harness
This is NOT an accurate hardware emulation. It exists to give us a way
to *execute* the VT1200 firmware under the TMS34010 interpreter with a
debugger (breakpoints, single step, memory watch, trace).
What is modelled:
* TMS34010 CPU (bit-addressed: MAME's tms34010 memory space uses a
right shift of 3, so address-map units are BITS).
* RAM at logical bit address 0, 4 MiB (byte 0 .. 0x3fffff).
* The 1.75 MiB firmware ROM (physical byte base 0x07e40000 = bit
0x3f200000), mirrored into the three upper 1 GiB quadrants so that
the reset-vector page at logical bit 0xffffffe0 resolves to the last
four bytes of the image (file offset 0x1bfffc).
* OPTIONALLY (see below) the three undecoded board windows.
What is NOT modelled: LANCE Ethernet, the DUARTs, and the board system
logic at bit 0x5800000 / 0x6200000 / 0x6400000. Because of that the
terminal does not boot to the X server; the firmware parks in early POST
waiting on a hardware-ready poll.
---------------------------------------------------------------------
Board-window experiments (all opt-in; with no env vars set the windows
stay unmapped and behave exactly as before):
VT1200_BOARD_LOG=<path> append a line for every *distinct*
(address, PC) board access, flushed
immediately. This is the evidence
gatherer: it shows every register the
firmware polls and the PC doing the
polling.
VT1200_BOARD_DEFAULT=<value> value returned for addresses without an
override (default 0).
VT1200_BOARD_MAP=<list> per-address overrides, e.g.
"0x06200010=1;0x0640000d0=0"
VT1200_BOARD_RAM=1 map the windows as plain read/write RAM
instead (writes persist and read back).
See FULL_BOOT_ESTIMATE.md section 4b for measured results.
***************************************************************************/
#include "emu.h"
#include "cpu/tms34010/tms34010.h"
#include "emupal.h"
#include "screen.h"
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <map>
#include <string>
#include <utility>
namespace {
// The undecoded windows, in bit-address units. 0x5900000 is paired with
// 0x5800000 as a command/data register interface (write a command to
// 0x5900000, then data to 0x5800000; the firmware converts a bit address to a
// byte address with >>3 before feeding it, which implies a DMA-style device
// that uses byte addressing).
static const u32 BOARD_BASE[4] = { 0x05800000, 0x05900000, 0x06200000, 0x06400000 };
class vt1200_state : public driver_device
{
public:
vt1200_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_screen(*this, "screen")
, m_palette(*this, "palette")
, m_mainram(*this, "mainram")
{
}
void vt1200(machine_config &config);
virtual void machine_start() override ATTR_COLD;
virtual void machine_reset() override ATTR_COLD;
// scanline callback: renders (or blanks) the line, and can dump a frame
void scanline(screen_device &screen, bitmap_ind16 &bitmap, int scanline,
const tms340x0_device::display_params *params);
void dump_frame(screen_device &screen, bitmap_ind16 &bitmap);
void dump_ram();
// We drive the TMS34010 renderer ourselves so the frame dump does not
// depend on the device's scanline-callback plumbing.
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
// Board window access, one pair per window so the absolute address is
// unambiguous no matter whether MAME hands us an entry-relative or an
// absolute offset.
u16 board0_r(offs_t off); void board0_w(offs_t off, u16 data);
u16 board1_r(offs_t off); void board1_w(offs_t off, u16 data);
u16 board2_r(offs_t off); void board2_w(offs_t off, u16 data);
u16 board3_r(offs_t off); void board3_w(offs_t off, u16 data);
private:
void program_map(address_map &map) ATTR_COLD;
u16 board_read(int win, offs_t off);
void board_write(int win, offs_t off, u16 data);
void log_pc_access(char kind, u32 addr, u16 value);
required_device<tms34010_device> m_maincpu;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
required_shared_ptr<u16> m_mainram;
std::map<u32, u16> m_override; // absolute addr -> fixed value
std::map<u32, u16> m_store; // absolute addr -> last written value
std::map<std::pair<u32, u32>, u32> m_seen; // (addr, pc) -> count
u16 m_default = 0;
FILE *m_log = nullptr;
// Handshake model. The register at m_busy_addr carries a "busy" bit that
// the firmware both waits to be SET (command accepted) and waits to be
// CLEAR (operation finished), so it must change state, not hold a value.
// Any write to the window arms it; it clears after m_busy_ticks reads.
u32 m_busy_addr = 0x06200001;
u16 m_busy_bit = 1;
int m_busy_ticks = 2;
int m_busy_left = 0;
bool m_model = false;
// Video. Rendering is on by default now that the firmware reaches the
// display code; VT1200_NO_RENDER=1 restores the old blank-everything
// behaviour. VT1200_DUMP_FRAME=<n> writes that frame as a PPM.
bool m_render = true;
long m_dump_frame = -1;
std::string m_dump_dir = ".";
// VT1200_DUMP_RAM=<frame> writes main RAM at that frame to
// vt1200-ram-<frame>.bin so the framebuffer can be located offline.
long m_dump_ram = -1;
bool m_dumped_ram = false;
// VT1200_BOARD_SWITCH=<addr>:<mask>:<value>
// Bits in <mask> read as <value> (an input, e.g. the monitor-selection
// switch); all other bits behave as write-back output latches. 0x64000D0
// is exactly this: the self-test reads the monitor switch from bits 4-6
// (andi 0x70) while the firmware also writes the port.
bool m_switch = false;
u32 m_switch_addr = 0;
u16 m_switch_mask = 0;
u16 m_switch_val = 0;
};
void vt1200_state::machine_start()
{
if (const char *p = getenv("VT1200_BOARD_DEFAULT"))
m_default = u16(strtoul(p, nullptr, 0));
if (const char *list = getenv("VT1200_BOARD_MAP"))
{
std::string s(list), item;
size_t pos = 0;
while (pos <= s.size())
{
size_t semi = s.find(';', pos);
item = s.substr(pos, (semi == std::string::npos) ? std::string::npos : semi - pos);
pos = (semi == std::string::npos) ? s.size() + 1 : semi + 1;
if (item.empty())
continue;
size_t eq = item.find('=');
if (eq == std::string::npos)
continue;
u32 a = u32(strtoul(item.substr(0, eq).c_str(), nullptr, 0));
u16 v = u16(strtoul(item.substr(eq + 1).c_str(), nullptr, 0));
m_override[a] = v;
}
}
if (const char *path = getenv("VT1200_BOARD_LOG"))
{
m_log = fopen(path, "w");
if (m_log)
fprintf(m_log, "# kind addr pc value (bit addresses; distinct (addr,pc) only)\n");
}
// Handshake model: write-back registers + a self-clearing busy bit.
if (const char *model = getenv("VT1200_BOARD_MODEL"))
{
m_model = !strcmp(model, "handshake");
if (const char *a = getenv("VT1200_BOARD_BUSY"))
m_busy_addr = u32(strtoul(a, nullptr, 0));
if (const char *t = getenv("VT1200_BOARD_BUSY_TICKS"))
m_busy_ticks = (int)strtol(t, nullptr, 0);
if (const char *b = getenv("VT1200_BOARD_BUSY_BIT"))
m_busy_bit = u16(strtoul(b, nullptr, 0));
}
// Bit-mixed port: some bits are inputs (e.g. the monitor switch), the rest
// are write-back output latches.
if (const char *sw = getenv("VT1200_BOARD_SWITCH"))
{
unsigned a = 0, m = 0, v = 0;
if (sscanf(sw, "%x:%x:%x", &a, &m, &v) == 3)
{
m_switch = true;
m_switch_addr = a;
m_switch_mask = u16(m);
m_switch_val = u16(v);
}
}
// Video: render by default; optionally dump a frame as PPM.
if (getenv("VT1200_NO_RENDER"))
m_render = false;
if (const char *f = getenv("VT1200_DUMP_FRAME"))
m_dump_frame = strtol(f, nullptr, 0);
if (const char *f = getenv("VT1200_DUMP_RAM"))
m_dump_ram = strtol(f, nullptr, 0);
if (const char *d = getenv("VT1200_DUMP_DIR"))
m_dump_dir = d;
logerror("vt1200: board default=%04x overrides=%d model=%s busy=%08X/%d log=%s render=%d dump=%ld\n",
m_default, (int)m_override.size(), m_model ? "handshake" : "off",
m_busy_addr, m_busy_ticks, m_log ? "on" : "off", m_render ? 1 : 0, m_dump_frame);
}
void vt1200_state::machine_reset()
{
if (m_log)
fflush(m_log);
}
void vt1200_state::program_map(address_map &map)
{
// Main RAM: 4 MiB (1 MiB onboard + 3 x 1 MiB SIMMs on the real machine).
// The TMS34010 is bit-addressed, so 4 MiB of bytes == 0x2000000 address
// units. (The earlier 0x200000 range modelled only 256 KiB, which is
// almost certainly why POST mis-detected memory.)
map(0x00000000, 0x01ffffff).ram().share("mainram");
// ROM: physical byte base 0x07e40000 -> bit base 0x3f200000, 0x1c0000 bytes
// (0xe00000 bit addresses), plus the three upper logical aliases that the
// TMS34010 generates because its top two address bits are not emitted.
map(0x3f200000, 0x3fffffff).rom().region("maincpu", 0);
map(0x7f200000, 0x7fffffff).rom().region("maincpu", 0);
map(0xbf200000, 0xbfffffff).rom().region("maincpu", 0);
map(0xff200000, 0xffffffff).rom().region("maincpu", 0);
// Undecoded board windows. Left unmapped unless an experiment asks for
// them, so the default behaviour is unchanged.
if (getenv("VT1200_BOARD_RAM"))
{
for (int i = 0; i < 4; i++)
map(BOARD_BASE[i], BOARD_BASE[i] + 0xffff).ram();
}
else if (getenv("VT1200_BOARD_LOG") || getenv("VT1200_BOARD_MAP")
|| getenv("VT1200_BOARD_DEFAULT") || getenv("VT1200_BOARD_MODEL"))
{
map(BOARD_BASE[0], BOARD_BASE[0] + 0xffff).rw(FUNC(vt1200_state::board0_r), FUNC(vt1200_state::board0_w));
map(BOARD_BASE[1], BOARD_BASE[1] + 0xffff).rw(FUNC(vt1200_state::board1_r), FUNC(vt1200_state::board1_w));
map(BOARD_BASE[2], BOARD_BASE[2] + 0xffff).rw(FUNC(vt1200_state::board2_r), FUNC(vt1200_state::board2_w));
map(BOARD_BASE[3], BOARD_BASE[3] + 0xffff).rw(FUNC(vt1200_state::board3_r), FUNC(vt1200_state::board3_w));
}
}
// MAME may hand us either an entry-relative offset (0..0xffff) or the absolute
// address; BOARD_BASE is 0x10000-aligned, so ORing the low 16 bits is correct
// in both cases.
u16 vt1200_state::board_read(int win, offs_t off)
{
const u32 addr = BOARD_BASE[win] | (u32(off) & 0xffff);
u16 value;
auto ov = m_override.find(addr);
if (ov != m_override.end())
{
value = ov->second;
}
else if (m_model)
{
// Write-back RAM, plus the self-clearing busy bit.
value = m_store.count(addr) ? m_store[addr] : m_default;
if (addr == m_busy_addr)
{
if (m_busy_left > 0)
{
value |= m_busy_bit; // busy: command accepted, not done
if (--m_busy_left == 0)
; // next read returns idle
}
else
{
value &= ~m_busy_bit; // idle: operation complete
}
}
}
else
{
value = m_default;
}
// Input bits override the write-back value: the monitor-selection switch
// lives in bits 4-6 of 0x64000d0 while the rest of the port is latched
// output. A constant value here would break the output bits, which is why
// a plain override never unblocked the boot.
if (m_switch && addr == m_switch_addr)
value = u16((value & ~m_switch_mask) | (m_switch_val & m_switch_mask));
log_pc_access('R', addr, value);
return value;
}
void vt1200_state::board_write(int win, offs_t off, u16 data)
{
const u32 addr = BOARD_BASE[win] | (u32(off) & 0xffff);
m_store[addr] = data;
if (m_model && m_busy_ticks > 0)
m_busy_left = m_busy_ticks; // arm the handshake
log_pc_access('W', addr, data);
}
void vt1200_state::log_pc_access(char kind, u32 addr, u16 value)
{
if (!m_log)
return;
const u32 pc = u32(m_maincpu->state_int(TMS34010_PC));
auto key = std::make_pair(addr, pc);
auto it = m_seen.find(key);
if (it == m_seen.end())
{
m_seen.emplace(key, 1);
fprintf(m_log, "%c %08X pc=%08X val=%04X\n", kind, addr, pc, value);
fflush(m_log);
}
else if (kind == 'R')
{
it->second++;
}
}
u16 vt1200_state::board0_r(offs_t off) { return board_read(0, off); }
u16 vt1200_state::board1_r(offs_t off) { return board_read(1, off); }
u16 vt1200_state::board2_r(offs_t off) { return board_read(2, off); }
u16 vt1200_state::board3_r(offs_t off) { return board_read(3, off); }
void vt1200_state::board0_w(offs_t off, u16 data) { board_write(0, off, data); }
void vt1200_state::board1_w(offs_t off, u16 data) { board_write(1, off, data); }
void vt1200_state::board2_w(offs_t off, u16 data) { board_write(2, off, data); }
void vt1200_state::board3_w(offs_t off, u16 data) { board_write(3, off, data); }
void vt1200_state::scanline(screen_device &screen, bitmap_ind16 &bitmap, int scanline,
const tms340x0_device::display_params *params)
{
{
static int calls = 0;
if (calls++ < 4)
osd_printf_info("vt1200: scanline#%d line=%d enabled=%d\n",
calls, scanline, params ? (params->enabled ? 1 : 0) : -1);
}
if (!m_render)
std::fill_n(&bitmap.pix(scanline, 0), bitmap.width(), u16(0));
// Dump on the last visible line of the target frame: by then the whole
// frame is in the bitmap, and unlike screen_update the scanline callback
// is reliably invoked once per line.
if (scanline == screen.visible_area().max_y)
{
if (m_dump_frame >= 0 && (long)screen.frame_number() == m_dump_frame)
dump_frame(screen, bitmap);
if (m_dump_ram >= 0 && !m_dumped_ram && (long)screen.frame_number() >= m_dump_ram)
{
m_dumped_ram = true;
dump_ram();
}
}
}
void vt1200_state::dump_frame(screen_device &screen, bitmap_ind16 &bitmap)
{
char path[1024];
snprintf(path, sizeof(path), "%s/vt1200-frame-%ld.ppm", m_dump_dir.c_str(), m_dump_frame);
FILE *fp = fopen(path, "wb");
if (!fp)
{
osd_printf_info("vt1200: cannot write %s\n", path);
return;
}
const int w = bitmap.width(), h = bitmap.height();
fprintf(fp, "P6\n%d %d\n255\n", w, h);
unsigned long lit = 0;
for (int y = 0; y < h; y++)
{
for (int x = 0; x < w; x++)
{
const u16 v = bitmap.pix(y, x);
if (v)
lit++;
const unsigned char c = v ? 255 : 0;
fputc(c, fp); fputc(c, fp); fputc(c, fp);
}
}
fclose(fp);
osd_printf_info("vt1200: dumped frame %ld -> %s (%dx%d, %lu lit = %.4f%%)\n",
m_dump_frame, path, w, h, lit, 100.0 * lit / ((double)w * h));
}
uint32_t vt1200_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
{
static int calls = 0;
if (calls++ < 4)
osd_printf_info("vt1200: screen_update#%d frame=%u clip_y=%d..%d screen=%dx%d\n",
calls, (unsigned)screen.frame_number(), cliprect.min_y, cliprect.max_y,
screen.width(), screen.height());
}
// Let the TMS34010 display controller do the rendering.
const uint32_t changed = m_maincpu->tms340x0_ind16(screen, bitmap, cliprect);
// Dump once the whole frame has been rendered (the video manager calls us
// per region, so wait for the region that reaches the bottom line).
if (cliprect.max_y >= screen.height() - 1)
{
static int guards = 0;
if (guards++ < 5)
osd_printf_info("vt1200: guard#%d frame=%u dump_frame=%ld dump_ram=%ld\n",
guards, (unsigned)screen.frame_number(), m_dump_frame, m_dump_ram);
if (m_dump_frame >= 0 && (long)screen.frame_number() == m_dump_frame)
dump_frame(screen, bitmap);
if (m_dump_ram >= 0 && !m_dumped_ram && (long)screen.frame_number() >= m_dump_ram)
{
m_dumped_ram = true;
dump_ram();
}
}
return changed;
}
void vt1200_state::dump_ram()
{
char path[1024];
snprintf(path, sizeof(path), "%s/vt1200-ram-%ld.bin", m_dump_dir.c_str(), m_dump_ram);
FILE *fp = fopen(path, "wb");
if (!fp)
{
osd_printf_info("vt1200: cannot write %s\n", path);
return;
}
address_space &sp = m_maincpu->space(AS_PROGRAM);
(void)sp;
const u8 *base = reinterpret_cast<const u8 *>(m_mainram.target());
const size_t n = m_mainram.bytes();
fwrite(base, 1, n, fp);
fclose(fp);
osd_printf_info("vt1200: dumped %zu bytes of main RAM (frame %ld) -> %s\n",
n, m_dump_ram, path);
}
void vt1200_state::vt1200(machine_config &config)
{
// Clocks, derived from the real machine's 1280x1024 @ 72 Hz mono display and
// the firmware's own raster registers (HTOTAL=79, VTOTAL=900 observed):
//
// HTOTAL = 79 -> 80 pixel-clocks per line, and 80 * 16 = 1280 pixels,
// so the TMS34010 fetches SIXTEEN pixels per clock.
// refresh = pixel_clock / ((HTOTAL+1) * (VTOTAL+1))
// = pixel_clock / 72000 -> 72 Hz => pixel_clock = 5.184 MHz
//
// The CPU is a TMS34010FNL-50, i.e. 50 MHz (per the TMS34010 users guide and
// the wiki's part number).
TMS34010(config, m_maincpu, XTAL(50'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &vt1200_state::program_map);
m_maincpu->set_pixel_clock(5'184'000);
m_maincpu->set_pixels_per_clock(16);
m_maincpu->set_scanline_ind16_callback(FUNC(vt1200_state::scanline));
m_maincpu->set_screen("screen");
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
// Must be consistent with pixels_per_clock=16, or the renderer (which
// computes heblnk = HEBLNK * 16) overruns the bitmap and corrupts the heap.
// The device reconfigures this from the firmware's registers anyway.
m_screen->set_raw(5'184'000, 1280, 0, 1280, 901, 0, 901);
m_screen->set_screen_update(FUNC(vt1200_state::screen_update));
m_screen->set_palette(m_palette);
// 256 entries so the TMS34010 renderer can encode multi-bit pixels; the
// terminal's real output stage is a later question.
PALETTE(config, m_palette).set_entries(256);
}
INPUT_PORTS_START(vt1200)
INPUT_PORTS_END
ROM_START(vt1200)
ROM_REGION(0x1c0000, "maincpu", 0)
ROM_LOAD("vt1200_v22.bin", 0x000000, 0x1c0000,
CRC(29448f23) SHA1(c2d65bce2c34701b53006f16ccba33e0adbbfd67))
ROM_END
} // anonymous namespace
// year, name, parent, compat, machine, input, class, init, company, fullname
CONS(1990, vt1200, 0, 0, vt1200, vt1200, vt1200_state, empty_init, "DEC",
"VT1200 X terminal (v2.2 firmware)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+35
View File
@@ -0,0 +1,35 @@
-- Watchpoint probe on the TMS34010's interrupt registers: does the firmware
-- ever write INTENB or INTPEND? The driver cannot see CPU-internal register
-- writes, so this uses the debugger's watchpoints.
--
-- WP_FRAMES=400 <mame> vt1200 ... -autoboot_script harness/mame/wp.lua
local machine = manager.machine
local cpu = machine.devices[':maincpu']
local dbg = machine.debugger
if not dbg then
print("ERROR: debugger not enabled; pass -debug")
machine:exit()
return
end
-- INTENB = 0xc0000110 (index 0x11), INTPEND = 0xc0000120 (index 0x12),
-- length 0x10 (one register). 'w' = watch writes.
dbg:command('wpset c0000110,10,w,{ printf "W INTENB pc=%08X\\n", pc ; g }')
dbg:command('wpset c0000120,10,w,{ printf "W INTPEND pc=%08X\\n", pc ; g }')
dbg:command('wpset c0000080,10,w,{ printf "W DPYCTL pc=%08X\\n", pc ; g }')
print("watchpoints armed on INTENB / INTPEND / DPYCTL")
local maxframes = tonumber(os.getenv("WP_FRAMES") or "400")
local n = 0
emu.register_frame_done(function()
n = n + 1
if n >= maxframes then
print("done (" .. n .. " frames)")
machine:exit()
end
end, "vt1200-wp")
dbg.visible_cpu = cpu
dbg.execution_state = 'run'
Binary file not shown.

After

Width:  |  Height:  |  Size: 737 B

+90
View File
@@ -0,0 +1,90 @@
#!/usr/bin/env python3
"""Serve VT1200 font files over TFTP.
The terminal's "TFTP Font Path" is ``<host>:<filename>``; it requests that exact
filename over TFTP and (if it parses) loads it as a font. This serves several
plausible names so we catch whatever it asks for.
sudo python3 -u harness/serve.py [host] [port]
"""
import os
import sys
import time
HERE = os.path.dirname(os.path.abspath(__file__))
ROOT = os.path.dirname(HERE)
sys.path.insert(0, os.path.join(ROOT, "tools"))
import fontgen
FONTS = os.path.join(ROOT, "reference", "fonts")
def load(name):
with open(os.path.join(FONTS, name), "rb") as fh:
return fh.read()
def main():
baseline = load("baseline.pcf")
evil = load("evil-real.pcf")
probe = load("probe-uniq.pcf")
probe_snf = load("probe.snf")
probe_dec = load("probe-dec.snf")
probe_dec2 = load("probe-dec2.snf")
real = load("system-10x20.pcf")
fonts_dir = load("fonts.dir")
files = {}
# The font path value is <host>:<fontdir>. The terminal fetches
# "<fontdir>/fonts.dir" (the directory index), then the font files it names.
for d in ("69", "font", "fonts", "misc", "X11"):
files[f"{d}/fonts.dir"] = fonts_dir
files[f"{d}/baseline.pcf"] = baseline
files[f"{d}/v1200a.pcf"] = baseline
files[f"{d}/evil.pcf"] = evil
# also serve the plain names, in case it asks for those first
for n in ("69", "fonts.dir", "font", "fonts", "ROM", "rom", "real.pcf"):
files[n] = real
files["baseline.pcf"] = baseline
files["evil.pcf"] = evil
if os.path.exists(os.path.join(FONTS, "fonts.dir")):
files["fonts.dir"] = load("fonts.dir")
host = sys.argv[1] if len(sys.argv) > 1 else "100.103.255.254"
port = int(sys.argv[2]) if len(sys.argv) > 2 else 69
def resolve(name):
# The terminal first fetches the bare path, then "<dir>/fonts.dir".
# Accept ANY name: the index for fonts.dir, the payload otherwise.
if name == "fonts.dir" or name.endswith("/fonts.dir"):
return fonts_dir
if name.endswith(".snf"):
if "dec2" in name:
return probe_dec2
return probe_dec if "dec" in name else probe_snf
if name.endswith((".pcf", ".DECW$FONT")):
if "evil" in name:
return evil
if "probe" in name:
return probe
return baseline
return baseline # bare directory name: give it data, not an error
srv = fontgen.TFTPServer((host, port), files, timeout=60.0, retries=10,
resolver=resolve).start()
print(f"serving {len(files)} names on {srv.address}", flush=True)
print(" names: " + ", ".join(sorted(files)), flush=True)
try:
while True:
time.sleep(0.5)
while srv.log:
ts, name, addr = srv.log.pop(0)
stamp = time.strftime("%H:%M:%S", time.localtime(ts))
print(f"{stamp} {addr[0]}:{addr[1]} requested {name!r}", flush=True)
except KeyboardInterrupt:
pass
finally:
srv.stop()
if __name__ == "__main__":
main()
+14
View File
@@ -0,0 +1,14 @@
serving 29 names on ('100.103.255.254', 69)
names: 69, 69/baseline.pcf, 69/evil.pcf, 69/fonts.dir, 69/v1200a.pcf, ROM, X11/baseline.pcf, X11/evil.pcf, X11/fonts.dir, X11/v1200a.pcf, baseline.pcf, evil.pcf, font, font/baseline.pcf, font/evil.pcf, font/fonts.dir, font/v1200a.pcf, fonts, fonts.dir, fonts/baseline.pcf, fonts/evil.pcf, fonts/fonts.dir, fonts/v1200a.pcf, misc/baseline.pcf, misc/evil.pcf, misc/fonts.dir, misc/v1200a.pcf, real.pcf, rom
22:59:40 100.103.255.254:34291 requested 'x/fonts.dir'
tftp: client aborted transfer: '\x00\x03Disk full or allocation exceeded'
23:01:47 100.103.100.103:1028 requested '69'
23:01:47 100.103.100.103:1029 requested '69/fonts.dir'
23:01:48 100.103.100.103:1030 requested '69/fonts.dir'
tftp: client aborted transfer: '\x00\x03Disk full or allocation exceeded'
23:09:14 100.103.100.103:1025 requested '69'
23:09:14 100.103.100.103:1026 requested '69/fonts.dir'
23:09:14 100.103.100.103:1027 requested '69/fonts.dir'
23:09:44 100.103.100.103:1025 requested '69'
23:10:49 100.103.100.103:1030 requested '69/fonts.dir'
23:11:05 100.103.100.103:1032 requested '69/fonts.dir'
Loaded 100 of 325 files, more files were not shown because too many files have changed in this diff. Show more