กลับไปหน้าบทความ

อ่าน 17 นาที

ไม่มีชื่อบทความ

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

โปรโตคอลการสื่อสาร

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

ระบบการสื่อสารใช้รูปแบบที่กำหนดไว้อย่างดีสำหรับการแลกเปลี่ยนข้อความต่างๆ แต่ละข้อความมีความหมายที่แน่นอนซึ่งมีจุดประสงค์เพื่อกระตุ้นให้เกิดการตอบสนองจากช่วงของการตอบสนองที่เป็นไปได้ที่กำหนดไว้ล่วงหน้าสำหรับสถานการณ์นั้นๆ พฤติกรรมที่ระบุไว้มักจะเป็นอิสระจากวิธีการนำไปใช้โปรโตคอลการสื่อสารจะต้องได้รับการตกลงร่วมกันโดยฝ่ายที่เกี่ยวข้อง[ 2 ]เพื่อให้บรรลุข้อตกลง โปรโตคอลอาจได้รับการพัฒนาเป็นมาตรฐานทางเทคนิคภาษาโปรแกรมอธิบายสิ่งเดียวกันสำหรับการคำนวณ ดังนั้นจึงมีความคล้ายคลึงกันอย่างใกล้ชิดระหว่างโปรโตคอลและภาษาโปรแกรม: โปรโตคอลเปรียบเสมือนภาษาโปรแกรมสำหรับการคำนวณ [ 3 ] การกำหนดสูตรอีกแบบหนึ่งระบุว่าโปรโตคอลเปรียบเสมือนอัลกอริทึมสำหรับการคำนวณ[ 4 ]

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

โปรโตคอลการสื่อสารที่เป็นที่รู้จักกันดีที่สุดบางส่วน ได้แก่ โปรโตคอลที่เกี่ยวข้องกับอินเทอร์เน็ตเว็บ และอีเมล ซึ่งได้รับการพัฒนาและเผยแพร่โดยInternet Engineering Task Force (IETF) และWorld Wide Web Consortium นอกจากนี้ยังมีโปรโตคอล แบบมีสายและไร้สายอีกมากมายที่เป็นที่รู้จักกันดี เช่น อีเธอร์เน็ต บลูทูธ และมาตรฐานโทรศัพท์มือถือ ส่วนใหญ่แล้วโปรโตคอล เหล่านี้ได้รับการดูแลโดยIEEE (Institute of Electrical and Electronics Engineers เช่น อีเธอร์เน็ต) ยังมีITU-Tซึ่งดูแล โปรโตคอลและรูปแบบ การสื่อสารโทรคมนาคมสำหรับเครือข่ายโทรศัพท์สาธารณะ (PSTN) เนื่องจาก PSTN และอินเทอร์เน็ตกำลังรวมเข้าด้วยกันโปรโตคอลหลายอย่างจึงมีแนวโน้มที่จะรวมเข้าด้วยกันองค์การมาตรฐานสากล (ISO) ดูแลโปรโตคอลประเภทอื่นๆ อีกมากมาย

ระบบการสื่อสาร

ประวัติศาสตร์

การใช้คำว่าโปรโตคอลในบริบทการสื่อสารข้อมูลสมัยใหม่ครั้งแรกเกิดขึ้นในเดือนเมษายน พ.ศ. 2510 ในบันทึกข้อความชื่อ " โปรโตคอลสำหรับการใช้งานในเครือข่ายการสื่อสารข้อมูล NPL"ภายใต้การกำกับดูแลของDonald Daviesผู้บุกเบิกการสลับแพ็กเก็ตที่ห้องปฏิบัติการฟิสิกส์แห่งชาติในสหราชอาณาจักร โปรโตคอลนี้เขียนโดยRoger Scantleburyและ Keith Bartlett สำหรับเครือข่าย NPLพวกเขาเผยแพร่ผลงานของพวกเขาในปีถัดมา[ 5 ] [ 6 ] [ 7 ] [ 8 ]

บนARPANETจุดเริ่มต้นของการสื่อสารระหว่างโฮสต์ในปี 1969 คือโปรโตคอล 1822ซึ่งเขียนโดยBob Kahnซึ่งกำหนดการส่งข้อความไปยัง IMP [ 9 ]โปรแกรมควบคุมเครือข่าย (NCP) สำหรับ ARPANET ซึ่งพัฒนาโดยSteve Crockerและนักศึกษาปริญญาโทคนอื่นๆ รวมถึงJon Postelได้ถูกนำมาใช้งานครั้งแรกในปี 1970 [ 10 ]อินเทอร์เฟซ NCP อนุญาตให้ซอฟต์แวร์แอป พลิเคชัน เชื่อมต่อผ่าน ARPANET โดยการใช้โปรโตคอลการสื่อสารระดับสูง ซึ่งเป็นตัวอย่างแรกๆ ของแนวคิดการแบ่งชั้นโปรโตคอล[ 11 ]

เครือ ข่าย CYCLADESซึ่งออกแบบโดยLouis Pouzinในช่วงต้นทศวรรษ 1970 เป็นเครือข่ายแรกที่นำหลักการ end-to-end มา ใช้ และทำให้โฮสต์รับผิดชอบในการส่งมอบข้อมูลอย่างน่าเชื่อถือบนเครือข่ายแบบสวิตช์แพ็กเก็ต แทนที่จะเป็นบริการของเครือข่ายเอง[ 12 ]ทีมของเขาเป็นทีมแรกที่จัดการกับปัญหาที่ซับซ้อนมากในการให้บริการวงจรเสมือนที่เชื่อถือได้แก่แอปพลิเคชัน ของผู้ใช้ ในขณะที่ใช้บริการ best-effortซึ่งเป็นการมีส่วนร่วมในช่วงแรกๆ ของสิ่งที่ต่อมาคือTransmission Control Protocol (TCP) [ 13 ] [ 14 ] [ 15 ]

Bob Metcalfeและคนอื่นๆ ที่Xerox PARCได้วางโครงร่างแนวคิดของEthernetและPARC Universal Packet (PUP) สำหรับการเชื่อมต่อเครือข่าย[ 16 ]

การวิจัยในช่วงต้นทศวรรษ 1970 โดย Bob Kahn และ Vint Cerf นำไปสู่การกำหนดโปรแกรมควบคุมการส่งสัญญาณ (TCP) [ 17 ] ข้อกำหนด RFC 675ของ TCP ถูกเขียนโดย Cerf ร่วมกับYogen Dalalและ Carl Sunshine ในเดือนธันวาคม 1974 ซึ่งยังคงเป็นการออกแบบแบบโมโนลิธิกในขณะนั้น 

กลุ่มทำงานเครือข่ายระหว่างประเทศตกลงกันใน มาตรฐาน ดาตาแกรม แบบไร้การเชื่อมต่อ ซึ่งนำเสนอต่อCCITTในปี 1975 แต่ไม่ได้รับการยอมรับจาก CCITT หรือ ARPANET [ 18 ]การวิจัยระหว่างประเทศแยกต่างหาก โดยเฉพาะงานของRémi Desprésมีส่วนช่วยในการพัฒนา มาตรฐาน X.25ซึ่งอิงตามวงจรเสมือนซึ่งได้รับการยอมรับจาก CCITT ในปี 1976 [ 19 ] [ 20 ]ผู้ผลิตคอมพิวเตอร์ได้พัฒนาโปรโตคอลที่เป็นกรรมสิทธิ์เช่นSystems Network Architecture (SNA) ของ IBM, DECnetของ Digital Equipment Corporation และXerox Network Systems [ 21 ]

