The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by benztc31, 2021-08-14 00:23:18

บทที่ 4.3

182





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3



ื่


ื่


ื่
ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
เรอง กระบวนการท างานของ Network Layer
ื่

จุดประสงค์การสอน
4.3 เข้าใจกระบวนการท างานของ Network Layer
4.3.1 อธิบายการท างานและรายละเอียดสาระของ Network Layer
4.3.2 อธิบายการให้บริการแบบ Connection-oriented และ Connectionless
4.3.3 อธิบายการท างานของโพรโตคอล X.25
4.3.4 อธิบายการท างานของโพรโตคอล TCP/IP

4.3.5 อธิบาย Internet Protocol (IP)

183







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3
ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด


ื่
ื่



ื่
ื่
เรอง กระบวนการท างานของ Network Layer

4.3 กระบวนการทางานของ Network Layer OSI Model Network Layer
โดยทั่วไปแล้วระดับชั้นเน็ตเวิร์ก มีหน้าที่ในการนาข้อมูลจากผู้ส่งผ่านโหนดต่างๆของเครือข่ายเพื่อไป

ยังผู้รับได้อย่างถูกต้องและมีประสิทธิภาพ ในการที่สามารถบรรลุถึงเป้าหมายนี้ได ระดับชั้นเน็ตเวิร์กจะต้อง
ทราบถึงรูปร่างลักษณะของเครือข่าย(Topology) ของผู้ให้บริการส่งข้อมูล เพื่อทาให้เส้นทางผ่านของข้อมูลได้
อย่างเหมาะสม และรวดเร็วและต้องพยายามเลือกเส้นทางที่ไม่ให้ข้อมูลไปแน่นขนัดในบางสาย ในขณะที่บาง
สายไม่มีข้อมูลผ่านเลย นอกจากนั้นในกรณีที่ปลายทางทั้งสองอยู่ในเครือข่ายที่ต่างกัน ก็เป็นหน้าที่ของ

ระดับชั้นเน็ตเวิร์ก ในการส่งข้อมูลผ่านเครือข่ายเหล่านั้นที่อาจจะที่เทคนิคตลอดจนการให้บริการส่งข้อมูลที่

แตกต่างกันไป ส าหรับเนื้อหาสาระของระดับชั้นเน็ตเวิร์กนั้น ประกอบด้วยการให้บริการแก่ระดับชั้น ทราน

สปอร์ตหรือผู้ใช การหาเส้นทางและการนาส่งข้อมูลผ่านเครือข่าย (Routing) การควบคุมการแน่นขนัด
(Connection control) และการเชื่อมโยงข้อมูลผ่านหลายเครือข่าย (internetworking) ซึ่งจะอธิบายในส่วน

ต่อไป
4.3.1 การทางานและรายละเอียดสาระของ Network Layer การให้บริการแก่ระดับชั้นทราน

สปอร์ต ในหลายๆ เครือข่ายคอมพิวเตอร์ เช่น เครือข่ายอินเตอร์เน็ต และ X.25 นั้นระดับชั้นเน็ตเวิร์กจะทางาน
ที่โหนดต่างๆ ของเครือข่ายย่อยของผู้ให้บริการ ส่วนระดับชั้นทรายสปอร์ตจะทางานที่โฮสต์ของเครือข่ายย่อย

ส่วนของผู้ใช้ ดังนั้นการบริการของระดับชั้นเน็ตเวิร์กแก่ระดับชั้นทรานสปอร์ต คือการบริการของเครือข่ายย่อย
ส่วนของผู้ให้บริการให้แก่โฮสต์เครือข่ายย่อยส่วนของผู้ใช้ นอกจากนั้นในกรณีที่เครือข่ายย่อยทางานภายใต้

องค์การสื่อสารเช่น PTT (Post Telegraph & Telephone admininistration) และโฮสต์ทางานโดยผู้

ให้บริการแล้ว อาจกล่าวได้ว่าการบริการของระดับชั้นเน็ตเวิร์กให้แก่ชั้นทรานสปอร์ตเป็นการบริการขององค์กร
สื่อสารต่อผู้ให้บริการ ดังนั้นการบริการจึงเป็นการก าหนดหน้าที่และความรับผิดชอบขององค์การสื่อสารต่อ

ผู้ใช้บริการ ซึ่งในการบริการต้องให้บรรลุเป้าหมายของการบริการดังต่อไปนี้

1. การบริการไม่ควรขึ้นอยู่กับเทคโนโลยี ที่อาจเปลี่ยนแปลงไปของเครือข่ายย่อย ส่วนของผู้ให้บริการ
กล่าวคือหากเทคโนโลยีการสร้างเครือข่ายย่อยเปลี่ยนแปลงไปก็ต้องสามารถให้บริการแก่ผู้ใช้ได้ดังเดิม หรืออีก

นัยหนึ่งคือมีการอินเตอร์เฟซแบบคลีน- คัต (Clean-cut interface)ระหว่างผู้ใช้บริการและผู้ให้บริการ

2. ผู้ใช้บริการไม่มีความจาเป็นต้องทราบจานวนชนิด ตลอดจนรูปร่างลักษณะของเครือข่ายย่อย
3. แอดเดรสของเครือข่ายย่อยที่ใช้ในการส่งผ่านข้อมูลจาดระดับชั้นทรายสปอร์ตให้แก่

เครือข่ายเน็ตเวิร์ก ควรเป็นแอดเดรสที่มีมาตรฐานใช้กันทั่วไป ซึ่งจะทาให้ส่งข้อมูลผ่านได้ทั้งเครือข่ายแลน
แมน แวน

184





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3






ื่
ื่
ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
เรอง กระบวนการท างานของ Network Layer

4.3.2 การให้บริการแบบ Connection-oriented และ Connectionless ปกติแล้วในการ
ให้บริการส่งข้อมูลอาจแบ่งเป็นประเภทใหญ่ๆ ได้ 2 ประเภทประเภทแรกเป็นระบบโทรศัพท์ ซึ่งก่อนให้บริการ
ส่งข้อมูล ผู้ใช้ต้านทางและปลายทางต้องสร้างการติดต่อให้ได้ก่อน (establish connection) แล้วทาการส่ง
ข้อมูล (data transfer) หลังจากหมดข้อมุลแล้วก็ทาการยกเลิกการติดต่อ (disconnection) ซึ่งไม่ว่าการทางาน
ในระบบโทรศัพท์จะสลับซับซ้อนเพียงไรก็ตามอแต่ผู้ใช้บริการจะเห็นว่าหลังทาการติดต่อแล้วจะมีช่องสัญญาณ
เชื่อมต่อระหว่างปลายทางทั้งสอง ซึ้งข้อมูลที่ผ่านช่องสัญญาณนั้นจะเรียงลาดับกันไปถึงผู้รับในลาดับเดียวกัน

กับที่ส่งมาจากผู้ส่ง การบริการแบบนี้เรียกกันว่า การบริการแบบ Connection –Oriented (connection-

oriented Service)
ส่วนการให้บริการอีกประเภทหนึ่งเป้นการให้บริการของระบบไปรษณี ซึ่งการให้บริการโดยที่ผู้ใช้ไม่

ต้องทาการติดต่อกันก่อน เมื่อใดที่ต้องการส่งข้อความก็จะเขียนแอดเดรสของผู้รับบนซองจดหมายและส่ง

จดหมายออกไป ซึ้งจดหมายแต่ละฉบับก็จะถูกส่งในเส้นทางที่อาจจะแตกต่างกันไป และผู้รับปลายทางก็อาจจะ
ได้รับจดหมายที่ลาดับที่มีลาดับแตกต่างกันไปจากลาดับของการส่ง ซึ่งเป็นหน้าที่ในการที่จะเรียงลาดับของข้อมุ

ลเอง การบริการประเภทนี้เรียกว่า การบริการแบบ Connectionless (Connectionless Service) ในทานอง
เดียวกัน เครือข่ายย่อยส่วนของผู้ให้บริการก็แบ่งการบริการออกได้เป็น 2 ค่าย ค่ายหนึ่งเป็นองค์กรการ

ให้บริการส่งข้อมูลอยู่แล้ว เช่น PTT ตกลงกันว่าการให้บริการนั้นควรเป็นแบบ Connection – Oriented ที่
เชื่อถือได้ ซึ่งเป้นการบริการที่มีลักษณะสาคัญดังต่อไปนี้

1. ก่อนทาการส่งข้อมูลแบบเอ็นทิตี้ ในระดับชั้นทรานสปอร์ตของผู้ส่งต้องสร้างการตดต่อกับแอนทิตี้


ในระดับชั้นทรานสปอร์ตของผู้รับและในการติดต่อนี้หากสาเร็จจะมีการก าหนดตัวเลขบ่งบอกการติดต่อ
(identifier)ครั้งนี้และตัวเลขบ่งบอกนี้จะถูกใช้ตลอดการส่งข้อมูลจนกว่าจะมีการยกเลิกการติดต่อ

2. ในการสร้างการติดต่อนั้น แอนทิตี้ของระดับชั้นทรานสปอร์ตตลอดจนระดับชั้นเน็ตเวิร์กจะมีการพูด

ตกลงกัน (negotiation) ถึงพารามิเตอร์ คุณภาพ ตลอดจนค่าาใช้จ่ายของการให้บริการและหากตกลงได้ก็จะ
ติดต่อ

3. หลังติดต่อแล้วการส่งข้อมูลเป็นแบบ 2 ทิศทาง โดยที่แพ็กเกตข้อมูลจะถูกส่งถึงผู้รับอย่างเรียงลา

ดับกันโดยไม่มีข้อผิดพลาด
4. การควบคุมการส่งข้อมูล(flow control) 1เพื่อไม่ให้ผู้ส่งส่งข้อมูลเร็วเกินไปจนผู้รับรับไม่ทันซึ่ง

อาจทาให้ข้อมูลในบัฟเฟอร์ของผู้รับนั้นเสียหาย จะเป็นหน้าที่ของระดับชั้นเน็ตเวิร์ค การบริการเช่นนี้ผู้
ให้บริการอาจต้องเสียค่าใช้จ่ายมากขึ้น แต่ได้รับประกันว่าข้อมูลจะเรียงลาดับกันไม่มีข้อมูลสุญหายหรือซ้ากัน

สาหรับอีกค่ายหนึ่ง เช่น อินเทอร์เน็ต เห็นว่าเครือข่ายย่อยของผู้ให้บริการควรมีหน้าที่แค่ส่งบิตข้อมูลไปยังผู้รับ

เท่านั้น ไม่จาเป็นต้องรับประกันความถูกต้องของข้อมูลหรือประกันการส่งข้อมูลแบบเรียงลาดับเพราะในทาง

185







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด

ื่


ื่
ื่

ื่
เรอง กระบวนการท างานของ Network Layer

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





















































ตาราง การเปรียบเทียบระหว่างการบริการแบบ Connection-Oriented และ Connectionless

186





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3



ื่



ื่
ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
เรอง กระบวนการท างานของ Network Layer

4.3.3 การทางานของโพรโตคอล X.25
โปรโตคอล X.25
เป็นเครือข่ายที่มีผู้นิยมใช้มากมายในการส่งข้อมูลระหว่างโฮสต์ของผู้ใช้ X.25 PLC (Packet Layer
Protocol) เป็นมาตรฐานที่ถูกก าหนดขึ้นมาโดย CCITT เพื่อให้เครือข่ายสาธารณะของประเทศต่างๆ สามารถ
ทางานส่งข้อมูลได้สอดคล้องในแนวเดียวกัน อีกทั้งทาการอินเตอร์เฟซกับผู้ใช้ในลักษณะเดียวกัน ซึ่ง X.25 PLP
นี้ได้ถูกใช้อย่างแพร่หลายสาหรับโปโตคอลซึ่งให้บริการแบบ Connection-oriented ในระดับชั้นเน็ตเวิร์ก

X.25 ได้ก าหนดรูปแบบของการอินเตอร์เฟซระหว่างโฮตส์ซึ่งเรียกว่า DTE (Data Treminal Equipment) และ

อุปกรณ์ของผู้ให้บริการ (carrier) ซึ่งเรียกวา DCE(Data Circuit terminatingOSI ซึ่งบ่งถึงการอินเตอร์เฟซ

ระหว่างระดับชั้นทรานสปอร์ตและระดับเน็ตเวิร์ก) ส่วนโหลดของเครือข่ายจะถูกเรียกว่า DSE (Data

Switching Exchange) X.25 จะก าหนดรูปแบบความหมายตลอดจนลาดับของข้อมูลที่ส่งผ่านระหว่างอินเตอร์

เฟซ ของ DTE และ DCE โดยทั้วไปแล้ว x.25 จะครอบคลุมตั้งแต่ระดับชั้นฟิสิคัลจนึงระดับชั้นเน็ตเวิร์ก สาหรับ
ระดับชั้นที่ 1 ซึ่งเกี่ยวกับขั้นตอนของการส่งสัญญาณบตข้อมูลคุณสมบัติของสัญญาณไฟฟ้า คุณสมบัติทาง

กายภาพของข้อมูลต่างๆ ตลอดจนคุณสมบัติของสายสื่อสารนั้น X.25 ไม่ได้ก าหนด แต่อ้างอิงถึงมาตรฐาน X.21
และ ).21 bit ซึ่งก าหนดการอินเตอร์เฟสเพื่อส่งข้อมูลแบบดิจิตอลและแอนะล็อกตามลาดับ สาหรับ X.21 bit

(หรือ RS-232 ) เป็นมาตรฐานชั่วคราวใช้สาหรับเครือข่ายที่มีการส่งข้อมูลด้วยสัญญาณแอนะล็อกก่อนที่
เครือข่ายแบบดิจิตอลจะมีการใชแพร่หลายมากขึ้น สาหรับชั้นที่ 2 ซึ่งเกี่ยวกับการส่งข้อมูลผ่านสายสื่อสาร

ระหว่าง DTE และ DCE ให้ได้อย่างถูกต้องและมีประสิทธิภาพนั้น X.25 อ้างอิงถึง HDLC แบบ LAPB




























รูปที่ 4.27 การอินเตอร์เฟซของ DTE และ DCE สาหรับโปรแกรม X.25

187







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3


ื่
ื่



ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
เรอง กระบวนการท างานของ Network Layer
ื่

