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

Week 13:Application Layer and WWW,HTTP

Application Architecture มี 3 แบบแบ่งตาม Application Program คือ
Host-based Architecture Client-based Architecture และ 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

Internet Protocol version 4
IPv4 จะมีกลุ่มตัวเลขอยู่ 4 ชุด แต่ละชุดขั้นด้วยจุด โดยแต่ละชุดมีขนาด 8 bit
Classful Addressing เริ่มแรกเลย IPv4 มีการแบ่ง IP Address ออกเป็น 2 ส่วน ได้แก่ Network ID และ Host ID ซึ่งการแบ่งเป็น 2 ส่วนนี้ (Two-level addressing hierarchy) จะมีชื่อเรียกว่า Classful addressing อย่างไรก็ตามการนำ IP Address แบ่งเป็น2 ส่วนนี้ ทำให้การใช้งาน IP Address ไม่มี
Network ID คือส่วนที่ระบุว่า IP Address อยู่ในโครงข่ายใด และเป็นส่วนที่ Router ไว้ใช้ค้นหาเส้นทาง
4. Host ID คือส่วนที่ระบุว่าคอมพิวเตอร์อยู่ที่ตำแหน่งใดของ Network

Subnet Mask
การแบ่ง network ออกเป็นส่วนย่อยๆ สามารถทำได้โดยใช้สิ่งที่เรียกว่า Subnet Mask ซึ่งมีลักษณะคล้ายกับ IP Address คือประกอบด้วยตัวเลข 4 ตัวคั่นด้วยจุด เช่น 255.255.255.0 วิธีการที่จะบอกว่า computer แต่ละเครื่องจะอยู่ใน network วงเดียวกัน (หรือพูดอีกอย่างหนึ่ง ก็คือใน subnet เดียวกัน) หรือเปล่า ก็สามารถทำได้โดยเอา Network Mask มา AND กับ IP Address ถ้าได้ค่าตรงกัน แสดงว่าอยู่ใน subnet เดียวกัน ถ้าได้ค่าไม่ตรงกัน ก็แสดงว่าอยู่คนละ subnet

Internet Protocol version 6
IPv6 (Internet Protocol version 6) เป็นเวอร์ชันล่าสุดของ Internet Protocol และได้รวมผลิตภัณฑ์ที่สนับสนุน IP มาเป็นส่วนหนึ่งด้วย รวมถึงระบบปฏิบัติการหลัก IPv6 ได้รับการเรียกว่า IPng (IP Next Generation) โดยปกติ IPv6 เป็นกลุ่มของข้อกำหนดจาก Internet Engineering Task Force (IETF) โดย IPv6 ได้รับการออกแบบให้ปฏิรูปกลุ่มของการปรับปรุง IP เวอร์ชัน 4 โดย host ของเครือข่ายและ node แบบ intermediate ซึ่ง IPv4 หรือ IPv6 สามารถดูแลแพ็คเกตของ IP เวอร์ชันอื่น ผู้ใช้และผู้ให้บริการสามารถปรับรุ่นเป็น IPv6 โดยอิสระ การปรับปรุงที่ชัดเจนของ IPv6 คือความยาวของ IP address เปลี่ยนจาก 32 เป็น 128 การขยายดังกล่าวเพื่อรองรับการขยายของอินเตอร์เน็ต และเพื่อหลีกเลี่ยงการขาดแคลนของตำแหน่งเครือข่าย

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

Internet Control Message Protocol
หน้าที่หลักของ ICMP คือ รายงานความผิดพลาดของการส่งข้อมูล แต่จะไม่สามารถแก้ไขความผิดพลาดของข้อมูลได้- ประเภทของ Message
Host confirmation : การตอบรับจาก host
Unreachable Destination or Service : ไม่สามารถติดต่อปลายทางได้
Time exceeded : ใช้เวลาเกินกำหนดRoute
redirection : แจ้งเส้นทางที่เหมาะสมSource quench : ให้ต้นทางลดภาระงาน

ARP (Address Resolution Protocol)
เป็นโปรโตคอลชนิดหนึ่งที่เป็นตัวกลางในการสื่อสารสำหรับการจับคู่ (map) ระหว่าง Internet Protocol address (IP address) กับตำแหน่งของอุปกรณ์ในระบบเครือข่าย เช่น IP เวอร์ชัน 4 ใช้การระบุตำแหน่งขนาด 32 บิต ใน Ethernet ของระบบใช้การระบุ ตำแหน่ง 48 บิต (การระบุตำแหน่งของอุปกรณ์รู้จักในชื่อของ Media Access Control หรือ MAC address) ตาราง ARP ซึ่งมักจะเป็น cache จะรักษาการจับคู่ ระหว่าง MAC address กับ IP address โดย ARP ใช้กฎของโปรโตคอล สำหรับการสร้างการจับคู่ และแปลงตำแหน่งทั้งสองฝ่าย

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

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