ซอฟต์แวร์ TCP ได้รับการออกแบบใหม่ให้เป็นสแต็กโปรโตคอลแบบโมดูลาร์ ซึ่งเรียกว่าTCP/IPโดยติดตั้งบนSATNETในปี 1982 และบน ARPANET ในเดือนมกราคม 1983 การพัฒนาชุดโปรโตคอลอินเทอร์เน็ต ที่สมบูรณ์ ภายในปี 1989 ตามที่ระบุไว้ในRFC 1122และRFC 1123ได้วางรากฐานสำหรับการเติบโตของ TCP/IP ในฐานะชุดโปรโตคอลที่ครอบคลุมซึ่งเป็นส่วนประกอบหลักของอินเทอร์เน็ต ที่กำลังเกิด ขึ้น[ 22 ]  

งานระหว่างประเทศเกี่ยวกับแบบจำลองอ้างอิงสำหรับมาตรฐานการสื่อสารนำไปสู่แบบจำลอง OSIซึ่งเผยแพร่ในปี 1984 ในช่วงปลายทศวรรษ 1980 และต้นทศวรรษ 1990 วิศวกร องค์กร และประเทศต่างๆ ต่างมีความคิดเห็นที่แตกต่างกันในประเด็นที่ว่ามาตรฐานใดระหว่างแบบจำลอง OSI หรือชุดโปรโตคอลอินเทอร์เน็ตจะส่งผลให้เครือข่ายคอมพิวเตอร์ที่ดีที่สุดและแข็งแกร่งที่สุด[ 23 ] [ 24 ] [ 25 ]

แนวคิด

ข้อมูลที่แลกเปลี่ยนระหว่างอุปกรณ์ผ่านเครือข่ายหรือสื่ออื่นๆ จะถูกควบคุมโดยกฎและข้อตกลงที่สามารถกำหนดไว้ในข้อกำหนดโปรโตคอลการสื่อสาร ลักษณะของการสื่อสาร ข้อมูลที่แลกเปลี่ยนจริง และ พฤติกรรมที่ขึ้นอยู่กับ สถานะ ต่างๆ จะถูกกำหนดโดยข้อกำหนดเหล่านี้ ในระบบคอมพิวเตอร์ดิจิทัล กฎเหล่านี้สามารถแสดงได้ด้วยอัลกอริธึมและโครงสร้างข้อมูลโปรโตคอลเปรียบเสมือนอัลกอริธึมหรือภาษาโปรแกรมสำหรับการคำนวณ[ 3 ] [ 4 ]

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

เพื่อนำโปรโตคอลเครือข่ายไปใช้ โมดูลซอฟต์แวร์โปรโตคอลจะเชื่อมต่อกับเฟรมเวิร์กที่ใช้งานบนระบบปฏิบัติการของเครื่อง เฟรมเวิร์กนี้จะนำฟังก์ชันการทำงานของเครือข่ายของระบบปฏิบัติการไปใช้[ 28 ]เมื่ออัลกอริธึมโปรโตคอลถูกแสดงในภาษาการเขียนโปรแกรมแบบพกพา ซอฟต์แวร์โปรโตคอลอาจเป็น อิสระจาก ระบบปฏิบัติการเฟรมเวิร์กที่เป็นที่รู้จักมากที่สุดคือโมเดล TCP/IPและโมเดลOSI

ในช่วงเวลาที่อินเทอร์เน็ตได้รับการพัฒนาการแบ่งชั้นนามธรรมได้พิสูจน์แล้วว่าเป็นแนวทางการออกแบบที่ประสบความสำเร็จทั้งในด้านการออกแบบคอมไพเลอร์และระบบปฏิบัติการ และเนื่องจากมีความคล้ายคลึงกันระหว่างภาษาโปรแกรมและโปรโตคอลการสื่อสาร โปรแกรมเครือข่ายแบบรวมศูนย์เดิมจึงถูกแยกย่อยออกเป็นโปรโตคอลที่ทำงานร่วมกัน[ 29 ]ซึ่งก่อให้เกิดแนวคิดของโปรโตคอลแบบแบ่งชั้น ซึ่งในปัจจุบันถือเป็นพื้นฐานของการออกแบบโปรโตคอล[ 30 ]

โดยทั่วไป ระบบจะไม่ใช้โปรโตคอลเดียวในการจัดการการส่งข้อมูล แต่จะใช้ชุดโปรโตคอลที่ทำงานร่วมกัน ซึ่งบางครั้งเรียกว่าชุดโปรโตคอล[ 31 ]ชุดโปรโตคอลที่รู้จักกันดีที่สุดบางส่วน ได้แก่TCP/IP , IPX/ SPX , X.25 , AX.25และAppleTalk

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

การเข้ารหัสข้อความ

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

อิงตามข้อความ

โปรโตคอลแบบข้อความหรือโปรโตคอลข้อความธรรมดาจะแสดงข้อความในรูปแบบที่มนุษย์อ่านได้โดยมักจะเป็นข้อความธรรมดาที่เข้ารหัสด้วยการเข้ารหัสที่เครื่องอ่านได้ เช่นASCIIหรือUTF-8หรือในรูปแบบข้อความที่มีโครงสร้าง เช่น รูปแบบเลข ฐานสิบหกของ Intel , XMLหรือJSON

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

แอปพลิเคชันเครือข่ายมีวิธีการต่างๆ ในการห่อหุ้มข้อมูล วิธีหนึ่งที่พบได้ทั่วไปในโปรโตคอลอินเทอร์เน็ตคือการแสดงข้อความแบบข้อความ ซึ่งส่งคำขอและการตอบสนองเป็นบรรทัดของ ข้อความ ASCIIโดยสิ้นสุดด้วยอักขระขึ้นบรรทัดใหม่ (และโดยปกติจะมีอักขระขึ้นบรรทัดใหม่ด้วย) ตัวอย่างของโปรโตคอลที่ใช้ข้อความธรรมดาที่มนุษย์อ่านได้สำหรับคำสั่ง ได้แก่ FTP ( File Transfer Protocol ), SMTP ( Simple Mail Transfer Protocol ), HTTP เวอร์ชันแรกๆ ( Hypertext Transfer Protocol ) และโปรโตคอลนิ้ว[ 34 ]

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

ไบนารี

โปรโตคอลไบนารีใช้การแสดงข้อความที่สามารถใช้ค่าทั้งหมดของไบต์ ได้ ซึ่งแตกต่างจากการแสดงข้อความแบบข้อความซึ่งจำกัดเฉพาะค่าที่สอดคล้องกับอักขระในการเข้ารหัสอักขระ เช่นASCIIหรือUTF-8การแสดงข้อความไบนารีมีจุดประสงค์เพื่อให้เครื่องจักรประมวลผลแทนที่จะให้มนุษย์อ่านโดยตรง โปรโตคอลไบนารีมีข้อดีคือความกระชับ ซึ่งส่งผลให้การส่งและการตีความรวดเร็ว[ 35 ]