ส าหรับระดับชั้นที่ 3 นั้นจะจัดการให้มีการติดต่อส่งแพ็กเก็ตระหว่าง DTE ปลายทางทั้งสอง ซึ่งมีการ
ติดต่อส่งแพ็กเก็ตระหว่าง DET ปลายทางทั้งสองซึ่งจะติดต่อส่งข้อมูลของ X.25 รูปแบบเวอร์ชวลคอลล์
(virtual Call) และเพอร์มาเนนต์เวอร์ชวลเซอร์กิต (permanent virtual circuits) สาหรับเวอร์ชวลคอลล์จะ
มีลักษณะคล้ายสวิตช์ของระบบโทรศัพท์ประกอบก้อย3 เฟส คือการสร้างการติดต่อ การส่งข้อมูลและการยก
เลิการติดต่อซึ่งแบบนี้ในการติดต่อส่งข้อมูลระหว่าง DTE คู่หนึ่งอาจจะได้เส้นทางซึ่งไม่เหมือนกัน ส่วนเพอร์
มาเนนต์เวอร์ชวลเซอร์กิตนั้นคล้ายกับสายเช่าคือ จะมีเส้นทางที่ก าหนดไว้แน่นอนสาหรับ DTE คู่นั้นเสมอ เมื่อ

DTE ตัวใดต้องการส่งข้อมูลก็ไม่ต้องสร้างการติดต่อ แต่สามารถส่งออกไปได้เลยจึงเหมาะสาหรับการส่งข้อมุ

ลจานวนมากอย่างไรก็ตามการส่งข้อมูลทั้งสองแบบจะเหมือนกันในเฟสการส่งข้อมูล จากรูป แสดงเฟสต่างๆ
ของการติดต่อข้อมูลระหว่าง DTE จะเห็นได้ว่าในการสร้างการติดต่อ DTE ของแพ็กเกต Call Request ไปยัง

DCE ของอีกฝั่ง และส่งให้ DTE ปลายทางซึ่งเรียกแพ็กเกตนี้ว่าIncoming Call หาฟ DTE นั้นพร้อมที่จะทาการ

ติดต่อก็จะส่งแพ็กแกต Call Accepted การส่งข้อมูลนั้น DTE ทั้งสองฝั่งจะสามารถส่งข้อมูลแบบฟลูดูเพล็กซ์
และเมื่อฝั่งใดหมดข้อมูลส่งแพ็กเก็ต Clrar Request เพื่อบอกขอเลิกการติดต่อ ซึ่งฝั่งตรงกันข้ามก็จะส่งแพ็ก

เก็ต Clear Confirmation กลับมาเพื่อเป็นการตอบรับการยกเลิกการติดต่อ สาหรับการสร้างการติดต่อนั้น ฝั่ง
เริมการติดต่อจะเลือกหมายเลขเซอร์กิตที่ว่างซึ่งหมายเลขเซอร์กิตอาจถูกเปลี่ยนไปเมื่อผ่านโหนดต่างๆ ซึ่ง

หมายเลขเซอร์กิตนี้ต้องไม่เป็นหมายเลขที่ถูกใช้โดย DTE ตัวนี้ โดยดูตารางการหาเส้นทางว่ามีข้อมูลที่ส่งมาจาก
DTE ตัวนี้โดยหมายเลขเซอร์กิตที่เลือกนั้นหรือไม่ แต่อาจจะเกิดกรณีที่ในขณะนั้น DTE ตัวนี้กาลังสร้างการ

ติดต่อกับ DTE ตัวอื่น และเลือกใช้หมายเลขเซอร์กิตของแพ็กเกต Call Request ซึ่งเป็นหมายเลขเดียวกันที่

DCE ใช้สาหรับ Incoming Call ก็จะเกิดการเรียกชนกัน ซึ่งในกรณีที่เกิดการชนกันนี้ X.25 ก าหนดให้แพ็กเกต
Call Request สามารถใช้หมายเลขนี้ และจะส่งแพ็กเกตออกไปได ส่วน Incoming Call จะถ฿ฃูกยกเลิกดังนั้น

เพื่อไม่ให้เกิดการชนกัน จึงมีการก าหนดให้ DTE ใช้หมายเลขเวอร์กิตที่มีค่าสูงสาหรับ Outgoing Call ส่วน

DCE ให้เลือกหมายเลขที่มีต่าต่าสาหรับ Incoming Call

188





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3





ื่

ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
ื่
เรอง กระบวนการท างานของ Network Layer

































รูปที่ 4.28 แสดงเฟสต่างๆของ X.25


การใช้โปรโตคอล X.25 ติดต่อระหว่าง DTE และ DCE ในเครือข่ายแพ็กเกจสวิตช์

เฟรมข้อมูลของโปรโตคอล X.25 นั้นจะแบ่งออกเป็นเฟรม ๆ เรียกว่าแพ็กเกตเช่นเดยวกับเฟรมข้อมูล
ของโปรโตคอล SDLC ในการสื่อสารข้อมูลกันระหว่าง DTE และ DCE ในเลเยอร์ชั้นที่ 2 นั้น สามารถ สื่อสาร

ั้
กันโดยผ่านทางสายโทรศัพท์ได สาหรับในการสื่อสารข้อมูลในเลเยอร์ชนที่ 3 เลเยอร์ Network หรือบางที

เรียกว่า "เลเยอร์ Packet" จะมีลักษณะการสื่อสารที่เรียกว่า วงจรเสมือน (Virtual Circuit) ซึ่งมีลักษณะการ
ติดต่อสื่อสารอยู่ 3 ขั้นตอนคือ
1. การก าหนดวงจรสื่อสาร (Establish) เริ่มต้นจาก DTE ต้นทางส่งสัญญาณขอติดต่อข้อมูลกับ DTE

ปลายทาง เมื่อทาง DTE ปลายทางตอบรับการติดต่อว่าพร้อม ก็เป็นอันว่าวงจรการสื่อสารได้เริ่มต้นขึ้น แล้ว รูป

ที่ 4.29 พื้นที่ 640K ของ Main memory RAM
2. การส่ง – รับ ข้อมูล (Transmit) เป็นการรับ - ส่งแลกเปลี่ยนข้อมูลซึ่งกันและกันระหว่าง DTE ทั้ง


2 ด้าน ข้อมูลจะถูกส่งเป็นแพ็กเกจ ๆ ผ่านเครือข่ายแพ็กเกจสวิตช

189





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3



ื่

ื่


ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
เรอง กระบวนการท างานของ Network Layer

3. การยุติการสื่อสาร (Disconnect) DTE ต้นทางจะส่งสัญญาณบอกยุติการสื่อสารต่อ DTE ปลายทาง
โดยต้องรอให้ DTE ปลายทางยืนยันการยุติการสื่อสารกลับมาด้วย โปรโตคอล X.25 สามารถใช้ได้กับอุปกรณ์
สื่อสารข้อมูลทั่วไป ที่ผลิตจากบริษัทต่างกัน และยังสามารถใช้ได้กับเครือข่ายการสื่อสารที่มีสถาปัตยกรรม
ต่างกันได้อีกหลายแบบด้วย

4.3.4 การท างานของโพรโตคอล TCP/IP ความรู้เบื้องต้น เกี่ยวกับ TCP/IP(Transmission

Control Profocol/Internet Protocol)

โปรโตคอล TCP/IP เป็นชุดของโปรโตคอลที่มีการพัฒนามาตั้งแต่ป 1960 โดยมีวัตถุประสงค์ให้

สามารถใช้สื่อสารจากต้นทางข้ามเน็ตเวิร์กไปยังปลายทางได้ และสามารถหาเส้นทางที่จะส่งข้อมูลไปได้เองโดย

อัตโนมัติถึงแม้ว่าในระหว่างทางอาจจะผ่านเน็ตเวิร์ก ที่มีปัญหาโปรโตคอลที่ยังคงหาเส้นทางส่งผ่านข้อมูลไปให้

ถึงปลายทางได้ ในระยะเริ่มต้นโปรโตคอลนี้ใช้กันในวงแคบ ๆ เฉพาะราชการและสถานศึกษาของอเมริกาจน
ในช่วงปี 90 จึงมีการนามาใช้ในทางธุรกิจและเป็นจุดเริ่มต้นของอินเทอร์เน็ตในปัจจุบันผมคิดว่าประวัติโดยส่วน

ใหญ่ของโปรโตคอลนี้ คงมีอยู่ในหนังสือที่เกี่ยวข้องกับอินเทอร์เน็ตจานวนหลายเล่มแล้วก็คงอนุญาตละไว ้
เพื่อให้เข้าสู่จุดมุ่งหมายของหนังสือฉบับน ได้อย่างรวดเร็วจากที่กล่าวมาข้างต้นจะเห็นได้ว่า TCP/IP นี้มีการ
ี้
ออกแบบมาเป็นเวลานาน มาตั้งแต่ปี 1960 ก็มีการใช้ไปปรับปรุงอยู่เรื่อย ๆ เพื่อให้สามารถใช้งานได้
หลากหลายและมีประสิทธิภาพมากขึ้นแต่อย่างไรก็ตาม โปรโตคอลนี้ก็ยังคงมีจุดบกพร่องอีกมากมายซึ่ง

จุดบกพร่องเหล่านี้ บางส่วนก็มิได้มีผลกระทบรุนแรงเท่าไหร่นัก ในมุมมองของนักคอมพิวเตอร์โดยทั่วไป แต่

กลับกลายเป็นเครื่องมืออันทรงอานุภาพของบรรดาเหล่าแฮกเกอร์ทั้งหลายที่หยิบฉวยข้อบกพร่องเหล่านี้มาใช้
ในการโจมตีผู้อื่นโดยเฉพาะการโจมตีแบบ Dos นั้นล้วนแต่ใช้ข้อบกพร่องของ TCP/IP แทบทั้งสิ้นการศึกษา

โปรโตคอลนี้ตามปกติที่ทากันทั่วไปอาจไม่เพียงพอที่จะทาให้รู้เท่าทันกลวิธีของแฮกเกอร์และป้องกันตนเองได้

ดังนั้นสิ่งที่เราจาเป็นต้องศึกษาควบคู่กันไปกับวิธีการใช้งานโปรโตคอลก็คือข้อบกพร่องของโปรโตคอลคืออะไร
มีผลกระทบอย่างไรและสามารถป้องกันตัวเองได้อย่างไรอย่างไรก็ตามก่อนที่จะศึกษาเรื่อง IDS เราจาเป็นต้อง

เริ่มศึกษาโปรโตคอล TCP/IP อย่างละเอียดถี่ถ้วยเสียก่อนเพื่อเป็นพื้นฐานในการทาความเข้าใจเนื้อหาที่มีความ

ซับซ้อนในภายหลังในการแบ่งชั้น Layering TCP/IP เป็นชุดของโปรโตคอลที่ประกอบด้วย โปรโตคอลย่อย
หลายตัวโดยแต่ละตัวจะทาหน้าที่ในแต่ละชั้นหรือเลเยอร์ layer ซึ่งรับผิดชอบและแปลความหมายของข้อมูล

ในแต่ละระดับของการสื่อสาร ซึ่งในภาพรวมแล้ว TCP/IPแบ่งออกเป็น 4 เลเยอร์ ดังรูป

190





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3


ื่

ื่



ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
เรอง กระบวนการท างานของ Network Layer
ื่







รูปที่ 4.29 แสดง TCP/IP Layer

Datalink Layer ในเลเยอร์นี้จะเป็นดไวซ์ไดรเวอร์ที่ทางานอยู่บนระบบปฏิบัติการแต่ละระบบทา

หน้าที่รับผิดชอบในการรับส่งสัญญาณไฟฟ้าจนเป็นข้อมูลทางคอมพิวเตอร์ โปรโตคอลระดับนี้ เช่น Ethernet

และ SLIP(Serial Line Internet Protocol) Network Layer รับผิดชอบในการรับส่งข้อมูลในเน็ตเวิร์กส่งต่อ

ข้อมูลไปจนถึงจุดหมายปลายทางโปรโตคอลระดับนี้ได้แก่ IP,ICMP,IGMP
Transport Layer รับผิดชอบในการรับส่งข้อมูลระหว่างเครื่องหนึ่ง (Host) ไปยังอักโฮสต์หหนึ่งจะส่ง

ี้
ข้อมูลไปให้ Application Layer นาไปใช้งานต่อ มีโปรโตคอลที่จัดอยู่ในเลเยอร์น คือ TCP และ UDPซึ่งมี
ลักษณะในการรับส่งข้อมูลที่แตกต่างกันออกไป Application Layer เป็นเลเยอร์ที่แอพพลิเคชั่นเรียกใช้

โปรโตคอลระดับล่าง ๆ ลงไปเพื่อวัตถุประสงค์ที่แตกต่างกัน เช่น

FTP (File Transfer Protocol) ใช้สาหรับรับส่งแฟ้มข้อมูลระหว่างโฮสต์
SMTP (Simple Mail Transfer Protocol) ใช้รับส่งจดหมายอิเล็กทรอนิคส์ระหว่างโฮสต์

Telnetใช้สาหรับการควบคุมเครื่องระยะไกล

HTTP (Hypertext Transfer Protocol)เป็นโปรโตคอลที่ใช้รับส่งข้อมูลเว็บเพจระหวางบราวเซอร์

และเว็บเซิร์ฟเวอร์

POP (Post Office Protocol) ใช้สาหรับดาวน์โหลดอีเมล์จากเมล์เซิร์ฟเวอร์มาไว้ที่เครื่องเมล์

ไคลเอนต (PC) ของผู้ใช้

TCP กับ UDP เพื่อเป็นข้อมูลเบื้องต้นสาหรับการทาความเข้าใจชุดโปรโตคอล TCP/IP ก่อนที่จะ

เจาะลึกรายละเอียดในบทต่อไปนั้นขออธิบายลักษณะของ TCP และ UDP ดังนี้
TCP เป็นโปรโตคอลที่รับประกันการับ - ส่งข้อมูลระหว่างโฮสต์ กล่าวคือ โปรโตคอลมีกลไกในการ

ตรวจสอบและยืนยันว่ามีข้อมูล จากต้นทางจะไปถึงปลายทางเสมอ หากข้อมูลถึงปลายทางก็จะมีสัญญาณตอบ

