วันจันทร์ที่ 12 ตุลาคม พ.ศ. 2552

ซอฟต์แวร์ด้านความปลอดภัยของIBM

ระบบMAGEN(Masking Gateway for Enterpeise)ของIBMถูกออกแบบมาเพื่อป้องกันการรั่วไหลของ
ข้อมูลและเพิ่มความปลอดภัยให้กับการแลกเปลี่ยนข้อมูล

นักวิจัยของIBMกล่าวว่าในวันนี้พวกเขาได้พัฒนาโปรแกรมที่รู้จำตัวอักษรเพื่อการปกปิดข้อมูลที่มีความ
สำคัญ

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

ระบบของIBMจะปฏิบัติกับหน้าจอข้อมูลเหมือนกับว่าเป็นรูปภาพๆหนึ่ง และใช้การรู้จำตัวอักษรเพื่อจะ
จำแนกส่วนที่เป็นความลับ จากนั้น จะทำการ'mask'ข้อมูลที่จำเป็นต้องปกปิด โดยปราศจากการทำสำเนา
การทำการเปลี่ยนแปลง หรือการประมวลผลข้อมูลนั้นๆ IBMกล่าว

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

MAGENไม่ได้เปลี่ยนข้อมูลหรือโปรแกรม เพราะว่ามันจะกลั่นกรองข้อมูลก่อนที่มันจะมาถึงหน้าจอ
คอมพิวเตอร์ของลูกค้า และไม่ได้บังคับให้บริษัทต้องทำสำเนาบันทึกส่วนที่ทำการmaskด้วย

IBMได้ยกตัวอย่างของMEGENกับบริษัทที่เกี่ยวกับการดูแลสุขภาพที่ได้จ้างบุคคลภายนอกมาบริการลูกค้า และเรียกร้องกระบวนการการทำงานไปยังมือที่สาม ถึงแม้ว่าข้อมูลส่วนตัวทางการแพทย์ของผู้ป่วยจะไม่สามารถแชร์กับผู้ทำสัญญาได้ ตัวแทนของฝ่ายบริการลูกค้าก็ต้องการสิทธิ์ในการเข้าไปดูบันทึกของผู้ป่วย ในเคสนี้ MAGENสามารถทำการซ่อนข้อมูลส่วนตัวได้ เพื่อที่ตัวแทนของบริษัทจะได้ไม่ทราบข้อมูลดังกล่าว

หนึ่งในนักวิจัยของIBMสามารถทำให้คอมพิวเตอร์ทำการคำนวณข้อมูลที่ต้องเข้ารหัสโดยที่ไม่ถอดรหัสมันเลยได้ IBMบอกว่าเทคโนโลยีนี้จะทำให้บริการทางคอมพิวเตอร์ เช่น Google ให้สามารถวิเคราะห์ข้อมูลของลูกค้าได้อย่างเต็มรูปแบบโดยไม่ต้องเสียค่าใช้จ่ายราคาแพง และปราศจากการละเมิดความเป็นส่วนตัว

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

และเมื่อปีที่แล้วนักวิจัยIBMได้คิดค้นอุปกรณ์ชนิดหนึ่งที่พวกเขาเรียกว่า"security on a stick" ลูกค้า
สามารถนำสิ่งนี้ต่อเข้ากับคอมพิวเตอร์เพื่อป้องกันการทำธุรกรรมออนไลน์และสามารถค้นหาโทรจันที่จะ
ขโมยข้อมูลทางการเงินได้อีกด้วย

Michael Baentschนักวิจัยอาวุโสแห่งศูนย์วิจัยIBMที่ซูริคกล่าวว่าเจ้าสิ่งนี้ยังเป็นเพียงต้นแบบและกำลัง
ทำการทดลองหลายๆอย่างอยู่ในยุโรป IBMได้ตั้งชื่ออุปกรณ์นี้อย่่างเป็นทางการว่า"Zone Trusted
Information Channel" เพราะว่าเจ้าUSBตัวเล็กๆนี้จะทำการติดตั้งช่องที่มีความปลอดภัยให้กับเว็บของ
ธนาคารที่รองรับอุปกรณ์นี้

