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

อ่าน 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
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Communication_protocol&oldid=1360928587 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ โปรโตคอลการสื่อสาร

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

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

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

แนวคิด

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

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

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