วันเสาร์ที่ 8 ธันวาคม พ.ศ. 2555

แบบทดสอบหลังเรียนบทที่1

แบบทดสอบก่อนเรียนบทที่ 1

บทที่ 5 โปรโตคอล(Protocols)


บทที่ 5 โปรโตคอล (Protocols)

Transmission Control Profocol/Internet Protocol (TCP/IP) 

ความรู้เบื้องต้น เกี่ยวกับ TCP/IP
             โปรโตคอล TCP/IP เป็นชุดของโปรโตคอลที่มีการพัฒนามาตั้งแต่ปี 1960 โดยมีวัตถุประสงค์ให้สามารถใช้สื่อสารจากต้นทางข้ามเน็ตเวิร์กไปยังปลายทางได้ และสามารถหาเส้นทางที่จะส่งข้อมูลไปได้เองโดยอัตโนมัติ ถึงแม้ว่าในระหว่างทางอาจจะผ่านเน็ตเวิร์กที่มีปัญหาโปรโตคอลที่ยังคงหาเส้นทางส่งผ่านข้อมูลไปให้ถึงปลายทางได้ ในระยะเริ่มต้นโปรโตคอลนี้ใช้กันในวงแคบ ๆ เฉพาะราชการและสถานศึกษาของอเมริกาจนในช่วงปี 90 จึงมีการนำมาใช้ในทางธุรกิจและเป็นจุดเริ่มต้นของอินเทอร์เน็ตในปัจจุบันผมคิดว่าประวัติโดยส่วนใหญ่ของโปรโตคอลนี้คงมีอยู่ในหนังสือที่เกี่ยวข้องกับอินเทอร์เน็ตจำนวนหลายเล่มแล้วก็คงอนุญาตละไว้เพื่อให้เข้าสู่จุดมุ่งหมายของหนังสือฉบับนี้ได้อย่างรวดเร็วจากที่กล่าวมาข้างต้นจะเห็นได้ว่า TCP/IP นี้มีการออกแบบมาเป็นเวลานาน มาตั้งแต่ปี 1960 ก็มีการใช้ไปปรับปรุงอยู่เรื่อย ๆ เพื่อให้สามารถใช้งานได้หลากหลายและมีประสิทธิภาพมากขึ้นแต่อย่างไรก็ตามโปรโตคอลนี้ก็ยังคงมีจุดบกพร่องอีกมากมายซึ่งจุดบกพร่องเหล่านี้บางส่วนก็มิได้มีผลกระทบรุนแรงเท่าไหร่นักในมุมมองของนักคอมพิวเตอร์โดยทั่วไปแต่กลับกลายเป็นเครื่องมืออันทรงอานุภาพของบรรดาเหล่าแฮกเกอร์ทั้งหลายที่หยิบฉวยข้อบกพร่องเหล่านี้มาใช้ในการโจมตีผู้อื่นโดยเฉพาะการโจมตีแบบ Dos นั้นล้วนแต่ใช้ข้อบกพร่องของ TCP/IP แทบทั้งสิ้นการศึกษาโปรโตคอลนี้ตามปกติที่ทำกันทั่วไป
อาจไม่เพียงพอที่จะทำให้รู้เท่าทันกลวิธีของแฮกเกอร์และป้องกันตนเองได้ดังนั้นสิ่งที่เราจำเป็นต้องศึกษาควบคู่กันไปกับวิธีการใช้งานโปรโตคอลก็คือข้อบกพร่องของโปรโตคอลคืออะไรมีผลกระทบอย่างไรและสามารถป้องกันตัวเองได้อย่างไรอย่างไรก็ตามก่อนที่จะศึกษาเรื่อง IDS เราจำเป็นต้องเริ่มศึกษาโปรโตคอล TCP/IP อย่างละเอียดถี่ถ้วยเสียก่อนเพื่อเป็นพื้นฐานในการทำความเข้าใจเนื้อหาที่มีความซับซ้อนในภายหลังในการแบ่งชั้น Layering TCP/IP เป็นชุดของโปรโตคอลที่ประกอบด้วยโปรโตคอลย่อยหลายตัวโดยแต่ละตัวจะทำหน้าที่ในแต่ละชั้นหรือเลเยอร์ layer ซึ่งรับผิดชอบและแปลความหมายของข้อมูลในแต่ละระดับของการสื่อสาร ซึ่งในภาพรวมแล้ว TCP/IPแบ่งออกเป็น 4 เลเยอร์ ดังรูป
TCP/IP Layer
link Layer
ในเลเยอร์นี้จะเป็นดีไวซ์ไดรเวอร์ที่ทำงานอยู่บนระบบปฏิบัติการแต่ละระบบทำหน้าที่รับผิดชอบ
ในการรับส่งสัญญาณไฟฟ้าจนเป็นข้อมูลทางคอมพิวเตอร์ โปรโตคอลระดับนี้ เช่น Ethernet และ SLIP
(Serial Line Internet Protocol) Network Layer รับผิดชอบในการรับส่งข้อมูลในเน็ตเวิร์กส่งต่อข้อมูล
ไปจนถึงจุดหมายปลายทางโปรโตคอลระดับนี้ได้แก่ IP,ICMP,IGMP Transport Layer รับผิดชอบในการรับส่งข้อมูลระหว่างเครื่องหนึ่ง (Host) ไปยังอักโฮสต์หหนึ่งจะส่งข้อมูลไปให้ Application Layer นำไปใช้งานต่อ มีโปรโตคอลที่จัดอยู่ในเลเยอร์นี้ คือ TCP และ UDPซึ่งมีลักษณะในการรับส่งข้อมูลที่แตกต่างกันออกไป Application Layer เป็นเลเยอร์ที่แอพพลิเคชั่นเรียกใช้โปรโตคอลระดับล่าง ๆ ลงไปเพื่อวัตถุประสงค์ที่แตกต่างกัน เช่น 
FTP (File Transfer Protocol) ใช้สำหรับรับส่งแฟ้มข้อมูลระหว่างโฮสต์
SMTP (Simple Mail Transfer Protocol) ใช้รับส่งจดหมายอิเล็กทรอนิคส์ระหว่างโฮสต์
Telnet ใช้สำหรับการควบคุมเครื่องระยะไกล
HTTP (Hypertext Transfer Protocol)เป็นโปรโตคอลที่ใช้รับส่งข้อมูลเว็บเพจระหว่างบราวเซอร์และเว็บเซิร์ฟเวอร์ 
POP (Post Office Protocol) ใช้สำหรับดาวน์โหลดอีเมล์จากเมล์เซิร์ฟเวอร์มาไว้ที่เครื่องเมล์ไคลเอนต์(PC) ของผู้ใช้

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

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

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

TCP/IP Layering
ในชุดของโปโตคอล TCP/IP ประกอบด้วยโปรโตคอลหลายตัวทำงานร่วมกันในเลเยอร์ต่างๆและมีหน้าที่ แตกต่างกันออกไปแสดงให้เห็นถึงโปรโตคอลในแต่ละเลเยอร์ที่เมื่อรวมกันเป็นชุมของ TCP/IP ซึ่งตัวหลักในภาพก็คือ TCP อยู่ในทราบสปอร์ตเลเยอร์ทำหน้าที่จัดการและควบคุมการรับส่งข้อมูลให้มีเสถียรภาพและเชื่อถือได้โดยปล่อยหน้าที่นี้ให้กับแอพพลิเคชั่นเลเยอร์เป็นผู้ทำหน้าที่นี้แทน UDP อยู่ในสปอร์ตเลเยอร์ ทำหน้าที่จัดการและควบคุมการรับส่งข้อมูลเช่นเดียวกันแต่ไม่มีกลไกการรับส่งที่มีเสถียรภาพและเชื่อถือได้ โดยปล่อยหน้าที่นี้ให้กับแอพพลิเคชั่นเลเยอร์เป็นผู้ทำหน้าที่นี้แทน
เลเยอร์ของโปรโตคอลต่าง ๆ ในชุด TCP/IP Suite
IP
อยู่ในเน็ตเวิร์กเลเยอร์เป็นโปรโตคอลหลักในการสื่อสารข้อมูลซึ่งกลไกสำคัญที่ทำให้ข้อมูลสามารถเคลื่อนที่ไปยังปลายทางได้ก็คือโปรโตคอล IP นั้นเอง ICMP (Internet Control Message Protocol) อยู่ในเน็ตเวิร์กเลเยอร์ทำหน้าที่เสริมให้การทำงานของ IP ให้สมบูรณ์ โดยจะเป็นโปรโตคอลที่คอยส่งข่าวสารและแจ้งความผิดพลาดให้แก่ IP แต่ในบางโอกาสแอพพลิแคชั่นเลยเยอร์ก็เรียกใช้ ICMP โดยตรงเพื่อใช้ประโยชน์จากความสามารถของ ICMP ด้วยเช่นกัน IGMP (Internet Group Mangement Protocol) อยู่ในเน็ตเวิร์กเลเยอร์ ทำหน้าที่ในการส่ง UDP ดาต้าแกรมไปยังกลุ่มของโฮสต์ หรือโฮสต์หลาย ๆ ตัวพร้อมกัน ARP (Address Reservation Protocol) อยู่ในลิงค์เลเยอร์ ทำหน้าที่เปลี่ยนระหว่างแอดเดรสที่ใช้โดย IP ให้เป็นแอดเดรสของ Network Interface RATP (Reverse ARP) อยู่ในลิงค์เลเยอร์เช่นกัน แต่ทำหน้าที่กลับกันกับ ARP คือ เปลี่ยนระหว่างแอดเดรส ของ
Network Interface ให้เป็นแอดเดรสที่ใช้โดย IP

