บทนำร่วม 5/8 — หัวใจของทั้ง OSI และ TCP/IP

Protocol และหลักการ Layering

ก่อนเรียนว่า OSI มี 7 ชั้นและ TCP/IP มี 4 ชั้น เราต้องเข้าใจก่อนว่าทำไมจึงแบ่งเป็นชั้น แต่ละชั้นตกลงอะไรกับปลายทาง และ service, interface กับ protocol ต่างกันอย่างไร มิฉะนั้นเราจะจำชื่อชั้นได้ครบ แต่ยังไม่รู้ว่าชั้นเหล่านั้นทำงานร่วมกันอย่างไร

1Protocol คืออะไร

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

คำจำกัดความ
Protocol (โปรโตคอล) คือข้อตกลงระหว่างหน่วยสื่อสารในระดับเดียวกันว่า จะแลกเปลี่ยนข้อมูลรูปแบบใด แต่ละส่วนหมายถึงอะไร ส่งในลำดับใด และต้องตอบสนองอย่างไรเมื่อเกิดเหตุการณ์ต่าง ๆ

Protocol ต้องบอกทั้งรูปแบบ ความหมาย และจังหวะ

การนิยาม protocol ไม่ได้จบที่บอกว่าข้อความมี field อะไร เพราะสองฝั่งต้องเข้าใจทั้งโครงสร้างและพฤติกรรมร่วมกัน โดยทั่วไปเราพิจารณาอย่างน้อยสามด้าน:

ด้านคำถามที่ต้องตอบตัวอย่าง
Syntaxข้อมูลมีรูปแบบอย่างไร เรียง field แบบใด และแต่ละ field ยาวเท่าไร?ส่วนแรกเป็น message type ตามด้วยความยาวและ payload
Semanticsค่าแต่ละค่าหมายถึงอะไร และผู้รับต้องทำอะไรเมื่อเห็นค่านั้น?ค่า 200 หมายถึงสำเร็จ ส่วน 404 หมายถึงไม่พบสิ่งที่ขอ
Timing/Orderingใครส่งก่อน ต้องรอนานเท่าไร และข้อความใดตามหลังข้อความใดได้?ต้องสร้าง connection ก่อนส่งข้อมูล หรือส่ง ACK หลังรับ message

ถ้าตกลง syntax ตรงกันแต่ semantics ต่างกัน ข้อมูลอาจอ่านได้แต่ความหมายผิด หากเข้าใจความหมายตรงกันแต่ลำดับเหตุการณ์ไม่ตรงกัน ทั้งสองฝั่งอาจต่างคนต่างรอจนไม่มีใครทำงานต่อ Protocol จึงเป็นทั้งรูปแบบข้อมูลและบทสนทนาที่กำกับว่าคู่สื่อสารควรทำอะไรในแต่ละสถานะ

ลองนึกภาพ — กติกาการคุยโทรศัพท์

เมื่อรับโทรศัพท์ เราพูด “สวัสดี” เพื่อบอกว่าอีกฝั่งพร้อม จากนั้นผู้โทรแนะนำตัวและเริ่มเรื่อง หากจู่ ๆ ทั้งสองฝ่ายพูดพร้อมกันตลอด หรืออีกฝ่ายวางสายโดยไม่ส่งสัญญาณใด การสนทนาจะสับสนแม้ทุกคำออกเสียงชัดเจน

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

Peer คือผู้ทำหน้าที่ระดับเดียวกันที่อยู่คนละฝั่ง

Peer entities คือหน่วยงานของ layer เดียวกันบนระบบคนละฝั่ง เช่น Transport Layer ของเครื่อง A กับ Transport Layer ของเครื่อง B ในเชิงตรรกะ peer ทั้งสองแลกเปลี่ยน segment ตามกติกาของ transport protocol แต่ข้อมูลจริงไม่ได้กระโดดข้ามอากาศจาก Transport Layer หนึ่งไปอีกฝั่งโดยตรง มันต้องขอใช้บริการของชั้นล่างลงไปเรื่อย ๆ

จุดนี้มีการสื่อสารสองทิศทางที่ควรแยกให้ออก:

ทิศทางเกิดระหว่างใครสิ่งที่เชื่อมกัน
แนวตั้งชั้นติดกันภายในเครื่องเดียวชั้นบนขอใช้ service ผ่าน interface ของชั้นล่าง
แนวนอนpeer layer เดียวกันบนคนละเครื่องทั้งสองฝั่งตีความ protocol เดียวกันในเชิงตรรกะ
ลองนึกภาพ — ผู้จัดการสาขาคุยกันผ่านฝ่ายจัดส่ง

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

