วันศุกร์ที่ 11 กันยายน พ.ศ. 2552

Week 11 : Network and Transport Layers (2)

SCTP (Stream Control Transmission Protocol)
  • Is a Transport Layer protocol, serving in a similar role as the popular protocols Transmission Control Protocol (TCP) and User Datagram Protocol (UDP). Indeed, it provides some of the same service features of both, ensuring reliable, in-sequence transport of messages with congestion control.

VC (Virtual circuit)
  • วงจรเสมือน(Virtual Circuit) คือ การเชื่อมต่อเสมือน (Logical Connection) ระหว่างสองสถานีใดๆ ในเครือข่ายสวิตซ์ สถานีจะสื่อสารกันโดยการส่งผ่านเซลลข้อมูล โดยผ่านวงจรเสมือนนี้ ส่วนเส้นทางเสมือน (Virtual Path) เป็นกลุ่มของวงจรเสมือน การจัดวงจรเสมือนให้เป็นกลุ่มนั้นจะมีผลดีต่อการจัดการวงจรเสมือนที่อาจมีหลายวงจรในเวลาเดียวกัน หรือจะเป็นการง่ายกว่าที่จัดการวงจรเสมือนเป็นกลุ่มแทนที่จะแยกกัน
  • ในแต่ละเซลล์ของATM จะมีข้อมูลเกี่ยวกับเส้นทางเสมือน หรือVPI(Virtual Path Information) และข้อมูลเกี่ยวกับวงจรเสมือน หรือVCI (Virtual Circuit Information) สวิตซ์จะใช้ข้อมูลนี้ในการส่งต่อเซลล์ไปยังอุปกรณ์ที่เหมาะสมต่อไป การที่สวิตซ์จะทำงานอย่างนี้ได้ในสวิตซ์จะต้องมีตารางการจัดเส้นทาง(Switch Table) ข้อมูลที่อยู่ในตารางจะเป็นการจับคู่กันระหว่าง VPI,VCI และอินเตอร์เฟสของสวิตซ์นั้นๆ

Internet Addresses

  • Interner Address หรือ IP address คือหมายเลขที่ใช้ในระบบเครือข่ายที่ใช้โพรโทคอล Internet Protocol คล้ายกับหมายเลขโทรศัพท์ ที่เครื่องคอมพิวเตอร์ เครื่องเราท์เตอร์ เครื่องแฟกซ์ จะมีหมายเลขเฉพาะตัวโดยใช้เลขฐานสอง จำนวน 32 บิต โดยการเขียนจะเขียนเป็นชุด 4 ชุด โดยแต่ละชุดจะใช้เลขฐานสองจำนวน 8 บิต ซึ่งโดยทั่วไปแล้ว ผู้คนส่วนใหญ่จะคุ้นเคยกับระบบเลขฐานสิบ จึงมักแสดงผลโดยการใช้เลขฐานสิบ จำนวน 4 ชุด ซึ่งแสดงถึงหมายเลขเฉพาะของเครื่องนั้น สำหรับการส่งข้อมูลภายในเครือข่ายLAN WAN หรือ Internet โดย IP address มีไว้เพื่อให้ผู้ส่งรู้ว่าเครื่องของผู้รับคือใคร และผู้รับสามารถรู้ได้ว่าผู้ส่งคือใคร
  • IPv4 Address เป็นระบบ 32 บิตหรือสามารถระบุเลขไอพีได้ตั้ง 0.0.0.0 ถึง 255.255.255.255 (ตัวเลขบางตัวเป็นไอพีสงวนไว้สำหรับหน้าที่เฉพาะเช่น 127.0.0.0 จะเป็นการระบุถึงตัวอุปกรณ์เองไม่ว่าอุปกรณ์นั้นจะมีไอพีสื่อสารจริงๆ เป็นเท่าไร)
  • คลาส
    ไอพีเวอร์ชัน 4 ทั้งหมดถูกแบ่งออกเป็น Class ชนิดต่างๆเพื่อจุดประสงค์ในการใช้งานต่างๆกันดังต่อไปนี้
    คลาส A เริ่มตั้งแต่ 1.0.0.1 ถึง 127.255.255.254
    คลาส B เริ่มตั้งแต่ 128.0.0.1 ถึง 191.255.255.254
    คลาส C เริ่มตั้งแต่ 192.0.1.1 ถึง 223.255.254.254
    คลาส D เริ่มตั้งแต่ 224.0.0.0 ถึง 239.255.255.255 ใช้สำหรับงาน multicast
    คลาส E เริ่มตั้งแต่ 240.0.0.0 ถึง 255.255.255.254 ถูกสำรองไว้ ยังไม่มีการใช้งาน
    สำหรับไอพีในช่วง 127.0.0.0 ถึง 127.255.255.255 ใช้สำหรับการทดสอบระบบ

วันพฤหัสบดีที่ 3 กันยายน พ.ศ. 2552

Week 10 : Network and Transport Layers (1)

