ShareKnowledge
คลิ๊กที่ภาพ


เพื่อใครมีความตั้งใจไปสอบ CCNA หรือเพื่อศึกษาเตรียมตัวไปสอบ

กระบวนการ IP Routing Process (CCNA)
----------------------------------------------

กระบวนการ IP Routing Process พูดอย่างง่ายก็คือ กรรมวิธีการในการที่แพคเกตข้อมูลนั้น ได้ถูกส่งออกจากต้นทางออกไปยังปลายทางผ่านโปรโตคอล IP ซึ่งท่านที่ต้องการศึกษาในเรื่อง Computer Network นั้น IP Routing Process ถือเป็นเรื่องสำคัญเรื่องหนึ่งเลยทีเดียว ซึ่งกระวนการที่จะนำเสนอต่อไปนี้ก็คือ เป็นการลงรายละเอียดปลีกย่อยต่างๆ ในการ Routing

ในตัวอย่างนี้ จะยกตัวอย่างถึงกรณีที่ Host A ต้องการ PING ไปยัง IP Address ของ Host B ซึ่งจะแสดงกระบวนการตั้งแต่ต้นจนจบได้ดังนี้

1. Internet Control Message Protocol (ICMP) ทำการสร้าง Echo Request Payload ขึ้นมา (โดยมีการใส่ Protocol Field เป็น ICMP Type ไว้ที่ IP Datagram ด้วย)

2. โปรโตคอล ICMP นำ Data Payload ใส่ลงไปใน IP Datagram และทำการ Encapsulation เป็น Packet ซึ่งใน IP Datagram นั้นทำการเก็บ IP ต้นทาง (IP Source Address) และ IP ปลายทาง (IP Destination Address) และ Protocol Field ที่ถูกเซตเป็น 0x01 (ซึ่งเป็นตัวบอกว่า Protocol Field นี้คือ ICMP)

3. เมื่อ Packet นั้นถูกสร้างขึ้น โปรโตคอล IP นั้นจะทำการ Logical AND กันระหว่าง IP ต้นทางและ IP ปลายทางว่า อยู่ภายใน Network เดียวกันหรือไม่ หรืออยู่ต่าง Subnet กัน (ในที่นี้ หมายถึง 172.16.10.2 ต้องการ Ping ไปยัง 172.16.20.2)

4. เมื่อโปรโตคอล IP นั้นพิจารณาได้ว่า มันอยู่คนละ Subnet กัน ดังนั้นแพคเกตที่สร้างขึ้น จำเป็นจะต้องถูกส่งออกไปยังปลายทางแรกสุดที่เรียกว่า “Default Gateway” ซึ่ง Registry ของ Windows นั้น จะทำการค้นหา Default Gateway ที่ได้ถูก Configured ไว้

5. Default Gateway ของ Host A (172.16.10.2) ตามภาพ ได้ถูกคอนฟิกไว้เป็น Interface E0 ของเราเตอร์ ซึ่งมี IP Address เป็น 172.16.10.1 ดังนั้น Host A จึงสามารถส่ง packet ออกไปยัง Default Gateway นี้ได้ทันที แต่ เนื่องจากการส่งข้อมูลออกจาก Interface ต้นทางออกไปยังปลายทางใดๆ นั้น เราจำเป็นที่จะต้องรู้หมายเลข Hardware Address เสียก่อน (ในที่นี้ Host A จำเป็นที่จะต้องรู้หมายเลข Hardware Address ของ Interface E0 ของเราเตอร์ให้ได้ เนื่องจากเมื่อ Packet ได้ทำการ Encapsulation ลงไปยังชั้น Data Link Layer เป็นเฟรม (Frame) แล้วนั้น Host จำเป็นที่จะต้องติดต่อผ่านกันทาง Hardware Address ทางกายภาพเท่านั้น) ดังนั้น Host A จึงจำเป็นที่จะต้องรู้หมายเลข Hardware Address หรือในทางคอมพิวเตอร์ก็คือ หมายเลข MAC Address ของ Interface E0 ของเราเตอร์ให้ได้เสียก่อน

