โปรโตคอลและโมเดล TCP/IP
| English | ไทย |
|---|---|
| protocol/ˈprəʊtəkɒl/ | โปรโตคอล |
| TCP/ˌtiː siː ˈpiː/ | TCP |
| UDP/ˌjuː diː ˈpiː/ | UDP |
| modularity/ˌmɒdjʊˈlærɪti/ | โมดูลarity |
| link layer/lɪŋk ˈleɪə/ | ชั้นลิงก์ |
| abstraction/əbˈstrækʃn/ | การห่อหุ้ม (abstraction) |
| application layer/ˌæplɪˈkeɪʃn ˈleɪə/ | ชั้นแอปพลิเคชัน |
| transport layer/ˈtrænspɔːt ˈleɪə/ | ชั้นการขนส่ง |
| port numbers/pɔːt ˈnʌmbəz/ | หมายเลขพอร์ต |
| internet layer/ˈɪntənet ˈleɪə/ | ชั้นอินเทอร์เน็ต |
| packets/ˈpækɪts/ | แพ็กเก็ต |
| IP address/ˌaɪ ˈpiː əˈdres/ | ที่อยู่ไอพี |
| routers/ˈruːtəz/ | เราเตอร์ |
| MAC addresses/mæk əˈdresɪz/ | ที่อยู่ MAC |
| connection-oriented/kəˈnekʃn ˈɔːrɪəntɪd/ | แบบมีการเชื่อมต่อ |
| connectionless/kəˈnekʃənləs/ | แบบไร้การเชื่อมต่อ |
| layering/ˈleɪərɪŋ/ | การแบ่งชั้น |
ข้อความสองคำที่ทำให้เริ่มอินเทอร์เน็ต
- ในวันที่ 29 ตุลาคม 1969 นักศึกษาที่ UCLA พิมพ์คำว่า LOGIN ไปยังเครื่องที่ Stanford ตัวอักษรต่อตัวอักษร โดยมีเพื่อนร่วมชั้นโทรยืนยันทีละตัว หลัง L และ O ระบบพัง
- ปัญหาไม่ใช่สายเคเบิล แต่เป็นเพราะสองเครื่องที่สร้างโดยบริษัทต่างกัน ไม่มีข้อตกลงร่วมกันว่า byte หมายความว่าอะไร ควรพูดเมื่อไหร่ หรือทำอะไรเมื่อเกิดข้อผิดพลาด
- ทุกอย่างตั้งแต่บัดมาคือการจดบันทึกกฎเหล่านั้น โปรโตคอล คือข้อตกลงนั้น และอินเทอร์เน็ตคือกองซ้อนของโปรโตคอลเหล่านี้
- บทเรียนนี้คือเหตุผลที่ว่าทำไมโปรโตคอลจึงมีอยู่ ทำไมจึงเป็น ชั้น, สี่ชั้นของ TCP/IP และความแตกต่างระหว่าง TCP และ UDP
โปรโตคอลกำหนดอะไร
- โปรโตคอล คือ ชุดกฎสำหรับการสื่อสารของอุปกรณ์ ปลายทั้งสองต้องปฏิบัติตามกฎเดียวกัน มิฉะนั้นสัญญาณ的一方จะเป็นความหมายต่ออีกฝ่ายหนึ่ง
- มันกำหนด รูปแบบ ของข้อมูล ที่ที่อยู่ตั้งอยู่และที่ payload เริ่มต้น; ลำดับ ของข้อความ ใครพูดก่อนและเมื่อไหร่จะยอมรับ; ความหมาย ของแต่ละข้อความ; เวลา, Timeouts และการส่งใหม่; และ สิ่งที่ต้องทำเมื่อเกิดข้อผิดพลาด
- โดยไม่มีมัน การสื่อสารล้มเหลวสนิท เหมือนคนสองคนที่ไม่มีภาษา مشترก