Three-way handshake
  • Client จะส่ง segment แรกออกไป เรียกกว่า TCP SYN segment ประกอบไปด้วย หมายเลขพอร์ตของทั้งต้นทางและปลายทาง, หมายเลขลำดับเริ่มต้น (Initialization sequence number : ISN) ซึ่งจะเป็นหมายเลขไบต์แรกที่ไคลเอ็นต์จะส่งให้กับเซิร์ฟเวอร์
  • Server ส่ง segment ที่สอง คือ SYN และ ACK segment
    - เป็นการตอบรับ segment แรกที่ได้รับ โดยการใช้แฟล็ก ACK พร้อมทั้งหมายเลขตอบรับ (Acknowledment number) ได้มาจากการนำ ISN ของClient บวก 1
    - ใช้เป็น segment เริ่มต้นของเซิร์ฟเวอร์ จะประกอบไปด้วย ISN
  • Client ส่ง segment ที่สาม คือ SYNACK เพื่อเป็นการตอบรับ segment ที่สอง โดยการใช้แฟล็ก ACK พร้อมทั้งหมายเลขตอบรับ ซึ่งได้มาจากการนำ ISN บวก 1 TCP (Transmission Control Protocol)

TCP (Transmission Control Protocol)
เป็น Protocol ใน Transport layer ที่ให้บริการแบบ connection - oriented และรับประกันความถูกต้องของข้อมูล
  • Port number (หมายเลขพอร์ต) TCP ใช้ Port number เป็นเหมือน Address ที่ใช้ใน Transport layer ตาราง Well-known port จะแสดง Well-known port number บางส่วนที่ถูกใช้โดย TCP
  • TCP Service (บริการของ TCP) เป็น Protocol ที่ใช้กับ process ที่อยู่ใน Application layer
    - Stream Delibery Service (บริการการส่งข้อมูลเป็นสตรีม) TCP มีการรับส่งข้อมูลเป็นstream มีการรับส่งข้อมูลเป็นไบต์ที่ต่อเนื่องกันไป ก่อนที่จะส่งได้นั้น process ทั้งสองจะต้องการติดต่อกันเหมือนมีท่อใช้ลำเลียงข้อมูล
    - Sending and receiving buffers บัฟเฟอร์นี้จะมีอยู่ 2 บัฟเฟอร์คือ สำหรับรับ และส่งข้อมูล ฝั่งส่งจะนำข้อมูลใส่ไว้ในบัฟเฟอร์ก่อนแล้วจึงค่อยเริ่มทยอยส่งออกไป เมื่อได้รับก็จะตอบกลับมาว่าได้รับข้อมูลนั้นๆ แล้ว จึงทำการเคลียบัฟเฟอร์ในส่วนนั้นออกไป เมื่อบัฟเฟอร์เต็มจะต้องหยุดการส่งเอาไว้ก่อน ส่วนฝั่งรับเมื่อได้รับข้อมูลแล้วจะทำการส่งต่อไปให้กับ process แล้วจะทำการตอบกลับไปเช่นเดียวกันว่าได้รับข้อมูลแล้ว จึงทำการเคลียบัฟเฟอร์เช่นกัน ถึงจะมีบัฟเฟอร์ช่วยแก้ปัญหาในเรื่องของอัตราความเร็วของการรับส่งที่ไม่เท่ากันได้ เนื่องจาก IP ที่ให้บริการกับ TCP และ IP จะส่งข้อมูลเป็นแพ็กเก็ต ไม่ใช่เป็นลักษณะ stream ของไบต์ จึงทำการแบ่งข้อมูลออกเป็นแพ็กเก็ตเสียก่อน ซึ่งเรียกว่า Segment
  • TCP segments จะแบ่งเป็น segment แล้ว TCP จะทำการเพิ่ม Header เข้าไปในแต่ละ segment จากนั้นจึงจะส่งต่อไปให้กับ IP แล้ว IP จะทำการเอ็นแคปซูเลตเซ็กเมนต์เป็นไอพีเดทาแกรมต่อไป

UDP (User Datagram Protocol)
เป็น Protocol ใน Transport layer ที่ให้บริการแบบ Conectionless และไม่รับประกันความถูกต้องข้อมูล นอกจากจัดการการส่งข้อมูลจาก Process-to-Process Delivery เท่านั้น UDP เป็น Protocol ที่มี Overhead น้อย UDP ยังเหมาะกับโปรแกรมประเภทมัลติมีเดียและMulticasting

  • Port Number ใช้ Port Number เหมือนกับ Address ที่ใช้ใน Transport layer ตาราง Well-known port จะแสดงให้เห็นถึง Well-known port number บางส่วนที่ถูกใช้โดย UDP

วันอังคารที่ 25 สิงหาคม พ.ศ. 2552

Week 9 : HDLC

HDLC (High-Level Data Link Control)

HDLC เป็น Protocols ที่ถูกออกแบบมาให้สามารถสื่อสารได้ทั้งแบบ Half duplex แล Full duplex บนพื้นฐานของการเชื่อโยงแบบ Point-to-point และ Multipoint หรือ Multidrop มีวิธีการสื่อสาร 2 วิธี คือ NRM และ ABM

NRM (Normal response mode)เป็นวิธีการสื่อสารที่ต้องมี Primary station 1 สถานี ส่วน Secondary station สามารถมีได้หลายสถานี

  • Primary station มีหน้าที่ในการส่ง Command ไปยัง Secondary
  • Secondary จะทำหน้าที่ในการ Respond ต่อคำสั่งนั้น ๆ
NRM สามารถใช้ได้กับการเชื่อมโยงแบบ Point-to-point และ Multipoint หรือ Multidrop

ARM (Asynchronous balanced mode)จะใช้กับการเชื่อโยงอุปกรณ์แบบ Point-to-point โดยทุกสถานีจะทำหน้าที่เป็น Primary Station และ Secondary Stationในเวลาเดียวกัน