การแสดงข้อความแบบไบนารีถูกนำมาใช้ในมาตรฐานสมัยใหม่ เช่นEbXML , HTTP/2 , HTTP/3และEDOC [ 36 ]อินเทอร์เฟซใน UML [ 37 ]อาจถือได้ว่าเป็นโปรโตคอลไบนารีเช่นกัน

ข้อกำหนดพื้นฐาน

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

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

รูปแบบข้อมูลสำหรับการแลกเปลี่ยนข้อมูล
มีการแลกเปลี่ยนสตริงบิตข้อความดิจิทัล สตริงบิตเหล่านี้ถูกแบ่งออกเป็นฟิลด์ และแต่ละฟิลด์จะบรรจุข้อมูลที่เกี่ยวข้องกับโปรโตคอล ตามแนวคิด สตริงบิตจะถูกแบ่งออกเป็นสองส่วน เรียกว่าส่วนหัวและส่วนข้อมูลข้อความจริงจะถูกส่งในส่วนข้อมูล ส่วนหัวจะประกอบด้วยฟิลด์ที่เกี่ยวข้องกับการทำงานของโปรโตคอล สตริงบิตที่ยาวเกินหน่วยการส่งสูงสุด (MTU) จะถูกแบ่งออกเป็นชิ้นส่วนที่มีขนาดเหมาะสม[ 39 ]
รูปแบบที่อยู่สำหรับการแลกเปลี่ยนข้อมูล
ที่อยู่ใช้เพื่อระบุทั้งผู้ส่งและผู้รับที่ตั้งใจไว้ ที่อยู่จะถูกส่งไปในส่วนหัวของสตริงบิต ทำให้ผู้รับสามารถพิจารณาได้ว่าสตริงบิตนั้นน่าสนใจและควรได้รับการประมวลผลหรือควรถูกละเลย การเชื่อมต่อระหว่างผู้ส่งและผู้รับสามารถระบุได้โดยใช้คู่ที่อยู่(ที่อยู่ผู้ส่ง ที่อยู่ผู้รับ)โดยปกติแล้ว ค่าที่อยู่บางค่าจะมีaความหมายพิเศษ ที่อยู่ที่เป็น1 ทั้งหมด อาจหมายถึงการกำหนดที่อยู่ให้กับสถานีทั้งหมดในเครือข่าย ดังนั้นการส่งไปยังที่อยู่นี้จะส่งผลให้เกิดการออกอากาศบนเครือข่ายท้องถิ่น กฎที่อธิบายความหมายของค่าที่อยู่เรียกรวมกันว่ารูปแบบการกำหนดที่ อยู่ [ 40 ]
การแมปที่อยู่
บางครั้งโปรโตคอลจำเป็นต้องแมปที่อยู่ของรูปแบบหนึ่งกับที่อยู่ของอีกรูปแบบหนึ่ง ตัวอย่างเช่น เพื่อแปลงที่อยู่ IP เชิงตรรกะที่ระบุโดยแอปพลิเคชันเป็นที่อยู่ MAC ของอีเธอร์เน็ต ซึ่งเรียกว่าการแมปที่อยู่[ 41 ]
การกำหนดเส้นทาง
เมื่อระบบไม่ได้เชื่อมต่อกันโดยตรง ระบบตัวกลางตามเส้นทางไปยังผู้รับปลายทางจำเป็นต้องส่งต่อข้อความในนามของผู้ส่ง บนอินเทอร์เน็ต เครือข่ายต่างๆ จะเชื่อมต่อกันโดยใช้เราเตอร์ การเชื่อมต่อเครือข่ายผ่านเราเตอร์เรียกว่า การเชื่อมต่อเครือข่ายระหว่างกัน(internetworking )
การตรวจจับข้อผิดพลาดในการส่งข้อมูล
การตรวจจับข้อผิดพลาดเป็นสิ่งจำเป็นในเครือข่ายที่อาจเกิดความเสียหายของข้อมูลได้ โดยทั่วไปแล้ว จะมีการเพิ่ม CRC ของพื้นที่ข้อมูลไว้ที่ส่วนท้ายของแพ็กเก็ต ทำให้ผู้รับสามารถตรวจจับความแตกต่างที่เกิดจากความเสียหายได้ ผู้รับจะปฏิเสธแพ็กเก็ตที่มีความแตกต่างของ CRC และจัดการส่งใหม่ด้วยวิธีใดวิธีหนึ่ง[ 42 ]
คำขอบคุณ
จำเป็นต้องมีการยืนยันการรับแพ็กเก็ตอย่างถูกต้องสำหรับการสื่อสารแบบมุ่งเน้นการเชื่อมต่อการยืนยันจะถูกส่งจากผู้รับกลับไปยังผู้ส่งที่เกี่ยวข้อง[ 43 ]
การสูญเสียข้อมูล - การหมดเวลาและการลองใหม่
แพ็กเก็ตอาจสูญหายในเครือข่ายหรือเกิดความล่าช้าระหว่างการส่ง เพื่อรับมือกับปัญหานี้ ภายใต้โปรโตคอลบางอย่าง ผู้ส่งอาจคาดหวังการยืนยันการรับที่ถูกต้องจากผู้รับภายในระยะเวลาที่กำหนด ดังนั้น เมื่อหมดเวลาผู้ส่งอาจต้องส่งข้อมูลซ้ำ[ a ]ในกรณีที่ลิงก์ขาดอย่างถาวร การส่งซ้ำจะไม่มีผล ดังนั้นจำนวนการส่งซ้ำจึงมีจำกัด การเกินขีดจำกัดการส่งซ้ำถือเป็นข้อผิดพลาด[ 44 ]
ทิศทางการไหลของข้อมูล
จำเป็นต้องกำหนดทิศทางหากการส่งข้อมูลเกิดขึ้นได้เพียงทิศทางเดียวในแต่ละครั้ง เช่น บน ลิงก์ แบบครึ่งทิศทางหรือจากผู้ส่งเพียงรายเดียวในแต่ละครั้ง เช่น บนสื่อที่ใช้ร่วมกันซึ่งเรียกว่าการควบคุมการเข้าถึงสื่อต้องมีการจัดเตรียมเพื่อรองรับกรณีการชนกันหรือการแย่งชิงกันในกรณีที่ทั้งสองฝ่ายส่งข้อมูลหรือต้องการส่งข้อมูลพร้อมกัน[ 45 ]
การควบคุมลำดับ
หากสตริงบิตยาวถูกแบ่งออกเป็นชิ้น ๆ แล้วส่งผ่านเครือข่ายทีละชิ้น ชิ้นส่วนเหล่านั้นอาจสูญหายหรือล่าช้า หรือในเครือข่ายบางประเภท อาจใช้เส้นทางที่แตกต่างกันไปยังปลายทาง ส่งผลให้ชิ้นส่วนอาจมาถึงไม่เรียงลำดับ การส่งซ้ำอาจทำให้เกิดชิ้นส่วนที่ซ้ำกัน การทำเครื่องหมายชิ้นส่วนด้วยข้อมูลลำดับที่ผู้ส่ง ผู้รับสามารถระบุได้ว่าชิ้นส่วนใดสูญหายหรือซ้ำกัน ขอให้ส่งซ้ำตามความจำเป็น และประกอบข้อความต้นฉบับขึ้นใหม่[ 46 ]
การควบคุมการไหล
จำเป็นต้องมีการควบคุมการไหลเมื่อผู้ส่งส่งข้อมูลเร็วกว่าที่ผู้รับหรืออุปกรณ์เครือข่ายระดับกลางสามารถประมวลผลการส่งได้ การควบคุมการไหลสามารถนำไปใช้ได้โดยการส่งข้อความจากผู้รับไปยังผู้ส่ง[ 47 ]
การเข้าคิว
กระบวนการสื่อสารหรือเครื่องสถานะจะใช้คิว (หรือ "บัฟเฟอร์") ซึ่งโดยทั่วไปจะเป็นคิวแบบ FIFO เพื่อจัดการกับข้อความตามลำดับที่ส่งมา และบางครั้งอาจมีหลายคิวที่มีลำดับความสำคัญแตกต่างกัน