วันเสาร์ที่ 12 กันยายน พ.ศ. 2552

Week 11 : Network and Transport Layers 2

Stream Control Transmission Protocol (SCTP) เป็น transport
protocolที่ส่งข้อมูลระหว่างจุดสองจุด เหมือน TCP และยังเก็บรักษาขอบเขตของ data message เหมือน UDP SCTP มีความสามารถในด้าน multi-homing และ multi-streaming

Virtual Circuit (VC) คือ การเชื่อมต่อเสมือน (Logical Connection)
ระหว่างสองสถานีใดๆ ในเครือข่ายสวิตซ์ สถานีจะสื่อสารกันโดยการส่งผ่านเซลลข้อมูล โดยผ่านวงจรเสมือนนี้ ส่วนเส้นทางเสมือน (Virtual Path) เป็นการจัดวงจรเสมือนให้เป็นกลุ่ม

ATM(Asynchronous Transfer Mode)
เป็นมาตรฐานรูปแบบการส่งข้อมูลความเร็วสูงที่ถูกพัฒนามาสำหรับงานที่ต้องการความเร็วในการส่งข้อมูลสูงมาก ๆ ข้อมูลที่ส่งในเครือข่าย ATM จะถูกแบ่งเป็นกลุ่มย่อยเล็ก ๆ เรียกว่า เซลล์ (Cell) ซึ่งมีขนาด 53 byte

VPI (virtual path identifier) ใช้เพื่อติดต่อกับ VCI เพื่อที่จะระบุปลายทางของเซลล์หลังจากที่ผ่าน ATM switches เพื่อใช้เป็นเส้นทางในการเดินทางมีขนาด 8 บิต
VCI (virtual channel identifier) ใช้เพื่อติดต่อกับ VPI เพื่อที่จะใช้ระบุปลายทางของเซลล์หลังจากที่ผ่านATM switches เพื่อสร้างเส้นทางในการติดต่อมีขนาด 16 บิต


Interner Address หรือ IP address ปัจจุบันมีขนาด 32
บิตในการกำหนดค่าอุปกรณืต่างๆส่วนการเขียนทำได้ 2 แบบ คือเขียนในแบบ เลขฐาน2 และ เลขฐาน10
ในการเขียนในแบบฐาน2 การเขียนจะเขียนเป็นชุด 4 ชุด
โดยแต่ละชุดจะใช้เลขฐานสองจำนวน 8 บิต(1ไบต์) โดยทั่วไป
คนส่วนใหญ่จะคุ้นเคยกับระบบเลขฐาน10 จึงมักแสดงผลโดยการใช้เลขฐาน10 จำนวน 4 ชุด
ซึ่งแสดงถึงหมายเลขเฉพาะของเครื่องนั้น สำหรับการส่งข้อมูลภายในเครือข่าย Internet
โดย IP address มีไว้เพื่อให้ผู้ส่งรู้ว่าเครื่องของผู้รับและผู้ส่งคือใคร
IPv4 Address เป็นระบบ 32 บิตหรือสามารถระบุเลขไอพีได้ตั้ง 0.0.0.0 ถึง 255.255.255.255

IPv4 Address แบ่งออกเป็น 5 Class ได้แก่ Class A,B,C,D,E
Class A,B,C จะประกอบขึ้นจาก NetId และ HostId ซึ่งแต่ละClass จะมีขาดของNetId และ HostId แตกต่างกันไป แต่ Class D,E จะไม่มีการแบ่ง NetId และ HostId
Class D จะใช้สำหรับ Multicast เป็นการส่งจากผู้ส่งไปยังผู้รับเป็นกลุ่ม สามารถกำนหดให้Hostและผู้รับมีแอดเดรสแบบ Multicast Address ได้แต่ไม่สามารถกำหนด Host ของผู้ส่งได้
Class A จะใช้ 1 Byte กำหนดค่า NetId และ 3 Byte กำหนดค่า HostId
Class B จะใช้ 2 Byte กำหนดค่า NetId และ 2 Byte กำหนดค่า HostId
Class C จะใช้ 3 Byte กำหนดค่า NetId และ 1 Byte กำหนดค่า HostId
เราสามารถทราบได้ว่าแอดเดรสนี้อยู่ในคลาสไหน โดยดูจาก Byte แรกของแอดเดสClass นั้น
Byte ของแต่ละClassมีดังนี้
Class A มีค่าระหว่าง 0-127 รูปแบบจะเป็น 0.0.0.0 ถึง 127.0.0.0
Class B มีค่าระหว่าง 128-191 รูปแบบจะเป็น 128.0.0.0 ถึง 191.255.255.255
Class C มีค่าระหว่าง 192-223 รูปแบบจะเป็น 192.0.0.0 ถึง 223.255.255.255
Class D มีค่าระหว่าง 224-239 รูปแบบจะเป็น 224.0.0.0 ถึง 239.255.255.255 ใช้สำหรับงาน Multicast
Class E มีค่าระหว่าง 240-255 รูปแบบจะเป็น 240.0.0.0 ถึง 255.255.255.255 ยังไม่มีการใช้

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

