13.2 RARP คืออะไร
RARP หรือ Reverse Address Resolution Protocol เป็ นโพรโทคอลทีทาํ งานในลกั ษณะเดียวกนั
กบั ARP แต่ทาํ งานสวนทางกนั คือ จะคน้ หาหมายเลข IP Address จากหมายเลข MAC Address ทีมีอยู่
โดยปกติโพรโทคอลนีมกั จะถูกใช้กบั เครืองคอมพิวเตอร์ใด ๆ ทีไม่มีฮาร์ดดิสก์ในตวั หรือเราเรียกว่า
“Diskless Computer” เครืองคอมพิวเตอร์ประเภทนีจะไม่มี IP Address เพราะไม่มีพืนทีทีใช้เก็บขอ้ มูล
เพือทีจะใช้โหลดขึนมานันเอง ดงั นัน หากเปิ ดเครืองขึนมาก็จะไม่สามารถติดต่อกบั เครืองใด ๆ บน
เครือข่ายได้ ดงั นัน จึงตอ้ ง บรอดคาสต์ RARP แพ็กเก็ตเพือขอ IP Address โดย RARP Server ทาํ หน้าที
ตอบกลบั IP Address มาแลว้ จึงจะสามารถติดต่อกบั BOOT Server เพือโหลดสิงทีจาํ เป็ นสําหรับการบู๊ต
เครืองขึนมาจึงจะสามารถใชง้ านได้
นอกจากกรณีเครืองคอมพิวเตอร์แบบ Diskless แลว้ RARP โพรโทคอลยงั สามารถนาํ มาใชใ้ น
กรณีที IP Address ของอปุ กรณ์ใด ๆ เกิดรีเซตหายไป ซึงหากไม่มีพอร์ตคอนโซลให้เขา้ ไปคอนฟิ กไดก้ ็จะ
ไม่สามารถเชือมต่อเครือข่ายได้ ตวั อย่างเช่น อุปกรณ์เครือข่ายพรินเตอร์แบบต่อภายนอก โดยปกติ IP
Address ของอุปกรณ์จะถูกกาํ หนดมาตงั แต่โรงงาน หรือไมก่ ็ยงั ไม่ไดก้ าํ หนดไว้ ดงั นนั การจะนาํ อุปกรณ์
มาเชือมต่อบนเครือข่ายของเราได้จะต้องมีการกาํ หนด IP Address ให้กับอุปกรณ์ตัวนีใหม่ให้อยู่ใน
เครือข่ายเดียวกนั กบั เราก่อน แตเ่ ราจะเขา้ ไปเปลียน IP Address อยา่ งไรหากวา่ IP ของอุปกรณ์เกิดเป็ นค่า
0.0.0.0 (ยงั ไม่ได้กาํ หนดไว)้ ดังนัน จะตอ้ งคอนฟิ ก RARP Server ให้แจก IP Address สําหรับ MAC
Address ของอุปกรณ์เครือข่ายพรินเตอร์ตวั นีก่อน เมืออุปกรณ์ได้ IP Address แลว้ เราจึงจะสามารถรีโมท
เขา้ ไปแกไ้ ขได้ เป็นตน้
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 500
ลกั ษณะการทาํ งานของ RARP Protocol
ภาพที 13.8 การทาํ งานของ RARP Protocol
จากภาพที 13.8 อธิบายไดว้ า่
1. เครือง A เป็นคอมพิวเตอร์แบบ Diskless Computer เมือเปิ ดเครืองขึนมาจึงสร้างเฟรมแพก็ เก็ต
RARP request ซึงมีรูปแบบแพ็กเก็ตเหมือนกบั ARP Message แต่จะระบุค่า Opcode = 3 (RARP request)
ใน ส่ วน ของ Source Hardware Address จะกําห น ดเป็ น ค่า MAC Address ของตัวเอง Destination
Hardware Address จะกําห น ดเป็ น ห ม ายเลข Broadcast ใน ส่ วน ของ Sender, Destination Protocol
Address จะเวน้ ไวเ้ พราะไมร่ ู้วา่ ใครคือ RARP Server
. เครือง A ส่ง Broadcast RARP request ไปบนเครือข่าย ซึงเครืองใด ๆ ทีไดร้ ับแพ็กเก็ตไปหา
ไม่ใช่ RARP Server ก็จะ drop ทิงไป
3. เครือง C ทีเป็ น RARP Server เมือไดร้ ับแพ็กเก็ตมาแล้วนาํ เข้ากระบวนการ De-encapsulate
แลว้ พบว่าแพ็กเก็ตนีเป็ น RARP request ขอ IP Address ของเครือง A โดย RARP Server ได้ตรวจสอบ
แลว้ วา่ ไดม้ ีการกาํ หนดหมายเลข IP Address สําหรับ MAC Address เครือง A ไวใ้ นคอนฟิ กแลว้ ดงั นนั จึง
สร้างแพก็ เก็ตตอบกลบั โดยกาํ หนด Opcode = 4 (RARP Reply), Sender Hardware Address และ Protocol
Address เป็ นค่า MAC Address และ IP Address ของตนเอง, ส่วน Destination Hardware Address และ
Protocol Address ระบุเป็น MAC Address กบั IP Address ของเครือง A
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 501
. เครือง C RARP Server ส่งแพก็ เกต็ RARP request กลบั หาเครือง A โดยตรง
5. เครือง A ได้รับแพ็กเก็ต RARP Reply แล้วจึงเขา้ กระบวนการ De-capsulate ไดห้ มายเลข IP
Address มาจึงคอนฟิ กตวั เองให้มี IP ตามทีได้ จึงสามารถติดตอ่ กบั เครืองอืน ๆ ทีอยูบ่ นเครือข่ายเดียวกนั
ได้
13.3 ICMP (Internet Control Message Protocol)
ICMP หรือ Internet Control Message Protocol เป็ นโพรโทคอลทีมาเสริมความสามารถให้กับ
Internet Protocol (IP) เนืองจาก Internet Protocol (IP) ไม่ไดม้ ีคุณสมบตั ิในการรับประกนั ความครบถว้ น
ของขอ้ มูลในการส่งไปยงั ปลายทาง เช่น หากเกิดปัญหาเครือข่ายหลุดขาดการติดต่อกบั เครืองปลายทาง
หรือเกิดความคบั คงั ของขอ้ มูลบนเครือข่ายสูงมากจนเป็ นเหตุให้แพก็ เก็ตสูญหาย เป็ นตน้ เราจะไม่ทราบ
เลยว่าข้อมูลทีส่งไปครบถ้วนหรือไม่ ด้วยเหตุนีจึงมีโพรโทคอล ICMP เขา้ มาช่วยในเรืองการแจ้งผล
ข้อผิดพลาดทีเกิดขึนในการส่ งข้อมูลของ Internet Protocol (IP) เช่น “Destination Unreachable”,
“Request Time Out” เป็นตน้
แต่ทวา่ โพรโทคอล ICMP ไม่ใช่เขา้ มาช่วยทาํ ให้ Internet Protocol รู้ตวั วา่ ส่งขอ้ มูลไม่ครบแลว้
จดั ส่งใหม่แตโ่ พรโทคอล ICMP ทาํ หนา้ ทีเฉพาะแจง้ ข่าวสารเท่านนั (โดยทีรายละเอียดเกียวกบั ICMP ได้
ถูกปรับปรุงแกไ้ ขอยใู่ นเอกสาร RFC: 792)
ประเภทของ ICMP Message
ในบรรดาขอ้ ความตอบกลับของโพรโทคอล ICMP เราสามารถแบ่งออกได้เป็ น 2 ประเภท
ใหญ่ ๆ คือ
1. ข้อความแสดงข้อผิดพลาดทีตรวจพบ (Error Message) เราสามารถแบ่งหวั ข้อหลกั ๆ ของ
ขอ้ ผดิ พลาดทีตรวจพบ ไดด้ งั นี
1.1 Destination Unreachable โดยปกติขอ้ ผิดพลาดนีจะเกิดขึนเมือเครืองตน้ ทางติดต่อ
เครืองปลายทางไมไ่ ด้ ซึงจาํ แนกไดจ้ ากหลายสาเหตุ เช่น
อุปกรณ์เราท์เตอร์ไม่สามารถส่งต่อแพ็กเก็ตไปยงั เครื องปลายทางได้อัน
เนืองมาจากปัญหาทางเครือขา่ ย หรือปัญหาของเครืองปลายทางก็ตาม
ไม่สามารถติดต่อเครืองปลายทางไดแ้ มว้ า่ จะอยบู่ นเครือขา่ ยวงเดียวกนั
แพก็ เกต็ ส่งถึงปลายทางไดแ้ ต่ค่า TOS (Type of Service) ผดิ ปกติ
ไมส่ ามารถตดิ ตอ่ กบั โพรโทคอลทีตอ้ งการได้
พอร์ตไม่เปิ ด
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 502
1.2 Source Quench ข้อความแสดงข้อผิดพลาดนีจะเกิดขึนเมือเครืองปลายทางหรือ
เกตเวยไ์ ม่สามารถรองรับและประมวลผลให้กบั จาํ นวน Internet Datagram ทีเขา้ มาในปริมาณ
มาก ๆ ไดท้ นั ก็จะหยุดและปฏิเสธ Internet Datagram ทีเข้ามาใหม่พร้อมทงั ส่งแพ็กเก็ต Source
Quench แจง้ กลบั ไปยงั เครืองตน้ ทางใหร้ บั ทราบ
1.3 Time Exceeded ขอ้ ผิดพลาดนีเกิดขึนจากค่า TTL (Time-To-Live) ลดลงจนเหลือ 0
ซึงแพก็ เก็ตทีส่งนีจะถูกลบออกจากระบบทนั ที โดยทวั ไปการจะทาํ ให้ค่า TTL เป็ น 0 อาจเกิดขึน
จากสาเหตุนี
เราทเ์ ตอร์หรือเกตเวยท์ ีส่งต่อแพก็ เก็ตไปเรือย ๆ แต่ไม่สามารถส่งถึงปลายทาง
ไดก้ ่อนค่า TTL = 0
ในกรณี ข้อมูลทีส่ งนันมีหลาย Internet Datagram (หลาย Fragments) เมือ
ปลายทางไดร้ ับแลว้ จะรวม Fragments นนั ๆ เขา้ ดว้ ยกนั แต่ถา้ เกิดมี Fragment
หายไปเพียงแพ็กเก็ตเดียวก็จะทําให้ไม่สามารถรวม Internet Datagram เป็ น
ขอ้ มลู ชุดเดิมไดจ้ นกระทงั TTL = 0
1.4 Parameter Problem ขอ้ ผิดพลาดนีเกิดขึนจากการทีเครืองปลายทางหรือเกตเวย์
ตรวจพบว่ามีค่าพารามิเตอร์ในเฮดเดอร์ไม่ถูกตอ้ งหรือหายไปก็จะลบ Internet Datagram นัน
ทิงพร้อมทงั แจง้ กลบั ดว้ ยขอ้ ความผดิ พลาดนี
2. ข้อความแจ้งข่าวสารทัวไป (Information Message) ขอ้ ความอีกประเภทของ ICMP คือ การ
แจง้ ขอ้ มูลข่าวสารทวั ไป โดยแบ่งเป็ นหวั ขอ้ หลกั ๆ ไดด้ งั นี
2.1 Echo Message ขอ้ ความ Echo นีโดยปกติจะพบจากการเรียกใชค้ าํ สัง Ping ซึงจะมี
การส่ง Echo request และตอบกลบั ดว้ ย Echo Reply โดยระบุวา่ Identifier และ
Sequence Number ตวั เดียวกนั
2.2 Redirect Message ขอ้ ความนีจะถูกแจง้ ไปยงั เครืองตน้ ทางใหร้ ู้ถึงเสน้ ทางใหมใ่ น
การส่งขอ้ มูลทีเร็วกวา่ ดงั ตวั อยา่ งเช่น เครืองตน้ ทาง A ตอ้ งการส่งขอ้ มูลไปหาเครืองปลายทาง B
ทีอยู่คนละเครือข่ายกนั ดงั นัน เครืองต้นทาง A จะต้องส่งข้อมูลผ่านเกตเวยท์ ีรู้จกั สมมติเป็ น
เราท์เตอร์ X โดยเราท์เตอร์ X ก็ตรวจสอบตารางเราท์ติงแลว้ วา่ ตอ้ งส่งต่อเราท์เตอร์ Y ให้ส่งหา
เครืองปลายทาง B อีกที คราวนีถา้ เราทเ์ ตอร์ Y ตรวจพบวา่ ขอ้ มูลทีส่งมานีมาจากเครืองตน้ ทางที
อยบู่ นเครือข่ายทีตวั เองเชือมตอ่ อยแู่ ลว้ มนั จะส่งขอ้ ความ Redirect Message แจง้ กลบั ไปยงั เครือง
ตน้ ทาง A วา่ คราวต่อไปถา้ จะส่งหาเครือง B อีกใหส้ ่งตรงมาทีเราทเ์ ตอร์ Y ไดเ้ ลย
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 503
2.3 Information Message ขอ้ ความนีมีการนาํ มาใช้ในเรืองของการส่งขอ้ ความออกไป
บนเครือข่ายเพือถามหาสิงทีตอ้ งการ เช่น กรณีของเครืองแบบ Diskless ทีไม่สามารถบู๊ตระบบ
ดว้ ยตวั เองไดจ้ ะมีการส่งขอ้ ความนีไปบนเครือข่ายเพือถามหา IP Address และขอ้ มูลทีตอ้ งใชใ้ น
การบูต๊ แตป่ ัจจุบนั โพรโทคอล RARP และ BOOTP ทาํ หนา้ ทีนีไดด้ ีกวา่ จึงเลิกใช้ ICMP ไป
2.4 Timestamp Message ในกรณีทีส่งข้อมูลโดยมีการระบุเวลา (Timestamp) มาดว้ ย
เครืองปลายทางจะตอ้ งมีการส่งขอ้ ความตอบกลบั พร้อมระบุเวลาดว้ ยเรียกว่า Timestamp Reply
โดยในแพก็ เกต็ จะมีการระบุคา่ เวลา 3 คา่ ดว้ ยกนั คือ
Originate Timestamp คือ เวลาทีเครืองตน้ ทางส่งออกมา
Receive Timestamp คือ เวลาทีเครืองปลายทางไดร้ ับขอ้ มูลมา
Transmit Timestamp คือ เวลาก่อนทีเครืองปลายทางจะส่งขอ้ มูลตอบ
กลบั
2.5 Router Advertisement and Solicitation Message อุปกรณ์เราท์เตอร์มีการเรียกใช้
โพรโทคอลเกียวกับการค้นหาเส้นทาง หรือเรียกอีกชือว่า “Router Discovery Protocol” ซึง
จะมีส่วนของการสนบั สนุนการใชโ้ พรโทคอล ICMP ในการแจง้ ขอ้ มูลของผลการคน้ หา
รูปแบบของ ICMP Header
ICMP Protocol ประกอบด้วยเฮดเดอร์อยา่ งน้อยขนาด 4 ไบต์จึงถือว่ามีขนาดสมบูรณ์ ซึงขนาด
ของแพก็ เกต็ จะแปรเปลียนตามประเภทขอ้ ความทีมีการนาํ เสนอดงั จะกล่าวถึงในรายละเอียดตอ่ ไปนี
ภาพที 13.9 รูปแบบทวั ไปของ ICMP Header
ทีมาของภาพ: http://www.insecure.in/packet_header_analysis.asp
จากภาพที 13.9 รายละเอยี ดของ ICMP Packet Header ประกอบดว้ ย
Type ขนาด 1 ไบต์เป็ นการระบุประเภทของข้อความซึงจะมีค่าได้ตังแต่ 0-255 แต่
ICMPv4 นนั มีประเภทขอ้ ความไมม่ ากนกั ถา้ เป็ น ICMPv6 จะกาํ หนดว่าค่า Type 0-127
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 504
จะเป็ นประเภทข้อความทีเกิดเหตุการณ์ผิดปกติ (Error Message Type) และค่า Type
- เป็ นประเภทขอ้ ความแจง้ ใหท้ ราบ (Information Message Type)
โดยทีประเภทขอ้ ความทีเรา ๆ มกั จะเห็นบ่อย คือ Type = 3 คือ Destination Unreachable นนั คือ
การติดต่อเครืองปลายทางไม่ได้ ซึงมีหลายสาเหตุดว้ ยกนั เช่น Network Down, Destination Host Down,
Port Disable เป็นตน้ สาํ หรับตวั อยา่ ง Type แสดงดงั ตารางที 13.1 (ในส่วนของรายละเอียดค่า Type และ
Code สามารถศึกษาเพิมเติมไดจ้ ากเอกสาร RFC-1700 Assigned Number)
ตารางที 13.1 ตัวอย่าง ประเภทข้อความและความหมาย
Type ความหมาย
0 Echo Reply
3 Destination Unreachable
4 Source Quench
5 Redirect
8 Echo
11 Time Exceeded
12 Parameter Problem
13 Timestamp
14 Timestamp Reply
15 Information Request
16 Information Reply
Code ขนาด 1ไบตเ์ ป็ นฟิ ลดท์ ีระบุรายละเอียดของประเภทขอ้ ความทีกาํ หนดในค่า Type
โดยในแต่ละ Type จะมีค่า Code ทีเป็ นรายละเอียดย่อยไดถ้ ึง 256 ข้อความ แต่จริง ๆ
แลว้ ก็ยงั มีไมถ่ ึงดงั ตวั อยา่ งต่อไปนี (ในส่วนของรายละเอยี ดค่า Type และ Code สามารถ
ศึกษาเพิมเติมไดจ้ ากเอกสาร RFC-1700 Assigned Number)
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 505
ตารางที 13.2 ตัวอย่าง Type Code และความหมาย
Type ความหมาย Code ความหมาย
0 Echo Reply 0 No Code
0 Net Unreachable
1 Host Unreachable
2 Protocol Unreachable
3 Port Unreachable
3 Destination Unreachable 4 Fragmentation Needed and Don’t Fragment was Set
5 Source Route Failed
6 Destination Network Unknown
7 Destination Host Unknown
8 Source Host Isolated
12 Destination Host Unreachable for Type of Service
6 Alternate Host Address 0 Alternate Address for Host
8 Echo Request 0 No Code
11 Time Exceeded 0 Time to Live Exceeded in Transit
1 Fragment Reassembly Time Exceeded
Checksum ขนาด 2 ไบต์บนโพรโทคอล ICMPv4 จะใช้หลักการคาํ นวณ checksum
เหมือนกับโพรโทคอล IPv4 แต่ถ้าเป็ น ICMPv6 จะใช้หลักการคํานวณ checksum
เหมือนโพรโทคอล TCP
ICMP Data เป็นส่วนขอ้ มูลมีขนาดไม่แน่นอนขึนอยกู่ บั ICMP Type, Code
ตัวอย่าง ICMP Packet Header ของ Message ต่าง ๆ
เรามาพิจารณาตวั อยา่ ง ICMP Header ในแตล่ ะขอ้ ความทีมีการส่งออกมา ทงั แบบ Error Message
และ Information Message
Destination Unreachable Message
รูปแบบของ Destination Unreachable Header แสดงในภาพที 13.10
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 506
ภาพที 13.10 Destination Unreachable Header
จากภาพที 13.10 รายละเอยี ดเพิมเติมของ ICMP Packet Header
Copy Original Internet Datagram สําเนาแพ็กเก็ตทีเครืองตน้ ทางส่งออกมาแล้วไม่
สามารถส่งถึงปลายทางได้
Redirect Message
รูปแบบของ Redirect Message Header แสดงดงั ภาพที 13.11
ภาพที 13.11 รูปแบบ Redirect Message Header
จากภาพที 13.11 รายละเอียดเพิมเติมของ ICMP Packet Header
Gateway Internet Address หมายเลข Internet Address สําหรับเกตเวยท์ ีต้องการให้
เปลียนเสน้ ทางการส่งในคราวหนา้
Copy Original Internet Datagram สําเนาแพ็กเก็ตทีเครืองตน้ ทางส่งออกมาแล้วไม่
สามารถส่งถึงปลายทางได้
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 507
Echo Request/Reply Message
รูปแบบของ Echo message Header แสดงดงั ภาพที 13.12
ภาพที 13.12 Echo Message Header
จากภาพที 13.12 รายละเอียดเพิมเติมของ ICMP Packet Header
Identifier เพือใชใ้ นการยนื ยนั การส่งโตต้ อบระหวา่ งตน้ ทางและปลายทาง
Sequence Number เป็ นลาํ ดบั ของแพ็กเก็ต ซึงปกติจะเพิมขึนตามจาํ นวนแพก็ เก็ตทีส่ง
โดยฝังปลายทางตอบกลบั จะตอบกลบั ดว้ ย Sequence Number เดียวกนั
ตัวอย่าง แพ็กเก็ตในการ ping หาเครืองปลายทางโพรโทคอล ICMP จะใช้ Type = 8 (Echo
Request) และ Type = 0 (Echo Reply) ดงั แสดงตอ่ ไปนี
1. เครืองตน้ ทาง ping ไปหาเครืองปลายทาง
ภาพที 13.13 ตวั อย่าง Ping Message (Echo Request)
2. เครืองปลายทางตอบกลบั
ภาพที 13.14 ตัวอย่าง Ping Message (Echo Reply)
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 508
Parameter Problem Message
รูปแบบของ Parameter Problem Message Header ดงั แสดงในภาพที 13.15
ภาพที 13.15 รูปแบบ Parameter Problem Message Header
จากภาพที 13.15 รายละเอยี ดเพิมเติมของ ICMP Packet Header
Pointer เป็นตวั บง่ ชีวา่ ไบตไ์ หนทีมีขอ้ ผดิ พลาด
Copy Original Internet Datagram สําเนาแพ็กเก็ตทีเครืองต้นทางส่งออกมาแล้วไม่
สามารถส่งถึงปลายทางได้
13.4 การค้นหาเส้นทางด้วยเราท์ติง
อินเทอร์เน็ตเกิดจากการเชือมต่อเครือข่ายย่อย ๆ เข้าด้วยกนั ในการเชือมต่อเครือข่ายหนึงกบั
เครือข่ายหนึงจะใช้เราท์เตอร์ เมือแพ็กเก็ตถูกส่งจากตน้ ทางไปยงั ปลายทาง แพ็กเก็ตนันอาจจะตอ้ ง
เดินทางโดยผ่านเราท์เตอร์จาํ นวนหลาย ๆ ตวั กวา่ ทีจะถึงปลายทาง เราท์เตอร์ทุกตวั จะมีตารางการหา
เส้นทางสําหรับการส่งแพก็ เก็ตซึงในตารางเส้นนีควรจะเป็ นเส้นทางทีสันทีสุดทีแพก็ เก็ตจะตอ้ งเดินทาง
ไป ตามหาเส้นทางจะแบ่งออกได้ 2 ประเภท คือ ตารางแบบสเตติก (Static Table) และตารางแบบไดนา-
มิก (Dynamic Table) ดงั นันหัวขอ้ นีจะเป็ นการอธิบายถึงความหมายของการหาเส้นทาง (Routing) และ
โพรโทคอลทีใชใ้ นการคาํ นวณหาเส้นทาง
เราท์ติง (Routing) คืออะไร
เราท์ติง คือ กระบวนการในการขนถ่ายขอ้ มูลผา่ นอินเทอร์เน็ตเวิร์ค (Internetwork) ซึงก็คือ การ
ส่งถ่ายข้อมูลขา้ มเครือข่ายทีเชือมต่อกันดว้ ยอุปกรณ์เราท์เตอร์ (Router), เกตเวย์ (Gateway) หรือบริดจ์
(Bridge) ยกตวั อยา่ งเช่น การติดต่อกนั บนอินเทอร์เนต็ , การติดตอ่ กนั ระหวา่ งสาขา เป็นตน้
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 509
การทาํ เราทต์ ิงประกอบดว้ ย 2 ภารกิจสาํ คญั คือ
1. การคน้ หาเสน้ ทางทีดีทีสุดในการเชือมต่อระหวา่ งตน้ ทางไปยงั ปลายทาง
2. การขนส่งขอ้ มูลไปบนเส้นทางทีดีทีสุดทีคน้ หามาได้
ภารกิจทงั 2 ขอ้ นีจะถูกดาํ เนินการโดยเราท์ติงโพรโทคอล (Routing Protocol) ซึงจะมีการเก็บค่า
ขอ้ มูลเส้นทางการเชือมตอ่ จากตน้ ทางไปยงั ปลายทางลงบนฐานขอ้ มูลทีเรียกวา่ “ตารางเราท์ติง (Routing
Table)” ซึงจะกล่าวในรายละเอียดต่อไป
ตารางเร้าท์ตงิ (Routing Table)
โดยปกติการติดต่อจากเครืองต้นทางไปยงั ปลายทางจะมีโพรโทคอล IP (Internet Protocol)
ตรวจสอบก่อนวา่ เครืองปลายทางอยูบ่ นเครือข่ายเดียวกนั กบั ตน้ ทางหรือไม่ ถา้ ใช่ก็สามารถติดต่อขอ้ มูล
กนั ได้เลย แต่ถ้าไม่ใช่โพรโทคอล IP จะตรวจสอบทีตารางเราท์ติงก่อนว่า มีเส้นทางทีเชือมต่อไปถึง
เครือข่ายปลายกาํ หนดไวห้ รือไม่ ถา้ มีแลว้ จะตอ้ งส่งผา่ นขอ้ มูลไปยงั เกตเวยไ์ หนจึงจะติดตอ่ ปลายทางได้
ซึงตารางเราท์ติงนีจะถูกสร้างขึนบนโหนดใด ๆ ทีเชือมต่อกันบนเครือข่าย ไม่วา่ จะเป็ นบน
อุปกรณ์เครือขา่ ยอยา่ งเราทเ์ ตอร์ หรือบนระบบปฏิบตั ิการต่าง ๆ เช่น Linux, Windows, Unix เป็ นตน้ โดย
เราสามารถเรียกดูขอ้ มูลเส้นทางในตารางเราทต์ ิงโดยเรียกใชค้ าํ สังพนื ฐาน คอื “netstate”
ประเภทของเราท์ติงโพรโทคอล
อยา่ งทีไดเ้ กรินไวแ้ ลว้ ในตอนตน้ วา่ ตารางเราท์ติงนนั มีความสาํ คญั ในการเก็บขอ้ มูลเส้นทางการ
เชือมต่อไปยงั เครืองปลายทาง ซึงขอ้ มูลในตารางเราท์ติงสามารถเปลียนแปลงไดด้ ้วย 2 วิธีการคือ แบบ
Static Routing หรือแบบ Dynamic Routing ซึงมีจุดแข็งในแต่ละวิธีแตกต่างกนั ในการจะใช้วิธีการใด
ปรับปรุงตารางเราทต์ ิง เราจะพิจารณาจากความซบั ซอ้ นของระบบเครือข่ายก่อนวา่ วธิ ีไหนเหมาะสม โดย
ก่อนอืนเรามาทาํ ความรู้จกั ในแต่วธิ ีการวา่ เป็ นอยา่ งไร
Static Routing
เป็ นวิธีการปรับปรุงตารางเราท์ติงโดยวิธีการแก้ไขด้วยตนเอง หรือให้ผู้ดูแลระบบ (System
Administrator) เขา้ ไปแกไ้ ขให้ ซึงวธิ ีการนีจะเหมาะกบั ระบบเครือข่ายทีมีขนาดไม่ใหญ่นกั มีเส้นทางใน
การเชือมต่อจากตน้ ทางไปยงั ปลายทางทีแน่นอน ยงิ ถา้ มีเกตเวย์ (Gateway) เพียงจุดเดียววธิ ีนียิงเหมาะสม
มาก เพราะเป็ นการกําหนดแบบเจาะจงไปเลยว่า ถ้าจะติดต่อเครืองปลายทางทีไม่ไดอ้ ยู่ในเครือข่าย
เดียวกนั ให้ติดตอ่ ผา่ นทางเกตเวยท์ ีกาํ หนดเทา่ นนั
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 510
ขอ้ ดี
1. การปรับปรุงแกไ้ ขตารางเราทต์ ิงทาํ ไดง้ ่าย
2. สามารถวิเคราะห์ปัญหาในการเชือมตอ่ เครือขา่ ยไดง้ ่าย เพราะวา่ มีเสน้ ทางบงั คบั ใน
การเชือมตอ่ อยู่
3. ไม่ตอ้ งอาศยั เราทต์ ิงโพรโทคอล
ขอ้ เสีย
1. หากอปุ กรณ์เกตเวยม์ ีปัญหาระบบจะไมร่ ู้วา่ เสน้ ทางนีใชไ้ มไ่ ด้
2. ขอ้ มูลเส้นทางในตารางเราท์ติงทีเชือมต่อกบั เครือข่ายอืนจะไม่มีการปรับปรุงจนกว่า
จะไปแกไ้ ข
3. ในกรณีทีเครือข่ายมีขนาดใหญม่ าก การเขา้ มาแกไ้ ขตารางเราทต์ ิงเพือกาํ หนดเส้นทาง
ใหค้ รอบคลุมจะทาํ ไดย้ าก และอาจไมค่ รบถว้ นได้
Dynamic Routing
เป็ นอีกวิธีในการปรับปรุงตารางเราทต์ ิงโดยใชโ้ พรโทคอลซึงอาจจะเรียกว่า “เราท์ตงิ โพรโทคอล
(Routing Protocol)” วิธีการนีเหมาะกบั เครือข่ายทีมีขนาดใหญ่ มีเส้นทางในการเชือมตอ่ ไปยงั ปลายทาง
ทีตอ้ งการได้หลายเส้นทาง โดยทีตารางเราทต์ ิงของอุปกรณ์เครือข่ายหรือเซิร์ฟเวอร์จะถูกปรับปรุงโดย
อตั โนมตั ิจากเราทต์ ิงโพรโทคอลอยเู่ สมอ ยกตวั อยา่ งเช่น Network Switch Layer 3 เกิดเสียขึนมา 1 ตวั ทาํ
ใหเ้ ส้นทางในการเชือมต่อจากตน้ ทางไปยงั ปลายทางทีมีเส้นทางผา่ น Network Switch ตวั นีใชง้ านไม่ได้
เราท์ติงโพรโทคอลจะมีการอพั เดตขอ้ มูลนีไปยงั ตารางเราท์ติงต่าง ๆ วา่ ตอนนีไม่สามารถใชเ้ ส้นทางที
ผา่ นอุปกรณ์ทีเสียได้ ดงั นนั หากมีการติดตอ่ ไปยงั ปลายทางจะมีการเปลียนเสน้ ทางไปใชเ้ ส้นทางอืนแทน
นอกจากนีเราท์ติงโพรโทคอลยงั ทาํ หน้าทีในการเลือกเส้นทางทีดีทีสุดให้อีกด้วย สําหรับการ
ทาํ งานของเราทต์ ิงโพรโทคอลเราจะมาทาํ ความรู้จกั กนั ในหวั ขอ้ ถดั ไป
ข้อดี
1. ตารางเราทต์ ิงจะถูกปรับปรุงโดยอตั โนมตั ิให้ทนั สมยั อยเู่ สมอ โดยมี Routing Protocol
ทาํ หนา้ ทีตรวจสอบสถานการณ์เชือมต่อเครือขา่ ย หากพบวา่ เครือข่ายเส้นทางไหนไม่
สามารถใชไ้ ด้ Routing Protocol กจ็ ะลบเส้นทางนนั ออกจากตารางเราทต์ ิงให้
2. ในการติดตอ่ ถึงเครืองปลายทาง Routing Protocol จะเลือกเส้นทางทีดีทีสุดให้ โดย
วธิ ีการจะแตกตา่ งตามโพรโทคอลแต่ละแบบ
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 511
ระดบั ชันของ Routing Protocol
ปัจจุบนั การเชือมโยงเครือข่ายได้มีการจดั ทาํ เป็ นระบบ Autonomous System (AS) ซึงคือ กลุ่ม
ของเราทเ์ ตอร์ทีมีการเชือมต่อกนั เสมือนเป็ นองค์กรเดียวกนั โดยในแต่ละกลุ่ม AS จะมีหมายเลขประจาํ
กลุ่มเรียกวา่ Autonomous System Number (ASN) ดงั นัน การติดต่อสือสารระหว่างหน่วยงานจึงถูกแบ่ง
ออกเป็น 2 รูปแบบ คือ
รูปแบบที 1: การตดิ ต่อสือสารภายใน Autonomous System
ในแต่ละ Autonomous System จะประกอบดว้ ยกลุ่มเราทเ์ ตอร์จาํ นวนหนึง ซึงแต่ละเราทเ์ ตอร์อาจ
หมายถึง 1 หน่วยงาน หรือหลาย ๆ เราท์เตอร์รวมกนั เป็ นองค์กรก็เป็ นได้ ดงั นัน ภายใน Autonomous
System จึงอาจไม่ใช่การเชือมต่อกนั เพียงองค์กรเดียวกันเท่านัน แต่อาจเป็ นการเชือมต่อของหลาย ๆ
องคก์ รได้
เช่น บริษัทผูใ้ ห้บริการอินเทอร์เน็ต (Internet Service Provider -ISP) จะมีหมายเลข ASN ของ
ตวั เอง โดยในแต่ละ AS จะมีโควตาเครือข่ายอยู่ เช่น KSC-TH มี ASN = AS7693 มีโควตาเครือข่าย 1,692
Class C นนั คือ เมือมีบริษทั มาขอใชบ้ ริการอินเทอร์เน็ต และไดร้ ับ IP Address จากเครือข่ายของ ISP ราย
นีก็จะมีการจดั กลุ่มอยใู่ น AS เดียวกนั กบั KSC-TH ได้
ดงั นนั ภายใน ASN ของ KSC จะมีบริษทั มากมายเชือมต่ออยู่ การคน้ หาเส้นทางการเชือมต่อจึง
เป็ นหน้าทีของ Routing Protocol ซึงทําหน้าทีเฉพาะการค้นหาเส้นทางภายใน AS เดียวกัน เรียกว่า
“Interior Gateway Protocol”
รูปแบบที 2: การตดิ ต่อสือสารระหว่าง Autonomous System
และสําหรับการเชือมต่อกันระหว่าง AS ก็จะใช้โพรโทคอลทีเรียกว่า “Exterior Gateway
Protocol” ดงั จะกล่าวในรายละเอียดตอ่ ไป
Interior Gateway Protocol (IGP)
เป็ นโพรโทคอลทีใชใ้ นการคน้ หาเส้นทางและแลกเปลียนขอ้ มูลตารางเราทต์ ิงระหวา่ งเราทเ์ ตอร์
ทีอยู่ภายใน Autonomous System เดียวกัน ซึ งโพรโทคอลแบบ Interior Gateway Protocol สามารถ
แบ่งกลุม่ โพรโทคอลออกเป็ น 2 กลุ่มตามรูปแบบการคน้ หาเสน้ ทาง ดงั นี
โพรโทคอลแบบ Distance Vector
โพรโทคอลแบบ Link State
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 512
โพรโทคอลแบบ Distance Vector
Distance Vector คือโพรโทคอลทีมีการคาํ นวณคน้ หาเส้นทางโดยใชอ้ ลั กอริทึมแบบ Bellman-
Ford Algorithm โดยปกติโพรโทคอลแบบ Distance Vector จะมีการกาํ หนดระยะเวลาในการแลกเปลียน
ขอ้ มูลกัน เมือถึงรอบเวลาทีกาํ หนดไวโ้ พรโทคอลจะส่งออกขอ้ มูลในตารางเราท์ติงทงั หมด ซึงมีทัง
ระยะทาง (Distance) ทีคํานวณและทิศทางการเชือมต่อในแต่ละเส้นทาง (Vector) ให้กับเราท์เตอร์
ขา้ งเคียง (Neighbors) โดยเราท์เตอร์ขา้ งเคียงนนั เมือไดร้ ับขอ้ มูลเส้นทางมาแลว้ จะเพิมค่าระยะทางตาม
การคาํ นวณของตวั เองเขา้ ไป แลว้ จึงส่งต่อไปให้เราท์เตอร์ทีอยูข่ า้ งเคียงถดั ไปจนกวา่ การแลกเปลียนจะ
ครบทุกเราทเ์ ตอร์
ข้อเสียของโพรโทคอลแบบ Distance Vector คือ เวลาทีใช้ในการปรับปรุงแลกเปลียนข้อมูล
เส้นทางจะช้าเพราะวธิ ีการแลกเปลียนขอ้ มูลจะเกิดขึนเฉพาะกบั เราท์เตอร์ขา้ งเคียงทีต่อ ๆ กนั เท่านนั จึง
เหมาะกบั เครือข่ายทีมีขนาดใหญ่มากนกั
สาํ หรับตวั อยา่ งโพรโทคอลทีมีลกั ษณะแบบ Distance Vector คือ RIPv1, RIPv2, IGRP เป็นตน้
โพรโทคอลแบบ Link State
Link State คือ โพรโทคอลทีแลกเปลียนข้อมูลเส้นทางทีมีการเชือมต่อทังหมดในรูปแบบ
โทโพรโลยี โดยจะส่งข้อมูลเฉพาะทีมีการเปลียนแปลงให้กบั ทุก ๆ เราท์เตอร์ทีเชือมต่อในเครือข่าย
เดียวกนั ทงั หมด เมือเราท์เตอร์ใด ๆ ไดร้ ับขอ้ มูลเส้นทางมาจากเราทเ์ ตอร์อืนแลว้ จะคาํ นวณเส้นทางทีดี
ทีสุดเอง ซึงวิธีการแบบนีทาํ ใหเ้ ราท์เตอร์ทีเชือมต่ออยู่ในเครือข่ายไดร้ ับการปรับปรุงเส้นทางทีรวดเร็ว
และไม่เปลืองแบนด์วิดธ์ (Bandwidth) ดว้ ย ตวั อย่างโพรโทคอลทีมีลกั ษณะแบบ Link State คือ OSPF,
IS-IS เป็นตน้
Exterior Gateway Protocol (EGP)
เป็ นเราท์ติงโพรโทคอลทีถูกใช้ในการแลกเปลียนขอ้ มูลเส้นทางระหวา่ ง Autonomous System
ไดถ้ ูกพฒั นาขึนในราวปี ค.ศ. 1982 โดยนาย Eric C. Rosen จากบริษทั Bolt Beranek and Newman และ
นาย David L. Mills ซึงไดต้ ีพิมพเ์ ป็ นมาตรฐานในเอกสาร RFC 827 Exterior Gateway Protocol และไดม้ ี
การปรับปรุงมาตรฐานตอ่ มาในราวปี ค.ศ. 1984 ทีไดม้ ีการตีพิมพม์ าตรฐานฉบบั ปรับปรุงในเอกสาร RFC
904 Exterior Gateway Protocol Formal Specification แต่ในปัจจุบนั โพรโทคอล EGP ไดล้ ้าสมยั ไปแลว้
และถูกแทนทีดว้ ยโพรโทคอลใหม่ คือ Border Gateway Protocol (BGP)
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 513
พืนฐานการตัดสินใจค้นหาเส้ นทาง
Routing Protocol นอกจากมีหน้าทีแลกเปลียนข้อมูลในตารางเราท์ติงแล้ว ยงั มีหน้าทีในการ
คน้ หาเส้นทางทีดีทีสุดในการเชือมต่อถึงเครือข่ายปลายทางทีตอ้ งการด้วย ซึงมีกฎพืนฐานทีใชใ้ นการ
ตดั สินใจ ดงั นี
1. Metric ในแต่ละ Routing Protocol จะมีการกาํ หนดรูปแบบวิธีเปรียบเทียบเส้นทางทีใชใ้ นการ
ติดต่อถึงเครือข่ายปลายทาง เพือใชใ้ นการพิจารณาว่าเส้นทางไหนเป็ นเส้นทางทีดีกวา่ กนั ซึงจะแตกตา่ ง
กนั ตามโพรโทคอลทีเลือกใช้ เช่น การพิจารณาเส้นทางทีดีกวา่ ด้วยจาํ นวนเราท์เตอร์ทีตอ้ งการผา่ น หรือ
ความสามารถในการรับ/ส่งขอ้ มูล (Bandwidth) หรือ Cost เป็นตน้
2. Administrative Distance ในกรณีทีมีการใช้ Routing Protocol ทีแตกต่างกนั ในอุปกรณ์เราท์
เตอร์ ค่า Administrative Distance จะเป็ นค่าทีช่วยให้เราท์เตอร์ตดั สินใจเลือกใชโ้ พรโทคอลในการคน้ หา
เส้นทางเช่น Routing Protocol OSPF มีค่า AD = 110, RIP มีค่า AD = 120 ดังนัน เราท์เตอร์จะเลือกใช้
โพรโทคอลทีมีคา่ AD นอ้ ยกวา่ ก่อน นนั คือในทีนีจะเลือกใช้ OSPF แทน RIP
3. Prefix Length ในการติดต่อไปยงั เครือข่ายปลายทาง เราท์เตอร์จะเลือกเส้นทางในตาราง
เราทต์ ิงทีมี Prefix Address ตรงกนั กบั Prefix Address ของเครือข่ายปลายทางมากทีสุด เช่น หากเครือข่าย
ปลายทางทีตอ้ งการติดตอ่ คือ 10.122.13.0/24 สมมติวา่ มีขอ้ มูลเส้นทางในตารางเราทต์ ิงนี
Routing Address Gateway
10.0.0.0/8 Gateway1
10.122.0.0/16 Gateway2
จากตวั อย่างขอ้ มูลเส้นทางในตารางเราท์ติงขา้ งตน้ เมือมีความตอ้ งการเชือมต่อไปยงั เครือข่าย
ปลายทาง 10.122.13.0/24 เราทเ์ ตอร์จะเลือกเส้นทางทีมี Prefix Address ตรงกบั Destination Address มาก
ทีสุดนนั คือ 10.122.0.0/16 เป็นตน้
. โพรโทคอลทใี ช้ในการค้นหาเส้นทาง
RIP (Routing Information Protocol)
โพรโทคอล RIP (Routing Information Protocol) เป็ นโพรโทคอลทีเราท์เตอร์ใช้สําหรับการ
แลกเปลียนขอ้ มูลเกียวกบั เครือข่าย เช่น หมายเลขเครือข่าย ขอ้ มูลเกียวกบั วา่ มีเครือข่ายใดทีเชือมต่อกบั
เราทเ์ ตอร์นนั โดยตรง เป็ นตน้ RIP เป็ นโพรโทคอลทีนิยมมาก เนืองจากเป็ นโพรโทคอลทีใชง้ านง่าย และ
เป็ นโพรโทคอลแบบ Distance Vector ซึงเราท์เตอร์แต่ละเครื องจะใช้วิธีการส่งข้อมูลเหล่านีแบบ
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 514
บรอดคาสตท์ ุก ๆ 30 วนิ าที เพืออพั เดตตารางเราทต์ ิงกบั เราท์เตอร์ทีอยตู่ ิดกนั การบรอดคาสตน์ ีจะทาํ ให้
ตารางเราทต์ ิงของแต่ละเราทเ์ ตอร์ทนั สมยั ตลอดเวลา แต่ทาํ ใหจ้ าํ นวนแพ็กเก็ตทีไหลเวียนในเครือข่ายเพิม
มากขึน
การใชโ้ พรโทคอล RIP ซึงเป็ นโพรโทคอลแบบ Distance Vector มีขอ้ จาํ กดั อยู่หลายอยา่ ง เช่น
การอพั เดตฐานขอ้ มูลของเราท์เตอร์ในเครือข่าย อาจใชเ้ วลานานพอสมควรสําหรับเครือข่ายขนาดใหญ่
และปัญหาอีกอยา่ ง คือ การส่งแพ็กเก็ตเพืออพั เดตตารางเราทต์ ิงเทเบิลนนั อาจมีบางแพ็กเก็ตทีไหลเวยี น
อยใู่ นเครือข่ายโดยไม่มีทีสินสุด เพือป้องกนั ปัญหานีเราทเ์ ตอร์แต่ละเครืองทีไดร้ ับแพ็กเก็ตนีจะลด TTL
(Time-to-Live) ของแพ็กเก็ต ซึงเมือค่าของ TTL เป็ นศูนย์ แพ็กเก็ตนันก็จะถูกละทิง ดังนัน RIP จะ
กาํ หนดขนาดของเครือข่าย โดยแพก็ เก็ตของ RIP จะอนุญาตใหส้ ่งผ่านเราท์เตอร์ไดไ้ ม่เกิน 15 เครือง ซึง
ถา้ แพก็ เก็ตส่งผา่ นเราทเ์ ตอร์เกิน 15 เครืองก็จะถือวา่ แพก็ เก็ตนีถูกส่งวนครบแลว้ และจะถูกกาํ จดั ออกไป
จากเครือข่าย
RIP เป็ นโพรโทคอลประเภท IRP (Interior Routing Protocol) ซึงเป็ นโพรโทคอลทีมีการใชง้ าน
อยา่ งแพร่หลายเนืองจากง่ายต่อการใชง้ าน RIP เป็ น Distance Vector Protocol เวอร์ชนั แรกนนั ไดก้ าํ หนด
ใน RFC1058 และไดม้ ีการปรับปรุงเป็ นเวอร์ชัน 2 ใน RFC1723 ในปี ค.ศ. 1994 ในเวอร์ชันหลงั นีได้
ปรับปรุงขอ้ มูลทีแลกเปลียนระหว่างเราทเ์ ตอร์ และนอกจากนียงั มีการเพิมในส่วนของการพิสูจน์ทราบ
ตวั ตน เพือทาํ ใหก้ ารอพั เดทตารางมคี วามปลอดภยั มากยิงขึน
ในการอัพเดตเราท์ติงเทเบิลนัน RIP จะส่ งข้อมูลเป็ นช่วงเวลาทีแน่นอน หรือเมือมีการ
เปลียนแปลงโทโพรโลยี เมือเราทเ์ ตอร์ไดร้ ับขอ้ มูลในการอพั เดตแลว้ ก็จะอพั เดตเราทต์ ิงเทเบิลเพือให้มี
ผลต่อการจดั เส้นทางใหม่ RIP ใชเ้ มทริก (Metric) เดียวในการใหน้ าํ หนกั กบั เส้นทางขอ้ มูลไปยงั เครือข่าย
ปลายทาง เมทริกทีใชค้ ือ จาํ นวนฮอ็ ป (Hop Count) เมือเราทเ์ ตอร์ไดร้ ับแพก็ เก็ตเกียวกบั การอพั เดตเทเบิล
ก็จะอพั เดตโดยบวก 1 เขา้ กบั ค่าเมทริกทีไดร้ ับ และใชห้ มายเลขไอพีของเราท์เตอร์ทีส่งแพ็กเก็ตนนั เป็ น
ขอ้ มูลในฟิลด์เน็คตฮ์ ็อป (Next Hop) เราทต์ ิงเทเบิล
RIP จะป้องกนั ลูป (Loop) โดยกาํ หนดค่าสูงสุดให้กบั จาํ นวนฮอ็ ปทีอนุญาต ค่าดีฟอลตค์ ือ 15 ซึง
ถา้ เราทเ์ ตอร์ไดร้ ับแพ็กเก็ตทีมีค่าเมทริก (Metric) เท่ากบั 15 หรือแพก็ เก็ตนนั ก็จะถูกละทิงไป และทาํ ให้
เครื อข่ายนันไม่มีเส้นทางไปถึง (Unreachable) ข้อเสี ยของเทคนิ คนี ก็คือ ทําให้เครื อข่ายนันมี
เส้นผา่ ศูนยก์ ลางไม่เกิน 15 ฮอ็ ป
RIP เวอร์ชนั 2 มีรูปแบบของแพ็กเก็ตดงั แสดงในภาพที 13.16 ในเวอร์ชนั นีมีการเปลียนแปลง
จากเวอร์ชนั แรกโดยเพิมในส่วนของการพิสูจน์ทราบตวั ตน
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 515
ภาพที 13.16 รูปแบบเฟรมของ RIPv2
ทีมาของภาพ: http://ericleahy.com/index.php/implement-ipv4-rip-version-2-ripv2/
จากภาพที 13.16 ในแต่ละฟิลดม์ ีความหมาย ดงั นี
Command: เป็นคาํ สงั ทีบอกวา่ เป็ นการร้องขอหรือการตอบกลบั การร้องขอจะเป็นการ
ขอขอ้ มูลบางส่วนหรือทงั หมดของเราท์ติงเทเบิล ส่วนการตอบกลบั นันอาจเป็ นการ
อพั เดตเราทต์ ิงเทเบิลซึงทาํ เป็นช่วงเวลาอยูแ่ ลว้ หรือเป็ นการตอบกลบั การร้องขอมา ใน
แพ็กเก็ตการตอบกลบั นนั จะมีขอ้ มูลจากเราท์ติงเทเบิล ถา้ เราท์ติงเทเบิลมีขนาดใหญ่ก็
อาจตอ้ งส่งแพก็ เก็ตหลายครัง
Version: เป็ นฟิ ลด์ทีระบุเวอร์ชันของ RIP ถ้าเป็ นเวอร์ชัน 2 หรือมีการพิสูจน์ทราบ
ตวั ตน ค่าในฟิ ลดน์ ีกจ็ ะกาํ หนดใหเ้ ป็น 2
Unused: ฟิ ลดน์ ียงั ไม่มีการใชง้ าน และจะถูกกาํ หนดใหม้ ีค่าเป็ น 0
AFI (Address Family Identifier): กาํ หนดประเภทของแอดเดรสในเวอร์ชนั 2 ประเภท
ของแอดเดรสจะกาํ หนดไวใ้ น RFC 1058 และถ้าค่าในฟิ ลด์นีกาํ หนดให้เป็ น 0xFFFF
ส่วนฟิลดท์ ีเหลือจะเป็ นขอ้ มูลเกียวกบั การพิสูจนท์ ราบตวั ตน โดยการพิสูจน์ทราบตวั ตน
ทีรองรับมีประเภทเดียว คือ การใชร้ หสั ผา่ น (Simple Password)
Route tag: เป็นฟิ ลดท์ ีแยกแยะระหวา่ งการจดั เส้นทางภายใน หรือทีเรียนรู้โดย RIP เอง
และการจดั เสน้ ทางภายนอกหรือทีเรียนรู้โดยโพรโทคอลอืน
IP Address: ฟิ ลดท์ ีระบุหมายเลขไอพี
Subnet mask: เป็ นซับเน็ตมาสก์สําหรับเครือข่ายนัน ถ้ามีค่าเป็ น 0 ก็แสดงว่าไม่ได้
กาํ หนดซบั เน็ตมาสก์
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 516
Next hop: เป็นฟิ ลดท์ ีกาํ หนดเราทเ์ ตอร์ทีจะส่งแพก็ เก็ตต่อไปให้
Metric: ระบุจาํ นวนเราท์เตอร์หรือฮ็อปทีจะตอ้ งส่งผา่ นก่อนทีจะถึงเครือข่ายปลายทาง
ซึงคุณคา่ จะอยรู่ ะหวา่ ง 1-15 และถา้ ค่าเป็ น 16 แสดงว่า ไมม่ ีเส้นทางทีจะไปถึงเครือข่าย
ปลายทางนนั
แมว้ า่ RIP นนั จะมีใช้มานานแลว้ และยงั มีขอ้ จาํ กดั หลายเรือง แต่ก็ยงั ถือว่าไม่ลา้ สมยั เนืองจาก
RIP นนั ไดพ้ ฒั นาเกือบถึงขีดสุด มีความเสถียรสูง มีการใชง้ านอยา่ งแพร่หลาย และง่ายตอ่ การคอนฟิกและ
ดูแล เนืองจากความงา่ ยนีจึงเหมาะสาํ หรับเครือข่ายขนาดเล็กทีไม่มีลิงคส์ าํ รองสาํ หรับรองรับโพรโทคอล
ชนั สูง
OSPF (Open Shortest Path First)
โพรโทคอล OSPF เป็ นโพรโทคอลแบบลิงค์สเตท (Link State) ซึงจะใช้คอสต์ (Cost) แทน
เมทริก โพรโทคอลนีจะเลือกลิงคท์ ีมีคอสตน์ อ้ ยทีสุดในกรณีทีมีหลายลิงค์ ในปัจจุบนั ส่วนใหญ่จะหนั มา
นิยมโพรโทคอล OSPF เนืองจากการส่งแพ็กเก็ตจะน้อยกวา่ และทาํ งานไดด้ ีกว่าสําหรับเครือข่ายขนาด
ใหญ่ โพรโทคอล OSPF ยงั รองรับการทาํ ซับเน็ตแบบความยาวของซับเน็ตไม่คงที (Variable Length
Subnet Mask) ไดด้ ว้ ย ซึงใหก้ ารออกแบบเครือข่ายมคี วามยดื หยนุ่ มากขึน
OSPF เป็ นเราท์ติงโพรโทคอลทีพัฒนาสําหรับเครื อข่าย IP โดยคณะทํางาน IGP (Interior
Gateway Protocol working group) ซึ ง เป็ น ส่ ว น ห นึ ง ข อ ง IETF ( Internet Engineer Task Force)
คณะทาํ งานนีได้ก่อตงั ขึนเมือปี ค.ศ. 1988 โดยมีวตั ถุประสงค์เพือพฒั นา IGP โดยใช้อลั กอริทึม SPF
(Shortest Path First) สําหรับใชก้ บั อินเทอร์เน็ต เนืองจากในขณะนนั เราทต์ ิงของเครือข่ายขนาดใหญ่และ
มีความหลากหลาย OSPF ได้พฒั นาขึนตามงานวิจยั หลายผลงาน ซึงรวมถึงของ โบลต์ เบอราเน็ค และ
นิวแมน (Bolt, Beranek, and Newman) ทีคิดค้นอัลกริทึม SPF ในปี ค.ศ. 1978 เพือใช้กับเครื อข่าย
ARPANET แล ะจาก โพ รโท ค อลใน ชุ ด OSI ซึ งคือ โพ รโท คอล IS-IS (Intermediate System-to-
Intermediate System)
OSPF มีคุณสมบตั ิทีสําคญั อยู่ 2 ประการ สาํ หรับประการแรกคือ OSPF เป็ นโพรโทคอลแบบเปิ ด
ซึงหมายความวา่ ไม่มีลิขสิทธิ และไดต้ ีพิมพใ์ น RFC-1247 ส่วนประการทีสอง คือ OSPF ออกแบบบน
พืนฐานของอลั กอริทึม SPF หรือบางครังก็รู้จกั ในชือ ดิจ์คสตราอลั กอริทึม (Dijkstra Algorithm) ซึงเป็ น
ชือของคนทีคิดคน้ อลั กอริทึมนี
OSPF เป็ น Link State เราท์ติงโพรโทคอล ทีจะประกาศขอ้ มูลทีเกียวกบั สถานภาพการเชือมต่อ
หรือ LSA (Link State Advertisement) ไปยงั เราทเ์ ตอร์ทีมีอยูใ่ นพืนทีระดบั เดียวกนั ซึงขอ้ มูลทีส่งนันจะ
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 517
รวมถึงอินเทอร์เฟซ เมทริกทีใช้และอืน ๆ เมือเราทเ์ ตอร์รวบรวมขอ้ มูลจากเราทเ์ ตอร์อืน ๆ แลว้ ก็จะใช้
อลั กอริทึม SPF ในการคาํ นวณเส้นทางทีสันทีสุดสาํ หรับเชือมไปยงั แต่ละโหนดในพืนทีนนั ๆ
OSPF จะแตกต่างจาก RIP และ IGRP คือ OSPF เป็ น Link State เราท์ติงโพรโทคอลในขณะที
RIP และ IGRP เป็ น Distance Vector เราทต์ ิงโพรโทคอล ซึงในการอพั เดตเราทต์ ิงเทเบิลนนั เราทเ์ ตอร์จะ
ส่งขอ้ มูลทงั หมดหรือบางส่วนไปยงั เฉพาะเราทเ์ ตอร์ทีเชือมตอ่ กบั ตวั มนั เทา่ นนั
หลกั การทาํ งานของ OSPF
การทาํ งานของ OSPF จะเป็ นแบบมีลาํ ดับขนั (Hierarchy) หน่วยทีใหญ่ทีสุดในระบบ คือ AS
(Autonomous System) ซึงเป็ นเครือข่ายทีอยภู่ ายใตก้ ารบริหารจดั การเดียวกนั และมีการแลกเปลียนขอ้ มูล
เกียวกับการทําเราท์ติง OSPF เป็ นเราท์ติงโพรโทคอลแบบ Intra-AS (Interior Gateway) หรือเป็ น
โพรโทคอลทีใชจ้ ดั การเราทต์ ิงในระบบ AS หนึง อยา่ งไรก็ตาม OSPF สามารถรับและส่งขอ้ มูลเราท์ติง
เทเบิลระหวา่ งระบบ AS ได้
ในแต่ละ AS สามารถแบ่งออกเป็นพนื ที (Area) ซึงเป็นกลุ่มเครือขา่ ยทีอยตู่ ิดกนั พร้อมทงั โฮสตท์ ี
เชือมต่อในแต่ละเครือข่าย เราท์เตอร์ทีมีหลายอินเทอร์เฟซอาจเป็ นสมาชิกของหลายพืนที ซึงจะเรียก
เราทเ์ ตอร์เหล่านีวา่ “แอเรียบอร์เดอร์เราทเ์ ตอร์ (Area Border Router)” หรือ เรียกสัน ๆ วา่ “ABR” ซึงจะมี
การจดั เกบ็ ขอ้ มูลเกียวกบั การเชือมต่อของแตล่ ะแอเรียแยกกนั
ขอ้ มูลเกียวกบั การเชือมต่อนนั เปรียบเสมือนแผนทีของเครือข่าย ซึงประกอบดว้ ย LSA ทีได้รับ
จากเราท์เตอร์ทงั หมดทีอยูใ่ นแอเรียเดียวกนั เนืองจากเราท์เตอร์ทีอยูใ่ นแอเรียเดียวกนั มีการแลกเปลียน
ขอ้ มูลกนั เป็ นประจาํ ดงั นนั ทุกเราทเ์ ตอร์ในแอเรียนนั จะไม่มีการส่งไปยงั แอเรียอืน ดงั นนั ทราฟฟิ กของ
การส่งขอ้ มูลเราทต์ ิงนนั จงึ นอ้ ยกวา่ เมือเทยี บกบั การทีไมแ่ บ่งเครือขา่ ยออกเป็ นหลาย ๆ แอเรีย
การแบ่งเป็ นหลาย ๆ แอเรียทาํ ให้การเราทต์ ิงแบ่งออกเป็ น 2 ประเภท ซึงขึนอยูก่ บั วา่ ฝ่ ายส่งและ
ฝ่ ายรับอยู่ในแอเรียเดียวกันหรือไม่ Intra-area เกิดขึนเมือฝ่ ายรับและฝ่ ายส่งอยู่ในแอเรียเดียวกนั ส่วน
Inter-area เกิดขึนเมือฝ่ ายรับและฝ่ ายส่งอยู่คนละแอเรียกนั แบ็กโบนจะรับผิดชอบเกียวกบั การกระจาย
ขอ้ มูลเราท์ติงระหวา่ งแอเรีย ซึงแบ็กโบนจะประกอบดว้ ยแอเรียบอร์เดอร์เราทเ์ ตอร์ (ABR) เราท์เตอร์ที
ไม่ไดจ้ ดั อยใู่ นแอเรียใด ๆ ภาพที 13.17 แสดงเครือข่ายทีมีหลาย ๆ แอเรีย
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 518
ภาพที 13.17 การแบ่งแอเรีย (Area) ของ OSPF ช่วยลดขนาดของ Routing Table ได้
จากภาพที 13.17 เราท์เตอร์ R3, R4 และ R7 เป็นแอเรียบอร์เดอร์เราทเ์ ตอร์ (ABR) และถือวา่ เป็ น
แบก็ โบนของเครือข่าย ถา้ โฮสต์ H1 ตอ้ งการส่งแพก็ เกต็ ไปยงั โฮสต์ H2 แพก็ เก็ตก็จะถูกส่งไปยงั เราทเ์ ตอร์
R1, R3, R7, R8 และ R9 ตามลาํ ดบั แบ็กโบนของเครือข่ายก็เป็ นแอเรียหนึง ดงั นัน เราท์เตอร์ทีอยู่บน
แบก็ โบนก็จะใช้อลั กอริทึมเดียวกนั ในการอพั เดตขอ้ มูลเกียวกบั เราทต์ ิงของแบก็ โบน อนิ ทราเราทเ์ ตอร์จะ
มองไม่เห็น และไม่จาํ เป็ นตอ้ งรู้โทโพรโลยีของแบ็กโบน และทาํ นองเดียวกนั แบ็กโบนเราท์เตอร์ก็ไม่
จาํ เป็ นตอ้ งรู้จกั โทโพรโลยีของแบ็กโบน และทาํ นองเดียวกนั แบ็กโบนเราท์เตอร์ก็ไม่จาํ เป็ นตอ้ งรู้จกั
โทโพรโลยขี องแตล่ ะแอเรียทีเชือมตอ่ เขา้ กบั แบ็กโบน
OSPF มีขอ้ กาํ หนดพิเศษ คือ เมือมีหลาย ๆ แอเรียเชือมตอ่ กนั หนึงในนนั จะตอ้ งเป็ นแอเรีย 0 ซึง
จะเรียกแอเรียนีวา่ แบ็กโบน เมือจะออกแบบเครือข่ายก็ให้เริมตน้ จากแอเรีย 0 ก่อนแลว้ ค่อย ๆ ขยายโดย
การเพิมแอเรียอืนเข้ามา แบ็กโบนจาํ เป็ นทีต้องอยู่ตรงกลางระหว่างแอเรียอืน ๆ หรือแอเรี ยอืน ๆ
จาํ เป็ นตอ้ งเชือมต่อโดยตรงกับแอเรีย 0 เท่านัน เหตุผลก็เนืองจากแอเรียอืน ๆ จะโยนขอ้ มูลเกียวกับ
เราทต์ ิงไปให้แอเรีย 0 หลงั จากนีก็จะเป็ นหนา้ ทีของแอเรีย 0 หรือแบ็กโบนทีกระจายขอ้ มูลนีไปยงั แอเรีย
ทงั หมด ในกรณีทีบางแอเรียไม่สามารถเชือมต่อโดยตรงกบั แอเรีย 0 ก็จะตอ้ งสร้างเวอร์ชวลลิงค์ (Virtual
Link) ซึงจะเป็นลิงคท์ ีคอนฟิ กใหส้ ่งแพก็ เก็ตผา่ นแอเรียอืนไปยงั แอเรีย 0
สตบั แอเรีย (Stub Area) เป็ นแอเรียพิเศษทีไม่ตอ้ งการเราท์ติงเทเบิลจากขา้ งนอก ซึงเราทจ์ ากขา้ ง
นอกนันจะได้มาโดยโพรโทคอลอืนทีไม่ใช่ OSPF ดงั นัน สตบั แอเรียจาํ เป็ นตอ้ งมีดีฟอลต์เราท์เพือส่ง
ขอ้ มูลออกไปขา้ งนอก
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 519
เมือหลาย ๆ AS เชือมต่อกนั ก็จะมี AS บอร์เดอร์เราท์เตอร์ (ASBR) ซึงเชือมต่อ AS เหล่านนั เขา้
ดว้ ยกนั ซึงเราท์เตอร์นีจะเรียนรู้เราท์เตอร์อืน ๆ ทีเชือมต่อโดยใช้โพรโทคอล EGP (Exterior Gateway
Protocol) หรือ BGP (Border Gateway Protocol)
อลั กอริทมึ SPF
อลั กอริทึม SPF เป็นพืนฐานของโพรโทคอล OSPF เมือเปิ ดเราทเ์ ตอร์และเริมทาํ งานครังแรกกจ็ ะ
มีการเซตค่าเริมตน้ ในเราทต์ ิงเทเบิลแลว้ ก็ตรวจเช็คดูว่าอินเทอร์เฟซทาํ งานปกติ หลงั จากนนั OSPF ก็จะ
ใชโ้ พรโทคอล OSPF Hello เพือติดต่อกบั เราท์เตอร์ทีอยู่ติดกนั เมือเราท์เตอร์ทีอยู่ติดกนั ได้รับแพ็กเก็ต
Hello ก็จะส่งแพก็ เก็ต Hello ตอบกลบั มาเหมือนกนั เพือเป็ นการแสดงวา่ มีเราทเ์ ตอร์ทีอยูต่ ิดกนั และยงั คง
ทาํ งานปกติ
อัลกอริทึม SPF จะเริมตน้ คํานวณโดยกาํ หนดให้เราท์เตอร์นันเป็ นรูทของทรี แล้วคาํ นวณ
เส้นทางทีสันทีสุดไปยงั แต่ละปลายทางโดยใช้ค่าทีกาํ หนดให้เป็ นนําหนักของแต่ละลิงค์ทีเชือมต่อ
ระหวา่ งเราทเ์ ตอร์ แตล่ ะเราทเ์ ตอร์กจ็ ะมีมุมมองของตวั เองต่อโทโพรโลยขี องเครือขา่ ย ถึงแมว้ า่ แตล่ ะเราท์
เตอร์จะใชข้ อ้ มลู เดียวกนั ในการคาํ นวณ ต่อไปนีเป็นสิงทีเกียวขอ้ งกบั การคาํ นวณเสน้ ทางทีสันทีสุด
OSPF Cost
คอสต์ (Cost) หรือเมทริก (Metric) เป็ นหน่วยวดั นาํ หนกั ทีให้แตล่ ะลิงค์ หากยงิ มีค่ามากยงิ เป็นสิง
ทีบอกวา่ ลิงคน์ ีมีประสิทธิภาพนอ้ ย คอสตเ์ ป็ นสิงทีบอกโอเวอร์เฮดทีตอ้ งสูญเสียเมือส่งผา่ นอินเทอร์เฟซ
หรือลิงคน์ นั คอสต์จะแปรผกผนั กบั แบนด์วดิ ธ์ของอินเทอร์เฟซ ดงั นนั ถา้ แบนด์วิดธ์ก็แสดงวา่ คอสต์ตาํ
ดงั นนั ถา้ ลิงคน์ นั มีความ 56kbps ก็จะมีค่าคอสตท์ ีสูงกวา่ ลิงคอ์ ีเทอร์เน็ตทีมีความเร็ว 10 Mbps โดยทวั ไป
จะใชส้ ูตรในการคาํ นวณคา่ คอสตด์ งั แสดงขา้ งล่าง
Cost = 100,000,000/(bandwidth in bps)
ย ก ตัว อ ย่าง เช่ น ค อ ส ต์ สํ าห รั บ อี เท อ ร์ เน็ ต 10 Mbps ก็ จ ะ ส าม าร ถ คําน ว ณ ไ ด้ คื อ
100,000,000/10,000,000 = 10 ส่ วน ค่าค อส ต์สํ าห รับ ลี ส ไล น์ T1 (1.544 Mbps) ก็ จะมี ค่ าเท่ ากับ
100,000,000/1,544,000 = 64 โดยทวั ไปในการคาํ นวณคอสต์นนั จะใชแ้ บนด์วดิ ธ์เป็ นหลกั แต่ก็สามารถ
กาํ หนดใหเ้ ป็นคา่ อืนได้
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 520
ภาพที 13.18 ผงั เครือข่ายพร้อมค่าคอสต์ (Cost) ของแต่ละอนิ เทอร์เฟซของเราท์เตอร์
จากภาพที 13.18 เราทเ์ ตอร์ R1 จะคาํ นวณ SPF โดยใชค้ ่าคอสตข์ องอินเทอร์เฟซทีเชือมกบั แต่ละ
เครือข่าย ดงั นนั คอสตข์ องอินเทอร์เฟซทีเชือมต่อกบั เครือข่าย 128.213.0.0 ของเราทเ์ ตอร์ R2 จะไม่นาํ มา
คาํ นวณสําหรับเป็ นค่าคอสต์ไปยงั เครือข่าย 192.123.11.0 จากเราท์เตอร์ R1 ดังนัน ค่าคอสต์ไปยงั
เครือข่าย 192.123.11.0 จากเราทเ์ ตอร์ R1 คือ 15 (10+5) ส่วนเครือข่าย 222.221.10.0 นนั สามารถไปถึงได้
สองเส้นทาง คือ ผา่ นเราท์เตอร์ R4 ซึงมีคอสต์ คือ 20 (10+10) และผา่ นเราทเ์ ตอร์ R2, R3 ซึงมีค่าคอสต์
คือ 20 (10+5+5) เหมือนกนั ในกรณีทีคา่ คอสตเ์ ท่ากนั ก็จะเก็บไวท้ งั สองคา่ เพืออาจใชเ้ ป็ นเส้นทางสาํ รอง
หรือทาํ โหลดบาลานซิงได้ เมือคาํ นวณเส้นทางทีสันทีสุดแลว้ ก็จะไดโ้ ทโพรโลยีเครือข่ายในมุมมองของ
เราทเ์ ตอร์ R1 ดงั ภาพที 18.19
ภาพที 13.19 ทรี (Tree) ทคี าํ นวณได้จากคอสต์แต่ละเราท์เตอร์ หนา้ ที 521
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง
หลงั จากทีคาํ นวณ SPF Tree เสร็จแลว้ ก็จะสร้างเราทต์ ิงเทเบิลตามทรีทีสร้างได้ สาํ หรับเครือข่าย
ทีเชือมต่อตรงกบั เราท์เตอร์ก็จะมีคอสต์เป็ น 0 จากตวั อย่างเราท์ติงเทเบิลของเราท์เตอร์ R1 ก็จะได้ดัง
แสดงในตารางที 13.3
ตารางที 13.3 เราท์ติงเทเบลิ ของเราท์เตอร์ R1
เครือข่ายปลายทาง เกตเวย์ คอสต์
128.123.0.0 Local 0
192.123.11.0 R2 15
222.221.10.0 R3 20
222.211.10.0 R4 20
Area and Border Router
ตามทีไดก้ ล่าวมาแล้วขา้ งต้น OSPF จะใช้การบรอดคาสต์ขอ้ มูลเกียวกบั ลิงค์สเตจเพืออัพเดต
เราท์เตอร์ในเครือข่าย ถา้ มีการเปลียนแปลงใด ๆ เกียวกบั การเราท์ติง เช่น ลิงค์ขาด เราท์เตอร์นัน ๆ ก็
จะบรอดคาสตข์ อ้ มูลไปยงั ทุก ๆ เราท์เตอร์ในเครือข่าย การบรอดคาสต์ขอ้ มูลและการคาํ นวณเส้นทางที
สันทีสุดใหม่ เพือสร้างเราทต์ ิงเทเบิลใหม่โดยจะทาํ เฉพาะในแอเรียใดแอเรียหนึงเท่านนั ดงั นนั เราทเ์ ตอร์
ทีอยูใ่ นแอเรียเดียวกนั จึงมีฐานขอ้ มูลเกียวกบั ลิงคส์ เตจเหมือนกนั เราทเ์ ตอร์ทีเชือมต่อเขา้ กบั หลายแอเรีย
หรือเชือมต่อเขา้ กบั แบ็กโบนของเครือข่ายจะเรียกวา่ “ABR (Area Border Router)” เราทเ์ ตอร์นีก็จะเก็บ
ขอ้ มูลเกียวกบั แบก็ โบนและแอเรียอืน ๆ ทีเชือมต่อดว้ ย
แต่ละแอเรียนนั จะผูกติดกบั อินเทอร์เฟซของเราทเ์ ตอร์ ดงั นนั เราทเ์ ตอร์ทีทุกอินเทอร์เฟซอยใู่ น
แอเรียเดียวกันจะเรียกว่า “IR (Internal Router)” และเราท์เตอร์ทีมีอินเทอร์เฟซในหลายแอเรียก็จะ
เรียกว่า “ABR (Area Border Router)”ส่วนเราท์เตอร์ทีหน้าทีเป็ นเกตเวยร์ ะหว่าง OSPF และเราท์ติง
โพรโทคอลอืน เช่น IGRP, EIGRP, IS-IS, RIP, BGP เป็ นต้น หรือเชือมต่อเข้ากับ AS (Autonomous
System) อืน เราท์เตอร์ประเภทนีจะเรี ยกว่า “ASBR (Autonomous System Border Router)” แต่ทุก
เราทเ์ ตอร์อาจทาํ หนา้ ทีเป็น ABR หรือ ASBR ก็ได้
Neighbor
เราท์เตอร์ทีเชือมต่อกนั โดยตรงจะเรียกวา่ “เนเบอร์ (Neighbor)” หรือเพือนบา้ น เราท์เตอร์จะ
เรียนรู้เนเบอร์โดยการส่งแพก็ เก็ต Hello ซึงแพ็กเก็ตนีจะถูกส่งออกเป็ นช่วงเวลาไปยงั ทุก ๆ อินเทอร์เฟซ
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 522
ของเราท์เตอร์ ซึงเมือเราท์เตอร์อีกหนึงได้รับแพ็กเก็ตก็จะตอบกลับโดยใส่หมายเลขไอพีตวั เองใน
แพก็ เก็ตนนั ดว้ ย เราทเ์ ตอร์จะกลายเป็ นเนเบอร์ซึงกนั และกนั เมือเห็นดว้ ยกบั ส่งตอ่ ไปนี
Area-id: เราทเ์ ตอร์ทีเชือมต่อกนั โดยตรงจะตอ้ งอยู่ในแอเรียเดียวกนั ซึงหมายความวา่
อินเทอร์เฟซของเราทเ์ ตอร์ทงั สองนนั จะตอ้ งมีหมายเลขไอพอี ยใู่ นเครือข่ายเดียวกนั ดว้ ย
Authentication: OSPF จะอนุญาตให้กาํ หนดให้ใชร้ หัสผ่านในแต่ละแอเรียได้ ดงั นนั
เราทเ์ ตอร์ทีตอ้ งการเป็ นเนเบอร์กนั จาํ เป็ นทีตอ้ งมีรหสั ผา่ นเหมือนกนั
Hello and Dead Intervals: เราทเ์ ตอร์จะรับส่งแพ็กเก็ต Hello ซึงเป็ นการตรวจสอบดว้ ย
ว่าอีกเราท์เตอร์หนึงยังทํางานปกติหรื อไม่ และจะใช้ข้อมูลนี ในการเลือก DR
(Designated Router) ด้วยในกรณีทีเป็ นมลั ติแอกเซสเซ็กเมนท์ (Multiaccess Segment)
และมีหลายเราทเ์ ตอร์ทีเชือมตอ่ ยกตวั อยา่ งเช่น เครือข่ายอีเทอร์เน็ต ค่า Hello Interval มี
หน่วยเป็ น (วินาที) เป็ นระยะเวลาทีเราท์เตอร์จะตอ้ งส่งแพ็กเก็ต Hello อีกครัง ส่วน
Dead Interval เป็ นระยะเวลาทีถา้ ไม่ไดร้ ับแพ็กเก็ต Hello ก็จะประกาศว่า เราทเ์ ตอร์นนั
ดาวน์หรือไม่ทาํ งาน ช่วงเวลาทงั สองนีเราท์เตอร์จะตอ้ งใช้ค่าเดียวกนั ไม่เช่นนันก็จะ
เป็นเนเบอร์กนั ไมไ่ ด้
Stub area flag: ทงั สองเราท์เตอร์จาํ เป็ นต้องตกลงเกียวกบั Stub are flag ในแพ็กเก็ต
Hello
Adjacency
หลังจากทีเราท์เตอร์ได้เรียนรู้เนเบอร์แล้ว ขันต่อไป คือ แอดจาเซนซี (Adjacency) ซึงเป็ น
เราทเ์ ตอร์ทีจะแลกเปลียนฐานข้อมูลเกียวกบั เส้นทางขอ้ มูล เพือช่วยลดปริมาณทราฟฟิ กทีเกิดจากการ
แลกเปลียนขอ้ มูลกนั ในบางเซ็กเมนท์ OSPF จะเลือกเราทเ์ ตอร์หนึงขึนเป็น DR (Designated Router) และ
อีกเราทเ์ ตอร์หนึงเป็ นตวั สาํ รอง หรือ BDR (Backup Designated Router) สําหรับมลั ติแอกเซสเซ็กเมนท์
อยา่ งเช่น อีเทอร์เน็ต แนวคิดนีเกิดขึนเพอื ให้มีเราทเ์ ตอร์ทีทาํ หนา้ ทีเป็ นศูนยก์ ลางในการแลกเปลียนขอ้ มูล
แทนทีจะให้เราท์เตอร์แตล่ ะตวั แลกเปลียนขอ้ มูลซึงกนั และกนั ก็ใหแ้ ตล่ ะเราทเ์ ตอร์แลกเปลียนขอ้ มูลกบั
DR หรือ BDR เทา่ นนั
การเลือก DR หรือ BDR นนั จะทาํ โดยใช้โพรโทคอล Hello ซึงโพรโทคอลนีจะแลกเปลียนโดย
ใช้ไอพมี ลั ติคาสตใ์ นแต่ละเซ็กเมนท์ เราทเ์ ตอร์ทีมีสิทธิพิเศษสูงสุด (Priority) จะถูกเลือกใหเ้ ป็ น DR ของ
เซ็กเมนท์ ส่วนลาํ ดบั ทีสองเป็น BDR ถา้ มีสิทธิพิเศษเทา่ กนั เราทเ์ ตอร์ทีมี RID สูงกวา่ จะไดร้ ับการเลือก
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 523
OSPF Packet Format
ภาพที 13.20 รูปแบบแพก็ เกต็ ของ OSPF
ทีมาของภาพ: http://www.itcertnotes.com/2011/12/ospf-packet-format.html
จากภาพที 13.17 แพก็ เก็ตของ OSPF มีเฮดเดอร์ขนาด 24 ไบต์ โดยแต่ละฟิ ลดม์ ีความหมายดงั นี
Version Number: เป็นเวอร์ชนั ของ OSPF ซึงล่าสุด คือ เวอร์ชนั 3
Type: ประเภทของแพก็ เกต็ ทีรับส่ง ซึงแบ่งออกเป็นประเภทต่าง ๆ ดงั นี
Hello: เรียนรู้และสร้างเนเบอร์
Database Description: อธิบายโครงสร้างของฐานข้อมูลทีเก็บข้อมูลเกียวกับ
โทโพรโลยี ขอ้ นีจะแลกเปลียนเมือมีการสร้างแอดจาเซนซีแลว้
Link-state request: เป็ นการร้องขอขอ้ มูลบางส่วนจากฐานขอ้ มูลโทโพรโลยี
จากเนเบอร์ เมือเราท์เตอร์คน้ พบว่า ฐานขอ้ มูลของตวั เองนันลา้ สมยั หรือเป็ น
ลูกคา้ เก่า
Link-state Update: เป็ นแพก็ เก็ตทีตอบกลบั Link-state request นอกจากนียงั ใช้
สาํ หรับการประกาศ LSA เป็ นช่วงเวลา
Link-state acknowledgment: เป็ น การยืนยัน การได้รับแพ็กเก็ต Link-state
update
Packet Length: บอกความยาวของแพก็ เก็ตซึงจะรวมถึงความยาวของเฮดเดอร์ดว้ ย
Router ID: หมายเลขเราทเ์ ตอร์ทีเป็ นเครืองส่งแพก็ เก็ต
Area ID: เป็นแอเรียของแพก็ เกต็ นนั ซึงแต่ละแพก็ เก็ตนนั จะผกู กบั หนึงแอเรียเทา่ นนั
Checksum: ขอ้ มูลทีใชส้ าํ หรับการตรวจสอบขอ้ ผดิ พลาดของแพก็ เกต็
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 524
Authentication type: ประเภทของการพิสูจน์ทราบตวั ตน ซึงแต่ละแอเรียนันจะตอ้ งมี
การกาํ หนดวธิ ีการพสิ ูจน์ทราบตวั ตน
Data: ขอ้ มูลอืน ๆ ทีอยเู่ ลเยอร์สูงกวา่
IGRP (Interior gateway Routing Protocol)
โพรโทคอล IGRP พฒั นาโดยบริษทั ซิสโก้ ซิสเตม็ ส์ และเป็นโพรโทคอลทีนิยมใชก้ บั เราทเ์ ตอร์
ทีเชือมต่อเขา้ กับอินเทอร์เน็ต IGRP เป็ นโพรโทคอลแบบลิงค์สเตจทีมีวธิ ีการคาํ นวณเมทริกทีค่อนขา้ ง
ซบั ซอ้ นกวา่ โพรโทคอล OSPF โดยสิงทีพิจารณา เช่น
แบนดว์ ดิ ธ์ของลิงค์
ดีเลยข์ องลิงค์
โหลดของลิงค์
ความน่าเชือถือของลิงค์
โดยพิจารณาจากค่าต่าง ๆ เหล่านีทาํ ให้โพรโทคอล IGRP เป็ นโพรโทคอลทีมีประสิทธิภาพสูง
และทาํ ใหก้ ารจดั เส้นทางแพก็ เก็ตระหวา่ งเครือขา่ ยเป็นไปไดอ้ ยา่ งสมบูรณ์
ข้อจํากดั ของโพรโทคอล IGRP
เนืองจากโพรโทคอล IGRP เป็ นโพรโทคอลทีปรับปรุงจากโพรโทคอล RIPv1 โดยเน้นในเรือง
ของ Hop count และการคาํ นวณค่า Metric ดังนัน ข้อจาํ กัดบางอย่างของ RIPv1 ก็คงยงั อยู่ใน IGRP
เช่นกนั ดงั นี
เครือข่ายทีรองรับได้ยงั มีข้อจาํ กัดด้วยจาํ นวน Hop count มากทีสุดไม่เกิน 255 นัน
หมายความวา่ เครือขา่ ยจะรองรับการเชือมต่อเราทเ์ ตอร์ไดไ้ ม่เกิน 255 อุปกรณ์เทา่ นนั
ไม่สนบั สนุนเครือข่ายทีมีการแบ่งยอ่ ยแบบ VLSM นนั คือ IGRP จะไม่Advertise Subnet
แบบ VLSM แตจ่ ะ Advertise Subnet แบบ Classful
EIGRP (Enhance Interior Gateway Routing Protocol)
หลงั จากทีบริษทั Cisco ไดป้ ระสบความสําเร็จในการพฒั นาโพรโทคอล IGRP แลว้ บริษทั Cisco
ยงั ไม่หยุดพัฒนา Routing Protocol ให้มีประสิทธิภาพดียิงขึน จนในปี ค.ศ. 1990 Cisco ได้เปิ ดตัว
โพรโทคอลใหม่ทีพฒั นาต่อยอดจากโพรโทคอล IGRP นนั คือ โพรโทคอล EIGRP (Enhance IGRP) ซึง
ยงั คงเป็ นโพรโทคอลแบบ Distance Vector เช่นเดียวกัน แต่ได้ปรับปรุงแก้ไขข้อจาํ กดั ทีเกิดขึนบน
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 525
โพรโทคอล IGRP แลว้ ซึงจะมีวธิ ีการคน้ หาเส้นทางไดด้ ียิงขึนและมีประสิทธิภาพในการอพั เดตเส้นทาง
ในตารางเราทต์ ิงมากกวา่ ดว้ ย
BGP (Border Gateway Protocol)
BGP เป็ นโพรโทคอลจดั เส้นทางขอ้ มูลประเภท EGP (Exterior Gateway Routing) ซึงใชส้ ําหรับ
การเชือมต่อเครือข่ายระหว่าง AS โพรโทคอล BGP จะใช้พอร์ต 179 ของโพรโทคอล TCP เพือใช้การ
แลกเปลียนขอ้ มูลระหว่างเราท์เตอร์ ซึงจะมีการสร้างการเชือมต่อก่อนทีจะแลกเปลียนขอ้ มูลระหว่าง
เราท์เตอร์ ขอ้ มูลทีเราทเ์ ตอร์ทงั สองใชเ้ พือการแลกเปลียนกนั รวมไปถึงขอ้ มูลทีแสดงความสามารถใน
การสือสารกนั ได้ ขอ้ มูลนีจะช่วยใหเ้ ราทเ์ ตอร์สามารถสร้างเส้นทางทีปราศจากลูป (Loop) อีกทงั ยงั ใชเ้ พือ
การกาํ หนดเส้นทางเชิงนโนบายทีมีเนือหาตามทีกาํ หนด
ชนิดของข่าวสารทีใชใ้ น BGP มีอยู่ 4 แบบ ดงั นี
Open Message: ใชเ้ พือการสถาปนาจดั ตงั การเชือมต่อระหวา่ งเราทเ์ ตอร์
Keepalive: เป็ นขอ้ มูลทีใชท้ กั ทายเราทเ์ ตอร์เพือนบา้ น โดยการส่งออกมาเป็นห่วงเวลาที
แน่นอน เพือยนื ยนั วา่ เส้นทางนนั ใชง้ านไดอ้ ยู่
Update Message: ประกอบด้วยขอ้ มูลเกียวกับเส้นทาง รวมทงั คุณสมบัติของแต่ละ
เส้นทางขอ้ มูล ภายในขอ้ มูลทีส่งนีครอบคลุมไปถึงเส้นทางทีถูกถอดออกจากเราท์ติง
เทเบิล
Notification: ใชเ้ พือการแจง้ เตือนความผดิ พลาดทีเกิดขึน
แต่ละ AS นันจะตอ้ งมีหมายเลขประจาํ ซึงจะเรียกวา่ “ASN (Autonomous System Number)”
โดยหลกั การแล้ว ASN เป็ นหมายเลขในทางตรรกะทีกาํ หนดให้กบั เราท์เตอร์ทุกตวั ทีทาํ งานอยู่ภายใต้
ระบบการจดั การเดียวกนั โดยเราท์เตอร์เหล่านีจะมีการแชร์ขอ้ มูลเกียวกบั ตารางเลือกเส้นทางหรือเราทต์ ิง
เทเบิล และการอปั เดตภายใตส้ ภาวะการณ์ปกติ โดยเฉพาะเมือมีการเปลียนแปลงใด ๆ เกิดขึน
มาตรฐานการกําหนดหมายเลข ASN อยู่ภายใตก้ ารดําเนินงานของ IANA (Internet Assigned
Numbers Authority) ซึงเป็ นผกู้ าํ หนดหมายเลข ASN บนอินเทอร์เน็ต โดยเลขหมาย ASN นีสามารถมีได้
ตงั แต่เลข 1-65,535 โดยมีเลข 64,512 ไปจนถึง 65,535 ทีถูกสํารองไวใ้ ห้กบั เครือข่ายส่วนตัวทีไม่ได้
ทาํ งานบนอินเทอร์เน็ต เช่นเดียวกับหมายเลข IP ทีมีการกาํ หนดให้บางช่วงไม่ได้ถูกนํามาใช้งานบน
อินเทอร์เน็ต
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 526
BGP Attribute
ปกติโพรโทคอลเลือกเส้นทางทวั ไปจะใชว้ ธิ ีการเลือกเส้นทางทีดีทีสุดต่างกนั เช่น RIP จะใช้
จาํ นวนฮ็อป (Hop) เป็ นหลกั ในขณะที IGRP ใช้แบนด์วิดธ์เป็ นหลกั ส่วน EIGRP ใชก้ ารผสมผสานกนั
ระหว่างแบนด์วิดธ์และดีเลย์ (Delay) เป็ นแนวทางในการเลือกเส้นทาง นอกจากนี OSPF ใช้ค่าคอสต์
(Cost) เป็ นหลัก แต่ BGP ใช้แอตทริบิวต์ (Attribute) เป็ นหลักในการเลือกเส้นทางทีดีทีสุด การใช้
แอตทริบิวต์ของ BGP ไม่เพียงแต่ตอ้ งการรับขอ้ มูลเกียวกบั เส้นทางเท่านนั แต่ใชเ้ พือพิสูจน์เส้นทางทีดี
ทีสุดทีจะเดินทางไปสู่ปลายทางดว้ ย BGP ประกอบดว้ ยแอตทริบิวตต์ ่าง ๆ ดงั ตอ่ ไปนี
Weight Attribute: เป็ นมาตรฐานของซิสโก้ทีเราท์เตอร์ใชเ้ ป็ นการภายใน ค่า Weight
Attribute นีจะไม่มีการประกาศออกไปทีเราทเ์ ตอร์เพือนบา้ น ถา้ หากเราท์เตอร์ไดเ้ รียนรู้
และพบว่ามีเส้นทางมากกว่าหนึงทีจะเดินทางไปสู่ปลายทาง ดังนัน เส้นทางทีมีค่า
Weight สูงสุดจะไดร้ ับการพิจารณาวา่ เป็นเส้นทางแรกทีเลือก
Local Preference Attribute: เป็ นแอดทริบิวต์ทีบ่งบอกแก่ AS เกียวกับเส้นทางที
ตอ้ งการใช้เป็ นทางออกไปจาก AS เพือเดินทางไปสู่เครือข่ายปลายทาง เส้นทางใดมีค่า
Local Preference ทีสูงกวา่ จะไดร้ ับเลือกก่อน
Multi-exit Discriminator ห รื อ Metric Attribute: บ างค รั งถู ก เรี ยก ว่า “Multi-exit
Discriminator (MED, BGP-4)” หรื อ “Inter- As (BGP3)” เป็ นแอตทริ บิวต์ทีชี นําสู่
เพือนบ้านทีอยู่ภายนอก AS เกียวกับเส้นทางทีเหมาะสมทีจะเข้ามาใน AS แห่งนี
โดยเฉพาะในกรณีทีมีหลายเส้นทางทีจะเขา้ มาภายใน ซึง Metric Attribute จะชีแนะแก่
AS อืนได้ทราบถึงเส้นทางทีดีทีสุดทีจะเขา้ มาภายใน AS นี (ค่า Metric ยิงน้อยยิงเป็ น
คา่ ทีตอ้ งการ)
Origin Attribute: เป็ นแอตทริบิวตท์ ีเป็ นดงั เดิมของ BGP โดยเป็ นแอตทริบิวตท์ ีแสดง
ถึงขา่ วสารทีเกียวกบั จุดเริมตน้ ของเสน้ ทาง ประกอบดว้ ยคา่ 3 ประการ ดงั นี
IGP: ขอ้ มูลเกียวกบั เส้นทางทีจะเขา้ ถึงเครือข่าย
EGP: ขอ้ มูลเกียวกบั เส้นทางทีจะเขา้ ถึงเครือข่ายทีไดร้ ับการเรียนรู้โดย EGP ซึง
จะบ่งบอกเป็ นตวั อกั ษร “e” ในตาราง BGP
Incomplete: ข้อมูลเกียวกับเส้นทางสู่เครือข่ายทีได้รับการเรียนรู้โดยเหตุผล
อืน ๆ เช่น การทํา Redistribute Static Route เข้าที BGP และข้อมูลเส้นทาง
เกียวกบั ตน้ ทางไม่สมบูรณ์
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 527
AS_Path Attribute: เมือใดก็ตามทีมีขอ้ มูลเกียวกบั เส้นทางทีผา่ นการอพั เดตวิงผา่ น AS
ใด จะมีการเติมหมายเลข AS เขา้ ไปในขอ้ ความอพั เดตนนั ดว้ ย เช่น ถา้ แพ็กเก็ตเราท์ติง
อพั เดตวิงผ่าน AS100, AS200 และ AS300 ก็จะมีการบนั ทึกเลขหมาย AS ลงไปไวใ้ น
Update นีเสมอ กล่าวไดว้ า่ AS_Path Attribute เป็นรายชือของ AS ทีแพก็ เกต็ อพั เดตเราท์
ได้วิงผ่านและบันทึกไว้ เพือให้ทราบว่ามาจากทีใด เพือจะเดินทางสู่จุดมุ่งหมาย
ปลายทาง
Next Hop Attribute: เป็ นหมายเลขไอพีของฮ็อปต่อไปทีจะใช้เพือเดินทางไปสู่
เครือขา่ ยปลายทาง
Community Attribute: เป็ นวถิ ีทางทีจะรวมกลุ่มเส้นทางทีเป็ นปลายทางเขา้ ดว้ ยกนั เป็ น
กลุ่ม เราเรียกว่า “Community” มีการใช้ Route Map เพือจัดตัง Community Attribute
ปกติค่า Community Attribute ทีมีมาแตเ่ ดิม ไดแ้ ก่
No Export ไม่มีการประกาศเส้นทางนีไปสู่ Router BGP ทีอยตู่ า่ ง AS กนั
No Advertise ไมม่ ีการประกาศเส้นทางนีสู่เราทเ์ ตอร์ทีเชือมตอ่ กนั ใด ๆ
Internet ให้ประกาศเส้นทางนีไปสู่ Internet Community สู่เราทเ์ ตอร์ทุกตวั ทีอยู่
บนเครือข่ายของอนิ เทอร์เน็ต
การเลือกเส้นทางของ BGP
BGP สามารถรับการประกาศเส้นทางหลาย ๆ ชุดสําหรับปลายทางเดียวกนั โดยเส้นทางหลาย ๆ
ชุดนีมาจากแหล่งต่าง ๆ กนั หลายแห่งได้ แต่ BGP จะเลือกเส้นทางใดเส้นทางหนึงทีเห็นว่าดีทีสุด เมือ
เส้นทางทีดีทีสุดถูกเลือกแลว้ BGP จะนาํ เส้นทางทีดีทีสุดทีเลือกแลว้ ไปไวใ้ นตารางจดั เส้นทาง (Routing
Table) จากนันก็จะเผยแพร่เส้นทางนีไปให้เราท์เตอร์เพือนบา้ น BGP ใช้ตวั เลือกต่อไปนีเพือการเลือก
เส้นทางไปสู่ปลายทาง
หากเส้นทางระบุปลายทางทีไม่สามารถเขา้ ถึงได้ จะมีการยกเลิกการอพั เดต
BGP สนใจแตเ่ ส้นทางทีมีคา่ Weight มากทีสุด
หากเส้นทางใดมีค่า Weight เท่ากนั ก็จะเลือกเส้นทางใดทีมีค่า Local Preference มาก
ทีสุด
หากค่า Local Preference มีค่าเทา่ กนั จะเลือกเส้นทางทีมีจุดเริมตน้ ที BGP ของเราทเ์ ตอร์
ตวั ปัจจบุ นั
หากไม่มีทีใดทีเป็นตน้ ทางของเส้นทาง จะเลือกเส้นทางทีมีคา่ AS_Path ทีสันทีสุด
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 528
หากทุกเส้นทางต่างก็มี AS_Path ทีเท่ากนั ทงั หมด ให้เลือกเส้นทางทีมีค่า Origin น้อย
ทีสุด (IGP มีคา่ นอ้ ยกวา่ EGP และ EGP มีคา่ นอ้ ยกวา่ Incomplete)
หากคา่ Origin เท่ากนั ใหเ้ ลือกเส้นทางทีมีคา่ MED ตาํ ทีสุด
หากเส้นทางนนั มีคา่ MED เทา่ กนั ให้เลือกเส้นทางภายนอกทีเหนือกวา่ เสน้ ทางภายใน
หากเสน้ ทางทงั สองมีคา่ เท่ากนั ให้เลือกเส้นทางผา่ นมายงั IGP ทีใกลท้ ีสุด
เลือกเส้นทางทีมีค่า IP Address ตาํ ทีสุดดงั ทีกาํ หนดไวใ้ น Router ID ของ BGP Router
เวอร์ชันปัจจุบนั BGP คือ เวอร์ชัน 4 (BGP-4) ซึงกาํ หนดไวใ้ น RFC 1771 ซึงมีการใช้งานบน
เครือข่ายอินเทอร์เน็ต BGP เป็น Distance Vector Algorithm แต่มีเทคนิคทีเพิมเขา้ ไป
IS-IS (Intermediate System-to-Intermediate System)
IS-IS เป็ นลิงคส์ เตจเราทต์ ิงโพรโทคอลทีมีรูปแบบคลา้ ยกบั OSPF อยา่ งไรก็ตาม IS-IS ถูกพฒั นา
โดย ISO และเป็ นส่วนหนึงของโพรโทคอล OSI โดยหลกั การคือ เราท์เตอร์จะแลกเปลียนขอ้ มูลเกียวกบั
เราทต์ ิง โดยขอ้ มูลทีแลกเปลียนนนั จะมีแคค่ ่าเมทริก เช่น ความล่าชา้ ความสินเปลือง และความผดิ พลาด
แพ็กเก็ตทีรับส่งโดย IS-IS แบ่งออกเป็ น 3 ประเภท คือ IS-IS Hello Packet, Link State Packet
(LSP) และ Sequence Number Packet (SNP) แต่ละแพก็ เกต็ จะมีส่วนหวั ตามดว้ ยส่วนทีมีขนาดคงที และ
ส่วนทีแปรผนั ขอบเขตของแตล่ ะแพก็ เกต็ ใหค้ าํ จาํ กดั ความได้ ดงั นี
โดยพนื ฐานแลว้ IS-IS กระจายโครงสร้างเราทเ์ ตอร์ซึงเป็ นเส้นทางทีสันทีสุดทีคาํ นวณไดอ้ อกไป
แต่ละเราท์เตอร์จะประกาศทีอยูข่ องชนั สือสารควบคุมระบบเครือข่ายทีผูอ้ ืนสามารถติดต่อไดผ้ ่านทาง
แพ็กเก็ตบอกสถานะการเชือมต่อทีอยูน่ ีอาจอยูใ่ นรูป IP, IPX, Apple Talk หรือแบบอืน ๆ กไ็ ด้ IS-IS ยงั มี
ความสามารถในการติดต่อกบั โพรโทคอลในชันสือสารควบคุมระบบเครือข่ายหลายชนิดได้ในเวลา
เดียวกนั
คุณสมบัติหลายอย่างของโพรโทคอล IS-IS ยงั นําไปใช้ในโพรโทคอล OSPF ซึงได้แก่ ขีด
ความสามารถในการสร้างเสถียรภาพของการปรับปรุงขอ้ มูลจากแพก็ เก็ตบอกสถานการณ์เชือมตอ่ ดว้ ยตวั
เราทเ์ ตอร์เอง ซึงเป็ นหลกั การสาํ คญั ทีนาํ ไปใชใ้ นการออกแบบเราท์เตอร์ในระบบเครือข่ายเฉพาะบริเวณ
และนาํ ไปใชเ้ ป็นวธิ ีการคาํ นวณและสนบั สนุนการแบ่งแยกเส้นทางเดินขอ้ มูลและอืน ๆ ดงั นนั IS-IS และ
OSPF จึงมีความแตกต่างกนั น้อยมาก ส่วนทีแตกต่างกนั อย่างชดั เจนคือ IS-IS ทาํ การเขา้ รหัสขอ้ มูลใน
รูปแบบทีง่ายต่อการส่งโพรโทคอลในชนั สือสารควบคุมระบบเครือขา่ ยหลายชนิดไปพร้อมกนั ไดอ้ ยา่ งไม่
มีปัญหา แต่ OSPF ไม่สามารถทาํ ได้ ข้อได้เปรียบของ IS-IS นีจะเป็ นประโยชน์อย่างมากในระบบ
เครือขา่ ยขนาดใหญท่ ีมีโพรโทคอลใชง้ านหลาย ๆ แบบ.
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 529
สรุปท้ายบทที 13
ARP (Address Resolution Protocol) คือ โพรโทคอลทีทําหน้าทีในการค้นหาหมายเลข
Hardware Address
วธิ ีการคน้ หาหมายเลข MAC Address มีอยู่ 2 วธิ ี ไดแ้ ก่
1) Direct Mapping Resolution
2) Dynamic Mapping Resolution
RARP (Reverse Address Resolution Protocol) คือ โพรโทคอลทีทาํ งานในลกั ษณะเดียวกนั กบั
ARP แตท่ าํ งานตรงกนั ขา้ มกนั คือ จะคน้ หาหมายเลข IP Address จากหมายเลข Mac Address ทีมีอยู่
ICMP (Internet Control Message Protocol) คือโพรโทคอลทีมาเสริมให้กบั IP เนืองจาก IP
ไมม่ ีคุณสมบตั ใิ นการรับประกนั ความครบถว้ นของขอ้ มูลในการส่งไปยงั ปลายทาง
ประเภทของ ICMP Message ไดแ้ ก่
1. ข้ อความแสดงข้ อผิดพลาดทีตรวจพบ (Error Message) แบ่งเป็ นหัวข้อหลัก ๆของ
ขอ้ ผดิ พลาดทีตรวจพบ ไดด้ งั นี
Destination Unreachable
Source Quench
Time Exceeded
Parameter Problem
2. ข้อความแจ้งข่าวสารทัวไป (Information Message) ข้อความแจ้งข้อมูลข่าวสารทัวไป
แบง่ เป็ นหวั ขอ้ หลกั ๆ ไดด้ งั นี
Echo Message
Redirect Message
Information Message
Timestamp Message
Router Advertisement and Solicitation Message
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 530
การค้นหาเส้ นทาง (Routing) คือ กระบวนการในการขนถ่ายขอ้ มูลขา้ มเครือข่ายทีเชือมต่อกนั
ดว้ ยอุปกรณ์เราทเ์ ตอร์, เกตเวย,์ หรือบริดจ์
การทาํ เราทต์ ิงประกอบดว้ ย 2 ภารกิจสาํ คญั คือ
1) การคน้ หาเส้นทางทีดีทีสุดในการเชือมต่อระหวา่ งตน้ ทางไปยงั ปลายทาง
) การขนส่งขอ้ มูลไปบนเส้นทางทีดีทีสุดทีคน้ หามาได้
ประเภทของเราทต์ ิง แบง่ ออกเป็น 2 ประเภท ไดแ้ ก่
1) Static Routing
2) Dynamic Routing
AS (Autonomous System) คือ กลุ่มของเราท์เตอร์ทีเชือมต่อกนั เสมือนเป็ นองคก์ รเดียวกนั โดย
แตล่ ะกลุม่ AS จะหมายเลขประจาํ กลุ่มทีเรียกวา่ Autonomous System Number (ASN)
เมทริก (Metric) คือ คา่ ทีใชส้ าํ หรับคาํ นวณหาเส้นทางการส่งขอ้ มูล
RIP (Routing Information Protocol) เป็ นโพรโทคอลทีใช้หลกั การหาเส้นทางแบบ Distance
Vector
OSPF (Open Shortest Path First Protocol) เป็นโพรโทคอลทีใชห้ ลกั การหาเส้นทางแบบ Link
State
OSPF และ RIP เป็ นโพรโทคอลทีใช้หาเส้นทางภายใน (Interior Gateway Protocol) โดยจะใช้
การอพั เดตตารางหาเสน้ ทางในระบบออโตมสั
OSPF จะแบ่งระบบออโต้โนมสั ออกเป็ นพืนที ซึงในแต่ละพืนทีจะมีทงั เครือข่าย, โฮสต์และ
เราทเ์ ตอร์
LSA (Link state Advertisement) สามารถแบ่งออกได้ 5 ประเภท คือ Router Link, Network
Link, Summary Link to Network, Summary Link to AS Boundary router และ External Link
เราทเ์ ตอร์ จะทาํ การรวบรวมขอ้ มูลจาก LSA ทีไดร้ บั มา แลว้ นาํ มาสร้างเป็นฐานขอ้ มลู
IGRP (Interior Gateway Routing Protocol) เป็ นโพรโทคอลแบบลิงค์สเตจทีมีวิธีการคาํ นวณ
เมทริกทีคอ่ นขา้ งซบั ซอ้ นกวา่ โพรโทคอล OSPF
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 531
สิงที IGRP พจิ ารณาในการคาํ นวณเมทริก คือ
แบนดว์ ดิ ธ์ของลิงค์
ดีเลยข์ องลิงค์
โหลดของลิงค์
ความน่าเชือถือของลิงค์
EIGRP (Enhanced IGRP) เป็ นโพรโทคอลทีไดร้ ับการพฒั นาปรับปรุงมาจาก IGRP ในการจดั
เส้นทางใหม่ โดยเกบ็ ขอ้ มูลเกียวกบั การเราทต์ ิงไว้ 3 ตารางคือ เนอเบอร์ โทโพรโลยี และเราทต์ ิง
BGP (Border Gateway Protocol) เป็ นโพรโทคอลสําหรับการหาเส้นทางระหว่างระบบ
ออโตโนมสั โดยใชเ้ ทคนิคการหาเส้นทางทีเรียกวา่ Path Vector
BGP แบง่ ชนิดของขอ้ มูลออกเป็ น 4 ชนิด ไดแ้ ก่ Open, Update, Keep-alive และ Notification
IS-IS (Intermediate System to Intermediate System) เป็ นโพรโทคอลแบบลิงคส์ เตจมีรูปแบบ
คลา้ ยกบั OSPF
แพก็ เก็ตทีรับส่งโดย IS-IS แบง่ ออกเป็น 3 ประเภท คือ
1) IS-IS Hello Packet
2) Link State Packet (LSP)
3) Sequence Number Packet (SNP)
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 532
แบบฝึ กหดั ท้ายบทและการค้นคว้า
จงตอบคําถามต่อไปนี
1. จงหาขนาดของแพก็ เกต็ ARP เมือใชง้ านร่วมกบั IP และเครือข่ายอีเทอร์เน็ต
2. ฟิ ลดใ์ ดเฮดเดอร์ของไอพีทีจะมีการเปลียนแปลงเมือเดินทางผา่ นเราทเ์ ตอร์
3. จงอธิบายความแตกต่างของโพรโทคอล ARP และ RARP พร้อมยกตวั อยา่ งประกอบ
4. จงอธิบายความแตกต่างระหว่าง Static Routing Protocol กับ Dynamic Routing Protocol มาให้
เขา้ ใจพร้อมยกตวั อยา่ งประกอบคาํ อธิบาย
5. จงเปรียบเทียบความเหมือนและความแตกต่างระหว่างการหาเส้นทางแบบ Distance Vector กับ
Link State
6. เพราะเหตุใดเมสเสจ (Message) ของโพรโทคอล OSPF จึงแพร่กระจายได้เร็วกว่าเมสเสจ
(Message) ของโพรโทคอล RIP
7. โฮสต์ทีมีไอพีแอดเดรส 186.4.77.9 ตอ้ งการทีจะเป็ นสมาชิกกบั กลุ่มทีมี Group ID 230.44.101.34
เมือโฮสตต์ รวจสอบในตารางกลุ่ม (Group Table) แลว้ ปรากฏวา่ ไมพ่ บรายการ ข อ ง ก ลุ่ ม นี จ ง
อธิบายวา่ โฮสตจ์ ะตอ้ งทาํ อยา่ งไรบา้ ง และควรจะตอ้ งส่งเมสเสจวา่ อยา่ งไร
8. เราท์เตอร์ทีมีไอพีแอดเดรส 186.4.77.9 ได้รับเมสเสจจากโฮสต์ว่าตอ้ งการสมคั รเป็ นสมาชิกกบั
กลุ่มทีมี Group ID 232.54.10.34 เมือเราท์เตอร์ตรวจสอบในตารางกลุ่มแล้ว ปรากฏว่าไม่พบ
รายการของกลุ่มนี จงอธิบายวา่ เราทเ์ ตอร์จะตอ้ งทาํ อยา่ งไรบา้ ง และควรจะตอ้ งส่งเมสเสจออกไป
หรือไม่ อยา่ งไร
9. จงเปรียบเทียบคุณลกั ษณะของเราทต์ ิงโพรโทคอลในตารางดา้ นล่างนี
RIPv1 RIPv2 IGRP EIGRP OSPF
Protocol Type
VLSM
Authentication
Update Timer (วนิ าที)
Invalid Timer (วนิ าที)
บทที 13 โพรโทคอลในชนั สือสารควบคุมเครือข่ายและการคน้ หาเสน้ ทาง หนา้ ที 533
บทที 14
ชันสือสารจัดการนาํ ส่งข้อมูลและชันสือสารการประยุกต์
(Transport Layer and Application Layer)
วตั ถปุ ระสงค์การเรียนรู้
1. อธิบายการส่งมอบขอ้ มูลจากโพรเซสถึงโพรเซสบนชนั สือสารจดั การนาํ ส่งขอ้ มูล
ได้
2. อธิบายความแตกต่างระหว่างการส่งมอบขอ้ มูลแบบ Node-to-Node, Host-to-Host
และ Process-to-Process ไดอ้ ยา่ งถูกตอ้ ง
3. เห็นความสําคญั ของพอร์ตแอดเดรส ทีนํามาใช้เป็ นหมายเลขกํากบั ช่องสือสาร
ระหวา่ งโพรเซส
4. สามารถบอกส่วนประกอบของช็อกเก็ตไดอ้ ยา่ งถูกตอ้ ง
5. อธิบายรายละเอียดและคุณสมบตั ิของโพรโทคอล TCP, UDP และ SCTP ได้
6. อธิบายหลกั การทาํ งานของ Domain Name System (DNS) ได้
7. อธิบายหลกั การทาํ งานของเวบ็ ระบบอีเมลได้
8. บอกคุณสมบตั ิและหนา้ ทีของโพรโทคอลต่าง ๆ ทีอยใู่ นชนั สือสารการประยกุ ตไ์ ด้
การสือสารในชนั สือสารจดั การนาํ ส่งขอ้ มูล (Transport Layer) ถือไดว้ า่ เป็ นหวั ใจของแบบจาํ ลอง
การสือสารขอ้ มูลทุกชนั รวมกนั ทงั หมด ความรับผิดชอบหลกั อยทู่ ีการให้บริการทีมีความหน้าเชือถือได,้
มีความคุม้ ค่าและประสิทธิภาพสูงในการนาํ ขอ้ มูลจากผูส้ ่งทีคอมพิวเตอร์เครืองหนึงส่งไปให้กบั ผูร้ ับ
ขอ้ มูลยงั คอมพิวเตอร์อีกเครืองหนึง, และมีการทาํ งานเป็ นอิสระไม่ขึนอยกู่ บั ชนิดหรือประเภทของระบบ
เครือข่ายทีกาํ ลงั ใชง้ านอยู่ หากปราศจากชนั การสือสารชนั นีแลว้ โครงสร้างแบบลาํ ดบั ชนั ของแบบจาํ ลอง
OSI อาจจะกล่าวไดว้ า่ ไร้ความหมายเลยทีเดียว ฉะนนั ในช่วงแรกของบทนีจึงไดก้ ล่าวถึงรายละเอียดการ
ให้บริการ การออกแบบ โพรโทคอลทีใชใ้ นชนั สือสารจดั การนาํ ส่งขอ้ มูล ขณะทีในช่วงหลงั จะกล่าวถึง
ชนั สือสารการประยุกต์ (Application Layer) ทีทาํ หน้าทีเชือมต่อและให้บริการโดยตรงกบั แอปพลิเคชนั
โพรเซสของผใู้ ชซ้ ึงผเู้ ขียนหวงั วา่ จะเป็ นประโยชนใ์ นการทาํ ความเขา้ ใจเกียวกบั ระบบเครือขา่ ยโดยรวม
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์ หนา้ ที 535
14.1 ชันสือสารจดั การนําส่งข้อมูล (Transport Layer)
ชันสือสารจดั การนําส่งข้อมูลมีหน้าทีรับผิดชอบการส่งมอบข้อมูลจากโพรเซสถึงโพรเซส
(Proces-to-Process) โดยโพรเซสในทีนีหมายถึงโปรแกรมแอปพลิเคชนั ทีรันอยบู่ นโฮสต์ แต่ด้วยเหตุที
ชนั สือสารควบคุมเครือข่าย (Network Layer) จะรับหนา้ ทีดูแลเพียงการส่งมอบขอ้ มูลแบบ Source-to-
Destination ของแต่ละแพ็กเก็ต และไม่รู้จกั ความสัมพนั ธ์ของแต่ละแพก็ เก็ต โดยจะถือปฏิบตั ิเพียงว่าแต่
ละแพ็กเก็ตนันอิสระต่อกนั แม้ว่าชินส่วนของแต่ละแพ็กเก็ตเหล่านันจะถูกแบ่งส่วนมาจากเมสเสจ
เดียวกนั ก็ตาม ดงั นันชนั สือสารจดั การนาํ ส่งขอ้ มูล จึงได้รับมอบหมายให้ดูแลและสร้างความมนั ใจถึง
เมสเสจหรือข่าวสารทงั หมดทีส่งมาถึงปลายทาง วา่ จะยงั คงอยใู่ นลาํ ดบั ทีถูกตอ้ ง รวมถึงการตรวจสอบทงั
ในเรืองของการควบคุมขอ้ ผิดพลาด และการควบคุมการไหลของขอ้ มูลทีส่งจากตน้ ทางไปยงั ปลายทาง
(Source-to-Destination)
ปกติแลว้ คอมพิวเตอร์ส่วนใหญ่มกั สามารถรันโปรแกรมหลาย ๆ โปรแกรมไดใ้ นเวลาเดียวกนั
ด้วยเหตุผลดังกล่าว การส่งมอบข้อมูลจาก Source-to-Destination จึงหมายถึงการส่งมอบข้อมูลจาก
คอมพิวเตอร์เครืองหนึงไปยงั อีกเครืองหนึง แต่แค่นนั ยงั ไม่พอ จะตอ้ งส่งมอบขอ้ มูลเฉพาะโพรเซสนนั ๆ
ไปยงั โพรเซสทีอยฝู่ ังปลายทางไดอ้ ยา่ งถูกตอ้ งดว้ ย ดงั นนั ชนั สือสารจดั การนาํ ส่งขอ้ มูลจึงตอ้ งมีการผนวก
เฮดเดอร์ทีเพิมเขา้ ไปตามชนิดของแอดเดรสทีเรียกวา่ “Service-Point Address”
โพรโทคอลภายในชันการสือสารนีสามารถเป็ นได้ทงั แบบคอนเน็คชันเลส (Connectionless)
หรือคอนเน็คชนั โอเรียนเต็ด (Connection-Oriented) โดยทีโพรโทคอลแบบคอนเน็คชนั เลสนนั จะปฏิบตั ิ
กบั แต่ละเซ็กเมนท์เสมือนกบั แพ็กเก็ตทีอิสระต่อกนั และส่งมอบไปยงั ชนั สือสารจดั การนาํ ส่งขอ้ มูลของ
ฝังปลายทางในขณะทีโพรโทคอลแบบคอนเน็คชนั โอเรียนเตด็ จะตอ้ งมีการสถาปนาการเชือมต่อระหวา่ ง
ตน้ ทางกบั ปลายทางก่อนทีจะดาํ เนินการส่งมอบแพก็ เก็ต โดยภายหลงั จากขอ้ มูลไดส้ ่งผา่ นเป็นทีเรียบร้อย
แลว้ การเชือมตอ่ ดงั กล่าวก็จะยตุ ิลง
ชันสือสารจดั การนําส่งข้อมูล ข้อมูลหรือข่าวสารจะถูกแบ่งเป็ นส่วน ๆ จากฝังผูส้ ่งเรียกว่า
“เซ็กเมนท์ (Segment)” และโพรโทคอลคอนเน็คชนั เลส ในทีนีคือ UDP Protocol ทีจะปฏิบตั ิกบั แต่ละ
เซ็กเมนทท์ ีไดถ้ ูกแบ่งเป็ นส่วน ๆ เหล่านนั ในขณะทีโพรโทคอลคอนเน็คชนั โอเรียนเต็ด อยา่ งเช่น TCP
และ SCTP จะตอ้ งสร้างความสมั พนั ธ์ระหวา่ งเซ็กเมนทด์ ว้ ยการใชห้ มายเลขลาํ ดบั
คลา้ ยคลึงกบั ชนั สือสารเชือมต่อขอ้ มูลในชนั สือสารจดั การนาํ ส่งขอ้ มูลจะรบั ผดิ ชอบเกียวกบั การ
ควบคุมการไหลของขอ้ มูลและการควบคุมขอ้ ผิดพลาด (Flow Control and Error Control) แต่อย่างไรก็
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์ หนา้ ที 536
ตาม การดาํ เนินการทงั การควบคุมการไหลของขอ้ มูล และการควบคุมข้อผิดพลาดภายในชันสือสาร
จดั การนาํ ส่งขอ้ มูลนี จะเกียวกบั การส่งมอบขอ้ มูลในลกั ษณะ End-to-End มากกวา่ ทีจะส่งผา่ นภายในลิงค์
เดียวกนั ทงั นีโพรโทคอลทีจะกล่าวนีคือ UDP ซึงเป็ นโพรโทคอลทีไมม่ สี ่วนเกียวขอ้ งกบั การควบคุมการ
ไหลของขอ้ มูลและการควบคุมขอ้ ผิดพลาด ในขณะทีโพรโทคอลอีก 2 ตวั ซึงคือ TCP และ SCTP จะใช้
โพรโทคอลเลือนหนา้ ต่างในการควบคุมการไหลของขอ้ มูล และมีระบบการควบคุมขอ้ ผิดพลาดในขอ้ มูล
ด้วย และด้วยสาเหตุนีเอง โพรโทคอล UDP จึงเป็ นโพรโทคอลทีมีความน่าเชือถือตํา ในขณะที
โพรโทคอล TCP และ SCTP จดั เป็ นโพรโทคอลทีมีความน่าเชือถือสูง เนืองจากรับประกนั ถึงขอ้ มูลทีส่ง
ถึงปลายทางอยา่ งแน่นอน
14.2 การส่งข้อมูลจากโพรเซสถึงโพรเซส (Process-to-Process Delivery)
ชันสือสารเชือมต่อขอ้ มูล (Datalink Layer) มีหน้าทีในการส่งเฟรมข้อมูลระหว่างโหนดทีอยู่
ภายในเครือข่ายเดียวกนั ซึงเราจะเรียกวา่ “การส่งข้อมูลจากโหนดถึงโหนด (Node-to-Node Delivery)”
ส่วนชนั สือสารควบคุมเครือข่าย (Network Layer) มีหน้าทีในการส่งขอ้ มูลจากโฮสต์ถึงโฮสต์ (Host-to-
Host Delivery) แต่ในความจริงแลว้ การสือสารในอินเทอร์เน็ตจะไม่ใช่แค่การแลกเปลียนขอ้ มูลระหวา่ ง
โหนดหรือระหวา่ งโฮสต์เท่านนั การแลกเปลียนขอ้ มูลจริง ๆ จะเกิดขึนทีโพรเซส(โปรแกรมประยุกต์
ต่าง ๆ ) ดังนันจาํ เป็ นตอ้ งมี การส่ งข้อมูลจากโพรเซสถึงโพรเซส (Process-to-Process Delivery) ด้วย
แต่อยา่ งไรก็ตามทีโฮสต์ตน้ ทางและโฮสต์ปลายทางอาจจะมีโพรเซสไดห้ ลาย ๆ โพรเซส ดงั นนั เพือให้
การส่งขอ้ มูลเป็นไปไดด้ ว้ ยความถูกตอ้ ง จึงตอ้ งมีกลไกในการส่งขอ้ มูลระหวา่ งโพรเซสไดถ้ ูกตอ้ งดว้ ยซึง
จะตอ้ งรู้วา่ โพรเซสไหน (ทีตน้ ทาง) ตอ้ งการส่งขอ้ มูลให้กบั โพรเซสไหน (ทีปลายทาง) ดงั ภาพที 14.1 ที
แสดงใหเ้ ห็นถึงการส่งขอ้ มลู ทงั 3 ประเภททีกล่าวมา
ภาพที 14.1 ประเภทของการส่งข้อมูล หนา้ ที 537
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์
14.3 การกาํ หนดตําแหน่งทอี ยู่ (Addressing)
เมือใดก็ตามทีเราตอ้ งการส่งขอ้ มูลจากทีหนึงไปยงั อีกทีหนึง ทงั ตน้ ทางและปลายทางจะตอ้ งมี
แอดเดรสเสมอในชันสือสารเชือมต่อขอ้ มูล จะใช้งาน MAC Address ในการกาํ หนดทีอยูใ่ ห้กบั ตน้ ทาง
และปลายทาง ดงั นนั ในเฟรมขอ้ มูลจะตอ้ งมี MAC Address เสมอ
ขณะทีชนั สือสารควบคุมเครือข่าย ใชง้ านไอพีแอดเดรสซึงเป็ นโพรโทคอลในรูปแบบ Host-to-
Host ในการกาํ หนดทีอยู่ให้กับต้นทางและปลายทางดงั นันในดาตา้ แกรมจาํ เป็ นตอ้ งมีไอพีแอดเดรส
ตน้ ทาง และไอพแี อดเดรสปลายทาง
ดังนันในชันสื อสารจัดการนําส่ งข้อมูล จะมีลักษณะเช่นเดียวกันคือจะต้องมีแอดเดรส
แต่แอดเดรสของชนั สือสารจดั การนาํ ส่งขอ้ มูลจะเรียกว่า “หมายเลขพอร์ต (Port Number)” ซึงหมายเลข
นีจะใชแ้ ทนโพรเซสแต่ละโพรเซส ฉะนนั การส่งแพก็ เก็ตจะตอ้ งมหี มายเลขพอร์ตปลายทางดว้ ย
ในแบบจาํ ลองอินเทอร์เน็ต หมายเลขพอร์ตมีขนาด 16 บิต โดยมีค่าอยู่ระหว่าง 0 ถึง 65,535
โปรแกรมทีฝังไคลเอนทจ์ ะมีการกาํ หนดหมายเลขพอร์ตเพือใชแ้ ทนโปรแกรม (โพรเซส) นนั ๆ หมายเลข
พอร์ตทีไคลเอนท์เกิดขึนไดจ้ ากการสุ่มตวั เลข (Random) ขึนมาโดยใชซ้ อฟตแ์ วร์ของชนั สือสารจดั การ
นาํ ส่งขอ้ มูล เราเรียกพอร์ตนีวา่ “ Ephemeral Port Number” ส่วนโพรเซสของเซิร์ฟเวอร์ก็เช่นเดียวกนั
จะตอ้ งมีหมายเลขพอร์ตกาํ กบั แต่ละโพรเซสเอาไว้ แต่อยา่ งไรก็ตามไม่ตอ้ งใชว้ ิธีการสุ่มตวั เลขหมายเลข
พอร์ต เนืองจากเพือใหเ้ กิดความเป็นสากล อินเทอร์เน็ตจึงไดม้ ีการกาํ หนดหมายเลขพอร์ตให้กบั โพรเซส
ของเซิร์ฟวอร์เอาไว้ เราเรียกพอร์ตนีวา่ “Well-known Port Number” ตวั อยา่ งเช่น เซิร์ฟเวอร์ทีใหบ้ ริการ
HTTP รันโพรเซสทีมีหมายเลขพอร์ต 80 หรือเซิร์ฟเวอร์ทีให้บริการ DNS ก็ โพรเซสทีมีหมายเลข
พอร์ต 53 เป็นตน้
ภาพที 14.2 หมายเลขพอร์ต (Port Number) หนา้ ที 538
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์
จากภาพที 14.2 เมือไคลเอนท์ตอ้ งการใชบ้ ริการ Daytime จากเซิร์ฟเวอร์โพรเซสของไคลเอนท์
จะทําการสุ่มหมายเลขพอร์ตขึนมา ซึงในทีนีสมมติว่าได้หมายเลขพอร์ต 52,000 ส่วนเซิร์ฟเวอร์ที
ให้บริการ Daytime นนั จะรันโพรเซสทีมีหมายเลขพอร์ต 13 จากภาพจะแสดงให้เห็นถึงหลกั การของการ
สร้างหมายเลขพอร์ต และการติดต่อกนั ระหวา่ งโพรโซสโดยใชห้ มายเลขพอร์ต
ถึงตอนนีแลว้ จะเห็นไดว้ ่า ไอพแี อดเดรสและหมายเลขพอร์ตจะมบี ทบาททีแตกต่างกนั ในในการ
นาํ ส่งขอ้ มูลไปยงั ปลายทาง ไอพีแอดเดรสจะใชใ้ นการระบุโฮสต์ เมือขอ้ มูลเดินทางไปยงั โฮสตน์ นั แลว้
หมายเลขพอร์จะตอ้ งใชส้ าํ หรับระบโุ พรเซสในโฮสตน์ ัน ๆ ดงั ภาพที 14.3
ภาพที 14.3 ไอพแี อดเดรสกบั หมายเลขพอร์ต
พอร์ตแต่ละพอร์ตถูกกาํ หนดหมายเลขดว้ ยแอดเดรสทีเป็ นตวั เลขจาํ นวนเต็มขนาด 16 บิตตามที
ไดก้ ล่าวมานนั ผอู้ า่ นสงสัยหรือไม่หมายเลขทีกาํ หนดให้กบั พอร์ตนนั ใครเป็นผูก้ าํ หนด สาํ หรับหน่วยงาน
หรือองค์กรทีทาํ การกาํ หนดหมายเลขให้กบั พอร์ตนนั คือ IANA (Internet Assigned Numbers Authority)
โดยไดท้ าํ การแบ่งหมายเลขพอร์ตออกเป็ น 3 ส่วน คือ Well-know, Register และ Dynamic (หรือ Private)
ดงั ภาพที 14.4
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์ หนา้ ที 539
ภาพที 14.4 การแบ่งหมายเลขพอร์ตตาม IANA
จากภาพที 14.4 มีความหมายดงั นี
Well-know Port คือ หมายเลขพอร์ตทีอยูร่ ะหวา่ ง 0-1023 ทีถูกกาํ หนดและควบคุมโดย
IANA ซึงสงวนไวเ้ พือการบริการมาตรฐานของโฮสตฝ์ ังเซิร์ฟเวอร์ โดยกลุ่มทีสามารถ
ใช้งานพอร์ต Well-know ได้ก็จะมีเพียงระบบปฏิบัติการ โพรเซสของระบบ หรือ
ซอฟตแ์ วร์ทีไดร้ ับสิทธิพิเศษเท่านนั
Register Ports คือ หมายเลขพอร์ตทีอยู่ในช่วง 1024-49151 ทีมิได้ถูกกําหนดหรือ
ควบคุมโดย IANA แต่สามารถนาํ ไปจดทะเบียนกบั IANA เพือป้องกนั การซาํ ได้
Dynamic Ports อาจเรียกวา่ อีกชือหนึง วา่ Private Ports ประกอบดว้ ยหมายเลขพอร์ตที
อยู่ในช่วง 49152-65535 ซึงมิไดถ้ ูกควบคุมและมิไดจ้ ดทะเบียน โดยสามารถนําไปใช้
งานไดใ้ นทกุ ๆ โพรโซสทีสาํ คญั จะเป็นหมายเลขพอร์ตทีไมค่ งที
ภาพที 14.5 Well-Known Ports ทีนําไปใช้กบั โพรโทคอล UDP และ TCP หนา้ ที 540
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์
ฉะนนั การร้องขอเพือติตต่อกบั เครืองฝังเซิร์ฟเวอร์ของเครืองไคลเอนทน์ นั เมือมีความตอ้ งการใช้
งานหมายเลขพอร์ต ตวั ซอฟตแ์ วร์ TCP จะเป็นตวั กาํ หนดหมายเลขพอร์ตทียงั วา่ อยู่ ซึงตอ้ งไมซ่ าํ กบั พอร์ต
ทีใชง้ านบนเครืองไคลเอนท์ขณะนนั สําหรับการมลั ติเพล็กซ์ภายในชนั สือสารนีจะใชแ้ นวคิดทีเรียกว่า
“ช็อกเก็ต (Socket)” ซึงเป็ นตวั ทีใชแ้ ยกแยะโพรเซสระหวา่ งฝังตน้ ทางกบั ฝังปลายทางทีติดต่อสือสารกนั
และทีสําคญั สามารถเปิ ดเซสชันได้หลายเซสชนั พร้อมกนั ได้ ทงั นีช็อกเก็ตจะตอ้ งประกอบด้วย 3 สิง
ดว้ ยกนั คือ หมายเลขไอพี, โพรโทคอลชนั สือสารจดั การนาํ ส่งขอ้ มูล และหมายเลขพอร์ต ดงั แสดงใน
ภาพที 14.6
ภาพที 14.6 การมลั ติเพลก็ ซ์และดมี ัลติเพลก็ ซ์ของชันสือสารจัดการนําส่งข้อมูล
14.4 โพรโทคอล UDP , TCP และ SCTP
UDP (User Datagram Protocol)
UDP เป็ นโพรโทคอลทีมีการประกาศในมาตรฐาน RFC ในช่วงปี ค.ศ. 1980 โดยมีคุณลกั ษณะ
ตรงกับข้อ 2, 4 ของชันสือสารจดั การนําส่งข้อมูล (Transport Layer) ตามทีกล่าวมาขา้ งตน้ ถ้าเทียบ
คุณสมบตั ิกบั โพรโทคอล TCP เรียกได้วา่ แทบจะตรงกนั ขา้ มกนั เลยก็ว่าได้ โดยที UDP โพรโทคอลมี
รูปแบบเฮดเดอร์ทีไม่ซับซอ้ นและมีขนาดเล็กจึงไม่เปลืองแบนดว์ ดิ ธ์ ซึงเหมาะกบั แอปพลิเคชนั ทีตอ้ งการ
ติดต่อส่งถ่ายขอ้ มูลกนั โดยไม่เนน้ ความครบถว้ นของขอ้ มูล เพราะ UDP โพรโทคอลไม่มีการตรวจสอบ
การส่งถ่ายขอ้ มูลจนถึงปลายทาง มีโอกาสทีขอ้ มูลจะสูญหายได้ ซึงโดยมากมกั เกิดขึนในช่วงเวลาที
เครือขา่ ยมีปัญหา
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์ หนา้ ที 541
คุณสมบตั ขิ องโพรโทคอล UDP
UDP เป็ นโพรโทคอลทีมีรูปแบบง่าย ๆ ไม่ซบั ซ้อนถา้ เทียบกบั โพรโทคอล TCP จึงมีคุณสมบตั ิ
ไมม่ ากนกั ดงั แสดงต่อไปนี
Connectionless UDP: ในการติดต่อกบั เครืองปลายทางนนั จะไม่มีการสร้างการเชือมตอ่
กับปลายทางก่อน แต่จะส่งออกไปเลยโดยไม่สนใจว่าเครืองปลายทางพร้อมจะรับ
หรือไม่
Unreliable UDP: การส่งขอ้ มูลให้เครืองปลายทางแบบ Unreliable Protocol ซึงจะไม่
สนใจวา่ ขอ้ มูลทีส่งไปยงั เครืองปลายทางจะไดร้ ับครบหรือไม่ และไม่มีการส่งขอ้ มูลที
สูญหาย เนืองจากเครืองต้นทางเองไม่รู้เหมือนกันว่าเครืองปลายทางรับขอ้ มูลครบ
หรือไม่
Message-Oriented UDP: โพรโทคอล UDP ยอมใหแ้ อปพลิเคชนั ส่งขอ้ มูลแบบ Single
Message เมือ Encapsulate เป็ น UDP Datagram แล้วจึงส่งต่อชัน Internet Layer เพือตดั
แบ่งข้อมูลให้มีขนาดเหมาะสมก่อนจะหาเส้นทางจดั ส่งให้ถึงปลายทาง โดยขอ้ มูลที
ส่งไปนนั เมือปลายทางรับแลว้ ก็ถือวา่ สินสุดการส่งไดเ้ ลย เพราะขอ้ มูลทีส่งไปไมไ่ ดเ้ ป็น
ขอ้ มูลแบบชุด ดงั นนั เครืองปลายทางไมต่ อ้ งรอรับขอ้ มูลชุดใหม่เพือมารวมเขา้ ดว้ ยกนั
OS Independent Process: ทีเกิดจาก UDP โพรโทคอลจะไม่ไดอ้ ย่ภู ายใตก้ ารดูแลของ
ระบบปฏิบตั กิ าร
Endpoint Identification UDP: มีการกาํ หนดพอร์ตในกลุ่มทีอยนู่ อกเหนือการดูแลของ
ระบบปฏิบตั ิการเพือใชใ้ นการติดต่อกนั ซึงพอร์ตดงั กล่าวเมือมีการใชง้ านเสร็จแลว้ ก็จะ
คืนกลบั มาไวก้ องกลางและสามารถนาํ กลบั มาใชใ้ หมไ่ ด้
Broadcasting UDP: โพรโทคอลสามารถทีจะส่งขอ้ มูลจากเครืองตน้ ทางเครืองเดียวไป
ยงั ปลายทางเครืองเดียวหรือหลายเครืองพร้อมกนั ไดด้ ว้ ยการบรอดคาสต์ หรือมลั ติคาสต์
ซึงมีลกั ษณะการติดต่อแบบ 1-1, 1-many ได้ และในทางกลบั กนั เครืองตน้ ทางหลาย
เครืองก็สามารถติดต่อมายงั เครืองปลายทางเครืองเดียวกนั แบบ many-1 ก็ได(้ ส่วนใหญ่
จะเป็ นลักษณะของเครืองตน้ ทาง Client ติดต่อกับเครืองปลายทางทีเป็ น Server เช่น
DNS Server, NFS Server เป็นตน้ )
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์ หนา้ ที 542
ข้อควรระวงั : โพรโทคอล UDP จะมีปัญหามากถา้ บนเครือขา่ ยเกิด “Traffic Jam” (มี
ปริมาณขอ้ มูลส่งถ่ายบนเครือข่ายสูง) ซึงเป็ นช่วงเวลาทีขอ้ มูลบนเครือข่ายมีโอกาสสูญหาย
สูงมาก และ UDP ไม่มีการตรวจสอบด้วยว่าข้อมูลทีส่งไปนันถึงมือผูร้ ับหรือไม่ ดังนัน
แอปพลิเคชนั ตน้ ทางจะตอ้ งส่งขอ้ มูลไปใหม่เอง
ในกรณีที Datagram มีขนาดไมใ่ หญ่เกินค่า MTU ในชนั Internet Layer หากสูญหายก็
จะหายไปหมดทงั Datagram เครืองปลายทางก็ไม่รู้ว่าเครืองตน้ ทางมีการส่งมา ก็ไม่ตอ้ งทาํ
อะไร แต่ในกรณี Datagram ทีมีขนาดใหญ่กว่า MTU ในชนั Internet Layer ขอ้ มูลนนั จะถูกตดั
แบง่ ออกเป็นส่วน ๆ ไมเ่ กินคา่ MTU และส่งไปยงั เครืองปลายทาง หากวา่ ขอ้ มูลบางส่วนถูกตดั
แบ่ ง ห าย ไป จาก แ อป พ ลิ เค ชัน ป ล าย ท างที ได้รั บ ข้อ มู ล ไม่ ค รบ จะ เกิ ด ปั ญ ห าใช้งาน ไ ม่ไ ด้
แอปพลิเคชนั ตน้ ทางจะตอ้ งส่งขอ้ มูลมาใหใ้ หมท่ งั หมด ซึงเกิดความล่าชา้ ขึนอีก
แพก็ เกต็ ของ UDP เรียกวา่ “User Datagram” ซึงจะมีขนาดของเฮดเดอร์ 8 ไบค์ ดงั ภาพที 14.7
ภาพที 14.7 โครงสร้างของ User Datagram
จากภาพที 14.7 ยสู เซอร์ดาตา้ แกรมจะประกอบดว้ ยฟิลด์ ดงั ต่อไปนี
Source port number: มีขนาด 16 บิต เป็ นหมายเลขพอร์ตทีถูกใชโ้ ดยโพรเซสทีโฮสต์
ตน้ ทาง
Destination port number: มีขนาด บิต เป็ นหมายเลขพอร์ตทีถูกใชโ้ ดยโพรเซสที
โฮสตป์ ลายทาง
Length: มีขนาด 16 บิต ใชส้ ําหรับบอกขนาดของยูสเซอร์ดาตา้ แกรม (รวมทงั เฮดเดอร์
และขอ้ มูล) หน่วยทีใชเ้ ป็ นไบต์
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์ หนา้ ที 543
Checksum: มีขนาด 16 บิต เป็ นคา่ ทีใชใ้ นการตรวจสอบวา่ ขอ้ มูลชุดนีทีส่งออกไปจะถึง
ผูร้ ับถูกเครืองมาจากผูส้ ่งถูกคน ขอ้ มูลไม่สูญหาย หรือโพรโทคอลทีใช้ตรงกบั เครือง
ต้นทางทีส่งมา โดยค่า Checksum ได้มาจากการสร้าง Pseudocode Header ขึนมาแล้ว
นํามารวมเข้ากับ UDP Datagram จากนันนําเข้ากระบวนการคาํ นวณจนได้ผลลัพธ์
ออกมา แลว้ เขา้ กระบวนการ One’s Complement (นนั คือ การแปลงบิตจาก “0” -> “1”.
“1” -> “0”) อีกครังจงึ ไดผ้ ลลพั ธ์ออกมาเป็ น Checksum
เมือเครืองปลายทางไดร้ ับแพก็ เก็ต UDP Datagram มาก็จะสร้าง Pseudocode Header ขึนมาแลว้
นาํ มาคาํ นวณกบั UDP Datagram อีกครัง เพือให้ไดค้ ่า Checksum ใหม่มาเทียบกบั ค่า Checksum ทีส่งมา
ดว้ ย ถา้ ตรงกนั แสดงวา่ ขอ้ มูลทีส่งมาถูกตอ้ งทุกอยา่ ง ก็จะ De-capsulate เอาเนือขอ้ มูลมาใชต้ ่อไป
ข้อดแี ละข้อเสียของโพรโทคอล UDP
จากคุณสมบตั ิทีไดก้ ล่าวมาขา้ งตน้ เราสามารถสรุปเป็ นขอ้ ดีและขอ้ เสียของโพรโทคอล UDP ได้
ดงั นี
ข้อดี
ส่งขอ้ มูลไดเ้ ร็วเพราะไมต่ อ้ งรอ Acknowledge Signal ตอบกลบั
Datagram มีขนาดเลก็ ไมซ่ บั ซอ้ น ไม่เปลืองแบนดว์ ดิ ธ์
สามารถส่งขอ้ มูลแบบ Broadcast หรือ Multicast
ข้อเสีย
ขอ้ มูลทีส่งออกไปไม่รับประกนั วา่ จะถึงปลายทางครบถว้ นทงั หมด
ไมม่ ีการส่งขอ้ มูลซาํ ในกรณีทีพบวา่ ขอ้ มูลสูญหาย
ไม่มีระบบการจดั ลาํ ดบั ขอ้ มูลทีปลายทาง (No Sequence)
ไมม่ ีการทาํ Flow control
TCP (Transmission Control Protocol)
ยอ้ นหลงั ไปปี ค.ศ. 1970 ไดม้ ีกลุ่มงานวิจยั กลุ่มหนึง คือ “The United States Defense Advanced
Research Project Agency” (DAPRA หรือ APRA) ทีวจิ ยั เกียวกบั Internetworking ซึงในตอนแรกทีมวิจยั
นีได้พฒั นาโพรโทคอลทีใช้ในการสือสารระหว่างตน้ ทางปลายทางขึนมาเรียกว่า “Network Control
Protocol (NCP)” เพือใช้ในการทาํ วิจยั ต่อมาเมือเครือข่าย Internetworking ขยายตวั พบว่า NCP นียงั มี
ขอ้ จาํ กดั อยมู่ าก จึงไดพ้ ฒั นาโพรโทคอลทีรองรับกบั การขยายตวั ของ Internetworking ขึนมาใหม่เรียกวา่
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์ หนา้ ที 544
“The Internet Transmission Control Program (TCP)” ซึ งเป็ นต้นแบบของ TCP/IP ในปั จจุบัน โดย
ประกาศใช้เป็ นทางการในเอกสาร RFC 675 SPECIFICATION OF INTERNET TRANSMISSION
CONTROL PROGRAM December 1974 Version
ต่อมาในปี ค.ศ. 1977 ก็ได้มีการพฒั นา TCP version 2 ขึนและมีการปรับปรุงคุณสมบตั ิเพิมขึน
แต่ทวา่ TCP ในตอนนีไดม้ ีการรวมหนา้ ทีการทาํ งานของ OSI Layer 3-4 เขา้ ดว้ ยกนั นนั คือ ทาํ หนา้ ทีทงั
ส่วนของ Routing (เลเยอร์ 3) และ Data flow control (เลเยอร์ 4) ซึงทาํ ให้ไม่เกิดความคล่องตวั ในการ
ใช้งาน เนืองจากบางแอปพลิเคชนั ก็อาจใช้เพียงแค่เลเยอร์ 3 หรือ เลเยอร์ 4 ก็พอแต่ตอ้ งถูกบงั คบั ให้ใช้
ทงั หมด
ฉะนันทีมพฒั นาจึงได้ปรับปรุงเวอร์ชันของ TCP เรือยมากระทังถึงเวอร์ชันที 4 ก็ได้สร้าง
โพรโทคอลขึนมาใหม่ โดยแยกการทาํ งานในส่วนของเลเยอร์ 3 ออกเป็ น Internet Protocol (IP) โพรโท
คอล TCP จึงทาํ หนา้ ทีเฉพาะในส่วนของเลเยอร์ 4 เท่านนั และไดเ้ ปลียนชือเป็ น “Transmission Control
Protocol (TCP)” พร้อมทงั ประกาศใช้อย่างเป็ นทางการในเอกสารอา้ งอิง RFC 793 TRANSMISSION
CONTROL PROTOCOL และยงั คงใชก้ นั เป็ นทีแพร่หลายจนถึงปัจจุบนั
นอกจากเหนือจากเอกสาร RFC 793 ทีเป็ นมาตรฐานของ TCP แล้วยงั มีเอกสาร RFC อืน ๆ ที
เกียวขอ้ งกบั โพรโทคอล TCP ทีมีรายละเอยี ดเพิมเติมทีผอู้ า่ นควรศึกษา เช่น
RFC 813 Window and Acknowledgement Strategy in TCP
RFC 879 The TCP Maximum Segment Size and Related Topics
RFC 896 Congestion Control in IP/TCP Internetworks
RFC 1146 TCP Alternate Checksum Options
RFC 1323 TCP Extensions for High Performance
RFC 2018 TCP Selective Acknowledgement Options
RFC 2581 TCP Congestion Control
RFC 2988 Computing TCP’s Retransmission Timer
คุณสมบัติของโพรโทคอล TCP
TCP เป็ นโพรโทคอลทีมีรายละเอียด มีโครงสร้างแพ็กเก็ต มีรูปแบบการทาํ งานทีซับซ้อนกวา่
โพรโทคอล UDP คุณสมบตั ิส่วนใหญ่จะแตกตา่ งกนั ถึงขนาดบอกไดว้ า่ จุดเด่นของ TCP คือจุดอ่อนของ
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์ หนา้ ที 545
UDP โพรโทคอลทงั สองมีคุณสมบตั ิทีเสริมให้แอปพลิเคชนั ทาํ งานไดด้ ียิงขึนในแบบของตนเอง ดงั นนั
คุณสมบตั ิของโพรโทคอล TCP จงึ เป็นดงั นี
Connection- Oriented: โพรโทคอล TCP มีลกั ษณะในการติดต่อกบั เครืองปลายโดยจะ
สร้างการเชือมต่อกบั ปลายทางให้ไดก้ ่อนจงึ ค่อยเริมกระบวนการส่งถ่ายขอ้ มูลกนั ทาํ ให้
มนั ใจไดว้ า่ ขอ้ มูลทีส่งไปนนั เครืองปลายทางพร้อมรับแลว้
Reliable: การส่งขอ้ มูลให้เครืองปลายทางจะมีการตรวจสอบเสมอวา่ ขอ้ มูลทีส่งไปนนั
เครืองปลายได้รับหรือไม่ ถา้ ไม่ไดร้ ับก็จะส่งขอ้ มูลชุดนันให้ใหม่ ดงั นันโพรโทคอล
TCP จึงรบั ประกนั ไดว้ า่ ขอ้ มูลทีส่งออกไปจะถึงมือผรู้ ับไดค้ รบถว้ น ในทางกลบั กนั หาก
ฝ่ ายรับเป็ น โพรโทคอล TCP ไม่ได้การันตีว่า ข้อมูลทีมีการส่งมาจะได้รับทุกครัง
(กล่าวคือ หากเครืองปลายทางรับขอ้ มูลทีส่งมาไมไ่ ดบ้ างครัง เครืองตน้ ทางก็จะพยายาม
ส่งมาใหใ้ หม่จนกวา่ จะไดร้ ับทงั หมดนนั เอง)
Stream-Oriented: โพรโทคอล TCP ยอมใหแ้ อปพลิเคชนั ส่งขอ้ มลู ออกมาอยา่ งต่อเนือง
ได้ (Stream Message) โดยข้อมูลแต่ละชุดทีส่งออกมานันเมือ Encapsulate เป็ น TCP
Segment และจะมีการจดั ทาํ ลาํ ดบั ขอ้ มูลไวด้ ว้ ย (Segment Sequencing) เพือใหป้ ลายทาง
รู้วา่ ขอ้ มูลในแต่ละชุดทีรับไปเป็ นส่วนไหน และใชเ้ ป็ นส่วนสําคญั ในการรวมขอ้ มูลแต่
ละชุดเขา้ ดว้ ยกนั เพือใหไ้ ดข้ อ้ มูลจริง
Multi-Connected and Endpoint Identification: โพ รโท คอล TCP เมื อส ร้างก าร
เชือมตอ่ ไดแ้ ลว้ จะกาํ หนด Socket (IP Address: Port) ตน้ ทาง และปลายทางไวส้ ําหรับใช้
ในการติดต่อกับเครืองปลายทางนันบนแอปพลิเคชันเดิม และโพรโทคอล TCP ยงั
สามารถจดั การใหท้ ุกการเชือมต่อทีเขา้ มาใชบ้ ริการยงั เครืองปลายทางที Socket เดียวกนั
สามารถทาํ งานแยกกนั ไดโ้ ดยไม่เกิดปัญหาขึน
ตวั อย่างเช่น เครืองตน้ ทาง 2 เครืองรีโมทมายงั เครืองปลายทางดว้ ยโปรแกรม Telnet เครืองตน้
ทางจะล็อคพอร์ตบริการของเครืองปลายทางทีพอร์ตหมายเลข 23 เหมือนกนั โดยในแต่ละหน้าต่าง
โปรแกรมทีเชือมตอ่ เขา้ มาจะไมม่ ีความเกียวขอ้ งกนั เสมือนใชง้ านคนเดียว เป็ นตน้
Bidirectional Transportation: ในทุกการเชือมต่อทีเกิดขึนโพรโทคอล TCP จะมีทัง
การส่งข้อมูลและรับข้อมูลด้วย นันคือฝังต้นทางส่งข้อมูลไปและฝังปลายทางส่ง
สัญญาณตอบกลบั มาทุกครัง ซึงเป็ นการเชือมต่อแบบ 2 Ways
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์ หนา้ ที 546
Acknowledged Signal: ในทุกการส่งขอ้ มูลของโพรโทคอล TCP ไปยงั ปลายทาง ขอ้ มูล
ทีส่งไปบนเครือขา่ ยอีกมีโอกาสทีจะสูญหายไปกลางทาง ทาํ ใหเ้ ครืองปลายทางไมไ่ ดร้ ับ
ขอ้ มูลนันได้ ด้วยเหตุนีโพรโทคอล TCP จึงมีการพฒั นาให้สามารถรู้ได้ว่าข้อมูลที
ส่งออกไปยงั เครื องปลายทางได้รับหรือไม่ ถ้าเครื องปลายทางได้รับข้อมูลแล้ว
โพรโทคอล TCP ฝังปลายทางก็จะส่งสัญญาณกลบั มาบอกว่าเครืองตน้ ทางวา่ “ไดร้ ับ
ขอ้ มลู แลว้ ” ซึงสัญญาณทีวา่ นีเรียกวา่ “Acknowledged Signal”
Data Flow Control: โพรโทคอล TCP มีวิธีการในการควบคุมการขนส่งข้อมูลจาก
ตน้ ทางไปยงั ปลายทางใหไ้ ดค้ รบถว้ น ถูกตอ้ ง ทาํ ให้มนั ใจไดว้ า่ เครืองปลายทางจะไดร้ ับ
ขอ้ มูลทีตน้ ทางส่งไปใหแ้ น่นอน
ข้อดีและข้อเสียของโพรโทคอล TCP
ข้อดี
ขอ้ มลู ทีส่งออกไปรับประกนั วา่ ถึงปลายทางแน่นอน
มีการส่งขอ้ มลู ซาํ ใหใ้ หมถ่ า้ พบวา่ ขอ้ มูลทีส่งไปสูญหาย
มีระบบการจดั ลาํ ดบั ขอ้ มูลเมือถึงปลายทาง
มีการจดั ทาํ Flow Control
ข้อเสีย
การรับส่งขอ้ มูลจะช้ากว่าโพรโทคอล UDP เพราะตอ้ งรอสัญญาณตอบกลบั
Acknowledge Signal
เฮดเดอร์มีขนาดใหญ่ มีความซับซ้อนกว่า ใช้แบนด์วิดธ์สูงกว่าโพรโทคอล
UDP
ไม่สามารถส่งขอ้ มูลแบบ Broadcast หรือ Multicast ได้
รูปแบบของ TCP Segment Header
ขอ้ มูลทีส่งมาจากชนั สือสารการประยกุ ต์ (Application Layer) โดยใช้โพรโทคอล TCP เมือผา่ น
กระบวนการ Encapsulation แลว้ เราเรียกว่า “เซ็กเมนท์ (Segment)” โดย TCP Segment Header มีขนาด
เริมตน้ ที 20 ไบต์ แต่ถา้ หากมีการใชค้ ุณสมบตั ิของ TCP เพิมเขา้ มาจะมีขนาดเพิมทีละ 4 ไบต์ ซึงมรี ูปแบบ
ของ Header ดงั ภาพที 14.8
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์ หนา้ ที 547
ภาพที 14.8 รูปแบบ TCP Segment Header
จากภาพที 14.8 รายละเอยี ดของ TCP Segment Header มีดงั นี
Source Port: ขนาด 2 ไบตร์ ะบุพอร์ตตน้ ทางทีใชใ้ นการติดตอ่
Destination Port: ขนาด 2 ไบตร์ ะบุพอร์ตปลายทางทีติดตอ่ ไป
Sequence Number: ขนาด 4 ไบต์เป็ นหมายเลขลาํ ดบั ขอ้ มูลทีเครืองตน้ ทางจดั ส่ง โดย
หมายเลขแรกของ Sequence Number เรี ยกว่า “ISN (Initial Sequence Number)” จะ
จดั เก็บอยทู่ ีเซ็กเมนท์ทีใชใ้ นการสร้างการติดตอ่ นนั คือ เซ็กเมนทท์ ี SYN bit ถูกกาํ หนด
SYN bit ถูกกาํ หนดเป็ น “1” และเมือติดต่อไดแ้ ลว้ เซ็กเมนท์ถดั ไปก็จะมีค่า Sequence
Number = ISN +1 ซึงจะเป็นเซ็กเมนทแ์ รกทีส่งขอ้ มูลจริง
Acknowledgment Number: ขนาด 4 ไบต์ ขอ้ มูลในฟิ ลด์นีจะเก็บค่า Next Sequence
Number ต่อไปทีเครืองตน้ ทางจะส่งหาเครืองปลายทาง โดยทีค่าในฟิ ลดน์ ีจะถูกนาํ ไปใช้
ก็ต่อเมือ ACK bit ทีอยูใ่ น Control Bit ถูกกาํ หนดเป็ น “1” เท่านัน โดยปกติเมือเครือง
ตน้ ทางสามารถเชือมต่อกบั เครืองปลายทางไดแ้ ลว้ ACK bit จะถูกกาํ หนดคา่ เป็น “1”
Data Offset: ขนาด 4 บิตเป็ นฟิ ลด์ทีเก็บค่าระบุตาํ แหน่งของข้อมูลเริมต้นใน TCP
Segment โดยจะแสดงคา่ เป็นจาํ นวนเทา่ ของ 32 บิต
Reserved: ขนาด 6 บิต เป็ นฟิ ลด์ทีสงวนไวใ้ ช้ในอนาคต ดังนัน ค่าในฟิ ลด์นีจะถูก
กาํ หนดคา่ เป็น “0” หมด
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์ หนา้ ที 548
Control Bits: ขนาด 6 บิตเป็ นฟิ ลด์ทีใชใ้ นการควบคุมการส่ง เซ็กเมนทใ์ ห้กบั ปลายทาง
โดยมีการกาํ หนดค่าความหมายของแตล่ ะ Bits ดงั ภาพที 14.9
ภาพที 14.9 Control Bits
จากภาพที 14.9 รายละเอยี ดของ Control Bits มีดงั นี
URG (Urgent Pointer filed significant): เป็นบติ ทีกาํ หนดความสาํ คญั เร่งด่วน
ของขอ้ มูลทีจะส่ง ถา้ URG bit ถูกกาํ หนดค่าเป็ น “1” แลว้ Urgent Pointer ฟิ ลด์
จะระบุลาํ ดบั ขอ้ มูลไบตส์ ุดทา้ ยของขอ้ มูลสําคญั เร่งด่วนทีตอ้ งการส่ง ดังนัน
โพรโทคอล TCP จะตดั ขอ้ มูลตงั แต่ Data Offset-Urgent Pointer ซึงเป็ นขอ้ มูลที
ระบุว่าสําคญั เร่งด่วนให้นําส่งไปก่อน เช่น ถ้า TCP Segment มีขอ้ มูลสําคญั
เร่งด่วน (Urgent Data) ขนาด 20 ไบตต์ ามดว้ ยขอ้ มูลปกติ (Regular Data) ขนาด
40 ไบต์ เมือ URG bit ถูกกาํ หนดเป็ น “1” ฟิ ลด์ Urgent Pointer จะเก็บค่า 20 ซึง
เป็นขนาดของขอ้ มลู สาํ คญั เร่งด่วนทีตอ้ งการส่ง
ACK (Acknowledgment filed significant): เป็ นบิตทีกาํ หนดวา่ TCP Segment
นีมีข้อมูล Acknowledgement ด้วย โดยกาํ หนดอยู่ในฟิ ลด์ Acknowledgment
Number (4 ไบต์) ซึ งจัดเก็บค่า Next Sequence Number ทีเครื องปลายทาง
จะตอ้ งรับใน TCP Segment ถดั ไป
PSH (Push Function): เป็ นบิตทีควบคุมการส่งขอ้ มูลไปยงั เครืองปลายทาง
โดยปกตแิ ลว้ ก่อนทีโพรโทคอล TCP จะส่งขอ้ มลู ออกไปจะรอให้เนือขอ้ มูลจาก
แอปพลิเคชนั ไดข้ นาดทีตอ้ งการก่อนแลว้ จึงค่อยส่งไปพร้อมกนั (คลา้ ย ๆ รถตู้
โดยสารทีรอคนเตม็ ก่อน) แตใ่ นบางครังแอปพลิเคชนั หากมีความจาํ เป็ นตอ้ งส่ง
ขอ้ มูลออกไปในทนั ทีไม่ตอ้ งการจะรอโพรโทคอล TCP ก็มีคุณสมบตั ิรองรับ
นันคือ Push Function ซึ งหากกําหนดค่าเป็ น “1” หมายความว่า ข้อมูลที
แอปพลิเคชันส่งเข้ามานันให้ส่งต่อไปยงั ปลายทางทันที โดยทีเมือเครือง
ปลายทางได้รับข้อมูลและเห็นว่า PSH bit ถูกกําหนดค่าเป็ น “1” เครื อง
ปลายทางจะส่งตอ่ ขอ้ มูลทีไดม้ าเขา้ Buffer เพือให้แอปพลิเคชนั นาํ ไปใชท้ นั ที
บทที 14 ชนั สือสารจดั การนาํ ส่งขอ้ มลู และชนั สือสารการประยกุ ต์ หนา้ ที 549