รับว่าข้อมูลถึงปลายทางแล้ว หากไม่มีสัญญาณตอบรับก็แสดงว่าข้อมูลไม่ถึงปลายทาง ดังนี้แอพพลิเคชั่นที่มี
ความสาคัญจึงเลือกใช้โปรโตคอลนั้นในการรับส่งข้อมูล กระบวยการยืนยันการรับส่งข้อมูลนี้เองเป็นจุดขายของ

โปรโตคอล TCPที่เด่นและไม่มีใครมาแข่งขันได้ เพราะในการทางานของคอมพิวเตอร์ ท่านผู้อ่านคงทราบแล้ว

191





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3



ื่



ื่
ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
เรอง กระบวนการท างานของ Network Layer

ว่าข้อมูลทุกตัวอักษรล้วนมีความสาคัญอย่างยิ่งยวดและอย่างเท่าเทียมกัน การที่ข้อมูลขาดหายหรือผิดไปแม้
เพียงตัวอักษรเดียว ก็อาจทาให้โปรแกรมทางานผิดพลาดทั้งได้ทันที ดังนั้นแอพพลิเคชั่นซึ่งทราบความสาคัญใน
จุดนี้เป็นอย่างดีจึงหันมาเลือกใช้โปโตคอล TCP ในการสื่อสารกันเป็นจานวนมากประกอบกับการที่โปรโตคอล
TCP นั้นอยู่บนเลเยอร์ของ IP ซึ่งสามารถรับส่งข้อมูลไปได้ทุกที่ในโลก
UDP
ในขณะที่ TCP มีการรับส่งข้อมูลได้อย่างถูกต้องทุกบิต แต่ทุกอย่างในโลกนี้ไม่มีอะไรได้มาฟรี สิ่งที่

TCP ต้องแลกไปกับการรับประกันข้อมูลคือโอเวอร์เฮดที่เพิ่มขึ้นไม่ว่าในแง่ของความยาวของข้อมูลและความ

ซับซ้อนในการที่ต้องการตอบรับทุกครั้งทาให้ประสิทธิภาพลดลงไปโปรโตคอล UDPได้เข้ามาแก้ไขปัญหานี้คือ
สามารถรับส่งข้อมูลระหว่างโฮสต์ได้เช่นกัน แต่ไม่มีการับประกันการรับส่งข้อมูล หมายถึงการส่งข้อมูลทุกครั้ง

จะไม่มีการตรวจสอบยืนยันกันเอง หากต้องการตรวจสอบ ก็ให้รับส่งข้อมูลยืนยันข้อมูลอาจจะขอเพียงให้

สามารถรับ - ส่งข้อมูลได้อย่างมีประสิทธิภาพก็เพียงพอแล้ว
TCP/IP Layering

ในชุดของโปโตคอล TCP/IP ประกอบด้วยโปรโตคอลหลายตัวทางานร่วมกันในเลเยอร์ต่างๆและมี
หน้าที่ แตกต่างกันออกไปแสดงให้เห็นถึงโปรโตคอลในแต่ละเลเยอร์ที่เมื่อรวมกันเป็นชุมของ TCP/IP ซึ่งตัว

หลักในภาพก็คือ TCP อยู่ในทราบสปอร์ตเลเยอร์ทาหน้าที่จัดการและควบคุมการรับส่งข้อมูลให้มีเสถียรภาพ
แลเชื่อถือได้โดยปล่อยหน้าที่นี้ให้กับแอพพลิเคชั่นเลเยอร์เป็นผู้ทาหน้าที่นี้แทน UDP อยู่ในสปอร์ตเลเยอร์ ท า

หน้าที่จัดการและควบคุมการรับส่งข้อมูล เช่นเดียวกันแตไม่มีกลไกการรับส่งที่มีเสถียรภาพและเชื่อถือได โดย


ปล่อยหน้าที่นี้ให้กับแอพพลิเคชั่นเลเยอร์เป็นผู้ทาหน้าที่นี้แทน

192







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3

ื่
ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด



ื่
ื่
เรอง กระบวนการท างานของ Network Layer






























รูปที่ 4.30 แสดง เลเยอร์ของโปรโตคอลต่าง ๆ ในชุด TCP/IP Suite

IP

อยู่ในเน็ตเวิร์กเลเยอร์ เป็นโปรโตคอลหลักในการสื่อสารข้อมูล ซึ่งกลไกสาคัญที่ทาให้ข้อมูลสามารถ
เคลื่อนที่ไปยังปลายทางได้ก็คือโปรโตคอล IP นั้นเอง ICMP (Internet Control Message Protocol) อยู่ในเน็ต

เวิร์กเลเยอร ์ทาหน้าที่เสริมให้การทางานของ IP ให้สมบูรณ์ โดยจะเป็นโปรโตคอลที่คอยส่งข่าวสารและแจ้ง

ความผิดพลาดให้แก่ IP แต่ในบางโอกาสแอพพลิแคชั่นเลยเยอร์ก็เรียกใช้ ICMP โดยตรงเพื่อใช้ประโยชน์จาก
ความสามารถของ ICMP ด้วยเช่นกัน IGMP (Internet GroupMangement Protocol) อยู่ในเน็ตเวิร์กเลเยอร์

ทาหน้าที่ในการส่ง UDP ดาต้าแกรมไปยังกลุ่มของโฮสต์ หรือโฮสต์หลาย ๆ ตัวพร้อมกัน ARP (Address
Reservation Protocol) อยู่ในลิงค์เลเยอร์ ทาหน้าที่เปลี่ยนระหว่างแอดเดรสที่ใช้โดย IP ให้เป็นแอดเดรสของ

Network Interface RATP (Reverse ARP) อยู่ในลิงค์เลเยอร์เช่นกัน แต่ทาหน้าที่กลับกันกับ ARP คือ เปลี่ยน

ระหว่างแอดเดรส ของNetwork Interface ให้เป็นแอดเดรสที่ใช้โดย IP

193







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3

ื่
ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด


ื่

เรอง กระบวนการท างานของ Network Layer
ื่

Internet Address
ทุกอินเทอร์เน็ตทีต่อยู่บนอินทอร์เน็ต จะต้องมีหมายเลขประจาตัวเพื่อใช้ในการสื่อสาร ข้อมูล เรียกว่า
Internet Address หรือเรียกย่อๆว่า IPAddressโดยค่า IPAddress นี้จะเป็นหมายเลขจานวน 32 บิตแต่แทนที่
จะก าหนดให้เลขทั้ง 32 บิต นั้นถูกนับต่อเนื่องกันไป ตั้งแต่ 0 - 2 ก็ใช้วิธีการแบ่งหมายเลข
ดังกล่าวออกเป็นกลุ่มของเลขขนาด 8 บิต จานวน 4 ชุด และคั่นแต่ละชุดด้วยจุด ตัวอย่างเช่น
192.168.13.201 นอกจากนั้นในIP Address นั้นถูกแบ่งออกเป็น 2 ส่วน คือ ส่วนที่เป็นแอดเดรสของเน็ตเวิร์ก

(Network ID)และส่วนที่เป็นแอดเดรสของโฮสต์ (Host ID) ซึ่งข้อมูลในส่วนนี้จะถูกใช้สาหรับค้นหาเส้นทางของ

IP ในการที่จะขนส่งข้อมูลจากต้นทางให้ถึงปลายทางอย่างถูกต้องเพื่อเป็นการก าหนดขนาดของเน็ตเวิร์กสา
หรับ IP Address ต่าง ๆ ดังนั้นจึงมีการจัด IP Address ในแต่ละช่วงออกเป็นคลาส ต่าง ๆ กันจาก A ถึง E เพื่อ

จะได้ทาการจัดสรร IP Address ได้อย่างเหมาะสมกับขนาดของเน็ตเวิร์ก

































การก าหนดแอดเดรสส าหรับคลาสต่าง ๆ

194





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3



ื่



ื่
ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
เรอง กระบวนการท างานของ Network Layer
ื่











แสดงช่วงของ IP Address แต่ละคลาส
Encapsulation

การ Encapsulation คือการนาข้อมูลที่ต้องการส่งมาประกอบรวมกับข้อมูลที่เป็นส่วนควบคุมของ

โปรโตคอลโดยข้อมูลส่วนที่เป็นส่วนควบคุมนั้นจะถูกน ามาไว้ในส่วนหัวข้อของข้อมูลเรียกว่าเฮด
เดอร์(header)ซึ่งในการรับข้อมูลนั้น ผู้รับข้อมูลจะได้รับเฮดเดอร์ก่อนจากนั้นก็นาเฮดเดอร์ไปแปลและทราบว่า

ข้อมูลที่ตามมานั้นมีลักษณะอย่างไรจะได้จัดการได้อย่างถูกต้อง ภายในเฮดเดอร์ของโปรโตคอลส่วนใหญ่จะ

ประกอบด้วยข้อมูลหลักที่สาคัญของโปรโตคอลที่ทาการ Encapsulate มาคือแอดเดรสต้นทาง, แอดเดรส
ปลายทาง , ความยาวข้อมูล, รหัสตรวจสอบความผิดพลาดข้อมูลซึ่งสิ่งที่จะต้องเนนให้เห็นชัดคือ จะมีข้อมูล

สาคัญเฉพาะโปรโตคอลที่ทาการEncapsulation มาเท่านั้น ตัวอย่างเช่น การ Encapsulate ของ Ethernet ก็

จะมีการระบุ Ethernet address ลงในเฮดเดอร์เท่านั้นจะไม่มีการบรรจุ IP address ลงมาใน Ethernet
Header ด้วยแต่อย่างใด เพราะในเลเยอร์ของ Ethernet จะไม่รู้จัก IP Address หรือรหัสควบคุมใด ๆ ของ IP


(จริง ๆ แล้ว Ethernt ไม่รู้ด้วยซ้าว่าข้อมูลที่จะส่งนั้นเป็นโปรโตคอลอะไร) ดาต้าแกรมของ IP จะถูกตีค่าว่าเปน
ข้อมูลก้อนเดียวกันสาหรับ Ethernet เท่านั้น

195





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3



ื่



ื่
ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
เรอง กระบวนการท างานของ Network Layer
ื่
































การ Encapsulation ข้อมูลผ่านชั้นของโปรโตคอลแต่ละระดับ

ั้
ในการับส่งข้อมูลนั้นข้อมูลที่รับส่งกันจริงๆบนเน็ตเวิร์กนนจะประกอบด้วย 2 ส่วนคือข้อมูลจริงกับ
ข้อมูลของโปรโตคอลเปรียบเสมือน การส่งจดหมายซึ่งจะต้องประกอบด้วยเนื้อความในจดหมายและซอง

จดหมายที่เขียนที่อยู่ติดแสตมป์ ถ้ามีแต่จดหมายอย่างเดียวไปรษณีย์ก็คงต้องอ่านเองเพราะไม่รู้ว่าเราจะส่งให้

ใครการ Encapsulate ก็คือการเอาจดหมายมาใส่ซองนั้นเองโดยซองจะเปรียบเสมือนข้อมูลที่ใช้ในการรับส่ง
ข้อมูลของโปรโตคอลนั้น 1 โปรโตคอลก็กจะใส่ 1 ซอง ถ้าข้อมูลต้องส่งผ่านหลายเลเยอร์ จานวนซองก็จะถูกใส่

เพิ่มหลายชั้นตามลาดับการ Encapsulate นั้นเองดังนั้นถ้าเราจะส่งข้อมูลผ่าน โปรโตคอล TCP ข้อมูลเราก็จะ

ถูกใส่ซอง ตามลาดับดังนี้ ลาดับที่ 1 ซอง TCP ลาดับที่ 1 ซอง IP ลาดับที่ 1 ซอง Ethernet และฝ่ายรับข้อมูล
ก็จะต้องแกะซองออกตามลาดับ โดยต้องแกะซอง Ethernet ก่อนแล้วจะเจอซอง IP แกะซอง IP จะเจอซอง TC

Pแกะซอง TCP ก็จะเจอข้อมูลที่ต้องการการ Encapsulateในแต่ละระดับก็จะมีการเรียกข้อมูลที่อยู่ในซอง
แตกต่างกันออกไป ข้อมูลทาการ Encapsulate เรียบร้อย แล้วจาก TCP ส่งไปยัง IP เรียกว่า TCPSegment

ในระดับ IP ก็จะถือว่า TCP Segment เป็นข้อมูลทั้งชุด เมื่อไปรวมกับ IP Header ส่งไปยัง เลเยอร์ Datalink

จะเรียกว่า IPDatagram ในระดับ Datalink เมื่อส่งลงไปจะนา IPDatagram มาใส่ซองขนาดของข้อมูล ทั้งหมด
เราจะเรียกว่า EthernetFrame จากรูปจะเห็นว่าบางครั้งข้อมูลเรามีอยู่เพียงเล็กน้อยแต่กว่าที่เราจะส่งข้อมูล

196







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3
ื่




ื่

ื่
ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
เรอง กระบวนการท างานของ Network Layer

ไปถึงปลายทางได้ จะมีข้อมูลของเฮดเดอร์ของโปรโตคอล เกาะติดไปด้วยเสมอเช่นเดียวกับที่บางครั้งเราได้รับ
ของขวัญที่กล่องใหญ่ห่อหลายชั้น แต่พอเปิดไปข้างในอาจจะมีเพียงชอคโกแลตแท่งเดียว เป็นต้น ซึ่งก็เป็นได้

บางครั้งอาจจะดูสิ้นเปลืองแต่การที่ต้องใส่ของหลายชั้นแล้วส่งที่หมายดีกว่าประหยัดซอง แต่จดหมายไปถึงสา
หรับในการสื่อสารข้อมูล ไม่มีซองของจริงๆให้สิ้นเปลืองแต่ทรัพยากรที่เราสิ้นเปลืองไปก็คือ แบนด์วิดธ์ที่เรา
อาจใช้งานได้ไม่เต็มประสิทธิภาพเท่าที่ควร เนื่องจากทุกแพ็กเก็ตของข้อมูลจะต้องเสียส่วนหนึ่งไปเป็นเฮดเด
อร์เสมออาจสังเกตได้ง่าย ๆ ว่าในขณะที่โมเด็มต่อกับอินเทอร์เน็ตด้วยอัตราการรับส่งข้อมูล 56 Kbps แต่