Week 13 ... 22 September 2009

Application Layer and WWW and HTTP

Application Architecture

มี 3 แบบแบ่งตาม Application Program คือ
1. Host-based Architecture
การทำงานทุกอย่างจะอยู่ที่ Server และ Client ทำหน้าที่เป็นเพียง Terminal ทำหน้าที่ แสดงผล และรับข้อมูลจาก User เท่านั้น ภาระงานการประมวลผลยกให้ Host ทั้งหมด โดย เครื่อง Terminal จะเป็น Terminal จริง ๆ หรือ PC ที่จำลองตัวเองเป็น Terminal ก็ได้ 2 แบบนี้ต่างกันตรงที่ ถ้า Host ปิด(Down) Terminal จริง ๆ จะไม่สามารถทำงานใด ๆ ได้เลย แต่ถ้าเป็น PC ที่จำลองเป็น Terminal จะยังสามารถทำงานเป็น PC ธรรมดาได้ เราควรใช้ Host-based Architecture เมื่อต้องการควบคุมข้อมูลหรือ ฐานข้อมูลเพียงที่เดียว และ งานมีขนาดใหญ่มาก

2. Client-based Architecture
การทำงานทุกอย่างจะอยู่ที่ Client และ Server ทำหน้าที่เป็น Data Storage แบบนี้ไม่ค่อยเป็นที่นิยม เนื่องจากคอขวดของระบบอยู่ที่เครือข่ายเพราะสถาปัตยกรรมแบบนี้ ใช้ Bandwidth ค่อนข้างสูง

3. Client-Server Architecture
การทำงานจะแบ่งกันทำ โดยงานใดอยู่ใกล้ User ก็จะนำไปไว้ในฝั่ง Client เช่น Presentation logic และ Application logic ส่วนงานที่เกี่ยวข้องกับ Server เช่น Data storage และ Data access logic จะนำไปไว้ในฝั่ง Server ในการ Update ข้อมูล Application logic จะส่ง SQL ไปที่ Server เพื่อให้ Update record ให้ ดังนั้น Traffic จะน้อยกว่าแบบ Client-based


DNS (Domain names service)
เป็นระบบจัดการแปลงชื่อ (Domain Name) ให้เป็นหมายเลข IP address (name-to-IP address mapping) โดยมีโครงสร้างฐานข้อมูลแบบลำดับชั้นเพื่อใช้เก็บข้อมูลที่เรียกค้นได้อย่างรวดเร็ว หรือพูดง่าย ๆ ก็คือ การจดจำตัวเลข IP สำหรับแต่ละที่อยู่เว็บไซต์ มีความยากลำบาก ในทางปฏิบัติ จึงได้มีระบบการแปลงเลข IP ให้เป็นชื่อที่ประกอบขึ้นจากตัวอักษร คำ หรือ วลี เพื่อให้ง่ายต่อการจดจำ ซึ่งเรียกว่า โดเมนเนม (Domain Name) เมื่อเราป้อนที่อยู่เว็บไซต์ หรือโดเมนเนม ให้กับโปรแกรม Browser คอมพิวเตอร์จะทำการ แปลงโดเมนเนมให้เป็นชุดตัวเลข IP เพื่อให้คอมพิวเตอร์ด้วยกันเอง เข้าใจระบบที่ใช้แปลง ค่าระหว่างโดเมนเนม และ เลข IP นี้เรียกว่า Domain Name Service (DNS)


WWW (World Wide Web)
เป็นรูปแบบหนึ่งของระบบการเชื่อมโยงเครือข่ายข่าวสาร ใช้ในการค้นหา ข้อมูลข่าวสารบน Internet จากแหล่งข้อมูลหนึ่ง ไปยังแหล่ง ข้อมูลที่อยู่ห่างไกล ให้มีความง่ายต่อการใช้งานมากที่สุด WWW จะแสดงผลอยู่ในรูปแบบของเอกสารที่เรียกว่า ไฮเปอร์เท็กซ์ (Hyper Text)

Week 12 ... 15 September 2009