HDLC frame format ประกอบไปด้วย 6 ฟิลด์

  • Flagเริ่มต้น จะมีทั้งหมด 8 บิต โดยจะมีรูปแบบเป็น 01111110 ซึ่งบิตเหล่านี้จะหมายถึงการเริ่มต้นและสิ้นสุดของเฟรมแต่ละเฟรม
  • Adress ใช้ในการเก็บAdressของSecondary Station ขนาดจะขึ้นอยู่กับจำนวนจอง Secondary Station ภายในเครือข่าย
  • Control จะมีขนาด 1 หรือ 2 bytes ใช้สำหรับควบคุมอัตราการไหลและความผิดพลาดของการส่งข้อมูล
  • Information ใช้ในการเก็บข้อมูลของผู้ใช้ที่ส่งมาจาก Network Layer หรือเก็บข้อมูลสำหรับการจัดการระบบ ขนาดของฟิลด์นี้จะขึ้นอยู่กับชนิดของเครือข่ายว่าเป็นเครือข่ายแบบไหน
  • FCS ใช้เก็บกลุ่มของบิตสำหรับตรวจสอบความผิดพลาดของข้อมูล ซึ่งจะมีขนาด 2 หรือ 4 bytes ส่วนวิธีการตรวจสอบความผิดพลาดของข้อมูลนั้นจะใช้วิธีของ ITU-T CRC
HDLC frame types
ในการออกแบบเฟรมข้อมูลของ HDLC นั้นจะต้องให้ยืดยุ่นกับวิธีการสื่อสารทั้งแบบ NSM และ ABM ดังนั้นจึงได้มีการกำหนดเฟรมขอ้มูลไว้ 3 ชนิด ซึ่งมีหน้าที่ต่างกันไป

  1. I-frame (information frame) ใช้รับข้อมูลมาจาก Network Layer สามารถเพิ่มบิตสำหรับควบคุมอัตราการไหลของข้อมูลและตรวจสอบความผิดพลาดของการส่งข้อมูลได้ด้วย กลุ่มของบิตที่อยู่ในฟิลด์ควบคุมของ I-frame จะมีความหมายดังนี้
    - บิตแรกใน Control มีค่าเป็น "0" จะหมายความว่าเฟรมนี้เป็น I-frame
    - 3 บิตถัดมาจะเรียกว่า N(S) จะเก็บหมายเลขลำดับของแต่ละเฟรม
    - บิตถัดไปจะเรียกว่าบิต P/E (Poll/Final) จะมีค่าเป็น "1" ก็ต่อเมื่อ Primary Station ทำการ Poll ไปยัง Secondary Station แต่ถ้าบิตนี้เป็น "0" ก็คือ Secondary Station ส่งข้อมูลกลับมาให้ Primary Station
    - 3บิตสุดท้าย N(R) ใช้กลุ่มบิตนี้เมื่อเป็น Piggybacking
  2. S-frame (supervisory frame) ควบคุมอัตราการไหลของข้อมูลและการตรวจสอบความผิดพลาดของข้อมูล จะมีการใช้ S-frame เมื่อไม่มีการทำ Piggybacking ดังนั้น S-frame จึงเป็นเพียง Acknowledgement เท่านั้น
    - 2 บิตแรก มีค่าเป็น "10"
    - 2 บิตถัดมาบอกถึงประเภทของ S frame มี 4 ประเภท
    1. Receive ready แทนด้วย "00" เป็นเฟรม Acknowledgement คือผู้รับได้รับเฟรมข้อมูลที่ส่งมาเรียบร้อยแล้ว และพร้มที่จะรับเฟรมต่อไปจากผู้ส่ง
    2. Receive not ready แทนด้วย "10" คือ ผู้รับได้รับเฟรมข้อมูลแล้วแต่ไม่พร้อมที่จะรับเฟรมถัดไป
    3. Reject แทนด้วย "01" เป็น Negative acknowledgement คือ บอกผู้ส่งว่าให้ส่งเฟรมข้อมูลมาใหม่ ซึ่งจะทำงานเหมือนกัน Go-Back-N
    4. Selective reject แทนด้วย "11" เป็น Negative acknowledgement จะใช้กับ Protocal Selective reprat
    - บิตที่ 5 ใน Control คือบิต P/F
    - 3 บิตสุดท้าย N(R) คือค่าของ ACK หรือ NAK
  3. U-frame (unnumbered frame) ใช้สำหรับการบริหาร โดยฟิลด์ที่ใช้เก็บข้อมูลที่เกี่ยวข้องกับการบริหารระบบเท่านั้น ไม่ได้เก็บข้อมูลของผู้ใช้ U-frame เก็บ Code ของการควบคุมเอาไว้ 2 ส่วน คือ 2 บิต หน้า บิต P/F และอีก 3 บิตหลังบิต P/F ดังนั้นจึงมีรหัสที่ใช้สำหรับควบคุมระบบได้ถึง 5 บิต (32 รหัส)

PPP (Point-to-Point Protocol)

PPP เป็น Protocol ที่ได้รับความนิยมเป็นอย่างมาก โดยเฉพาะการใช้งานอินเทอร์เน็ตตามบ้าน ที่ใช้คอมพิวเตอร์ติดต่อไปยังผู้ให้บริการอินเทอร์เน็ต (ISP) ส่วนใหญ่จะเลิกใช้ Protocol นี้เป็นหลัก เช่น การติดต่อโดยใช้ Modem ธรรมดา DSL Modem หรือ เคเบิลโมเด็ม