ความเร็วที่เราดาวน์โหลดไฟล์ถึงได้สูงสุดต่ากว่านั้นมากเช่น 30Kbps สาเหตุก็เนื่องมาจากการที่มีเฮดเดอร์

โปรโตคอลรวมอยู่กับข้อมูลจริงอยู่ด้วย ทาให้ต้องเสียแบนด์วิดธ์ไปส่วนหนงเพื่อการน ี้
ึ่
Dumultiplexing

ในหัวข้อที่ผ่านมาได้กล่าวถึงการ Encapsulation ไปแล้ว Demultiplexing คือกระบวนการย้อนหลัง

ของการEncapsulation นั่นเองหากกระบวนการ Encapsulation คือการนาข้อมูลมาใส่ของที่ละชั้นตามเล
เยอร์ที่ส่งไปการ Demultiplexing ก็คือการรับซองข้อมูลที่ปิดผนึกใส่ซองมาอย่างมิดชิด เพื่อทาการแกะออกที่

ละขั้นตามเลเยอร์จนถึงเลเยอร์สุดคือ แอพพลิเคชั่นเลเยอร์ จึงได้ข้อมูลเนื้อความจริง ๆที่ต้องการสื่อสารกันใน
การ Demultiplexing นั้นแต่ละเลเยอร์จะนาข้อมูลมารวมกันให้ครบตามขนาดที่ต้องการเช่น 1 เฟรมในระดับ

Ethernet 1 Datagram ระดับ TCP และในแต่ละเลเยอร์ก็จะทาการถอดเฮดเดอร์ซึ่งเปรียบเสมือนซองออก
แล้วส่งขึ้นไปบนเลเยอร์ที่สูงกว่า ซึ่งในที่สุดเลเยอร์สุดท้ายก็จะได้รับเฉพาะข้อมูลเท่านั้น และเฮดเดอร์ถูกถอด

ออกไปหมดการ Demultiplex และ Encapsulate เป็นสิ่งคู่กันและสอดคล้องกัน อุปกรณ์ที่จะสื่อสาร บนเน็ต

เวิร์กได้จะต้องมีทั้งส่วนที่ทาหน้าที่ทั้งสอง โดยการ Demultiplexing ใช้ในตอนที่รับข้อมูลจากเน็ตเวิร์ก และ
การ Encapsulateใช้ในตอบที่จะทาการส่งข้อมูลอยู่ในทุกเลเยอร์ของโปรโตคอล

197







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3
ื่
ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด




ื่
ื่

ื่
เรอง กระบวนการท างานของ Network Layer







































จากเลเยอร์ที่แสดงในภาพจะเห็นว่าเลเยอร์บนสุดของ TCP/IP คือ แอพพลิเคชั่น เลเยอร์ สิ่งหนึ่งที่เรา

สามารถสังเกตเห็นได้ว่าข้อมูลทั้งหมดทุก ๆ เซกเมนต์จะต้องผ่านเลเยอร์นี้ก็เพราะแอพพลิเคชั่นเลเยอร์จะ

ครอบคลุมทั้งหมด ดังนั้นจะเกิดอะไรขึ้นถ้ามีหลายแอพพลิเคชั่นต่างก็ต้องการรับส่งข้อมูลผ่าน TCP/IP แต่ละ
แอพพลิเคชั่นจะสามารถแยกแยะได้อย่างไร ในความเป็นจริงที่ใช้งานปัจจุบันเอง ก็มีอยู่มากที่มีแอพพลิเคชั่น

มากกว่า 1 แอพพลิเคชั่นที่ทางานอยู่ภายในเครื่องเดียวกันเช่นในเซิร์ฟเวอร์เครื่องเดียวอาจจะเป็นทั้ง FTP
server .Web server และ Mail server นอกจากนี้อาจจะมีการบริการอื่น ๆ บน TCP/IP ที่ซ่อนอยู่โดยที่เรา

อาจไม่ทราบเช่น NetBios เป็นต้นพอร์ต (port) จะเป็นปัญหาของคาถามข้างต้นในโปรโตคอล TCP/IP ได้ถูก

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

ข้อมูลมาใช้ ว่าเป็นของแอพพลิเคชั่นตนเองหรือไม่หมายเลขพอร์ตที่เรารู้จักกันดีและใช้เป็นมาตรฐาน ได้แก่

พอร์ต 20,21 เป็นของ FTP,พอร์ต 23Telnet. พอร์ต 25SMTP,พอร์ต 30 HTTP เป็นตนสาหรับรายละเอียดว่า


198





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3



ื่


ื่

ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
เรอง กระบวนการท างานของ Network Layer

พอร์ตใดสาหรับแอพพลิเคชั่นเปิดดูได้ในภาคผนวกท้ายเล่ม โดยทั่วไป หมายเลขพอร์ตจะมีความสาคัญกับฝั่ง
ของเซิร์ฟเวอร์เท่านั้น เนื่องจากแอพพลิเคชั่นฝั่งเซิร์ฟเวอร์จะต้องคอยรอรับการรีเควสท์ หรือขอรับบริการจาก
ไคลแอนต์ที่พอร์ตเดิมเสมอ ส่วนในฝั่งไคลแอนต์เองหมายเลขพอร์ตไม่จาเป็นต้องเป็นหมายเลขที่ตายตัว และ
คงที่ เพราะหมายเลขพอร์ตจะเป็นการสุ่มเลขขึ้นมาใช้ชั่วคราว และจะมีการเรียกใช้พอร์ตใหม่ทุกครั้งที่มีการ
รับส่งข้อมูลเซสชั่น ใหม่
Reserved Port


ในระบบปฏิบัติการ Unix มีการสงวนพอร์ตบางส่วนไว้ให้สาหรับโพรเซสที่มีสิทธิพเศษของ Super
user เท่านั้นที่สามารถใช้พอร์ตในช่วง 1 - 2023 ได้แต่สาหรับ Windows NT มิได้สงวนไว้แต่อย่างใด ใน
บางครั้งหากท่านผู้อ่านพบคาว่า Unix Reserved Port ก็ให้เข้าใจว่าหมายถึงพอร์ต 1 - 2023 นั้นเองทั้ง TCP

และ UDP ต่างก็ใช้งานพอร์ตในลักษณะเดียวกันคือใช้ระบุแอพพลิเคชั่นหมายเลขพอร์ตที่สามารถระบุได้จะ

เป็นข้อมูลขนาด 16 บิตนั่นหมายความว่าเราสามารถมีพอร์ตที่สามารถใช้งานได้ทั้งสิ้น = 65535 พอร์ต ในแต่
ละโปรโตคอล ดังนั้นจานวนพอร์ตทั้งหมดนี้สามารถใช้งานในเครื่องเราได้เมื่อใช้โปรโตคอล TCP/IP คือ 128K

นั่นเองโดยเป็นของ TCP=65K และของ UDP อีก 64K สาหรับการก าหนดพอร์ตเพื่อใช้ในการรับส่งข้อมูลจะ
กล่าวถึงอย่างละเอียดในเรื่องต่อไป

Transmission Control Protocol (TCP) TCP : Transmission Control Protocol
TCP เป็นโปรโตคอลที่ต่างจากโปรโตคอลอื่นที่กล่าวถึงในบทก่อนหน้านี้ จะเห็นได้ว่าโปรโตคอลใน

ระดับ Iหรือแม้กระทั่ง UDP จะสนใจข้อมูลเพียง s ดาต้าแกรมกลไกของโปรโตคอลจะมีหน้าที่ตรวจสอบความ


ถูกต้องเพียงเฉพาะดาตาแกรมนั้นๆอย่างเดียวเมื่อจะทาการส่งดาต้าแกรมใหม่ ก็จะถือว่าเป็นข้อมูลชุดใหม่ที่ไม่

มีความสัมพันธใด ๆกับข้อมูลดาต้าแกรมอื่น (การสื่อสาร 1 ครั้ง จึงใช้เพียง 1 ดาต้าแกรม) แต่สาหรับ TCP แล้ว
จะเห็นว่าข้อมูลนั้นเป็น stream คือมีความสัมพันธ์ต่อเนื่องกันมีกลไกในการตรวจสอบทั้งด้านส่งและด้านรับ

เพื่อให้แน่ใจว่าทั้ง 2 ฝั่งมีความพร้อมและสามารถสื่อสารกันได้จริงจึงมีการส่งรับข้อมูลเกิดขึ้นจนมีการรับส่ง
ข้อมูลแล้ว ก็จะมีการยืนยันความถูกต้องทุกครั้งของการสื่อสารเพื่อรับประกันว่าข้อมูลที่รับ - ส่งนั้นถูกต้อง

ตรงกันทั้ง 2 ฝ่าย ด้วยลักษณะเช่นนี้ การสื่อสารด้วย TCP จึงเสมือนว่าทั้ง2ฝ่ายคือฝ่ายรับและฝ่ายส่งได้ทาการ

ต่อสายเน็ตเวิร์กถึงกัน (connected) ตลอดเวลาที่การรับ-ส่งข้อมูลจนกระทั่งการสื่อสารทั้งหมดเสร็จสิ้นจึงทา
รายการยกเลิกการเชื่อมต่อนั้นเสียด้วยกลไกที่กล่าวข้างต้น TCP จึงจาเป็นต้องใช้ IP ดาต้าแกรมมากกว่า 1

ดาต้าแกรมในการรับส่งแต่ละครั้งรวมทั้งการมี TCP เฮดเดอร์ที่ทางานสัมพันธ์กันเพื่อควบคุมการสื่อสารทั้งฝ่าย
รับฝ่ายส่งและในแต่ละ IP ดาต้าแกรมที่ใช้ควบคุมนั้นก็จะมีจังหวะและขั้นตอนในการส่งที่แน่นอนและสัมพันธ์

กันด้วย ดังกล่าวโดยละเอียดต่อไป

199







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3
ื่

ื่




ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
เรอง กระบวนการท างานของ Network Layer
ื่

TCP Services
จุดเด่นประการสาคัญของ TCP ที่กล่าวถึงอยู่เสมอคือ ความมีเสถียรภาพและความถูกต้องของการ
สื่อสารซึ่งมีความเชื่อถือได้สูงคุณสมบัติที่ทาให้ TCP มีข้อดีดังกล่าวคือ
1. ข้อมูลที่จะส่งผ่าน TCP จะถูกนามาแตกย่อยออกเป็นส่วน ๆ ให้มีขนาดเหมาะสมสาหรับการส่ง โดย
TCP จะเป็นตัวพิจารณาว่าขนาดเท่าใดจะทาให้การรับ - ส่งนั้นมีประสิทธิภาพและน่าเชื่อถือสูงสุดโดยข้อมูลแต่
ละชุดที่แบ่งออกและทาการส่งโดย TCP แต่ละครั้งจะเรียกว่า TCP เซกเมนต์ ต่างกับ UDP ที่แอพพลิเคชั่นจะ

เป็นผู้ก าหนดว่าขนาดของข้อมูลที่จะส่งมีขนาดเท่าใด และไม่มีข้อจากัดตราบเท่าที่ไม่เกินขนาดของ UDP ดาต้า

แกรม (64 k) แอพพลิเคชั่นต้องเป็นผู้ระบุขนาดของข้อมูลเองซึ่งอาจจะไม่เหมาะสมสาหรับการส่งก็ได้ เช่น หาก
ขนาดเล็กเกินไป ก็จะทาให้ประสิทธิภาพในการส่งลดลงเพราะจะต้องเสีย overhead เป็นสัดส่วนที่สูงเมื่อเทียบ

กับขนาดของข้อมูลหรือหาขนาดของข้อมูลใหญ่เกินไปก็จะทาให้ IP ซึ่งอยู่เลเยอร์ต่าลงไปไม่สามารถจัดส่งได้ใน

IP ดาต้าแกรมเดียว และมีผลให้ถูกแฟรกเมนต์ออกเป็นส่วนเล็ก ๆ อีกเช่นกัน TCP
Segment กับ MSS (Maximum Segment Size)เหตุผลอีกประการหนึ่งที่ทาให้การก าหนด TCP

เซกเมนต์มีข้อดีคือ โดยทั่วไปการก าหนดขนาดของข้อมูลที่จะทาการส่งอย่างมีประสิทธิภาพนั้นมีปัจจัยที่สาคัญ
คือ สื่อกลางในการสื่อสารอยู่เลเยอร์ต่าลงไปเกินกว่าที่แอพพลิเคชั่นสามารถควบคุมได้ ยกตัวอย่างเช่น ในระดับ

Datalink Layer ที่แตกต่างกันอย่าง Ethernet กับToken ring ก็จะมีขนาดของ MTU (Maximum
TransferUnit) ซึ่งแตกต่างกันดังนั้นหากให้แอพพลิเคชั่นเป็นตัวก าหนดขนาดของข้อมูลก็อาจจะทาให้ใช้

ได้ผลดีเฉพาะกับ Network แบบหนึ่งแต่หาก Datalink Layer เปลี่ยนไปก็จะเกิดปัญหาขึ้นได้ TCP มีกลไกลด

ปัญหาเหล่านี้โดยจะมีการสอบถามขนาดของข้อมูลที่เหมาะสมที่เรียกว่าMSS (Maximum Segment Size)
ก่อนเริ่มส่งข้อมูล เพื่อให้ปลายทางตอบกลับมาได้ว่าสามารถที่จะทาการรับส่งข้อมูลในขนาดของ MSS ได้โดย

ไม่ต้องทาการแฟรกเมนต์หรือไม่ หากปลายทางเห็นว่าไม่สามารถจะทาได้ก็จะส่งค่า MSS กลับมาให้ในขนาดที่

ลดลง จึงเริ่มทาการรับส่งข้อมูลที่ขนาด Segment เท่ากับ MSS ที่ตกลงกันได้ทั้ง 2 ฝ่ายโดยทั่วไปค่า MSS จะ
เท่ากับขนาดของ MTU - IP Header - TCP Header ซึ่งก็คือขนาดของ MTU - 40 นั่นเอง โดยค่า default จะ