กฎที่ตกลงกันล่วงหน้า โดยทั้งสองฝ่าย
โปรโตคอลเครือข่ายคือ:
โปรโตคอลกำหนดรูปแบบ ลำดับ ความหมาย เวลา และการจัดการข้อผิดพลาดของข้อความ — ทั้งสองฝ่ายต้องตกลงกัน
โปรโตคอลกำหนดอะไร? เลือก ทุก ข้อที่ถูกต้อง
รูปแบบ ลำดับ ความหมาย เวลา และการจัดการข้อผิดพลาด ความเร็วของสายเป็นคุณสมบัติของฮาร์ดแวร์ ไม่ใช่ของการตกลงกัน
เหตุผลที่โปรโตคอลถูกแบ่งเป็นชั้น
- การสื่อสารผ่านเครือข่ายซับซ้อนเกินไปที่จะใช้กฎชุดเดียว จึงถูกแยกออกเป็น ชั้น (layers) โดยแต่ละชั้นมีหน้าที่เฉพาะเจาะจง และสื่อสารได้เพียงกับชั้นที่อยู่ด้านบนและด้านล่างเท่านั้น การนำไปปฏิบัติจริงจะจัดเรียงเป็น สแต็ก (stack)
- ความยืดหยุ่น: สามารถเปลี่ยนชั้นหนึ่งโดยไม่กระทบชั้นอื่น ทำให้การเปลี่ยนจาก Ethernet เป็น Wi-Fi ไม่ส่งผลกระทบต่อชั้นที่สูงกว่า link layer
- มาตรฐาน: อุปกรณ์จากผู้ผลิตต่างกันสามารถทำงานร่วมกันได้ เพราะอินเทอร์เฟซของแต่ละชั้นมีความตกลงกัน การนามธรรม: นักเขียนโปรแกรมที่สร้างเว็บแอปพลิเคชันไม่จำเป็นต้องรู้รายละเอียดว่าชั้นล่างๆ ทำงานอย่างไร

