เร่งความเร็วอินเทอร์เน็ต
ด้วยการปรับแต่งพอร์ทสื่อสาร

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

พิมพ์ครั้งแรกในนิตยสาร QuickPC ฉบับที่ 115

 

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

 

แม้จะใช้โมเด็ม 56K ก็ขอเรียนให้ทราบว่าเวลาต่ออินเทอร์เน็ตความเร็วจะไม่ได้สูงสุดถึง 56K เนื่องจากผู้ผลิตอุปกรณ์อิเลคทรอนิคส์จะต้องทำตามกฎของสามาคม FCC ที่กำหนดไม่ให้โมเด็มทำงานที่ความเร็วสูงกว่า 53 กิโลบิตต่อวินาที เมื่อใช้งานผ่านคู่สายโทรศัพท์ส่วนที่ยังเป็นอนาล็อก ความเร็วก็จะตกลงไปอีก ทำให้ได้ความเร็วสูงสุดประมาณ 45 ถึง 50 กิโลบิตต่อวินาทีเป็นอย่างมาก

ที่พูดถึงนี่คือการสื่อสารระหว่างโมเด็มผ่านคู่สายโทรศัพท์ไปยังผู้ให้บริการอินเทอร์เน็ต ซึ่งเราไม่สามารถไปปรับแต่งแก้ไขอะไรได้อยู่แล้ว แต่ยังมีอีกส่วนหนึ่ง คือการสื่อสารระหว่างโมเด็มกับคอมพิวเตอร์ของเรา ที่เราสามารถเข้าไปปรับแต่งแก้ไข เพื่อให้มีประสิทธิภาพสูงสุดได้

การปรับแต่งเพื่อให้อินเทอร์เน็ตในเครื่องของคุณมีการตอบสนองที่ดีที่สุด คุณจะต้องปรับแต่งค่าของพอร์ทสื่อสารในหัวข้อต่างๆ สามหัวข้อดังนี้

1. ปรับแต่งพอร์ทสื่อสาร (Com port)

2. ปรับแต่งวิธีไหลของข้อมูล (Flow control)

3. ปรับแต่งที่พักข้อมูล (Buffer)

ความรู้เรื่องพอร์ทสื่อสาร

พอร์ทสื่อสารก็เหมือนกับประตูที่เปิดออกสู่โลกภายนอก วินโดวส์ ติดต่อสื่อสารกับโมเด็มผ่านทางพอร์ทสื่อสาร ดังนั้นไม่ว่าโมเด็มของคุณจะรับส่งข้อมูลกับผู้ให้บริการอินเทอร์เน็ตได้รวดเร็วแค่ไหน สุดท้ายมันก็ต้องรับส่งข้อมูลกับคอมพิวเตอร์ของคุณผ่านทางพอร์ทสื่อสารอีกทอดหนึ่ง ในกรณีที่คุณใช้โมเด็มแบบภายใน ภายในแผ่นวงจรจะมีโมเด็มพร้อมพอร์ทสื่อสารมาให้เสร็จ คุณก็จะมีพอร์ทสื่อสารเพิ่มขึ้นมาอีกหนึ่งพอร์ท (อาจจะเป็นพอร์ท Com 3 หรือ Com 4 แล้วแต่จะกำหนด) ปรกติผู้ผลิตจะปรับแต่งโมเด็มและพอร์ทสื่อสารไว้ ให้มีประสิทธิภาพสูงสุดอยู่แล้ว โมเด็มภายในจะมีภาษีดีกว่าโมเด็มภายนอกก็ตรงนี้

 

ถ้าคุณใช้โมเด็มแบบภายนอก คุณจะต้องเชื่อมต่อโมเด็มกับพอร์ทสื่อสาร โดยผ่านช่องเสียบที่อยู่ด้านหลังคอมพิวเตอร์ ช่องนี้บางคนก็เรียกว่าช่องสื่อสารอนุกรม (ถ้าเป็นภาษาพูดส่วนมากจะเรียกทับศัพท์ไปเลยว่า "ซีเรียลพอร์ท") เมื่อคุณติดตั้งโปรแกรมไมโครซอฟท์ วินโดวส์ มันจะตั้งค่าพอร์ทสื่อสารให้เราเองโดยอัตโนมัติ แต่ค่าที่ตั้งนี้เป็นค่ากลางๆ ให้ใช้ได้กับโมเด็มทั่วๆ ไป ไม่ใช่ค่าที่มีประสิทธิภาพสูงสุด