เท่ากับ 536 ไบต์ สาหรับการส่งผ่านเน็ตเวิร์กที่ไม่ใช่ Local Network (ทาให้ขนาดของ IP Datagram ทั้งหมด

จะเท่ากับ 576 ไบต์คือ 20 ไบต์ สาหรับ IP Header, 20 ไบต ์สาหรับ TCP Header, 536 ไบต์สาหรับ TCP
Data)

2. ในการส่งข้อมูลแต่ละครั้งของ TCP จะมีการจับเวลาไว้เสมอเพื่อรอให้อีกฝั่งหนึ่งตอบยืนยันการรับ
ข้อมูลกลับมาหากถึงเวลาก าหนดที่ข้อมูลควรจะถึงปลายทางและตอบยืนยันกลับมาแต่ยังไม่มีการตอบกลับ

TCP จะถือว่าข้อมูลที่ส่งไปนั้นไม่ถึงปลายทางและจาทาการส่งข้อมูลซ้อนหรือยกเลิกการติดต่อ ฯลฯ ซึ่งด้วย

200







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3


ื่


ื่

ื่
ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
เรอง กระบวนการท างานของ Network Layer
ื่

กลไกนี้จะทาให้การรับ - ส่งข้อมูลทุกครั้งแอพพลิเคชั่นสามารถทราบได้ว่าข้อมูลถึงปลายทางหรือไม่อย่าง
แน่นอนไม่มีข้อมูลใด ๆ ที่ส่งผ่าน TCP แล้วไม่ทราบสถานะของการส่งครั้งนั้น
3. ทุก ๆ ครั้งที่ TCP ได้รรับข้อมูลจากอีกฝั่งหนึ่งจะต้องทาการตอบยืนยันกลับไปยังผู้ส่งเสมอซึ่งจะ
สอดคล้องกับข้อ 2 กล่าวคือหากไม่มีการตอบรับก็จะถือว่าปลายทางไม่ได้รับข้อมูล
4. TCP มี checksum ซึ่งจะครอบคลุมทั้ง TCP Header และ TCP Data เพื่อเป็นการป้องกันแล
ตรวจสอบว่าข้อมูลที่ส่งมานั้นถูกต้อง และไม่ได้ถูกแก้ไขระหว่างทางไม่ได้รับข้อมูล ได้รับ ข้อมูลที่ทาการ

ตรวจสอบกับ checksum แล้วปรากฎว่ามีความผิดพลาดเกิดขึ้น TCP จะทิ้งข้อมูลที่ได้รับและจาไม่ทาการตอบ

รับข้อมูลนั้นกลับไปยังผู้ส่ง คือถือเสมือนว่าไม่ได้รับข้อมูลนั้น เพื่อให้ทางฝ่ายส่งทาการส่งใหม่หรือหา
ข้อบกพร่องและพยายามแก้ไขตามแต่แอพพลิเคชั่นทางฝ่ายผู้ส่งเห็นสมควร

5. เนื่องจาก TCP อาศัย IP เองอาจจะถูกแฟรกเมนต์ได้ และทาให้ข้อมูลที่ถูกแฟรกเมจต์นั้นส่งถึง

ปลายทางในลาดับที่ไม่ถูกต้องหน้าที่ของ TCP เมื่อรับข้อมูลที่แฟรกเมนต์มานั้นจะต้องนาข้อมูลแต่ละส่วนมา
ประกอบรวมกันให้ถูกต้องสมบูรณ์ก่อนจะส่งไปยัง Application Layer ต่อไป

6. การส่ง - รับ ข้อมูลด้วย IP อาจจะมีกรณีที่ IP Datagram นั้นถูกส่งซ้าขึ้นได้ TCP ที่รับส่งข้อมูลซ้า
ดังกล่าวจะต้องทราบว่าเป็น IP Datagram ที่ซ้าและไม่นาข้อมูลนั้นไปใช้งาน

7. TCP มีกลไกควบคุมการไหลของข้อมูล โดยการควบคุมนั้นจัต้องอาศัยลาดับของการรับส่งที่ถูกต้อง
และสัมพันธ์กันทั้ง 2 ฝ่าย ในขณะเดียวกันข้อมูลที่ส่งนั้นจะต้องอาศัย IP หลายดาต้าแกรมจึงจะได้ข้อมูลครบ

ทั้งหมดดังนั้นในการับข้อมูลทางฝ่ายรับจึงต้องเตรียมบับเฟอร์ไว้จานวนหนึ่งเพื่อรองรับข้อมูลและรวบรวม

ข้อมูลทั้งชุดให้อยู่ในบัฟเฟอร์ก่อนที่จะทาการจัดเรียงข้อมูลตรวจสอบความถูกต้องแล้วจึงส่งต่อไปยัง
แอพพลิเคชั่นด้วยเหตุผลดังกล่าวจะเห็นได้ว่าขนาดของข้อมูลมิได้ถูกจากัดที่ขนาดของดาต้าแกรมใดๆข้อมูลที่

ส่งอาจจะมีขนาดใหญ่มากอยู่ในดาต้าแกรมก็เป็นได ดังนั้นเพื่อป้องกันการส่งข้อมูลขนาดใหญ่หรือเร็วเกินไปจน

ทาให้ทางฝ่ายรับไม่มีหน่วยความจาเพียงพอที่จะเป็นบัฟเฟอร์ที่พักข้อมูล การส่งข้อมูลจึงถูกจากัดโดยจะ
อนุญาตให้ทาการส่งข้อมูบได้เท่าที่ฝ่ายรับมีบัฟเฟอร์เพียงพอเท่านั้น

TCP Header

ใน TCP Header จะเริ่มต้นระบุที่หมายเลขพอร์ตต้นทางและหมายเลขพอร์ตปลายทาง แต่อันที่จริง
แล้วข้อมูลอีกส่วนหนึ่งที่ใช้ในการสื่อสารคือ IP Address ของต้นทางและปลายทางก็ต้องระบุเช่นกัน แต่ได้ถูก

Encapsulateไว้ในเลเยอร์ของ IP และค่าของ IP Address ทั้งคู่จะอยู่ใน TCP Header ส่วนคู่ของ IP Address
และหมายเลขพอร์ตนั้นจะเรียกว่า"ช็อคเก็ต"ซึ่งในการสื่อสารแต่ละครั้งจะต้องมีทั้งช็อคเก็ตของต้นทางและ

ปลายทางข้อมูลจึงจะถูกส่งรับไปถูกที่และถูกแอพพลิเคชั่นรายละเอียดหน้าที่ของแต่ละฟิลด์ใน TCP Header มี

ดังนี้

201







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3
ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่



ื่
ื่


ื่
เรอง กระบวนการท างานของ Network Layer

Source Port Number หมายถึง พอร์ตที่โฮสต์ต้นทางใช้ในการสื่อสารของเซสชั่นนี้และ TCP จะใช้
พอร์ตนี้ไปตลอดตราบใดที่การสื่อสารในเซสชั่นนี้ยังไม่ยุติลง โดยทั่วไปนี้จะเรียกว่า "ไคลเอนต์พอร์ต" คือ พอร์ต
ที่ไคลเอนต์เปิดขึ้นมาเพื่อรอการตอบรับจากเซิฟร์เวอร์ไคลเอนต์พอร์ตจะมีหมายเลขไม่แน่นอน และเปลี่ยนไป
ทุกครั้งที่มีการเชื่อมต่อใหม่เป็นพอร์ตที่ถูกเปิดไว้ในระยะเวลาสั้นๆค่าที่เป็นไปได้ของพอร์ตนีขึ้นอยู่กับการ
จัดสรรค์ของระบบปฏิบัติการในการก าหนด
ขอบเขตของพอร์ตเหล่านี้ส่วนใหญ่จะมีค่าอยู่ในช่วง1024 - 5000 Destination Port Number

หมายถึง หมายเลขพอร์ตบนโฮสต์ปลายทางที่โฮสต์ต้นทางต้องการ ติดต่อด้วยโดยนัยแล้วหมายถึง

แอพพลิเคชั่นที่ให้บริการอยู่บนพอร์ตนั้น ที่โฮสต์ปลายทางนั่นเอง พอร์ตนี้จะเรียกอีกอย่างหนึ่งวา

" เซิร์ฟเวอร์พอร์ต " หมายเลขพอร์ตที่เปิดไว้จะขึ้นอยู่กับแอพพลิเคชั่นที่ให้บริการ โดยทั่วไป แอพพลิเคชั่นแต่

ละประเภทจะมีหมายเลขพอร์ตเป็นมาตรฐานสาหรับให้ไคลเอนต์ได้เรียกให้บริการ Sequence Number เป็น

ฟีลด์ที่ระบุหมายเลขลาดับที่ใช้อ้างอิงในการสื่อสารข้อมูลแต่ละครั้งเพื่อให้ทั้ง 2 ฝ่ายจะได้รับทราบตรงกันว่า
เป็นข้อมูลของชุดใด การนาไปใช้งานจะได้ไม่ปะปนกันและมีลาดับที่ถูกต้องเนื่องจากการสื่อสารข้อมูลผ่าน

TCP นั้นจังหวะและลาดับเป็นส่วนสาคัญของโปรโตคอลไม่ยิ่งหย่อนไปกว่าข้อมูลในTCP Header รวมไปถึงการ
ที่ข้อมูลในแต่ละ TCP Segment อาจจะถูกแบ่งออกและส่งไปในลาดับที่ไม่เรียงกันหากไม่มีจุดอ้างอิงของข้อมูล

ก็จะไม่สามารถอ่านข้อมูลกลับใหม่ได้อย่างสมบูรณ์และถูกต้อง การส่งข้อมูลและการตอบรับจะใช้ฟิลด์นี้เป็นตว

ยืนระหว่างกันเสมอ

202







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3
ื่
ื่


ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด



ื่
ื่
เรอง กระบวนการท างานของ Network Layer



































รูปที่ 4.32 แสดง TCP Header

Acknowledge Number ทาหน้าที่เช่นเดียวกับ Sequence Number ต่างกันตรงที่เป็น Sequence
Number ซึ่งใช้ในการตอบรับกล่าวคือเนื่องจาก Sequence Number ที่ใช้ในการอ้างอิงนั้นผู้ที่เริ่มส่งข้อมูลจะ

ื่
เป็นผู้ก าหนดเลขนมา และส่งไปพร้อมกับการสร้างการเชอมต่อครั้งใหม่ แต่สาหรับฝ่ายที่ถูกติดต่อก็จาเป็นต้อง
ก าหนดหมายเลขสาหรับใช้อางอิงในการตอบรับเช่นกัน ค่าที่อยู่ใน Acknowledge Numberก็คือหมายเลขที่

ใช้อ้างอิงในการตอบรับนี้ ปกติค่าทั้งใน Sequence Number จะต้องพิจารณาประกอบกับ Flag จึงจะสามารถ

แปลความหมายของ TCP Segment ได้อย่างสมบูรณ์ Header Length โดยปกติความยาวของ TCP Header
จะเท่ากับ 20ไบต์แต่ถ้าหากมีการใช้ค่า Option อาจจะทาให้ขนาดของเฮดเดอร์ยาวขึ้นตามข้อมูลที่ต้องเพิ่มมา


จาก Option นั้น แต่ทั้งหมดแล้วจะไม่เกิน 60 ไบต Flag เป็นข้อมูลในระดับบิตที่ใช้เปนตัวบอกคุณสมบัติของ

TCP Segment ที่กาลังส่งอยู่นั้น และใช้เป็นตัวควบคุมจังหวะการรับส่งข้อมูลด้วย ซึ่ง Flag ทั้งหมดมีอยู่ 6 บิต
แต่ละบิตมีชื่อและมีความหมายดังนี้ URG แสดงว่าข้อมูลในฟิลด์ Urgent Pointer นั้นนามาใช้งานได้ ACK

แสดงว่าข้อมูลในฟิลด์ Acknowledge Number นามาใช้งานได DSH เพื่อแจ้งให้ผู้รับข้อมูลทราบว่าควรจะส่ง


203





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3



ื่



ื่
ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
เรอง กระบวนการท างานของ Network Layer

ข้อมูล Segment นี้ไปยังแอพพลิเคชั่นโดยเร็ว RST ยกเลิกการติดต่อ SYN ใช้ในการเริ่มต้นขอติดต่อกับ
ปลายทาง FIN ใช้ส่งเพื่อแจ้งให้ปลายทางทราบว่ายุติการติดต่อ
Window Size เป็นขนาดของการรับ - ส่งข้อมูลในแต่ละครั้งที่ทางฝ่ายผู้รับจะสามารถรับได้ เนื่องจาก
ในการรับข้อมูลนั้น ทางผู้รับจะต้องจัดเตรียมหน่วยความจาในการพักข้อมูลที่มาจาก TCP และทาการ
Demultiplex ออกมาหากไม่มีการตกลงถึงขนาดที่ทางฝ่ายรับสามารถรับได้ ก็จะทาให้การสื่อสารข้อมูลไม่
สมดุล และฝ่ายรับอาจจะประมวลผลไม่ทันซึ่งส่งผลให้ต้องส่งข้อมูลหลายครั้ง Checksum ฟิลด์ที่ใช้ในการ

ตรวจสอบความถูกต้องของข้อมูลใน TCP เซกเมนต์ Urgent Pointer ใช้ระบุหมายเลข SequenceNumber

ของ TCPเซกเมนต์ล่าสุดที่อยู่ในโหมด UrgentOption ข้อมูลเพิ่มเติมซึ่งจะอยู่ใน TCPHeader เมื่อมีการตั้งค่า
option บางอย่างที่ต้องการข้อมูลเพิ่มเติมซึ่งไม่มีใน TCP Header เช่น MSS,Strict RouteConnection

Establishment และ Termination





























รูปที่ 4.33 แสดง Connection Establishment
ก่อนที่ TCP จะสามารถรับส่งข้อมูลได้จะต้องมีการสถาปนา (Establisment) หรือการสร้างให้มี

Connection เกิดขึ้นก่อนเปรียบเสมือนการต่อสายของทั้ง 2 ฝั่งให้เชื่อมถึงกันซึ่งโปรโตคอล TCP ได้ก าหนด

ขั้นตอนในการเริ่มต้นสร้าง Connection ไว้ดังนี้
1. เครื่องไคเอนต์จะทาการส่งเซกเมนต์โดยเปิด SYNFlag ระบุหมายเลขที่ต้องการติดต่อบนเซิร์ฟเวิร์ก