Frame format ประกอบไปด้วย

  1. Flag มีค่าเป็น 01111110
  2. Adress มีค่าเป็น 11111111
  3. Control ใช้รูปแบบของ U-frame ใน HDLC มีค่าเป็น 11000000 จะไม่มีหมายเลขลำดับ ไม่สามารถควบคุมอัตราการไหลและความผิดพลาดของการส่งข้อมูล
  4. Protocol ข้อมูลที่จะส่งนั้นจะเป็นทั้งข้อมูลของผู้ใช้ และข้อมูลสำหรับการจัดการระบบ
  5. Massage (Variable) เก็บข้อมูลของผู้ใช้ที่ส่งมาจาก Network Layer หรือ เก็บข้อมูลการจัดการระบบ Max 1500 bytes
  6. FCS เก็บกลุ่มของบิตสำหรับตรวจสอบความผิดพลาดของข้อมูล มีขาด 2 หรือ 4 bytes วิธีตรวจสอบความผิดพลาดของข้อมูล ใช้วิธี ITU-T CRC

LCP (Link Control Protocol)
LCP
ทำหน้าที่สร้างการติดต่อระหว่างอุปกรณ์ การคงสภาพของการเชื่อต่อ และการยกเลิกการติดต่อ ภายใน LCP Packet ประกอบด้วย

  • Code บอกถึงชนิดของ LCP Packet
  • ID คือ หมายเลขที่ใช้สำหรับการร้องขอและการตอบรับกลับ
  • Length บอกถึงขนาดของ LCP Packet
  • Information บรรจุข้อมูลพิเศษเข้าไปใน Packet

PAP (Password Authentication Protocol)

PAP Packet แบ่งออกเป็น 3 ชนิดได้แก่

  • Authenticate-request ส่งชื่อผู้ใช้ และรหัสผ่าน
  • Authenticate-ack การยอมรับชื่อผู้ใช้และรหัสผ่านบอกว่าสามารถให้เข้าใช้ระบบได้
  • Authenticate-nak การปฏิเสธการเข้าใช้ระบบ
CHAP (Challenge Handshake Authentication Protocol)
CHAP
จะเก็บรหัสผ่านเอาไว้ และไม่ส่งออกไปตามสายส่ง มีการทำงานดังนี้

  • ส่ง Challenge Packet ประกอบไปด้วยค่าตัวเลขไม่มี byte
  • ผู้ใช้จะใช้ฟังค์ชันในการคำนวณโดยการนำค่าตัวเลขที่ได้รับมารวมกับรหัสผ่านที่ตัวเองได้ตั้งเอาไว้ แล้วส่งผลที่ได้กลับไปให้กับระบบ โดยใช้ Response Packet
  • เมื่อระบบได้รับ Response Packet แล้ว ใช้ฟังค์ชันคำนวณค่าตัวเลขที่ได้ส่งออกไปกับรหัสผ่านของผู้ใช้ (ซึ่งถูกเก็บอยู่ในระบบด้วย) แล้วนำมาเปรียบเทียบกับ Response Packet ถ้าเท่ากันก็เข้าระบบได้ ถ้าไม่เท่ากันก็ปฏิเสธการเข้าระบบ

CHAP Packet จะอยู่ในเฟรมข้อมูลของ PPP แบ่งออกเป็น 4 ชนิด

  • Challenge ส่งค่าตัวเลขที่ใช้ในการคำนวณให้กับผู้ใช้
  • Response ผู้ใช้ส่งผลการคำนวณมาให้กับระบบ
  • Success ระบบส่งไปบอกผู้ใช้ให้เข้าใช้งานระบบได้
  • Failure ระบบส่งไปบอกผู้ใช้ว่าไม่ใช้เข้าใช้งาน

IPCP (Internetwork Protocol Control Protocol)
IPCP
เป็น Protocol ที่ทำงานร่วมกับ Network Layer โดยนำข้อมูลจาก Network Layer มาใช่ในเฟรมข้อมูล PPP

Transmission Efficiency

Formula = Total number of info bit to be transmitted / Totla number of bits transmitted

Bigger the message length, better the efficiency

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

Week 8 : Data Link Control

Automatic Repeat Request (ARQ)

Main ARQ protocols

- Stop and Wait ARQ (A half duplex technique)
- Continuous ARQ (A full duplex technique)

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

2. กรณีเฟรมข้อมูลสูญหายหรือเสียหาย ( Stop-and-Wait ARQ, lost frame ) ถ้าเฟรมผิดพลาด ผู้รับจะทิ้งเฟรมนั้นไป แล้วไม่ส่งACKกลับไป ดังนั้นตัวแปร R จะยังคงเท่ากับ 1 อยู่ เมื่อผู้ส่งไม่ได้รับเฟรม ACK กลับมาตามเวลาที่กำหนด ผู้ส่งจะส่งเฟรมข้อมูลนั้นกลับไปใหม่ ดังรูป


3. กรณีเฟรม ACK สูญหาย Stop-and-Wait ARQ, lost ACK frame จะทำเหมือนกับกรณีเฟรมข้อมูลหาย จากรูป ACK 0 ได้หายไปในระหว่างการส่ง เมื่อถึงเวลาที่กำหนด ผู้ส่งยังไม่ได้รับเฟรม ACK0 ผู้ส่งจะส่งเฟรม 1 กลับไปใหม่อีกครั้ง และเมื่อผู้รับได้เฟรม 1 แต่ไม่ใช่เฟรมที่ต้องการ (R=0) ผู้รับจะทำการทิ้งเฟรมนั้นไป และส่งเฟรม ACK 0 กลับไปอีกครั้ง

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