IPv4 (IP Address version4)
IPv4 มีขนาด 32 bit ถูกแบ่งออกเป็น 4 ชุดด้วยเครื่องหมายจุด โดยแต่ละชุดมีขนาด 8 bitClassful Addressingเริ่มแรกเลย IPv4 มีการแบ่ง IP Address ออกเป็น 2 ส่วน ได้แก่ Network ID และ Host ID ซึ่งการแบ่งเป็น 2 ส่วนนี้ (Two-level addressing hierarchy) จะมีชื่อเรียกว่า Classful addressing อย่างไรก็ตามการนำ IP Address แบ่งเป็น2 ส่วนนี้ ทำให้การใช้งาน IP Address ไม่มีประสิทธิภาพ
Subnet mask
Subnet Mask คือ ตัวเลขที่ใช้แสดงว่าส่วนไหนของ IP Address เป็น Network ID และส่วนไหนเป็น Host ID ซึ่ง Subnet Mask จะมีความยาวเท่ากับ IP Address คือ 32 bit โดยในส่วน Network ID นั้นทุก bit จะเป็น 1 และในส่วน Host ID นั้นทุก bit จะเป็น 0

IPv6 (IP Address version6)
- มี Address ประมาณ 1 พันล้าน addresses
- ประมาวลผลได้เร็วกว่า IPv4
- มีการรองรับการจัดการ เพื่อให้สามารถส่งขอ้มูลได้รวดเร็ว ทำให้สื่อสารแบบ Real time ได้

IPv6 Addressing

มีขนาด 16 ไบต์ หรือ 128 บิต ในการเขียน Address ของ IPv6 จะใช้เลขฐาน 16 โดยแบ่งบิตข้อมูลออกเป็น 8 ส่วนๆ ละ 2 ไบต์ ดังนั้นต้องใช้ตัวเลข 4 หลักสำหรับแต่ละส่วน แล้วใช้ ":" (Gap) คั่นระหว่างส่วนต่าง ๆ เพื่อใช้ในการเขียน Address แบบย่อ โดยย่อส่วนที่มีเลข 0 ต่อเนื่องกัน เช่น
- 1080:0000:0000:0000:0000:008:200C:417A สามารถอ่านเขียนย่อโดยใช้ 0 ตัวเดียว แทน 0000

- 1080::0008:0800:200C:417A เลขศูนย์ที่ติดกันต่อเนื่องเป็นชุด สามารถใช้สัญลักษณ์ "::" แทนเลขศูนย์ทั้งชุดได้
 
Dynamic Addressing
เป็นการกำหนด IP address ให้เปลี่ยนแปลงไปตามระยะเวลา ถ้าหาก address ใดไม่ถูกใช้งานก็จะสามารถนำไปแจกต่อให้กับเครื่องคอมพิวเตอร์เครื่องอื่นที่ ต้องการใช้งานต่อไปได้ โดยจะใช้ Dynamic Host Configuration Protocol (DHCP)
 
Mac Address
เป็น Address ที่มาพร้อมกับการ์ด LAN ซึ่งเป็น Address ที่ไม่สามารถเปลี่ยนแปลงได้ และเป็นAddress ที่ไม่มีโอกาสซ้ำกันไม่ว่าจะอยู่ในเครือข่ายใดก็ตาม เนื่องจากเป็น Address ที่ถูกบรรจุอยู่บนไมโครชิป และถูกกำหนดไว้เรียบร้อยแล้วจากบริษัทผู้ผลิตการ์ด LAN

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

วันพุธที่ 9 กันยายน พ.ศ. 2552

Week 11 ... 8 September 2009

Network Layer : Logical Addressing
IP Address
IP Address คือ ที่อยู่ (Address) ของอุปกรณ์ในระบบเครือข่าย เปรียบเสมือนกับเลขที่บ้านของเครื่องคอมพิวเตอร์ หรืออุปกรณ์เครือข่ายที่เชื่อมต่อกัน

IP version 4 (IPv4)

- มีขนาด 4 byte
- แต่ละ byte มีขนาด 8 bit
- ดังนั้น IPv4 จึงมีขนาดเท่ากับ 32 bit
- 32 bit ก็คือ 232 ทำให้สามารถมีหมายเลข IP Address 4,294,967,296 หมายเลข