Week 10 : Network and Transport Layers

Three-way handshake
  • Client จะส่ง segment แรกออกไป เรียกกว่า TCP SYN segment ประกอบไปด้วย หมายเลขพอร์ตของทั้งต้นทางและปลายทาง, Initialization sequence number : ISN) ซึ่งจะเป็นหมายเลขไบต์แรกที่Clientจะส่งให้กับServer
  • Server ส่ง segment ที่สอง คือ SYN และ ACK segment ซึ่ง segment มีจุดมุ่งหมาย 2 ประการคือ
    - เป็นการตอบรับ segment แรกที่ได้รับ โดยการใช้แฟล็ก ACK พร้อมทั้ง Acknowledment numberได้มาจากการนำ ISN ของ Client บวก 1
    - ใช้เป็น segment เริ่มต้นของ Server จะประกอบไปด้วย ISN (Initialization sequence number)
  • 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
    - TCP Service (บริการของ TCP) เป็น Protocol ที่ใช้กับ process ที่อยู่ใน Application layer
    1) Stream Delibery Service (บริการการส่งข้อมูลเป็นสตรีม) TCP มีการรับส่งข้อมูลเป็นstream มีการรับส่งข้อมูลเป็นไบต์ที่ต่อเนื่องกันไป ก่อนที่จะส่งได้นั้น process ทั้งสองจะต้องการติดต่อกันเหมือนมีท่อใช้ลำเลียงข้อมูล
    2) Sending and receiving buffers บัฟเฟอร์นี้จะมีอยู่ 2 buffersคือ สำหรับรับข้อมูล และส่งข้อมูล ฝั่งส่งจะนำข้อมูลใส่ไว้ในbuffersก่อนแล้วจึงค่อยเริ่มทยอยส่งออกไป เมื่อได้รับก็จะตอบกลับว่าได้รับข้อมูลแล้ว จึงทำการ clear buffers นั้นออกไป เมื่อbuffers เต็มจะต้องหยุดส่ง ส่วนฝั่งรับเมื่อได้รับข้อมูลแล้วจะทำการส่งต่อไปให้กับ process แล้วจะทำการตอบกลับไปว่าได้รับข้อมูลแล้ว จึงทำการ clear buffer ถึงจะมี buffer ช่วยแก้ปัญหาเรื่องความเร็วของการรับส่งที่ไม่เท่ากันได้ แต่เนื่องจาก IP ที่ให้บริการกับ TCP และ IP จะส่งข้อมูลเป็นแพ็กเก็ต ไม่ใช่เป็นลักษณะ stream ของไบต์ จึงทำการแบ่งข้อมูลออกเป็นแพ็กเก็ตเสียก่อน
  • TCP segments
    แบ่งเป็น segment แล้ว TCP จะทำการเพิ่ม Header เข้าไปในแต่ละ segment จากนั้นจึงจะส่งต่อไปให้กับ IP แล้ว IP จะทำการเอ็นแคปซูเลตเซ็กเมนต์เป็นIP datagram


UDP (User Datagram Protocol)

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

โครงสร้างของ User Datagram

  • Source port number : มีขนาด 16 บิต ถูกใช้โดย Process ที่ Host ต้นทาง
  • Destination port number : มีขนาด 16 บิต ถูกใช้โดย Process ที่ Host ปลายทาง
  • Length : มีขนาด 16 บิต ใช้บอกขนาดของ User Datagram รวมทั้งทั้ง Header and Data หน่วยเป็น byte
  • Checksum : มีขนาด 16 บิต ใช้เก็บค่าในการตรวจสอบความถูกต้องของ User Datagram สามารถเลือกใช้หรือไม่ใช้ก็ได้