6. Host นั้น มีการรัน ARP (Address Resolution Protocol เป็นโปรโตคอลในการค้นหา และจับคู่หมายเลข IP Address เข้ากับ MAC Address) ที่เก็บอยู่ใน Cache ของตนเองเพื่อค้นหาว่า ใน Cache ของตนนั้นมีการเก็บ Hardware Address ของหมายเลข IP Address 172.16.10.1 ไว้หรือไม่ ซึ่งทางเลือกนั้นมีอยู่สองทาง คือ

- หากมีการ Cache MAC Address ไว้ แพคเกตข้อมูลจะถูกส่งลง Data Link Layer ทันทีเพื่อทำการห่อหุ้ม (Encapsulation) เป็นเฟรม ซึ่งในเฟรมนั้นมีการบรรจุหมายเลข MAC Address ของปลายทางไว้ด้วย

- หากไม่มีการ Cache MAC Address ไว้ Host A จะทำการ Broadcast ARP ออกไปยัง Subnet ของตนเองทั้งหมดเพื่อค้นหา MAC Address ของ IP Address 172.16.10.1 และ อินเทอร์เฟซ E0 ของเราเตอร์ ที่อยู่ภายใน Subnet เดียวกันนั้น ได้ตอบสนองกลับมาและได้ให้หมายเลข MAC Address ของ อินเทอร์เฟซ E0 ของตนเองมาด้วย ซึ่ง Host A นั้นก็ได้ทำการ Cache MAC Address ของเราเตอร์ E0 ไว้ และทางเราเตอร์ก็ทำการ Cache MAC Address ของ Host A ไว้เช่นเดียวกัน (จากการทำ ARP Broadcast เมื่อสักครู่นี้)

7. จากขั้นตอนที่ 6 เราจะได้ MAC Address ของ Router Interface E0 มาใส่ใน Frame Header แล้ว ต่อมาก็เป็นหน้าที่ของ LAN Driver ที่จะคอนโทรลเฟรมให้อยู่ในรูปแบบของ Media Type หรือ สื่อประสมที่ใช้ใน Host นั้นๆ (ในที่นี้คือ Ethernet) และเมื่อเฟรมนั้นถูก Encapsulation เป็นที่เรียบร้อยแล้ว ซึ่งประกอบไปด้วย MAC Address ต้นทาง, MAC Address ปลายทาง, ประเภทของ Media และ Data รวมถึงจุดท้ายสุดในการตรวจเช็คความผิดพลาดของเฟรม หรือที่เรียกว่า Frame Check Sequence (FCS)

8. เฟรมได้ถูกปล่อยออกจาก Physical Interface ในระดับชั้น Physical Layer โดยผ่านทางสาย Twist-Pair (สายเกลียวคู่ Cat5) โดยส่งทีละ 1 บิท

9. ทุกๆ Devices ในโดเมนปะทะ (Collision Domain) นั้น จะได้รับ Frame นี้ด้วยกันทั้งหมด (ในที่นี้ หมายถึง Interface E0 ของเราเตอร์) และ ทำการ Re-Assemble บิท ขึ้นมาใหม่เป็นเฟรม และทำการรัน CRC (Cyclic Redundancy Check) ว่าเฟรมนั้นได้รับมาถูกต้องหรือไม่ หากว่า Frame นั้น ไม่ใช่ของตนหรือไม่ถูกต้อง ก็จะ Discard Frame ทิ้งไป

- แต่หากว่า CRC ที่ตรวจสอบได้นั้นถูกต้อง ก็จะทำการค้นหา Protocol ที่อยู๋ใน Frame ที่ Network Layer นั้นใช้อยู่ (เช่น IP)

10. ส่วนที่เป็น Packet จะถูกดึงออกจาก Frame และจะทำการ Discard Frame ส่วนที่ดึงออกไป โดยที่หลังจากนั้น packet จะถูกมองหา Protocol ที่ถูกใช้งานใน Network Layer ในที่นี้คือ IP

11. Protocol IP ได้รับ packet และตรวจดูว่า Destination IP Address นั้นอยู่ที่ใด ซึ่งถ้าหากว่า Destination IP Address ที่ได้รับมานั้น ไม่ตรงกันกับ IP Address ที่ถูกด Configure ที่ Interface ที่ตัวมันรับเข้ามา มันก็จะไปทำการค้นหา Destination IP Network Address ใน Routing Table