ส่วนประกอบของ IP Address
IP Address Class


เหตุผลของการแบ่ง Class คือเพื่อให้ง่ายต่อการจัดสรร


Week 10 ... 1 September 2009

Process to Process Delivery
การสื่อสารในอินเทอร์เนตจะใช้การแลกเปลี่ยนข้อมูลจริงๆจะเกิดขึ้นที่โพรเซส ดังนั้นจึงจำเป็นต้องมีการส่งข้อมูลจากโพรเซสถึงโพรเซส เพื่อให้การส่งข้อมูลเป็นไปด้วยความถูกต้อง จึงต้องมีกลไกลในการส่งข้อมูลระหว่างในโพรเซสให้ถูกต้องด้วย โดยจะต้องรู้ว่าโปรเซสไหนต้นทาง โพรเซสไหนปลายทาง

Connectionless
บริการนี้เป็นแพ็กเก็ตที่จะต้องถูกส่งออกไปนั้นสามารถส่งออกไปได้เลยโดยไม่ต้องมีการสร้างการติดต่อระหว่างโพรเซสกันก่อน แต่ละแพ็กเก็ตอาจจะไม่ได้เดินทางไปในทางเดียวกัน ทำให้มีโอกาสที่จะไปถึงผู้รับไม่พร้อมกันและไม่เรียงลำดับกัน และจะไม่ได้รับการตอบรับจากผู้รับ ในแบบจำลองอิเทอร์เนตมี    โพรโตคอลที่อยู่ในทรานสปรอตเลเยอร์ที่เรียกว่า UDP จะให้บริการแบบนี้

Connection-Oriented
ทั้งผู้ส่งผู้รับจะต้องมีการสร้างการติดต่อกันก่อน จึงจะสามารถส่งข้อมูลกันได้ เมื่อเสร็จแล้วจะต้องทีการยกเลิกการติดต่อ โพรโตคอลในทรานสปอตเลเยอร์ที่เรียกว่า TCP จะให้บริการนี้

UDP (User Datagram Protocol)
UDP เป็นโพรโตคอลในทรานสปอตเลเยอร์ที่ให้บริการแบบ Connectionless และไม่รับประกันความถูกต้องของข้อมูล จึงไม่มีการเพิ่มบริการใดๆให้กับIP นอกจากจะวัดการกับการส่งข้อมูลจากโพรเซสถึง   โพรเซส และจะเหมาะสมในการส่งข้อมูลเล็กๆที่ไม่ต้องสนใจในเรื่องความถูกต้องมากนัก

TCP (Transmission Control Protocol)
TCP เป็นโพรโตคอลในทรานสปอตเลเยอร์ที่ให้บริการแบบ Connection-Oriented และรับประกันความถูกต้องของข้อมูล ดังนั้นจึงมีคุณสมบัติเหล่านี้เพื่อให้บริการกับIP

วันจันทร์ที่ 31 สิงหาคม พ.ศ. 2552

Week 9 ... 25 August 2009

HDLC

High-level Data link Control (HDLC) เป็นโพรโตคอลที่ถูกออกแบบมาให้สามารถสื่อสารได้ทั้งแบบฮาล์ฟดูเพล็กซ์และฟูลดูเพล็กซ์ บนพื้นฐานการเชื่อมโยงอุปกรณ์สื่อสารทั้งแบบจุดต่อจุด(point-to-point) และ แบบหลายจุด (multipoint)หรือ (multidrop) HDLC มีวิธีการสื่อสาร 2 แบบ คือ NRM และ ABM

NRM (Normal response mode)

เป็นวิธีการสื่อสารที่ต้องมีสถานีหลัก (primary station) 1 สถานี ส่วนสถานีรอง (secondary station) สามารถมีได้หลายสถานี

ABM (Asynchronous balanced mode)

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

เฟรมข้อมูลของ HDLC

ในการออกแบบเฟรมข้อมูลของ HDLC จะต้องให้ยืดหยุ่นกับวิธีการสื่อสารทั้งแบบ NRM และ ABM ดังนั้นจึงได้มีการก าหนดเฟรมข้อมูลไว้ 3 ชนิด ดังนี้

