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

Week 12 : Chapter 7 Network and Transport Layers (2)

ในแต่ละ class ของ IP Address จะใช้จำนวนตัวเลขสำหรับ Network ID และ Host ID ไม่เหมือนกัน บาง class ก็ใช้ Network ID 3 byte + Host ID 1 byte, บาง class ก็ใช้ Network ID 2 byte + Host ID 2 byte ซึ่งสามารถดูได้จากรูปข้างล่างนี้

เนื่องจากมี ข้อจำกัด ทางด้าน physical media และ performance ของ network จึงต้องมีการแบ่ง network ออกเป็น segment ย่อยๆ หรือที่เราเรียกกันว่า subnet นั่นเอง

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

ใน Subnet Mask จะประกอบด้วยส่วนประกอบ 3 ส่วนคือ
1. Network ID ใช้สำหรับแยกส่วนที่เป็น Network ID ออกจาก IP Address มีค่าเป็น 1 ทุก bit
2. Subnet ID ใช้สำหรับแยก subnet ของ network มีค่าเป็น 1 ทุก bit
3. Host ID ใช้สำหรับแยกส่วนที่เป็น Host ID ออกจาก IP Address มีค่าเป็น 0 ทุก bit

การคำนวณจำนวน Network และ Host
จำนวน Host ใน Subnet = 2n - 2 เมื่อ n คือ จำนวน bit ของหมายเลข Host
จำนวน Subnet = 2n - 2 เมื่อ n คือ จำนวน bit ของหมายเลข Subnet

วิธีการคำนวณหา Network Address จาก Subnet Mask






เขียนเลข IP Address ให้อยู่ในเลขฐานสอง

เขียนเลข Subnet Mask ให้อยู่ในเลขฐานสองอีกเช่นกับ

ตั้ง ตำแหน่ง IP Address และ Subnet Mask ให้ตรงกันแล้วทำการคูณกันซะ ( Logical AND ) ผลลัพธ์ที่ได้ก็คือ Network Address นั้นเอง มาดูตัวอย่างกันซะหน่อย



สมมติ ว่า IP Address เป็น 168.108.2.1 และ Subnet Mask เป็น 255.255.0.0 งนำมาเขียนให้อยู่ในรูปเลขฐานสองแล้วนำมาคูณกันก็จะได้ Network Address ดังตัวตัวเลขสีแดง





10101000.01101100.00000010.00000001

11111111.11111111.00000000.00000000

10101000.01101100.00000000.00000000





Network Address นั้นก็คือ 168.108.0.0 ส่วน Host Address นั้นก็คือ 2.1 จึงกล่าวได้ว่า เครื่องคอมพิวเตอร์เครื่องนี้อยู่ในเน็ตเวิร์กเซกเมนต์ที่มีหมายเลข Network Address เป็น 168.108.0.0 และมีหมายเลขประจำเครื่องหรือ Host
Address เป็น 2.1




การเขียน IP Address และ Subnet Mask ในเอกสารเราจะเขียน 168.108.2.1/16 แล้วเลข 16 มาได้อย่างไร ไม่ต้องสงสัยหรอกครับ เลข 16
นั้น ก็คือ Subnet Mask นั่นเอง เป็นการนับจำนวนบิตเลขฐานสองของ Subnet Mask ที่เป็นบิต 1 ทั้งหมด ซึ่งในที่นี้ Subnet Mask ก็คือ 255.255.0.0 เป็นเลขฐานสองก็คือ 11111111.11111111.00000000.00000000

NAT เป็นตัวแรกที่มีชื่อเสียงในการแก้ไขการขาดแคลน IPv4 และช่วยแทนที่ Private Address ที่ใช้งานภายในให้กลายเป็น Public Address ที่ใช้ติดต่อสู่โลกอินเทอร์เน็ตได้ ซึ่งเร้าเตอร์ในเครือข่ายอินเทอร์เน็ตต้องใช้ Public Address จึงจะส่งเร้าต์แพ็ตเก็ตกลับมาได้