Internet Address
ทุกอินเทอร์เน็ตทีต่อยู่บนอินทอร์เน็ตจะต้องมีหมายเลขประจำตัวเพื่อใช้ในการสื่อสาร ข้อมูล เรียกว่า
Internet Address หรือเรียกย่อๆว่า IPAddressโดยค่า IPAddress นี้จะเป็นหมายเลขจำนวน 32 บิตแต่แทนที่จะกำหนดให้เลขทั้ง 32 บิต นั้นถูกนับต่อเนื่องกันไป ตั้งแต่ 0 - 2 ก็ใช้วิธีการแบ่งหมายเลขดังกล่าวออกเป็นกลุ่มของเลขขนาด 8 บิต จำนวน 4 ชุด และคั่นแต่ละชุดด้วยจุด ตัวอย่างเช่น 192.168.13.201นอกจากนั้นใน IP Address นั้นถูกแบ่งออกเป็น 2 ส่วน คือ ส่วนที่เป็นแอดเดรสของเน็ตเวิร์ก (Network ID)และส่วนที่เป็นแอดเดรสของโฮสต์ (Host ID) ซึ่งข้อมูลในส่วนนี้จะถูกใช้สำหรับค้นหาเส้นทางของ IP ในการที่จะขนส่งข้อมูลจากต้นทางให้ถึงปลายทางอย่างถูกต้องเพื่อเป็นการกำหนดขนาดของเน็ตเวิร์ก
สำหรับ IP Address ต่าง ๆ ดังนั้นจึงมีการจัด IP Address ในแต่ละช่วงออกเป็นคลาส ต่าง ๆ กันจาก A ถึง E เพื่อจะได้ทำการจัดสรร IP Address ได้อย่างเหมาะสมกับขนาดของเน็ตเวิร์ก
การกำหนดแอดเดรสสำหรับคลาสต่าง ๆ
แสดงช่วงของ IP Address แต่ละคลาส
Encapsulation
            การ Encapsulation คือการนำข้อมูลที่ต้องการส่งมาประกอบรวมกับข้อมูลที่เป็นส่วนควบคุมของโปรโตคอลโดยข้อมูลส่วนที่เป็นส่วนควบคุมนั้นจะถูกนำมาไว้ในส่วนหัวข้อของข้อมูลเรียกว่าเฮดเดอร์ (header)ซึ่งในการรับข้อมูลนั้นผู้รับข้อมูลจะได้รับเฮดเดอร์ก่อนจากนั้นก็นำเฮดเดอร์ไปแปลและทราบว่าข้อมูลที่ตามมานั้นมีลักษณะอย่างไรจะได้จัดการได้อย่างถูกต้อง ภายในเฮดเดอร์ของโปรโตคอลส่วนใหญ่จะประกอบด้วยข้อมูลหลักที่สำคัญของโปรโตคอลที่ทำการ Encapsulate มาคือแอดเดรสต้นทาง, แอดเดรสปลายทาง , ความยาวข้อมูล, รหัสตรวจสอบความผิดพลาดข้อมูลซึ่งสิ่งที่จะต้องเน้นให้เห็นชัดคือ จะมีข้อมูลสำคัญเฉพาะโปรโตคอลที่ทำการ Encapsulation มาเท่านั้น ตัวอย่างเช่น การ Encapsulate ของ Ethernet ก็จะมีการระบุ Ethernet address ลงในเฮดเดอร์เท่านั้นจะไม่มีการบรรจุ IP address ลงมาใน Ethernet Header ด้วยแต่อย่างใด เพราะในเลเยอร์ของ Ethernet จะไม่รู้จัก IP Address หรือรหัสควบคุมใด ๆ ของ IP (จริง ๆ แล้ว Ethernt ไม่รู้ด้วยซ้ำว่าข้อมูลที่จะส่งนั้นเป็นโปรโตคอลอะไรดาต้าแกรมของ IP จะถูกตีค่าว่าเป็นข้อมูลก้อนเดียวกันสำหรับ Ethernet เท่านั้น
การ Encapsulation ข้อมูลผ่านชั้นของโปรโตคอลแต่ละระดับ
ในการับส่งข้อมูลนั้นข้อมูลที่รับส่งกันจริงๆบนเน็ตเวิร์กนั้นจะประกอบด้วย 2 ส่วนคือข้อมูลจริงกับข้อมูลของโปรโตคอลเปรียบเสมือนการส่งจดหมายซึ่งจะต้องประกอบด้วยเนื้อความในจดหมายและซองจดหมายที่เขียนที่อยู่ติดแสตมป์ถ้ามีแต่จดหมายอย่างเดียวไปรษณีย์ก็คงต้องอ่านเองเพราะไม่รู้ว่าเราจะส่งให้ใคร การ Encapsulate ก็คือการเอาจดหมายมาใส่ซองนั้นเองโดยซองจะเปรียบเสมือนข้อมูลที่ใช้ในการรับส่งข้อมูลของโปรโตคอลนั้น 1 โปรโตคอลก็กจะใส่ 1 ซอง ถ้าข้อมูลต้องส่งผ่านหลายเลเยอร์ จำนวนซองก็จะถูกใส่เพิ่มหลายชั้นตามลำดับการ Encapsulate นั้นเองดังนั้นถ้าเราจะส่งข้อมูลผ่านโปรโตคอล TCP ข้อมูลเราก็จะถูกใส่ซองตามลำดับดังนี้
ลำดับที่ 1 ซอง TCP
ลำดับที่ 1 ซอง IP
ลำดับที่ 1 ซอง Ethernet
และฝ่ายรับข้อมูลก็จะต้องแกะซองออกตามลำดับ โดยต้องแกะซอง Ethernet ก่อนแล้วจะเจอซอง IPแกะซอง IP จะเจอซอง TC Pแกะซอง TCP ก็จะเจอข้อมูลที่ต้องการการ Encapsulateในแต่ละระดับก็จะมีการเรียกข้อมูลที่อยู่ในซองแตกต่างกันออกไป ข้อมูลทำการ Encapsulate เรียบร้อย แล้วจาก TCP ส่งไปยัง IP เรียกว่า TCPSegment ในระดับ IP ก็จะถือว่า TCP Segment เป็นข้อมูลทั้งชุด เมื่อไปรวมกับ IP Header ส่งไปยัง เลเยอร์ Datalink จะเรียกว่า IPDatagram ในระดับ Datalink เมื่อส่งลงไปจะนำ IPDatagram                    มาใส่ซองขนาดของข้อมูลทั้งหมดเราจะเรียกว่า EthernetFrame จากรูปจะเห็นว่าบางครั้งข้อมูลเรามีอยู่เพียงเล็กน้อยแต่กว่าที่เราจะส่งข้อมูลไปถึงปลายทางได้จะมีข้อมูลของเฮดเดอร์ของโปรโตคอลเกาะติดไปด้วยเสมอเช่นเดียวกับที่บางครั้งเราได้รับของขวัญที่กล่องใหญ่ห่อหลายชั้น แต่พอเปิดไปข้างในอาจจะมีเพียงช็อคโกแลตแท่งเดียว เป็นต้น ซึ่งก็เป็นได้บางครั้งอาจจะดูสิ้นเปลืองแต่การที่ต้องใส่ของหลายชั้นแล้วส่ง ที่หมายดีกว่าประหยัดซองแต่จดหมายไปถึงสำหรับในการสื่อสารข้อมูลไม่มีซองของจริงๆให้สิ้นเปลืองแต่ทรัพยากรที่เราสิ้นเปลืองไปก็คือแบนด์วิดธ์ที่เราอาจใช้งานได้ไม่เต็มประสิทธิภาพเท่าที่ควรเนื่องจากทุกแพ็กเก็ตของข้อมูลจะต้องเสียส่วนหนึ่งไปเป็นเฮดเดอร์เสมออาจสังเกตได้ง่าย ๆ ว่าในขณะที่โมเด็มต่อกับอินเทอร์เน็ตด้วยอัตราการรับส่งข้อมูล 56 Kbps แต่ความเร็วที่เราดาวน์โหลดไฟล์ถึงได้สูงสุดต่ำกว่านั้นมากเช่น 30Kbps สาเหตุก็เนื่องมาจากการที่มีเฮดเดอร์โปรโตคอลรวมอยู่กับข้อมูลจริงอยู่ด้วย ทำให้ต้องเสียแบนด์วิดธ์ไปส่วนหนึ่งเพื่อการนี้
Dumultiplexing
ในหัวข้อที่ผ่านมาได้กล่าวถึงการ Encapsulation ไปแล้ว Demultiplexing คือกระบวนการย้อนหลังของการ
Encapsulation นั่นเองหากกระบวนการ Encapsulation คือการนำข้อมูลมาใส่ของที่ละชั้นตามเลเยอร์ที่ส่งไปการ Demultiplexing ก็คือการรับซองข้อมูลที่ปิดผนึกใส่ซองมาอย่างมิดชิด เพื่อทำการแกะออกที่ละขั้นตามเลเยอร์จนถึงเลเยอร์สุดคือ แอพพลิเคชั่นเลเยอร์ จึงได้ข้อมูลเนื้อความจริง ๆที่ต้องการสื่อสารกันในการ Demultiplexing นั้นแต่ละเลเยอร์จะนำข้อมูลมารวมกันให้ครบตามขนาดที่ต้องการเช่น 1 เฟรมในระดับ Ethernet 1 Datagram ในระดับ IP และ 1 Segment ในระดับ TCP และในแต่ละเลเยอร์ก็จะทำการถอดเฮดเดอร์ซึ่งเปรียบเสมือนซองออกแล้วส่ง่อขึ้นไปบนเลเยอร์ที่สูงกว่า ซึ่งในที่สุดเลเยอร์สุดท้ายก็จะได้รับเฉพาะข้อมูลเท่านั้น และเฮดเดอร์ถูกถอดออกไปหมดการ Demultiplex และ Encapsulate เป็นสิ่งคู่กันและสอดคล้องกัน อุปกรณ์ที่จะสื่อสาร บนเน็ตเวิร์กได้จะต้องมีทั้งส่วนที่ทำหน้าที่ทั้งสอง โดยการ Demultiplexing ใช้ในตอนที่รับข้อมูลจากเน็ตเวิร์ก และการ Encapsulateใช้ในตอบที่จะทำการส่งข้อมูลอยู่ในทุกเลเยอร์ของโปรโตคอล

Port Number
จากเลเยอร์ที่แสดงในภาพจะเห็นว่าเลเยอร์บนสุดของ TCP/IP คือ แอพพลิเคชั่น เลเยอร์ สิ่งหนึ่งที่เรา
สามารถสังเกตเห็นได้ว่าข้อมูลทั้งหมดทุก ๆ เซกเมนต์จะต้องผ่านเลเยอร์นี้ก็เพราะแอพพลิเคชั่นเลเยอร์
จะครอบคลุมทั้งหมด ดังนั้นจะเกิดอะไรขึ้นถ้ามีหลายแอพพลิเคชั่นต่างก็ต้องการรับส่งข้อมูลผ่านTCP/IP แต่ละแดพพลิเคชั่นจะสามารถแยกแยะได้อย่างไรในความเป็นจริงที่ใช้งานปัจจุบันเองก็มีอยู่มากที่มีแอพพลิเคชั่นมากกว่า 1 แอพพลิเคชั่นที่ทำงานอยู่ภายในเครื่องเดียวกันเช่นในเซิร์ฟเวอร์เครื่องเดียวอาจจะเป็นทั้ง FTP server .Web server และ Mail server นอกจากนี้อาจจะมีการบริการอื่น ๆ บน TCP/IP ที่ซ่อนอยู่โดยที่เราอาจไม่ทราบเช่น NetBios เป็นต้นพอร์ต (port) จะเป็นปัญหาของคำถามข้างต้นในโปรโตคอล TCP/IP ได้ถูกออกแบบให้ มีหมายเลขพอร์ตอยู่ในเฮดเดอร์เพื่อระบุว่าข้อมูลแซกเมนต์นี้เป็นของแอพพลิเคชั่นอะไรในโฮสต์นั้นแอพพลิเคชั่นแต่ละตัวที่ให้บริการอยู่ในเครื่องต่างจะมีหมายเลขพอร์ตประจำตัวเพื่อจะสามารถเลือกนำข้อมูลมาใช้ว่าเป็นของแอพพลิเคชั่นตนเองหรือไม่หมายเลขพอร์ตที่เรารู้จักกันดีและใช้เป็นมาตรฐาน ได้แก่พอร์ต 20,21 เป็นของ FTP,พอร์ต 23Telnet. พอร์ต 25SMTP,พอร์ต 30 HTTP เป็นต้นสำหรับรายละเอียดว่าพอร์ตใดสำหรับแอพพลิเคชั่นเปิดดูได้ในภาคผนวกท้ายเล่ม โดยทั่วไปหมายเลขพอร์ตจะมีความสำคัญกับฝั่งของเซิร์ฟเวอร์เท่านั้น เนื่องจากแอพพลิเคชั่นฝั่งเซิร์ฟเวอร์จะต้องคอยรอรับการรีเควสท์ หรือขอรับบริการจากไคลแอนต์ที่พอร์ตเดิมเสมอ ส่วนในฝั่งไคลแอนต์เองหมายเลขพอร์ตไม่จำเป็นต้องเป็นหมายเลขที่ตายตัว และคงที่ เพราะหมายเลขพอร์ตจะเป็นการสุ่มเลขขึ้นมาใช้ชั่วคราว และจะมีการเรียกใช้พอร์ตใหม่ทุกครั้งที่มีการรับส่งข้อมูลเซสชั่น ใหม่

Reserved Port
ในระบบปฏิบัติการ Unix มีการสงวนพอร์ตบางส่วนไว้ให้สำหรับโพรเซสที่มีสิทธิพิเศษของ Super user เท่านั้นที่สามารถใช้พอร์ตในช่วง 1 - 2023 ได้แต่สำหรับ Windows NT มิได้สงวนไว้แต่อย่างใด ในบางครั้งหากท่านผู้อ่านพบคำว่า Unix Reserved Port ก็ให้เข้าใจว่าหมายถึงพอร์ต 1 - 2023 นั้นเองทั้ง TCP และ UDP ต่างก็ใช้งานพอร์ตในลักษณะเดียวกันคือใช้ระบุแอพพลิเคชั่นหมายเลขพอร์ตที่สามารถระบุได้จะเป็นข้อมูลขนาด 16 บิตนั่นหมายความว่าเราสามารถมีพอร์ตที่สามารถใช้งานได้ทั้งสิ้น = 65535 พอร์ต ในแต่ละโปรโตคอล ดังนั้นจำนวนพอร์ตทั้งหมดนี้สามารถใช้งานในเครื่องเราได้เมื่อใช้โปรโตคอล TCP/IP คือ 128K นั่นเองโดยเป็นของ TCP=65K และของ UDP อีก 64K สำหรับการกำหนดพอร์ตเพื่อใช้ในการรับส่งข้อมูลจะกล่าวถึงอย่างละเอียดในเรื่องต่อไป


Transmission Control Protocol (TCP)

TCP : Transmission Control Protocol
TCP เป็นโปรโตคอลที่ต่างจากโปรโตคอลอื่นที่กล่าวถึงในบทก่อนหน้านี้ จะเห็นได้ว่าโปรโตคอลในระดับ IP
หรือแม้กระทั่ง UDP จะสนใจข้อมูลเพียง ดาต้าแกรมกลไกของโปรโตคอลจะมีหน้าที่ตรวจสอบความถูกต้อง
เพียงเฉพาะดาต้าแกรมนั้นๆอย่างเดียวเมื่อจะทำการส่งดาต้าแกรมใหม่ ก็จะถือว่าเป็นข้อมูลชุดใหม่ที่ไม่มี
ความสัมพันธ์ใด ๆกับข้อมูลดาต้าแกรมอื่น (การสื่อสาร 1 ครั้ง จึงใช้เพียง 1 ดาต้าแกรมแต่สำหรับ TCP                    แล้ว
จะเห็นว่าข้อมูลนั้นเป็น stream คือมีความสัมพันธ์ต่อเนื่องกันมีกลไกในการตรวจสอบทั้งด้านส่งและด้านรับเพื่อ
ให้แน่ใจว่าทั้ง 2 ฝั่งมีความพร้อมและสามารถสื่อสารกันได้จริงจึงมีการส่งรับข้อมูลเกิดขึ้นจนมีการรับส่งข้อมูล
แล้วก็จะมีการยืนยันความถูกต้องทุกครั้งของการสื่อสารเพื่อรับประกันว่าข้อมูลที่รับ - ส่งนั้นถูกต้องตรงกันทั้ง 2
ฝ่าย ด้วยลักษณะเช่นนี้ การสื่อสารด้วย TCP จึงเสมือนว่าทั้ง2ฝ่ายคือฝ่ายรับและฝ่ายส่งได้ทำการต่อสาย
เน็ตเวิร์กถึงกัน (connected) ตลอดเวลาที่การรับ-ส่งข้อมูลจนกระทั่งการสื่อสารทั้งหมดเสร็จสิ้นจึงทำรายการ
ยกเลิกการเชื่อมต่อนั้นเสียด้วยกลไกที่กล่าวข้างต้น TCP จึงจำเป็นต้องใช้ IP ดาต้าแกรมมากกว่า 1 ดาต้าแกรมในการรับส่งแต่ละครั้งรวมทั้งการมี TCP เฮดเดอร์ที่ทำงานสัมพันธ์กันเพื่อควบคุมการสื่อสารทั้งฝ่าย
รับฝ่ายส่งและในแต่ละ IP ดาต้าแกรมที่ใช้ควบคุมนั้นก็จะมีจังหวะและขั้นตอนในการส่งที่แน่นอนและสัมพันธ์
กันด้วย ดังกล่าวโดยละเอียดต่อไป
TCP Services
จุดเด่นประการสำคัญของ TCP ที่กล่าวถึงอยู่เสมอคือ ความมีเสถียรภาพและความถูกต้องของการสื่อสารซึ่งมี
ความเชื่อถือได้สูง
คุณสมบัติที่ทำให้ TCP มีข้อดีดังกล่าวคือ
1. ข้อมูลที่จะส่งผ่าน TCP จะถูกนำมาแตกย่อยออกเป็นส่วน ๆ ให้มีขนาดเหมาะสมสำหรับการส่ง โดย TCP จะเป็นตัวพิจารณาว่าขนาดเท่าใดจะทำให้การรับ - ส่งนั้นมีประสิทธิภาพและน่าเชื่อถือสูงสุดโดยข้อมูลแต่ละชุด
ที่แบ่งออกและทำการส่งโดย TCP แต่ละครั้งจะเรียกว่า TCP เซกเมนต์ ต่างกับ UDP ที่แอพพลิเคชั่นจะเป็นผู้กำหนดว่า
ขนาดของข้อมูลที่จะส่งมีขนาดเท่าใด และไม่มีข้อจำกัดตราบเท่าที่ไม่เกินขนาดของ UDP ดาต้าแกรม(64 k) แอพพลิเคชั่นต้องเป็นผู้ระบุขนาดของข้อมูลเองซึ่งอาจจะไม่เหมาะสมสำหรับการส่งก็ได้ เช่น หากขนาดเล็กเกินไป
ก็จะทำให้ประสิทธิภาพในการส่งลดลงเพราะจะต้องเสีย overhead เป็นสัดส่วนที่สูงเมื่อเทียบกับขนาดของข้อมูล
หรือหาขนาดของข้อมูลใหญ่เกินไปก็จะทำให้ IP ซึ่งอยู่เลเยอร์ต่ำลงไปไม่สามารถจัดส่งได้ใน IP ดาต้าแกรมเดียว และมีผลให้ถูกแฟรกเมนต์ออกเป็นส่วนเล็ก ๆ อีกเช่นกัน TCP Segment กับ MSS (Maximum Segment Size)
เหตุผลอีกประการหนึ่งที่ทำให้การกำหนด TCP เซกเมนต์มีข้อดีคือโดยทั่วไปการกำหนดขนาดของข้อมูล
ที่จะทำการส่งอย่างมีประสิทธิภาพนั้นมีปัจจัยที่สำคัญ คือ สื่อกลางในการสื่อสารอยู่เลเยอร์ต่ำลงไปเกินกว่า
ที่แอพพลิเคชั่นสามารถควบคุมได้ ยกตัวอย่างเช่น ในระดับ Datalink Layer ที่แตกต่างกันอย่าง Ethernetกับ
Token ring ก็จะมีขนาดของ MTU (Maximum TransferUnit) ซึ่งแตกต่างกันดังนั้นหากให้แอพพลิเคชั่น
เป็นตัวกำหนดขนาดของข้อมูลก็อาจจะทำให้ใช้ได้ผลดีเฉพาะกับ Network แบบหนึ่งแต่หาก Datalink Layer
เปลี่ยนไปก็จะเกิดปัญหาขึ้นได้ TCP มีกลไกลดปัญหาเหล่านี้โดยจะมีการสอบถามขนาดของข้อมูลที่เหมาะสม
ที่เรียกว่าMSS (Maximum Segment Size) ก่อนเริ่มส่งข้อมูล เพื่อให้ปลายทางตอบกลับมาได้ว่าสามารถที่จะทำ
การรับส่งข้อมูลในขนาดของ MSS ได้โดยไม่ต้องทำการแฟรกเมนต์หรือไม่ หากปลายทางเห็นว่าไม่สามารถ
จะทำได้ก็จะส่งค่า MSS กลับมาให้ในขนาดที่ลดลง จึงเริ่มทำการรับส่งข้อมูลที่ขนาด Segment เท่ากับ MSS
ที่ตกลงกันได้ทั้ง 2 ฝ่ายโดยทั่วไปค่า MSS จะเท่ากับขนาดของ MTU - IP Header - TCP Header ซึ่งก็คือ
ขนาดของ MTU - 40 นั่นเอง โดยค่า default จะเท่ากับ 536 ไบต์ สำหรับการส่งผ่านเน็ตเวิร์กที่ไม่ใช่
Local Network (ทำให้ขนาดของ IP Datagram ทั้งหมดจะเท่ากับ 576 ไบต์คือ 20 ไบต์ สำหรับ IP Header, 20 ไบต ์สำหรับ TCP Header, 536 ไบต์สำหรับ TCP Data)
2. ในการส่งข้อมูลแต่ละครั้งของ TCP จะมีการจับเวลาไว้เสมอเพื่อรอให้อีกฝั่งหนึ่งตอบยืนยันการรับข้อมูล
กลับมาหากถึงเวลากำหนดที่ข้อมูลควรจะถึงปลายทางและตอบยืนยันกลับมาแต่ยังไม่มีการตอบกลับTCP จะถือว่าข้อมูลที่ส่งไปนั้นไม่ถึงปลายทางและจำทำการส่งข้อมูลซ้อนหรือยกเลิกการติดต่อ ฯลฯ ซึ่งด้วยกลไกนี้
จะทำให้การรับ - ส่งข้อมูลทุกครั้งแอพพลิเคชั่นสามารถทราบได้ว่าข้อมูลถึงปลายทางหรือไม่อย่างแน่นอน
ไม่มีข้อมูลใด ๆ ที่ส่งผ่าน TCP แล้วไม่ทราบสถานะของการส่งครั้งนั้น
3. ทุก ๆ ครั้งที่ TCP ได้รรับข้อมูลจากอีกฝั่งหนึ่งจะต้องทำการตอบยืนยันกลับไปยังผู้ส่งเสมอซึ่งจะสอดคล้องกับ
ข้อ 2 กล่าวคือหากไม่มีการตอบรับก็จะถือว่าปลายทางไม่ได้รับข้อมูล
4. TCP มี checksum ซึ่งจะครอบคลุมทั้ง TCP Header และ TCP Data เพื่อเป็นการป้องกันและตรวจสอบว่า
ข้อมูลที่ส่งมานั้นถูกต้อง และไม่ได้ถูกแก้ไขระหว่างทางไม่ได้รับข้อมูล ได้รับ ข้อมูลที่ทำการตรวจสอบกับ checksum แล้วปรากฎว่ามีความผิดพลาดเกิดขึ้น TCP จะทิ้งข้อมูลที่ได้รับและจำไม่ทำการตอบรับ ข้อมูลนั้นกลับไปยังผู้ส่ง คือถือเสมือนว่าไม่ได้รับข้อมูลนั้น เพื่อให้ทางฝ่ายส่งทำการส่งใหม่หรือหาข้อบกพร่องและพยายามแก้ไขตามแต่แอพพลิ เคชั่นทางฝ่ายผู้ส่งเห็นสมควร
5. เนื่องจาก TCP อาศัย IP เองอาจจะถูกแฟรกเมนต์ได้ และทำให้ข้อมูลที่ถูกแฟรกเมจต์นั้นส่งถึงปลายทาง
ในลำดับที่ไม่ถูกต้องหน้าที่ของ TCP เมื่อรับข้อมูลที่แฟรกเมนต์มานั้นจะต้องนำข้อมูลแต่ละส่วนมาประกอบ
รวมกันให้ถูกต้องสมบูรณ์ก่อนจะส่งไปยัง Application Layer ต่อไป
6. การส่ง - รับ ข้อมูลด้วย IP อาจจะมีกรณีที่ IP Datagram นั้นถูกส่งซ้ำขึ้นได้ TCP ที่รับส่งข้อมูลซ้ำดังกล่าว
จะต้องทราบว่าเป็น IP Datagram ที่ซ้ำและไม่นำข้อมูลนั้นไปใช้งาน
7. TCP มีกลไกควบคุมการไหลของข้อมูล โดยการควบคุมนั้นจัต้องอาศัยลำดับของการรับส่งที่ถูกต้องและสัมพันธ์กันทั้ง 2 ฝ่าย ในขณะเดียวกันข้อมูลที่ส่งนั้นจะต้องอาศัย IP หลายดาต้าแกรมจึงจะได้ข้อมูลครบทั้งหมดดังนั้นในการับข้อมูล
ทางฝ่ายรับจึงต้องเตรียมบับเฟอร์ไว้จำนวนหนึ่งเพื่อรองรับข้อมูลและรวบรวมข้อมูลทั้งชุดให้อยู่ในบัฟเฟอร์ก่อน
ที่จะทำการจัดเรียงข้อมูลตรวจสอบความถูกต้องแล้วจึงส่งต่อไปยังแอพพลิเคชั่นด้วยเหตุผลดังกล่าวจะเห็นได้ว่า
ขนาดของข้อมูลมิได้ถูกจำกัดที่ขนาดของดาต้าแกรมใดๆข้อมูลที่ส่งอาจจะมีขนาดใหญ่มากอยู่ในดาต้าแกรม
ก็เป็นได้ ดังนั้นเพื่อป้องกันการส่งข้อมูลขนาดใหญ่หรือเร็วเกินไปจนทำให้ทางฝ่ายรับไม่มีหน่วยความจำเพียงพอ
ที่จะเป็นบัฟเฟอร์ที่พักข้อมูล การส่งข้อมูลจึงถูกจำกัดโดยจะอนุญาตให้ทำการส่งข้อมูบได้เท่าที่ฝ่ายรับมีบัฟเฟอร์
เพียงพอเท่านั้น

TCP Header
ใน TCP Header จะเริ่มต้นระบุที่หมายเลขพอร์ตต้นทางและหมายเลขพอร์ตปลายทาง แต่อันที่จริงแล้วข้อมูล
อีกส่วนหนึ่งที่ใช้ในการสื่อสารคือ IP Address ของต้นทางและปลายทางก็ต้องระบุเช่นกัน แต่ได้ถูกEncapsulate
ไว้ในเลเยอร์ของ IP และค่าของ IP Address ทั้งคู่จะอยู่ใน TCP Header ส่วนคู่ของ IP Address และหมายเลข
พอร์ตนั้นจะเรียกว่า"ช็อคเก็ต"ซึ่งในการสื่อสารแต่ละครั้งจะต้องมีทั้งช็อคเก็ตของต้นทางและปลายทางข้อมูล
จึงจะถูกส่งรับไปถูกที่และถูกแอพพลิเคชั่นรายละเอียดหน้าที่ของแต่ละฟิลด์ใน TCP Header มีดังนี้
SourcePortNumber หมายถึง พอร์ตที่โฮสต์ต้นทางใช้ในการสื่อสารของเซสชั่นนี้และ TCP จะใช้พอร์ตนี้
ไปตลอดตราบใดที่การสื่อสารในเซสชั่นนี้ยังไม่ยุติลง โดยทั่วไปนี้จะเรียกว่า "ไคลเอนต์พอร์ต" คือ พอร์ตที่ไคลเอนต์เปิดขึ้นมาเพื่อรอการตอบรับจากเซิฟร์เวอร์ไคลเอนต์พอร์ตจะ มีหมายเลขไม่แน่นอน
และเปลี่ยนไปทุกครั้งที่มีการเชื่อมต่อใหม่เป็นพอร์ตที่ถูกเปิดไว้ในระยะเวลาสั้นๆค่าที่เป็นไปได้ของพอร์ตนี้
ขึ้นอยู่กับการจัดสรรค์ของระบบปฏิบัติการในการกำหนดขอบเขตของพอร์ตเหล่านี้ส่วนใหญ่จะมีค่าอยู่ในช่วง
1024 - 5000 Destination Port Number หมายถึง หมายเลขพอร์ตบนโฮสต์ปลายทางที่โฮสต์ต้นทางต้องการ
ติดต่อด้วยโดยนัยแล้วหมายถึงแอพพลิเคชั่นที่ให้บริการอยู่บนพอร์ตนั้นที่โฮสต์ปลายทางนั่นเองพอร์ตนี้
จ ะเรียกอีกอย่างหนึ่งว่า " เซิร์ฟเวอร์พอร์ต " หมายเลขพอร์ตที่เปิดไว้จะขึ้นอยู่กับแอพพลิเคชั่นที่ให้บริการ โดยทั่วไปแอพพลิเคชั่นแต่ละประเภทจะมีหมายเลขพอร์ตเป็นมาตรฐานสำหรับให้ไคลเอนต์ได้เรียกให้บริการ Sequence Number เป็นฟีลด์ที่ระบุหมายเลขลำดับที่ใช้อ้างอิงในการสื่อสารข้อมูลแต่ละครั้ง
เพื่อให้ทั้ง 2 ฝ่ายจะได้รับทราบตรงกันว่าเป็นข้อมูลของชุดใดการนำไปใช้งานจะได้ไม่ปะปนกันและมีลำดับ
ที่ถูกต้องเนื่องจากการสื่อสารข้อมูลผ่าน TCP นั้นจังหวะและลำดับเป็นส่วนสำคัญของโปรโตคอลไม่ยิ่งหย่อน
ไปกว่าข้อมูลในTCP Header รวมไปถึงการที่ข้อมูลในแต่ละ TCP Segment อาจจะถูกแบ่งออกและส่งไป
ในลำดับที่ไม่เรียงกันหากไม่มีจุดอ้างอิงของข้อมูล ก็จะไม่สามารถอ่านข้อมูลกลับใหม่ได้อย่างสมบูรณ์และถูกต้อง การส่งข้อมูลและการตอบรับจะใช้ฟิลด์นี้เป็นตัวยืนระหว่างกันเสมอ
Encapsulation ของข้อมูล TCP ใน IP Datagram
TCP Header
Acknowledge Number ทำหน้าที่เช่นเดียวกับ Sequence Number ต่างกันตรงที่เป็น Sequence Number ซึ่ง
ใช้ในการตอบรับกล่าวคือเนื่องจาก Sequence Number ที่ใช้ในการอ้างอิงนั้นผู้ที่เริ่มส่งข้อมูลจะเป็นผู้กำหนดเลข
ขึ้นมาและส่งไปพร้อมกับการสร้างการเชื่อมต่อครั้งใหม่แต่สำหรับฝ่ายที่ถูกติดต่อก็จำเป็นต้องกำหนดหมายเลข
สำหรับใช้อ้างอิงในการตอบรับเช่นกัน ค่าที่อยู่ใน Acknowledge Numberก็คือหมายเลขที่ใช้อ้างอิง
ในการตอบรับนี้ ปกติค่าทั้งใน Sequence Number จะต้องพิจารณาประกอบกับ Flag จึงจะสามารถแปล
ความหมายของ TCP Segment ได้อย่างสมบูรณ์ Header Length โดยปกติความยาวของ TCP Header
จะเท่ากับ 20ไบต์แต่ถ้าหากมีการใช้ค่า Option อาจจะทำให้ขนาดของเฮดเดอร์ยาวขึ้นตามข้อมูลที่ต้องเพิ่มมาจาก Option นั้น แต่ทั้งหมดแล้วจะไม่เกิน 60 ไบต์ Flag เป็นข้อมูลในระดับบิตที่ใช้เป็นตัวบอกคุณสมบัติของ
TCP Segment ที่กำลังส่งอยู่นั้น และใช้เป็นตัวควบคุมจังหวะการรับส่งข้อมูลด้วย ซึ่ง Flag ทั้งหมดมีอยู่ 6 บิต แต่ละบิตมีชื่อและมีความหมายดังนี้
URG แสดงว่าข้อมูลในฟิลด์ Urgent Pointer นั้นนำมาใช้งานได้
ACK แสดงว่าข้อมูลในฟิลด์ Acknowledge Number นำมาใช้งานได้
DSH เพื่อแจ้งให้ผู้รับข้อมูลทราบว่าควรจะส่งข้อมูล Segment นี้ไปยังแอพพลิเคชั่นโดยเร็ว
RST ยกเลิกการติดต่อ
SYN ใช้ในการเริ่มต้นขอติดต่อกับปลายทาง
FIN ใช้ส่งเพื่อแจ้งให้ปลายทางทราบว่ายุติการติดต่อ
Window Size เป็นขนาดของการรับ - ส่งข้อมูลในแต่ละครั้งที่ทางฝ่ายผู้รับจะสามารถรับได้ เนื่องจากในการรับข้อมูลนั้น ทางผู้รับจะต้องจัดเตรียมหน่วยความจำในการพักข้อมูลที่มาจาก TCP และทำการ Demultiplex ออกมาหากไม่มีการตกลงถึงขนาดที่ทางฝ่ายรับสามารถรับได้ ก็จะทำให้การสื่อสารข้อมูลไม่สมดุล และฝ่ายรับอาจจะประมวลผลไม่ทันซึ่งส่งผลให้ต้องส่งข้อมูลหลายครั้ง Checksum ฟิลด์ที่ใช้ในการตรวจสอบความถูกต้องของข้อมูลใน TCP เซกเมนต์ Urgent Pointer ใช้ระบุหมายเลข SequenceNumber ของ TCPเซกเมนต์ล่าสุดที่อยู่ในโหมด UrgentOption ข้อมูลเพิ่มเติมซึ่งจะอยู่ใน TCPHeader เมื่อมีการตั้งค่า option บางอย่างที่ต้องการข้อมูลเพิ่มเติมซึ่งไม่มีใน TCP Header เช่น MSS, Strict RouteConnection Establishment และ Termination
Connection Establishment
ก่อนที่ TCP จะสามารถรับส่งข้อมูลได้จะต้องมีการสถาปนา (Establisment) หรือการสร้างให้มี Connection                    เกิดขึ้นก่อนเปรียบเสมือนการต่อสายของทั้ง 2 ฝั่งให้เชื่อมถึงกันซึ่งโปรโตคอล TCP ได้กำหนดขั้นตอน
ในการเริ่มต้นสร้าง Connection ไว้ดังนี้
1.เครื่องไคเอนต์จะทำการส่งเซกเมนต์โดยเปิด SYNFlag ระบุหมายเลขที่ต้องการติดต่อบนเซิร์ฟเวิร์กและ
ระบุหมายเลขลำดับของข้อมูล (ISN - Initial Sequence Number)
2. เครื่องเซิร์ฟเวอร์เมื่อได้รับข้อมูลเซกเมนต์จากข้อ 1 ก็จะตอบกลับด้วยการเพิ่มค่า ISN ที่ไดรับอีกขึ้นอีก 1 พร้อมทั้งระบุหมายเลขลำดับของตนเอง และเปิด SYN กับ ACK Flag
3. ไครเอนต์เมื่อได้รับการตอบกลับจากเซิร์ฟเวอร์ตามข้อ 2 ก็จะทำการตอบรับกลับไป โดยการเพิ่มค่าISN
ของเซิฟร์เวอร์ขึ้นอีก 1 และเปิด ACKFlag เมื่อผ่านการสร้าง Connection ทั้ง 3 ขั้นตอนแล้วตอนนี้
ทั้งไคลเอนต์และเซิร์ฟเวอร์เปรียบเสมือนมีการเชื่อมต่อถึงกันแล้วสามารถส่งรับข้อมูลกันได้ตลอดจนกว่า
จะมีการยุติ connection นั้นเสีย ขั้นตอนทั้ง 3 เรียกว่า " Three - ways handshakes "

จากภาพดังต่อไปนี้ จะแสดงโฮสต์ในลักษณะ hostname port เป็นการแสดงให้เห็นขั้นตอนการสร้าง Connection ระหว่างโฮสต์ 10.15.14.1 จากพอร์ตหมายเลข 500 ทำหน้าที่เป็นไคลเอนต์ส่งคำสั่งไปยังโฮสต์ 10.15.14.2 พอร์ต 80 ซึ่งเป็นเว็บเซิร์ฟเวอร์ โดยจากข้อมูลอธิบายได้ดังนี้
Segment 1 โฮสต์10.15.14.1 ใช้พอร์ตหมายเลข500เป็นไคลเอนต์พอร์ตได้ส่งสัญญาณเพื่อขอเริ่มการเชื่อมต่อ
โดยการเช็ต TCP Flag SYN ไปยัง 10.15.14.2 พอร์ตหมายเลข 80 มีหมายเลข Sequence เท่ากับ 10000










Connection Estabilshmen t
Segment2 โฮสต์ 10.15.14.2 ได้ตอบรับการ SYN ของ 10.15.14.1 โดยการส่งสัญญาณตอบกลับไปยังโฮสต์ 10.15.14.1 หมายเลขพอร์ต 500 โดยเซ็ต TCP Flag SYN และ TCP Header และใช้หมายเลข Sequence เท่ากับ 20000 และหมายเลข Acknowledge เท่ากับ 1001 แสดงว่าโฮสต์ 10.15.14.2 ตอบรับคำขอเชื่อมต่อของ โฮสต์ 10.15.14.1 แล้วโดยจะใช้ช็อคเก็ตนี้ในการสื่อสารต่อไป Segment3 โฮสต์ 10.15.14.1 เมื่อได้รับการตอบรับ
จากโฮสต์ 10.15.14.2 ก็ทำการยืนยันให้ทราบว่าได้รับการตอบรับแล้วโดยการส่งสัญญาณตอบไปยังพอร์ต 80 โดยเซ็ต TCP flag ACK และใช้หมายเลข Acknowledge 20001(200011=20000) หลังจากกระบวนการผ่าน
ไปทั้ง 3 เซกเมนต์แล้วแสดงว่า connection ได้ถูกจัดตั้งเรียบร้อยแล้วหลังจากนั้นก็สามารถเริ่มสื่อสารได้
โดยการสื่อสารจะอยู่ในช็อคเก็ตของ 10.15.14.1.500 ถึง 10.15.14.2.80 สำหรับจากตัวอย่างนี้ โฮสต์ 10.15.14.1 เป็นผู้ริเริ่มการติดต่อจะต้องเปิดพอร์ตภายในโฮสต์ตนเองไว้ก่อน เรียกว่า "active open"สำหรับโฮสต์ 10.15.14.2 เป็นผู้ตอบสนองต่อการติดต่อนั้นเมื่อยินยอมติดต่อด้วยก็จะต้องเปิดพอร์ตเช่นกัน เรียกว่า " passsive open"
Connection Termination หลังจากการรับส่งข้อมูลได้ยุติลง จะต้องทำขั้นตอนยุติการรับ - ส่งข้อมูล เปรียบเสมือนการถอดสายเชื่อมต่อที่อยู่ระหว่างไคลเอนต์กับเซิร์ฟเวอร์ออกไป การสิ้นสุดการรับส่งข้อมูล
โดยสมบูรณ์มีอยู่ 4 ขั้นตอน คือ
1. ไคลเอนต์ทำการส่ง ISN พร้อมกับ FIN ACK Flag ไปยังเซิร์ฟเวอร์
2. เซิร์ฟเวอร์ทำการตอบรับ ISN และบวกค่า ISN อีก 1 พร้อมกับ ACK Flag
3. เซิร์ฟเวอร์ทำการส่ง ISN พร้อมกับ FIN ACK Flag ไปยังไคลเอนต์
4. ไคลเอนต์ตอบรับการยุติการสื่อสารด้วย ISN + 1 พร้อมกับ ACK Flag
Connection termination
Connection termination

Transmission Control Profocol (TCP) 


TCP และ UDP เป็นโพรโตคอลในทรานสปอร์ตเลเยอร์ของตระกูล TCP/IP ที่ให้บริการแก่แอพพลิเคชันทั่วไป และโพรโตคอลในแอพพลิเคชันเลเยอร์ (รวมไปถึง HTTP, SMTP, SNMP, FTP, และ Telnet) ซึ่งทั้งสองโพรโตคอลนี้ จะใช้บริการของ IP ในการส่งแพ็กเกตไปยังระบบเครือข่ายปลายทาง โดยการส่งข้อมูลของ TCP จะเป็นแบบ connection-oriented และรับรองความถูกต้องของข้อมูล (reliable) ในขณะที่ UDP จะเป็นแบบ connectionless และไม่รับรองความถูกต้องของข้อมูล (unreliable) โดยทั้งสองโพรโตคอลจะส่งข้อมูลแบบ byte-stream ซึ่งเราจะอธิบายถึงความหมายของคำเหล่านี้ในภายหลัง
โพรโตคอลแบบ connection-oriented จะสร้างลิงก์จากต้นทางไปถึงปลายทางก่อนที่จะส่งข้อมูล การทำงานของ ATM และเฟรมรีเลย์ก็เป็นแบบ connection-oriented เช่นกัน แต่ว่าโพรโตคอลทั้งสองนี้ทำงานในดาต้าลิงก์เลเยอร์ ไม่ใช่ในทรานสปอร์ตเลเยอร์ การติดต่อผ่านทางโทรศัพท์ก็นับเป็นการทำงานแบบ connection-oriented ด้วยเช่นกัน
โพรโตคอลแบบที่รับรองความถูกต้องของข้อมูล (reliable) จะช่วยป้องกันความผิดพลาดที่เกิดขึ้นในระหว่างการส่งข้อมูล เมื่อคุณได้รับแพ็กเกตที่ปลายทางแล้ว คุณสามารถเปรียบเทียบข้อมูล checksum ที่อยู่ในแพ็กเกต กับ checksum ที่ได้จากการคำนวณของอัลกอริทึม เพื่อตรวจสอบว่าข้อมูลผิดพลาดหรือไม่ ถ้าใช่ คุณก็ต้องส่งแพ็กเกตนั้นซ้ำอีกครั้ง ดังนั้นโพรโตคอลชนิดนี้จึงต้องมีวิธีการที่ยอมให้เครื่องที่ปลายทางส่งสัญญาณมายังต้นทาง ในกรณีที่ข้อมูลเกิดความผิดพลาดขึ้น เมื่อข้อมูลถูกแบ่งเป็นหลายแพ็กเกตแล้ว อาจเดินทางมาถึงปลายทางโดยไม่เรียงตามลำดับของแพ็กเกตก็เป็นได้ ดังนั้นตัวโพรโตคอลจึงต้องมีความสามารถในการตรวจเช็กลำดับของแพ็กเกต, จัดเก็บแพ็กเกตไว้ในบัฟเฟอร์, และส่งแพ็กเกตที่เรียงลำดับเรียบร้อยแล้วไปยังแอพพลิเคชันเลเยอร์ต่อไป อีกทั้งต้องตรวจสอบได้ว่า เมื่อใดมีการส่งข้อมูลซ้ำ และทิ้งข้อมูลซ้ำนั้นไป ในกรณีที่เกิดการผิดพลาดในการสื่อสารโพรโตคอลอาจต้องส่งข้อมูลเดิมนั้นซ้ำอีกครั้ง หรืออาจต้องสร้างลิงก์เชื่อมต่อระหว่างต้นทางกับปลายทางขึ้นมาใหม่ ดังนั้นจึงจำเป็นต้องมีระบบการนับเวลา (timer) เพื่อใช้ในการรอสัญญาณตอบรับ (acknowledgement) จากเครื่องที่อยู่ฟากตรงข้าม
สำหรับโพรโตคอลแบบ byte-stream จะไม่ทำงานกับหน่วยของข้อมูลแบบอื่นนอกเหนือจากหน่วย "ไบต์" ซึ่ง TCP จะไม่สามารถประกอบไบต์เป็นโครงสร้างข้อมูลภายในแพ็กเกตได้ รวมถึงไม่สามารถทำงานในระดับบิตได้เช่นกัน โดยตัว TCP จะทำงานได้แต่เพียงการส่งตัวอักษรขนาด 1 ไบต์ ในลักษณะของสายอักขระแบบไม่มีโครงสร้างไปยังปลายทาง
โพรโตคอลแบบ connectionless จะไม่สร้างลิงก์ผ่านระบบเครือข่ายก่อนที่จะส่งข้อมูล แต่โหนดระหว่างทางแต่ละตัว จะค้นหาเส้นทางในการส่งแพ็กเกต (หรืออาจเรียกว่า ดาต้าแกรม สำหรับในกรณีเช่นนี้) อย่างเป็นอิสระต่อกัน เมื่อปราศจากลิงก์ระหว่างต้นทางกับปลายทาง โพรโตคอลชนิดนี้ อย่าง UDP จะไม่รับรองความถูกต้องของข้อมูล (unreliable) เมื่อแพ็กเกตของ UDP ถูกส่งผ่านไปยังระบบเครือข่าย ผู้ส่งจะไม่มีทางทราบว่าแพ็กเกตไปถึงปลายทาง นอกเสียจากว่าโพรเซสในแอพพลิเคชันเลเยอร์ส่งสัญญาณตอบรับกลับมา การตรวจสอบว่ามีการส่งข้อมูลซ้ำ หรือแพ็กเกตไม่มาตามลำดับ ก็ไม่สามารถทำได้เช่นกัน แม้ว่าในระบบเครือข่ายยุคใหม่นี้ การสื่อสารผ่าน UDP จะมีแนวโน้มในการรับส่งข้อมูลผิดพลาดน้อยลงมาก แต่คุณก็คงจะเรียกการทำงานเช่นนี้ว่า reliable ไม่ได้เช่นกัน
ส่วนของไอพีแพ็กเกตที่อยู่ถัดจากส่วนของไอพีเฮดเดอร์ โดย 16 บิตแรกจะแสดงหมายเลขพอร์ตต้นทาง ส่วน 16 บิตหลังจะเป็นหมายเลขพอร์ตปลายทาง หมายเลขพอร์ตจะช่วยให้เครื่องไอพีโฮสต์สามารถรับส่งข้อมูลหลากหลายชนิด ไปยังไอพีแอดเดรสหนึ่งในเวลาเดียวกันได้ หมายเลขไอพีแอดเดรสขนาด 32 บิต และหมายเลขพอร์ตขนาด 16 บิต จะรวมกันเป็นระบบซ็อกเกตที่ใช้กันอยู่ทั่วไปในระบบปฏิบัติการยุคใหม่ ซึ่งซ็อกเกตต้นทาง และซ็อกเกตปลายทาง จะรวมกันเป็นหนึ่งคอนเน็กชันของ TCP โดยจะมีพอร์ตทั้งหมดอยู่ 216 หรือ 65,536 พอร์ต ซึ่งพอร์ต 1024 พอร์ตแรก จะเป็นพอร์ตที่รู้จักกันดีและถูกใช้กันอยู่ทั่วไป (well-known port) ทั้งหมดนี้ถูกตั้งค่าไว้ตั้งแต่แรก สำหรับนำมาใช้งานในโพรโตคอลบนแอพพลิเคชันเลเยอร์ ยกตัวอย่างเช่น HTTP จะใช้พอร์ต 80 ในขณะที่ POP3 จะใช้พอร์ต 110 ส่วนแอพพลิเคชันอื่นก็สามารถใช้หมายเลขพอร์ตที่สูงกว่านี้ได้ ส่วนหมายเลข sequence number และ acknowledgement number นั้นเป็นกุญแจสำคัญสำหรับการตรวจสอบความถูกต้องของข้อมูล เมื่อสร้างคอนเน็กชันของ TCP แล้ว ผู้ส่งจะส่งหมายเลข sequence number พร้อมกับแพ็กเกตไปยังผู้รับ ผู้รับจะบวก 1 เข้ากับหมายเลข sequence number แล้วเก็บหมายเลขนั้นไว้ใน acknowledgement number ของแพ็กเกตตอบรับ เพื่อบอกถึงหมายเลขของไบต์ถัดไปที่ควรถูกส่งมา จากนั้นก็จะส่งแพ็กเกตตอบรับกลับไปยังผู้ส่ง เมื่อการสื่อสารข้อมูลเริ่มต้นขึ้น หมายเลข sequence และ acknowledgement จะถูกใช้ตรวจสอบว่าข้อมูลไบต์ใดที่ถูกส่งไปแล้ว และข้อมูลใดที่ถูกตอบกลับมาแล้ว เนื่องจากว่าหมายเลขทั้งสองนี้แต่ละหมายเลขจะใช้พื้นที่ 32 บิต ทำให้มีค่าได้ทั้งหมด 232 ค่า โดยแต่ละหมายเลขจะมีค่าได้ตั้งแต่ 0 ไปจนถึง 4,294,967,295 และวกกลับมาที่ 0 เมื่อเกินค่าสูงสุดแล้ว ส่วนฟิลด์ของ HLEN ขนาด 4 บิตจะบอกถึงจำนวนของเวิร์ดขนาด 32 บิตที่ส่วนเฮดเดอร์มีอยู่ ข้อมูลส่วนนี้จำเป็นมาก เพราะว่าเฮดเดอร์มีฟิลด์บางฟิลด์ที่เป็นออปชัน คืออาจมีหรือไม่มีก็ได้ ซึ่งฟิลด์ HLEN นี้ก็จะบอกถึงตำแหน่งในแพ็กเกตว่าเฮดเดอร์จบที่ใด และข้อมูลจริงเริ่มต้นตรงไหน
ผู้ออกแบบ TCP ไม่ได้ใช้พื้นที่ 6 บิตถัดไป เนื่องจากต้องการเก็บไว้ใช้สำหรับการพัฒนาในอนาคต ซึ่งตั้งแต่เกิด RFC793 (Transmission Control Protocol) จนถึง1981 ก็ไม่มีใครจำเป็นจะต้องใช้บิตสำรองเหล่านี้เลย Jon Postel และกลุ่มผู้ร่วมพัฒนาเหล่านั้นคงจะระวังกันเกินกว่าเหตุไปหน่อย
สำหรับอีก 6 บิตถัดไปนั้น แต่ละบิตจัดเป็นแฟล็ก เมื่อแฟล็ก URG (urgent) มีค่า 1 จะบอกว่าข้อมูลในฟิลด์ urgent pointer ในเฮดเดอร์นั้นเป็นข้อมูลสำคัญ ส่วนแฟล็ก ACK (acknowledgement) ใช้บอกว่าหมายเลข acknowledgement นั้นสำคัญ (นั่นคือเป็นแพ็กเกตตอบรับนั่นเอง) แฟล็ก SYN (synchronization) บอกว่าหมายเลข sequence เป็นข้อมูลสำคัญ (นั่นหมายถึง เลข acknowledgement ไม่สำคัญไปด้วย เพราะว่าแพ็กเกตนั้นจะไม่ใช่แพ็กเกตตอบรับ) แฟล็ก PSH (push) ช่วยป้องกันข้อมูลจากการที่ต้องรอถูกส่งและรอรับการจัดการโดยโพรเซสผู้รับ แฟล็ก RST (reset) ใช้ปิดคอนเน็กชันของการสื่อสาร ส่วนแฟล็ก FIN (finish) ใช้บอกว่าผู้ส่งหมดข้อมูลที่ต้องการส่งแล้ว
ฟิลด์ window ขนาด 16 บิตนั้นจะบอกถึงขนาดของ sliding window ซึ่งใช้บอกผู้ส่งว่าตัวเองพร้อมจะรับข้อมูลจำนวนกี่ไบต์ โพรโตคอล TCP จะควบคุมการไหลของข้อมูลและภาวะการสื่อสารติดขัด โดยปรับที่ขนาดของ window นี่เอง ซึ่งถ้าค่านี้เท่ากับ 0 จะเป็นการบอกกับผู้ส่งว่าผู้รับไม่สามารถรับข้อมูลเพิ่มได้อีกในขณะนี้ และจะส่งแพ็กเกตตอบรับพร้อมค่า window ใหม่เมื่อสามารถรับข้อมูลได้อีก โดย window ที่มีขนาดใหญ่จะทำให้ส่งข้อมูลออกไป แม้ในขณะที่ยังไม่ได้รับสัญญาณตอบรับ ได้มากที่สุดถึง 65,536 ไบต์ ณ ช่วงเวลาใดเวลาหนึ่ง แต่ภาวะการสื่อสารติดขัด (congestion) ที่เกิดขึ้นเมื่อไทเมอร์ของ retransmission หมดลงก่อนที่จะได้รับสัญญาณตอบรับ จะทำให้ขนาดของ window ลดลงไปครึ่งหนึ่ง ส่งผลให้อัตราเร็วในการสื่อสารลดลงไปอย่างมาก
ฟิลด์ checksum ขนาด 16 บิต จะป้องกันความปลอดภัยของข้อมูลในแพ็กเกต รวมไปถึงฟิลด์บางฟิลด์ภายในเฮดเดอร์ ผู้ส่งจะคำนวณค่า checksum และใส่ค่าที่คำนวณได้ไว้ในฟิลด์นี้ จากนั้นผู้รับจะหาค่า checksum นี้ใหม่ โดยคำนวณจากแพ็กเกตที่ได้รับ จากนั้นนำค่าที่ได้ไปเปรียบเทียบกับค่าในฟิลด์นี้ ถ้าเท่ากัน ข้อมูลก็น่าจะปลอดภัย และมีความถูกต้อง
ค่า urgent pointer ขนาด 16 บิต จะชี้ไปที่ไบต์สุดท้ายของข้อมูลเร่งด่วนในกรณีที่แฟล็ก urgent มีค่าเป็นหนึ่ง ส่วนฟิลด์ options นั้นอาจมีจำนวนของเวิร์ด (32 บิต) ได้ตั้งแต่ 0 เวิร์ดหรือมากกว่านั้น เพื่อใช้เพิ่มความสามารถของโพรโตคอล TCP โดยค่าของ options ที่นิยมใช้กันมากที่สุดนั้นจะรองรับขนาดของ window ได้มากกว่า 65,536 ไบต์ ช่วยให้ลดเวลาในการรอสัญญาณตอบรับ โดยเฉพาะอย่างยิ่งในกรณีของการรับส่งข้อมูลด้วยความเร็วสูง
การทำงานของ TCP นั้นต้องใช้ไทเมอร์จำนวนมาก ไทเมอร์สำหรับการส่งข้อมูลเดิมซ้ำ จะเริ่มเมื่อข้อมูลถูกส่งไป และจะหยุดเมื่อได้รับสัญญาณตอบรับจากผู้รับ ถ้าเวลาหมดก่อนที่จะได้รับสัญญาณนั้น ข้อมูลเดิมจะถูกส่งซ้ำอีกครั้ง การตั้งเวลาของไทเมอร์ให้พอเหมาะนับเป็นปัญหายุ่งยากอย่างหนึ่ง ถ้านานไป โพรโตคอลก็จะเสียเวลาในการรอ แม้ว่าในขณะนั้นข้อมูลจะสูญหายไประหว่างทางแล้วก็ตาม แต่ถ้าเร็วไป ข้อมูลเดิมก็จะถูกส่งซ้ำไปเป็นจำนวนมาก โดยเฉพาะในกรณีที่เกิดความล่าช้าในการรับส่งสัญญาณตอบรับ ซึ่งในปัจจุบัน ค่าไทเมอร์นี้จะถูกตั้งโดยดูจากสถานะ และสภาพแวดล้อมของระบบเครือข่าย
ไทเมอร์ persistence ถูกใช้เพื่อป้องกันไม่ให้เกิดภาวะ deadlock ขึ้น ถ้าเน็ตเวิร์กได้รับแพ็กเกตตอบรับที่มี window ขนาด 0 และจากนั้นไม่ได้รับแพ็กเกตตอบรับที่จะใช้ในการเริ่มต้นการสื่อสารใหม่ ไทเมอร์นี้ก็จะหมดเวลาและส่งสัญญาณตรวจเช็กไป ซึ่งค่าที่ได้รับกลับมาจะเป็นขนาดของ window (ซึ่งอาจจะยังเป็น 0 อยู่ โดยในกรณีนี้ ไทเมอร์จะทำงานเหมือนเดิมใหม่อีกครั้ง)
ไทเมอร์ keepalive จะใช้เช็กว่า ยังมีโพรเซสทำงานอยู่ที่อีกฟากหนึ่งของคอนเน็กชันหรือไม่ หลังจากไม่มีการทำงานได้ระยะหนึ่ง ตัวไทเมอร์นี้จะปิดคอนเน็กชันลงถ้าไม่มีสัญญาณตอบรับกลับมา
ในการปิดคอนเน็กชันนั้น ไทเมอร์ที่ใช้ปิดคอนเน็กชันจะตั้งเวลาให้มีค่าเป็นสองเท่าของค่าอายุของแพ็กเกตที่มากที่สุด (maximum packet lifetime) เพื่อให้แน่ใจว่า ไม่มีข้อมูลสื่อสารค้างอยู่ในคอนเน็กชันนั้นก่อนที่ตัวเองจะถูกปิด
ไม่ว่ากระบวนการการรับส่งข้อมูลจะถูกสร้างให้มีประสิทธิภาพเพียงใด จำนวนแพ็กเกตที่สูญหายไปแม้เพียงเล็กน้อย ก็สามารถส่งผลกระทบรุนแรงต่อทรูพุตของคอนเน็กชันบน TCP เนื่องจากโพรโตคอลจะทราบว่าแพ็กเกตที่หายไปหรือไม่ ก็ต่อเมื่อหมดเวลาของไทเมอร์แล้วเท่านั้น และโพรเซสผู้รับจำเป็นต้องส่งข้อมูลตามลำดับ การส่งข้อมูลเดิมซ้ำในกรณีที่ข้อมูลสูญหายจะทำให้การสื่อสารข้อมูลหยุดชะงักจนกว่าจะได้รับข้อมูลที่หายไปนั้น การส่งข้อมูลซ้ำเช่นนี้ส่งผลให้ลิงก์ของ TCP มีประสิทธิภาพขึ้นๆ ลงๆ ในบางครั้ง
ถ้านำโครงสร้างของแพ็กเกต UDP มาเปรียบเทียบกับแพ็กเกตของ TCP แล้ว จะเห็นได้ชัดว่า UDP ขาดกลไกอันซับซ้อนในการควบคุมและรับรองความถูกต้องของข้อมูลเหมือนดังที่มีอยู่ใน TCP หมายเลขพอร์ตต้นทาง และปลายทางของ UDP ยินยอมให้มีการทำงานกับแอพพลิเคชันหลายตัวในเครื่องเดียวกันได้ เหมือนกับใน TCP ส่วนค่าในฟิลด์ UDP length จะเท่ากับความยาวของเฮดเดอร์ขนาดสองไบต์ รวมกับความยาวของข้อมูลจริง โดยค่าในฟิลด์ checksum จะช่วยตรวจสอบความถูกต้องและปลอดภัยของข้อมูล (ในปัจจุบันนี้ แอพพลิเคชันจำนวนมากที่ใช้ UDP เช่น โปรแกรมรับส่งสัญญาณเสียง จะไม่ใช้ประโยชน์จากความสามารถนี้ และจะไม่ส่งข้อมูลที่สูญหายหรือผิดพลาดไปซ้ำอีกครั้ง แม้ว่าจะทราบถึงความผิดพลาดนั้นก็ตาม)
TCP นับเป็นโพรโตคอลสำหรับการรับส่งข้อมูลที่ให้ความสำคัญกับความถูกต้องของข้อมูลมากกว่าประสิทธิภาพ ในขณะที่ UDP เป็นตัวเลือกที่ดีที่สุดในกรณีที่ประสิทธิภาพมีความสำคัญกว่า ดังเช่นในแอพพลิเคชันทางด้านมัลติมีเดีย UDP ยังนับเป็นตัวเลือกที่ดีสำหรับการสื่อสารข้อมูลที่ใช้ระยะเวลาที่สั้นมากจนเวลาที่เสียไปในการสร้างลิงก์นับเป็นส่วนใหญ่ของการสื่อสารทั้งหมด ยกตัวอย่างเช่น การแลกเปลี่ยนข้อมูลของ DNS สำหรับการตัดสินใจใช้ UDP ใน SNMP นั้น 
ส่วนหนึ่งมาจากความเชื่อของผู้ออกแบบว่า ด้วยโอเวอร์เฮดของ UDP ที่น้อยกว่า TCP น่าจะทำให้ UDP มีโอกาสที่ดีกว่าในการรับส่งข้อมูลด้านการจัดการในขณะที่การสื่อสารบนเครือข่ายกำลังติดขัด เมื่อพิจารณาถึงฟังก์ชันการทำงานของ TCP ที่มีเป็นจำนวนมาก ในบางครั้งก็ก่อให้เกิดผลลัพธ์ที่คาดเดาไม่ได้ แต่ถ้ากล่าวถึงคอนเน็กชันแบบ end-to-end ที่รับรองความถูกต้องของข้อมูลจาก TCP นั้น ก็เชื่อว่าน่าจะสามารถทำงานกับแอพพลิเคชันระบบเครือข่ายได้เกือบทั้งหมดในอนาคตอันใกล้นี้

Internet Protocol (IP)  
      
         เป็นวิธีการ (protocol) ที่ใช้ในการส่งข้อมูลจากเครื่องคอมพิวเตอร์เครื่องหนึ่งไปยังเครื่องอื่น ในอินเตอร์เน็ต (Internet) คอมพิวเตอร์แต่ละเครื่อง รู้จักกันในฐานะของ Host บน Internet ต้องมีที่อยู่อย่างน้อยหนึ่งที่อยู่ (address) ซึ่งไม่ซ้ำกับคอมพิวเตอร์เครื่องอื่นใน Internet เมื่อมีการส่งและรับข้อมูล (เช่น อี-เมล์) ข้อความจะถูกแบ่งเป็นชุดข้อมูล เรียกว่า แพ็คเกต (Packet) แต่ละชุดจัดจะเก็บที่อยู่ของผู้ส่งและผู้รับ การส่งชุดข้อมูลจะส่งไปที่เครื่องคอมพิวเตอร์ที่เป็น Gateway เมื่อเครื่อง Gaterway อ่านที่อยู่ของปลายทางแล้ว จึงส่งต่อชุดข้อมูลไปยัง adjacent Gateway ซึ่งจะอ่านที่อยู่ปลายทาง และส่งอ่านเครือข่าย Internet จนกระทั่งมีเครื่อง gateway รู้ว่าชุดข้อมูลนั้น เป็นของคอมพิวเตอร์ ภายในกลุ่มใด จากนั้น เครื่อง Gateway จึงจะส่งชุดข้อมูลไปยังเครื่องคอมพิวเตอร์ที่มีอยู่ตามที่ระบุ
จากการที่ข้อมูลได้รับเป็นชุดข้อมูลหลาย ๆ ชุด โดยการส่งอาจจะใช้การแยกส่งไปตามเส้นทางต่าง ๆ ข้ามเครือข่ายอินเตอร์เน็ท (จากการส่งโดยการแยกข้อมูลเป็นชุดข้อมูล) เมื่อไปถึงปลายทาง อาจจะมีลำดับที่ไม่ตรงกับลำดับจากต้นทาง ดังนั้น IP จะส่งต่อไปยัง TCP (Transmission Control Protocol) เพื่อจัดเรียงลำดับใหม่ให้ถูกต้อง IP เป็น โปรโตคอลแบบ Connection less หมายความว่า ไม่จำเป็นต้องมีการสร้างการเชื่อมต่อกับจุดปลายในระหว่างการสื่อสาร แต่ละชุดข้อมูลเดินทางโดยอิสระในระบบอินเตอร์เน็ต ปราศจากความเกี่ยวข้องกับชุดข้อมูลอื่น ๆ (เพราะหน้าที่ในการจัดลำดับที่ถูกเป็นของ TCP ซึ่งเป็น Protocol แบบ connection-oriented ที่ทำหน้าที่รักษาลำดับชุดข้อมูล ของข้อความหรือข้อมูลนั้น) ในแบบจำลองการสื่อสาร OSI (Open System Interconnection communication model) IP เป็นเลเยอร์ 3 คือ เลเยอร์เครือข่าย (Networking Layer)
IP ที่มีการใช้อย่างกว้างขวางในขณะนี้คือ Internet Protocol version 4 (IPV4) อย่างไรก็ตาม IPV6 กำลังเริ่มมีการใช้ IPV6 มีที่อยู่ที่ยาวกว่า ทำให้รองรับผู้ใช้อินเตอร์เน็ทได้มากขึ้น ซึ่ง IPV6 ได้รวมเอาความสามารถของ IPV4 ไว้ด้วย ดังนั้นเครื่อง Server ที่สนับสนุนชุดข้อมูลของ IPV6 จะสามารถสนับสนุน IPV4 ด้วย

HTTP

          Hypertext Transfer Protocol (HTTP) เป็นกลุ่มของกฎสำหรับการแลกเปลี่ยนไฟล์ (เช่น ข้อความ ภาพ เสียง ภาพเคลื่อนไหว และไฟล์มัลติมีเดียต่าง ๆ) บน World Wide Web ที่สัมผัสกับชุดโปรโตคอลแบบ TCP/IP (ซึ่งทำหน้าที่แลกเปลี่ยนสารสนเทศบนอินเตอร์เน็ต) โดย HTTP เป็นโปรโตคอลแบบประยุกต์ แนวคิดสำคัญของ HTTP คือไฟล์ต่าง ๆ สามารถเก็บการอ้างอิงไฟล์อื่น เพื่อเรียกหรือดึงไฟล์ที่ต้องการ ใน Web server ที่มีไฟล์ HTML และไฟล์อื่นที่เรียกว่า HTTP daemon ซึ่งเป็นโปรแกรมได้รับการออกแบบให้คอยรับและรักษาการขอ HTTP เมื่อการขอของ HTTP นั้นมาถึง ใน web browser ของเครื่องคอมพิวเตอร์ผู้ใช้จะเป็น HTTP client เพื่อส่งการขอไปยังเครื่องแม่ข่ายเมื่อมีการเรียกไฟล์จาก browser ของผู้ใช้ โดยเปิดไฟล์ของเว็บ (ด้วยการพิมพ์ชื่อ URL) หรือคลิกที่ Hypertext link จากนั้น browser จะสร้างการขอ HTTP และไปยัง IP address ที่ชี้โดย URL เมื่อ HTTP daemon ในเครื่องแม่ข่ายปลายทางได้รับการขอ และประมวลผลเรียบร้อย จะส่งไฟล์ที่ขอกลับมา
HTTP เวอร์ชันล่าสุด คือ HTTP 1.1

RJE

โปรโตคอล RJE (Remote Job Entry)
                เมื่อกลุ่มของผู้ใช้ซึ่งอยู่ต่างสถานีกันต้องการจะส่ง-รับข้อมูลแลกเปลี่ยนซึ่งกันและกัน โดยไม่ต้อง
การจะใช้ระบบ On-Line ซึ่งมีราคาค่อนข้างแพง วิธีการหนึ่งที่นิยมเลือกใช้กันคือการส่งข้อมูลผ่านระบบ เทอร์ มินัลแบบ RJE เทอร์มินัลแบบ RJE จะทำหน้าที่เก็บกักข้อมูลที่ส่งมาจากต้นทางแล้วทำการส่งต่อไปยังปลาย ทาง ในทางกลับกัน ถ้าผู้รับทางปลายทางต้องการจะส่งข้อมูลกลับมายังต้นทางบ้างก็สามารถส่งข้อมูลโดยผ่าน มาทางเทอร์มินัลแบบ RJE กลับมาได้
                ลักษณะการใช้งานของโปรโตคอล RJE คือจะใช้กับการส่งข้อมูลให้กับกลุ่มผู้ใช้ ซึ่งเรียงลำดับต่อ
ตามกันแบบเดียวกับการใช้โปรโตคอลซิงโครนัส ซึ่งข้อมูลจะส่งเรียงตามกันแบบเครื่องต่อเครื่อง ซึ่งจะกล่าวต่อ ไป ในปัจจุบันโปรโตคอล RJE จะใช้กับการส่ง-รับข้อมูลที่เป็นบล็อกขนาดใหญ่ระหว่างไมโครคอมพิวเตอร์ กับ เครื่องเมนเฟรม หรือกับโฮสต์คอมพิวเตอร์
                สำหรับการสื่อสารระหว่างเครื่อง PC กับเครื่อง PC ด้วยกันแล้ว จะมี PC เครื่องหนึ่งทำหน้าที่เลียน
แบบ (Emulate) เป็นเทอร์มินัลแบบ RJE สำหรับส่งผ่านข้อมูลไปยัง PC อีกเครื่องหนึ่ง โปรแกรมสำหรับการ เลียนแบบเทอร์มินัลแบบ RJE มักมีอยู่ในคอมพิวเตอร์ทั่วๆ ไป สำหรับเทอร์มินัลที่นิยมใช้กันมาก ได้แก่ เทอร์ มินัลของเครื่อง IBM2780 หรือ IBM3780 สำหรับการส่ง-รับข้อมูลระหว่างคอมพิวเตอร์ขนาดใหญ่ 2 เครื่อง ที่ต่างบริษัทผู้ผลิต หรือมีระบบบางอย่างต่างกัน ก็มักจะนิยมส่ง-รับข้อมูลกันโดยอาศัยโปรโตคอลแบบ RJE นี้ ด้วยเช่นกัน

Synchronous

โปรโตคอลซิงโครนัส(Synchronous)
                วิธีการส่งข้อมูลของโปรโตคอลซิงโครนัสคือข้อมูลจะถูกจัดรวมเข้าเป็นแมสเสด หรือ ข่าวสาร
(Message) โดยแต่ละแมสเสดจะประกอบด้วยแฟรก (Flag) ที่ส่วนหัว (Header) และส่วนท้าย (Tailer) ของแมสเสดดังรูป
               
               
                                                       ส่วนหัว                  ข่าวสาร               ส่วนท้าย
                Flag ที่ส่วนหัวจะประกอบด้วยบิตอักขระแสดงจุดเริ่มต้นของข่าวสาร หรือ SOH
(Start of Header) จากนั้นจะเป็นรายละเอียดเกี่ยวกับข่าวสารที่จะส่ง เพื่อให้ทางผุ้รับสามารถจัดลำดับรวบ รวมข้อมูลเมื่อถึงปลายทางได้ถูกต้อง หรืออาจจะบอกตำแหน่งของปลายทาง รวมทั้งบอกเส้นทางการสื่อสาร แล้วจึงจบบิตส่วนหัวด้วยอักขระแสดงจุดเริ่มต้นของข้อความหรือ STX (Start of Text) จากนั้นจึงเป็นข้อความ หรือข้อมูลที่ต้องการจะส่งให้ผู้รับ
                เมื่อจบจากข้อความข่าวสารทั้งหมดแล้ว จะต่อด้วยแฟรกส่วนท้ายของข่าวสารซึ่งประกอบด้วยบิต
อักขระแสดงจุดสิ้นสุดข้อความ หรือ ETX (End of Text) แล้วจึงตามด้วยบิตสำหรับการตรวจสอบข้อผิดพลาด ของข้อมูล หรือ FCS (Frame Check Sequence) ในการตรวจสอบพาริตี้บิตที่ปลายทางผู้รับ จากนั้นจึงจบ แมสเสดลงด้วยอักขระแสดงจุดสิ้นสุดการส่งข่าวสาร หรือ EOT (End of Transmission)
                โปรโตคอลซิงโครนัสที่มีใช้กันอย่างแพร่หลาย ได้แก่ SDLC และ X.25 ซึ่งจะมีลักษณะการทำงาน
คล้ายคลึงกันคือแยกข้อมูลทั้งหมดออกเป็นแมสเสด ๆ มีการควบคุมการส่งข้อมูล เพื่อป้งอกันกรณีปลายทางรับ ข่าวสารไม่ทัน สามารถกำหนดเส้นทางการส่งข้อมูลในระบบเครือข่ายได้ บอกตำแหน่งของผู้ส่ง และผู้รับรวม ทั้งกำหนดหน้าที่ของเลเยอร์ที่1 และเลเยอร์ที่ 2 ในรูปแบบ OSI โปรโตคอลทั้ง 2 ชนิดนี้จะไม่ใช้ในเลเยอร์ ระดับสูง
                ข้อแตกต่างของโปรโตคอล SDLC และ X.25 คือโปรโตคอล X.25 เป็นโปรโตคอลของระบบ
เครือข่ายแบบแพ็กเกจสวิตชิ่ง ส่วนโปรโตคอล SDLC เป็นโปรโตคอลมาตราฐานในระบบ On-line ซึ่งไม่ใช้ แพ็กเกจสวิตชิ่งในการเชื่อมโยงเส้นทางการสื่อสาร



SDLC

    Flag ที่ส่วนหัวจะประกอบด้วยบิตอักขระแสดงจุดเริ่มต้นของข่าวสาร หรือ SOH
(Start of Header) จากนั้นจะเป็นรายละเอียดเกี่ยวกับข่าวสารที่จะส่ง เพื่อให้ทางผุ้รับสามารถจัดลำดับรวบ รวมข้อมูลเมื่อถึงปลายทางได้ถูกต้อง หรืออาจจะบอกตำแหน่งของปลายทาง รวมทั้งบอกเส้นทางการสื่อสาร แล้วจึงจบบิตส่วนหัวด้วยอักขระแสดงจุดเริ่มต้นของข้อความหรือ STX (Start of Text) จากนั้นจึงเป็นข้อความ หรือข้อมูลที่ต้องการจะส่งให้ผู้รับ
                เมื่อจบจากข้อความข่าวสารทั้งหมดแล้ว จะต่อด้วยแฟรกส่วนท้ายของข่าวสารซึ่งประกอบด้วยบิตอักขระแสดงจุดสิ้นสุดข้อความ หรือ ETX (End of Text) แล้วจึงตามด้วยบิตสำหรับการตรวจสอบข้อผิดพลาด ของข้อมูล หรือ FCS (Frame Check Sequence) ในการตรวจสอบพาริตี้บิตที่ปลายทางผู้รับ จากนั้นจึงจบ แมสเสดลงด้วยอักขระแสดงจุดสิ้นสุดการส่งข่าวสาร หรือ EOT (End of Transmission)
                โปรโตคอลซิงโครนัสที่มีใช้กันอย่างแพร่หลาย ได้แก่ SDLC และ X.25 ซึ่งจะมีลักษณะการทำงานคล้ายคลึงกันคือแยกข้อมูลทั้งหมดออกเป็นแมสเสด ๆ มีการควบคุมการส่งข้อมูล เพื่อป้งอกันกรณีปลายทางรับ ข่าวสารไม่ทัน สามารถกำหนดเส้นทางการส่งข้อมูลในระบบเครือข่ายได้ บอกตำแหน่งของผู้ส่ง และผู้รับรวม ทั้งกำหนดหน้าที่ของเลเยอร์ที่1 และเลเยอร์ที่ 2 ในรูปแบบ OSI โปรโตคอลทั้ง 2 ชนิดนี้จะไม่ใช้ในเลเยอร์ ระดับสูง
                ข้อแตกต่างของโปรโตคอล SDLC และ X.25 คือโปรโตคอล X.25 เป็นโปรโตคอลของระบบ
เครือข่ายแบบแพ็กเกจสวิตชิ่ง ส่วนโปรโตคอล SDLC เป็นโปรโตคอลมาตราฐานในระบบ On-line ซึ่งไม่ใช้ แพ็กเกจสวิตชิ่งในการเชื่อมโยงเส้นทางการสื่อสาร

X.25


โปรโตคอล X.25 เป็นโปรโตคอลแบบบิตข้อมูล (Bit-Oriented) ซึ่งกำหนดมาตรฐานโดยองค์กร
CCITT (Consulative Committee in International Telegraphy and Telephony) ซึ่งใช้กันแพร่ หลายทั้งในยุโรปและอเมริกาเหนือ การทำงานของโปรโตคอล X.25 จะอยู่ในเลเยอร์ 3 ชั้นล่างของรูปแบบ OSI เท่านั้น บางครั้งเราเรียกโปรโตคอล X.25 ว่า"แพ็กเกจเลเยอร์โปรโตคอล"(Packet Layer Protocol) เพราะมักใช้เครือข่ายแพ็กเกจสวิตช์
                โปรโตคอล X.25 ใช้ติดต่อระหว่างเครื่องโฮสต์ หรือ DTE (Data Terminal Equipment) กับสถานีนำส่ง หรือ DCE (Data Communication Equipment) สำหรับในการอินเตอร์เฟซกับเลเยอรืชั้นล่าง สุด(Physical Layer) โปรโตคอล X.25 ยังต้องอาศัยโปรโตคอล X.21 หรือ X.21 bis ช่วยในการติดต่อกับ การอินเตอร์เฟซแบบดิจิตอลและอินเตอร์เฟซแบบอนาล็อกตามลำดับ ดังรูป


รูป การใช้โปรโตคอล X.25 ในเลเยอร์ 3 ชั้นล่าง
                เฟรมข้อมูลของโปรโตคอล X.25 นั้นจะแบ่งออกเป็นเฟรม ๆ เรียกว่าแพ็กเกตเช่นเดียวกับเฟรม
ข้อมูลของโปรโตคอล SDLC ในการสื่อสารข้อมูลกันระหว่าง DTE และ DCE ในเลเยอร์ชั้นที่ 2 นั้น สามารถ สื่อสารกันโดยผ่านทางสายโทรศัพท์ได้
                สำหรับในการสื่อสารข้อมูลในเลเยอร์ชั้นที่ 3 เลเยอร์ Network หรือบางทีเรียกว่า "เลเยอร์
Packet" จะมีลักษณะการสื่อสารที่เรียกว่า วงจรเสมือน (Virtual Circuit) ซึ่งมีลักษณะการติดต่อสื่อสารอยู่ 3 ขั้นตอนคือ
                1. การกำหนดวงจรสื่อสาร (Establish) เริ่มต้นจาก DTE ต้นทางส่งสัญญาณขอติดต่อข้อมูลกับ
DTE ปลายทาง เมื่อทาง DTE ปลายทางตอบรับการติดต่อว่าพร้อม ก็เป็นอันว่าวงจรการสื่อสารได้เริ่มต้นขึ้น แล้ว
                2. การส่ง - รับข้อมูล (Transmit) เป็นการรับ - ส่งแลกเปลี่ยนข้อมูลซึ่งกันและกันระหว่าง DTE ทั้ง
2 ด้าน ข้อมูลจะถูกส่งเป็นแพ็กเกจ ๆ ผ่านเครือข่ายแพ็กเกจสวิตช์
                3. การยุติการสื่อสาร (Disconnect) DTE ต้นทางจะส่งสัญญาณบอกยุติการสื่อสารต่อ DTE ปลาย
ทาง โดยต้องรอให้ DTE ปลายทางยืนยันการยุติการสื่อสารกลับมาด้วย
                ในรูปเป็นการแสดงการสื่อสารข้อมูลผ่านเครือข่ายแพ็กเกจสวิตช์โดยอาศัยโปรโตคอล X.25 ทั้ง
3 ขั้นตอน
                รูป
                โปรโตคอล X.25 สามารถใช้ได้กับอุปกรณ์สื่อสารข้อมูลทั่วไป ที่ผลิตจากบริษัทต่างกัน และยัง
สามารถใช้ได้กับเครือข่ายการสื่อสารที่มีสถาปัตยกรรมต่างกันได้อีกหลายแบบ จึงทำให้โปรโตคอล X.25 เป็น โปรโตคอลที่นิยมใช้กันมากในปัจจุบัน




BSC หรือ BISYN



เป็นโปรโตคอลซิงโครนัสแบบเฉพาะที่ใช้กับเครือข่ายสื่อสารข้อมูลที่ใช้เครื่องคอมพิวเตอร์ IBM
ตัวอย่างการใช้งาน  
ระบบเครือข่าย ATM ของธนาคารที่ใช้เครื่องคอมพิวเตอร์ของ IBM
ลักษณะการทำงาน
                โปรโตคอล BSC จะทำการส่งข้อมูลในรูปของกลุ่มบิต หรือ ไบต์ (Bytes) ข่าวสารที่จะส่งประกอบด้วยจุดเริ่มต้นส่วนหัว (SOH) ข้อความ จุดสิ้นสุดข้อความ (EOT) และส่วนท้ายของข่าวสาร โดยรหัสบิตที่ใช้จะเป็นอักขระขนาด 8 บิต (1 ไบต์) รหัสที่ใช้แทนตัวอักษร ได้แก่ รหัสแอสกี และรหัสแอบซีดิก
โปรโตคอล BSC เป็นการสื่อสารข้อมูลแบบครึ่งดูเพล็กซ์ คือผลัดกันโต้ตอบระหว่างผู้ส่งและผู้รับ ผู้ส่งจะเป็นผู้ควบคุมการสื่อสารที่เรียกว่า มาสเตอร์ (Master) ส่วนผู้รับจะทำหน้าที่เป็นผู้ตามหรือ “สเลบ” (Slave) โดยมีหน้าที่ ตอบรับการสื่อสารเพียงอย่างเดียว
 รูปแสดงการตอบโต้การรับส่งข้อมูลของโปรโตคอล BSC

HDLC

โปรโตคอล HDLCเป็นโปรโตคอลมาตรฐานซึ่งกำหนดขึ้นโดยองค์การ ISOเพื่อเพิ่มความเร็วในการส่ง-รับข้อมูลแบบซิงโครนัส สามารถใช้ได้กับการเชื่อมโยงการส่งทั้งแบบจุดต่อจุด และแบบหลายจุด การส่ง-รับข้อมูลเป็นได้ทั้งดูเพล็กซ์เต็มและครึ่งดูเพล็กซ์ข้อมูลที่รับ-ส่งเป็นแบบบิตข้อมูล (Bit-Orient)ใช้วิธีการส่งผ่านข้อมูลแบบซิงโครนัส
                โปรโตคอล HDLC จะกำหนดผู้ส่งและผู้รับเป็นสถานีปฐมภูมิ และสถานีทุติยภูมิ (Primary/Secondary)โดยสถานีปฐมภูมิจะเป็นผู้ควบคุมการติดต่อเชื่อมโยง และการส่ง-รับของข้อมูลภายในเครือข่ายการสื่อสาร ส่วนสถานีทุติยภูมิจะเป็นเพียงผู้รับคอยปฏิบัติตามคำสั่ง และส่งสัญญาณตอบรับเท่านั้น

รูปการเชื่อมโยงการสื่อสารโปรโตคอล HDLC

ISDN

ISDN (Integrated Service Digital Network) คือบริการสื่อสารโทรคมนาคมระบบดิจิตอลที่สามารถรับส่งข้อมูลทั้งในระบบภาพ เสียง และข้อมูล ด้วยความเร็ว 128 Kbps ขึ้นไป ข้อดีของการใช้ ISDN คือความน่าเชื่อถือในการรับส่งข้อมูล อุปกรณ์สื่อสารของผู้ใช้บริการไม่ต้องมีการแปลงสัญญาณ (Conversion) ทำให้ความเพี้ยนของสัญญาณมีน้อยมาก ตลอดจนสิ่งรบกวน (Noise) ก็จะลดลงด้วย ทำให้ข้อมูลข่าวสารที่รับส่งในโครงข่าย ISDN มีความถูกต้องไว้ใจได้สูงกว่าแบบเดิม
ลักษณะการใช้งานเหมือนกับการหมุนโทรศัพท์ธรรมดาปกติ คือเสียครั้งละ 3 บาท ก่อนจะใช้คุณต้องหมุนโทรศัพท์ไปที่เบอร์ของ ISP ที่เป็น ISDN ด้วยจึงจะได้ความเร็วของ ISDN ตามที่กำหนด
รูปแบบการใช้บริการ ISDN มี 2 แบบ คือ
1. แบบ BRI (Basic Rate Interface) หรือทางองค์การโทรศัพท์เขาเรียกว่า BAI (Basic Access Interface) เป็นรูปแบบการให้บริการด้วยคู่สายโทรศัพท์ธรรมดาจากชุมสาย ISDN จนถึงอุปกรณ์ปลายทาง คู่สายเพียง 1 คู่สาย สามารถที่จะรองรับอุปกรณ์ปลายทางชนิดต่าง ๆ ได้สูงสูด 8 อุปกรณ์และสามารถใช้งานได้ 2 อุปกรณ์พร้อมกันในเวลาเดียวกัน เนื่องจากภายในคู่สาย ISDN แบบ BRI นี้จะประกอบไปด้วยช่องสัญญาณ 2 ช่องโดยแต่ละช่องสามารถให้บริการด้วยความเร็ว 64 Kbps ทำให้ได้ความเร็วรวมสูงสุดถึง 128 Kbps บริการนี้เหมาะสำหรับธุรกิจขนาดเล็กและขนาดกลาง
2. แบบ PRI (Primary Rate Interface) เป็นรูปแบบการให้บริการโดยการวางเคเบิลแบบไฟเบอร์ออฟติคไปยังตู้สาขาแบบ ISDN (ISDN PABX) ของผู้เช่าเคเบิลเส้นหนึ่งจะช่องสัญญาณอยู่ 30 ช่อง แต่ละช่องให้บริการด้วยความเร็ว 64 Kbps ซึ่งแต่ละช่องสามารถที่จะรวมสัญญาณเข้าด้วยกันทำให้ได้ความเร็วรวมสูงสุด คือ 2.048 Mbps บริการนี้เหมาะสำหรับธุรกิจขนาดใหญ่

Proxy Server ด้วยรูปแบบข้างต้น ระบบของท่านจะต้องทำการติดตั้ง Proxy Serverเพื่อเป็นตัวกลางในการติดต่อไปยัง Internet โดย Webpage ต่างๆ ที่ถูกเรียกขึ้นมาใช้จะถูกเก็บไว้ใน Proxy Server และเมื่อ User มีการเรียกใช้ Webpage นั้น Webpageดังกล่าวจะปรากฏขึ้นอย่างรวดเร็ว โดยไม่ต้องเสียเวลาถึงข้อมูลจาก Internet มาใหม่

Mail Server การมี mail server ภายในองค์กรเอง เพื่อความคล่องตัวในการจัดการกับ mailbox ของผู้ใช้แต่ละคน โดยสามารถเพิ่มเติม หรือแก้ไขข้อมูลของผู้ใช้ e-mai lภายในองค์กรของท่าน และเนื่องจากระบบท่านเชื่อมต่ออินเทอร์เน็ตตลอดเวลา การรับส่ง mail จึงสามารถทำได้ทันที
 DNS Server สำหรับดูแลอินเทอร์เน็ตโดเมนขององค์กร และให้บริการแก่ผู้ใช้ภายในองค์กร
Web Server เพื่อให้บริการข้อมูลบน web site ขององค์กร โดยท่านจะใช้ server ของท่านเองเพื่อความคล่องตัว

สิ่งที่ระบบขององค์กรต้องการ
          1. ISDN Moderm
          2. ISDN 1 คู่สาย
          3. ISDN Router หรือ Computer เพื่อทำเป็น Proxy Server

สิ่งที่ เอเน็ต จัดเตรียมให้
          1. โทรศัพท์ 1 คู่สาย และ Access Server 1 Post สำหรับการเชื่อมต่อจากท่าน
          2. IP Address สำหรับ Server ของท่านที่จะใช้ในการติดต่อสื่อสารข้อมูล
          3. จดทะเบียนอินเทอร์เน็ตโดเมนสำหรับองค์กรท่าน (คิดค่าจดทะเบียน)


สรุป     

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

ตัวอย่างของโปรโตคอล
1. โปรโตคอล HTTP หรือ Hypertext Transfer Protocol จะใช้เมื่อเรียกโปรแกรมบราวเซอร์ (Browser)
2. โปรโตคอล TCP/IP หรือ Transfer Control Protocol/Internet Protocolคือเครือข่ายโปรโตคอลที่สำคัญมากที่สุด เนื่องจากเป็นโปรโตคอลที่ใช้ในระบบเครือข่าย Internet รวมทั้ง Intranet ซึ่งประกอบด้วย 2 โปรโตคอลคือ TCP และ IP
3. โปรโตคอล SMTP หรือ Simple Mail Transfer Protocol คือ โปรโตคอล ที่ใช้ในการรับส่งจดหมายอิเล็กทรอนิกส์บนเครือข่ายอินเทอร์เน็ต
นอกจากโปรโตคอลที่กล่าวมาข้างต้นแล้ว ยังมีโปรโตคอลต่างๆอีกมากมาย เช่น การโอนย้ายแฟ้มระหว่างกัน ใช้โปรโตคอลชื่อ FTP หรือ File Transfer Protocol การโอนย้ายข่าวสารระหว่างกันก็ใช้โปรโตคอลชื่อ NNP หรือ Network News Transfer Protocol และยังมีโปรโตคอลที่สำคัญสำหรับการสอบถามข้อมูลข่าวสารระหว่างกัน ซึ่งเป็นโปรโตคอลที่มีประโยชน์มาก โปรโตคอลนี้มีชอว่า ICMP หรือ Internet Control Message Protocolเป็นต้น