การส่งข้อมูลของ
TCP/IP
มีรูปแบบการส่งข้อมูลเป็นแบบอุปกรณ์ต่ออุปกรณ์
โดยอุปกรณ์ที่ทำงานในเลเยอร์ของ IP
ในระบบเครือข่ายคืออุปกรณ์เราเตอร์ (router)
โดยเมื่อข้อมูลถูกส่งมาถึงเราเตอร์แล้ว เราเตอร์จะพิจารณาเฉพาะเราเตอร์ที่อยู่ข้างเคียงเท่านั้น
และมีการแก้ไขข้อมูลโดยอัตโนมัติเมื่อมีการปรับเปลี่ยนโครงสร้างของเครือข่ายที่เกี่ยวข้อง
ซึ่งทำให้เครือข่าย IP
เป็นเครือข่ายที่มีความยืดหยุ่นสามารถปรับเปลี่ยนได้ง่าย
อุปกรณ์ในเครือข่าย
IP
ถ้ามองในระดับของเลเยอร์ IP
แล้วอาจจะแยกออกได้ 2 ประเภทคือ Host
เป็นอุปกรณ์ที่ทำหน้าที่เป็นผู้ส่งหรือผู้รับข้อมูล ข้อมูล source
IP address และ destination IP address
ในเฮดเดอร์ของ IP คือการกำหนดโฮสท์ต้นทางและปลายทาง
และอุปกรณ์อีกประเภทหนึ่งคือ เราเตอร์
ซึ่งทำหน้าที่ในการส่งผ่านข้อมูลจากเน็ตเวิร์คหนึ่ง
ไปยังอีกเน็ตเวิร์คหนึ่ง โดยตำแหน่งของเราเตอร์จะเป็นจุดเชื่อมต่อระหว่างเน็ตเวิร์ค
เนื่องจากข้อกำหนดของโปรโตคอล IP
ที่มีข้อมูลระหว่าง 2 เน็ตเวิร์คจะไม่สามารถส่งผ่านถึงกันโดยตรงได้
การส่งผ่านข้อมูลระหว่างเน็ตเวิร์คจึงจำเป็นที่ต้องใช้เราเตอร์ในการส่งผ่าน
นอกจากนี้ยังสามารถใช้เราเตอร์ในการกำหนดกฎการส่งผ่านข้อมูล (access-list)
ของเน็ตเวิร์คได้ด้วย
เพื่อเป็นการรักษาความปลอดภัยของเน็ตเวิร์ค
เน็ตเวิร์คในโปรโตคอล
IP
จะมีการระบุหมายเลข IP
ของเน็ตเวิร์ค เพื่อให้เราเตอร์สามารถส่งผ่านข้อมูลได้ถูกต้อง เนื่องจากเราเตอร์ทำหน้าที่ส่งผ่านข้อมูลระหว่างเน็ตเวิร์คเท่านั้น
โดยจะพิจารณาว่าโฮสท์ปลายทางอยู่ในเน็ตเวิร์คใด ดังนั้น
ถ้ามีการกำหนดหมายเลข IP ของโฮสท์ที่ไม่เหมาะสมกับเน็ตเวิร์คที่โฮสท์นั้นสังกัดอยู่
ข้อมูลจะไม่สามารถส่งจากเน็ตเวิร์คอื่นมายังโฮสท์นั้นได้
ในอุปกรณ์เราเตอร์จะมีข้อมูลกำหนดเส้นทางเรียกว่า
routing table
ซึ่งจะช่วยให้การส่งข้อมูลไปยังเส้นทางที่ดีที่สุดซึ่งจะประกอบด้วยข้อมูลที่สำคัญดังนี้
-
Destination IP Address แอดเดรสของเน็ตเวิร์คปลายทาง
-
IP
Address of Next-hop Router คือ หมายเลข IP
ของเราเตอร์ถัดไป
-
Net
mask ค่าเนตมาร์ค
-
Flags
เป็นข้อมูลส่วนขยายเพิ่มเติมของ destination IP
address และ next-hop router
-
Interface คือ อินเทอร์เฟชของเราเตอร์ที่ใช้ในการส่ง
datagram
เช่น
Destination |
Gateway |
Netmask |
Flags |
Iface |
161.246.26.0 161.246.26.1 255.255.255.0 U el
0.0.0.0 161.246.1.1 0.0.0.0 UG
s0
เมื่อมี
datagram เข้ามายังเราเตอร์แล้ว
จะนำ datagram IP address
ของ datagram ทำการ AND
กับ netmask ซึ่งจะทำให้ได้ค่าแอดเดรส IP
ของเน็ตเวิร์ค
จากนั้นจะนำไปเทียบกับค่าในตารางตามลำดับและเลือกเส้นทางที่ตรงกับค่าหมายเลข
IP ของเน็ตเวิร์คแรกที่พบ เช่น
ถ้าต้องการส่งข้อมูลไปยังโฮสท์ 161.246.26.0 เป็นค่าหมายเลข IP
ของเน็ตเวิร์ค ดังนั้นข้อมูลนี้จึงถูกส่งออกไปยังอินเทอร์เฟช
e1 โดยมีค่า net-hop คือ
161.246.26.1
ในกรณีที่ไม่สามารถหาหมายเลข
IP
เน็ตเวิร์คที่เหมาะสมได้ เราเตอร์จะมีการกำหนด
default router
ซึ่งจะเป็นเส้นทางที่ถูกเลือกในกรณีที่ไม่พบทางเลือกอื่นที่เหมาะสม
โดยจะกำหนดค่า destination IP address เป็น 0.0.0.0
หรืออาจจะกำหนดเป็น default ก็ได้
จะเห็นว่าเราเตอร์ไม่จำเป็นต้องเก็บข้อมูล
router table ของทุกเน็ตเวิร์คไว้
แต่จะเก็บเฉพาะข้อมูลของเราเตอร์ข้างเคียงที่ต่อเชื่อมอยู่
การส่งข้อมูลจะพิจารณาเป็นช่วงๆ จาก hop หนึ่ง
ไปอีก hop หนึ่ง ซึ่งถ้าเราเตอร์มีข้อมูลในตาราง
routing table ที่ถูกต้องแล้ว
ข้อมูลจะสามารถไปถึงเป้าหมายได้เสมอ
แต่อาจจะไม่ใช่เส้นทางเดียวกันในการส่งแต่ละครั้ง ขึ้นอยู่กับ
routing protocol ที่ใช้
การกำหนด
routing table มี 2
รูปแบบคือ การกำหนดแบบ static routing
โดยผู้ดูแลระบบเครือข่ายจะเป็นผู้กำหนดค่าใน routing table
เอง โดยไม่มีการเปลี่ยนแปลงในระหว่างการใช้งาน
ใช้ในกรณีที่การส่งข้อมูลระหว่างเน็ตเวิร์คมีเพียงเส้นทางเดียว
หรือต้องการให้การส่งผ่านข้อมูลเป็นไปตามรูปแบบที่กำหนด และการกำหนด
routing table อีกแบบหนึ่งคือการกำหนดแบบ dynamic
routing โดยใช้ routing protocol
ในการหาเส้นทางที่เหมาะสม ซึ่งข้อมูลใน routing table
อาจจะมีการเปลี่ยนแปลงเมื่อเน็ตเวิร์คมีการเปลี่ยนแปลง เช่น เราเตอร์บางตัวไม่สามารถใช้งานได้
หรือปริมาณของการสื่อสารในลิงค์หนึ่งมีความคับคั่งมาก
โดยในการเปลี่ยนแปลงจะเกิดการสื่อสารระหว่างเราเตอร์เพื่ออัพเดทข้อมูลโดยใช้
routing protocol
ในการค้นหาเส้นทางอื่นที่ส่งข้อมูลไปยังเป้าหมายได้
หรือเส้นทางอื่นที่ดีกว่า ซึ่ง routing protocol
ก็จะมีหลายโปรโตคอล เช่น OSPF (Open Shortest Path First), RIP
(Routing Information Protocol), IGRP (Interior Gateway Routing Protocol)
หรือ BGP (Border Gateway Protocol)
โดยแต่ละโปรโตคอลจะมีความเหมาะสมในการใช้งานที่ต่างกัน
การส่งข้อมูลของเราเตอร์
จะส่งข้อมูลไปครั้งละ 1
hop เส้นทางทั้งหมดจะไม่สามารถระบุได้
ยกเว้นจะเป็นการกำหนดแบบสแตติกในทุกๆ hop
ของเส้นทางทั้งหมด ซึ่งวิธีการนี้มีข้อดี 2 อย่างคือ แพคเกจของข้อมูลทั้งหมดอาจจะไม่ถูกส่งไปในเส้นทางเดียวกัน
ขึ้นอยู่กับข้อมูลใน routing table ในขณะนั้น
โดยเราเตอร์จะเลือกเส้นทางที่ดีที่สุดให้ ทำให้การส่งข้อมูลทำได้เร็วขึ้น
ข้อดีประการที่ 2 คือ เมื่อมีเส้นทางใดเส้นทางหนึ่งไม่สามารถใช้งานได้ เราเตอร์จะสามารถหาเส้นทางอื่นในการส่งข้อมูลไปแทนได้
ซึ่งเป็นจุดประสงค์หนึ่งในการสร้างความมีเสถียรภาพในการส่งข้อมูลของเครือข่าย
TCP/IP