การออกแบบโปรโตคอล

หลักการ วิศวกรรมระบบได้รับการนำไปใช้เพื่อสร้างชุดหลักการออกแบบโปรโตคอลเครือข่ายทั่วไป การออกแบบโปรโตคอลที่ซับซ้อนมักเกี่ยวข้องกับการแยกย่อยออกเป็นโปรโตคอลที่ทำงานร่วมกันที่ง่ายกว่า ชุดโปรโตคอลที่ทำงานร่วมกันดังกล่าวบางครั้งเรียกว่าตระกูลโปรโตคอลหรือชุดโปรโตคอล[ 31 ]ภายในกรอบแนวคิด

ระบบการสื่อสารทำงานพร้อมกัน แง่มุมที่สำคัญของการเขียนโปรแกรมพร้อมกันคือการซิงโครไนซ์ซอฟต์แวร์สำหรับการรับและส่งข้อความการสื่อสารตามลำดับที่เหมาะสม การเขียนโปรแกรมพร้อมกันเป็นหัวข้อที่กล่าวถึงในตำราทฤษฎีระบบปฏิบัติการมาโดยตลอด[ 48 ]การตรวจสอบอย่างเป็นทางการดูเหมือนจะขาดไม่ได้ เพราะโปรแกรมพร้อมกันขึ้นชื่อเรื่องบั๊กที่ซ่อนเร้นและซับซ้อน[ 49 ]แนวทางทางคณิตศาสตร์ในการศึกษาการทำงานพร้อมกันและการสื่อสารเรียกว่ากระบวนการลำดับการสื่อสาร (CSP) [ 50 ]การทำงานพร้อมกันยังสามารถจำลองได้โดยใช้เครื่องสถานะจำกัดเช่นเครื่องMealyและ Moore เครื่อง Mealy และ Moore ถูกใช้เป็นเครื่องมือออกแบบในระบบอิเล็กทรอนิกส์ดิจิทัลที่พบในรูปของฮาร์ดแวร์ที่ใช้ในการสื่อสารโทรคมนาคมหรืออุปกรณ์อิเล็กทรอนิกส์โดยทั่วไป[ 51 ]

งานวิจัยต่างๆ นำเสนอความคล้ายคลึงกันมากมายระหว่างการสื่อสารด้วยคอมพิวเตอร์และการเขียนโปรแกรม โดยเปรียบเทียบกลไกการถ่ายโอนของโปรโตคอลกับหน่วยประมวลผลกลาง (CPU) กรอบแนวคิดนี้ได้นำเสนอกฎเกณฑ์ที่ช่วยให้นักเขียนโปรแกรมสามารถออกแบบโปรโตคอลที่ทำงานร่วมกันได้อย่างอิสระจากกันและกัน

การซ้อนชั้น

รูปที่ 2. โปรโตคอลที่เกี่ยวข้องกับโครงสร้างเลเยอร์ของอินเทอร์เน็ต
โมเดล TCP/IP หรือโครงสร้างการแบ่งชั้นของอินเทอร์เน็ตและความสัมพันธ์กับโปรโตคอลทั่วไปบางอย่าง

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

โปรโตคอลการสื่อสารที่ใช้บนอินเทอร์เน็ตได้รับการออกแบบให้ทำงานในสภาพแวดล้อมที่หลากหลายและซับซ้อน โปรโตคอลอินเทอร์เน็ตได้รับการออกแบบให้เรียบง่ายและเป็นโมดูลาร์ และเข้ากับลำดับชั้นหยาบของเลเยอร์การทำงานที่กำหนดไว้ในชุดโปรโตคอลอินเทอร์เน็ต[ 52 ]โปรโตคอลที่ทำงานร่วมกันสองโปรโตคอลแรก ได้แก่โปรโตคอลควบคุมการส่งข้อมูล (TCP) และโปรโตคอลอินเทอร์เน็ต (IP) เป็นผลมาจากการแยกส่วนของโปรแกรมควบคุมการ ส่งข้อมูลดั้งเดิม ซึ่งเป็นโปรโตคอลการสื่อสารแบบรวมศูนย์ ออกเป็นชุดการสื่อสารแบบเลเยอร์นี้

โมเดลOSIได้รับการพัฒนาในระดับสากลโดยอาศัยประสบการณ์จากเครือข่ายที่เกิดขึ้นก่อนยุคอินเทอร์เน็ต โดยใช้เป็นโมเดลอ้างอิงสำหรับการสื่อสารทั่วไปที่มีกฎเกณฑ์ที่เข้มงวดกว่ามากเกี่ยวกับการโต้ตอบของโปรโตคอลและการแบ่งชั้นอย่างละเอียด

โดยทั่วไป ซอฟต์แวร์แอปพลิเคชันจะถูกสร้างขึ้นบนเลเยอร์การขนส่งข้อมูลที่แข็งแกร่ง ภายใต้เลเยอร์การขนส่งนี้คือกลไกการส่งและกำหนดเส้นทางของดาตาแกรม ซึ่งโดยทั่วไปแล้วจะไม่มีการเชื่อมต่อในอินเทอร์เน็ต การส่งต่อแพ็กเก็ตข้ามเครือข่ายเกิดขึ้นบนเลเยอร์อื่นที่เกี่ยวข้องกับเทคโนโลยีการเชื่อมต่อเครือข่ายเท่านั้น ซึ่งมักจะเฉพาะเจาะจงกับเทคโนโลยีเลเยอร์ทางกายภาพบางอย่าง เช่นอีเธอร์เน็ตการแบ่งเลเยอร์ทำให้มีโอกาสในการแลกเปลี่ยนเทคโนโลยีเมื่อจำเป็น ตัวอย่างเช่น โปรโตคอลมักถูกเรียงซ้อนกันใน รูปแบบ การสร้างอุโมงค์เพื่อรองรับการเชื่อมต่อของเครือข่ายที่แตกต่างกัน ตัวอย่างเช่น IP อาจถูกสร้างอุโมงค์ผ่าน เครือข่าย Asynchronous Transfer Mode (ATM)

การแบ่งชั้นโปรโตคอล

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

การแบ่งชั้นโปรโตคอลเป็นพื้นฐานของการออกแบบโปรโตคอล[ 30 ]ช่วยให้สามารถแยกโปรโตคอลที่ซับซ้อนเดี่ยวๆ ออกเป็นโปรโตคอลที่ทำงานร่วมกันได้ง่ายขึ้น[ 52 ]แต่ละชั้นของโปรโตคอลจะแก้ปัญหาการสื่อสารที่แตกต่างกัน ชั้นต่างๆ เหล่านี้รวมกันเป็นโครงร่างหรือแบบจำลองการแบ่งชั้น

