OSI MODEL ยาขมขนานแรกแห่งโลก COMPUTER NETWORK ตอนที่ 3

Posted by

จากตอนแรกกะว่าจะเขียนสั้นๆจบ ไหงกลายมาเป็นมหากาพย์ไตรภาคไปได้ !
ตอนที่ 2 ของ OSI model ซึ่งอย่างที่บอกไว้ในตอนก่อนๆว่าเป็นพื้นฐานของ network เลยทีเดียว

มาสรุปหน้าตาของ OSI model กันก่อน

รูปภาพ

จะเห็นได้ว่าในแต่ละชั้นจะมีชื่อเรียกที่แตกต่างกันไป ….
และแน่นอนว่ามันไม่ได้ต่างกันแค่ชื่อ ในแต่ละชั้นหรือแต่ละ Layer จะกำหนดหน้าที่ ที่ดูแลแตกต่างกัน
ซึ่งในที่นี่ผมจะพยายาม เปรียบเทียบกับการส่งจดหมายไปยังปลายทาง…

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

และณ ตรงนี้คุณอยู่ที่…. Application Layer (Layer 7)
ใน application layer จะเป็นส่วนที่ user ใช้ หรือที่เรามักเรียกว่าโปรแกรมนั้นแหละ
ทำหน้าที่ในการสร้างข้อมูลที่เราจะส่งไป หรือสร้างการ์ดขึ้นมานั้นเอง
โดยทั่วไป application แทบทุกชนิดทำงานที่ Layer นี้
ไม่ว่าจะเป็น HTTP(เว็บไซค์), SMTP(อีเมลล์), หรือ FTP(รับส่งไฟลล์)
ล้วนทำงานใน application layer ทั้งสิ้น

เมื่อเราสร้างหน้าตาของการ์ดได้แล้ว
อันดับถัดไปก็คงต้องเขียนข้อความซึ้งๆ เสี่ยวๆลงไปละ แต่จะเขียนเป็นภาษาอะไรดีละ?

…. ขั้นตอนนี้คือ … Presentation layer (Layer 6)
หน้าที่ง่ายๆของ presentation layer คือ “การเข้ารหัส”
ลองนึกภาพตามแบบนี้นะครับ …. สมมติคุณเดินทางไปยังเกาะ กาลาปากอซ
แล้วไปเจอชนพื้นเมืองที่นั่นพูดภาษากาลาปากอซกับคุณ คุณจะรู้เรื่องไหมครับ ?
นั้นแหละครับ”การเข้ารหัส”ที่ว่า … ง่ายๆคือการกำหนดรูปแบบอะไรซักอย่างขึ้นมาให้ตรงกันนั้นเอง
…ในโลกของคอมพิวเตอร์ไฟลล์ต่างๆที่เราใช้นั้นมีรูปแบบหลากหลายมาก
เคยสังเกตุหรือได้ยินสิ่งที่เราเรียกว่า “นามสกุล” ของไฟล์ไหมครับ เช่น .doc, .jpg, .mp3
พวกนี้แหละครับที่เค้าใช้กำหนด format หรือรูปแบบของการอ่านข้อมูล
หรือแม้แต่การเข้ารหัสเพื่อให้ข้อมูลแบบความลับก็อยู่ใน layer นี้

หลังจากเขียนข้อความไปแล้ว ใน Layer ถัดไปเราจะเรียกว่า
Session Layer (Layer 5) …
ใน layer นี้มันเหมือนกับการที่เรา นึกก่อนว่า เอ..แล้วเราไปเจอเค้าได้ยังไง เคยคุยกันไหม
หรือถ้าเคยคุยกับสาวคนนั้นแล้วเราเคยคุยอะไรไว้ จะได้สานสัมพันธ์ต่อได้อย่างราบลื่น
เปรียบเทียบได้ห่วยมากใช่ไหม?

เอาเป็นว่ามันทำหน้าที่ตรวจสอบการคุยกันของ application สองฝั่ง
ว่ายังคุยกันได้อยู่หรือเปล่า ถ้ายังคุยกันได้อยู่ คุยกันไปถึงไหนแล้ว ….