ในเชิงตรรกะ ผู้จัดการคุยกับผู้จัดการ แต่เส้นทางจริงไหลลงผ่านหน่วยงานด้านล่าง แล้วไหลขึ้นไปถึงผู้จัดการอีกฝั่ง การบอกว่า peer “คุยกัน” จึงเป็นคำอธิบายระดับหนึ่ง ไม่ใช่เส้นทางทางกายภาพของข้อมูล

Service, Interface และ Protocol: สามคำที่ดูใกล้ แต่ตอบคนละคำถาม

ต้นฉบับจำนวนมากทำให้สามคำนี้ปนกัน ทั้งที่การแยกให้ชัดจะทำให้เข้าใจ layering ง่ายขึ้นมาก:

แนวคิดคำถามมุมมอง
Serviceชั้นนี้ทำอะไรให้ชั้นบน?ความสามารถที่ผู้ใช้บริการได้รับ เช่น ส่ง byte stream อย่างน่าเชื่อถือ
Interfaceชั้นบนเรียกใช้ service นั้นอย่างไร?จุดเชื่อมและ operation ภายในระบบเดียวกัน เช่น socket API
Protocolpeer สองฝั่งตกลงสื่อสารกันอย่างไร?ข้อความ field ลำดับ และกติกาที่ใช้ข้ามระบบ

Service บอกผลที่ได้รับโดยไม่จำเป็นต้องเปิดเผยวิธีทำ Interface บอกช่องทางเรียกใช้ ส่วน protocol บอกกลไกและข้อตกลงระหว่าง peer การเปลี่ยน protocol ภายในอาจไม่กระทบผู้ใช้บริการ หากยังรักษา service และ interface เดิมไว้ได้

ลองนึกภาพ — ร้านอาหาร

Service คือร้านจัดอาหารให้ลูกค้า interface คือเมนูและวิธีสั่ง ส่วน protocol คือกติกาที่พนักงานหน้าร้านใช้ส่งรายการให้ครัว เช่น รหัสเมนู ลำดับโต๊ะ และสัญญาณว่าอาหารเสร็จแล้ว

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

จุดที่มักตอบสลับกัน
HTTP เป็น protocol ระหว่าง client กับ server ส่วน API ที่โปรแกรมเรียกใช้อาจเป็น interface และความสามารถ “ขอข้อมูลจาก web server” เป็น service หนึ่งที่ application ได้รับ คำทั้งสามเกี่ยวข้องกัน แต่ไม่ควรใช้แทนกันโดยอัตโนมัติ

2หลักการ Layering — ทำไมต้องแบ่งการทำงานเป็นชั้น

Layering คือวิธีจัดการระบบที่ซับซ้อนด้วยการแบ่งหน้าที่ออกเป็นชั้น แต่ละชั้นใช้บริการของชั้นล่างและให้บริการแก่ชั้นบน พร้อมทั้งใช้ protocol สื่อสารเชิงตรรกะกับ peer ระดับเดียวกัน

หลักพื้นฐานของ Layering
ในแบบจำลองที่จัดชั้นอย่างเป็นระเบียบ layer i ใช้ service ที่ layer i−1 จัดให้ และนำ service นั้นมาสร้างความสามารถที่สูงขึ้นเพื่อให้ layer i+1 ใช้ต่อ แต่ละชั้นจึงไม่จำเป็นต้องรู้รายละเอียดทั้งหมดของชั้นล่าง เพียงรู้ข้อตกลงที่ interface ระบุไว้

หลักนี้ควรถูกมองเป็นแนวทางออกแบบ ไม่ใช่กฎธรรมชาติที่ระบบจริงห้ามฝ่าฝืน Protocol stack ในโลกจริงอาจมีการข้ามชั้น ดึงข้อมูลจากหลายชั้น หรือรวมหน้าที่บางชั้นเข้าด้วยกัน โดยเฉพาะเมื่อ optimization, security หรือ wireless adaptation ต้องใช้บริบทข้ามชั้น สิ่งสำคัญคือรู้ว่าการข้ามเส้นแบ่งนั้นให้อะไร และเพิ่ม coupling ตรงไหน

ทำไมต้องแบ่งชั้น

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