การคำนวณเกี่ยวข้องกับอัลกอริธึมและข้อมูล การสื่อสารเกี่ยวข้องกับโปรโตคอลและข้อความ ดังนั้นสิ่งที่เทียบเคียงได้กับแผนภาพการไหลของข้อมูลก็คือแผนภาพการไหลของข้อความ[ 4 ]เพื่อให้เห็นภาพชั้นของโปรโตคอลและชุดโปรโตคอล แผนภาพการไหลของข้อความในและระหว่างสองระบบ A และ B แสดงอยู่ในรูปที่ 3 ระบบ A และ B ต่างก็ใช้ชุดโปรโตคอลเดียวกัน การไหลในแนวตั้ง (และโปรโตคอล) อยู่ภายในระบบ และการไหลของข้อความในแนวนอน (และโปรโตคอล) อยู่ระหว่างระบบ การไหลของข้อความถูกควบคุมโดยกฎและรูปแบบข้อมูลที่ระบุโดยโปรโตคอล เส้นสีน้ำเงินแสดงขอบเขตของชั้นโปรโตคอล (แนวนอน)

การแบ่งชั้นซอฟต์แวร์

รูปที่ 5: การแบ่งชั้นของโปรโตคอลและซอฟต์แวร์ โมดูลซอฟต์แวร์ที่ใช้ในการทำงานของโปรโตคอลแสดงด้วยรูปทรงลูกบาศก์ การไหลของข้อมูลระหว่างโมดูลแสดงด้วยลูกศร ลูกศรสีแดง (สองลูกศรแนวนอนด้านบน) เป็นลูกศรเสมือน เส้นสีน้ำเงินแสดงขอบเขตของแต่ละชั้น

ซอฟต์แวร์ที่รองรับโปรโตคอลมีโครงสร้างแบบหลายชั้น และความสัมพันธ์ระหว่างซอฟต์แวร์กับโครงสร้างแบบหลายชั้นของโปรโตคอลแสดงไว้ในรูปที่ 5

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

การแปลโปรแกรมถูกแบ่งออกเป็นปัญหาย่อย ส่งผลให้ซอฟต์แวร์การแปลมีการแบ่งชั้นเช่นกัน ทำให้สามารถออกแบบชั้นซอฟต์แวร์ได้อย่างอิสระ แนวทางเดียวกันนี้สามารถพบได้ในการแบ่งชั้นของ TCP/IP [ 54 ]

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

การจัดเรียงชั้นอย่างเข้มงวด

การยึดมั่นในแบบจำลองชั้นอย่างเคร่งครัด ซึ่งเป็นแนวปฏิบัติที่เรียกว่าการแบ่งชั้นอย่างเคร่งครัด ไม่ได้เป็นแนวทางที่ดีที่สุดสำหรับการสร้างเครือข่ายเสมอไป[ 56 ]การแบ่งชั้นอย่างเคร่งครัดอาจส่งผลเสียต่อประสิทธิภาพของการใช้งาน[ 57 ]

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

รูปแบบการออกแบบ

ปัญหาที่เกิดขึ้นซ้ำๆ ในการออกแบบและการใช้งานโปรโตคอลการสื่อสารสามารถแก้ไขได้ด้วยรูปแบบการออกแบบซอฟต์แวร์[ 60 ] [ 61 ] [ 62 ] [ 63 ] [ 64 ]

ข้อกำหนดอย่างเป็นทางการ

วิธีการที่เป็นทางการที่นิยมใช้ในการอธิบายไวยากรณ์การสื่อสาร ได้แก่Abstract Syntax Notation One ( มาตรฐาน ISO ) และAugmented Backus–Naur Form ( มาตรฐาน IETF )

แบบจำลอง เครื่องสถานะจำกัดใช้เพื่ออธิบายปฏิสัมพันธ์ที่เป็นไปได้ของโปรโตคอลอย่างเป็นทางการ[ 65 ] [ 66 ]และเครื่องสถานะจำกัดที่สื่อสารกัน[ 67 ]

การพัฒนาโปรโตคอล

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

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

ความจำเป็นในการกำหนดมาตรฐานโปรโตคอล

ความจำเป็นของมาตรฐานโปรโตคอลสามารถแสดงให้เห็นได้จากสิ่งที่เกิดขึ้นกับ โปรโตคอล Binary Synchronous Communications (BSC) ที่คิดค้นโดยIBM BSC เป็นโปรโตคอลระดับลิงก์รุ่นแรกๆ ที่ใช้ในการเชื่อมต่อโหนดสองโหนดที่แยกจากกัน เดิมทีไม่ได้ตั้งใจให้ใช้ในเครือข่ายหลายโหนด แต่การทำเช่นนั้นทำให้พบข้อบกพร่องหลายประการของโปรโตคอล ในกรณีที่ไม่มีการกำหนดมาตรฐาน ผู้ผลิตและองค์กรต่างๆ รู้สึกว่ามีอิสระที่จะปรับปรุงโปรโตคอล ทำให้เกิดเวอร์ชันที่ไม่เข้ากันในเครือข่ายของตน ในบางกรณี การกระทำนี้ทำโดยเจตนาเพื่อกีดกันผู้ใช้ไม่ให้ใช้อุปกรณ์จากผู้ผลิตรายอื่น มีโปรโตคอล bi-sync ดั้งเดิมมากกว่า 50 รูปแบบ เราสามารถสันนิษฐานได้ว่ามาตรฐานจะป้องกันไม่ให้เกิดเหตุการณ์เช่นนี้ขึ้นอย่างน้อยบางส่วน[ 28 ]

ในบางกรณี โปรโตคอลต่างๆ สามารถครองตลาดได้โดยไม่ต้องผ่านกระบวนการกำหนดมาตรฐาน โปรโตคอลเหล่านั้นเรียกว่ามาตรฐานโดยพฤตินัย (de facto standards ) มาตรฐานโดยพฤตินัยพบได้ทั่วไปในตลาดเกิดใหม่ ตลาดเฉพาะกลุ่ม หรือตลาดที่มีการผูกขาด (หรือมีผู้ประกอบการไม่กี่ราย ) มาตรฐานเหล่านี้สามารถครอบงำตลาดได้อย่างมาก โดยเฉพาะอย่างยิ่งเมื่อใช้เพื่อข่มขู่คู่แข่ง จากมุมมองทางประวัติศาสตร์ การกำหนดมาตรฐานควรถูกมองว่าเป็นมาตรการเพื่อต่อต้านผลเสียของมาตรฐานโดยพฤตินัย อย่างไรก็ตาม มีข้อยกเว้นในเชิงบวก เช่น ระบบปฏิบัติการมาตรฐานโดยพฤตินัยอย่าง Linux ไม่ได้ครอบงำตลาดในแง่ลบเช่นนี้ เพราะมีการเผยแพร่และดูแลรักษาซอร์สโค้ดอย่างเปิดเผย ทำให้เกิดการแข่งขันขึ้น

องค์กรมาตรฐาน