การส่งข้อมูลแบบสองทาง

จะเป็นการส่งข้อมูลทิศทางเดียว จะมีผู้ส่งและรับข้อมูลที่แยกจากัน แต่ถ้าต้องการที่จะเป็นทั้งผู้ส่งและรับข้อมูลในว่าลาเดียวกัน จะมีการเก็บทั้งตัวแปร S และ R เอาไว้

Piggybacking เป็นการส่งข้อมูลเฟรมและเฟรม ACK ไปพร้อมกัน ดังรูป เครื่อง A และ B จะส่งข้อมูล จึงรวมทั้ง 2 เฟรมเข้าด้วยกันแล้วส่งออกไป จะสามารถช่วยลดแบนด์วิดธ์ลงได้

Go-Back-N

Go-Back-N จะทำการส่งเฟรมข้อมูลจำนวน W เฟรม ก่อนที่จะได้รับเฟรม ACK ดังนั้น ผู้ส่งต้องทำสำเนาเฟรมข้อมูลทั้ง W เฟรมเอาไว้ด้วย ในHeader ของเหรมข้อมูลที่เฟรมจะมีหมายเลขลำดับ (Sequence number) จะเริ่มต้นจากหมายเลย 0 เป็นต้นไป จะเริ่มจากซ้ายไปขวา

Sender Sliding Window เฟรมข้อมูลที่อยู่ด้านซ้ายของหน้าต่างหมายถึงเฟรมที่ได้รับ ACK แล้ว ลบทิ้งเฟรมนั้นออกจากบัฟเฟอร์ได้ ส่วนเฟรมที่อยู่ด้านขวาของหน้าต่าง เป็นเฟรมที่ยังไม่ได้มีการส่งออกไป จะต้องรอจนกระทั่งหน้าต่างเลื่อนมาถึงจึงจะสามารถส่งเฟรมข้อมูลได้

Receiver Sliding Window ขนาดหน้าต่างของผู้ส่งจะมีขนาดเท่าใดก็ได้ แต่ขนาดหน้าต่างของผู้รับจะมีค่าเท่ากับ 1 เสมอ ข้อมูลที่ถูกหน้าต่างครอบไว้คือเฟรมที่ผู้รับต้องการและยังไม่ได้รับเฟรมนั้นจากผู้ส่ง

Go-Back-N ARQ, normal operation ในกรณีที่การส่งเฟรมข้อมูลและเฟรม ACK ไม่มีข้อผิดพลาด ผู้ส่งจะเก็บค่าหมายเลขลำดับของเฟรมที่ถูกส่งออกไปเอาไว้ก่อน เมื่อได้รับเฟรม ACK กลับมาจึงจะทำการเลื่อนหน้าต่างไปตามเฟรม ACK ที่รับเข้ามา

Go-Back-N ARQ, lost frame ถ้ามีเฟรม ACK ใดตอบกลับมาก่อนที่จะหมดเวลาที่ได้กำหนดไว้สำหรับเฟรม ACK นั้นๆ ผู้ส่งไม่จำเป็นต้องส่งเฟรมข้อมูลก่นอหน้านั้นกลับไปใหม่ ถึงแม้ว่าเฟรม ACK ก่อนหน้าบางเฟรมจะสูญหายไปก็ตาม ถ้าหมดเวลาในการรับเฟรม ACK แล้วผู้ส่งจะต้องทำการส่งเฟรมข้อมูลก่อนหน้านั้นใหม่ทั้งหมดอีกครั้ง

Go-Back-N ARQ : sender window size ขนาดของหน้าต่างส่งต้องน้องกว่า 2 ยกกำลัง m ขนาดของหน้าต่างรับต้องเป็น 1 เสมอ

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

Week 7 : Data Link Layer

Data Link Layer (1)

Data Link Layer - Introduction

ดาต้าลิงก์เลเยอร์ ทำหน้าที่ควบคุมสายข้อมูล ระหว่างระบบ กับปลายทางอีกด้านหนึ่ง โดยการรวมตัวอักขระ เข้าด้วยกัน เป็นข่าวสาร แล้วตรวจสอบ ก่อนที่จะส่งลงไปในสายสัญญาณ ดาต้าลิงก์เลเยอร์ทำหน้าที่ คล้ายผู้ควบคุม การจัดเรียง และสับเปลี่ยนตู้รถไฟของขบวนรถไฟ ก่อนจะออกจากสถานี และที่สถานีปลายทาง จะทำหน้าที่แจ้งว่าข้อมูลมาถึงอย่างปลอดภัยหรือไม่ ถ้าข้อมูลเสียหาย จะแจ้งขอให้สถานีต้นทาง ส่งข่าวสารมาใหม่
Media Access Control (MAC)

โดย MAC นี้จะสนับสนุนการปฏิบัติงาน, ตัดสินใจที่จะส่งข้อมูล เมื่อเน็ตเวิร์คว่าง และข้อมูลพร้อมที่จะส่ง, ตัดสินใจช่วงเวลาในการส่งข้อมูล, เพิ่ม Byte ควบคุมให้กับข้อมูล โดยมีรูปแบบข้อมูล เรียกว่า Frame และควบคุมถึงข้อมูลที่ส่งผ่านทาง Physical Layer ด้วย

Controlled Access
- Controlling access to shared resources
- Commonly used by maingrames
- Also used by some LAN protocols