- I-frame (information frame) เป็นเฟรมที่ใช้ส าหรับบรรจุข้อมูลของผู้ใช้ และควบคุมความผิดพลาดของข้อมูลจากการสุญหาย เสียหาย หรือส่งซ้ า

- S-frame (supervisory frame) เป็นเฟรมที่จะใช้ส าหรับควบคุมความผิดพลาดของข้อมูลจากการสูญหาย เสียหายหรือส่งซ้ า

- U-frame (unnumbered frame) เป็นเฟรมที่ใช้ส าหรับการจัดการระบบ เช่น การสร้างการติดต่อ หรือ การยกเลิกการติดต่อ เป็นต้น

โครงสร้างเฟรมข้อมูล (Frame format)

ประกอบด้วย 6 ฟิลด์ ดังรูปที่ 15 โดยจะมีฟิลด์แฟล็กเริ่มต้น ฟิลด์แอดเดรส ฟิลด์ควบคุม ฟิลด์ควบคุม ฟิลด์ข้อมูล ฟิลด์ตรวจสอบ และฟิลด์แฟล็กสิ้นสุด ถ้ามีเฟรมข้อมูลหลายๆ เฟรมฟิลด์แฟล็กสิ้นสุดของเฟรมหนึ่งสามารถเป็นฟิลด์แฟล็กเริ่มต้นของอีกเฟรมหนึ่งได้

- ฟิลด์แฟล็ก จะมีทั้งหมด 8 บิต โดยจะมีรูปแบบเป็น 01111110 ซึ่งบิตเหล่านั้น หมายถึง การเริ่มต้นและสิ้นสุดของเฟรมแต่ละเฟรม

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

- ฟิลด์ควบคุม จะมีขนาด 1 หรือ 2 ไบต์ ใช้ส าหรับในการควบคุมอัตราการไหลและความผิดพลาดของการส่งข้อมูล

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

- ฟิลด์ตรวจสอบ หรือ ฟิลด์ FCS (frame check sequence) เก็บกลุ่มของบิตสำหรับตรวจสอบความผิดพลาดของข้อมูล ซึ่งจะมีขนาด 2 หรือ 4 ไบต์ ส่วนวิธีการตรวจสอบนั้นจะใช้วิธีการของ ITU-T-CRC

ชนิดของเฟรม (frame type)

HDLC จะมีเฟรมอยู่ 3 ชนิด คือ I-frame, S-frame และ U-frame

I-Frame

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

กลุ่มของบิตที่อยู่ในฟิลด์ควบคุมของ I-frame มีความหมายดังนี้

- ถ้าบิตแรกในฟิลด์ควบคุมมีค่าเป็น 0 หมายความว่า เฟรมนี้เป็น I-frame

- 3 บิตถัดมาจะเรียกว่า N(S) จะเก็บหมายเลขล าดับของกลุ่มแต่ละเฟรม

- บิตถัดไปจะเรียกว่า P/F (poll/final) บิตนี้จะมีค่าเป็น “1” ก็ต่อเมื่อสถานีหลักได้ทำการโพลไปยังสถานีรอง แต่ถ้าบิตนี้เป็น “0” หมายถึงสถานีรองได้ส่งข้อมูลกลับมาให้สถานีหลัก

- 3 บิตสุดท้าย เรียกว่า N(R) จะใช้กลุ่มบิตนี้เมื่อเป็น piggybacking โดย N(R) จะบอกว่าเฟรมถัดไปที่ต้องการรับคือเฟรมอะไร ซึ่งก็ต่อ ACK นั่นเอง

S-Frame

ใช้ส าหรับควบคุมอัตราการไหลของข้อมูลและการตรวจสอบความผิดพลาดของการส่งข้อมูล จะมีการใช้ก็ต่อเมื่อไม่มีการท า piggybacking ดังนั้น S-frame จะเป็นเพียง acknowledgment เท่านั้น จะไม่มีการส่งข้อมูลใดๆ ไปพร้อมกับเฟรมนี้

กลุ่มของบิตที่อยู่ในฟิลด์ควบคุมของ S-frame มีความหมายดังนี้

