วันเสาร์ที่ 10 ตุลาคม พ.ศ. 2552

iPhone app predicts IPv4 doomsday

iPhone app predicts IPv4 doomsday
The tool counts down the days until all IPv4 addresses have been assigned
By Stephen Lawson IDG News Service

ถ้าคุณเป็นคนที่กังวลเกี่ยวกับการลดลงของ Address IPv4 ที่กำลังจะหมดไป iPhone สามารถบอกคุณได้มีระยะเวลาเท่าไหร่กับสิ่งที่เกิดขึ้นว่ามีจำนวน Address ที่เหลืออยู่อย่างจำกัดสำหรับ IPv4 ผู้ให้บริการและรัฐวิสาหกิจจะต้องทำระบบให้ทำงานร่วมกับเวอร์ชั่นถัดไป, IPv6 หรือ ใช้วิธีการแก้ปัญหาอย่างไร

เครือข่ายIPv6และผู้ร่วมจาก Hurricane Electric แนะนำโปรแกรม iPhone ตัวใหม่เมื่อวันอังคาร โปรแกรมนี้จะนับเวลาถอยหลังเพื่อหาว่าอีกกี่วันIPv6จะมาแทนที่IPv4อย่างสมบูรณ์โปรแกรมนี้จะจดสถิติ เช่น จำนวนของ Address Ipv4 ที่เหลืออยู่ และจำนวน domain ที่ใช้ IPv6 แล้ว การรองรับสำหรับคนที่ยังใช้IPv4อยู่เริ่มน้อยลง แม้มันจะคิดจากอัตราที่คำนวณขึ้นมา ไม่ใช่ค่าที่ได้จากสถิติจริงๆ

ช่วงเวลาที่เปลี่ยนจาก IPv4 เป็น IPv6 นั้นไม่ใช่เรื่องง่าย เพราะ IANA จะส่ง Address ของ IPv4 ที่ได้จากRIRs ซึ่งจะจัดสรรให้กับคนที่จะใช้ตามลำดับ คำขอพวกนี้ไม่สามารถคาดการณ์ได้ นักวิจัยทั้งหลายได้ศึกษาปัญหา รวมถึง คุณGeoff Huston จาก Asia-Pacific Network Information Centre (APNIC) และ คุณTony Hain จาก Cisco Systems รายงานของพวกเขาเกี่ยวข้องกับการวิเคราะห์ทางคณิตศาสตร์อย่างละเอียดและ การรับรู้ถึงการคาดการณ์ที่ตั้งเงื่อนไขและต้องเปลี่ยนแปลง

Levy บอกว่า "มันไม่เหมือนในวันแรกของเดือน มกราคม 2010, เราต้องเปลี่ยนทั้งหมด." วันจริงแม้จะมาเร็วมากถ้ามันจะหมดไปในเวลาที่ใกล้จะถึง ทำให้ความต้องการที่จะเร่งรัด ใน land rush สำหรับที่อยู่สุดท้าย แต่ถึงแม้ว่าทำนาย 699-วันไม่มีอะไรมากกว่าการคาดเดา

มีเครื่องมือที่จะทำให้ Client ของ IPv4 เชื่อมต่อกับ IPv6 ได้ แต่มีข้อเสียคือมีความซับซ้อนของlayerอย่างน้อยก็ฟังก์ชั่น 1 ตัวเรียกว่า Carrier-class network address translation ก็ทำให้การใช้งานของผู้ใช้อินเทอร์เน็ตถ้าเครือข่ายของผู้ให้บริการทำให้ช้าลงมากกว่าแบบ IPv4ต่อ IPv4 หรือ IPv6ต่อ IPv6 ตามที่ Lavy บอก