Polling
เทคนิคการโพลนั้นจะต้องมีสถานีที่ทำหน้าเป็นสถานีหลัก (Primary station) อยู่หนึ่งสถานี
ส่วนที่เหลือจะเป็นสถานีรอง (secondary station) สถานีหลักจะทำหน้าที่ในการควบคุมการส่งทั้งหมด ถ้าสถานีหลักต้องการที่จะรับข้อมูลไปให้สถานีรอง จะเรียกว่า การโพล (polling) แต่ถ้าสถานีหลักต้องการที่จะส่งข้อมูลให้สถานีรอง จะเรียกว่า การซิเลค (Selectiong)

- Roll call polling ใช้ใน mainframe คอมพิวเตอร์สามารถส่งข้อมูลเมื่อมีการถามโดยเซิร์ฟเวอร์และส่งข้อมูลไปยังเซิร์ฟเวอร์

- Hub polling ถ้ามี terminal หลายตัวและอยู่ห่างไกลกัน poll message จะส่งผ่านระหว่าง
กลุ่มโดยใช้ CC

Error Detection and Correction
Error Control การควบคุมความผิดพลาดของข้อมูลจะหมายถึง การที่ผู้ส่งต้องส่งข้อมูลไปใหม่อีกครั้งหนึ่ง ถ้าผู้รับไม่สามารถรับข้อมูลหรือได้รับข้อมูลที่ไม่ถูกต้อง สาเหตุที่ต้องมีการควบคุมก็เนื่องจากว่า
ข้อมูลจะต้องเดินทางจากที่หนึ่งไปยังอีกที่หนึ่ง
Type of Error
- Single - Bit Error
ความผิดพลาดของข้อมูลแบบบิตเดียว หมายความว่า ข้อมูลแต่ละชุดที่ถูกส่งออกไปจะมีความผิดพลาดเกิดขึ้นเพียงบิตเดียวเท่านั้น
- Burst error
ความผิดพลาดของข้อมูลแบบหลายบิตนั้น เป็นความผิดพลาดที่เกิดขึ้นกับข้อมูลตั้งแต่ 2 บิตขึ้นไป เนื่องจากสัญญาณรบกวนที่เกิดขึ้นอาจะมีช่วงระยะเวลาที่นาน ซึ่งอาจะเกิดความผิดพลาดได้มากกว่า
Major functions
- Preventing error
- Detectiong errors
- Correctiong errors

Error detection
การตรวจสอบความผิดพลาดของข้อมูล ในการตรวจสอบความผิดพลาดของข้อมูลโดยการใช้บิตตรวจสอบนั้น สามารถทำได้ดังนี้
- Parity checks แบ่งออกได้เป็น Simple parity check and Two-Dimensional parity check
- Simple parity check จะส่งบิตตรวจสอบหรือ parity bit ส่งไปพร้อมกับบิตข้อมูลจริง ทำได้ 2 วิธี
- even-parity มีเลข 1 เหลือเป็นจำนวนคู่
- odd-parity มีเลข 1 เหลือเป็นจำนวนคี่
LRC
Longitudinal Redundancy Checking
เป็นการนำบล็อกของบิตข้อมูลมาจัดในตาราง(จัดเป็นแถวและหลัก) โดยการนำบล็อกของข้อมูล 32 บิตมาจัดในตารางให้เป็น 4 แถวและ 8 หลัก แล้วทำการตรวจสอบพาริตี้บิตของหลักทุกหลักแล้วจะได้แถวของข้อมูล 8 บิตขึ้นมาใหม่ 1 แถว การทำพาริตี้บิต บิตที่ 1 ในแถวที่ 5 ได้จากการทำพาริตี้คู่ของบิตแรกในทุกๆ แถว, พาริตี้บิต บิตที่ 2 ในแถวที่ 5 ได้จากการทำพาริตี้คู่ของบิตที่ 2 ในทุกๆ แถว และเป็นเช่นนี้จนถึงบิตที่ 8 จากนั้นทำการส่งพาริตี้บิต 8 บิตนี้ต่อจากข้อมูลเดิมส่งไปยังผู้รับ

Polynomial Checking
ปกติแล้วในการแทนบิตข้อมูลของตัวหารจะไม่ใช้รูปของเลขฐานสอง เนื่องจากค่อนข้างยาวและจำไดยากแต่จะเขียนให้อยู่ในรูปแบบของโพลิโนเมียล
ในการเลือกตัวหารเพื่อที่จะนำมาใช้ในกับวิธีแบบ CRC นั้น ควรจะต้องต้องมีคุณสมบัติอย่างน้อยที่สุดเป็นดังนี้
- ไม่ควรที่จะถูกหารด้วย x ลงตัว
- ควรที่จะถูกหารด้วย x+1 ลงตัว

Checksum
วิธีการตรวจสอบแบบ checksum
1.ข้อมูลจะถูกแบบออกเป็นเซ็กเมนต์ย่อย เซ็กเมนต์ละ n บิต
2.นำข้อมูลของทุกเซ็กเมนต์มาบวกันด้วยวิทีการแบบ 1's Complement
3.นำผลรวมของทุกเซ็กเมนต์มาทำคอมพลีเมนต์
4.ส่งบิตตรวจสอบไปพร้อมกับข้อมูล
การตรวจสอบความผิดพลาดของข้อมูล
เมื่อข้อมูลมาถึงผู้รับ จะมีขั้นตอนการตรวจสอบดังนี้
1.รวบรวมข้อมูลแต่ละเซ็กเมนต์ๆ ละ n บิต
2.นำข้อมูลของทุกเซ็กเมนต์มาบวกกันด้วยวิธีการแบบ 1's Complement
3.นำผลรวมของทุกเซ็กเมนต์มาทำคอมพลีเมนต์
4.ถ้าผลลัพธ์ที่ไดเท่ากับ 0 แสงว่าข้อมูลชุดนั้นถูกต้อง

