วันจันทร์ที่ 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