ประโยชน์ความหมาย
Modularityแบ่งระบบเป็นส่วนที่ศึกษา พัฒนา และทดสอบได้ง่ายขึ้น
Abstractionชั้นบนใช้ความสามารถของชั้นล่างโดยไม่ต้องรู้รายละเอียดภายในทั้งหมด
Interoperabilityอุปกรณ์ต่างผู้ผลิตทำงานร่วมกันได้ หากทำตาม protocol และ interface ที่ตกลง
Replaceabilityเปลี่ยนเทคโนโลยีบางชั้นได้ โดยพยายามรักษาบริการที่ชั้นอื่นพึ่งพา
ReuseApplication หลายชนิดใช้ transport และ network service ชุดเดียวกันได้

คำสำคัญคือ “พยายามรักษา” ไม่ใช่ “เปลี่ยนได้อย่างอิสระโดยไม่มีผลเสมอ” Wi-Fi กับ Ethernet ต่างก็รองรับ IP ได้ แต่มีลักษณะเรื่อง loss, bandwidth และ mobility ต่างกัน Application บางชนิดจึงยังรู้สึกถึงผลของชั้นล่าง แม้ interface เชิงหน้าที่จะเหมือนเดิม

Layering ลดความซับซ้อนในการคิด แต่ไม่ได้ลบความซับซ้อนออกจากระบบ

การแยกหน้าที่ทำให้แต่ละส่วนเข้าใจง่ายขึ้น แต่ต้องมี header, state, interface และการแปลงข้อมูลเพิ่มขึ้น บางปัญหา เช่น reliability หรือ security อาจถูกจัดการหลายชั้นเพื่อคนละขอบเขต หากออกแบบไม่ดี เราอาจได้งานซ้ำ overhead สูง หรือข้อมูลที่ชั้นหนึ่งต้องการถูกซ่อนไว้อีกชั้นหนึ่ง

ตัวอย่างเช่น application ต้องการรู้ว่า network กำลังช้าเพราะ congestion หรือปลายทางกำลังประมวลผล แต่ abstraction อาจรายงานเพียง timeout การซ่อนรายละเอียดช่วยให้ application ทั่วไปเขียนง่าย แต่ application ที่ต้อง optimize ลึกอาจต้องการข้อมูลมากกว่านั้น เส้นแบ่งที่ดีสำหรับงานหนึ่งจึงอาจแคบเกินไปสำหรับอีกงาน

ลองนึกภาพ — องค์กรที่แบ่งเป็นหลายแผนก

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

หากเอกสารบอกข้อมูลไม่ครบ ฝ่ายขนส่งอาจไม่รู้ว่าสินค้าต้องควบคุมอุณหภูมิ หากทุกแผนกต้องประชุมกันทุกครั้ง งานก็ช้าจนการแบ่งแผนกแทบไม่มีประโยชน์ Layering จึงไม่ได้ดีเพียงเพราะ “แบ่งแล้ว” แต่ดีเมื่อแบ่งหน้าที่ถูก และ interface ส่งข้อมูลที่จำเป็นได้พอเหมาะ

การสื่อสารจริงเดินลง แล้วค่อยเดินขึ้น

เส้นทางของข้อมูล — ฝั่งส่งนำข้อมูลจาก application ส่งลงมาตามแต่ละชั้น แต่ละชั้นเติมข้อมูลควบคุมของตน จากนั้นข้อมูลเดินทางผ่านสื่อจริงไปยังฝั่งรับ แล้วแต่ละชั้นของฝั่งรับอ่านและนำข้อมูลควบคุมของตนออก ก่อนส่งเนื้อหาขึ้นไปยังชั้นถัดไป

Peer layer ดูเหมือนสื่อสารกันโดยตรงในเชิงตรรกะ แต่สิ่งที่ส่งจริงถูกฝากลงไปยังชั้นล่าง จนถึงชั้นที่ส่งสัญญาณผ่าน medium จากนั้นฝั่งรับจึงส่งข้อมูลกลับขึ้นมาตามลำดับ ความต่างระหว่าง logical communication กับ actual data path เป็นจุดสำคัญของภาพ layered architecture

ลองนึกภาพ — จดหมายซ้อนซอง

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

เมื่อถึงปลายทาง บริษัทขนส่งนำตู้ออก ฝ่ายมหาวิทยาลัยเปิดถุง และคณะส่งซองถึงผู้รับ กระบวนการใส่ข้อมูลควบคุมเพิ่มทีละชั้นคล้าย encapsulation ส่วนการนำออกทีละชั้นที่ปลายทางคล้าย decapsulation

Encapsulation: ข้อมูลของชั้นบนกลายเป็น payload ของชั้นล่าง