และระบุหมายเลขลาดับของข้อมูล (ISN - Initial Sequence Number)

204







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3

ื่

ื่



ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
ื่
เรอง กระบวนการท างานของ Network Layer

2. เครื่องเซิร์ฟเวอร์เมื่อได้รับข้อมูลเซกเมนต์จากข้อ 1 ก็จะตอบกลับด้วยการเพิ่มค่า ISN ที่ไดรับอีกขึ้น
อีก 1 พร้อมทั้งระบุหมายเลขลาดับของตนเอง และเปิด SYN กับ ACK Flag
3. ไคลเอนต์เมื่อได้รับการตอบกลับจากเซิร์ฟเวอร์ตามข้อ 2 ก็จะทาการตอบรับกลับไป โดยการเพิ่มค่า
ISN ของเซิฟร์เวอร์ขึ้นอีก 1 และเปิด ACKFlag เมื่อผ่านการสร้าง Connection ทั้ง 3 ขั้นตอนแล้วตอนนี้ ทั้ง
ไคลเอนต์และเซิร์ฟเวอร์เปรียบเสมือนมีการเชื่อมต่อถึงกันแล้วสามารถส่งรับข้อมูลกันได้ตลอดจนกว่าจะมีการ
ยุติ connection นั้นเสีย ขั้นตอนทั้ง 3 เรียกว่า " Three - ways handshakes " จากภาพดังต่อไปนี้ จะแสดง

โฮสต์ในลักษณะ hostname port เป็นการแสดงให้เห็นขั้นตอนการสร้าง Connection ระหว่างโฮสต์

10.15.14.1 จากพอร์ตหมายเลข 500 ทาหน้าที่เป็นไคลเอนต์ส่งคาสั่งไปยังโฮสต์ 10.15.14.2 พอร์ต 80 ซึ่งเป็น
เว็บเซิร์ฟเวอร์ โดยจากข้อมูลอธิบายได้ดังนี้ Segment 1 โฮสต ์10.15.14.1 ใช้พอร์ตหมายเลข500เป็น

ไคลเอนต์พอร์ตได้ส่งสัญญาณเพื่อขอเริ่มการเชื่อมต่อโดยการเช็ต TCP Flag SYN ไปยัง 10.15.14.2 พอร์ต

หมายเลข 80 มีหมายเลข Sequence เท่ากับ 10000























รูปที่ 4.34 แสดง Connection Estabilshment

Segment2 โฮสต์ 10.15.14.2 ได้ตอบรับการ SYN ของ 10.15.14.1 โดยการส่งสัญญาณตอบกลับไป

ยังโฮสต์ 10.15.14.1 หมายเลขพอร์ต 500 โดยเซ็ต TCP Flag SYN และ TCP Header และใช้หมายเลข
Sequence เท่ากับ 20000 และหมายเลข Acknowledge เท่ากับ 1001 แสดงว่าโฮสต์ 10.15.14.2 ตอบรับ

คาขอเชื่อมต่อของ โฮสต์ 10.15.14.1 แล้วโดยจะใช้ช็อคเก็ตนี้ในการสื่อสารต่อไป Segment3 โฮสต์
10.15.14.1 เมื่อได้รับการตอบรับจากโฮสต์ 10.15.14.2 ก็ทาการยืนยันให้ทราบว่าได้รับการตอบรับแล้วโดย

การส่งสัญญาณตอบไปยังพอร์ต 80 โดยเซ็ต TCP flag ACK และใช้หมายเลข Acknowledge

20001(200011=20000) หลังจากกระบวนการผ่านไปทั้ง 3 เซกเมนต์แล้วแสดงว่า connection ได้ถูกจัดตั้ง
เรียบร้อยแล้วหลังจากนั้นก็สามารถเริ่มสื่อสารได้โดยการสื่อสารจะอยู่ในช็อคเก็ตของ 10.15.14.1.500 ถึง

205







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3
ื่




ื่

ื่
ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
เรอง กระบวนการท างานของ Network Layer

10.15.14.2.80 สาหรับจากตัวอย่างนี้ โฮสต์ 10.15.14.1 เป็นผู้ริเริ่มการติดต่อจะต้องเปิดพอร์ตภายในโฮสต์
ตนเองไว้ก่อน เรียกว่า "active open" สาหรับโฮสต์ 10.15.14.2 เป็นผู้ตอบสนองต่อการติดต่อนั้นเมื่อยินยอม
ติดต่อด้วยก็จะต้องเปิดพอร์ตเช่นกัน เรียกว่า " passsive open"Connection Termination หลังจากการ
รับส่งข้อมูลไดยุติลง จะต้องทาขั้นตอนยุติการรับ - ส่งข้อมูล เปรียบเสมือนการถอดสายเชื่อมต่อที่อยู่ระหว่าง

ไคลเอนต์กับเซิร์ฟเวอร์ออกไปการสิ้นสุดการรับส่งข้อมูล โดยสมบูรณ์มีอยู่ 4 ขั้นตอน คือ
1. ไคลเอนต์ทาการส่ง ISN พร้อมกับ FIN ACK Flag ไปยังเซิร์ฟเวอร์

2. เซิร์ฟเวอร์ทาการตอบรับ ISN และบวกค่า ISN อีก 1 พร้อมกับ ACK Flag


3. เซิร์ฟเวอร์ทาการส่ง ISN พร้อมกับ FIN ACK Flag ไปยังไคลเอนต
4. ไคลเอนต์ตอบรับการยุติการสื่อสารด้วย ISN + 1 พร้อมกับ ACK Flag




















รูปที่ 3.35 แสดง Connection termination
























รูปที่ 3.36 แสดง Connection termination

206



การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3




ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่

ื่



เรอง กระบวนการท างานของ Network Layer
ื่

จากภาพแสดงให้เห็นการยุติการเชื่อมต่อสามารถอธิบายการทางานในแต่ละเซกเมนต์ของการยุติการ

ติดต่อไดดังนี้Segment 1 พอร์ตหมายเลข 500 บนโฮสต์ 10.15.14.1 ต้องการยุตการส่งข้อมูลให้กับพอร์ต

หมายเลข 80 ของโฮสต์ 10.15.14.2 จึงท าการส่งสัญญาณโดยการเซ็ต TCP flag FIN ของ TCP เซกเมนต์ โดย
หมายเลขSequence เท่ากับ 12000 ไปยังโฮสต์ 10.15.14.2 พอร์ต หมายเลข 80 Segment 2โฮสต์
10.15.14.2 ได้รับสัญญาณยุติการติดต่อ (FIN) ก็ทาการตอบรับโดยการส่ง ACK กลับไปพร้อมหมายเลข
Acknowledge เท่ากับ 12001 เพื่อเป็นการรับทราบการยุติการส่งข้อมูลของโฮสต์ 10.15.14.1 Segment 3
โฮสต์ 10.15.14.2 ได้ส่งสัญญาณยุติการส่งข้อมูลไปยังโฮสต์ 10.15.14.1 เช่นกัน โดยการส่ง FIN ด้วยหมายเลข

sequence เท่ากับ 23000 Segment 4 โฮสต์ 10.15.14.1 ได้รับสัญญาณยุติการส่งของโฮสต์ 10.15.14.2 ใน
เซกเมนต์ 3 ก็ทาการตอบรับกลับไปด้วย ACK หมายเลข Acknowledge เท่ากับ 23001 ครบทั้ง 4 เซกเมนต์

เป็นอันหมดสิ้นกระบวนการยุติการติดต่อระหว่างโฮสต์ 10.15.14.2 และโฮสต์ 10.15.14.1 เรียบร้อยหาก

ต้องการจะสื่อสารกันใหม่ก็ต้องส่งสัญญาณ เพื่อสร้างการเชื่อมต่อกันใหม่การยุติการติดต่อสามารถกระทาได้ทั้ง
ฝั่งไคลเอนต์หรือเซิร์ฟเวอร์ และสามารถยุติเวลาใดของการติดต่อก็ได้ TCP Half - Close การยุติการเชื่อมต่อ

โดยที่โฮสต์ส่ง FIN ACK ออกไป มิได้หมายความว่าการสื่อสารจะยุติลงในทันที เป็นเพียงการแจ้งให้อีกฝ่ายหนึ่ง
ทราบว่าจะไม่มีข้อมูลส่งอีกต่อไป แต่โฮสต์จะยังคงสามารถรับข้อมูลเข้ามาได้อีกต่อไป จนกว่าโฮสต์อีกฝั่งหนึ่ง

จะส่ง FIN ACK เพื่อขอยุติการส่งข้อมูลเช่นกัน เมื่อไม่มีฝ่ายใดประสงค์จะส่งข้อมูลกันนั่นก็คือการเชื่อมต่อได้ยุติ
ลงอย่างสมบูรณ์ในระหว่างที่โฮสต์ส่ง FIN ACK ออกไปและยังไม่ได้รับ FIN ACK กลับมานั้นเรียกว่า Half -



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

ที่ทาหน้าที่รับข้อมูลอาจไม่มีความจาเป็นตองโต้ตอบกับโฮสต์ที่ส่งข้อมูลในระดับแอพพลิเคชั่น ดังนั้น จึงอาจจะ
สามารถทางานได้อย่างตอเนื่องแม้ว่า TCP จะอยู่ในสถานะ Half - Close ก็ตาม

4.3 Internet Protocol (IP)
IP เป็นโปรโตคอลที่ทาหน้าที่รับภาระในการนาข้อมูลไปส่งยังจุดหมายปลายทางไม่ว่าที่ใด ๆ ใน

อินเทอร์เน็ตโปรโตคอลต่าง ๆ ใน TCP/IP Suiteทั้ง TCP, UDP, ICMP ต่างก็ต้องอาศัยระบบนี้ทั้งสิ้น เนื่องจาก

ตัวโปรโตคอลIP นี้มีกลไกที่ค่อนข้างฉลาดในการหาเส้นทางขนส่งข้อมูล รู้จักที่จะเช็คหาช่องทางไปยังจุดหมาย
ทุกทางที่เป็นไปได ้ โปรโตคอลอื่นที่อยู่เลเยอร์สูงขึ้นไปเลยไม่ต้องรับภาระปวดหัวในการหาวิธีส่งข้อมูลไปยัง

จุดหมายอีก ขอเพียงแค่เตรียมข้อมูลให้เสร็จสรรพแล้วส่งให้ IP ก็นอนได้ว่า IP จะพยายามอย่างสุด
ความสามารถที่จะหาทางไปให้ถึงจุดหมายให้จงได้ถึงแม้ว่า IP จะเป็นโปรโตคอลที่เชี่ยวชาญในการขนส่งข้อมูล

ไปได้ไกล ๆ แต่ก็มีจุดด้อยคือ IP เป็นโปรโตคอลที่ unreliable และ connectionless (เปรียบเสมือนเป็นระบบ

ขนส่งที่รวดเร็วแต่ไม่รับประกันว่าข้อมูลจะถึงปลายทางหรือไม่) การที่ IP มีข้อด้อย 2 ประการนี้ ดังนั้น

207







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3

ื่
ื่
ื่




ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
เรอง กระบวนการท างานของ Network Layer

โปรโตคอลเลเยอร์อื่นที่ใช้ IP เป็นตัวส่งข้อมูลจาเป็นต้องหาหนทางในการลดข้อดอยเหล่านี้ลงไป เพื่อให้การ

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

โอกาสที่จะเกิดอุปสรรคทาให้จดหมายไม่ถึงปลายทางก็เป็นไปได้ จุดสาคัญที่ยกตัวอย่างการส่งจดหมาย

เปรียบเทียบกับการใช้โปรโตคอลIP คือ ผู้ส่งไม่อาจทราบสถานะ การส่งของตนเองแล้วข้อมูลที่ส่งไปถึง
ปลายทางหรือไม่ ไม่มีการยืนยันตอบกลับจาก IP ว่าถึงหรือไม่ถึงปลายทาง ถึงแม้ว่าโดยส่วนใหญ่แล้วข้อมูลจะ

ส่งถึงปลายทางก็ตาม ซึ่งการยืนยันนั้นเป็นสิ่งสาคัญ เพราะคนส่งข้อมูลจะได้ไม่ต้องรออย่างไม่มี เป้าหมาย ถ้า

ข้อมูลถึงปลายทางก็จะได้สื่อสารกันต่อ ถ้าส่งไม่ถึงก็จะได้ไปทาอย่างอื่นไม่ต้องรอสาหรับความหมายจริง ๆ ของ
unreliable และ connectionless ในแง่ของ IP คือ Unreliable ด้วยตัวโปรโตคอล IP เองมีกลไกในการหา

เส้นทางการเดินของข้อมูล (routing)ไปยังปลายทางโดยจะพยายามใช้กลไกเหล่านั้น ในการส่งข้อมูลไปถึง
ปลายทางให้จงได้แต่ไม่มีการตรวจสอบว่าปลายทางได้รับข้อมูลหรือไม่ กลไกการแจ้งกลับมีเพียงในกรณีที่

ปัญหาเกิดขึ้นระหว่างการเดินทาง เช่นเราเตอร์มีปัญหา หาเส้นทางไม่ได้ ก็จะใช้ ICMP ส่งข้อความกลับมาให้ผู้
ส่งทราบซึ่งอาจจะถึงผู้ส่งหรือไม่ถึงก็ได้ ดังนั้นหากส่งด้วย IP แล้วไม่มีการตอบกลับมาก็อาจจะเป็นไปได้ว่า

ข้อมูลถึงปลายทางอย่างสมบูรณ์ หรือว่าข้อมูลไปไม่ถึงแต่ส่ง error message กลับมาไม่ได้ Connectionless

หมายถึง IP จะไม่มีสถานนะเหมือนการเชื่อมต่อกันระหว่างต้นทางกับปลายทาง โดยทั่วไปการที่โฮสต์สองโอสต์
จะมีการเชื่อมต่อกันได้นั้นจะต้องทาอย่างไรอันแรกสุดก็จะต้องเอาสายมาเชื่อมต่อให้ถึงกันก่อน หลังจากนั้นก็

จึงจะสามารถรับส่งข้อมูลได้ และเราก็สามรถรับส่งข้อมูลกันได้ ตลอดตราบใดที่สายยังต่อยู่ เราอาจต่อสายค้าง

