@@ -233,11 +233,11 @@ stack.stop()
233233 - Stack doesn't receive any Neighbor Advertisement for the address it generated, so it assigns it to its interface.
234234 - After all the addresses are assigned, stack sends out one more Multicast Listener report listing all the multicast addresses it wants to listen to.
235235
236- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/ipv6_nd_dad_01.png)
237- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/ipv6_nd_dad_02.png)
238- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/ipv6_nd_dad_03.png)
239- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/ipv6_nd_dad_04.png)
240- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/ipv6_nd_dad_05.png)
236+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/ipv6_nd_dad_01.png)
237+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/ipv6_nd_dad_02.png)
238+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/ipv6_nd_dad_03.png)
239+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/ipv6_nd_dad_04.png)
240+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/ipv6_nd_dad_05.png)
241241
242242<br >
243243
@@ -246,10 +246,10 @@ stack.stop()
246246 - Peer notices the inconsistency in packet SEQ numbers and sends out a 'fast retransmit request'.
247247 - Stack receives the request and retransmits the lost packet.
248248
249- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_tx_fst_ret_01.png)
250- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_tx_fst_ret_02.png)
251- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_tx_fst_ret_03.png)
252- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_tx_fst_ret_04.png)
249+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_tx_fst_ret_01.png)
250+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_tx_fst_ret_02.png)
251+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_tx_fst_ret_03.png)
252+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_tx_fst_ret_04.png)
253253
254254<br >
255255
@@ -261,12 +261,12 @@ stack.stop()
261261 - Stack receives the lost packet, pulls all the packets stored in the out-of-order queue, and processes them.
262262 - Stacks sends out ACK packet to acknowledge the latest packets pulled from the queue.
263263
264- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_ooo_ret_01.png)
265- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_ooo_ret_02.png)
266- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_ooo_ret_03.png)
267- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_ooo_ret_04.png)
268- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_ooo_ret_05.png)
269- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_ooo_ret_06.png)
264+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_ooo_ret_01.png)
265+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_ooo_ret_02.png)
266+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_ooo_ret_03.png)
267+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_ooo_ret_04.png)
268+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_ooo_ret_05.png)
269+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_ooo_ret_06.png)
270270
271271<br >
272272
@@ -276,10 +276,10 @@ stack.stop()
276276 - Stack echoes the data back.
277277 - Peer closes the connection.
278278
279- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_fsm_srv_01.png)
280- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_fsm_srv_02.png)
281- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_fsm_srv_03.png)
282- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_fsm_srv_04.png)
279+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_fsm_srv_01.png)
280+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_fsm_srv_02.png)
281+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_fsm_srv_03.png)
282+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_fsm_srv_04.png)
283283
284284<br >
285285
@@ -289,10 +289,10 @@ stack.stop()
289289 - Peer echoes the data back.
290290 - Stack closes the connection.
291291
292- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_fsm_clt_01.png)
293- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_fsm_clt_02.png)
294- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_fsm_clt_03.png)
295- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/tcp_fsm_clt_04.png)
292+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_fsm_clt_01.png)
293+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_fsm_clt_02.png)
294+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_fsm_clt_03.png)
295+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/tcp_fsm_clt_04.png)
296296
297297<br >
298298
@@ -301,9 +301,9 @@ stack.stop()
301301 - The second screenshot shows the stack with the sanity check turned on. A malformed ICMPv6 packet is discarded before being passed to the ICMPv6 protocol parser.
302302 - The third screenshot shows the malformed packet. The number of MA records field has been set to 777 even though the packet contains only one record.
303303
304- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/pre_sanity_chk_01.png)
305- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/pre_sanity_chk_02.png)
306- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/pre_sanity_chk_03.png)
304+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/pre_sanity_chk_01.png)
305+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/pre_sanity_chk_02.png)
306+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/pre_sanity_chk_03.png)
307307
308308<br >
309309
@@ -312,10 +312,10 @@ stack.stop()
312312 - One of the IP addresses (192.168.9.102) is already taken, so the stack gets notified about it and skips it.
313313 - The rest of the IP addresses are free, so stack claims them by sending ARP Announcement for each of them.
314314
315- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/ip_arp_probe_01.png)
316- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/ip_arp_probe_02.png)
317- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/ip_arp_probe_03.png)
318- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/ip_arp_probe_04.png)
315+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/ip_arp_probe_01.png)
316+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/ip_arp_probe_02.png)
317+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/ip_arp_probe_03.png)
318+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/ip_arp_probe_04.png)
319319
320320<br >
321321
@@ -324,8 +324,8 @@ stack.stop()
324324 - Stack responds by sending an ARP Reply packet (stack doesn't need to send out its request since it already made a note of the host's MAC from the host's request).
325325 - Host sends ping packets, and stack responds to them.
326326
327- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/arp_ping_01.png)
328- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/arp_ping_02.png)
327+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/arp_ping_01.png)
328+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/arp_ping_02.png)
329329
330330<br >
331331
@@ -336,7 +336,7 @@ stack.stop()
336336 - UDP datagram is passed to the IP protocol handler, which creates an IP packet, and after checking that it exceeds the link, MTU fragments it into three separate IP packets.
337337 - IP packets are encapsulated in Ethernet frames and put on a TX ring.
338338
339- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/ip_udp_frag_01.png)
340- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/ip_udp_frag_02.png)
341- ![ Sample PyTCP log output] ( http ://pytcp.io /docs/images/ip_udp_frag_03.png)
339+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/ip_udp_frag_01.png)
340+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/ip_udp_frag_02.png)
341+ ![ Sample PyTCP log output] ( https ://github.com/ccie18643/PyTCP/blob/master /docs/images/ip_udp_frag_03.png)
342342
0 commit comments