วิธีปรับแต่งพอร์ทสื่อสาร

การปรับแต่งพอร์ทสื่อสารไม่จำเป็นต้องใช้ซอฟท์แวร์พิเศษพิสดารอะไร ใครๆ ก็สามารถปรับแต่งพอร์ทสื่อสารเองได้ พร้อมหรือยังครับ ถ้าพร้อมก็ทำตามขั้นตอนต่อไปนี้

(กดตรงนี้เพื่อดูภาพแสดงขั้นตอนวิธีปรับพอร์ทสื่อสารใน Windows XP)

1. คลิกขวาที่ไอคอน My Computer
2. เลือกหัวข้อ Properties
3. ในกรอบ System Properties เลือกแท็ป Device Manager
4. คุณจะเห็นรายการไอคอนของฮาร์ดแวร์ต่างๆ ให้มองหาไอคอน Ports (COM & LPT)
5. กดที่เครื่องหมาย + หน้าไอคอน Ports (COM & LPT)
6. ดับเบิ้ลคลิกที่รายการ Communication Port (COM)
7. เมื่อเห็นกรอบข้อความ Communication Port (COM) Properties ให้กดแท็ป Port Settings
8. ที่หัวข้อ Bits per second คุณจะเห็นว่าวินโดวส์ตั้งค่าตัวเลขความเร็วไว้เป็น 9600 ซึ่งต่ำเกินไป ให้เปลี่ยนเป็น 115200 แทน ไม่ต้องกำหนดให้สูงกว่านี้ เพราะจะไม่ทำให้เกิดมรรคผลอะไร เนื่องจากชิพควบคุมพอร์ทสื่อสารทำงานเร็วสุดแค่นี้เอง

ส่วนค่าของ Data bits, Parity, Stop bits ให้ปล่อยไว้อย่างนั้น เพราะเป็นค่ามาตรฐานที่เหมาะสำหรับการติดต่อกับโมเด็มอยู่แล้ว ส่วนหัวข้อ Flow control เป็นเรื่องสำคัญที่ผมจะอธิบายโดยละเอียดดังต่อไปนี้

 

เรื่องของ Flow control

หัวข้อ Flow control ใช้กำหนดวิธีไหลของข้อมูล มีตัวเลือกให้เลือกได้สามแบบ คือ Xon/Xoff, Hardware และ None เมื่อโมเด็มต้องการส่งข้อมูลมายังยังพอร์ทสื่อสาร โมเด็มจะใช้วิธีส่งข้อมูลมาเรื่อยๆ จนกว่าที่พักข้อมูลของพอร์ทสื่อสารจะเต็ม และพอร์ทส่งสัญญาณบอกโมเด็มว่าเต็มแล้ว ให้หยุดส่งก่อน จากนั้นพอร์ทสื่อสารจะนำข้อมูลที่รับมา ทยอยส่งให้ซีพียูทำการประมวลผล

เมื่อพอร์ทจ่ายข้อมูลออกไปจนที่พักข้อมูลว่างแล้ว มันจะส่งสัญญาณให้โมเด็มรู้ว่ามันพร้อมจะรับข้อมูลเพิ่มได้อีกครั้ง การทำงานจะเป็นอย่างนี้เกิดซ้ำไปเรื่อยๆ จนกว่าจะ Disconnect

สาเหตุที่ต้องทำอย่างนี้ก็เพื่อแก้ปัญหาเรื่องข้อมูลล้นพอร์ทสื่อสาร ปัญหาจะเกิดเมื่อพอร์ทสื่อสารไม่สามารถนำข้อมูลที่ได้รับมาจากโมเด็มไปจ่ายให้ซีพียูได้ทัน ข้อมูลที่ค้างอยู่ในที่พักก็จะถูกทับด้วยข้อมูลที่ส่งมาใหม่ (Data overrun) ค่าที่วินโดวส์กำหนดไว้เป็นค่าโดยปริยายคือ Xon/Xoff ซึ่งเป็นการทำงานแบบควบคุมด้วยซอฟท์แวร์ เมื่อพอร์ทสื่อสารพร้อมรับข้อมูล มันจะส่งตัวอักษรพิเศษ Xon (Transmit on) หมายถึงให้ส่งโมเด็มข้อมูลมาได้ เมื่อพอร์ทสื่อสารเต็มแล้ว มันจะส่งตัวอักษร Xoff (Transmit off) เพื่อบอกโมเด็มให้หยุด