ไว้ก็ได้ อยากส่งข้อมูลเมื่อไรก็ทาได้ทันที สาหรับโปรโตคลระดับ IP แล้ว สายที่ต่อถึงกันที่ว่านั้นหมายถึงการ
เชื่อมต่อแบบลอจิคัล ไม่ใช่สายจริง ๆ แต่การบอกว่า IP มีการเชื่อมต่อแบบ connectioless นั่นคือหากรับส่ง

ข้อมูลผ่าน IP จะต้องทาการต่อสายใหม่ทุกครั้งที่จะรับส่งข้อมูล1 IP ดาต้าแกรม เมื่อส่งเสร็จก็ถือว่าเสร็จและทา

การถอดสายออก ในระดับ IP ก็จะรู้จักข้อมูลเพียงแต่ในดาต้าแกรมเดียวเท่านั้น จะไม่รู้จักดาต้าแกรมอื่นที่ส่ง
ก่อนหน้าหรือตามมา และจะไม่รู้ว่าดาต้าแกรมแต่ละอันมีความสัมพันธ กันหรือไม่อย่างไร ภารกิจที่ IP ต้องทา

ให้สาเร็จคือ ทาการต่อสายไปยังปลายทางให้ได้แล้วส่งข้อมูลดาต้าแกรมนั้นไปให้ถึงก็ถอดสายออกเป็นอย่างนี้
เรื่อยไปอาจจะมีกรณีที่ดูเหมือนว่า IP มีการสื่อสารอย่างตอเนื่องและมีความสัมพันธ์กันระหว่างดาต้าแกรมก็คือ

กรณีของ Fragmentation ที่มีการกระจายข้อมูลออกเป็นหลายแพ็กเก็ตและเมื่อแพ็กเก็ตส่งถึงปลายทางแล้ว

จะต้องนามารวมกันอีกครั้งหนึ่งตามลาดับ(จะอธิบายละเอียดในโอกาสต่อไป)ซึ่งแสดงว่า IP น่าจะมี

208





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3



ื่



ื่
ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
เรอง กระบวนการท างานของ Network Layer
ื่

ความสัมพันธ์กันระหว่างดาต้าแกรมแท้ที่จริงแล้วความสัมพันธ์ดังกล่าวมิใช่ความสัมพันธ์กันระหว่างดาต้าแก
รมแต่อย่างใดเป็นเหมือนเดิม มิใช่การนาข้อมูลดาต้าแกรมอื่นมาเชื่อมโยงรวมกันแต่อย่างใดข้อมูลหนึ่งดาต้าแก
รมไม่จาเป็นที่จะต้องส่งเพียงครั้งเดียวหากความยาวเกินกว่าที่จะส่งได้ในแต่ละครั้นนั้น ดาต้าแกรมสามารถที่
จะแบ่งย่อยเพอให้ขนาดของแพ็กเก็ตมีขนาดเหมาะสมได้
ื่
IP Header
จากภาพแสดงให้ถึง IP Header ขนาดของ IP Header โดยปกติจะมีขนาด 20 ไบต์ยกเว้นในกรณีที่มี

การเพิ่มเติมออปชั่นบน IP Header จากภาพจะแสดงเป็นท่อนละ 32 บิตก็คือ 4 ไบต์โดยการส่งข้อมูลจะเรียบ

ลาดับให้ไบต์แรกก่อนแล้วค่อนตามด้วยไปต์ถัดไปสาหรับข้อมูลแต่ละส่วนในเฮดเดอร์มีความหมายดังนี ี้



















บิต 0 - 3 เวอรชั่นของ TCP/IP ปัจจุบันเป็นเวอร์ชั่น 4

บิต 4 – 7 Header Length ความยาวของเฮดเดอร์โดยทั่วไปถ้าไม่มีออปชั่นค่าในส่วนนี้จะเป็น

ความหมายว่าความยาวข้อมูลมีขนาด 5 * 32 บิต หรือเท่ากับ 20 ไบต์นั่นเอง
บิต 8 -15 Type of Service (TOS) ปัจจุบันไม่ได้ใช้งานแล้ว ถูกออกแบบมาเพื่อเก็บค่าของ Minimize

delay, Maximize Throughput, Maximize reliability, Minimize Monetary cost เพื่อใช้เป็นตัวบ่งชี้ให้
เราเตอร์ติดสินใจในการเลือกเราร์ข้อมูลแต่ละดาต้าแกรม อย่างไรก็ตามปัจจุบันไม่มี การนาส่วนนี้ไปใช้งานแต่

อย่างใด

บิต 16 - 31 Total length เป็นฟิลด์ที่บอกจานวนไบต์ทั้งหมดของ IP Datagram ด้วยขนาด 16 บิต

ของฟิลด์นี้แสดงว่าขนาดความยามข้อมูลของ IP ดาต้าแกรมจะมีขนาดสูงสุด 65535 ไบต ขึ้นอยู่กับความยาว
ข้อมูลของ MTU โดยทั่วไปแล้วถึงแม้ว่าเราจะสามารถส่งข้อมูลใน 1 ดาต้าแกรมได้สูงสุดถึง 5535 ไบต์แต่เมื่อ
ข้อมูลส่งลงไปเลเยอร์ล่างก็จะถูกแฟลกเมจต์ก่อนทาาการส่งจริงอยู่ด และแอพพลิเคชั่นเลเยอร์ส่วนใหญ่ก็จะ

รับส่งข้อมูลครั้งละ 512

209





การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3



ื่



ื่
ื่

ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่
เรอง กระบวนการท างานของ Network Layer


ไบต์ใน1ดาต้าแกรมฟิลด์นี้เปนฟิลด์ที่จาเป็นที่จะต้องระบุไว้ทุกดาต้าแกรมเพื่อทาให้สามารถถอดข้อมูลออกมา
ได้
บิต 32-47 Identification เป็นหมายเลขของดาต้าแกรมที่ส่งในกรณีที่มีการกระจายของดาต้าแกรม
และนากลับมารวมกันใหม่จะรู้ได้ว่ามาจากดาต้าแกรมเดียวกัน
บิต 48 - 50 แฟลก ใช้ในกรณีที่มีการแฟรกเมจต์ของดาต้าแกรม
บิต 51 - 63 Fragmentoffset ใช้ในการก าหนดตาแหน่งของข้อมูลใน1ดาต้าแกรมที่ถูกแฟกเมจต์ก

ลับ มาต่อเรียงกันในตาแหน่งของข้อมูลที่ถูกต้อง

บิต 64 - 71 Time to live เป็นฟิลด์ที่ก าหนดจานวนครั้งสูงสุดที่ดาต้าแกรมนี้จะถูกเราต์ (route) เพื่อ
ป้องกันมิให้ดาต้าแกรมถูกเราต์ไปโดยไม่มีที่สิ้นสุด ด้วยคุณสมบัติของ IP ที่จะถูกเราต์ไป เรื่อง ๆ จนกว่าจะถึง

ปลายทาง ซึ่งในบางครั้งอาจจะยังหาเส้นทางไม่ได้ TTL จะเป็นตัวบอกจานวนสูงสุดของการเราต์ หากว่าจานวน

ครั้งที่ดาต้าแกรมถูกเราต์ไปเท่ากับ TTL แล้วยังไม่ถึงปลายทางก็ให้ทาการดร็อปดาต้าแกรมนี้ทิ้ง แล้วแจ้ง
กลับมายังต้นทาง ว่า Time out คือหมดเวลาก่อน ทั้งนี้ในการเราต์ผ่านเราเตอร์ 1 ครั้ง ค่า TTL จะลดลง 1


หากเมื่อค่า TTL ลดลงจนถึง 0 เมื่อใดแสดงว่าดาตาแกรมนั้นไทม์เอาท์ไปแล้วและจะไม่ถูกเราต์อีกต่อไป
บิต 72 - 79 Protocol อย่างที่ได้กล่าวไปแล้วข้างต้นว่ามีโปรโตคอลย่อยหลายตัวที่อาศัย IP ในการ


ขนส่งข้อมูล ดังนั้นเพื่อระบุว่าข้อมูลที่ IP กาลังส่งอยู่นี้เปนของโปรโตคอลอะไรก็ต้องระบุไว้ในฟิลด์นี้ เช่น TCP,
UDPd, ICMP เป็นต้น

บิต 80-95 Header checker เป็นส่วนตรวจสอบความถูกต้องของข้อมูลในเฮดเดอร์เพื่อป้องกันการ

ผิดพลาดในการส่งข้อมูล ซึ่งจะป้องกันเฉพาะข้อมูลในเฮดเดอร์เท่านั้น มิใช่ข้อมูลทั้งหมดในดาต้าแกรม
บิต 96 - 127 Source IP Address คือ IP Address ของผู้ส่งข้อมูลดาต้าแกรม

บิต 128 - 163 Destination IP Address คือ IP Address ของปลายทางผู้รับข้อมูล ดาต้าแกรม

IP Header เป็นส่วนส าคัญที่สุดของ IP ดาต้าแกรม ก่อนที่เราจะศึกษาถึงช่องว่างและจุด บกพร่องของ
IP จาเป็นต้องเข้าใจการทางานปกติของ IP เสียก่อน แล้วจากนั้นเมื่อเห็นการโจมตีที่ระดับ IP ก็จะสามารถ

ป้องกันและเข้าใจการโจมตีนั้นได้ไม่ยากนักค่าต่าง ๆ ในแต่ละฟิลด์ของ IP Header ล้วนเป็นกลไกที่ควบคุมการ

เดินทางของดาต้าแกรม ในทางกลับกันเมื่อนามาใช้ผิดวิธีก็อาจจะกลายเป็นเครื่องมือในการบุกรุกได้จากภาพ
ซึ่งแสดงส่วนประกอบของ IP Header นั้นจะเป็นพื้นฐานและส าคัญที่สุดที่จะต้องใช้ประกอบในการวิเคราะห ์

การบุกรุกเสมอ ค่าต่าง ๆ ที่อยู่ในเฮดเดอร์อาจจะส่งผลที่เกิดขึ้นในระดับต่าง ๆ ในเน็ตเวิร์ก หรือเกิดผลกระทบ
ต่อเป้าหมายได้ดังนั้นนักวิเคราะห์ที่ดีควรจะจดจา IP Header ให้ได้จะเป็นประโยชน์อย่างมากต่อการวิเคราะห์

ต่อไปหากย้อนกลับไปในบทที่ 2 ซึ่งกล่าวถึงกิจกรรมที่เป็นสัญญาณควบคุมแล้วIP Header ก็นับเป็นสัญญาณ

ควบคุมประเภทหนึ่งเนื่องจาก IP Header โดยตัวเองมิได้เป็นข้อสนเทศ และมีหน้าที่หลักคือควบคุมการรับ -

210







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3
ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่




ื่

ื่
เรอง กระบวนการท างานของ Network Layer
ื่

ส่ง ข้อสารสนเทศที่รวมอยู่ในดาต้าแกรมนั้นIP Header จะถูกใช้ไปในการ Demultiplexing เป็นหลัก เพื่อทา
การสกัดเอาข้อสารสนเทศออก จาก IP ดาต้าแกรมการส่งสัญญาณควบคุมผิดพลาด เช่นการมีข้อมูลบางฟิลด์ใน
เฮดเดอร์เป็นค่าที่ผิดปกติ อาจทาให้โปรแกรมถอดรหัสหรือ Demultiplexer ของผู้รับทางานผิดเงื่อนไขและ
หยุดทางานไดในสภาวะปกติ ค่าฟิลด์ต่าง ๆ ในเฮดเดอร์จะถูกก าหนดขึ้นในขั้นตอนของการ Encapsulate

เนื่องจากค่าในหลาย ๆ ฟีลด์เป็นผลจาการค านวณขนาดของข้อมูล และยังมีบางค่าที่เป็นตัวตรวจสอบความ
ถูกต้องของข้อมูลด้วย กระบวนการค านวณและก าหนดค่าในเฮดเดอร์นี้จะเป็นไปโดยอัตโนมัติหากการทางาน

ของโปรแกรมเข้ารหัสหรือ Encapsulator เป็นไปอย่างถูกต้องแล้ว ค่าในเฮดเดอร์จะถูกต้องตรงตามโปรโตคอล

เสมอกรณีที่ค่าในเฮดเดอร์ผิดปกตินั้นมีความเป็นไปได้อยู่ 2 กรณี คือEncapsulator ทางานผิดพลาด เนื่องจาก
Encapsulator ก็คือ โปรแกรมฝังอยู่กับอุปกรณ์สื่อสารสาหรับกรณีที่เป็นอุปกรณ์ TCP/IP ทั่วไปหรืออาจจะ

เป็น TCP Stack ในระบบปฏิบัติการในกรณีที่เป็นเครื่องคอมพิวเตอร์ ซึ่งโปรแกรมเหล่านี้ก็มีโอกาสที่จะถูก

เขียนมาอย่างไม่รอบคอบและในบางกรณีจะค านวณค่าเฮดเดอร์ผิดพลาด ได้การจงใจใส่ค่าที่ผิดพลาดลงในเฮด
เดอร์เพื่อมุ่งร้ายในกรณีนี้แฮกเกอร์จะไม่ได้ส่งข้อมูลผ่านกระบวนการEncapsulate ตามปกติ แต่จะเขียน

โปรแกรมเพื่อสร้าง IPแพ็กเก็ตขึ้นมาเอง โดยที่มีข้อมูลในเฮดเดอร์เป็นค่าผิดปกติแปลกจากปกติเพื่อหวังผลให้
กระบวนการ Demultiplexing ของผู้รับทางานผิดปกติไปจากเดิม

Subnet Addressing
ในตอนเริ่มต้นใช้โปรโตคอล TCP/IP นั้นการแบ่ง IP Address ออกเป็นแอดเดรสของเน็ตเวิร์ก (netid)

และแอดเดรสของโฮสตร์ (hostid) เป็นไปตามกติกาที่ระบุของแต่ละคลาสต่อมามีผู้เสนอให้มีการแบ่งเน็ตเวิร์ก

ย่อยภายในแต่ละ netid เพิ่มขึ้นอีกเพื่อจะได้ใช้งาน IP Address ได้อย่างมีประสิทธิภาพที่สุด เนื่องจากในคลาส
A และคลาส B นั้นมีการจัดสรรส่วนที่เป็น hostid ในแต่ละเน็ตเวิร์กเปนจานวนมากคือในเร็ตเวิร์กคลาส A แต่