"เราคาดหวังเพื่อเห็นการแปลงIPvจำนวนมาก ... แต่สมรรถนะจะดีที่สุดถ้าคุณได้เปลี่ยนเครื่องเซิฟเวอร์ของคุณให้สามารถใช้กับIPv6 และ IPv4ได้ด้วย," John Curran, ประธานาธิบดีและCEO ของ American Registry สำหรับหมายเลขอินเตอร์เนต, RIR กำหนด addresses ใน U.S. ถ้าคำทำนายของ Hurricane ถูกต้อง – APNIC’s Huston ก็ลำบากแล้ว, คาดว่าอีก 701 วัน จนกระทั่งมันสูญเสีย – แล้วเนื้อที่ของ IPv4 address จะหมดไปในกลางปี 2011 แต่นั่นไม่ควรวางในองค์กรใหญ่ๆ ถ้าไม่ได้เปลี่ยนไปเป็น IPv6, ตาม Internet Society , กลุ่มไม่แสวงหากำไรที่ดูแล Internet Engineering Task Force

. IT managers ต้องการ ฝึกอบรม staff , คิดว่า servers และ routers ต้องการการพัฒนางาน และทดสอบsolutionที่พวกเขาทำขึ้น, Matt Ford กล่าว

"ถ้าคุณต้องการที่จะประสบความสำเร็จในการเปลี่ยนเป็น IPv6 คุณต้องเริ่มต้นอย่างจริงจังเดี่ยวนี้," Ford บอก.

วันจันทร์ที่ 28 กันยายน พ.ศ. 2552

Week 13 : Application Layer and WWW and HTTP

Application Architecture

มี 3 แบบแบ่งตาม Application Program คือ
1. Host-based Architecture
2. Client-based Architecture
3. Client-Server Architecture

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

Multi -tier Architecture เป็น Client-Server Architecture ที่มีการ แบ่ง Application Program ตามภาระงานของแต่ละส่วน

  • Two-Tier Architecture จะมองเป็นสอง Component คือ Client(ทำ Presentation, Application) กับ Server(ทำ Data storage, Data access) ตัวอย่างดังรูปด้านล่าง
  • Three-Tier Architecture มองเป็นสาม Component หลัก อาจประกอบด้วย Client, Middleware, Appliaction Server ,Database Server หรืออื่นๆ ตัวอย่างดังรูปด้านล่าง
  • N-Tier Architecture จะมีมากกว่า สาม Component ประกอบด้วย Client, Server ที่ทำงานต่างๆ, Database Server แบ่งภาระงาน บางครั้ง อาจมี เครื่องที่ทำในส่วนของ Appliaction Logic 2 ตัวเลยก็ได้ ตัวอย่างดังรูปด้านล่าง

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)

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

Week 12 : Network and Transport Layers (2)

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 ไม่มีประสิทธิภาพ
  • Block of addresses can be defined as x.y.z.t/n , x.y.z.t. defines one of the address and the /n defines the mask.
  • The firs address in the block can be found by setting the rightmost 32 - n bits to 0s. The last address in the block can be found by setting the rightmost 32 - n bits to 1s.
  • ตัวเลข address ใน block หาจาก 2 ยกกำลัง 32-n

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 เลขศูนย์ที่ติดกันต่อเนื่องเป็นชุด สามารถใช้สัญลักษณ์ "::" แทนเลขศูนย์ทั้งชุดได้

Transition from IPv4 to IPv6

  • การเปลี่ยนแปลงจาก IPv4 เป็น IPv6 ไม่สามารถทำได้ในทันที ต้องใช้เวลาและค่าใช้จ่ายจำนวนมากในการเปลี่ยนแปลงครั้งนี้ จุงค่อยๆทำ เพื่อป้องกันปัญหาที่จะเกิดขึ้นในการใช้งาน
  • IETF กำหนดมาตรฐานในการเปลี่ยนจาก IPv4 เป็น IPv6 ไว้ 3 วิธี ดังนี้
    1. Dual Stack เนื่องจาก Protocol ของการใช้ stack คู่นี้จะทำให้ Host สามารถที่จะใช้งานได้ทั้งสองอย่าง ในการเลือกว่าจะส่ง Packet ออกไปให้กลับ Host ปลายทางโดยใช้ IP เวอร์ชั่นไหนนั้น Host ต้นทางจะส่งPacket ไปยัง DNS (Domain Name System) ก่อน ถ้าตอบ IPv4 กลับมา แสดงว่า Host ต้นทางจะต้องส่ง Packet เป็น IPv4 เป็นต้น
    2. Tunneling คือ Host ทั้ง 2 ตัวใช้ IPv6 ต้องการสื่อสารกัน แต่ต้องส่ง Packet ผ่าน IPv4 ดังนั้น Packet นั้นจะต้องใช้ Address ของ IPv4ด้วย ทำให้ Packet IPv6 ต้อง Encapsulate เป็น Packet IPv 4 ก่อน เมื่อออกจากเครือข่าย IPv4 จึงทำการ Decapsulate ให้เป็น Packet IPv6 เหมือนเดิม
    3. Header Translation จำเป็นเมื่อ Internet ได้มีการเปลี่ยนเป็น IPv6 แต่ยังมีบางเครื่องที่ใช้ IPv4 ต้องเปลี่ยนโครงสร้างของ Header ทั้งหมด โดยใช้วแปลง Header ทำหน้าที่ในการแปลง Header ของ IPv6 ให้เป็น IPv4