- ถ้า 2 บิตแรกของฟิลด์ควบคุมมีค่า “10” หมายความว่าเฟรมนี้เป็น S-frame

- 2 บิตถัดมา จะเป็นการบอกถึงประเภทของ S-frame มีอยู่ 4 ประเภทคือ RR,

RNR, REJ, และ SREJ

1. Receiver ready (RR) จะแทนด้วย “00” เป็นเฟรม acknowledgment บอกว่าผู้รับได้รับเฟรมข้อมูลที่ส่งมาเรียบร้อยแล้ว และพร้อมที่จะรับเฟรมต่อไปจากผู้ส่ง

2. Receiver not ready (RNR) จะแทนด้วย “10” คล้ายกับ RR คือบอกว่าผู้รับได้รับเฟรมข้อมูลที่ส่งมาเรียบร้อยแล้ว แต่จะบอกว่ายังไม่พร้อมที่จะรับเฟรมถัดไป ซึ่ง S-frame ชนิดนี้จะมีไว้ส าหรับควบคุมการแน่นขนัด

3. Reject (REJ) จะแทนด้วย “01” เป็น negative acknowledgment (NAK) บอกว่าผู้ส่งว่าให้ส่งเฟรมข้อมูลมาใหม่ ซึ่งการท างานจะเหมือน Go-Back-N

4. Selective reject (SREJ) จะแทนด้วย “11” เป็น negative acknowledgment ซึ่งจะใช้กับโพรโตคอล Selective reject

ส่วนบิตที่ 5 คือ P/F

- 3 บิตสุดท้าย เรียกว่า N(R) คือค่าของ ACK หรือ NAK

U-frame

เป็นเฟรมใช้ส าหรับบริหารจัดการโดยจะมีฟิลด์ที่ใช้เก็บข้อมูลที่เหี่ยวข้องกับการ

บริหารระบบเท่านั้น ไม่ได้เก็บข้อมูลผู้ใช้ U-frame จะเก็บรหัส ของการควบคุมไว้

2 ส่วนคือ 2 บิตหน้าบิต P/F และอีก 3 บิตหลังบิต P/F ดังนั้นจึงมีรหัสที่ใช้

ส าหรับควบคุมระบบได้ถึง 5 บิต (32 รหัส)

วันจันทร์ที่ 24 สิงหาคม พ.ศ. 2552

Week 8 ... 18 August 2009

Data Link Control
1.การควบคุมอัตราการไหลและควบคุมความผิดพลาดของข้อมูล
-Flow Control
เป็นการกล่าวถึงขั้นตอนกระบวนการที่ควบคุมจานวนของข้อมูลที่ส่งออกไปให้อยู่ในปริมาณที่เหมาะสม ก่อนที่จะได้รับการยืนยันจากผู้รับข้อมูล สาเหตุที่ต้องมีการควบคุมการไหลก็เพราะผู้รับอาจมีความเร็วในการรับข้อมูลไม่เท่ากับผู้ส่ง หรือมีหน่วยความจาอย่างจากัด หรือมีความเร็วประมวลผลต่า
-Error Control
หมายถึง การที่ผู้ส่งต้องส่งข้อมูลไปใหม่อีกครั้งหนึ่ง ถ้าผู้รับไม่สามารถรับข้อมูลที่ไม่ถูกต้อง สาเหตุที่ต้องมีการควบคุมก็เนื่องจากว่าข้อมูลจะต้องเดินทางจากที่หนึ่งไปยังอีที่หนึ่ง จึงมีความเป็นไปได้ที่ข้อมูลนั้นจะเกิดการเสียหายหรือสูญหายในระว่างการเดินทางได้
กลไกในการควบคุมอัตราการไหลและควบคุมความผิดพลาดของข้อมูลกลไกที่ใช้ในการควบคุมมีอยู่ 3 วิธี คือ Stop-and-wait, Go-Back-N และSelective-Repeat ถึงแม้บางครั้งจะเรียกสิ่งเหล่านี้ว่า “โพรโตคอล” แต่เพื่อง่ายต่อการทาความเข้าใจจึงขอใช้คาว่า “กลไก” (mechanisms)