สี่ชั้น แต่ละชั้นมีหน้าที่เดียว
ประโยชน์ของการแบ่งเครือข่ายออกเป็นชั้นคือ:
แต่ละชั้นมีหน้าที่เดียวและมีอินเทอร์เฟซชัดเจน ดังนั้น (เช่น) สามารถเปลี่ยน Ethernet เป็น Wi-Fi ได้โดยไม่กระทบชั้นสูง
สี่ชั้นของ TCP/IP
| ชั้น | วัตถุประสงค์ | ตัวอย่าง |
|---|---|---|
| ชั้นแอปพลิเคชัน | บริการสำหรับโปรแกรมผู้ใช้ และโปรโตคอลที่ใช้งานอยู่ | HTTP, FTP, SMTP, IMAP |
| ชั้นการขนส่ง | การส่งข้อมูลระหว่างกระบวนการจากต้นทางถึงปลายทาง โดยระบุด้วย หมายเลขพอร์ต | TCP, UDP |
| ชั้นอินเทอร์เน็ต | การส่ง แพ็กเก็ต ระหว่างโฮสต์โดยใช้ ที่อยู่ IP IP จะถูกส่งต่อโดย เร้าเตอร์ | IP |
| ชั้นลิงก์ | การส่งบิตผ่านลิงก์ฟิสิกส์หนึ่งครั้ง โดยใช้ MAC addresses สำหรับการจัดเฟรม MAC | Ethernet, Wi-Fi |
- ชั้นอินเทอร์เน็ต ไม่ได้ รับประกันการส่งข้อมูลสำเร็จ หน้าที่นี้คือของชั้นการขนส่ง และเกิดขึ้นก็ต่อเมื่อใช้ TCP เท่านั้น
แตะชั้นทั้งสี่ของโมเดล TCP/IP
สำรวจแต่ละชั้น ข้อมูลจะไหลลงตามสแต็กเมื่อถูกส่ง (แต่ละชั้นเพิ่มหัวข้อมูล) และไหลกลับขึ้นไปเมื่อได้รับ — และชั้นใดก็สามารถเปลี่ยนได้โดยไม่กระทบชั้นอื่น
จับคู่แต่ละชั้นของ TCP/IP กับหน้าที่ของมัน
แอปพลิเคชัน = โปรโตคอลผู้ใช้; การขนส่ง = การจัดส่ง TCP/UDP; อินเทอร์เน็ต = การจัดเส้นทาง IP; ลิงก์ = บิตบนสื่อ
ชั้นอินเทอร์เน็ต (IP) รับประกันว่าทุกแพ็กเก็ตจะมาถึง
IP ส่งแพ็กเก็ตแต่ไม่รับประกันการส่งถึง ความน่าเชื่อถือถูกเพิ่มเข้าไปด้านบนโดย TCP ส่วน UDP เลือกที่จะไม่ใช้สิ่งนี้
ตัวอย่างโจทย์: ข้อความข้ามอินเทอร์เน็ต
- อธิบายสิ่งที่เกิดขึ้นในแต่ละชั้นเมื่อเบราว์เซอร์ขอหน้าเว็บจากเซิร์ฟเวอร์
- ชั้นแอปพลิเคชัน: เบราว์เซอร์สร้างคำขอ HTTP สำหรับหน้านั้น
- ชั้นการขนส่ง: TCP แบ่งข้อมูลออกเป็นส่วนย่อยๆ เพิ่มหมายเลขพอร์ต และจะยืนยันการรับและส่งใหม่หากส่วนไหนหายไป
- ชั้นอินเทอร์เน็ต: IP เพิ่มที่อยู่ IP ของผู้ส่งและผู้รับลงในแต่ละแพ็กเก็ต และเร้าเตอร์จะส่งต่อทีละขั้นข้ามเครือข่าย
- ชั้นลิงก์: แต่ละขั้นจะใส่แพ็กเก็ตลงในเฟรมพร้อม MAC addresses แล้วส่งบิตผ่านสายหรือคลื่นวิทยุ ที่เซิร์ฟเวอร์ ชั้นต่างๆ จะถอดรหัสกลับเป็นลำดับย้อนกลับ
เรียงลำดับชั้น TCP/IP จากโปรแกรมของผู้ใช้ลงไปยังสาย
แต่ละชั้นห่อหุ้มชั้นที่อยู่ด้านบน; ที่ปลายทางจะถูกถอดออกตามลำดับย้อนกลับ
TCP และ UDP
- TCP เป็นแบบ เชื่อมต่อได้:它将先建立连接,确保所有数据按顺序到达,重传丢失的包并控制流量。可靠,但代价是额外的开销和延迟。常用于 HTTP、HTTPS、SMTP 和 FTP。
- UDP เป็นแบบ ไม่เชื่อมต่อ:它将发送后即忘,没有确认、没有排序也没有重传。开销低,但没有保证。
- UDP ใช้สำหรับการสตรีมสด DNS และการเล่นเกมออนไลน์ ซึ่ง ความเร็วสำคัญกว่าความน่าเชื่อถือ: เฟรมวิดีโอที่ถูกส่งใหม่จะมาถึงช้ากว่าเวลาที่จำเป็น ดังนั้นการทิ้งเฟรมนั้นจึงดีกว่าการรอคอย

