วันอังคารที่ 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 จะทำให้ผู้รับข้อมูลที่เกิดความผิดพลาดนั้นสามารถที่จะแก้ไขความผิดพลาดของข้อมูลได้โดยอัตโนมัติ