สาม layer ข้างบนนั้นผมอยากให้มองว่านั่นคือตัวการ์ด ที่เราจะส่งไป
เป็น content หรือสิ่งที่เราอยาก deliver มันไปยังปลายทาง
ที่นี้ขั้นตอนการส่งไปยังปลายทาง จะเป็นหน้าที่ของระบบไปรษณีย์ หรือ 4 layer ล่าง
ซึ่งไอ้ระบบไปรษณีย์นี่แหละคือระบบ network ….
…ที่ส่วนใหญ่ network engineer จะต้องเข้าไปสร้าง หรือเข้าไปแก้ปัญหา มันให้ได้

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

อันดับแรกเราอาจจะพอรู้อยู่แล้วว่า สาวน้อยที่เราอยากจะสานสัมพันธ์นั้นอยู่บริษัทอะไร
แต่… ถ้าเราส่งไปดื้อๆอาจจะไปไม่ถึงแผนกที่เค้าทำงาน โดยเฉพาะบริษัทใหญ่ๆที่มีหลายๆ แผนก
หลายๆครั้งเราต้อง “วงเล็บมุมซอง” ว่าจะส่งไปที่แผนกไหน หรือกำกับว่าส่งไปเพื่ออะไร
ไอ้ “วงเล็บมุมซอง” ที่ว่านี่แหละคือ

…. Transport Layer (Layer 4)….
ใน layer นี้หน้าที่หลักๆคือการระบุว่า service ที่เราจะใช้งานคืออะไร
เพราะอะไรถึงต้องไประบุ service ด้วยละ??
ก็เพราะว่า… ในคอมพิวเตอร์แต่ละเครื่องมี service ที่ทำงานอยู่หลากหลายมาก
ดังนั้นถ้าไม่ระบุ service เอาไว้ถ้ามีการใช้ service พร้อมๆกันในเวลาเดียวกัน จะไม่สามารถแยกแยะได้ว่าต้องการจะทำอะไรกันแน่
และสิ่งที่เราเอาไว้ใช้ในการระบุ service นั้นคือหมายเลข port นั่นเอง

(อ้างอิงจาก TCP/IP เป็นหลัก) << สำหรับมือใหม่ไม่ต้องสนใจบรรทัดนี้ครับ สำหรับมือเก๋าผมพยายามบอกว่าผมจะอธิบายแบบง่ายๆ ฉะนั้นต้องอ้างอิง protocol อะไรซักอย่างเป็นหลัก ไม่งั้นพิมพ์กันมือหงิกแน่ๆ

ถ้าผู้อ่านเคยผ่านตากับระบบ computer network มาแล้วบ้างอาจจะเคยได้ยินว่า
www คือ port 80, หรือส่งเมลล์ใช้ port 25
พวกนี้แหละครับคือหมายเลขที่เค้าใช้ระบุว่าข้อมูลนั้นๆจะส่งไปประมวลผลที่ service ไหน

แล้วจะรู้ได้ยังไงละว่าเลขไหนหมายถึง service อะไร ?
ปรกติแล้วหมายเลข port ที่เป็นไปได้จะเริ่มที่ port หมายเลข 1 ไปจนถึง 65535
โดยตั้งแต่เลข 1 ไปถึง 1023 เราจะถูกจองเอาไว้ใช้กับ service ที่เป็นมาตรฐานเราเรียกกลุ่มนี้ว่า well know port
ส่วนตั้งแต่ 1024 ถึง 49151 จะเป็น registered port คือมาลงทะเบียนให้องค์กรกลางประกาศเอาไว้ได้
ที่เหลือขึ้นอยู่กับคนเขียน program ว่าจะใช้ port ไหนตามใจชอบได้เลย
ถ้าอยากดู list ทั้งหลายตามมาตรฐานแต่ดูยากมากไปดูที่
http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml
แต่ถ้าอยากดูแบบง่ายๆไปดูได้ที่ http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
เลือกเอาแล้วกัน ^ ^

จริงๆในส่วนของ transport layer ยังมีความสามารถอีกหลากหลายไม่ว่าจะเป็น fragmentation, data recovery, flow control, connection oriented, ฯลฯ แต่เอาไว้ไปคุยอีกทีในเรื่องของ TCP/UDP protocol ในโอกาศหลังๆๆๆๆๆ แล้วกัน
ในหัวข้อนี้เอาแค่ส่งมันไปปลายทางก่อนแล้วกัน

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

