Advertisement
Guest User

1MB HTTP ETHERNETEN

a guest
Sep 19th, 2014
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.52 KB | None | 0 0
  1. Durván összetett azért ahhoz, hogy egyszerűen a+b=c legyen (:
  2.  
  3. Megpróbálom a minimumot/legegyszerűbbet összerakni (nem életszagú).
  4.  
  5. Egyetlen ethernet keret layer 1-en (MTU 1500, VLAN tag nincs):
  6. Alatta leírom mennyi kell belőle.
  7. -----------------------------------------------
  8. 12byte Ethernet gap + 8byte Ethernet preamble
  9. -----------------------------------------------
  10. --            Ethernet Frame:
  11. ----------------------------------------------
  12. --Ethernet header:
  13. --6 byte dest addr
  14. --6 byte src addr
  15. --[4 byte 802.1q VLAN Tag ha van..]
  16. --2 byte length/type
  17. -------------------------------------------------
  18. ------                IP Packet
  19. --------------46-1500 byte data (payload)----------
  20. ----20byte IPv4 header:
  21. ----1byte Version; 1byte IHL; 1byte ToS; 2byte Length;
  22. ----2byte Identification; 3bit Flag; 13bit Fragment offset
  23. ----1byte TTL; 1byte Protocol; 2byte Header Checksum;
  24. ----4byte dest addr; 4byte src addr
  25. ----8byte Options (ha van, mert az IHL több, mint 5 (5x32=20byte a header))
  26. ---------------------------------------------------
  27. --------                TCP segment
  28. -----------------------------------------------------
  29. --------20byte TCP header
  30. --------2byte src port; 2byte dst port;
  31. --------4byte sequence number
  32. --------4byte acknowledge number
  33. --------4bit data offset;
  34. --------3bit reserved; 9bit flag (syn;ack;psh;rst;...)
  35. --------2byte window size
  36. --------2byte checksum; 2byte URG pointer
  37. --------(Ha a data offset 5-nél nagyobb akkor az Options rész is
  38. --------tartalmaz adatot- nagyságát az 5-nél magasabb offset
  39. --------határozza meg (5x32=20byte a header alapból, ha nincs
  40. --------az Options alatt semmi akkor 0-val van feltöltve 4byte-ig de
  41. --------úgyis lesz egy kevés, mert kell pl. SYN-ben MSS-t megadni..))
  42. -----------------------------------------------------
  43. -----------------    
  44. -----------------    
  45. -----------------    A HTTP adat, ami a végén 1MB-ot fog kiadni.
  46. -----------------    
  47. -----------------    
  48. -----------------    Csomagonként 1460byte a maximum..
  49. -----------------    
  50. -----------------    
  51. -----------------------------------------------------
  52. --------
  53. ---------------------------------------------------
  54. ------
  55. ----------------------------------------------
  56. --4 byte Ethernet FCS
  57. -----------------------------------------------
  58. 4byte Ethernet trailer
  59. -----------------------------------------------  
  60.  
  61.  
  62. Na, ekkor jön egy olyan, hogy 3way handshake miatt egy SYN, egy SYNACK
  63. és egy ACK. => 3x Ethernet frameben IP csomag 0 payload-al.
  64. Kell egy HTTP GET, ami minimum ennyi:
  65. GET / HTTP/1.0[ENTER]  \
  66. [ENTER]                |-- 17 byte összesen
  67. [ENTER]                /
  68. ..amire a szerver válaszol egy "üres" ACKel és tolja az 1MB file-t így:
  69.  
  70. Tekintsük a TCP receive window-t a maximumnak: 65536byte (nincs specifikálva se az
  71. kliens OS, se a szerver, se a szerver OS; az életben pl. a TCP receive window 17.5KB
  72. lenne mondjuk egy "átlagos gépnél").
  73.  
  74. Így (1024*1024byte)/65536byte = 16 TCP full window lenne az átvitel ideális esetben
  75. de mivel az ack is kell és 1460byte egy csomag, így ideális (csomagvesztés nélküli)
  76. esetben kell 16 ACK csomag is és a data 44.89 tehát 44db 1460byte-os valamint egy
  77. 1296byte-os csomag lesz egy teljes TCP window. Ehhez jön még window-nként egy ACK.
  78. Majd a végén a lezárás (nem az "elegáns" Windows Serveres RST, hanem) egy rendes,
  79. FINACK a klienstől +ACK a szervertől.
  80.  
  81.  
  82. Durvaélet kihagytam valamit, de tippre a tanár már így is többet kap mint amire számít.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement