การควบคุมโดยใช้ XON/XOFF
            ถึงแม้ว่าเราจะมีบัฟเฟอร์สำหรับการสื่อสารแล้วก็ตาม ในบางครั้งการถ่ายโอนข้อมูลด้วยความเร็วสูงและด้วยขนาดของแฟ้มที่จะทำการถ่ายโอนมีขนาดใหญ่กว่าบัฟเฟอร์สื่อสาร โอกาสที่ข้อมูลสูญหายไปมีอยู่มาก ลองมาคำนวณดูง่าย ๆ สมมติว่าเราใช้ความเร็วในการถ่ายโอนข้อมูล 9600 บิตต่อวินาที สต๊อปบิตเป็น 1 บิต ข้อมูล 7 บิต และพาริตี้เป็นคู่ ใน 1 ตัวอักษรจะต้องใช้ 11 บิต เพราะฉะนั้นฝ่ายรับจะต้องอ่านข้อมูลจากพอร์ตอนุกรมทุก 110/9600 ได้ผลประมาณ .001 วินาที หรือ 1 มิลลิวินาที ถ้าเปรียบเป็นพัลส์ได้ประมาณ 5000 พัลส์นาฬิกา ( ความเร็วนาฬิกาของ IBM PC = 4.77 MHz หรือประมาณ .2 ไมโครวินาทีต่อหนึ่งพัลส์ 1000/.2 = 5000 ) ในเมื่อบัฟเฟอร์ไม่เพียงพอ เราก็จำเป็นจะต้องควบคุมการรับส่ง โดยการบอกให้ฝ่ายส่งหยุดส่งชั่วคราว ( XOFF ) จนกว่าฝ่ายรับจะจัดการเอาข้อมูลออกจากบัฟเฟอร์สื่อสารหมดเสียก่อน จึงบอกให้ฝ่ายส่งจัดการส่งต่อไป ( XON ) ในรหัส ASCII XON มีค่าเท่ากับ 17 XOFF มีค่าเท่ากับ 19 เป็นหน้าที่ของนักเขียนโปรแกรมที่จะต้องจัดการส่ง XOFF ออกไปให้ฝ่ายส่งได้รู้ก่อนที่บัฟเฟอร์สื่อสารจะเต็มเสียก่อน


รูปที่ 6


 
 
  คอมพิวเตอร์เมนเฟรมส่วนมากจะมีระบบ XON/XOFF ให้สำหรับการเชื่อมต่อทางด้านความเร็ว ( Speed Matching ) แต่โปรแกรมสื่อสารที่มีขายสำหรับ IBM PC ไม่มี XON/XOFF ทุกตัว โดยมากโปรแกรมที่เขียนโดยภาษาแอสเซมบลี้จะมี XON/XOFF ให้ แต่โปรแกรมที่เขียนโดยภาษาเบสิกจะมีเพียงบางโปรแกรมเท่านั้น โปรแกรมที่เขียนโดยภาษาแอสเซมบลี้มีความเร็วพอที่จะคอยตรวจสอบดู XOFF ที่ส่งมาจากฝ่ายรับ แต่ถ้าเป็นภาษาเบสิก ความเร็วอาจจะไม่เพียงพอต่อการตรวจสอบ XOFF ที่ฝ่ายส่ง

การใช้โปรโตคอล

 อีกเทคนิคหนี่งในการควบคุมการรังส่งก็คือ การส่งโปรโตคอล ( Protocol Transfer ) เทคนิคนี้จำเป็นจะต้องมีเหมือนกันทั้งฝ่ายรับและฝ่ายส่ง โดยการใช้อักขระควบคุมในตารางของ ASCII สำหรับควบคุมการส่งข้อมูลออกมาเป็นกลุ่มที่มีขนาดคงที่ การใช้โปรโตคอลอาจจะใช้อักขระต่อไปนี้ ในการควบคุมการส่งข้อมูลเป็นกลุ่ม ๆ

ETB (End of Transmission bolck) ETB มีค่าเท่ากับ 23 ในตาราง ASCII เป็นการบอกฝ่ายรับว่าขณะนี้สิ้นสุดการส่งข้อมูลกลุ่มหนึ่งแล้ว

ETX (End ot Text) ETX มีค่าเท่ากับ 03 ในตาราง ASCII เป็นการบอกฝ่ายรับว่าขณะนี้สิ้นสุดการส่งข้อมูลแล้ว

ENQ (Enquiry) ENQ มีค่าเท่ากับ 05 ในตาราง ASCII เป็นอักขระที่ส่งมาจากฝ่ายรับ ขอให้ฝ่ายส่งส่งข้อมูลมา

NAK (Negative Acknowledge) มีค่าเท่ากับ 021 ในตาราง ASCII เป็นการบอกฝ่ายส่งว่าข้อมูลที่ได้รับนั้นผิดพลาด

ACK (Acknowledge)  มีค่าเท่ากับ 06 ในตาราง ASCII เป็นการบอกฝ่ายส่งว่าข้อมูลที่ได้รับนั้นถูกต้องแล้ว
 
 

            โปรโตคอลที่ใช้ใน IBM PC ส่วนมากจะเป็นโปรโตคอลที่มีชื่อว่า XMODEM ฝ่ายส่งจะยังไม่ส่งข้อมูลจนกว่าจะได้รับ NAK จากฝ่ายรับ ฝ่ายส่งจะส่งข้อมูลออกไปโดยมีรูปแบบเริ่มด้วย SOH ตามด้วยอักขระ 2 ตัว สำหรับบอกกลุ่มของข้อมูลที่ส่งและตามด้วยส่วนเติมเต็ม 1 ( 1 Complement ) ของกลุ่มต่อไปที่จะส่ง ต่อจากนั้นก็จะเป็นข้อมูล 128 ไบต์ ตามหลังด้วยการตรวจสอบข้อผิดพลาดโดยวิธีตรวจสอบผลบวก ( Checksum ) การ Checksum คำนวณมาจากการบวกค่า ASCII ของข้อมูลที่ส่งออกไปทั้งหมด 128 ไบต์ แล้วหารด้วย 255 เศษที่เหลือก็คือค่า Checksum ข้างฝ่ายรับเมื่อแยกเอา SOH และหมายเลขบล๊อก ( Block Number ) ทั้งสองออกไปแล้วก็จะเอาข้อมูลทั้ง 128 ไบต์มารวมกันเพื่อหาค่า Checksum เอา Checksum ที่หาได้เปรียบเทียบกับค่าที่ได้รับ หากตรงกันก็ถือว่าข้อมูลที่ได้รับถูกต้องจึงส่งสัญาณ ACK ไปให้ฝ่ายส่งได้รู้ว่าขณะนี้ได้รับข้อมูลไว้ถูกต้องแล้วส่งกลุ่มของข้อมูลต่อไปมาได้ ถ้าหากค่า Checksum ไม่ถูกต้อง ฝ่ายรับก็จะส่ง NACK ให้ฝ่ายส่งเพื่อเป็นการบอกให้รู่ว่าข้อมูลที่ได้รับผิดพลาด ช่วยส่งกลุ่มของข้อมูลอันเก่ามาให้ทีเถอะ ฝ่ายส่งก็จะส่งข้อมูลกลุ่มเก่ามาให้ใหม่ การส่งใหม่จะดำเนินไป 9 ครั้ง หากยังคงได้รับแต่สัญญาณ NAK ฝ่ายส่งจะหยุดทำงานแสดงว่าตัวกลางการสื่อสารแย่มาก


รูปที่ 7


 
 
 

            การที่ XMODEM ใช้เลขบอกกลุ่ม ( Block Number ) 2 ตัว ( ตัวหนึ่งบอกกลุ่มที่ส่งขณะนี้ อีกตัวหนึ่งเป็นส่วนเติมเต็ม 1 ของกลุ่มต่อไป ) เพื่อความแน่นอนว่ากลุ่มเดียวกันจะไม่ถูกส่งออกไปสองครั้ง ถ้าหากอักขระควบคุมการส่งเกิดสูญหายไประหว่างการส่ง ฝ่ายรับจะตรวจสอบดูว่ากลุ่มของข้อมูลที่ส่งมาเป็นกลุ่มที่ฝ่ายรับต้องการหรือไม่ ถ้าหากกลุ่มเก่าเกิดส่งมาใหม่อีกด้วยความผิดพลาด จาก ACK เป็น NACK ของฝ่ายส่ง ฝ่ายรับก็จะจับข้อมูลที่รับมาโยนทิ้งไป เมื่อทุกอย่างดำเนินไปอย่างเรียบร้อยจนสิ้นสุดแฟ้มที่จะส่ง ฝ่ายส่งก็จะส่ง ETX เป็นการบอกฝ่ายรับว่าหมดข้อความที่จะส่งแล้วละ

XMODEM เหมาะสำหรับ IBM PC เหนือโปรโตคอลชนิดอื่น 3 ข้อ คือ

1. ใช้อักขระควบคุมที่มีอยู่แล้วใน ASCII
2. สามารถจะใช้ภาษาในระดับสูงควบคุมได้ เช่น ภาษาเบสิก ภาษาปาสคาล
3. ต้องการบัฟเฟอร์สื่อสารแค่ 256 ไบต์
4. ระบบบริการข่าวสารด้วยคอมพิวเตอร์ โดยทั่วไปใช้โปรโตคอล XMODEM

ข้อดีของระบบการควบคุมการรับส่งของข้อมูลแบบอนุกรมโดยการใช้ระบบการใช้โปรโตคอลก็คือ

1. โปรโตคอลบางชนิดสามารถเลือกขนาดของกลุ่มข้อมูลได้
2. สามารถส่งข้อมูลที่ไม่ใช่ ASCII ได้ โดยไม่ต้องกลัวว่ารหัสนั้นจะไปทับกับรหัสควบคุมของ ASCII
3. การตรวจสอบโดยวิธี Checksum มีความสามารถตรวจสอบความผิดพลาดได้ดีกว่า ใช้บิตพาริตี้ในอะซิงโครนัส ในขณะที่บิตพาริตี้สามารถให้ประสิทธิผลได้ 95 เปอร์เซ็นต์ แต่ Checksum สามารถให้ประสิทธิผลถึง 99.5 เปอร์เซ็นต์ หากพบการผิดพลาดด้วยบิตพาริตี้ ไม่ทำให้เกิดการส่งใหม่เกิดขึ้นแต่ข้อผิดพลาดจาก Checksum ทำให้เกิดการส่งข้อมูลมาใหม่



หน้า 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| home | menu | เทคโนโลยี |

1 : 08 : 2541