องค์กรมาตรฐานที่เกี่ยวข้องกับโปรโตคอลการสื่อสาร ได้แก่องค์การมาตรฐานสากล (ISO), สหภาพโทรคมนาคมระหว่างประเทศ (ITU), สถาบันวิศวกรรมไฟฟ้าและอิเล็กทรอนิกส์ (IEEE) และคณะทำงานด้านวิศวกรรมอินเทอร์เน็ต (IETF) IETF ดูแลรักษาโปรโตคอลที่ใช้ในอินเทอร์เน็ต IEEE ควบคุมโปรโตคอลซอฟต์แวร์และฮาร์ดแวร์จำนวนมากในอุตสาหกรรมอิเล็กทรอนิกส์สำหรับอุปกรณ์เชิงพาณิชย์และผู้บริโภค ITU เป็นองค์กรหลักของวิศวกรโทรคมนาคมที่ออกแบบเครือข่ายโทรศัพท์สาธารณะ (PSTN) รวมถึงระบบสื่อสารวิทยุ หลายระบบ สำหรับ อุปกรณ์อิเล็กทรอนิกส์ทางทะเลจะใช้มาตรฐาน NMEA ส่วนWorld Wide Web Consortium (W3C) ผลิตโปรโตคอลและมาตรฐานสำหรับเทคโนโลยีเว็บ

องค์กรมาตรฐานสากลควรมีความเป็นกลางมากกว่าองค์กรระดับท้องถิ่นที่มีผลประโยชน์ส่วนตัวในระดับชาติหรือเชิงพาณิชย์ที่ต้องคำนึงถึง องค์กรมาตรฐานยังทำการวิจัยและพัฒนามาตรฐานในอนาคตอีกด้วย ในทางปฏิบัติ องค์กรมาตรฐานที่กล่าวถึงจะร่วมมือกันอย่างใกล้ชิด[ 68 ]

หน่วยงานมาตรฐานหลายแห่งอาจมีส่วนร่วมในการพัฒนาโปรโตคอล หากไม่มีการประสานงานกัน ผลที่ได้อาจเป็นคำจำกัดความของโปรโตคอลหลายแบบที่ไม่เข้ากัน หรือการตีความข้อความหลายแบบที่ไม่เข้ากัน ตัวแปรสำคัญในคำจำกัดความหนึ่ง (เช่นค่าเวลาในการใช้งาน จะ ลดลงอย่างต่อเนื่องเพื่อป้องกันลูปการกำหนดเส้นทาง ที่เสถียร ) อาจไม่ได้รับการเคารพในคำจำกัดความอื่น[ 69 ]

กระบวนการกำหนดมาตรฐาน

ใน ISO กระบวนการกำหนดมาตรฐานเริ่มต้นด้วยการมอบหมายให้คณะทำงานย่อยทำงาน คณะทำงานจะออกร่างเอกสารการทำงานและเอกสารการอภิปรายให้กับผู้ที่เกี่ยวข้อง (รวมถึงหน่วยงานมาตรฐานอื่นๆ) เพื่อกระตุ้นให้เกิดการอภิปรายและแสดงความคิดเห็น ซึ่งจะก่อให้เกิดคำถามมากมาย การอภิปรายจำนวนมาก และโดยปกติแล้วจะมีความเห็นไม่ตรงกันบ้าง ความคิดเห็นเหล่านี้จะถูกนำมาพิจารณา และคณะทำงานจะจัดทำร่างข้อเสนอ หลังจากได้รับข้อเสนอแนะ การแก้ไข และการประนีประนอม ข้อเสนอดังกล่าวจะ กลายเป็นร่างมาตรฐานสากลและในที่สุดก็กลาย เป็น มาตรฐาน สากล มาตรฐานสากลจะได้รับการออกใหม่เป็นระยะๆ เพื่อแก้ไขข้อบกพร่องและสะท้อนมุมมองที่เปลี่ยนแปลงไปในเรื่องนั้นๆ[ 70 ]

การกำหนดมาตรฐาน OSI

บทเรียนที่ได้จากARPANETซึ่งเป็นต้นแบบของอินเทอร์เน็ต คือ โปรโตคอลจำเป็นต้องมีกรอบการทำงานเพื่อใช้งาน ดังนั้นจึงเป็นสิ่งสำคัญที่จะต้องพัฒนากรอบการทำงานอเนกประสงค์ที่พร้อมรับมือกับอนาคต ซึ่งเหมาะสมสำหรับโปรโตคอลที่มีโครงสร้าง (เช่น โปรโตคอลแบบหลายชั้น) และการกำหนดมาตรฐานของโปรโตคอลเหล่านั้น ซึ่งจะช่วยป้องกันมาตรฐานโปรโตคอลที่มีฟังก์ชันการทำงานซ้ำซ้อน และจะช่วยให้สามารถกำหนดความรับผิดชอบของโปรโตคอลในระดับต่างๆ (ชั้น) ได้อย่างชัดเจน[ 72 ]สิ่งนี้ทำให้เกิดแบบจำลองการเชื่อมต่อระบบเปิด (แบบจำลอง OSI) ซึ่งใช้เป็นกรอบการทำงานสำหรับการออกแบบโปรโตคอลและบริการมาตรฐานที่สอดคล้องกับข้อกำหนดของแต่ละชั้น[ 73 ]

ในแบบจำลอง OSI ระบบการสื่อสารจะถือว่าเชื่อมต่อกันด้วยสื่อทางกายภาพพื้นฐานที่ให้กลไกการส่งข้อมูลพื้นฐาน ชั้นต่างๆ ที่อยู่เหนือกว่านั้นจะถูกกำหนดหมายเลข แต่ละชั้นจะให้บริการแก่ชั้นที่อยู่เหนือกว่าโดยใช้บริการของชั้นที่อยู่ต่ำกว่าทันที ชั้นบนสุดจะให้บริการแก่กระบวนการแอปพลิเคชัน ชั้นต่างๆ สื่อสารกันโดยใช้อินเทอร์เฟซที่เรียกว่าจุดเข้าถึงบริการชั้นที่สอดคล้องกันในแต่ละระบบเรียกว่าเอนทิตีแบบเพียร์ในการสื่อสาร เอนทิตีแบบเพียร์สองตัวในชั้นที่กำหนดจะใช้โปรโตคอลเฉพาะสำหรับชั้นนั้น ซึ่งถูกนำไปใช้โดยใช้บริการของชั้นที่อยู่ต่ำกว่า[ 74 ]สำหรับแต่ละชั้นจะมีมาตรฐานสองประเภท ได้แก่ มาตรฐานโปรโตคอลที่กำหนดวิธีการสื่อสารของเอนทิตีแบบเพียร์ในชั้นที่กำหนด และมาตรฐานบริการที่กำหนดวิธีการสื่อสารกับชั้นที่อยู่เหนือกว่า

