ขนาดเล็กสุดของแพ็คเก็ต TCP คืออะไร


10

โพสต์ที่นี่:

http://blogs.adobe.com/dreamweaver/2011/02/optimal-css-tiled-background-image-size.html

อยู่ที่ "การดาวน์โหลดที่เบราว์เซอร์น้อยที่สุดสามารถทำได้คือ 1K ไบต์"

นี่เป็นเพราะขนาดแพ็คเก็ตขั้นต่ำทั่วทั้งเครือข่ายหรือไม่ ถ้าไม่ใช่เหตุผลสำหรับสิ่งนี้คืออะไร (ถ้าเป็นจริง)


2
ทำตามข้อกำหนดมาตรฐานหากคุณต้องการหลีกเลี่ยงความสับสน "Packet" เป็นคำศัพท์ระดับ IP คุณพูดว่า "IP packet" หรือ "TCP packet" ไม่ใช่ "Ethernet packet"
vtest

ประโยคที่คุณพูด ("การดาวน์โหลดที่เล็กที่สุดที่เบราว์เซอร์สามารถทำได้คือ 1K ไบต์") นั้นไม่เป็นความจริงแน่นอน - ไม่มีขนาดการดาวน์โหลดขั้นต่ำ และในขณะที่เป็นขั้นต่ำ TCP / IP ขนาดแพ็คเก็ต (อธิบายโดย @ DMA57361) มันไม่แน่นอน 1KB
Piskvor

คำตอบ:


20

แพ็คเก็ตเป็นคำที่ไม่ชัดเจนที่นี่เพราะบางครั้งใช้ในทางที่ผิดเพื่ออ้างถึงองค์ประกอบต่าง ๆ สำหรับการส่งสัญญาณของคุณ มาดูกันว่าข้อมูลของคุณถูกห่อไว้ที่ไหนและคุณจะเห็นว่าฉันหมายถึงอะไรและหวังว่าจะได้คำตอบที่คุณต้องการ:


ให้ถือว่าคุณกำลังส่ง 1 ไบต์ของข้อมูล1ผ่านทางอินเทอร์เน็ตในรูปแบบ TCP / IP

ข้อมูลเริ่มต้นในระดับที่ใช้และต้องมีการห่อขึ้นในหัวในระดับต่ำเพื่อที่จะสามารถผ่านรอบ

ก่อนอื่นข้อมูลจะถูกห่อในส่วนของ TCPซึ่งเพิ่มส่วนหัวเป็น 20 ไบต์ (ขนาดต่ำสุดในขณะนี้คือ 21 ไบต์)
นี่ทำให้เราอยู่ในระดับการขนส่ง

สิ่งนี้จะถูกห่อในแพ็กเก็ต IPซึ่งจะเพิ่มส่วนหัวอีก 20 ไบต์ (ขนาดต่ำสุดในขณะนี้ 41 ไบต์)
ตอนนี้เราอยู่ในระดับอินเทอร์เน็ต
โปรดทราบว่าการห่อข้อมูลนี้จะเปลี่ยนทุกครั้งที่เราเตอร์ใหม่ส่งต่อข้อมูลของคุณไปยังซับเน็ตใหม่

สิ่งนี้อยู่ในกรอบลิงค์ของบางประเภท - ซึ่งส่วนหัวและส่วนท้ายขนาดแตกต่างกันไปขึ้นอยู่กับประเภทของกรอบที่ใช้ซึ่งขึ้นอยู่กับประเภทของลิงค์ที่ใช้
นี่คือระดับลิงก์
การห่อนี้จะเปลี่ยนทุกครั้งที่มีการส่งหน่วยระหว่างสองเอนทิตี

ในที่สุดคือการส่งสัญญาณทางกายภาพ (เช่นสัญญาณไฟฟ้าลงสู่สายเคเบิลคลื่นวิทยุ ฯลฯ )

ต่อไปนี้เป็นรูปภาพที่ให้ข้อมูลบางอย่างจากหน้าแบบจำลอง TCP / IP ของ Wikipedia ที่จะอธิบายสิ่งที่เกิดขึ้นด้วยสายตา:


การห่อหุ้มข้อมูลโดยใช้ UDP / IP


การเชื่อมต่อผ่านเลเยอร์ในรูปแบบ TCP / IP


1. ฉันเดาว่าคุณอาจส่งเป็น 0 ไบต์ได้ แต่ยังไม่ได้ตรวจสอบ ในความเป็นจริงฉันไม่ได้ตรวจสอบว่า 1 ไบต์ได้รับอนุญาตอย่างใดอย่างหนึ่ง แต่เฮ้


4

ไม่ถูกต้องไม่มีขนาดขั้นต่ำสำหรับการดาวน์โหลด คุณสามารถตรวจสอบสิ่งนี้ได้โดยการสร้างไฟล์เล็ก ๆ บนเว็บเซิร์ฟเวอร์ของคุณและใช้ wireshark เพื่อรับชมเครือข่ายเมื่อคุณดาวน์โหลดไฟล์นั้น

ขนาดต่ำสุดของแพ็คเก็ตอีเธอร์เน็ตมาตรฐานคือ 64 ไบต์


3

ในหน้าของบล็อกโพสต์ที่คุณอ้างจากไม่ถูกต้อง ไม่มี "ขนาดการดาวน์โหลดขั้นต่ำ" สำหรับ HTTP (และทฤษฎีของคุณเกี่ยวกับขนาดแพ็กเก็ตขั้นต่ำก็ไม่ถูกต้องเช่นกัน)