Dynamic Addressing

  • เป็นการกำหนด IP address ให้เปลี่ยนแปลงไปตามระยะเวลา ถ้าหาก address ใดไม่ถูกใช้งานก็จะสามารถนำไปแจกต่อให้กับเครื่องคอมพิวเตอร์เครื่องอื่นที่ ต้องการใช้งานต่อไปได้ โดยจะใช้ Dynamic Host Configuration Protocol (DHCP)

ARP (Address Resolution Protocol)

  • เป็น Protocol ชนิดหนึ่งที่เป็นตัวกลางในการสื่อสารที่ทำหน้าที่หา Address และจับคู่ระหว่าง IP Address ที่เชื่อมโยงเครือข่ายของระบบ การขอหมายเลข IP Address มาใช้บริการเพื่อให้สามารถสื่อสารกันระหว่างระบบเครือข่ายต่างๆได้ สามรถส่งข้อมูลระหว่างคอมพิวเตอร์ที่ติดต่อกัน โดยมีฮาร์ดแวร์สร้างเฟรมข้อมูลแล้วโพรโตคอล ARP จะนำข้อมุลเหล่านั้นเข้าที่เครื่อง host ในระบบเครือข่ายต่อไป

Mac Address

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

ICMP (Internet Control Message Protocol)

  • เป็นการรายงานความผิดพลาดและปัญหาที่เกิดขึ้น ประเภทของ Massage แบ่งออกเป็น 2 ประเภท คือ 1. Error Reporting Message จะถูกส่งไปให้กับต้นทาง โดย ICMP จะใช้ IP Address ของต้นทางเพื่อส่งรายงานความผิดพลาดไปให้ แน่งออกได้เป็น 5 ประเภท คือ 1. Destination unreachable 2. Source quench 3. Time exceeded 4. Parameter problems 5. Redirection และประเภทของ Massage ที่ 2. Query Message เป็น Message สอบถาม แบ่งออกเป็น 4 ประเทภ คือ 1. Echo request and reply 2. Time-stamp Request and Reply 3. Address Mask Request and Reply 4. Router Solicitation and Advertisment

Routing

  • จะใช้ตารางหาเส้นทาง (routing table) เมื่อมี Packet ที่ส่งออกไปหรือรับเข้ามา Router จะตรวจสอบจากตารางหาเส้นทางก่อนว่าจะสามารถส่งไปยังปลายทางได้อย่างไร การหาเส้นทางโดยวิธีนี้จะไม่ค่อยซับซ้อน เนื่องจากการส่ง Packet ไปในเส้นทางใด ๆ นั้นจะขึ้นอยู่กับตารางหาเส้นทาง

Routing Protocols

  • ใช้แลกเปลี่ยนระหว่าง nodes และ maintaining routing tables
  • Autonomous System (AS) คือ ระบบเครือข่ายที่มีการแลกเปลี่ยนข้อมูล อยู่ ในภายใต้การบริหารของ ผู้ดูแลระบบ หรือมี policy เดียวกัน
  • Type of Routing Protocols
    - Interior routing protocols (RIP, OSPF, EIGRP, ICMP)
    - Exterior routing protocols (BGP)
  • Types of Routing
    - Centralized routing
    - Decentralized routing

วันศุกร์ที่ 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 เสมอ