ในแบบจำลอง OSI ชั้นต่างๆ และหน้าที่การทำงานของแต่ละชั้นเรียงจากชั้นสูงสุดไปชั้นต่ำสุดดังนี้:

  • ชั้นแอปพลิเคชันอาจให้บริการต่อไปนี้แก่กระบวนการแอปพลิเคชัน: การระบุคู่ค้าการสื่อสารที่ตั้งใจไว้ การสร้างอำนาจที่จำเป็นในการสื่อสาร การพิจารณาความพร้อมใช้งานและการตรวจสอบสิทธิ์ของคู่ค้า ข้อตกลงเกี่ยวกับกลไกความเป็นส่วนตัวสำหรับการสื่อสาร ข้อตกลงเกี่ยวกับความรับผิดชอบในการกู้คืนข้อผิดพลาดและขั้นตอนการรับรองความสมบูรณ์ของข้อมูลการซิงโครไนซ์ระหว่างกระบวนการแอปพลิเคชันที่ร่วมมือกัน การระบุข้อจำกัดใดๆ เกี่ยวกับไวยากรณ์ (เช่น ชุดอักขระและโครงสร้างข้อมูล) การกำหนดต้นทุนและคุณภาพการบริการที่ยอมรับได้ การเลือกวินัยการสนทนา รวมถึงขั้นตอนการเข้าสู่ระบบและออกจากระบบที่จำเป็น[ 75 ]
  • ชั้นการนำเสนออาจให้บริการต่อไปนี้แก่ชั้นแอปพลิเคชัน: การร้องขอการสร้างเซสชัน การถ่ายโอนข้อมูล การเจรจาไวยากรณ์ที่จะใช้ระหว่างชั้นแอปพลิเคชัน การแปลงไวยากรณ์ที่จำเป็น การจัดรูปแบบ และการแปลงเพื่อวัตถุประสงค์พิเศษ (เช่น การบีบอัดข้อมูลและการเข้ารหัสข้อมูล) [ 76 ]
  • เลเยอร์เซสชันอาจให้บริการต่อไปนี้แก่เลเยอร์การนำเสนอ: การสร้างและการยกเลิกการเชื่อมต่อเซสชัน การแลกเปลี่ยนข้อมูลปกติและเร่งด่วน บริการกักกันซึ่งอนุญาตให้เอนทิตีการนำเสนอที่ส่งสั่งการเอนทิตีเซสชันที่รับไม่ให้ปล่อยข้อมูลไปยังเอนทิตีการนำเสนอโดยไม่ได้รับอนุญาต การจัดการปฏิสัมพันธ์เพื่อให้เอนทิตีการนำเสนอสามารถควบคุมว่าใครจะเป็นผู้ดำเนินการฟังก์ชันควบคุมบางอย่าง การซิงโครไนซ์การเชื่อมต่อเซสชันใหม่ การรายงานข้อยกเว้นที่ไม่สามารถแก้ไขได้ไปยังเอนทิตีการนำเสนอ[ 77 ]
  • ชั้นการขนส่งให้การถ่ายโอนข้อมูลที่เชื่อถือได้และโปร่งใสในลักษณะที่คุ้มค่าตามที่ต้องการโดยคุณภาพการบริการที่เลือกไว้ อาจรองรับการรวมการเชื่อมต่อการขนส่งหลายรายการเข้ากับการเชื่อมต่อเครือข่ายเดียว หรือแบ่งการเชื่อมต่อการขนส่งหนึ่งรายการออกเป็นการเชื่อมต่อเครือข่ายหลายรายการ[ 78 ]
  • ชั้นเครือข่ายทำหน้าที่ตั้งค่า บำรุงรักษา และปล่อยเส้นทางเครือข่ายระหว่างเอนทิตีการขนส่ง เมื่อจำเป็นต้องใช้รีเลย์ ชั้นนี้จะทำหน้าที่กำหนดเส้นทางและรีเลย์ คุณภาพของบริการจะถูกเจรจาระหว่างเอนทิตีเครือข่ายและการขนส่งในขณะที่ตั้งค่าการเชื่อมต่อ ชั้นนี้ยังรับผิดชอบในการควบคุมความแออัดของเครือข่าย ด้วย [ 79 ]
  • ชั้นดาต้าลิงก์ทำหน้าที่ตั้งค่า บำรุงรักษา และปล่อยการเชื่อมต่อดาต้าลิงก์ ข้อผิดพลาดที่เกิดขึ้นในชั้นกายภาพจะถูกตรวจพบและอาจได้รับการแก้ไข ข้อผิดพลาดจะถูกรายงานไปยังชั้นเครือข่าย การแลกเปลี่ยนหน่วยดาต้าลิงก์ (รวมถึงการควบคุมการไหล) ถูกกำหนดโดยชั้นนี้[ 80 ]
  • ชั้นกายภาพอธิบายรายละเอียดต่างๆ เช่น คุณลักษณะทางไฟฟ้าของการเชื่อมต่อทางกายภาพ เทคนิคการส่งที่ใช้ และการตั้งค่า การบำรุงรักษา และการเคลียร์การเชื่อมต่อทางกายภาพ[ 81 ]

ตรงกันข้ามกับโครงสร้างเลเยอร์ของ TCP/IPซึ่งถือว่าเครือข่ายไม่มีการเชื่อมต่อ RM/OSI ถือว่าเครือข่ายมีการเชื่อมต่อ[ 82 ]เครือข่ายที่มีการเชื่อมต่อเหมาะสมกว่าสำหรับเครือข่ายบริเวณกว้าง และเครือข่ายที่ไม่มีการเชื่อมต่อเหมาะสมกว่าสำหรับเครือข่ายบริเวณท้องถิ่น การสื่อสารที่มีการเชื่อมต่อต้องการเซสชันและวงจร (เสมือน) บางรูปแบบ ดังนั้นจึงมีเลเยอร์เซสชัน (ซึ่งในโมเดล TCP/IP ขาดไป) สมาชิกที่เป็นส่วนประกอบของ ISO ส่วนใหญ่ให้ความสำคัญกับเครือข่ายบริเวณกว้าง ดังนั้นการพัฒนา RM/OSI จึงมุ่งเน้นไปที่เครือข่ายที่มีการเชื่อมต่อ และเครือข่ายที่ไม่มีการเชื่อมต่อถูกกล่าวถึงครั้งแรกในภาคผนวกของ RM/OSI [ 83 ] [ 84 ]และต่อมาได้รวมเข้ากับการอัปเดต RM/OSI [ 85 ]

ในขณะนั้นIETF ต้องรับมือกับเรื่องนี้และความจริงที่ว่าอินเทอร์เน็ตต้องการโปรโตคอลที่ไม่มีอยู่จริงส่งผลให้ IETF พัฒนากระบวนการกำหนดมาตรฐานของตนเองโดยอาศัย "ฉันทามติคร่าวๆ และรหัสที่ใช้งานอยู่" [ 86 ] กระบวนการกำหนดมาตรฐานนี้อธิบายไว้ในRFC 2026 

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

ภาพลวด

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

หากส่วนใดส่วนหนึ่งของภาพสายส่งไม่ได้รับการตรวจ สอบความถูกต้องทางการเข้ารหัสลับ ส่วน นั้นอาจถูกแก้ไขโดยฝ่ายกลาง (เช่น มิดเดิลบ็อกซ์ ) ซึ่งอาจส่งผลต่อการทำงานของโปรโตคอล[ 88 ]แม้ว่าจะได้รับการตรวจสอบความถูกต้องแล้ว หากส่วนใดส่วนหนึ่งไม่ได้รับการเข้ารหัส ส่วนนั้นจะกลายเป็นส่วนหนึ่งของภาพสายส่ง และฝ่ายกลางอาจเข้ามาแทรกแซงได้ขึ้นอยู่กับเนื้อหา (เช่น การทิ้งแพ็กเก็ตที่มีแฟล็กเฉพาะ) สัญญาณที่ตั้งใจให้ใช้งานโดยฝ่ายกลางอาจได้รับการตรวจสอบความถูกต้องแล้วแต่ไม่ได้เข้ารหัส[ 91 ]