2. Stop-and-wait
- ผู้ส่งข้อมูลจะต้องทาการสาเนา เฟรมข้อมูลที่จัดส่งไปเอาไว้ก่อน จนกว่าผู้รับจะยืนยันว่าได้รับเฟรมข้อมูลนั้นแล้ว เพราะถ้าเฟรมข้อมูลเกิดการเสียหายจะได้ส่งไปใหม่
- ในการยืนยันตอบรับเฟรมข้อมูลของผู้รับนั้น ผู้รับจะต้องส่งเฟรม acknowledgment (ACK) มาให้กับผู้ส่ง ซึ่งการส่งเฟรม ACK จะเป็นการบ่งบอกว่าได้รับเฟรมอะไร และเฟรมข้อมูลที่ต้องการส่งถัดไปนั้นคือเฟรมอะไร เช่น ผู้รับส่งเฟรม ACK1 มาให้ จะมีความหมายว่าได้รับเฟรม 0 แล้ว ให้ส่งเฟรม 1 มาได้เลย เป็นต้น
- ถ้าผู้รับข้อมูลได้รับข้อมูลผิดพลาด ผู้รับจะทาการทิ้งเฟรมนั้นไป หรือถ้าได้รับเฟรมที่ไม่ต้องการ จะทาการทิ้งเฟรมนั้นไปเช่นกัน
- ผู้ส่งจะใช้ตัวแปร S ในการเก็บข้อมูลว่าได้ส่งเฟรมข้อมูลนั้นออกไป ส่วนผู้รับจะใช้ตัวแปร R ในการเก็บข้อมูลว่าเฟรมถัดไปที่ต้องการคือเฟรมอะไร
- ผู้ส่งจะมีการกาหนดเวลาเอาไว้หลังจากส่งเฟรมข้อมูลออกไปแล้ว ถ้าไม่ได้รับเฟรม ACK กลับมาในเวลาที่กาหนด จะต้องทาการส่งเฟรมข้อมูลนั้นกลับไปอีกครั้ง
- ผู้รับจะส่งเฟรมACK กลับไปเมื่อได้รับเฟรมข้อมูลที่ไม่มีความผิดพลาดและเป็นเฟรมข้อมูลที่ต้องการ ถ้าผู้รับได้รับเฟรมที่ผิดพลาดหรือเฟรมที่ไม่ต้องการจะไม่มีการส่งเฟรมใดๆ ตอบกลับไป
- กลไกการทางาน
ในการส่งเฟรมข้อมูลออกไปนั้น เราสามารถแบ่งสถานการณ์ที่เกิดขึ้นออกเป็น 4 กรณีด้วยกัน คือกรณีปกติ กรณีเฟรมข้อมูลสุญหาย กรณีเฟรม ACK สูญหาย และกรณีเฟรม ACK ล่าช้า
- กรณีปกติ
ถ้าการส่งเฟรมข้อมูลเป็นไปอย่างปกติ คือผู้ส่งได้ส่งเฟรม 0และจะทาการคอยรับเฟรม ACK 1 เมื่อได้รับเฟรม ACK 1แล้วจึงจะส่งเฟรม 1 ออกไป จากนั้นทาการคอยรับเฟรม ACK 0 ต่อไป ซึ่งกลไกจะเป็นอย่างนี้เรื่อยๆ ในการที่คอยรับเฟรม ACK นั้นผู้ส่งจะมีระยะเวลาที่แน่นอนในการรอคอย
-กรณีเฟรมข้อมูลสูญหายหรือเสียหาย
กรณีนี้ผู้รับจะทาเหมือนกัน คือ ถ้าได้รับเฟรมข้อมูลที่มีความผิดพลาดหรือเสียหาย ผู้รับจะทิ้งเฟรมข้อมูลนั้นไป ซึ่งเปรียบเสมือนว่าผู้รับไม่ได้รับเฟรมข้อมูลนั้นเอง ถ้าผู้รับไม่ได้รับเฟรมข้อมูลที่ต้องการ ผู้รับไม่ต้องส่ง ACK กลับไปตัวอย่างรูปที่ 2 เมื่อผู้ส่งได้ส่งเฟรม 1 แต่เฟรมนั้นได้สูญหายในระหว่างการส่ง ผู้รับจะไม่ต้องส่ง ACK กลับไป ดังนั้นตัวแปร R จะยังคงเท่ากับ 1 เมื่อผู้ส่งไม่ได้รับเฟรมACK กลับมาในเวลาที่กาหนด ผู้ส่งจะต้องส่งเฟรมข้อมูลกลับไปใหม่อีกครั้ง
- กรณีเฟรมACK สูญหายจะกระทาเหมือนกรณีเฟรมข้อมูลสูญหายหรือเสียหาย
จะกระทำเหมือนกรณีเฟรมข้อมูลสูญหายหรือเสียหาย