อย่างไรก็ตามมีความจริงสำหรับสิ่งนี้ และนั่นคือถ้าขนาดของไฟล์ที่คุณดาวน์โหลดมีขนาดเล็กพอข้อความตอบกลับ HTTP (ประกอบด้วยไฟล์และส่วนหัวตอบกลับ HTTP) จะพอดีกับเครือข่ายแพ็คเก็ตเดียว หากสิ่งนั้นเกิดขึ้นเบราว์เซอร์มีแนวโน้มที่จะรับไฟล์เร็วกว่าถ้าใช้แพ็คเก็ตสองแพคขึ้นไปเพื่อส่งการตอบกลับ

(ด้วยหนึ่งแพ็คเก็ตในการตอบสนองมีโอกาสน้อยที่แพ็คเก็ตจะลดลงและต้องมีการส่งใหม่และโอกาสที่หน้าต่างควบคุมการไหลของ TCP / IP จะไม่เพิ่มความล่าช้าในการเดินทางไปกลับเพื่อรับทราบแพ็คเก็ต )

ขนาดสูงสุดโดยทั่วไปของแพ็กเก็ตที่ส่ง / รับ (MTU) คือ 1500 ไบต์สำหรับอีเธอร์เน็ต เมื่อคุณคำนึงถึง IP และ TCP ค่าใช้จ่ายและขนาดของส่วนหัวการตอบสนอง HTTP ทั่วไปที่อาจทำให้คุณเหลือ ~ 1K สำหรับข้อมูลไฟล์ในแพ็คเก็ตแรกของการตอบสนอง ดังนั้นเม็ดความจริงในความคิดเห็นของบล็อกเกอร์


นั่นจะถูกต้องหากคุณดาวน์โหลดภาพนั้นเพียงภาพเดียวและไม่ใช่พูดเว็บเพจและทรัพยากรที่เกี่ยวข้อง (รูปภาพ, JS, CSS) - ในกรณีนี้คุณกำลังใช้ Keepalives และ pipelining สำหรับหลาย ๆ แหล่งดังนั้น TCP ขนาดค่าใช้จ่ายและขนาดแพ็คเก็ตมีความเกี่ยวข้องน้อยกว่ามาก คุณถูกต้องในกรณีนี้ (ดาวน์โหลดเพียงภาพเดียว) แต่เกิดขึ้นบ่อยแค่ไหน? ดูเหมือนว่าบล็อกเกอร์ติดอยู่ในปี 1999 ที่คำขอ HTTP แต่ละรายการต้องการการเชื่อมต่อ TCP ของตัวเอง
Piskvor

2

มันแย่กว่าที่คุณคิด

การโหลดหน้าเว็บช้าเนื่องจากเบราว์เซอร์กำลังมีปัญหาในการแสดงผล 1x1 พิกเซล 800000 ครั้ง (เช่นสำหรับหน้าต่างเบราว์เซอร์ที่ตั้งค่าเป็น 1000x800) หลายปีที่ผ่านมาบางทีในปี 1999 ฉันอ่านบทความหนึ่งที่กำหนด 16x16 ว่าเป็น 'เร็วที่สุด' x เล็กที่สุดสำหรับการเรียงต่อกัน แน่นอนว่าการแสดงผลอาจแตกต่างกันในขณะนี้

หากคุณอ่านโพสต์บล็อกการร้องเรียนนั้นเกี่ยวกับการโหลดหน้าเว็บช้า ไม่ต้องดาวน์โหลดช้า มันไม่มีอะไรเกี่ยวข้องกับแพ็กเก็ตแม้ว่ามันจะเป็นการสนทนาที่น่าสนใจ

ดังนั้นบางทีคำถามควรได้รับการตั้งคำถามอีกครั้ง


ในกรณีนี้ฉันอาจเข้าใจผิดโพสต์บล็อกทั้งหมด - ฉันคิดว่าหลักอยู่ในประโยคนี้: "การดาวน์โหลดที่เล็กที่สุดที่เบราว์เซอร์สามารถทำได้คือ 1K ไบต์ [ดังนั้นปรับขนาดภาพของคุณเป็น 1K]" ซึ่ง ฉันอ่านว่า "... เพราะคุณกำลังส่งสัญญาณ 1K ไบต์ไม่ว่ารูปภาพของคุณจะมีขนาดแค่ 50 ไบต์" (ซึ่งเป็นเรื่องไร้สาระที่เห็นได้ชัด) ปัญหาในที่นี้อาจใช้sizeทั้งขนาดพิกเซลและจำนวนไบต์" " และทำให้เกิดความสับสน คำอธิบายของคุณสมเหตุสมผล แต่ไม่เกี่ยวข้องกับจำนวนรูปภาพนับไบต์ (ตรงกันข้ามกับที่บล็อกบอกไว้)
Piskvor

หลังจากอ่านโพสต์บล็อกอีกครั้งดูเหมือนว่าเขาเปลี่ยนเส้นทางไปเนื่องจากย่อหน้าที่สามไม่ต่อเนื่องกัน
mockman

หลังจากอ่านความคิดเห็นของคุณอีกครั้ง ... จุดประสงค์ของเขาคือแก้ไขปัญหาที่เกิดขึ้นในย่อหน้าเปิด อย่างไรก็ตามเขาคิดว่าปัญหานี้เกิดขึ้นกับขนาดแพ็คเก็ตโดยไม่ตั้งใจและใช้เวลาที่เหลือในโพสต์นั้น คำตอบของฉันอธิบายสาเหตุของการโหลดหน้าเว็บช้า ตามที่คนอื่น ๆ ได้ชี้ให้เห็นลักษณะของแพ็กเก็ตไม่ใช่สาเหตุ
mockman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.