ภาพเครือข่ายสามารถถูกออกแบบอย่างจงใจ โดยเข้ารหัสส่วนที่ตัวกลางไม่ควรสามารถสังเกตได้ และให้สัญญาณสำหรับสิ่งที่พวกเขาควรจะสามารถสังเกตได้[ 92 ]หากสัญญาณที่ให้มาถูกแยกออกจากการทำงานของโปรโตคอล อาจทำให้สัญญาณเหล่านั้นไม่น่าเชื่อถือ[ 93 ]การจัดการเครือข่ายและการวิจัยที่ดีได้รับผลกระทบจากการเข้ารหัสเมตาเดตา นักออกแบบโปรโตคอลต้องสร้างสมดุลระหว่างความสามารถในการสังเกตเพื่อการทำงานและการวิจัย กับความต้านทานต่อการแข็งตัวและความเป็นส่วนตัวของผู้ใช้ปลายทาง[ 90 ] IETF ประกาศในปี 2014 ว่าได้พิจารณาแล้วว่าการเฝ้าระวังการทำงานของโปรโตคอลในวงกว้างเป็นการโจมตีเนื่องจากความสามารถในการอนุมานข้อมูลจากภาพเครือข่ายเกี่ยวกับผู้ใช้และพฤติกรรมของพวกเขา[ 94 ]และ IETF จะ "ทำงานเพื่อลดการตรวจสอบอย่างแพร่หลาย" ในการออกแบบโปรโตคอล[ 95 ]ซึ่งก่อนหน้านี้ยังไม่เคยทำอย่างเป็นระบบ[ 95 ]คณะกรรมการสถาปัตยกรรมอินเทอร์เน็ตแนะนำในปี 2023 ว่าการเปิดเผยข้อมูลโดยโปรโตคอลไปยังเครือข่ายควรเป็นไปโดยเจตนา[ 96 ]ดำเนินการโดยได้รับความยินยอมจากทั้งผู้รับและผู้ส่ง[ 97 ]ได้รับการรับรองความถูกต้องในระดับที่เป็นไปได้และจำเป็น[ 98 ]ดำเนินการเฉพาะในระดับที่น่าเชื่อถือ[ 99 ]และลดให้น้อยที่สุดและให้บริการแก่หน่วยงานจำนวนน้อยที่สุด[ 100 ] [ 101 ]การออกแบบภาพสายและควบคุมสัญญาณที่ส่งไปยังองค์ประกอบเครือข่ายเป็น "สาขาที่กำลังพัฒนา" ในปี 2023 ตามที่ IAB ระบุ[ 102 ]

การสร้างกระดูก

การแข็งตัวของโปรโตคอลคือการสูญเสียความยืดหยุ่น ความสามารถในการขยายและความสามารถในการพัฒนาของโปรโตคอลเครือข่ายซึ่งส่วนใหญ่เกิดจากอุปกรณ์กลางที่ไวต่อภาพสายของโปรโตคอล และสามารถขัดจังหวะหรือแทรกแซงข้อความที่ถูกต้องแต่อุปกรณ์กลางไม่รู้จักอย่างถูกต้อง[ 103 ]นี่เป็นการละเมิดหลักการแบบend -to-end [ 104 ]สาเหตุรอง ได้แก่ ความไม่ยืดหยุ่นในการใช้งานโปรโตคอลที่ปลายทาง[ 105 ]

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

วิธีการที่แนะนำในการป้องกันการเกิดภาวะคงที่ ได้แก่การเข้ารหัสข้อมูลเมตาของโปรโตคอล[ 109 ]และการรับรองว่าจุดขยายจะถูกใช้งานและความแปรปรวนของภาพสายไฟจะแสดงออกมาอย่างเต็มที่[ 110 ]การแก้ไขภาวะคงที่ที่มีอยู่ต้องอาศัยการประสานงานระหว่างผู้เข้าร่วมโปรโตคอล[ 111 ] QUICเป็น โปรโตคอลการขนส่ง IETF ตัวแรก ที่ได้รับการออกแบบโดยตั้งใจให้มีคุณสมบัติป้องกันภาวะคงที่[ 87 ]

อนุกรมวิธาน

โดยทั่วไปแล้ว การจำแนกประเภทของโปรโตคอลมักเน้นที่ขอบเขตการใช้งานและหน้าที่การทำงาน ตัวอย่างเช่นโปรโตคอลแบบเชื่อมต่อ (connection-oriented protocols)และโปรโตคอลแบบไม่เชื่อมต่อ (connectionless protocols)ใช้ในเครือข่ายแบบเชื่อมต่อและเครือข่ายแบบไม่เชื่อมต่อตามลำดับ ส่วนตัวอย่างของหน้าที่การทำงานคือโปรโตคอลแบบอุโมงค์ (tunneling protocol ) ซึ่งใช้ในการห่อหุ้มแพ็กเก็ตในโปรโตคอลระดับสูง เพื่อให้สามารถส่งผ่านแพ็กเก็ตเหล่านั้นในระบบขนส่งโดยใช้โปรโตคอลระดับสูงได้

แผนผังการแบ่งชั้นจะรวมทั้งฟังก์ชันและขอบเขตการใช้งาน แผนผังการแบ่งชั้นที่โดดเด่นคือแผนผังที่พัฒนาโดย IETF และ ISO แม้ว่าสมมติฐานพื้นฐานของแผนผังการแบ่งชั้นจะแตกต่างกันมากพอที่จะต้องแยกแยะทั้งสอง แต่โดยทั่วไปแล้วมักจะเปรียบเทียบทั้งสองโดยการเชื่อมโยงโปรโตคอลทั่วไปกับชั้นของแผนผังทั้งสอง[ 112 ]แผนผังการแบ่งชั้นจาก IETF เรียกว่าการแบ่งชั้นอินเทอร์เน็ตหรือการแบ่งชั้น TCP/IPแผนผังการแบ่งชั้นจาก ISO เรียกว่าโมเดล OSIหรือ การ แบ่งชั้น ISO

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

ดูเพิ่มเติม

หมายเหตุ

  1. การไม่ได้รับการยืนยันการรับข้อมูลแสดงว่าการส่งข้อมูลต้นฉบับหรือการยืนยันการรับข้อมูลสูญหาย ผู้ส่งไม่มีวิธีแยกแยะกรณีเหล่านี้ได้ ดังนั้น เพื่อให้แน่ใจว่าได้รับข้อมูลทั้งหมด ผู้ส่งจึงต้องตั้งสมมติฐานแบบอนุรักษ์นิยมว่าการส่งข้อมูลต้นฉบับสูญหาย
  • พจนานุกรมโปรโตคอลของ Javvin ที่Wayback Machine (เก็บถาวรเมื่อ 10 มิถุนายน 2004)
  • ภาพรวมของโปรโตคอลในด้านการควบคุมระยะไกล พร้อมด้วยแบบจำลองอ้างอิง OSI

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไม่มีชื่อบทความ

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

ประวัติศาสตร์

การใช้คำว่า โปรโตคอล ในบริบทการสื่อสารข้อมูลสมัยใหม่ครั้งแรกเกิดขึ้นในเดือนเมษายน พ.ศ.

แนวคิด

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

การเข้ารหัสข้อความ

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