ตัวเลือก Hardware ในหัวข้อ Flow control หมายถึงให้ทำงานแบบควบคุมด้วยฮาร์ดแวร์ กลไกการทำงานก็เหมือนกับซอฟท์แวร์ แต่แน่ละครับ การทำงานด้วยฮาร์ดแวร์ย่อมจะรวดเร็วกว่าการทำงานด้วยซอฟท์แวร์ เพราะเป็นการทำงานเกิดจากสัญญาณไฟฟ้าล้วนๆ ซีพียูจึงไม่ต้องเสียเวลาทำคำสั่งอะไรเลย ถ้าคุณต้องการจะเลือกให้ทำงานแบบ Hardware คุณจะต้องตรวจสอบจากเอกสารคู่มือของโมเด็มเสียก่อนว่ามันรองรับการทำงานแบบนี้หรือไม่ ข้อสำคัญอีกอย่างหนึ่งคือ สายสัญญาณที่ต่อระหว่างคอมพิวเตอร์กับโมเด็มจะต้องเป็นสายที่มีคุณภาพดี

ภายในกรอบ Communication Port (COM) Properties แท็ป Port Settings ด้านล่างสุดจะมีปุ่ม Advanced… ซึ่งคุณสามารถใช้ควบคุมตัวพักข้อมูลแบบ FIFO ได้ ดังรายละเอียดในหัวข้อถัดไป

 

รู้จักกับตัวพักข้อมูลแบบ FIFO

คำว่า FIFO ย่อมาจาก First In First Out แปลว่าเข้าก่อนออกก่อน เหมือนการเข้าคิวที่ธนาคาร ใครมาก่อนก็ได้รับบริการก่อนและได้กลับบ้านก่อน การตั้งค่าพอร์ทสื่อสารแบบ FIFO นี้ทำให้เราสามารถเรียกใช้คุณสมบัติพิเศษของชิพ UART ที่เป็นหัวใจของพอร์ทสื่อสารได้เต็มที่ ตัวพักข้อมูลแบบ FIFO ถูกออกแบบมาเพื่อเพิ่มประสิทธิภาพของระบบ Flow control

หน้าที่หลักของ FIFO คือช่วยให้ชิพ UART (Universal Synchronize Receiver Transmitter เป็นไอซีตัวหนึ่งที่ทำหน้าที่เกี่ยวกับการสื่อสารข้อมูลสำหรับพอร์ทอนุกรม) สามารถรับข้อมูลและนำข้อมูลไปในในตัวพักข้อมูล (Buffer) ต่อไปได้แม้ในขณะนั้นซีพียูจะกำลังยุ่งอยู่

เนื่องจากชิพ UART ทำหน้าที่ทั้งรับและส่งข้อมูล ตัวพักข้อมูลจึงมีสองชุด คือตัวพักข้อมูลภาครับ (Receive Buffer) ทำหน้าที่พักข้อมูลที่โมเด็มส่งมาให้ และตัวพักข้อมูลภาคส่ง (Transmit Buffer) ซึ่งทำหน้าที่พักข้อมูลที่จะส่งออกไปจากพอร์ทสื่อสาร

เมื่อคุณกดปุ่ม Advanced… (ใน Communication Port (COM) Properties แท็ป Port Settings) คุณจะเห็นกรอบข้อความ Advanced Port Settings บรรทัดแรกสุดจะเป็นตัวเลือกว่าจะให้ FIFO ทำงานหรือไม่ทำงาน ปรกติจะถูกตั้งไว้ให้ทำงาน ส่วนข้างล่างจะมีแถบเลือนปรับค่าสองค่าคือ Receive Buffer และ Transmit Buffer แต่ถ้าคุณพบว่าเกิดความผิดปรกติในการสื่อสารข้อมูล คุณอาจแก้ไขปัญหาได้โดยการปรับค่าสองค่านี้ ซึ่งผมจะอธิบายโดยละเอียดในหัวข้อต่อไป