รับประกันแต่ช้า หรือเร็วแต่ไม่รับประกัน
TCP แตกต่างจาก UDP อย่างไร?
TCP ตั้งการเชื่อมต่อและมั่นใจในการจัดส่งที่เชื่อถือได้และเรียงลำดับ (ด้วยความซับซ้อน); UDP คือส่งแล้วทิ้ง
TCP เป็นแบบเชื่อมต่อและรับประกันการจัดส่งที่เรียงลำดับและครบถ้วน (ด้วยความซับซ้อน) ในขณะที่ UDP คือส่งแล้วทิ้ง — รวดเร็วแต่ไม่มีการรับประกันการจัดส่ง
นั่นคือเหตุผลที่ UDP เหมาะสำหรับการสตรีมสด เกม และ DNS แต่ TCP ใช้สำหรับไฟล์ อีเมล และหน้าเว็บปลอดภัยที่ทุกไบต์ต้องมาถึง
วิดีโอสตรีมสดใช้ ____ เพราะความเร็วสำคัญกว่าการส่งซ้ำแพ็กเก็ตที่หายไป
เฟรมที่ถูกส่งซ้ำจะมาถึงหลังจากช่วงเวลาที่ต้องการแล้ว ดังนั้นการทิ้งมันจึงดีกว่าการรอ TCP การรับประกันของ它有其代价但对于支付页面来说值得。
ตัวอย่างโจทย์: เลือกโปรโตคอลการขนส่ง
- บริษัทหนึ่งกำลังสตรีมการแข่งขันกีฬาสด และขายบัตรผ่านหน้าเว็บ โปรโตคอลการขนส่งใดควรใช้สำหรับแต่ละอย่าง และทำไม?
- การสตรีมสด: UDP. เฟรมที่หายไปแล้วไม่มีค่าเมื่อถึงเวลาที่จะส่งใหม่ ดังนั้นความเร็วและความหน่วงต่ำจึงสำคัญกว่าความครบถ้วน ผู้ชมจะยอมเสียเฟรมหนึ่งเฟรมมากกว่าดูภาพหยุดนิ่ง
- หน้าขายบัตร: TCP. ข้อมูลทุกไบต์ของการชำระเงินและการจองต้องมาถึงถูกต้องและเป็นลำดับ ดังนั้นการยืนยันการรับและส่งใหม่จึงคุ้มค่าต่อปริมาณข้อมูลที่เพิ่มขึ้น
- ระบุชื่อโปรโตคอล แล้วบอกคุณสมบัติของข้อมูลที่กำหนดให้ใช้โปรโตคอลนั้น
คะแนนที่หลุดหายไป
- โปรโตคอลคือ ชุดกฎ ไม่ใช่โปรแกรมหรือสายเคเบิล ระบุอย่างน้อยสองสิ่งที่มันกำหนดไว้
- ประโยชน์ของการแบ่งชั้นคือ ความยืดหยุ่น มาตรฐาน และการนามธรรม ไม่ใช่ "มันเร็วกว่า"
- IP ไม่ได้รับประกันการส่ง; TCP ทำเช่นนั้น อย่าให้คะแนนชั้นอินเทอร์เน็ตด้วยความน่าเชื่อถือ
- UDP ไม่ใช่ "แย่" มันถูกเลือกเมื่อ ความเร็วสำคัญกว่าความน่าเชื่อถือ และคำตอบต้องระบุว่าข้อมูลประเภทใดที่ใช้เหตุผลนี้
คุณเข้าใจแล้ว
- โปรโตคอล คือกฎ agreed对于格式、顺序、含义、时序和错误处理,由两端遵守
- โปรโตคอลสร้างเป็น สแต็ก ของ ชั้น ให้มาซึ่ง ความยืดหยุ่น มาตรฐาน และการนามธรรม
- ชั้น TCP/IP: แอปพลิเคชัน (HTTP, SMTP), การขนส่ง (TCP, UDP, หมายเลขพอร์ต), อินเทอร์เน็ต (ที่อยู่ IP, เร้าเตอร์), ลิงก์ (Ethernet, Wi-Fi, MAC addresses)
- TCP เชื่อมต่อได้ เรียงลำดับได้ และเชื่อถือได้; UDP ไม่เชื่อมต่อและไม่มีการรับประกัน ใช้สำหรับการสตรีม DNS และการเล่นเกม