|
ตอบกลับ Sutep
จิงดิป๋า....เจ๋งอ่ะเด๋วต้องคุยนอกรอบห ...
ต้นฉบับโพสโดย winny เมื่อ 11-7-2012 22:14
ป๋าก็ทำมะเปงหรอก ไปถามลูกชายป๋ามามานก็อธิบายให้ฟังเป็นอย่างๆแต่ป๋าก็ไม่รู้เรื่อง มานเลยบอกว่าให้อ่านเอาตามเนี้ย... ป๋าเลยคัดลอกมาให้วินนี้ลองทามดูเผื่อจะได้อะไรๆมาบอกกัลมั่ง...
Bandwidth: คืออะไร
เป็นคำที่ใช้วัดความเร็วในการส่งข้อมูลของอินเทอร์เน็ต ซึ่งโดยมากเรามักวัดความเร็วของการส่งข้อมูลเป็น bps (bit per second) , Mbp (bps*1000000) เช่น Bandwidth ของการใช้สายโทรศัพท์ในประเทศไทย เท่ากับ 14.4 Kbps,Bandwidth ของสายส่งข้อมูลของ KSC ที่ใช้ในการเชื่อมต่อกับอเมริกาเท่ากับ 2 Mbps เป็นต้น
แต่ก่อนที่เราจะเข้าสู่บทความมารู้จักก่อนว่าอะไรคือ Bandwidth และ Latency ความหมาย Bandwidth คือ ความกว้างของช่องทางในการรับ-ส่งข้อมูล ส่วน Latency คือ เวลาที่ใช้ไปในการเข้าถึงข้อมูลของหน่วยความจำ เมื่อเรารู้ความหมายกันแล้วคราวนี้เรามารู้จักถึงหลักการต่างๆ ของ Bandwidth และ Latency
ในการพิจารณาการรับ-ส่งข้อมูลบนระบบบัสหลายคนมักจะนึกถึง Bus Bandwidth (Bandwidth ก็คือความกว้างของเส้นทางในการส่งข้อมูล ที่เราสามารถเปรียบเทียบได้กับเลนถนน ยิ่งมีเลนกว้างเท่าไรรถยนต์ซึ่งเปรียบได้กับข้อมูลก็สามารถวิ่งได้สะดวกมากขึ้นเท่านั้น) ที่ใช้ในการรับ-ส่งข้อมูล ซึ่งพิจารณาจากข้อมูลที่รับ-ส่งบนระบบบัส Bus Bandwidth ด้วยปริมาณจำนวนข้อมูลของเลข single number (0 หรือ 1) ที่ระบบบัสสามารถรองรับได้ แต่ปริมาณข้อมูลของเลข single number อาจแปรผันได้ตามเวลา เราจึงพิจารณาการรับ-ส่งข้อมูลผ่านทาง Bus Bandwidth ด้วย Peak bandwidth Bus หรือ ความกว้างสูงสุดในการรับ-ส่งข้อมูลของบัส ซึ่งวัดด้วยจำนวนข้อมูลสูงสุดที่ รับ-ส่งกันระหว่างซีพียูและแรมภายในหนึ่งคาบเวล
จากความเร็วสัญญาณนาฬิการะหว่างหน่วยความจำและซีพียูจากรูปที่ 1 ถ้าเรามาคำนวณหา Bandwidth ของบัสที่มีความเร็วสัญญาณนาฬิการะหว่างหน่วยความจำและซีพียู ที่สัญญาณนาฬิกา 100 เมกะเฮิรตซ์ โดยที่มีการรับ-ส่งข้อมูลจำนวน 8 ไบต์ในแต่ละหนึ่งรอบของสัญญาณนาฬิกา จะคำนวณออกมาได้ดังนี้
8 bytes * 100MHz = 800 MB/s
และถ้าหากเราคำนวณหา Bandwidth ของบัสที่มีความเร็วสัญญาณนาฬิการะหว่างหน่วยความจำและซีพียูที่ 133 เมกะเฮิรตซ์ โดยที่มีการรับ-ส่งข้อมูลจำนวน 8 ไบต์ในแต่ละหนึ่งรอบสัญญาณนาฬิกา จะคำนวณออกมาได้ดังนี้
8 bytes * 133MHz = 1064 MB/s
ซึ่งตัวเลข Bandwidth ที่ได้นี้เป็นพียงตัวเลขทางทฤษฎีที่บอกถึงปริมาณของข้อมูลที่เข้าสู่ซีพียูในแต่ละวินาที ในความเป็นจริง Bandwidth ของระบบจริงอาจมีค่าน้อยกว่าที่คำนวณเพียงเล็กน้อย
Bandwidth ในทางปฏิบัติ
ระบบบัสที่ผ่านมาจะมีลักษณะการส่งผ่านข้อมูลแบบทางเดียว จึงทำให้ไม่สามารถรับและส่งข้อมูลในเวลาเดียวกัน จึงต้องผลัดกันส่งและรับข้อมูลทำให้ความเร็วในการส่งผ่านข้อมูลช้า เปรียบเทียบระบบบัสได้กับการสื่อสารผ่านทางวิทยุรับส่งโดยที่อีกฝ่ายหนึ่งเป็นฝ่ายพูดอีกฝ่ายจะต้องเป็นผู้รับฟัง เนื่องจากต้องผลัดกันรับส่งข้อมูลดังนั้นเมื่อซีพียูต้องการร้องข้อมูลจากหน่วยความจำหลัก (RAM) ซีพียูจะต้องร้องขอผ่านทาง Bus Control จากนั้น Bus Control จะร้องขอข้อมูลมาที่หน่วยความจำหลัก (RAM) เมื่อค้นหาข้อมูลที่ซีพียูต้องการได้แล้ว หน่วยความจำหลักจะส่งต่อข้อมูลให้ Bus Control กลับไปให้ซีพียู โดยทั้งหมดนี้กระทำบนบัสเดียวกัน ถ้าพิจารณาเวลาที่สูญเสียไปจากการร้องขอข้อมูลจาก Bus Control และที่ต้องเสียเวลารอหน่วยความจำหลักค้นหาข้อมูลที่ซีพียูต้องการแล้วจึงส่งข้อมูลที่ต้องการกลับไปสู่ Bus Control และส่งกลับไปสู่ซีพียูได้ ซึ่งทั้งหมดนี้จะเป็น Delay Time ที่มีผลต่อค่า Read Latency โดยที่ Read Latency หมายถึง เวลาที่ใช้ระหว่างการร้องขอข้อมูลจากซีพียูผ่านทาง Frontside Bus (FSB)
สรุป
ทฤษฎีของ Bandwidth นั้นได้ว่า ถ้าระบบบัสมี Bandwidth ที่กว้างก็ยิ่งจะดีต่อการรับ-ส่งข้อมูล
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ping คือโปรแกรมที่เป็นเครื่องมือเกี่ยวกับเครือข่ายคอมพิวเตอร์ ใช้ทดสอบว่าโฮสต์ปลายทางได้เชื่อมต่อกับระบบไอพีอยู่หรือไม่ โปรแกรม Ping ทำงานโดยการส่งข้อมูล ICMP ประเภท "echo request" ไปยังโฮสต์เป้าหมาย และรอคอยการตอบรับเป็นข้อมูล "echo response" กลับมา (บางครั้งก็เรียกว่า "Ping Pong" คล้ายกับกีฬาเทเบิลเทนนิส) โปรแกรม Ping สามารถประมาณเวลาเดินทางโดยเฉลี่ยของข้อมูลไปกลับ โดยคำนวณจากช่วงเวลาและอัตราเร็วในการตอบรับ เป็นหน่วยมิลลิวินาที และอัตราการสูญเสียข้อมูลระหว่างโฮสต์เป็นเปอร์เซ็นต์
มันคือค่าการตอบสนองของ node(เครื่อง) ปลายทางที่ระบุ
เปนการส่ง package ไปเพื่อให้ตอบกลับครับ
อย่างตัวอย่างนี้คือ byte=32 นี่
ก็จะเปนการส่งค่าตอบสนองด้วยข้อมูลขนาด 32bytes ไปยัง node ปลายทางครับ
ค่า time ก็เป็นช่วงเวลาที่มันตอบสนอง
อย่างในตัวอย่างนี้ก็คือ 203ms = 0.23 วินาทีครับ
การ ping มี 2 แบบครับ
แบบแรก เปนแบบที่ windows ใช้ มันคือระบบ ICMP ครับ
รายละเอียดลึกๆไม่ขอเล่าละกัน เพราะมันซับซ้อนหน่อย อยากรุ้จริงๆ PM มาได้นะ
และอีกแบบคือ แบบ UDP ที่ใช้ อยู่ใน UNIX ต่างๆครับ เช่น Linux , Solaris , etc.....
2 แบบนี้ต่างกันอย่างไร???
ต่างกันตรงที่แบบ ICMP มีช่องโหว่มากกว่าครับ
จึงทำให้การ ping หรือ traceroute เข้าไม่ถึงในบางจุดครับ
ซึ่งหลายๆที่ก็ได้มีการบล๊อค ping ด้วยวิธีนี้ไว้ครับ เพราะว่าถ้าไม่บล๊อคอาจโดนยิงได้ เหอๆ
แบบว่าโดนยิงด้วยการ ping ค้างจนน๊อคไปเลย
ส่วนการ ping แบบ UDP ของ UNIX นั้น ไม่มีบล๊อคครับ ทะลุทะลวงไปได้ทุกที่เลย
ตัวอย่างครับ
กรณีนี้ใช้ ICMP ครับ
ใช้ระบบปฏิบติการ Linux Redhat 9 ครับ เก่านิดนึง ><~
[b4604088@login b4604088]$ ping 158.108.254.57
PING 158.108.254.57 (158.108.254.57) 56(84) bytes of data.
64 bytes from 158.108.254.57: icmp_seq=0 ttl=254 time=0.344 ms
64 bytes from 158.108.254.57: icmp_seq=1 ttl=254 time=0.282 ms
64 bytes from 158.108.254.57: icmp_seq=2 ttl=254 time=0.270 ms
64 bytes from 158.108.254.57: icmp_seq=3 ttl=254 time=0.261 ms
64 bytes from 158.108.254.57: icmp_seq=4 ttl=254 time=0.301 ms
64 bytes from 158.108.254.57: icmp_seq=5 ttl=254 time=0.297 ms
64 bytes from 158.108.254.57: icmp_seq=6 ttl=254 time=0.295 ms
64 bytes from 158.108.254.57: icmp_seq=7 ttl=254 time=0.290 ms
64 bytes from 158.108.254.57: icmp_seq=8 ttl=254 time=0.271 ms
64 bytes from 158.108.254.57: icmp_seq=9 ttl=254 time=0.302 ms
64 bytes from 158.108.254.57: icmp_seq=10 ttl=254 time=0.294 ms
--- 158.108.254.57 ping statistics ---
11 packets transmitted, 11 received, 0% packet loss, time 9998ms
rtt min/avg/max/mdev = 0.261/0.291/0.344/0.027 ms, pipe 2
[b4604088@login b4604088]$
ส่วนอันนี้เปนแบบ UDP ครับ
จะเอาไปทดสอบกับการ traceroute ครับ
การ traceroute ก็เหมือนเปนการ ping อย่างนึง แต่มันจะ ping ทุก node จากต้นทางไปยังปลายทางเลยครับทำให้เรารู้ว่าจากเครืองเราไปยังปลายทางผ่านที่ไหนบ้างครับ
ตัวอย่างการ traceroute ไปยัง host ในประเทศครับ
[b4604088@login b4604088]$ traceroute 221.128.79.65
traceroute to 221.128.79.65 (221.128.79.65), 30 hops max, 38 byte packets
1 158.108.4.197 (158.108.4.197) 0.323 ms 0.266 ms 0.302 ms
2 158.108.251.54 (158.108.251.54) 0.475 ms 0.480 ms 0.327 ms
3 158.108.251.57 (158.108.251.57) 4.127 ms 1.683 ms 5.301 ms
4 202.28.213.1 (202.28.213.1) 6.356 ms 6.765 ms 9.625 ms
5 202.28.212.29 (202.28.212.29) 10.760 ms 14.374 ms 8.831 ms
MPLS Label=16 CoS=3 TTL=1 S=0
6 202.28.212.2 (202.28.212.2) 7.521 ms 10.416 ms 9.677 ms
7 202.28.28.18 (202.28.28.18 ) 11.490 ms 5.668 ms 6.314 ms
8 202.47.255.4 (202.47.255.4) 8.685 ms 11.270 ms 9.897 ms
9 202.129.63.22 (202.129.63.22) 10.318 ms 7.618 ms 6.478 ms
10 sw-cat244.pacific.net.th (203.121.130.244) 9.503 ms 6.456 ms 7.442 ms
11 221.128.79.65 (221.128.79.65) 5.652 ms 6.796 ms 8.808 ms
[b4604088@login b4604088]$
ลองทำดูนะครับได้ผลยังไงบอกด้วยนะป๋าจะได้เอาไว้ยิงIP เจ้าเมืองเล่น5555555 |
|