เมื่อ layer หนึ่งรับข้อมูลจากชั้นบน มันมองข้อมูลก้อนนั้นเป็น payload แล้วเติม header และในบาง protocol อาจมี trailer ของตนเอง ข้อมูลรวมที่ layer นั้นแลกเปลี่ยนกับ peer เรียกโดยทั่วไปว่า Protocol Data Unit (PDU)

ระดับโดยย่อสิ่งที่อาจเติมชื่อ PDU ที่มักพบ
Applicationรูปแบบคำขอ method, content type หรือข้อมูลของ applicationMessage/Data
TransportPort, sequence number, checksum และ flagsTCP Segment / UDP Datagram
Network/InternetIP address, lifetime และข้อมูลช่วยส่งข้ามเครือข่ายPacket / IP Datagram
Data LinkLink-layer address, type และข้อมูลตรวจข้อผิดพลาดFrame
Physicalแทนข้อมูลเป็นสัญญาณบน mediumBits / Signals

ชื่อ PDU อาจใช้ต่างกันตามตำราและ protocol จึงควรเข้าใจหน้าที่มากกว่าท่องคำอย่างโดดเดี่ยว แก่นคือ header ของ layer หนึ่งเป็นคำสั่งหรือข้อมูลควบคุมสำหรับ peer layer เดียวกัน ส่วนทั้ง PDU ของชั้นนั้นจะถูกมองเป็น payload เมื่อส่งลงไปยังชั้นล่าง

ตัวอย่าง: เปิดหน้าเว็บหนึ่งครั้ง
  1. Browser สร้าง HTTP request ตามกติกาของ Application Layer
  2. Transport Layer เติมข้อมูลสำหรับส่งถึง process ปลายทางและดูแลการสื่อสารตามบริการที่ใช้
  3. Internet Layer เติม IP header เพื่อให้ packet เดินทางข้ามหลายเครือข่าย
  4. Link Layer สร้าง frame สำหรับส่งไปยัง node ถัดไปบน link ปัจจุบัน
  5. Physical Layer แปลงข้อมูลเป็นสัญญาณและส่งผ่านสายหรือคลื่นวิทยุ

เมื่อผ่าน router frame ของ link เดิมอาจถูกถอดออก แล้วสร้าง frame ใหม่สำหรับ link ถัดไป ขณะที่ IP packet ยังคงเป็นหน่วยหลักของการส่งข้ามเครือข่าย แม้บาง field อาจเปลี่ยนระหว่างทาง นี่แสดงว่าขอบเขตของ protocol แต่ละชั้นไม่เท่ากัน

End-to-end กับ hop-by-hop

Protocol บางตัวทำงานระหว่างปลายทางต้นทางกับปลายทางสุดท้าย เรียกว่า end-to-end ขณะที่บางตัวทำงานเฉพาะระหว่าง node ที่เชื่อมกันในแต่ละช่วง เรียกว่า hop-by-hop การแยกขอบเขตนี้ช่วยอธิบายว่าเหตุใด link-layer header เปลี่ยนระหว่างทาง แต่ transport state โดยทั่วไปอยู่ที่ end hosts

ขอบเขตคู่สื่อสารตัวอย่างหน้าที่
Hop-by-hopnode ปัจจุบันกับ node ถัดไปส่ง frame บน Ethernet หรือ Wi-Fi link หนึ่งช่วง
End-to-endprocess หรือ host ต้นทางกับปลายทางจัดลำดับ byte, port multiplexing หรือ application request
หยุดคิดสักครู่
ถ้า Wi-Fi link แรกส่ง frame ใหม่จนสำเร็จ แปลว่า HTTP request ถึง web server แล้วหรือยัง? ยังครับ ความสำเร็จแบบ hop-by-hop ยืนยันเพียงช่วงนั้น ข้อมูลยังอาจหายหรือเกิดปัญหาในช่วงต่อไป ความน่าเชื่อถือของหนึ่งชั้นไม่ควรถูกขยายความเกินขอบเขตที่มันรับผิดชอบ

ตัวอย่าง Protocol Stack แบบย่อ

ก่อนเข้าสู่ OSI และ TCP/IP เราสามารถย่อภาพให้เหลือสามระดับ เพื่อเห็นหน้าที่โดยไม่ติดกับจำนวนชั้น:

Layerหน้าที่ตัวอย่างโปรโตคอล
3: Application/End-to-Endกำหนดความหมายของข้อมูลและการสื่อสารระหว่าง process ปลายทางHTTP, DNS, TCP, UDP, RTP
2: Internetworkระบุ host และส่ง packet ข้ามหลายเครือข่ายIP
1: Link/Physicalส่ง frame หรือสัญญาณผ่าน link หนึ่งช่วงIEEE 802.3 Ethernet, IEEE 802.11 Wi-Fi, PPP

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