-กรณีเฟรม ACK ล่าช้า
เฟรมACK ได้เกิดความล่าช้า เมื่อครบระยะเวลาที่กาหนดแล้วผู้ส่งยังไม่ได้รับเฟรม ACK 1 ผู้ส่งจะทาการส่งเฟรม 0 ไปใหม่อีกครั้ง แต่อย่างไรก็ตามผู้รับจะไม่รับเฟรมนี้ เนื่องจาก R=1 ซึ่งมีความหมายว่าผู้รับต้องการเฟรม 1 ไม่ใช่ 0

3. Go-Back-N
เป็นการส่งเฟรมข้อมูลออกไปคราวละหลายๆเฟรม ก่อนที่จะได้รับเฟรม ACK ตอบกลับมา เพื่อเป็นการใช้สายสื่อสารได้อย่างเต็มประสิทธิภาพมากขึ้นGo-Back-N จะทาการส่งเฟรมข้อมูลจานวน W เฟรม ก่อนที่จะได้รับเฟรม ACK ผู้ส่งจะต้องทาการสาเนาเฟรมข้อมูลทั้ง W เฟรมเอาไว้ด้วย ในเฮดเดอร์ของเฟรมข้อมูลทุกเฟรมจะต้องมีหมายเลขลาดับ เพื่อที่จะได้ทราบว่าเป็นเฟรมที่เท่าใด โดยจะใส่หมายเลขลาดับนี้ก่อน เริ่มต้นจากหมายเลข 0 เป็นต้นไป และเริ่มจากซ้ายไปขวาตัวอย่างหมายเลขลาดับเป็นดังนี้0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1,...
- การเลื่อนหน้าต่างของผู้ส่งข้อมูล(Sender Sliding Window)
ผู้ส่งข้อมูลจะต้องทาการเก็บเฟรมข้อมูลที่ส่งออกไปเอาไว้ในบัฟเฟอร์ก่อน จนกระทั้งได้รับเฟรม ACK กลับมาจึงจะทาการลบเฟรมข้อมูลนั้นทิ้งได้ หลักการของการเลือนหน้าต่าง จะเหมือนกับการมีหน้าต่างมาครอบเฟรมข้อมูลไว้ แล้วใช้การเลือนหน้าต่างไปมา เฟรมข้อมูลที่อยู่ด้านซ้ายหน้าต่างจะหมายถึงเฟรมที่ได้รับ ACK แล้ว สามารถลบทิ้งเฟรมนั้นออกจากบัฟเฟอร์ได้ ส่วนเฟรมที่อยู่ด้านขวาหน้าต่าง เป็นเฟรมที่ยังไม่ได้มีการส่งออกไป จะต้องรอจนหน้าต่างเลื่อนมาถึงจึงจะสามารถส่งเฟรมข้อมูลได้ ตัวอย่างเช่น ในรูปที่ 6a เฟรม 0 ถึงเฟรม 6 ได้ส่งข้อมูลออกไปและกาลังรอเฟรมACK ตอบกลับจากผู้รับ ส่วนรูปที่ 6b เมื่อผู้ส่งได้รับเฟรม ACK ตอบกลับมาแล้วว่าผู้รับได้รับเฟรม 0 และเฟรม 1เรียบร้อยแล้ว ผู้ส่งจะทาการเลื่อนหน้าต่างไปทางด้านขวา 2 เฟรม