Error Correction

Retransmission
ถ้ารับข้อมูลมาเกิดความผิดพลาด ก็จะส่งข้อมูลไปบอกทางผู้รับให้ส่งกลับมาใหม่

Forward Error Correction
FEC จะทำให้ผู้รับข้อมูลที่เกิดความผิดพลาดนั้นสามารถที่จะแก้ไขความผิดพลาดของข้อมูลได้โดยอัตโนมัติ

วันอาทิตย์ที่ 26 กรกฎาคม พ.ศ. 2552

Weeek 6 : Physical Layer cont.

Digital subscriber line

ADSL
ย่อมาจาก Asymmetrical DSL จะมีอัตราเร็วที่ใช้ในการส่งข้อมูลออกไปยังอินเทอร์เน็ต (upstream) จะมีค่าน้อยกว่าอัตราเร็วของการส่งข้อมูลจากอินเทอร์เน็ต (downstream) มายังผู้ใช้
สาเหตุที่ADSLมีอัตราเร็วที่สูงกว่าการใช้โมเด็มแบบเดิมทั้งๆ ที่ใช้สายโทรศัพท์เหมือนกัน ก็เนื่องมาจากว่าระบบโทรศัพท์นั้นได้มีการใช้ตัวกรองสัญญาณ (filter) เพื่อที่จะจำกัดแบนด์วิดธ์ของผู้ใช้แต่ละรายให้อยู่ที่ 4 KHz ทั้งๆที่สายโทรศัพท์มีแบนด์วิดธ์ที่กว้างถึง 1.1 MHz จึงสามารถใช้แบนด์วิดธ์ของสายได้อย่างเต็มที่ แต่จะมีปัจจัยที่จะทำให้แบนด์วิดธ์มีค่าน้อยกว่า 1.1 MHz เช่น ระยะทางจากบ้านไปยังชุมสายโทรศัพท์ ขนาดของสาย สัญญาณที่ส่ง เป็นต้น

DMT (Discrete multitone technique)
เกิดจากเทคนิค QAM (quadrature amplitude modulation) และ FDM (Frequency-division multiplexing) โดยเมื่อสายมีแบนด์วิดธ์ 1.104 MHz จะทำการแบ่งออกเป็นช่องสัญญาณสื่อสารได้ 256 ช่อง แต่ละช่องจะมีแบนด์วิดธ์ 4.312 KHz

ADSL modem
ADSL ตามบ้านเรือนของผู้ใช้ จะเชื่อมโยงกับชุมสายโทรศัพท์ที่ใกล้ที่สุด โลคอลลูปจะเชื่อมต่อกับตัวกรองสัญญาณ ส่วนโมเด็ม ADSL จะใช้หลักในการมอดูเลชันแบบ DMT เพื่อสร้างช่องสื่อสารสัญญาณ

DSLAM
Digital subcriber line access multiplexer ทำหน้าที่ส่งข้อมูลที่ได้รับมาออกไปยังอินเทอร์เน็ตต่อไป


Multiplexing

Multiplexing คือ การผสมสัญญาณ ที่สามารถส่งสัญญาณต่าง ๆ ไปพร้อมกัน แต่ไม่ทำให้สัญญาณเกิดการรบกวนซึ่งกันและกัน

FDM (Frequency-division multiplexing)
FDM การผสมสัญญาณโดยแบ่งความถี่ เป็นเทคนิคในการรวมสัญญาณอะนาล็อกจากหลายแหล่งเข้าด้วยกัน แล้วส่งออกไปทางเดียวกัน โดยที่แบนด์วิดธ์ของเส้นทางที่ใช้ในการสื่อสารนั้นจะต้องกว่างพอ ซึ่งต้องมากกว่าแบนด์วิดธ์ของทุกสัญญาณที่นำมารวมกัน
Minimum bandwidth of the link = Channel x Bandwidth(KHz) + Guard band x KHz for Guard band

WDM (Wave-division multiplexing)
WDMการผสมสัญญาณโดยแบ่งความยาวคลื่น ได้ถูกออกแบบให้ใช้กับสายไฟเบอร์ออปติกจะมีแบนด์วิดธ์ที่กว้างมากและมีอัตราการส่งข้อมูลที่สูง แตกต่างจาก FDM ตรงที่ใช้แสงเป็นตัวนำส่งสัญญาณ

TDM (Time-division multiplexing)
TDM การผสมสัญญาณโดยแบ่งเวลา ใช้กับสัญญาณดิจิตอล จะทำการแบ่งเวลาในการส่งข้อมูลให้กับอุปกรณ์ ตามลำดับ เมื่อครบทุกเครื่องแล้วก็จะวนกลับไปที่เครื่องแรก และเรียงตามลำดับเพื่อทำการส่งข้อมูลอีกครั้ง ข้อมูลที่ถูกส่งมากจากทุกเครือ่งจะถูกนำมารวมกันเป็นเฟรม (Frame) และช่วงเวลาที่แบ่งให้กับแต่ละเครื่องเรียกว่า ช่องเวลา (Time slot)