เมื่อใดที่เส้นแบ่งชั้นเริ่มไม่สะอาด

ระบบจริงมักมีสิ่งที่ไม่พอดีกับกล่อง เช่น VPN สร้างเครือข่ายเสมือนบนเครือข่ายอีกชุด, TLS อยู่ระหว่าง application กับ transport ในมุมมองหนึ่ง, middlebox อ่านข้อมูลหลายชั้นพร้อมกัน และ QUIC นำหน้าที่ transport บางส่วนไปทำบน UDP ภายใน user space

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

จุดที่มักเข้าใจผิด
  • Peer layer สื่อสารกันในเชิงตรรกะ แต่ข้อมูลจริงต้องผ่านชั้นล่าง
  • Service, interface และ protocol เกี่ยวข้องกัน แต่ไม่ใช่คำเดียวกัน
  • Layering ช่วยลด coupling แต่ไม่ได้ทำให้แต่ละชั้นเป็นอิสระจากกันโดยสมบูรณ์
  • จำนวนชั้นไม่ใช่สาระสำคัญที่สุด สิ่งสำคัญคือการแบ่งหน้าที่และข้อตกลงระหว่างส่วนต่าง ๆ
  • Header ไม่ใช่ข้อมูลเกินความจำเป็นเสมอ แต่เป็นข้อมูลควบคุมที่ทำให้ peer ตีความและจัดการ payload ได้

3สรุปและขั้นตอนถัดไป

  • Protocol กำหนด syntax, semantics และลำดับหรือจังหวะการสื่อสารระหว่าง peer
  • Service บอกว่าชั้นล่างทำอะไรให้ชั้นบน, interface บอกว่าเรียกใช้อย่างไร และ protocol บอกว่า peer ต่างระบบตกลงกันอย่างไร
  • ชั้นเดียวกันสื่อสารกันในเชิงตรรกะ ส่วนข้อมูลจริงเดินลงผ่าน stack ข้าม medium แล้วเดินขึ้นที่ปลายทาง
  • Encapsulation ทำให้ PDU ของชั้นบนกลายเป็น payload ของชั้นล่าง ซึ่งเติม header หรือ trailer ของตนเอง
  • Protocol บางตัวทำงานแบบ hop-by-hop ขณะที่บางตัวรับผิดชอบแบบ end-to-end จึงยืนยันความสำเร็จคนละขอบเขต
  • Layering ช่วยเรื่อง modularity, abstraction, interoperability และ reuse แต่มี overhead, coupling และข้อจำกัดของการซ่อนข้อมูล
  • หลักการใช้ service ของชั้นล่างเป็นแนวทางสำคัญ แต่ระบบจริงอาจมี cross-layer interaction หรือรวมบางชั้นเข้าด้วยกัน
เปลี่ยนมุมมอง
Layer ไม่ได้เกิดขึ้นเพราะข้อมูล “ชอบเดินเป็นชั้น” แต่เกิดเพราะมนุษย์ไม่สามารถคิดและเปลี่ยนระบบทั้งหมดพร้อมกันได้ เราจึงสร้างเส้นแบ่งเพื่อควบคุมความซับซ้อน เส้นแบ่งเหล่านี้มีประโยชน์ตราบใดที่ช่วยให้ส่วนต่าง ๆ ทำงานร่วมกันได้โดยไม่ต้องรู้กันทุกเรื่อง และเริ่มเป็นภาระเมื่อข้อมูลสำคัญถูกซ่อนไว้ผิดฝั่งของเส้น

จากหลักการ ไปสู่แบบจำลองจริง

เมื่อเข้าใจ protocol, service, interface, peer communication และ encapsulation แล้ว คำถามถัดไปคือควรแบ่งหน้าที่ออกเป็นกี่ชั้น OSI ตอบด้วยแบบจำลอง 7 ชั้นที่ละเอียดและเป็นระบบ ส่วน TCP/IP สะท้อนชุด protocol ที่ทำให้ Internet ใช้งานจริง

สองโมเดลนี้ไม่ได้ต่างกันเพียงจำนวน 7 กับ 4 แต่ต่างกันทั้งที่มา จุดประสงค์ และวิธีจัดกลุ่มหน้าที่ บทถัดไปจึงจะเปรียบเทียบว่าชั้นใดสอดคล้องกัน ชั้นใดถูกรวม และเหตุใดเรายังเรียน OSI แม้ Internet ใช้ TCP/IP เป็นหลัก

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