NAT เหมาะสำหรับภายในบ้าน และหน่วยงานองค์กร สำหรับเชื่อมต่ออินเทอร์เน็ต โดยที่เครื่องลูกข่ายไม่จำเป็นต้องการออกไปภายนอกเครือข่ายพร้อม ๆ กันในเวลาเดียวกัน NAT เพิ่มความปลอดภัยเครือข่ายภายในด้วยการแปลงเลข IP ทราฟฟิกภายนอกทั้งหมด ก่อให้เกิดจากการทำงานของ gateway

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

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 ใช้กฎของโปรโตคอล สำหรับการสร้างการจับคู่ และแปลงตำแหน่งทั้งสองฝ่าย

การทำงานของ ARP
เมื่อแพ็คเกตนำเข้าที่ระบุเครื่อง host ในระบบเครือข่ายมาถึง Gateway เครื่องที่ Gateway จะเรียกโปรแกรม ARP ให้หาเครื่อง host หรือ MAC address ที่ตรงกับ IP address โปรแกรม ARP จะหาใน ARP cache เมื่อพบแล้วจะแปลงแพ็คเกต เป็นแพ็คเกตที่มีความ ยาวและรูปแบบที่ถูกต้อง เพื่อส่งไปยังเครื่องที่ระบุไว้ แต่ถ้าไม่พบ ARP จะกระจาย แพ็คเกตในรูปแบบพิเศษ ไปยังเครื่องทุกเครื่องในระบบ และถ้าเครื่องใดเครื่องหนึ่งทราบว่ามี IP address ตรงกันก็จะตอบกลับมาที่ ARP โปรแกรม ARP จะปรับปรุง ARP cache และส่งแพ็คเกตไปยัง MAC address หรือเครื่องที่ตอบมา

เนื่องจากแต่ละโปรโตคอลมีรายละเอียดที่แตกต่างกันตามประเภทของ LAN ดังนั้นจึงมี การแยก ARP Request for Comments ตามประเภทของโปรโตคอลสำหรับ Ethernet, asynchronous transfer mode, Fiber Distributed-Data Interface, HIPPI และโปรโตคอลอื่น

ส่วน Reverse ARP สำหรับเครื่อง host ที่ไม่รู้จัก IP address นั้น RARP สามารถให้เครื่อง เหล่านี้ขอ IP address จาก ARP cache ของ Gateway

วิธีที่จะทำให้เกิด Routing Table





วิธีที่จะทำให้เกิด Routing Table นั้นมีอยู่ 2 วิธีด้วยกันคือ




1. Static Route วิธีนี้ผู้ดูแลระบบจะต้องทำการสร้าง Routing Entry เข้าไปไว้ใน Routing Table เองครับ




2. Dynamic Route วิธี นี้เป็นการสั่งให้ Routing protocol ทำงาน แล้วแต่ว่าเราจะใช้ protocol อะไร เช่น RIP,OSPF,IGRP เป็นต้น ซึ่ง protocol เหล่านี้จะทำการเรียนรู้เส้นทางเกี่ยวกับ Subnet Address ต่างๆ จาก Router เพื้อนบ้าน

การสร้าง Static Route


เอาง่ายๆไม่เยิ่นเยอเพราะผมขี้เกียจพิมพ์ซะแล้ว เรามาดูโครงสร้างของ Static Route และ รูปประกอบเลยดีกว่าครับ


โครงสร้างของ Static Route เป็นดังนี้ครับ


ip route < Subnet Mask ปลายทาง > < ip interface ของ router ที่จะออก >

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

Week 11 : Chapter 6 Network and Transport Layers

Middleware
Middleware คือโปรแกรมที่ทำหน้าที่สนับสนุนให้แอพพลิเคชันต่างๆ สามารถทำงานร่วมกันหรือแลกเปลี่ยนข้อมูลระหว่างกันได้ ตัวอย่างของ Middleware เช่น ODBC drivers รวมถึง Microsoft .NET Framework เวอร์ชันต่างๆ โดย Middelware ก็เป็นองค์ประกอบหนึ่งที่ควรทำการอัพเดทเป็นประจำ

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

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