…Network Layer (Layer 3)…
ใน layer 3 เราจะใส่ที่อยู่ลงไปเพื่อระบุว่าเราจะส่งไปที่บริษัทไหนอยู่ตรงไหน
ใน layer นี้ที่เราคุ้นเคยกัน และต้องยอมรับว่ามันครองโลกอยู่ตอนนี้คือ IP address นั้นเอง
IP address เค้าเรียกว่าเป็น logical address คือมันเปลี่ยนแปลงได้ แน่นอนว่าเราย้านบ้านได้และที่อยู่จะเปลี่ยนตามไปด้วย

เปรียบเทียบไปตัว IP address นั้นก็เหมือนกับที่อยู่ทางไปรษณีย์นั้นแหละ ระบุว่าจะส่งไปที่ปลายทางไหน
แต่คนที่จะเอาจดหมายของเราไปส่งคือ ไปรณีย์ซึ่งไอ้ไปรษณีย์ที่ว่านี้ก็คือระบบ routing นั้นเอง

ระบบ routing เป็นระบบการสร้างเส้นทางไปยัง address ต่างๆที่อยู่ใน network
เหมือนกับไปรษณีย์ที่ต้องรู้ว่าถนนสายไหนบ้านเลขที่อะไรอยู่ตรงไหน ซึ่งสิ่งเหล่านี้ถูกกำหนดไว้ที่ layer 3 นั้นเอง

มีที่อยู่บริษัทแล้วมีแผนกแล้ว ยังขาดอะไรอีกเน้อ………
อ๋อแน่นอนว่ายังขาด “ชื่อผู้รับ” นั้นเอง (มือใหม่ข้ามไป มือเก๋ารู้เอาไว้ ..ในที่นี้ผมยกตัวอย่างจาก protocol ยอดนิยมเป็นอันดับหนึ่งคือ Ethernet)
ชื่อผู้รับที่ว่านี้ถูกระบุอยู่ใน
…. Data Link Layer (Layer 2)…..
ใน layer สองเราจะมีการระบุ address ที่เหมือนเป็นชื่อของอุปกรณ์ตัวนั้นๆ หรือเราเรียกว่าเป็น physical address
ถ้าจะให้เปรียบเทียบก็เหมือนกับ หมายเลขบัตรประจำตัวประชาชน ของเราซึ่งถูกระบุมาตั้งแต่เราเกิด  และไม่เปลี่ยนแปลงตลอดชีวิตนั่นเอง
ตัวอย่างของ physical address ที่เราน่าจะคุ้นเคยกันดีก็ได้แก่ MAC address
นอกจากนี้แล้วใน Layer 2 ก็ยังมีเรื่องของ error detection ซึ่งจะได้ว่ากันในหัวข้อถัดๆไปอีกนั้นแหละ
และสุดท้ายใน

…Physical Layer (Layer 1)… 
ใน layer นี้เราจะเปลี่ยนข้อมูลทั้งหมดไปเป็นสัญญาณทางไฟฟ้าแล้วส่งออกไปทาง media
อะไรที่จับต้องได้ และเกี่ยวกับไฟฟ้าจะถูกกำหนดที่ layer นี้ทั้งหมด

ที่ว่าไปทั้งหมดเหล่านี้คือข้อมูลของ OSI model 7 layer ถามว่ามันมีประโยชน์ตรงไหน?

แน่นอนว่ามันคือพื้นฐานการทำงานของการส่งข้อมูลทั้งหมด
และถ้าคุณอยากจะแก้ปัญหาอะไรซักอย่าง
ก่อนอื่นเราจะรู้ได้ยังไงว่าเราจะแก้ที่ไหน หรืออะไรเป็นปัญหา วิธีการที่เป็นระบบและเป็นสากลที่สุดคือ
อ้างอิงตาม OSI model เช่น ถ้าคุณ ping ไปไม่ถึงปลายทาง ก็แสดงว่า Layer 3 มีปัญหา
ก็ไปแก้ที่ Layer 1 – 3 แต่ถ้า ping เจอ ก็แสดงว่าปัญหาอยู่เลยจาก Layer 3 ขึ้นไปนั่นเอง
เท่านี้เราก็สามารถ scope ปัญหามาอยู่ในบางจุดได้แล้ว
ถึงแม้สุดท้ายการแก้ปัญหาจริงแล้วจะเหมือนเป็น ตาบอดคลำช้าง
แต่อย่างน้อยเราก็รู้มาก่อนว่าช้างมีหน้าตาเป็นยังไง จริงไหมครับ ?

1 ความเห็น

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Google photo

You are commenting using your Google account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s