STDM (Statistical time-division multiplexing)
STDM ใน synchronous จะมี slot เท่ากันทุกตัวและจะสร้าง slot ตามความต้องการของข้อมูล จะมีMultiplexing คอยตรวจสอบข้อมูลใน line และส่งข้อมูลจน frame เต็ม จะมีอัตรการข้อมูลที่ส่งต่ำกว่าอุปกรณ์ที่จะส่ง

IMUX (Inverse Multiplexing)
IMUX เป็นวิธีการส่งสัญญาณจากสื่อที่มีความเร็วสูง แยกลงสื่อที่มีความเร็วต่ำกว่าหลายๆเส้น

วันเสาร์ที่ 18 กรกฎาคม พ.ศ. 2552

Week 5 : Physical Layer(2)&Error Detection and Correction

Physical Layer (2)


Noiselless Channel : Nyquist Bit Rate

การคำนวณอัตราการส่งบิตโดยที่ช่องสื่อสารไม่มีสัญญาณรบกวน ซึ่งเรียกได้ว่าเป็นอัตราเร็วสูงสุดของการส่งข้อมูล

- Bitrate = 2*bandwidth *log2L where

L is the number of signal levels used to represent data.


Noisy Channel : Shannon Capacity


คำนวณหาอัตราการส่งบิตข้อมูลภายในช่องสื่อสารที่มีสัญญาณรบกวน


- Capacity = bandwidth * log2(1+SNR)

- SNR = Signal to Noise Ration

Error Detection and Correction

Network errors caused by problems in transmission

- Network errors
- Human errors

Categories of Network Errors

- Corrupted (data changed)
- Lost data

Type of Error

- Single-Bit Error เป็นการส่งข้อมูลผิดพลาดแค่บิตเดียว

- Burst error

Major functions

- Preventing errors

- Detecting errors

- Correcting errors

Differential Manchester

จะคล้ายกับวิธี manchester คือจะมีการเปลี่ยนสัญญาณช่วงตรงกลางบิตข้อมูล แต่จะไม่สนใจว่าแรงดันไฟฟ้าจะเป็นบวกหรือลบ จะเปลี่ยนสัญญาณเมื่อบิตมีค่าเป็น "0" ถ้ามีค่าเป็น "1" ไม่ต้องมีการเปลี่ยนแปลงสัญญาณ

Pulse Amplitude Modulation (PAM)

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

Pulse Code Modulation (PCM)

เป็นการแปลงสัญญาณอะนาล็อกเป็นสัญญาณดิจิตอลได้โดยสมบูรณ์ การแปลงสัญญาณแบบ PCM สัญญาณอะนาล็อกจะถูก Quantization หรือ กำหนดค่าตัวเลขให้กับ pulse ตัวเลขที่กำหนดให้กับ pulse นั้นจะได้มาจากขนาดของสัญญาณอะนาล็อกที่ถูกสุ่มสัญญาณ ขนาดของ pulse ที่ได้จาการสุ่มสัญญาณ จะถูกเปลี่ยนให้อยู่ในรูปของเลขฐานสอง เมื่อได้กลุ่มตัวเลขที่เป็นบิตของข้อมูลแล้วก็จะสามารถที่จะแปลงให้เป็นสัญญาณดิจิตอลได้ โดยการใช้เทคนิคของ line coding จะแสดงตัวอย่างของผลที่ได้จาก PCM โดยใช้วิธีการแบบ unipolar ในการแปลงบิตข้อมูลให้เป็นสัญญาณดิจิตอล
วิธีการของ PCM นั้นสรุปกระบวนการทำงานได้ดังนี้
1. PAM
2. Quantization
3. Binary encoding
4. Line coding

Sampling Rate
Highest frequency = x Hz
Sampling rate = 2x samples/s

Transmission Modes
- Parallel mode เป็นการส่งข้อมูลออกไปพร้อมๆกันได้คราวละหลายบิต ทำให้ส่งขอ้มูลได้เร็ว
- Serial mode เป็นการส่งข้อมูลที่ใช้สายส่งเพียงเส้นเดียว บิต่ถูกส่งออกจะเรียงตามลำดับกันไป

Types of Serial Transmission

- Asynchronous ส่งข้อมูลครั้งละไบต์ (1 Byte = 8 bit) ในแต่ลไบต์ที่ถูกส่งออกไปจึงต้องมีบิตเริ่มต้น (Start bit) ซึ่งจะกำหนดค่าเป็น "0" และบิตสิ้นสุด (Stop bit) ซึ่งจะกำหนดค่าใหเป็น "1"

- Synchronous ใช้การนับจำนวนบิตของข้อมูลที่เข้ามาให้ได้อย่างถูกต้องและแม่นยำ การส่งแบบ Synchronous จะมีความเร็วของการรับส่งข้อมูลได้เร็วกว่าแบบ Asynchronous เนื่องจากไม่ต้องมีบิตพิเศษเพิ่มเติมเข้ามา และไม่มีช่องว่างเกิดขึ้นระหว่างไบต์ของข้อมูลอีกด้วย

- Isochronous

Digital to analog conversion

- Bit rate คือ จำนวนของบิตข้อมูลที่สามารถส่งได้ใน 1 วินาที มีหน่วยเป็น bps

- Baud rate คือ อัตราการเปลี่ยนแปลงสัญญาณใน 1 วินาที มีหน่วยเป็น baud/s

Amplitude Shift Keying (ASK)

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

Phase Shift Keying (PSK)

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

PSK จะสามารถทนต่อสัญญาณรบกวนได้ดีกว่าแบบ ASK