Network Layer Function
- หาเส้นทางที่ดีที่สุดในการเชื่อมต่อ
- หาที่อยู่ของคอมพิวเตอร์เครื่องที่จะสื่อสารในลำดับถัดไป
# Addressing
- ในแต่ละ layer จะมีรูปแบบ address ของตนเอง
- Application แสดงที่อยู่ในรูป url
- Network Layer แสดงในรูป IP โดยได้รับจากอุปกรณ์ หรือโปรแกรม
- Datalink Layer แสดงในรูป MAC ที่ไม่สามารถเปลี่ยนแปลงได้
# Assigning Addresses
- Internet Addresses จะได้รับเป็นชุด
- Subnets ที่เหมือนกันจะอยู่ในวงแลนเดียวกัน เช่น 128.192.55.20 , 128.192.55.21
- Subnet Mask คือเลขหลักในการระบุว่า subnet จะกว้างแค่ไหน เช่น 255.255.255.0 แสดงว่า subnet คือ 3 ชุดแรก
- Dynamic Addressing คือการแจกเลข IP โดยอัตโนมัติ ผ่านอุปกรณ์หรือ software เช่น DHCP
# Address Resolution
- DNS จะทำหน้าที่เก็บว่า Address ใน Application Layer ตรงกับ IP ใด
- ทันทีที่ข้อมูลมาถึงยัง Gateway ที่อยู่ subnet เดียวกับเป้าหมาย TCP/IP Software จะทำหน้าที่ประกาศ IP ที่ต้องการจะสื่อสารด้วย และให้เป้าหมายที่มี IP ดังกล่าว ระบุ MAC Address ตนเองออกมา

Protocol
- Protocol หลักๆ คือ TCP/IP TCP อยู่ใน Transport Layer IP อยู่ในNetwork Layer
- TCP จะประกอบด้วย source port, destintion port,sequence number เป็นส่วนสำคัญ รวม header ขนาด 192 bit
- IPv4 มีขนาด 192 bit
- IPv6 มีขนาด 320 bit

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 ยังไม่มีการใช้

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

Week 10 : Chapter 6 Network and Transport Layers

Introduction - Transport layer
Responsible for segmentation and reassembly
Transport Layer
แบ่งเป็นโพรโตคอล 2 ชนิดตามลักษณะ ลักษณะแรกเรียกว่า Transmission Control Protocol (TCP) กำหนดช่วงการสื่อสารตลอดระยะเวลาการสื่อสาร (connection-oriented) มีการส่งข้อมูลเป็นแบบ Byte stream ข้อมูลถูกแบ่งเป็นส่วนๆ เรียกว่า Message ซึ่งจะถูกส่งไปยังผู้รับ นำมาเรียงต่อกันเป็นลำดับ
โปรโตคอลการนำส่งข้อมูลแบบที่สองเรียกว่า UDP (User Datagram Protocol) เป็นการติดต่อแบบไม่ต่อเนื่อง (connectionless) วิธีการนี้มีข้อดีในด้านความรวดเร็วในการส่งข้อมูล จึงนิยมใช้ในระบบผู้ให้และผู้ใช้บริการ (client/server system) ซึ่งมีการสื่อสารแบบ ถาม/ตอบ (request/reply) นอกจากนั้นยังใช้ในการส่งข้อมูลประเภทภาพเคลื่อนไหวหรือการส่งเสียง (voice) ทางอินเทอร์เน็ต
Transport services and protocols
-หน้าที่ของ transport layer คือ เป็นการสื่อสารระหว่าง application process ที่รันอยู่บน end host คนละตัว

Internet transport-layer protocols
-TCP
-เชื่อถือได้ , เรียงลำดับข้อมูล
-congestion control , flow control , ทำการ connection setup
-UDP
-ไม่เรียงลำดับ , เชื่อถือได้ไม่ 100%
-best effort
-ไม่รับรอง ความเร็ว ช่องสัญญาณ

Network layer
Network Layer เป็นชั้นที่ว่าด้วยการแยกแยะความแตกต่างของคอมพิวเตอร์แต่ละตัวในเครือข่าย โดยอาศัยโดยอาศัยหมายเลขประจำเครื่องหรือ Address และยังกำหนดเส้นทางในการวิ่งของข้อมูลในเครือข่ายจากต้นทางถึงปลายทาง ข้อมูลในชั้นนี้จะเรียกว่า “แพ็กเก็ต” (Packet)