12. ภายใน Routing Table นั้น ย่อมมี IP Network Address ของ 172.16.20.0 อยู่แล้ว เนื่องจากเป็น Interface ที่ตัวมันต่อตรงอยู่ แต่ถ้าหากว่า ไม่มี 172.16.20.0 มันก็จะรีบทำการ Discard ICMP Packet ทิ้งไปทันที และสร้าง ICMP Message กลับไปยังต้นทางโดยเป็น message ว่า “Destination Network Unreachable”

13. เมื่อเราเตอร์รับรู้ว่า ภายใน Routing Table นั้นมี IP Network Address 172.16.20.0 อยู่ ตัวมันเองนั้นก็จะทำการ Switch ไปยัง Interface ที่เป็นขาออกของมันทันที ในที่นี้คือ Interface E1

14. เราเตอร์จะทำการ Buffer Packet ไปยัง Interface E1

15. Buffer ของ Interface E1 นั้น ต้องการที่จะทราบหมายเลข MAC Address ของปลายทาง ดังนั้นมันจึงทำการหา MAC Address จาก ARP Cache เสียก่อน

- หากว่า มีการ Cache MAC Address ไว้ที่ Router แล้ว packet ที่อยู่ใน Buffer ก็จะทำการ Encapsulation ลงมาที่ Data Link Layer เพื่อสร้าง Frame ได้ทันที

- หากว่ายังไม่มีการทำ Cache ไว้ ก็จะมีการส่ง ARP Request ไปยัง ทุกๆ Host ใน Broadcast Domain เหมือนดังขั้นตอนที่ 6 ซึ่งสุดท้ายแล้ว Host B ก็จะตอบหมายเลข MAC Address ของตนเองกลับมาที่ Router และต่างคนต่าง Cache กันและกันไว้

16. เราจะได้ MAC Address ของ Host B มาใส่ใน Frame Header แล้ว ต่อมาก็เป็นหน้าที่ของ LAN Driver ที่จะคอนโทรลเฟรมให้อยู่ในรูปแบบของ Media Type หรือ สื่อประสมที่ใช้ใน Host นั้นๆ (ในที่นี้คือ Ethernet) และเมื่อเฟรมนั้นถูก Encapsulation เป็นที่เรียบร้อยแล้ว ซึ่งประกอบไปด้วย MAC Address ต้นทาง, MAC Address ปลายทาง, ประเภทของ Media และ Data รวมถึงจุดท้ายสุดในการตรวจเช็คความผิดพลาดของเฟรม หรือที่เรียกว่า Frame Check Sequence (FCS) และเฟรมได้ถูกปล่อยออกจาก Physical Interface ในระดับชั้น Physical Layer โดยผ่านทางสาย Twist-Pair (สายเกลียวคู่ Cat5) โดยส่งทีละ 1 บิท

17. Host B นั้นได้รับเฟรม และรีบทำการรัน CRC เพื่อเช็ค Error จากนั้นก็จะทำการเช็ค MAC Address ซึ่งหากถูกต้องทั้งหมด ก็จะทำการเช็ค Protocol ที่อยู่ในชั้น Network Layer ในที่นี้คือ IP

18. บนชั้น Network Layer นั้น IP จะได้รับการเช็คว่า ตรงกันหรือไม่ และเมื่อตรงกันทุกอย่างแล้ว ก็จะทำการอ่าน Payload หรือข้อมูลอันนั้นๆ

19. ใน Payload นั้น คือ ข้อมูลของ ICMP ที่เข้าใจกันว่ามันคือ ICMP Echo Request ซึ่ง จะมีการตอบสนองทันทีโดยการส่ง ICMP Echo Reply กลับไป โดยที่มีการ Generate Payload หรือข้อมูลใหม่เป็น ICMP Echo Reply

20. โปรโตคอล ICMP นำ Data Payload ใส่ลงไปใน IP Datagram และทำการ Encapsulation เป็น Packet ซึ่งใน IP Datagram นั้นทำการเก็บ IP ต้นทาง (IP Source Address) และ IP ปลายทาง (IP Destination Address) และ Protocol Field ที่เป็นตัวบอกว่า Protocol Field นี้คือ ICMP