ละเน็ตเวิร์กนั้นสามารถมีจานวนโฮสต์ได้มากถึง 224 - 2 = 16.777,214 โฮสต์ และสาหรับในแต่ละเน็ตเวิร์ก

ของคลาส C นั้นสามารถมีจานวนโฮสต์ได้สูงสุดคือ 216 - 2 = 65,534 โฮสต์ ซึ่งการที่จะนา IP Address มาร
ใช้อย่างทั่วถึงนั้นมีโอกาสเป็นไปได้ยากมากทั้งคลาส A และคลาส B เพราะมีโอกาสน้อยมากที่จะมีเน็ตเวิร์กใด

ในโลกมีจานวนโฮสต์มากมายขนาดนั้นอยู่ภายในเน็ตเวิร์กเดียว ดังนั้น IPAddress ที่จัดสรรให้ไปในแต่ละเน็ต

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

เหมาะสมกับปริมาณโฮสต์ที่มีอยู่ โดยใช้หลักการเดียวกับการนา IP Address มาแยกออกเป็น Host ID และ
เป็น Network ID คือแทนที่จะให้ค่า Host ID เป็นค่าอิสระตั้งแต่ 1 จนถึงค่าสูงสุด ก็ทาการจัดกลุ่มของ Host

ID เหล่านั้นออกเป็นกลุ่มของเน็ตเวิร์กย่อย คือนาค่าในส่วนที่เป็น Host ID เดิมมาแยกออกเป็น 2 ส่วนคือ

211




การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3




ื่
ื่



ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่

ื่
เรอง กระบวนการท างานของ Network Layer

Subnet-ID และเป็น Host ID ใหม่จะทาให้สามารถจัดสรรการใช้งานIP Addressได้อย่างเหมาะสมกับการมีอยู่
จริงของโฮสต์ในแต่ละเน็ตเวิร์ก







จากภาพแสดงการจัดแบ่ง IPAddress ของคลาส B ออกเป็นเน็ตเวิร์กย่อยด้วยวิธี Subnetting โดย

แบ่งพื้นที่ส่วนที่เป็นของ Host ID เดิมออกเป็น 2 ส่วนโดยเป็นของ Subnet ID ขนาด 8 บิตและ Host ID ใหม่

ที่มีขนาดเล็กลงเหลือเพียง 8 บิต















ผลที่ได้คือขนาดของเน็ตเวิร์กจะเล็กลงและมีจานวนมากขึ้น จากเดิม 16.382 เน็ตเวิร์กก็เพิ่มเป็น
4,161,028 (16,382 * 254) และในขณะเดียวกันจานวนโฮสต์ในแต่ละเน็ตเวิร์กจะลดลง จาก 65,532 เหลือ


เพียง254 โฮสต์ อย่างไรก็ตามการ Subnet นั้นไม่จาเปนต้องมีขนาดของ Subnet ID คงที่ตายตัวเสมอไป
ผู้บริหารระบบสามารถปรับเปลี่ยนได้ตามความเหมาะสมของการใช้งาน เช่นผลที่ได้คือขนาดของเน็ตเวร์กจะ

เล็กลงและมีจานวนมากขึ้น จากเดิม 16.382 เน็ตเวิร์กก็เพิ่มเป็น 4,161,028 (16,382 * 254) และใน

ขณะเดียวกันจานวนโฮสต์ในแต่ละเน็ตเวิร์กจะลดลง จาก 65,532 เหลือเพียง254 โฮสต์ อย่างไรก็ตามการ

Subnet นั้นไม่จาเป็นต้องมีขนาดของ Subnet ID คงที่ตายตัวเสมอไป ผู้บริหารระบบสามารถปรับเปลี่ยนได้
ตามความเหมาะสมของการใช้งาน เช่นอาจจะมีจานวนเน็ตเวิร์กน้อยลง และจานวนโฮสต์มากขึ้นก็สามารถจะ

ทาได้โดยการแบ่งขนาดของ subnet IDและ host IDใหม่ตามที่ต้องการนอกจากที่สามารถใช้ IP Address ได้
อย่างมีประสิทธิภาพแล้ว ข้อดีอีกอย่างหนึ่งของการ Subnet คือช่วยให้ประสิทธิภาพการสื่อสารดีขึ้นด้วย

กล่าวคือ กระบวนการของ TCP/IP บางประเภทมีการใช้การสื่อสารแบบรอดคาสต์ (broadcast) เพื่อทาการ

สื่อสารกระจายไปยังทุก ๆ โฮสต์ที่อยู่ในเน็ตเวิร์กเดียวกัน ดังนั้นหากเป็นเน็ตเวิร์กคลาส A ซึ่งมีโฮสต์ได้ถึง 16
ล้านโฮสต์แล้วการสื่อสารด้วยวิธีบรอดคาสต์แต่ละครั้งจะเป็นการกระจายข้อมูลไปยังเครื่องอื่น ๆ จานวนมาก

212






การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3


ื่


ื่
ื่


ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
เรอง กระบวนการท างานของ Network Layer
ื่

และใช้แบนด์วิดธ์มากมายมหาศาลทั่วไปทั้งเน็ตเวิร์ก ส่งผลกระทบต่อการสื่อสารตามปกติอย่างยิ่ง และหากเน็ต
เวิร์กประเภทนี้ถูกโจมตีโดยเทคนิคที่อาศัยการขยายสัญญาณเนื่องจากบรอดคาสต เช่น Smurf แล้วก็มีโอกาส

มากที่การสื่อสารข้อมูลภายในเน็ตเวิร์ก จะเป็นอัมพาตได้อย่างรวดเร็วจากการถูกโจมตีเพียงแพ็งเก็ตเดียว
ผู้ออกแบบเน็ตเวิร์กส่วนใหญ่จึงมักจะหลีกเลี่ยงการออกแบบให้ เน็ตเวิร์กมีขนาดใหญ่เกินไป เนื่องจากควบคุม
ได้ไม่ยุ่งยากและมีประสิทธิภาพต่า วิธีการ Subnet จึงเป็นส่วนที่ถูกนามาใช้ในการออกแบบเสมอโดยทั่วไปแล้ว
เรา มักจะพบเห็นการ Subnet สาหรับ IP Address ในคลาส B เสียเป็นส่วนใหญ่เนื่องจากคลาส B มีผู้ใช้งาน

กันแพร่หลายส่วนคลาส A จะพบได้ไม่บ่อยนักเพราะมีผู้ได้รับจัดสรรไม่มาก ส่วนคลาส C ก็อาจจะพอมีผู้ทา

Subnet อยู่บ้าง แต่เนื่องจากคลาส C มีขนาดของ เน็ตเวิร์กไม่ใหญ่อยู่แล้ว จึงสามารถแบ่งย่อยออกไปได้อีกไม่
มากนัก อย่างไรก็ตาม IP Address ทุกคลาสล้วนแต่สามารถถูกนามา Subnet ได้ทั้งสิ้น

Subnet Mask

หากกล่าวถึงการ Subnet แล้วย่อมจะต้องกล่าวถึง Subnet Mask ด้วย การที่มีเฉพาะ IP Address
เพียงอย่างเดียวนั้น กรณีที่เป็นการก าหนด netid และ hostid ตามที่ระบุในคลาสต่างๆนั้นเราก็สามารถทราบ

ว่าค่าทั้งสองได้ไม่ยากนัก โดยพิจารณาว่า IP Address ดังกล่าวอยู่ในช่วงใดอยู่ในคลาสใด หลังจากนั้นก็สามารถ
แยก netid และ hostid ได้จากการเปรียบเทียบกับมาตรฐานของคลาสเหล่านั้นแต่เมื่อมีการแบ่งเน็ตเวิร์กย่อย

โดยการ Subnet แล้ว ย่อมไม่สามารถใช้วิธีการข้างต้นเพื่อหา netid และ hostid ได้อีกต่อไป เนื่องจาก
subnet นั้นสามารถก าหนดได้โดยผู้ออกแบบเน็ตเวิร์กเองและมิได้มีข้อบังคับแต่อย่างใด ดังนั้นจึงจาเป็นต้องมี

การระบุค่าใดค่าหนึ่งไว้เพื่อให้สามารถนามาใช้ในการหาค่าจาก IP Address ได้ว่า hostid, netid และ subnet

id และค่านั้นก็คือ Subnet Mask Subnet Mask เป็นตัวเลขขนาด 32 บิต เท่ากับ IP Address ทาหน้าที่ระบุ
หมายเลขของ host id และ net id + subnet id ของโฮสต์นั้น การก าหนดค่าของ Subnet Mask จะอยู่ใน

รูปแบบเดียวกับ IP Address คือทาการแบ่ง Subnet Mask ออกเป็น 16 บิต จานวน 4 ชุดและแยกแต่ละชุด

ออกจากกันด้วย จุด (.)
ตัวอย่างของ Subnet Mask เช่น FF.FF.FF.00 (Hex) 255.255.255.0 (Dec) ค่า Subnet Mask นี้

จะต้องก าหนดไว้บนทุกโฮสต์คู่กันกับค่า IP Address เสมอ เนื่องจากโปรโตคอล IP จาเป็นต้องใช้ค่านี้ไป

ค านวณค่า netid ซึ่งจาเป็นอย่างยิ่งในกระบวนการ IP Routing อย่างไรก็ตามค่า Subnet Mask นี้จะไม่ถูก
ส่งไปกับ IP ดาต้าแกรมด้วยโฮสต์ทั้งหลายสามารถนาค่า Subnet Mask มาทาการทางคณิตศาสตร์กับ IP

Address ก็จะสามารถหาค่า host id, subnet id, netid ออกมาโดยวิธีดังนี้ Netid + subnetid = [IP
address] AND [Subnet Mask] Hostid = [IP Address] AND (NOT ([Subnet Mask])) ตัวอย่าง IP Address

= 192.168.15.21 Subnet Mask = 255.255.255.0 Netid = 192.168.15.20 AND 255.255.255.0 =

192.168.15.0 Hostid = 192.168.15.20 AND (0.0.0.255) = 0.0.0.20 หรือพูดง่าย ๆ ได้ว่า "Netid ก็คือ IP

213







การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3

ื่
ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
ื่




ื่
ื่
เรอง กระบวนการท างานของ Network Layer

Address ส่วนที่ตรงกับบิตของ Subnet mask ที่มีค่าเป็น 1 ส่วน Hostid คือIP Address ส่วนที่ตรงกับ
Subnet mask ที่มีค่าเป็น 0" นั่นเองดังนั้นพึงระลึกเสมอว่านอกจากการก าหนดIPAddress ที่ถูกต้องแล้วการ
ก าหนดค่า Subnet Mask ก็มีผลต่อ IP Routing เช่นเดียวกันการก าหนดค่าSubnet Mask ผิดพลาดย่อจะ
ส่งผลให้การสื่อสารข้อมูลของ IP ไม่สามารถจะกระทาได้เช่นกันIP Address ในกรณีพิเศษถึงแม้ว่าค่าของ IP
Address มีขนาด 32 บิต ที่นามาใช้งานได้ก็จริง แต่มีกรณีพิเศษเป็นข้อยกเว้นที่ไม่อาจนาค่าเหล่านี้มาก าหนด
เป็นค่า IP Address ได้ซึ่งค่าส่วนใหญ่จะเป็นค่าที่ IP เองนาไปใช้งานเพื่อวัตถุประสงค์อื่นแล้ว ผู้ใช้จึงมิอาจนา


ค่าเหล่านั้นมาใช้งานได้อีก ดังรายละเอียดตอไปน ี้






















จากตารางแสดง IP Address บางค่าที่ถูกโปรโตคอลนาไปใช้เพื่อวัตถุประสงค์อื่นและผู้ใช้สามารถนา

มาก าหนดเป็นแอดเดรสของโฮสต์ได้โดยส่วนใหญ่ค่าที่มีปัญหาจะมีเพียง 3 ตัวคือ127 หมายถึง Loopback

Address คือส่งกลับเข้าหาตัวเอง1 ทุกบิต หมายถึง โฮสต์ทุกตัวในเน็ตเวิร์กนี้ (คือการบรอดคาสต์นั่นเอง)0 ทุก
บิต หมายถึง ตัวเน็ตเวิร์กเองดังนั้นเพื่อปองกันปัญหาของการก าหนดค่าIP Address จึงควรหลีกเลี่ยงการ

ก าหนดค่า Net id และ id ด้วยเลขดังกล่าวเสีย

214






การสอนครงที่ 13 หนวยเรยนที่ 4 บทเรยนที่ 4.3




ื่
ื่
ื่


ชอหนวยเรยน การเชอมตอและการสอสารตามโครงสรางระบบเปด
เรอง กระบวนการท างานของ Network Layer
ื่

แบบฝึกหัด
ี้
1. หมายเลข IP- Address ต่อไปน อยู่ใน Class ใด
- 168.192.195.255
- 225.125.205.6
- 12.5.225.8
- 106.11.22.168

ี้
2. หมายเลข IP- Address ต่อไปน อยู่ใน Class ใด
- 10100111.11000100.00110010.00111111
- 0010100.11011101.11001010.00000001

- 11000100.01000111.01100101.10111010

- 11100101.00000000.00000000.10100010

3. เมื่อได IP Address ใน Class C และต้องการแบ่งออกเป็น 10 เครือข่ายย่อย อยากทราบว่า
1) จะต้องแบ่งออกเป็นกี่ Subnet
2) สามารถใช้งานได Subnet ละกี่เครื่อง

3) Subnet Mask ทั้งเลขฐาน 10 และ ฐาน 2
4. ถ้าใช้ IP 145.205.0.0 โดยต้องการใช้เครือข่ายย่อยจานวน 50 เครือข่าย อยากทราบว่า

1) IP ที่ใช้งาน อยู่ใน Class ใด

2) ต้องใช้ Subnet จานวนกี่บิต 238
3) จะต้องแบ่งออกเป็นกี่ Subnet 4) จานวนเครื่องที่ใช้งานจริงต่อ 1 Subnet 5) SubNet Mask

ฐาน 2 และ ฐาน 10




Click to View FlipBook Version