Transport vs. network layer
-network layer ทำหน้าที่ สื่อสารระหว่าง host
-transport layer ทำหน้าที่ สื่อสารระหว่าง process

TCP/IP: Transmission Control Protocol/Internet Protocol ใช้ในอินเตอร์เนต
IPX/SPX: Internet Packet Exchange/Sequenced Packet Exchange
X.25: X.25 เป็นกลุ่มของโปรโตคอลใช้ในเครือข่ายแบบ packet switching
SNA(System Network Architecture) คือ สถาปัตยกรรมการเชื่อมต่อข้อมูลที่ใช้ในระบบ Mainframe ของ IBM พัฒนาขึ้นมาในปี 1974 โดยใช้มาตรฐานการส่งแบบ SDLC(Synchronous Data Link Control) ผ่านโปรโตคอลแบบ APPC(Advanced Program to Program Communication,โปรโตคอลภายใน SNA ที่สร้างสภาวะให้โปรแกรมสามารถทำงานข้ามเครือข่ายได้)

TCP Connection management
เนื่องจาก TCP เป็นโปรโตคอลแบบ Connection-oriented จึงจำเป็นต้องมีการสร้างการเชื่อมต่อ
ก่อนเริ่มส่งข้อมูล โดย Client จะร้องขอสร้างการเชื่อมต่อไปยัง Server ก่อน และเมื่อ Server ตอบรับจึงจะเริ่ม
มีการส่งข้อมูล
TCP จะอาศัยกลไก Three-way handshake ในการสร้างการเชื่อมต่อซึ่งจะมี flag ที่เกี่ยวข้อคือ
SYN flag และระหว่างขั้นตอนนี้เองที่จะมีการกำหนดค่าเริ่มต้นในการเชื่อมต่อต่างๆได้แก่ sequence number,
MSS, window size ในส่วนของการตัดการเชื่อมต่อ TCP จะอาศัยการส่งข้อมูล 3-4 segment ซึ่งจะมี flag ที่
เกี่ยวข้องคือ FIN flag
User Datagram Protocol (UDP) เป็นโปรโตคอลหลักในชุดโปรโตคอลอินเทอร์เน็ต การส่งข้อมูลผ่าน UDP นั้น คอมพิวเตอร์จะส่งข้อมูลขนาดเล็กที่เรียกว่า เดต้าแกรม (datagram) ผ่านเครือข่ายไปยังเครื่องปลายทาง โดย UDP จะไม่รับประกันความน่าเชื่อถือและลำดับของเดต้าแกรม อย่างที่ TCP รับประกัน ซึ่งหมายความว่าเดต้าแกรมอาจมาถึงไม่เรียงลำดับ หรือสูญหายระหว่างทางได้
แอปพลิเคชันที่ใช้ UDP เป็นฐานในการส่งข้อมูลคือ Domain Name System (DNS), Streaming media, Voice over IP และเกมออนไลน์
Quality-of-Service (QoS)
QoS เป็นตัวที่แสดงถึงประสิทธิภาพของการติดต่อสื่อสารระหว่างผู้ส่งและผู้รับ โดยจะเป็นตัวควบคุมและกำหนดคุณภาพการไหลของข้อมูลให้เป็นไปตามเงื่อนไขที่ ต้องการ คุณสมบัติที่ควรคำนึงถึงในการไหลของข้อมูลผ่านเครือข่ายที่เป็นจะตัวกำหนด ประสิทธิภาพการติดต่อสื่อสารนั้น
Asynchronous Transfer Mode หรือ ชื่อย่อ ATM เป็นเครือข่ายสื่อสาร ที่ใช้โพรโทคอลชื่อเดียวกันคือ ATM เป็นมาตรฐานการส่งข้อมูลความเร็วสูง โดย ATM ถูกพัฒนามาเพื่อให้ใช้กับงานที่มีลักษณะ ข้อมูลหลายรูปแบบและต้องการความเร็วในการส่งข้อมูลสูงมากๆ
Protocols Supporting QoS
TCP/IP protocol suite
• Resource Reservation Protocol (RTSP)
• Real-Time Streaming Protocol (RTSP)
• Real-Time Tranport Protocol(RTP)