21. เมื่อ Packet นั้นถูกสร้างขึ้น โปรโตคอล IP นั้นจะทำการ Logical AND กันระหว่าง IP ต้นทางและ IP ปลายทางว่า อยู่ภายใน Network เดียวกันหรือไม่ หรืออยู่ต่าง Subnet กัน (ในที่นี้ หมายถึง 172.16.20.2 ต้องการ ICMP Echo Reply ไปยัง 172.16.10.2)

22. เมื่อโปรโตคอล IP นั้นพิจารณาได้ว่า มันอยู่คนละ Subnet กัน ดังนั้นแพคเกตที่สร้างขึ้น จำเป็นจะต้องถูกส่งออกไปยังปลายทางแรกสุดที่เรียกว่า “Default Gateway” ซึ่ง Registry ของ Windows นั้น จะทำการค้นหา Default Gateway ที่ได้ถูก Configured ไว้

23. Default Gateway ของ Host B (172.16.20.2) ตามภาพ ได้ถูกคอนฟิกไว้เป็น Interface E1 ของเราเตอร์ ซึ่งมี IP Address เป็น 172.16.20.1 ดังนั้น Host B จึงสามารถส่ง packet ออกไปยัง Default Gateway นี้ได้ทันที แต่ เนื่องจากการส่งข้อมูลออกจาก Interface ต้นทางออกไปยังปลายทางใดๆ นั้น เราจำเป็นที่จะต้องรู้หมายเลข Hardware Address เสียก่อน (ในที่นี้ Host B จำเป็นที่จะต้องรู้หมายเลข Hardware Address ของ Interface E1 ของเราเตอร์

24. Host นั้น มีการรัน ARP (Address Resolution Protocol เป็นโปรโตคอลในการค้นหา และจับคู่หมายเลข IP Address เข้ากับ MAC Address) ที่เก็บอยู่ใน Cache ของตนเองเพื่อค้นหาว่า ใน Cache ของตนนั้นมีการเก็บ Hardware Address ของหมายเลข IP Address 172.16.10.1 ไว้หรือไม่ ซึ่งในขณะนี้มีการ Cache MAC Address ไว้แล้ว ดังนั้น แพคเกตข้อมูลจะถูกส่งลง Data Link Layer ทันทีเพื่อทำการห่อหุ้ม (Encapsulation) เป็นเฟรม ซึ่งในเฟรมนั้นมีการบรรจุหมายเลข MAC Address ของปลายทางไว้ด้วย

25. เราจะได้ MAC Address ของ Router Interface E1 มาใส่ใน Frame Header แล้ว ต่อมาก็เป็นหน้าที่ของ LAN Driver ที่จะคอนโทรลเฟรมให้อยู่ในรูปแบบของ Media Type หรือ สื่อประสมที่ใช้ใน Host นั้นๆ (ในที่นี้คือ Ethernet) และเมื่อเฟรมนั้นถูก Encapsulation เป็นที่เรียบร้อยแล้ว ซึ่งประกอบไปด้วย MAC Address ต้นทาง, MAC Address ปลายทาง, ประเภทของ Media และ Data รวมถึงจุดท้ายสุดในการตรวจเช็คความผิดพลาดของเฟรม หรือที่เรียกว่า Frame Check Sequence (FCS)

26. เฟรมได้ถูกปล่อยออกจาก Physical Interface ในระดับชั้น Physical Layer โดยผ่านทางสาย Twist-Pair (สายเกลียวคู่ Cat5) โดยส่งทีละ 1 บิท

- ทุกๆ Devices ในโดเมนปะทะ (Collision Domain) นั้น จะได้รับ Frame นี้ด้วยกันทั้งหมด (ในที่นี้ หมายถึง Interface E1 ของเราเตอร์) และ ทำการ Re-Assemble บิท ขึ้นมาใหม่เป็นเฟรม และทำการรัน CRC (Cyclic Redundancy Check) ว่าเฟรมนั้นได้รับมาถูกต้องหรือไม่ จากนั้น ก็จะทำการค้นหา Protocol ที่อยู๋ใน Frame ที่ Network Layer นั้นใช้อยู่ (เช่น IP)

27. ส่วนที่เป็น Packet จะถูกดึงออกจาก Frame และจะทำการ Discard Frame ส่วนที่ดึงออกไป โดยที่หลังจากนั้น packet จะถูกมองหา Protocol ที่ถูกใช้งานใน Network Layer ในที่นี้คือ IP

28. Protocol IP ได้รับ packet และตรวจดูว่า Destination IP Address นั้นอยู่ที่ใด ซึ่งถ้าหากว่า Destination IP Address ที่ได้รับมานั้น ไม่ตรงกันกับ IP Address ที่ถูกด Configure ที่ Interface ที่ตัวมันรับเข้ามา มันก็จะไปทำการค้นหา Destination IP Network Address ใน Routing Table

29. เมื่อเราเตอร์รับรู้ว่า ภายใน Routing Table นั้นมี IP Network Address 172.16.10.0 อยู่ ตัวมันเองนั้นก็จะทำการ Switch ไปยัง Interface ที่เป็นขาออกของมันทันที ในที่นี้คือ Interface E0

30. เราเตอร์จะทำการ Buffer Packet ไปยัง Interface E0

31. Buffer ของ Interface E0 นั้น ต้องการที่จะทราบหมายเลข MAC Address ของปลายทาง ดังนั้นมันจึงทำการหา MAC Address จาก ARP Cache เสียก่อน

ซึ่งมีการ Cache MAC Address ไว้ที่ Router แล้ว packet ที่อยู่ใน Buffer ก็จะทำการ Encapsulation ลงมาที่ Data Link Layer เพื่อสร้าง Frame ได้ทันที

32. เราจะได้ MAC Address ของ Host A มาใส่ใน Frame Header แล้ว ต่อมาก็เป็นหน้าที่ของ LAN Driver ที่จะคอนโทรลเฟรมให้อยู่ในรูปแบบของ Media Type หรือ สื่อประสมที่ใช้ใน Host นั้นๆ (ในที่นี้คือ Ethernet) และเมื่อเฟรมนั้นถูก Encapsulation เป็นที่เรียบร้อยแล้ว ซึ่งประกอบไปด้วย MAC Address ต้นทาง, MAC Address ปลายทาง, ประเภทของ Media และ Data รวมถึงจุดท้ายสุดในการตรวจเช็คความผิดพลาดของเฟรม หรือที่เรียกว่า Frame Check Sequence (FCS) และเฟรมได้ถูกปล่อยออกจาก Physical Interface ในระดับชั้น Physical Layer โดยผ่านทางสาย Twist-Pair (สายเกลียวคู่ Cat5) โดยส่งทีละ 1 บิท

33. Host A นั้นได้รับเฟรม และรีบทำการรัน CRC เพื่อเช็ค Error จากนั้นก็จะทำการเช็ค MAC Address ซึ่งหากถูกต้องทั้งหมด ก็จะทำการเช็ค Protocol ที่อยู่ในชั้น Network Layer ในที่นี้คือ IP

34. บนชั้น Network Layer นั้น IP จะได้รับการเช็คว่า ตรงกันหรือไม่ และเมื่อตรงกันทุกอย่างแล้ว ก็จะทำการอ่าน Payload หรือข้อมูลอันนั้นๆ

35. ใน Payload นั้น คือ ข้อมูลของ ICMP ที่เข้าใจกันว่ามันคือ ICMP Echo Reply

36. ICMP จะทำการ Acknowledgement โดยการ Reply เครื่องหมาย ! ออกหน้าจอให้ผู้ใช้งานเห็น ซึ่งหลังจากนี้ ICMP จะพยายามส่งข้อมูลดังขั้นตอนที่ 1 – 35 ใหม่ จนครบ 5 ครั้ง (Ping ใน Cisco Router จะ ทำการ Echo Request + Echo Reply 5 ครั้ง)

นั่นคือ 36 Step ที่ใช้ในการส่งข้อมูลจาก Host หนึ่งไปยังอีก Host หนึ่ง ผ่านกระบวนการ IP Routing Process นะครับ หวังว่าข้อมูลเหล่านี้จะเป็นประโยชน์กับท่านๆไม่มากไม่น้อยนะครับ

 ที่มา : http://www.thaibsd.com/webboard/show.php?Category=thaibsd&No=6810