วันอังคารที่ 12 กุมภาพันธ์ พ.ศ. 2556

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

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

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

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

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

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

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

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

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

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

วันจันทร์ที่ 11 กุมภาพันธ์ พ.ศ. 2556

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


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

 

โปรโตคอล (Protocol)

การที่จะทราบว่าโปรโตคอล (Protocol) คืออะไรต้องกล่าวถึงยุคแรกของการผลิตคอมพิวเตอร์ ในยุคนั้นผู้ผลิตแต่ละรายก็ได้ผลิตคอมพิวเตอร์ตามมาตรฐานของตนเองขึ้นมา ซึ่งสามารถทำงานได้เฉพาะกับเครื่องๆ เดียวเท่านั้น จากการที่มีการพัฒนาเครื่องคอมพิวเตอร์และระบบการทำงานที่ทันสมัย ทำให้การติดต่อระหว่างเครื่องคอมพิวเตอร์เป็นเรื่องที่สำคัญขึ้นมา แต่เนื่องจากการที่เครื่องแต่ละเครื่องผลิตขึ้นมาโดยมาตรฐานที่ไม่เหมือนกัน ทำให้การส่งข้อมูลระหว่างเครื่องนั้นเป็นไปได้ยาก ดังนั้นจากจุดนี้ทำให้เกิดการสร้างมาตรฐานของข้อมูลขึ้น เพื่อความสะดวกของเครื่องคอมพิวเตอร์ในการที่จะติดต่อสื่อสารกัน โปรโตคอลการสื่อสารมีมากมายหลายแบบ เช่น X.25, NetBEUI, IPX/SPX, TCP/IP เป็นต้นกระบวนการที่โปรโตคอลในระดับต่างๆ ถูกรวมเข้าโปรโตคอลอื่นๆ เรียกว่า “Binding” การดำเนินการนี้จะเกิดขึ้นเพื่อจัดเตรียมให้ข้อมูลได้รับการกำหนดเส้นทางการขนส่งตั้งแต่ระดับ Application Layer ลงมาจนถึงการ์ด

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

5.1 หน้าที่ของโปรโตคอล

โปรโตคอล คือกฏเกณฑ์และกระบวนการในการสื่อสาร ซึ่งกฎของการสื่อสารนี้สามารถนำมาประยุกต์ใช้กับการสื่อสารข้อมูลในระบบเครือข่ายคอมพิวเตอร์ได้ โดยที่โปรโตคอลจะมีอยู่หลายชนิด โปรโตคอลแต่ละชนิดจะมีจุดประสงค์ในการทำงานที่แตกต่างกันแต่จะช่วยในการสื่อสารบนระบบเครือข่าย โดยโปรโตคอลแต่ละตัวจะทำงานร่วมกันเป็นลำดับชั้นในรูปแบบของชุดโปรโตคอล (Protocol Stack) เช่น ในโครงสร้างแบบ OSI Model จะมีโปรโตคอลต่างๆ ทำงานอยู่ในเลเยอร์แต่ละระดับชั้น ในการสื่อสารข้อมูล การทำงานในแต่ละเลเยอร์จะเป็นการทำงานหนึ่งขั้นตอน โดยการทำงานแต่ละขั้นตอนจะมีกระบวนการที่แตกต่างกันไปกฏเกณฑ์การสื่อสารก็มีลักษณะเดียวกับการพูด หากพูดคนละภาษาก็ไม่สามารถเข้าใจซึ่งกันและกันได้ ดังนั้นการใช้กฏเกณฑ์ที่แตกต่างกันจะทำให้ไม่สามารถสื่อสารกันได้ ในทำนองเดียวกันเครื่องคอมพิวเตอร์ที่ใช้โปรโตคอลแตกต่างกันจะไม่สามารถทำการสื่อสารข้อมูลระหว่างกันได้
5.1.1 Routable Protocol
ในราวกลางปี 1980 ระบบเครือข่าย LAN ส่วนใหญ่ถูกจัดตั้งแยกจากกัน โดย LAN หนึ่งวงจะถูกใช้
โดยองค์กรหรือหน่วยงานใดหน่วยงานหนึ่งเท่านั้น จึงยังไม่เกิดระบบเครือข่ายขนาดใหญ่ขึ้นมา ต่อมาการทำงานบนระบบเครือข่ายเริ่มที่จะได้รับความนิยมเพิ่มมากขึ้น จึงมีความต้องการในการเชื่อมต่อวง LANต่างๆ เหล่านี้เข้าด้วยกันเป็นระบบเครือข่าย WAN เพื่อแลกเปลี่ยนข้อมูลทางธุรกิจ หรือข้อมูลอื่นๆ ระหว่างกัน จนเป็นเครือข่ายขนาดใหญ่และซับซ้อน ในการขนส่งข้อมูลระหว่างวง LAN เหล่านี้ จึงมีเส้นทางในการขนส่งข้อมูลได้หลายเส้นทาง จำเป็นที่จะต้องใช้โปรโตคอลที่สามารถระบุเส้นทางการขนส่งข้อมูลได้ หรือที่เรียกว่า Routable Protocol สำหรับช่วยในการขนส่งแพ็กเก็ตข้อมูลข้ามไปมาระหว่างวง LAN ที่เชื่อมโยงเข้าด้วยกันนี้ได้อย่างเหมาะสมoo;lklklkl

Transmission Control Profocol/Internet Protocol
ความรู้เบื้องต้น เกี่ยวกับ 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 ProtocolTCP เป็นโปรโตคอลที่ต่างจากโปรโตคอลอื่นที่กล่าวถึงในบทก่อนหน้านี้ จะเห็นได้ว่าโปรโตคอลในระดับ 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 อาจจะถูกแบ่งออกและส่งไปในลำดับที่ไม่เรียงกันหากไม่มีจุดอ้างอิงของข้อมูล ก็จะไม่สามารถอ่านข้อมูลกลับใหม่ได้อย่างสมบูรณ์และถูกต้อง การส่งข้อมูลและการตอบรับจะใช้ฟิลด์นี้เป็นตัวยืนระหว่างกันเสมอ




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




จากภภาพแสดงให้เห็นการยุติการเชื่อมต่อสามารถอธิบายการทำงานในแต่ละเซกเมนต์ของการยุติการติดต่อได้ดังนี้
Segment 1 พอร์ตหมายเลข 500 บนโฮสต์ 10.15.14.1 ต้องการยุติการส่งข้อมูลให้กับพอร์ตหมายเลข 80 ของโฮสต์ 10.15.14.2 จึงทำากรส่งสัญญาณโดยการเซ็ต TCP flag FIN ของ TCP เซกเมนต์ โดยหมายเลขSequence เท่ากับ 12000 ไปยังโฮสต์ 10.15.14.2 พอร์ต หมายเลข 80
Segment 2โฮสต์ 10.15.14.2 ได้รับสัญญาณยุติการติดต่อ (FIN) ก็ทำการตอบรับโดยการส่ง ACK กลับไปพร้อมหมายเลข Acknowledge เท่ากับ 12001เพื่อเป็นการรับทราบการยุติการส่งข้อมูลของโฮสต์ 10.15.14.1
Segment 3 โฮสต์ 10.15.14.2 ได้ส่งสัญญาณยุติการส่งข้อมูลไปยังโฮสต์ 10.15.14.1 เช่นกัน โดยการส่ง FIN ด้วยหมายเลข sequence เท่ากับ 23000
Segment 4 โฮสต์ 10.15.14.1 ได้รับสัญญาณยุติการส่งของโฮสต์ 10.15.14.2 ในเซกเมนต์ 3 ก็ทำการตอบรับกลับไปด้วย ACK หมายเลข Acknowledge เท่ากับ 23001 ครบทั้ง 4 เซกเมนต์เป็นอันหมดสิ้นกระบวนการยุติการติดต่อระหว่างโฮสต์ 10.15.14.2 และโฮสต์ 10.15.14.1 เรียบร้อยหากต้องการจะสื่อสารกันใหม่ก็ต้องส่งสัญญาณเพื่อสร้างการเชื่อมต่อกันใหม่การยุติการติดต่อสามารถกระทำได้ทั้งฝั่งไคลเอนต์หรือเซิร์ฟเวอร์ และสามารถยุติเวลาใดของการติดต่อก็ได้ TCP Half - Close การยุติการเชื่อมต่อโดยที่โฮสต์ส่ง FIN ACK ออกไป มิได้หมายความว่าการสื่อสารจะยุติลงในทันที เป็นเพียงการแจ้งให้อีกฝ่ายหนึ่งทราบว่าจะไม่มีข้อมูลส่งอีกต่อไป แต่โฮสต์จะยังคงสามารถรับข้อมูลเข้ามาได้อีกต่อไป จนกว่าโฮสต์อีกฝั่งหนึ่งจะส่ง FIN ACK เพื่อขอยุติการส่งข้อมูลเช่นกัน เมื่อไม่มีฝ่ายใดประสงค์จะส่งข้อมูลกันนั่นก็คือการเชื่อมต่อได้ยุติลงอย่างสมบูรณ์ในระหว่างที่โฮสต์
ส่ง FIN ACK ออกไปและยังไม่ได้รับ FIN ACK กลับมานั้นเรียกว่า Half - Close คือการปิดเพียงด้านส่งข้อมูลเพียงด้านเดียวแต่ยังคงเปิดด้านรับไว้รับข้อมูลซึ่งคุณสมบัตินี้แอพพลิเคชั่นจะสามารถนำไปใช้ให้เป็นประโยชน์ได้ขึ้นอยู่กับลักษณะของการใช้งานเช่นการสื่อสารข้อมูลบางประเภทโฮสต์ที่ทำหน้าที่รับข้อมูลอาจไม่มีความจำเป็นต้องโต้ตอบกับโฮสต์ที่ส่งข้อมูลในระดับแอพพลิเคชั่น ดังนั้น จึงอาจจะสามารถทำงานได้อย่างต่อเนื่องแม้ว่า TCP จะอยู่ในสถานะ Half - Close ก็ตาม

Internet Protocol (IP)IIP เป็นโปรโตคอลที่ทำหน้าที่รับภาระในการนำข้อมูลไปส่งยังจุดหมายปลายทางไม่ว่าที่ใด ๆ ในอินเทอร์เน็ตโปรโตคอลต่าง ๆ ใน TCP/IP Suiteทั้ง TCP, UDP, ICMP ต่างก็ต้องอาศัยระบบนี้ทั้งสิ้น เนื่องจากตัวโปรโตคอลIP นี้มีกลไกที่ค่อนข้างฉลาดในการหาเส้นทางขนส่งข้อมูล รู้จักที่จะเช็คหาช่องทางไปยังจุดหมายทุกทางที่เป็นไปได้ โปรโตคอลอื่นที่อยู่เลเยอร์สูงขึ้นไปเลยไม่ต้องรับภาระปวดหัวในการหาวิธีส่งข้อมูลไปยังจุดหมายอีก ขอเพียงแค่เตรียมข้อมูลให้เสร็จสรรพแล้วส่งให้ IP ก็นอนได้ว่า IP จะพยายามอย่างสุดความสามารถที่จะหาทางไปให้ถึงจุดหมายให้จงได้ถึงแม้ว่า IP จะเป็นโปรโตคอลที่เชี่ยวชาญในการขนส่งข้อมูลไปได้ไกล ๆ แต่ก็มีจุดด้อยคือ IP เป็นโปรโตคอลที่ unreliable และ connectionless (เปรียบเสมือนเป็นระบบขนส่งที่ชำนาญรวดเร็วแต่ไม่รับประกันว่าข้อมูลจะถึงปลายทางหรือไม่การที่ IP มีข้อด้อย 2 ประการนี้ ดังนั้น โปรโตคอลเลเยอร์อื่น
ที่ใช้ IP เป็นตัวส่งข้อมูลจำเป็นต้องหาหนทางในการลดข้อด้อยเหล่านี้ลงไป เพื่อให้การรับส่งข้อมูลมีเสถียรภาพและเชื่อถือได้ซึ่งก็คือจะต้องมีกลไกในการรับประกันการรับส่งข้อมูลอีกชั้นนั้นเองการส่งข้อมูลด้วยIPเปรียบเสมือนการส่งจดหมายทั่วไปที่เราจ่าหน้าซองเรียบร้อยติดแสตมป์แล้วนำไปหย่อนในตู้ไปรษณีย์โดยส่วนใหญ่แล้วบุรุษไปรษณีย์ก็จะทำหน้าที่อย่างสม่ำเสมอคือนำจดหมายทีมีที่อยู่ไปส่งตามช่องทางไปจนถึงปลายทางเสมอ โดยในขั้นสุดท้าย บุรุษไปรษณีย์ก็จะนำจดหมายไปที่บ้านเลขที่ตามจ่าหน้าซอง แล้วก็หย่อนลงไปใจตู้รับจดหมายของผู้รับซึ่งจะเห็นว่าด้วยการทำงานปกติจดหมายน่าจะถึงปลายทางเสมอแต่โอกาสที่จะเกิดอุปสรรคทำให้จดหมายไม่ถึงปลายทางก็เป็นไปได้ จุดสำคัญที่ยกตัวอย่างการส่งจดหมายเปรียบเทียบกับการใช้โปรโตคอล
      IP คือ ผู้ส่งไม่อาจทราบสถานะ การส่งของตนเองแล้วข้อมูลที่ส่งไปถึงปลายทางหรือไม่ ไม่มีการยืนยันตอบกลับจาก IP ว่าถึงหรือไม่ถึงปลายทาง ถึงแม้ว่าโดยส่วนใหญ่แล้วข้อมูลจะส่งถึงปลายทางก็ตาม ซึ่งการยืนยันนั้นเป็นสิ่งสำคัญ เพราะคนส่งข้อมูลจะได้ไม่ต้องรออย่างไม่มี เป้าหมาย ถ้าข้อมูลถึงปลายทางก็จะได้สื่อสารกันต่อ ถ้าส่งไม่ถึงก็จะได้ไปทำอย่างอื่นไม่ต้องรอสำหรับความหมายจริง ๆ ของ unreliable และ connectionless ในแง่ของ IP คือUnreliable ด้วยตัวโปรโตคอล IP เองมีกลไกในการหาเส้นทางการเดินของข้อมูล (routing)ไปยังปลายทางโดยจะพยายามใช้กลไกเหล่านั้นในการส่งข้อมูลไปถึงปลายทางให้จงได้แต่ไม่มีการตรวจสอบว่าปลายทางได้รับข้อมูลหรือไม่ กลไกการแจ้งกลับมีเพียงในกรณีที่ปัญหาเกิดขึ้นระหว่างการเดินทาง เช่นเราเตอร์มีปัญหา หาเส้นทางไม่ได้ ก็จะใช้ ICMP ส่งข้อความกลับมาให้ผู้ส่งทราบซึ่งอาจจะถึงผู้ส่งหรือไม่ถึงก็ได้ ดังนั้นหากส่งด้วย IP แล้วไม่มีการตอบกลับมาก็อาจจะเป็นไปได้ว่า ข้อมูลถึงปลายทางอย่างสมบูรณ์ หรือว่าข้อมูลไปไม่ถึงแต่ส่ง error message กลับมาไม่ได้ Connectionless หมายถึง IP จะไม่มีสถานนะเหมือนการเชื่อมต่อกันระหว่างต้นทางกับปลายทางโดยทั่วไปการที่โฮสต์สองโอสต์จะมีการเชื่อมต่อกันได้นั้นจะต้องทำอย่างไรอันแรกสุดก็จะต้องเอาสายมาเชื่อมต่อให้ถึงกันก่อน หลังจากนั้นก็จึงจะสามารถรับส่งข้อมูลได้ และเราก็สามรถรับส่งข้อมูลกันได้ตลอดตราบใดที่สายยังต่อยู่ เราอาจต่อสายค้างไว้ก็ได้ อยากส่งข้อมูลเมื่อไรก็ทำได้ทันที สำหรับโปรโตคอลฃ ระดับ IP แล้ว สายที่ต่อถึงกันที่ว่านั้นหมายถึงการเชื่อมต่อแบบลอจิคัล ไม่ใช่สายจริง ๆ แต่การบอกว่า IPมีการเชื่อมต่อแบบ connectioless นั่นคือหากรับส่งข้อมูลผ่าน IP จะต้องทำการต่อสายใหม่ทุกครั้งที่จะรับส่งข้อมูล
1 IP ดาต้าแกรม เมื่อส่งเสร็จก็ถือว่าเสร็จและทำการถอดสายออก ในระดับ IP ก็จะรู้จักข้อมูลเพียงแต่ในดาต้าแกรมเดียวเท่านั้น จะไม่รู้จักดาต้าแกรมอื่นที่ส่งก่อนหน้าหรือตามมา และจะไม่รู้ว่าดาต้าแกรมแต่ละอันมีความสัมพันธ์กันหรือไม่อย่างไร ภารกิจที่ IP ต้องทำให้สำเร็จคือ ทำการต่อสายไปยังปลายทางให้ได้แล้วส่งข้อมูลดาต้าแกรมนั้นไปให้ถึงก็ถอดสายออกเป็นอย่างนี้เรื่อยไปอาจจะมีกรณีที่ดูเหมือนว่า IP มีการสื่อสารอย่างต่อเนื่องและมีความสัมพันธ์กันระหว่างดาต้าแกรมก็คือกรณีของ Fragmentation ที่มีการกระจายข้อมูลออกเป็นหลายแพ็กเก็ตและเมื่อแพ็กเก็ตส่งถึงปลายทางแล้วจะต้องนำมารวมกันอีกครั้งหนึ่งตามลำดับ(จะอธิบายละเอียดในโอกาสต่อไป)ซึ่งแสดงว่า IP น่าจะมีความสัมพันธ์กันระหว่างดาต้าแกรมแท้ที่จริงแล้วความสัมพันธ์ดังกล่าวมิใช่ความสัมพันธ์กันระหว่างดาต้าแกรมแต่อย่างใดเป็นความสัมพันธ์ภายในดาต้าแกรมเดียวกันแต่ถูกกระจาย
ออกจากกันและนำกลับมารวมกันใหม่ให้เป็นดาต้าแกรมเดียวเหมือนเดิมมิใช่การนำข้อมูลดาต้าแกรมอื่นมาเชื่อมโยงรวมกันแต่อย่างใดข้อมูลหนึ่งดาต้าแกรมไม่จำเป็นที่จะต้องส่งเพียงครั้งเดียวหากความยาวเกินกว่าที่จะส่งได้ในแต่ละครั้นนั้น ดาต้าแกรมสามารถที่จะแบ่งย่อยเพื่อให้ขนาดของแพ็กเก็ตมีขนาดเหมาะสมได้
IP Header
จากภาพแสดงให้ถึง IP Header ขนาดของ IP Header โดยปกติจะมีขนาด 20 ไบต์ยกเว้นในกรณีที่มีการเพิ่มเติมออปชั่นบน IP Header จากภาพจะแสดงเป็นท่อนละ 32 บิตก็คือ 4 ไบต์โดยการส่งข้อมูลจะเรียบลำดับให้ไบต์แรกก่อนแล้วค่อนตามด้วยไปต์ถัดไปสำหรับข้อมูลแต่ละส่วนในเฮดเดอร์มีความหมายดังนี้





IP Header

บิต 0 - 3 เวอรชั่นของ TCP/IP ปัจจุบันเป็นเวอร์ชั่น 4
บิต 4 - 7 Header Length ความยาวของเฮดเดอร์โดยทั่วไปถ้าไม่มีออปชั่นค่าในส่วนนี้จะเป็น 5
ความหมายว่าความยาวข้อมูลมีขนาด 5 * 32 บิต หรือเท่ากับ 20 ไบต์นั่นเอง
บิต 8 -15 Type of Service (TOS) ปัจจุบันไม่ได้ใช้งานแล้ว ถูกออกแบบมาเพื่อเก็บค่าของ
Minimize delay, Maximize Throughput, Maximize reliability, Minimize Monetary cost เพื่อใช้เป็นตัวบ่งชี้ให้เราเตอร์ติดสินใจในการเลือกเราร์ข้อมูลแต่ละดาต้าแกรมอย่างไรก็ตามปัจจุบันไม่มี การนำส่วนนี้ไปใช้งานแต่อย่างใดบิต 16 - 31 Total length เป็นฟิลด์ที่บอกจำนวนไบต์ทั้งหมดของ IP Datagram ด้วยขนาด 16 บิตของฟิลด์นี้ แสดงว่าขนาดความยามข้อมูลของ IP ดาต้าแกรมจะมีขนาดสูงสุด 65535 ไบต์ ขึ้นอยู่กับความยาวข้อมูลของ MTU โดยทั่วไปแล้วถึงแม้ว่าเราจะสามารถส่งข้อมูลใน 1 ดาต้าแกรมได้สูงสุดถึง 5535 ไบต์แต่เมื่อข้อมูลส่งลงไป เลเยอร์ล่างก็จะถูกแฟลกเมจต์ก่อนทำาการส่งจริงอยู่ดี และแอพพลิเคชั่นเลเยอร์ส่วนใหญ่ก็จะรับส่งข้อมูล ครั้งละ 512ไบต์ใน1ดาต้าแกรมฟิลด์นี้เป็นฟิลด์ที่จำเป็นที่จะต้องระบุไว้ทุกดาต้าแกรมเพื่อทำให้สามารถถอด
ข้อมูลออกมาได้ บิต 32-47 Identification เป็นหมายเลขของดาต้าแกรมที่ส่งในกรณีที่มีการกระจายของดาต้าแกรม และนำกลับมารวมกันใหม่จะรู้ได้ว่ามาจากดาต้าแกรมเดียวกัน บิต 48 - 50 แฟลก ใช้ในกรณีที่มีการแฟรกเมจต์ของดาต้าแกรม บิต 51 - 63 Fragmentoffset ใช้ในการกำหนดตำแหน่งของข้อมูลใน1ดาต้าแกรมที่ถูกแฟกเมจต์กลับมาต่อ เรียงกันในตำแหน่งของข้อมูลที่ถูกต้อง
บิต 64 - 71 Time to live เป็นฟิลด์ที่กำหนดจำนวนครั้งสูงสุดที่ดาต้าแกรมนี้จะถูกเราต์ (route) เพื่อป้องกันมิให้ดาต้าแกรมถูกเราต์ไปโดยไม่มีที่สิ้นสุด ด้วยคุณสมบัติของ IP ที่จะถูกเราต์ไปเรื่อง ๆ จนกว่าจะถึงปลายทาง ซึ่งในบางครั้งอาจจะยังหาเส้นทางไม่ได้
 TTL จะเป็นตัวบอกจำนวนสูงสุดของการเราต์ หากว่าจำนวนครั้งที่ดาต้าแกรมถูกเราต์ไปเท่ากับ TTL แล้วยังไม่ถึงปลายทางก็ให้ทำการดร็อปดาต้าแกรมนี้ทิ้ง แล้วแจ้งกลับมายังต้นทาง ว่า Time out คือ หมดเวลาก่อน ทั้งนี้ในการเราต์ผ่านเราเตอร์ 1 ครั้ง ค่า TTL จะลดลง 1 หากเมื่อค่า TTL ลดลงจนถึง 0 เมื่อใดแสดงว่าดาต้าแกรมนั้นไทม์เอาท์ไปแล้วและจะไม่ถูกเราต์อีกต่อไป บิต 72 - 79 Protocol อย่างที่ได้กล่าวไปแล้วข้างต้นว่ามีโปรโตคอลย่อยหลายตัวที่อาศัย IP ในการขนส่งข้อมูล ดังนั้นเพื่อระบุว่าข้อมูลที่ IP กำลังส่งอยู่นี้เป็นของโปรโตคอลอะไรก็ต้องระบุไว้ในฟิลด์นี้ เช่น TCP, UDPd, ICMP เป็นต้น
บิต 80-95 Header checker เป็นส่วนตรวจสอบความถูกต้องของข้อมูลในเฮดเดอร์เพื่อป้องกันการผิดพลาด ในการส่งข้อมูล ซึ่งจะป้องกันเฉพาะข้อมูลในเฮดเดอร์เท่านั้น มิใช่ข้อมูลทั้งหมดในดาต้าแกรม บิต 96 - 127 Source IP Address คือ IP Address ของผู้ส่งข้อมูลดาต้าแกรม
บิต 128 - 163 Destination IP Address คือ IP Address ของปลายทางผู้รับข้อมูล ดาต้าแกรม
IP Header เป็นส่วนสำคัญที่สุดของ IP ดาต้าแกรม ก่อนที่เราจะศึกษาถึงช่องว่างและจุด บกพร่องของ IP จำเป็นต้องเข้าใจการทำงานปกติของ IP เสียก่อน แล้วจากนั้นเมื่อเห็นการโจมตีที่ระดับ IP ก็จะสามารถป้องกันและเข้าใจการโจมตีนั้นได้ไม่ยากนักค่าต่าง ๆ ในแต่ละฟิลด์ของ IP Header ล้วนเป็นกลไกที่ควบคุมการเดินทางของดาต้าแกรมในทางกลับกันเมื่อนำมาใช้ผิดวิธีก็อาจจะกลายเป็นเครื่องมือในการบุกรุกได้ จากภาพซึ่งแสดงส่วนประกอบของ IP Header นั้นจะเป็นพื้นฐานและสำคัญที่สุดที่จะต้องใช้ประกอบในการ วิเคราะห์การบุกรุกเสมอ ค่าต่าง ๆ ที่อยู่ในเฮดเดอร์อาจจะส่งผลที่เกิดขึ้นในระดับต่าง ๆ ในเน็ตเวิร์ก หรือเกิดผลกระทบต่อเป้าหมายได้ดังนั้นนักวิเคราะห์ที่ดีควรจะจดจำ IP Header ให้ได้จะเป็นประโยชน์ อย่างมากต่อการวิเคราะห์ต่อไปหากย้อนกลับไปในบทที่ 2 ซึ่งกล่าวถึงกิจกรรมที่เป็นสัญญาณควบคุมแล้ว
 IP Header ก็นับเป็นสัญญาณควบคุมประเภทหนึ่งเนื่องจาก IP Header โดยตัวเองมิได้เป็นข้อสนเทศ และมีหน้าที่หลักคือควบคุมการรับ - ส่ง ข้อสารสนเทศที่รวมอยู่ในดาต้าแกรมนั้น IP Header จะถูกใช้ไปในการ Demultiplexing เป็นหลัก เพื่อทำการสกัดเอาข้อสารสนเทศออก จาก IP  ดาต้าแกรมการส่งสัญญาณควบคุมผิดพลาด เช่นการมีข้อมูลบางฟิลด์ในเฮดเดอร์เป็นค่าที่ผิดปกติ อาจทำให้โปรแกรมถอดรหัสหรือ Demultiplexer ของผู้รับทำงานผิดเงื่อนไขและหยุดทำงานได้ในสภาวะปกติ ค่าฟิลด์ต่าง ๆ ในเฮดเดอร์จะถูกกำหนดขึ้นในขั้นตอนของการ Encapsulate เนื่องจากค่าในหลาย ๆ ฟีลด์เป็นผลจาการคำนวณขนาดของข้อมูล และยังมีบางค่าที่เป็นตัวตรวจสอบความถูกต้องของข้อมูลด้วย กระบวนการคำนวณและกำหนดค่าในเฮดเดอร์นี้จะเป็นไปโดยอัตโนมัติหากการทำงานของโปรแกรมเข้ารหัสหรือ Encapsulator เป็นไปอย่างถูกต้องแล้ว ค่าในเฮดเดอร์จะถูกต้องตรงตามโปรโตคอลเสมอกรณีที่ค่าในเฮดเดอร์ผิดปกตินั้นมีความเป็นไปได้อยู่ 2 กรณี คือEncapsulator ทำงานผิดพลาด เนื่องจาก Encapsulator ก็คือ โปรแกรมฝังอยู่กับอุปกรณ์สื่อสารสำหรับกรณีที่เป็นอุปกรณ์ TCP/IP ทั่วไปหรืออาจจะเป็น TCP Stack ในระบบปฏิบัติการในกรณีที่เป็นเครื่องคอมพิวเตอร์ซึ่งโปรแกรมเหล่านี้ก็มีโอกาสที่จะถูกเขียนมาอย่างไม่รอบคอบและในบางกรณีจะคำนวณค่าเฮดเดอร์ผิดพลาดได้การจงใจใส่ค่าที่ผิดพลาดลงในเฮดเดอร์เพื่อมุ่งร้ายในกรณีนี้แฮกเกอร์จะไม่ได้ส่งข้อมูลผ่านกระบวนการ Encapsulate ตามปกติ แต่จะเขียนโปรแกรมเพื่อสร้าง IP แพ็กเก็ตขึ้นมาเอง โดยที่มีข้อมูลในเฮดเดอร์เป็นค่าผิดปกติแปลกจากปกติเพื่อหวังผลให้กระบวนการ Demultiplexing ของผู้รับทำงานผิดปกติไปจากเดิม
IP Routing เป็นกระบวนการค้นหาเส้นทางในการส่งผ่านข้อมูลจากต้นทางไปยังที่หมายปลายทาง
โดยผ่านการส่งต่อของ อุปกรณ์ IP ที่อยู่ในเน็ตเวิร์กซึ่งจะช่วยกันทำหน้าที่ส่งต่อข้อมูลไปจนกว่าข้อมูลจะถึงปลายทางกลไกสำคัญที่ทำให้ IP เป็นโปรโตคอลสำคัญขนส่งข้อมูลไปยังทุกๆที่ในโลกบนอินเทอร์เน็ตที่ดีที่สุดในขณะนี้คือการที่ IP มีกระบวนการ IP Routing นี้เอง สิ่งที่น่าสนใจที่สุดของ IP Routing คือการที่ต้นทางและปลายทางของการสื่อสารนั้นในบางโอกาสต่างก็อยู่กันแสนไกล การสื่อสารข้อมูลแต่ละครั้ง ข้อมูลจะเดินทางผ่านโครงข่ายอันสลับซับซ้อนมากมายแต่ในที่สุดข้อมูลก็สามารถส่งถึงกันได้ในเวลาอันรวดเร็วเป็นที่น่าอัศจรรย์โครงข่ายอินเทอร์เน็ตคงไม่อาจเกิดขึ้นได้หากไม่มีโปรโตคอล IP ที่ช่วยให้เราเข้าใจคุณสมบัติของอินเทอร์เน็ตได้เป็นอย่างดีกระบวนการ IP Routing นี้ได้ถูกออกแบบมาอย่างชาญฉลาดและรัดกุมพอสมควรในอันที่จะให้บรรลุภารกิจในการขนส่งข้อมูล หลักการพื้นฐานของ IP Routing เริ่มต้นด้วยข้อกำหนดที่เรียบง่ายดังนี้
อุปกรณ์ที่ใช้ในเน็ตเวิร์กจำแนกได้เป็น 2 ประเภท คือ
- Host โฮสต์เป็นอุปกรณ์ที่ทำหน้าที่ให้กำเนิดข้อมูลในกรณีเป็นผู้ส่งหรือทำหน้าที่รับข้อมูลไปใช้งานในกรณีเป็นผู้รับ การสื่อสารข้อมูลใด ๆ จะต้องเป็นการสื่อสารจากโฮสต์ไปยังโฮสต์เสมอ สำหรับ IP Packet แล้วข้อมูลในเฮดเดอร์ที่ปรากฎอยู่ในฟิลด์ Source Address และ Destination Address ซึ่งเรียกว่า IP Address จะเป็นหมายเลขระบุตำแหน่งของโฮสต์ต้นทางและโฮสต์ปลายทางเท่านั้น
- Router เราเตอร์เป็นอุปกรณ์สำคัญอย่างยิ่งสำหรับ IP ที่ทำให้การขนส่งเป็นไปอย่างสมบูรณ์เราเตอร์ทำหน้าที่ในการส่งผ่านข้อมูลจากเน็ตเวิร์กหนึ่งไปยังอีกเน็ตเวิร์กหนึ่ง ตำแหน่งของเราเตอร์ระหว่างสองเน็ตเวิร์กเข้าด้วยกัน ด้วยข้อกำหนดของ IP ข้อมูลจะส่งไปถึงกันโดยตรงข้ามเน็ตเวิร์กได้จะต้องอาศัยเราเตอร์เป็นผู้ทำหน้าที่ส่งผ่านข้อมูลไปให้ดังนั้นเน็ตเวิร์กของIPถึงแม้มิได้ต่อถึงกันในทางกายภาพแต่ก็สามารถสื่อสารกันได้โดยอาศัยเราเตอร์ เป็นตัวเชื่อมประสานเข้าด้วยกัน ก่อนจะอธิบายกลไกเบื้องต้นของกระบวนการ IP Routing ขออธิบายถึงส่วนสำคัญอีกส่วนหนึ่งเกี่ยวข้องกับกระบวนการนี้พอเป็นสังเขปเพื่อทำความเข้าใจในเรื่องของ IP Routing เสียก่อน เนื่องจากมีการกล่าวถึงในส่วนนี้พอสมควร คือ NetworkNetwork เน็ตเวิร์กในที่นี้จะกล่าวถึงเฉพาะเน็ตเวิร์กในความหมายของ IP (IP Network) เท่านั้น ไม่รวมถึงเน็ตเวิร์กประเภทอื่นใน IP นั้นจะระบุหมายเลขประจำโฮสต์โดยใช้ IP Address เพื่อระบุตำแหน่งของต้นทางและปลายทาง โดยใน IP Address นั้น
นอกจากระบุตำแหน่งของโฮสต์แล้ว ยังใช้ระบุตำแหน่งของเน็ตเวิร์กที่โฮสต์นั้นเชื่อมต่ออยู่ด้วย ทั้งนี้
โปรโตคอล IP มีกระบวนการที่จะแยกหมายเลขประจำตัวของโฮสต์และของเน็ตเวิร์กออกจากกัน เพื่อทำให้อุปกรณ์ทั้งหลายสามารถพิจารณาได้ในทันที่ว่าจะส่งข้อมูลที่ได้รับมานั้นไปในทิศทางใด
อย่างไรก็ตามเนื่องจาก IP นั้นเป็นโปรโตคอลที่อยู่ในเลเยอร์สูง จะต้องอาศัยการทำงานที่สอดคล้องกันของโปรโตคอลที่อยู่ในเลเยอร์ต่ำกว่าด้วยหมายเลขเน็ตเวิร์กของ IP เป็นค่าที่เป็นลอจิคัลคือกำหนดขึ้นเองและอาจเปลี่ยนแปลงได้โดยมิได้ผูกติดกับอุปกรณ์ทางกายภาพ แต่อย่างไรก็ตามการกำหนดหมายเลขเน็ตเวิร์กของ IP ก็จำเป็นต้องสอดคล้องกับหมายเลขเน็ตเวิร์กของเลเยอร์ล่างด้วยเช่นกันนั่นหมายความว่าถึงแม้ว่าในเลเยอร์ที่ต่ำกว่า เช่น Link เลเยอร์จะเชื่อมต่อถึงกันอย่างสมบูรณ์ แต่ถ้ามีการกำหนดค่า ของ IP เน็ตเวิร์กไม่ถูกต้องก็จะไม่สามารถสื่อสารได้ในทางกลับกันถึงแม้มีการกำหนดค่า IP เน็ตเวิร์กที่ถูกต้องแต่เน็ตเวิร์กไม่สามารถสื่อสารถึงกันได้ในระดับ Link Layer ก็ไม่สามารถสื่อสารได้เช่นกันหลักการพื้นฐานของ IP Routing IP Routing โดยใช้ Default Router กระบวนการ IP Routing เริ่มต้นด้วยหลักพื้นฐานที่ไม่สลับซับซ้อนและเข้าใจได้ไม่ยากคือ





การสื่อสารในการเชื่อมต่อแบบจุดต่อจุด

1. ถ้าโฮสต์ต้นทางและปลายทางต่อถึงกันโดยตรง เช่น การเชื่อมต่อแบบจุดต่อจุดตามที่ปรากฎในภาพ IP ข้อมูลหรือดาต้าแกรมนั้นจะถูกส่งไปยังโฮสต์ปลายทางโดยตรง
2.
 ถ้าโฮสต์ต้นทางและปลายทางต่อเชื่อมร่วมอยู่ในเน็ตเวิร์กเดียวกัน เช่น อีเธอร์เน็ตหรือโทเค็นริง ดังแสดงในภาพIP ดาต้าแกรมก็จะถูกส่งไปยังโฮสต์ปลายทางโดยตรง
3.
 ถ้าไม่เป็นไปตามข้อมูล 1 และข้อ IP ดาต้าแกรมจะถูกส่งไปยังดีฟอลต์เราเตอร์เพื่อทำการส่งต่อข้อมูลไปยังปลายทางต่อไป
4.
 เมื่อเราเตอร์ได้รับ IP ดาต้าแกรมจากข้อ3แล้วตรวจสอบดูหากพบว่าโฮสต์ปลายทางต่อร่วมอยู่บนเน็ตเวิร์กเดียวกันกับเราเตอร์ ให้ทำการส่งดาต้าแกรมไปที่โฮสต์นั้น หากไม่ได้ต่อร่วมกันก็ส่งดาต้าแกรมไปที่เราเตอร์ตัวต่อไปและกลับไปที่ขั้นตอนในข้อ 2 ใหม่ จนกว่า IP ดาต้าแกรมจะเดินทางถึงปลายทางหรือหมดเวลาในการส่ง




การสื่อสารในเน็ตเวิร์กที่ต่อรวมกัน (Shared network)


การสื่อสารระหว่าง 2 เน็ตเวิร์ก

หากเน็ตเวิร์กมีเพียง 2 เน็ตเวิร์กเหมือนในภาพ มีเพียงแค่ดีฟอลต์เราเตอร์ก็คงจะเพียงพอ และการทำงานในการส่ง IP ดาต้าแกรมข้ามระหว่างเน็ตเวิร์กก็คงไม่ยุ่งยากมากนักและคงเป็นไปตามขั้นตอนข้างต้น หากสังเกตจะเห็นว่าตัวเราเตอร์เองนั้นมีเน็ตเวิร์กที่ต้องติดต่อด้วย 2 ฝั่ง คือ Network A และ Network B ซึ่งมีทิศทางการเคลื่อนที่ของข้อมูลเพียงเส้นทางเดียวมีเราเตอร์เพียงตัวเดียวไม่ว่าปลายทางของข้อมูลจะไปที่ใดหากมิใช่อยู่ในเน็ตเวิร์กเดียวกันแล้ว ดาต้าแกรมทั้งหมดก็ต้องผ่านเราเตอร์อยู่ดีโดยไม่ต้องทำการวิเคราะห์ใด ๆการที่ดาต้าแกรมถูกส่งข้ามเน็ตเวิร์ก 1 ครั้งเรียกว่า 1 ฮอป (hop) เปรียบเสมือนระยะในการเดินทางของข้อมูล จากภาพตัวอย่างดาต้าแกรมเดินทางจากโฮสต์ต้นทางเพียง 1 ฮอปก็ถึงโฮสต์ปลายทางการส่งต่อข้อมูลโดยเราเตอร์ ก็มีเพียงส่งไปและส่งกลับระหว่าง Network A และ Network B เท่านั้น แต่หากระยะทางถึงโฮสต์ปลายทาง
จะต้องเดินทางมากว่า 1 ฮอปแล้วเราเตอร์ก็จะทำงานยุ่งยากซับซ้อนขึ้นเพราะจะมีเน็ตเวิร์กอื่นๆที่ไม่ได้เชื่อมต่อโดยตรงและต้องส่งข้อมูลผ่านเราเตอร์หลายตัวและมีหลายเส้นทางที่ดาต้าแกรมสามารถเดินทางไปได้ ดังนั้นการส่งต่อดาต้าแกรมของเราเตอร์จึงเป็นปัจจัยสำคัญในการกำหนด ประสิทธิภาพของ IP Routingการเดินทางของดาต้าแกรมโดยกระบวนการ IP routing นั้นทำงานอยู่บนพื้นฐานของการส่งข้อมูลทีละ ฮอป(hop - by - hop) คือเราเตอร์เองจะทำงานโดยรู้จักเฉพาะเน็ตเวิร์กที่ต่อยู่กับตัวเองเท่านั้น หากโฮสต์ปลายทางมิได้อยู่ในเน็ตเวิร์กที่ต่อเชื่อมอยู่ก็จะทำการส่งข้อมูลต่อไปอีกฮอปให้แก่เราเตอร์ตัวต่อไปและถือว่าหมดหน้าที่ต่อดาต้าแกรมนั้นแล้ว เพราะส่งต่อข้อมูลไปเรียบร้อยแล้ว ส่วนจะถึงปลายทางหรือไม่นั้นเป็นอีกเรื่องหนึ่งและเราเตอร์ตัวอื่นๆที่อยู่ระหว่างทางก็เช่นกันก็จะส่งต่อดาต้าแกรมไปเรื่อยๆเช่นนั้นที่ละฮอปทีละฮอปจนกว่าจะถึงปลายทางหรือหมดเวลาเพื่อให้กระบวนการ IP Routing ดำเนินไปอย่างมีประสิทธิภาพจึงมีการเพิ่มความสามารถของเราเตอร์ให้มากขึ้น กล่าวคือในกรณีที่โฮสต์ปลายทางมิได้อยู่ในเน็ตเวิร์กที่ต่อยู่กับตัวเองนั้นแทนที่จะทำการส่งต่อข้อมูลไปยังดีฟอลต์เราเตอร์ทั้งหมดก็ให้เราเตอร์ทำการพิจารณาเน็ตเวิร์กปลายทางว่าอยู่ที่ใดแล้วจึงทำการส่งต่อดาต้าแกรมนั้นไปยังเราเตอร์ที่อยู่ใกล้กับเน็ตเวิร์กนั้นที่สุด(ใช้จำนวนฮอปในการส่งข้อมูลน้อยที่สุดเพื่อการนี้จึงจำเป็นต้องมีข้อมูลให้แก่ตัวเราเตอร์ว่าเน็ตเวิร์กใดควรจะส่งข้อมูลไปยังเราเตอร์ใดข้อมูลเหล่านี้จะเก็บอยู่ในเราติ้งเทเบิล (Routing Table) ซึ่งจะประกอบด้วยข้อมูลดังนี้- Destination IP Address หมายถึงแอดเดรสของโฮสตร์หรือเน็ตเวิร์กปลายทาง- IP Address of a next - hop router หมายถึง IP Address ของเราเตอร์ตัวอื่นที่ต่อโดยตรงอยู่บนเน็ตเวิร์กเดียวกัน - Flags จะเป็นข้อมูลส่วนที่ขยายความเพิ่มเติมของ Destination IP Address และ Next - hop router- Interface หมายถึงอินเตอร์เฟชของเราเตอร์ที่จเต้องใช้เพื่อการส่ง ดาต้าแกรมออกไปเมื่อเราเตอร์มีเราต์ติ้งเทเบิลแล้ว กระบวนการในการที่จะส่งต่อดาต้าแกรมจากเราเตอร์ตัวหนึ่งไปยังตัวต่อไปจะต้องนำข้อมูลในเราต์ติ้งเทเบิลไปร่วมพิจารณาด้วยดังนี้ท ค้นหาข้อมูลในเราติ้งเทเบิลเพื่อหา IP Address ที่ตรงกันพอดีกับ IP Address ของโฮสต์ปลายทางของดาต้าแกรม หากพบข้อมูลดังกล่าวให้ส่งไปยังแอดเดรสที่ระบุอยู่ในฟิลด์ของ Next - hop router ทันที หากไม่พบข้อมูลให้ทำต่อไปในข้อที่ 2
ค้นหาในเราต์ติ้งเทเบิลเพื่อหาเน็ตเวิร์กแอดเดรสที่ตรงกับเน็ตเวิร์กแอดเดรสของโฮสต์ปลายทางหากพบข้อมูลดังกล่าวให้ส่งไปยังแอดเดรสที่ระบุอยู่ในฟิลด์ของ Next - hop router ทันที หากไม่พบข้อมูลให้ทำต่อไปในข้อที่ 3
ค้นหาในเราต์ติ้งเทเบิลเพื่อหาข้อมูลรายการที่ระบุว่า "default" และให้ส่งต่อไปยัง แอดเดรสที่ระบุอยู่ในฟิลด์ของ Next - hop router กระบวนการที่กล่าวมานี้จะทำให้การต่อต่อข้อมูลเป็นไปในทิศทางที่เหมาะสมและมีประสิทธิภาพที่สุดโดยอาศัยข้อมูลที่กำหนดไว้ก่อนแล้วของเราเตอร์ซึ่งหากไม่พบข้อมูลที่ตรงกับโฮสต์หรือเน็ตเวิร์กเลยในเราต์ติ้งเทเบิลแล้วดาต้าแกรมก็จะถูกส่งไปยังดีฟอลต์เราเตอร์เสมอดังนี้หากเราเตอร์แต่ละตัวก็มีเราติ้งเทเบิลที่ถูกต้องแล้วดาต้าแกรมก็จะถูกส่งต่อไปเรื่อยๆจนถึงปลายทางในที่สุดอาจจะล่าช้าหรือไม่มีประสิทธิภาพบ้างแต่ก็พอใช้งานได้จะเห็นได้ว่าเราต์เตอร์ไม่จำเป็นต้องเก็บเราติ้งเทเบิลของทุก ๆ เน็ตเวิร์กหรือทุก ๆ โฮสต์ไว้ทั้งหมด แต่จะอาศัยการกระจายกันของข้อมูลในเราเตอร์ทุก ๆ ตัวบนเน็ตเวิร์กและแต่ละตัวก็ส่งต่อข้อมูลให้ถูกต้อง ข้อมูลก็จะสามารถเดินทางถึงปลายทางได้ด้วยเหตุนี้เองทำให้เน็ตเวิร์กสามารถขยายเพิ่มเติม
ออกไปได้เรื่อยๆโดยไม่จำกัดและไม่ต้องทำการแก้ไขโครงสร้างของเน็ตเวิร์กเดิมอินเทอร์เน็ตจึงเผยแพร่ขยายครอบคลุมโลกอย่างรวดเร็วอย่างไรก็ตาม IP Routing โดยการใช้เราต์ติ้งเทเบิลเป็นกระบวนการพื้นฐานเท่านั้นเมื่อนำมาใช้งานจริงในอินเทอร์เน็ตซึ่งมีเป็นล้านโฮสต์และหลานแสนเน็ตเวิร์กก็จะมีความยุ่งยากและสลับซับซ้อนจนเกินกว่าจะใช้การเราต์ติ้งแบบธรรมดาได้จึงจำเป็นต้องมีกระบวนการที่มีประสิทธิภาพกว่านี้และมีการพัฒนากระบวนการ IP Routing ที่สลับซับซ้อนออกมาหลายรูปแบบเช่น RIP, OSPF, BGP เป็นต้น
Subnet Addressing
ในตอนเริ่มต้นใช้โปรโตคอล TCP/IP นั้นการแบ่ง IP Address ออกเป็นแอดเดรสของเน็ตเวิร์ก (netid) และแอดเดรสของโฮสตร์ (hostid) เป็นไปตามกติกาที่ระบุของแต่ละคลาสต่อมามีผู้เสนอให้มีการแบ่งเน็ตเวิร์กย่อยภายในแต่ละ netid เพิ่มขึ้นอีกเพื่อจะได้ใช้งาน IP Address ได้อย่างมีประสิทธิภาพที่สุด เนื่องจากในคลาส A และคลาส B นั้นมีการจัดสรรส่วนที่เป็น hostid ในแต่ละเน็ตเวิร์กเป็นจำนวนมากคือในเร็ตเวิร์กคลาส A แต่ละเน็ตเวิร์กนั้นสามารถมีจำนวนโฮสต์ได้มากถึง 224 - 2 = 16.777,214 โฮสต์ และสำหรับในแต่ละเน็ตเวิร์กของคลาส C นั้นสามารถมีจำนวนโฮสต์ได้สูงสุดคือ 216 - 2 = 65,534 โฮสต์ ซึ่งการที่จะนำ IP Address มารใช้อย่างทั่วถึงนั้นมีโอกาสเป็นไปได้ยากมากทั้งคลาส A และคลาส B เพราะมีโอกาสน้อยมากที่จะมีเน็ตเวิร์กใดในโลกมีจำนวนโฮสต์มากมายขนาดนั้นอยู่ภายในเน็ตเวิร์กเดียว ดังนั้น IPAddress ที่จัดสรรให้ไปในแต่ละเน็ตเวิร์กของคลาสเหล่านี้จึงถูกใช้ไม่หมดและไม่สามารถนำมาใช้ประโยชน์อื่นได้
การทำ Subnet 
คือ การแบ่งเน็ตเวิร์กย่อยภายในเน็ตเวิร์กหลักเพื่อให้แต่ละเน็ตเวิร์กมีขนาดที่เหมาะสมกับปริมาณโฮสต์ที่มีอยู่ โดยใช้หลักการเดียวกับการนำ IP Address มาแยกออกเป็น Host ID และเป็น Network ID คือแทนที่จะให้ค่า Host ID เป็นค่าอิสระตั้งแต่ 1 จนถึงค่าสูงสุด ก็ทำการจัดกลุ่มของ Host ID เหล่านั้นออกเป็นกลุ่มของเน็ตเวิร์กย่อย คือนำค่าในส่วนที่เป็น Host ID เดิมมาแยกออกเป็น 2 ส่วนคือ Subnet-ID และเป็น Host ID ใหม่จะทำให้สามารถจัดสรรการใช้งานIPAddressได้อย่างเหมาะสมกับการมีอยู่จริงของโฮสต์ในแต่ละเน็ตเวิร์ก


IP Address ในคลาส B เมื่อทำการ Subnet

จากภาพแสดงการจัดแบ่ง IPAddress ของคลาส B ออกเป็นเน็ตเวิร์กย่อยด้วยวิธี Subnetting โดยแบ่งพื้นที่ส่วนที่เป็นของ Host ID เดิมออกเป็น 2 ส่วนโดยเป็นของ Subnet ID ขนาด 8 บิตและ Host ID ใหม่ที่มีขนาดเล็กลงเหลือเพียง บิต


ผลกระทบต่อจำนวนของเน็ตเวิร์กที่ถูก subnet


ผลที่ได้คือขนาดของเน็ตเวิร์กจะเล็กลงและมีจำนวนมากขึ้น จากเดิม 16.382 เน็ตเวิร์กก็เพิ่มเป็น
4,161,028 (16,382 * 254) และในขณะเดียวกันจำนวนโฮสต์ในแต่ละเน็ตเวิร์กจะลดลง จาก 65,532 เหลือเพียง254 โฮสต์ อย่างไรก็ตามการ Subnet นั้นไม่จำเป็นต้องมีขนาดของ Subnet ID
คงที่ตายตัวเสมอไป ผู้บริหารระบบสามารถปรับเปลี่ยนได้ตามความเหมาะสมของการใช้งาน เช่น อาจจะมีจำนวนเน็ตเวิร์กน้อยลง และจำนวนโฮสต์มากขึ้นก็สามารถจะทำได้โดยการแบ่งขนาดของ subnet IDและ host IDใหม่ตามที่ต้องการนอกจากที่สามารถใช้ IP Address ได้อย่างมีประสิทธิภาพแล้ว ข้อดีอีกอย่างหนึ่งของการ Subnet คือช่วยให้ประสิทธิภาพการสื่อสารดีขึ้นด้วยกล่าวคือ กระบวนการของ TCP/IP บางประเภทมีการใช้การสื่อสารแบบรอดคาสต์ (broadcast) เพื่อทำการสื่อสารกระจายไปยังทุก ๆ โฮสต์ที่อยู่ในเน็ตเวิร์กเดียวกัน ดังนั้นหากเป็นเน็ตเวิร์กคลาส A ซึ่งมีโฮสต์ได้ถึง 16 ล้านโฮสต์แล้วการสื่อสารด้วยวิธีบรอดคาสต์แต่ละครั้งจะเป็นการกระจายข้อมูลไปยังเครื่องอื่น ๆ จำนวนมาก และใช้แบนด์วิดธ์มากมายมหาศาลทั่วไปทั้งเน็ตเวิร์ก ส่งผลกระทบต่อการสื่อสารตามปกติอย่างยิ่ง และหากเน็ตเวิร์กประเภทนี้ถูกโจมตีโดยเทคนิคที่อาศัยการขยายสัญญาณเนื่องจากบรอดคาสต์ เช่น Smurf แล้วก็มีโอกาสมากที่การสื่อสารข้อมูลภายในเน็ตเวิร์กจะเป็นอัมพาตได้อย่างรวดเร็วจากการถูกโจมตีเพียงแพ็งเก็ตเดียวผู้ออกแบบเน็ตเวิร์กส่วนใหญ่จึงมักจะหลีกเลี่ยงการออกแบบให้ เน็ตเวิร์กมีขนาดใหญ่เกินไป เนื่องจากควบคุมได้ไม่ยุ่งยากและมีประสิทธิภาพต่ำ วิธีการ Subnet จึงเป็นส่วนที่ถูกนำมาใช้ในการออกแบบเสมอโดยทั่วไปแล้วเรามักจะพบเห็นการ Subnet สำหรับ IP Addressในคลาส B เสียเป็นส่วนใหญ่เนื่องจากคลาส B มีผู้ใช้งานกันแพร่หลายส่วนคลาส A จะพบได้ไม่บ่อยนักเพราะมีผู้ได้รับจัดสรรไม่มาก ส่วนคลาส C ก็อาจจะพอมีผู้ทำ Subnet อยู่บ้าง แต่เนื่องจากคลาส C มีขนาดของ เน็ตเวิร์กไม่ใหญ่อยู่แล้ว จึงสามารถแบ่งย่อยออกไปได้อีกไม่มากนัก อย่างไรก็ตาม IP Address ทุกคลาสล้วนแต่สามารถถูกนำมาSubnet ได้ทั้งสิ้น
Subnet Maskหากกล่าวถึงการ Subnet แล้วย่อมจะต้องกล่าวถึง Subnet Mask ด้วย การที่มีเฉพาะ IP Addressเพียงอย่างเดียวนั้น กรณีที่เป็นการกำหนด netid และ hostid ตามที่ระบุในคลาสต่างๆนั้นเราก็สามารถทราบว่าค่าทั้งสองได้ไม่ยากนัก โดยพิจารณาว่า IP Address ดังกล่าวอยู่ในช่วงใดอยู่ในคลาสใด หลังจากนั้นก็สามารถแยกnetid และ hostid ได้จากการเปรียบเทียบกับมาตรฐานของคลาสเหล่านั้นแต่เมื่อมีการแบ่งเน็ตเวิร์กย่อยโดยการ Subnet แล้ว ย่อมไม่สามารถใช้วิธีการข้างต้นเพื่อหา netid และ hostid ได้อีกต่อไป เนื่องจาก subnet นั้นสามารถกำหนดได้โดยผู้ออกแบบเน็ตเวิร์กเองและมิได้มีข้อบังคับแต่อย่างใดดังนั้นจึงจำเป็นต้องมีการระบุค่าใดค่าหนึ่งไว้เพื่อให้สามารถนำมาใช้ในการหาค่าจาก IP Address ได้ว่า hostid, netid และ subnet id และค่านั้นก็คือSubnet Mask Subnet Mask เป็นตัวเลขขนาด 32 บิต เท่ากับ IP Address ทำหน้าที่ระบุหมายเลขของ host id และ net id + subnet id ของโฮสต์นั้น การกำหนดค่าของ Subnet Mask จะอยู่ในรูปแบบเดียวกับ IP Address คือทำการแบ่งSubnet Mask ออกเป็น 16 บิต จำนวน 4 ชุดและแยกแต่ละชุดออกจากกันด้วย จุด (.) ตัวอย่างของ Subnet Mask เช่นFF.FF.FF.00 (Hex) 255.255.255.0 (Dec)ค่า Subnet Mask นี้จะต้องกำหนดไว้บนทุกโฮสต์คู่กันกับค่า IP Address เสมอ เนื่องจากโปรโตคอล IP จำเป็นต้องใช้ค่านี้ไปคำนวณค่า netid ซึ่งจำเป็นอย่างยิ่งในกระบวนการ IP Routing อย่างไรก็ตามค่า Subnet Mask นี้จะไม่ถูกส่งไปกับIP ดาต้าแกรมด้วยโฮสต์ทั้งหลายสามารถนำค่า Subnet Mask มาทำการทางคณิตศาสตร์กับ
IP Address ก็จะสามารถหาค่า host id, subnet id, netid ออกมาโดยวิธีดังนี้

Netid + subnetid = [IP address] AND [Subnet Mask]
Hostid = [IP Address] AND (NOT ([Subnet Mask]))
ตัวอย่าง
IP Address = 192.168.15.21 Subnet Mask = 255.255.255.0
Netid = 192.168.15.20 AND 255.255.255.0 = 192.168.15.0
Hostid = 192.168.15.20 AND (0.0.0.255) = 0.0.0.20
หรือพูดง่าย ๆ ได้ว่า "Netid ก็คือ IP Address ส่วนที่ตรงกับบิตของ Subnet mask ที่มีค่าเป็น 1 ส่วน Hostid คือIP Address ส่วนที่ตรงกับ Subnet mask ที่มีค่าเป็น 0" นั่นเองดังนั้นพึงระลึกเสมอว่านอกจากการกำหนด
IPAddress ที่ถูกต้องแล้วการกำหนดค่า Subnet Mask ก็มีผลต่อ IP Routing เช่นเดียวกันการกำหนดค่าSubnet Mask ผิดพลาดย่อจะส่งผลให้การสื่อสารข้อมูลของ IP ไม่สามารถจะกระทำได้เช่นกันIP Address ในกรณีพิเศษถึงแม้ว่าค่าของ IP Address มีขนาด 32 บิต ที่นำมาใช้งานได้ก็จริง แต่มีกรณีพิเศษเป็นข้อยกเว้นที่ไม่อาจนำค่าเหล่านี้มากำหนดเป็นค่า IP Address ได้ซึ่งค่าส่วนใหญ่จะเป็นค่าที่ IP เองนำไปใช้งานเพื่อวัตถุประสงค์อื่นแล้ว ผู้ใช้จึงมิอาจนำค่าเหล่านั้นมาใช้งานได้อีก ดังรายละเอียดต่อไปนี้




IP Address สำหรับกรณีพิเศษ


จากตารางแสดง IP Address บางค่าที่ถูกโปรโตคอลนำไปใช้เพื่อวัตถุประสงค์อื่นและผู้ใช้สามารถนำมากำหนดเป็นแอดเดรสของโฮสต์ได้โดยส่วนใหญ่ค่าที่มีปัญหาจะมีเพียง 3 ตัวคือ
127 หมายถึง Loopback Address คือส่งกลับเข้าหาตัวเองทุกบิต หมายถึง โฮสต์ทุกตัวในเน็ตเวิร์กนี้ (คือการบรอดคาสต์นั่นเอง)ทุกบิต หมายถึง ตัวเน็ตเวิร์กเองดังนั้นเพื่อป้องกันปัญหาของการกำหนดค่าIP Address จึงควรหลีกเลี่ยงการกำหนดค่า Net id และ id ด้วยเลขดังกล่าวเสีย

x.25
ในตอนต้นได้อธิบายถึงการบริการของระดับชั้นเน็ตเวิร์กแก่ระดับชั้นทรานสปอร์ตและการสั่งข้อมูลภายในเครือข่ายย่อย ต่อไปจะยกตัวอย่างเครือข่ายที่มีผู้นิยมใช้มากมายในการส่งข้อมูลระหว่างโฮสต์ของผู้ใช้X.25 PLC (Packet Layer Protocol) เป็นมาตรฐานที่ถูกกำหนดขึ้นมา โดย CCITT เพื่อให้เครือข่ายสาธารณะของประเทศต่างๆ สามารถทำงานส่งข้อมูลได้สอดคล้องในแนวเดียวกัน อีกทั้งทำการอินเตอร์เฟซกับผู้ใช้บริการในลักษณะเดียวกัน ซึ่ง X.25 PLP นี้ได้ถูกใช้อย่างแพร่หลายสำหรับโปรโตคอลซึ่งให้บริการแบบ Connection-oriented ในระดับชั้นเน็ตเวิร์กX.25 ได้กำหนดรูปแบบของการอินเตอร์เฟซระหว่างโฮสต์ซึ่งเรียกว่า DTE (Data terminal Equipment) และอุปกรณ์ของผู้ใช้บริการ (carrier) ซึ่งเรียกว่า DCE (Data Circuit terminating Equipment) ดังแสดงในรูป (การอินเตอร์เฟซระหว่างระดับชั้นทรานสปอร์ตและระดับชั้นเน็ตเวิร์กส่วนโหนดของเครือข่ายจะถูกเรียกว่า DSE (Data Switching Exchange) x.25 จะกำหนดรูปแบบ ความหมาย ตลอดจนลำดับของข้อมูลที่ส่งผ่านระหว่างอินเตอร์เฟซของ DTE และ DCEโดยทั่วไปแล้ว X.25 จะครอบคลุมตั้งแต่ระดับชั้นฟิสิคัลจนถึงระดับเน็ตเวิร์ก สำหรับระดับชั้นที่ 1 ซึ่งเกี่ยวกับขั้นตอนของการส่งสัญญาณบิตข้อมูล คุณสมบัติของสัญญาณไฟฟ้า คุณสมบัติทางกายภาพของอุปกรณ์ต่างๆ ตลอดจนคุณสมบัติของสายสื่อสารนั้น X.25 ไม่ได้กำหนด แต่อ้างอิงถึงมาตรฐาน X.21และ X.21 bis ซึ่งกำหนดการอินเตอร์เฟซเพื่อส่งข้อมูลแบบดิจิตอลและอนาล็อกตามลำดับ สำหรับ X.21 bis (หรือ RS-232) เป็นมาตรฐานชั่วคราวที่ใช้สำหรับเครือข่ายที่มีการส่ง ข้อมูลด้วยสัญญาณแอนะล็อกก่อนที่เครือข่ายแบบดิจิตอลจะมีการใช้แพร่หลายมากขึ้น สำหรับระดับชั้นที่ 2 ซึ่งเกี่ยวกับการส่งข้อมูลผ่านสายสื่อสารระหว่าง DTE และ DCE ให้ได้อย่างถูกต้องและมีประสิทธิภาพนั้นX.25 แบบ LAPB


สำหรับระดับชั้นที่ 3 นั้นจะจัดการให้มีการติดต่อส่งแพ็กเกตระหว่าง DTE ปลายทางทั้งสอง ซึ่งการติดต่อส่งข้อมูลของ X.25 นี้มี 2 รูปแบบคือ เวอร์ชวลคอลล์ (virtual calls ) และเพอร์มาเนนต์เวอร์ชวลเชอร์กิต(permanent vitual circuits ) สำหรับเวอร์ชวลคอลล์จะมีลักษณะคล้ายสายสวิตช์ของระบบโทรศัพท์ประกอบด้วยเฟส คือ การสร้างการติดต่อ การส่งข้อมูล และการยกเลิกการติดต่อ ซึ่งแบบนี้ในการติดต่อส่งข้อมูลแต่ละครั้งระหว่าง DTE คู่หนึ่งอาจจะได้เส้นทางซึ่งไม่เหมือนกัน ส่วนเพอร์มาเนนต์เวรอ์ชวลเซอร์กิตนั้นคล้ายสายเช่าคือ จะมีเส้นทางที่กำหนดไว้แน่นอนสำหรับ DTE คู่นั้นเสมอ (ควรจะคำนึงไว้เสมอว่าการส่งข้อมูลแบบแพ็กเกตสวิชนี้ ในเส้นทางหนึ่งหรือช่องสัญญาณหนึ่งอาจจะมีข้อมูลหลายผู้ใช้ ) เมื่อ DTE ตัวใดต้องการส่งข้อมูลก็ไม่ต้องสร้าง
การติดต่อ แต่สามารถส่งข้อมูลออกไปได้เลย จึงเหมาะสมสำหรับการส่งข้อมูลที่มีจำนวนมาก อย่างไรก็ตามการส่งข้อมูลของเพอร์มาเนนต์เวอร์ชวลเซอร์กิตจะเหมือนกับการทำงานในเฟสการส่งข้อมูลของเวอร์ชวลคอลล์เฟสต่าง ๆของการติดต่อส่งข้อมูลระหว่าง DTE จะเห็นว่าในการสร้างการติดต่อ DTE จะส่งแพ็กเก็ต Call Request ไปยัง DCE ซึ่งแพ็กเกตนี้จะถูกส่งผ่านเครือข่ายไปยัง DCE ของอีกฝั่ง แล้วส่งให้DTE ปลายทางซึ่งเรียกแพ็กเกตนี้ว่า Incoming Call หาก DTE นั้นพร้อมที่จะทำการติดต่อก็จะส่งแพ็กเกตCall Accepted กลับไปเมื่อแพ็กเกตถึง DTE ต้นทางก็ถือว่ามีการสร้างการติดต่อเรียบร้อยแล้วในเฟสการส่งข้อมูลนั้น DTE ทั้งสองฝั่งจะสามารถส่งข้อมูลแบบฟูลดูเพล็กซ์ และเมื่อฝั่งใดหมดข้อมูลก็จะส่งแพ็กเกต Clear Request เพื่อบ่อบอกการขอเลิกการติดต่อซึ่งฝั่งตรงกันข้ามก็ส่งแพ็กเกต Clear onfimation กลับมาเพื่อเป็นการตอบรับการยกเลิกการติดต่อสำหรับการสร้างการติดต่อนั้นฝั่งที่เริ่มการติดต่อจะเลือกหมายเลขเซอร์กิตที่ว่างซึ่งค่าหมายเลขเซอร์กิตอาจจะถูกเปลี่ยนไปเมื่อผ่านโหนดต่าง ๆและเมื่อถึง DCE ปลายทางก็จะเลือกหมายเลขเซอร์กิตที่ว่างเพื่อส่งแพ็กเกตให้ DTE ปลายทางซึ่งหมายเลขเซอร์กิตนี้ต้องไม่เป็นหมายเลขที่ถูกใช้โดย DTE ตัวนี้ โดยดูจากตารางการหาเส้นทางว่ามีข้อมูลที่ส่งมาจาก DTE ตัวนี้โดยหมายเลขเซอร์กิตที่เลือกนั้นหรือไม่ แต่อาจจะเกิดกรณีที่ในขณะนั้น DTE ตัวนี้กำลังสร้างการติดต่อกับ DTE ตัวอื่น และเลือกใช้หมายเลขเซอร์กิตของแพ็เกต Call Request (อาจเรียกว่า Outgoing Call) เป็นหมายเลขเดียวกันที่ DCE ใช้สำหรับ Incoming Call ก็จะเกิดการเรียกชนกัน ดังแสดงในรูปดังต่อไปนี้ ซึ่งในกรณีการเรียกชนกันนี้ x.25 กำหนดให้แพ็กเกต Call Request (Outgoing call) สามารถใช้หมายเลขนี้ และจะส่งแพ็กเกตออกไปได้ ส่วนIncoming Call จะถูกยกเลิกดั้งนั้นเพื่อไม่ให้เกิดการเรียกชนกัน จึงมีการกำหนดให้ DTE ใช้หมายเลขเซอร์กิตที่มีค่าสูงสำหรับ Outgoing Call ส่วน DCE ให้เลือกหมายเลขที่มีค่าต่ำสำหรับ Incoming Call การอินเตอร์เฟซระหว่าง DTEและ DCE การอินเตอร์เฟซกระหว่าง DTE และ DCE


แสดงตัวอย่างของการเรียงชนกัน

ถึงตอนนี้คงเข้าใจการทำงานของ x.25 พอสมควรและเพื่อให้เข้าใจเพิ่มมากขึ้นจะอธิบายถึงรูปแบบและความหมายของแพ็กเกตในระบบ x.25 รูป ก. แสดงแพ็กเกต Call Request ซึ่งจะมี เฮดเดอร์ 12 บิตของกรุ๊ปและ Channel ประกอบกันเป็นหมายเลขเซอร์กิตที่มีค่า 0-4,095 สำหรับหมายเลขเซอร์กิต 0 ถูกจองไว้ใช้ในอนาคต ดังนั้นหมายเลขจะมีใช้ได้เพียง 4,9095 ค่า นอกจากนั้นยังมีไบต์บอกชนิด (type byte) ซึ่งบ่งบอกว่าเป็นแพ็กเกตชนิด Call Request และในไบต์นี้มีฟิลด์ควบคุมซึ่งบ่งบอกว่าเป็นแพ็กเกตควบคุม (control packer)(ค่า1)หรือแพ็กเกตข้อมูล (datapacket) (ค่า0) ซึ่งจะเห็นได้ว่าทั้ง 3 ไบต์ที่กล่าวมานี้เป็นเฮดเดอร์ของทุก ๆแพ็กเกตไม่ว่าจะเป็นแพ็กเกตควบคุมหรือแพ็กเกตข้อมูลสำหรับฟิลด์ต่อไปเป็นฟิลด์สำหรับแพ็กเกตชนิด Call Request ซึ่งมีฟิลด์สำหรับบ่งบอกความหมายยาวของแอดเดรสของผู้ส่งและผู้รับ และฟิลด์สำหรับแอดเดรสเต็มทั้งสองสำหรับ แอดเดรสในระบบ x.25 ถูกกำหนดโดย CCITT ในมาตรฐาน x.121 ซึ่งแอดเดรสนี้จะคล้ายกับระบบโทรศัพท์ที่ประกอบด้วยเลขฐานสิบจำนวน 14 หน่วยโดย 3 หน่วยแรกบ่งบอกถึงประเทศ และหน่วยต่อไป 1 หน่วยบ่งบอกถึงหมายเลขเครือข่าย (network number)เช่น อเมริกาจะมีการใช้รหัสประเทศตั้งแต่ 310 ถึง 329 แต่ละรหัสจะมีหมายเลขเครือข่าย 0-9 รวม 10 หมายเลข ดังนั้นอเมริกาอาจจะมีเครือข่ายสาธารณะจำนวน 200 เครือข่ายที่ติดต่อระหว่างประเทศได้


แสดงรูปแบบแพ็กเกตของ X.25

สำหรับฟิลด์ต่อไปใช้สำหรับแฟกซิลิตี้ (facilities) ซึ่งเป็นการขอใช้แฟกซิลิตี้ต่างๆ ในการติดต่อแต่ละครั้งแฟกซิลิตี้อาจจะเป็นการเก็บเงินปลายทางซึ่งจำเป็นสำหรับหน่วยงานที่มีเทอร์มินัลนับพันส่งข้อมูลติดต่อมายังคอมพิวเตอร์กลางจึงอาจสะดวกกว่าในการที่จะเก็บเงินที่ศูนย์คอมพิวเตอร์ปลายทางนอกจากนั้นอาจจะสามารถกำหนดลำดับความเร่งด่วนของการส่งข้อมูลหรือกำหนดการส่งข้อมูลว่าเป็นแบบซิมเพล็กซ์แทนที่จะเป็นฟูลดูเพล็กซ์ ดังรูปแสดงตัวอย่างของแฟกซิลิตี้ต่าง ๆเช่น ใช้ 7 บิตสำหรับหมายเลขลำดับ 0-127 ของแพ็กเกต หรือการกำหนดขนาดของวินโดว์ฝั่งส่งแตกต่างไปกว่าปกติซึ่งมีขนาดเท่ากับ 2 ช่อง (วินโดว์ในที่นี้คล้ายกับ Sliding Window ในระดับชั้นดาต้าลิงก์ ) หรือกำหนดขนาดของแพ็กเกตแตกต่างกว่าปกติซึ่งกำหนดไว้เท่ากับ 128 ไบต์ สำหรับขนาดที่เป็นไปได้คือ 16, 32, 64, 256, 512, 1,024, 2,048 หรือ4,096 ไบต์ การกำหนดขนาดที่เล็กกว่า128 ไบต์ก็เพื่อป้องกันไม่ให้เทอร์มินัลที่มีบัฟเฟอร์ขนาดเล็กถูกข้อมูลที่มีแพ็กเกตยาวๆส่งเข้ามา ส่วนขนาดที่โตกว่า 128 ไบต์ก็เพื่อให้การส่งข้อมูลมีประสิทธิภาพ อย่างไรก็ตามเมื่อผู้เริ่มติดต่อกำหนดขนาดของหน้าต่างและแพ็กเกตมาแล้ว DTE ตรงกันข้ามก็อาจจะแก้ไขค่าแล้วตอบกลับมาในฟิลด์แฟกซิลิตี้ของแพ็กเกต Call Accepted ซึ่งเป็นแพ็กเกตควบคุมอีก ชนิดหนึ่ง


แสดงตัวอย่างของแฟกซิลิตี้


นอกจากแฟกซิลิตี้เหล่านั้นแล้ว บางแฟกซิลิตี้อาจถูกใช้สำหรับผู้ใช้ที่ทำธุรกิจเป็นผู้ให้บริการเฉพาะกลุ่มเช่น แฟกซิลิตี้ที่ให้มีการติดต่อส่งข้อมูลเฉพาะภายในกลุ่มเท่านั้น อีกทั้งสามารถกำหนดอัตราผ่านข้อมูลผ่านเครือข่าย (2,400,4,800,9,600 bps) กำหนดให้หรือไม่ให้มีการติดต่อออกไปหรือห้ามการติดต่อเข้ามาในกลุ่มสำหรับแฟกซิลิตี้ชนิดฟาสต์ซีเล็กต์ (fast select) จะมีประโยชน์สำหรับงานประยุกต์เช่น Point of sale การตรวจสอบเครดิตการ์ดและการโอนเงิน ซึ่งเป็นลักษณะที่ผู้เรียกจะทารติดต่อและส่งข้อมูลสอบถามไปและผู้เรียกจะให้้คำตอบกลับมาหลังจากนั้นไม่จำเป็นต้องมีการติดต่ออีก ดังนั้นสำหรับฟาสต์ซีเล็กต์ในแพ็กเกต Call Request นั้นจะมีการใส่ข้อมูลสอบถามของผู้ทำการติดต่อไปด้วย ซึ่งข้อมูลอาจยาวได้ถึง 128 ไบต์ และเมื่อแพ็กเกตถึงฝั่งตรงกันข้าม หากฝั่งตรงกันข้ามไม่ต้องการติดต่อไปก็จะตอบแพ็กเกต Clear Request กลับมาพร้อมจะใส่คำตอบกลับมาภายใน แพ็กเกตนี้ด้วย แต่หากต้องการติดต่อไปก็จะส่งแพ็กเกตCall Accepted พร้อมคำตอบกลับมา ซึ่งหลังจากนั้นก็สามารถติดต่อส่งข้อมูลตามปกติทั่วไปของเวอร์ชวลเซอร์กิตได้นอกจากการใช้แฟกซิลิตี้ชนิดฟาสต์ซีเล็กต์ซึ่งสามารถส่งข้อมูลได้ถึง 128 ไบต์แล้ว ฟิลด์ข้อมูลของผู้ใช้ก็อาจใช้ส่งข้อมูลของผู้ใช้ได้ยาวถึง 16 ไบต์ เช่น ใช้บอกว่าโปรเซสส์ใดของ DTE ฝั่งที่ถูกเรียกนั้นที่ DTE ฝั่งเรียกต้องการติดต่อส่งข้อมูลด้วยหรือใช้เป็นรหัสผ่านในการล็อกอินสำหรับเทอร์มินัลเพื่อติดต่อกับโฮสต์ก็ได้สำหรับแพ็กเกตข้อมูลในรูป ค. จะประกอบด้วยเฮดเดอร์ซึ่งมีหมายเลขเซอร์กิตเพื่อให้ในการหาเส้นทาง แต่ไม่จำเป็นต้องมีแอดเดรสเต็ม นอกจากนั้นจะมี Q บิต ซึ่งถูกใช้โดยระดับชั้นสูงกว่าเพื่อแยกข้อความควบคุม (control message) กับข้อความข้อมูล (data message) ส่วน D บิตใช้ในการบ่งบอกว่าการตอบรับของแพ็กเกตที่ตอบกลับมานั้น ส่งมาจากDCE ที่ติดกับ DTE ที่ส่งแพ็กเกตไป (D = 0) หรือส่งมาจาก DTE ฝั่งตรงข้าม (D = 1) ในกรณีที่ D = 1 นั้นเป็นการตอบรับจากปลายทาง กล่าวคือแพ็กเกตได้รับโดย DTE ฝั่งตรงข้ามเรียบร้อยแล้ว แต่อย่างไรก็ตามในกรณี D=0 นั้นการตอบรับก็มีความสำคัญ เช่น DCE ที่ติดกับ DTE ที่ส่งแพ็กเกตนั้นได้รับข้อมูล และอาจจะเก็บแพ็กเกตในหน่วยความจำสำรองเรียบร้อยแล้วจึงตอบการตอบรับกลับไป ซึ่งแพ็กเกตที่เก็บไว้ เหล่านี้จะถูกส่งให้ DTE ปลายทางในวันต่อไปดังนั้นเมื่อ DTE ที่ส่งแพ็กเกตออกไปนั้นได้รับการตอบรับกลับมา
ก็จะสามารถส่งแพ็กเกตต่อ ๆ ไปได้ นอกจากฟิลด์เหล่านี้แล้วในแพ็กเกตข้อมูลยังมีหมายเลขลำดับและ Piggy Backing ซึ่งใช้ในการควบคุมการส่งแพ็กเกตข้อมูลที่เป็นแบบ Sliding Window สำหรับ Piggy Backing ซึ่งเป็นการตอบรับนี้จะบ่งบอกหมายเลข 3 ไปสำหรับหมายเลขลำดับจะเป็นโมดูโล (0-7) ในกรณีที่ฟลิด์โมดูโลมีค่า 01 และเป็น โมดูโล 128 หากค่าโมดูโลเป็น 10 และในกรณีที่เป็นโมดูโล 128 และจะมีการขยายฟิลด์หมายเลขลำดับและ Piggy Backing ให้ใช้จำนวนบิตได้มากขึ้นสำหรับ More นั้นใช้บ่งบอกว่าแพ็กเกตที่ส่งต่อกันมาเป็นแพ็กเกตของข้อมูลเดียวกัน ปกติแล้วทุกแพ็กเกตของข้อมูลเดียวกันจะมีค่า More =1 ยกเว้นแพ็กเกตสุดท้ายข้อมูลนั้นมีค่า More =0รูปแบบของแพ็กเกตควบคุมอื่น ๆ (นอกจากแพ็กเกตชนิด Call Request ) แสดงในรูป ข. ซึ่งจะมีเฮดเดอร์ 3 ไบต์บ่งบอกความหมายเลขเซอร์กิตและชนิดของแพ็กเกตนอกจากนั้นยังอาจมีข้อมูลเพิ่มเติมปะมาด้วย เช่น สำหรับแพ็กเกตชนิด Clear Request อาจจะอธิบายถึงเหตุผลที่ต้องยกเลิกการติดต่อ ซึ่งอาจเป็นเพราะว่าผู้ถูกเรียกปฏิเสธที่จะให้มีการเก็บเงินปลายทางหรือปลายทางไม่พร้อมรับข้อมูล หรือเครือข่ายแน่นขนัด เป็นต้นสำหรับแพ็กเกตควบคุมชนิดอื่นในรูป ง.
เช่น อินเตอร์รัปต์นั้นใช้เพื่อส่งข้อมูล ควบคุมเร่งด่วน เช่นเมื่อผู้ใช้เทอร์มินัลกดเบรกคีย์ (break key) ก็จะมีการส่งข้อมูลของการ อินเตอร์รัปต์นี้ทันทีโดยไม่ต้องรอคิวของแพ็กเกตส่วนชนิด RECEIVE READY (RR)ใช้สำหรับส่งการตอบรับแยกจากแพ็กเกตข้อมูลในกรณีที่ไม่มีข้อมูลส่งกลับ และ RECEIVE NOT READY (RNR) ใช้สำหรับ DTE เพื่อบ่งบอกให้DTE ฝั่งตรงข้ามให้หยุดส่งแพ็กเกตชั่วคราวและ REJECT นั้นใช้สำหรับDTE เพื่อขอให้ฝั่งตรงข้ามส่งแพ็กเกตมาใหม่ตั้งแต่หมายเลขที่ถูกกำหนดให้ฟิลด์ PPP ของแพ็กเกต REJECT นั้นส่วน RESET นั้นถูกใช้โดย DCE เพื่อบอกให้ DTE ที่ติดกับมันว่าต้องการยกเลิกการติดต่อสำหรับเวอร์ชวลกิตใด  อันหนึ่งเพราะเครือข่ายเสียหายเช่นโหนดใดโหนดหนึ่งของเครือข่ายเกิดเสียทำให้แพ็กเกตที่อยู่ในระหว่างการส่งและยังไม่ได้รับการตอบรับสูญหายได้ (ซึ่งการสร้างการติดต่อใหม่เพื่อส่งข้อมูลต่อไป เป็นหน้าที่ของระดับชั้นทรานสปอร์ต ) ส่วน RESTART นั้นถูกใช้เมื่อ DTE หรือ CDE ที่ติดกับ DTE นั้นเกิดเสียหาย ดังนั้นต้องยกเลิกเวอร์ชวลเซอร์กิตของการติดต่อทั้งหมดของ DTE นั้นสำหรับ DIAGNOSTIC นั้นถูกเรียกใช้สำหรับการไดแอกนอสติก(Diagnstic) เช่น เครือข่ายอาจจะส่งข้อมูลบอกผู้ใช้บริการถึงปัญหาต่าง ๆของการส่งข้อมูล เป็นต้นจากการอธิบายในตอนต้นจะเห็นว่า DTE ทั้งสองปลายจะมีการส่งแพ็กเกตให้แก่กันในลักษณะของโปรโตคอล Sliding Window แต่ความจริงแพ็กเกตถูกส่งมายังระดับชั้นดาต้าลิงก์ ซึ่งจะนำแพ็กเกตมาปะเฮดเดอร์และเทรเลอร์ เพื่อส่งให้แก่โหนดที่ติดกันด้วยโปรโตคอล HDLC ซึ่งเป็นโปรโตคอล SlidingWindow เช่นเดียวกันและจะมีการใช้หมายเลขลำดับสำหรับทุกๆเฟรมด้วยผู้อ่านจึงอาจสงสัยว่าหมายเลขลำดับของแพ็กเกตกับหมายเลขลำดับของเฟรมของแพ็กเกตนั้นจะเป็นหมายเลขลำดับเดียวกันหรือไม่ ซึ่งคำตอบก็คือไม่จำเป็นต้องเป็นมีหมายเลขลำดับเดียวกัน
ดังแสดงในรูป






แสดงความแตกต่างระหว่างหมายเขลลำดับในระดับชั้นเน็ตเวิร์กและระดับชั้นดาต้าลิงก์ โฮสต์ของโหนด P ส่งแพ็กเกตของโปรเซสส์ A และโปรเซสส์ B และค่าในวงเล็บหมายเลขของแพ็กเกต
จากการอธิบายในตอนต้นจะเห็นว่าในการส่งข้อมูลผ่านเครือข่าย x .25 นั้น DTE ทั้งสองปลายต้องสามารถสร้างแพ็กเกต และอินเตอร์เฟซกับ DCE ด้วยการโต้ตอบแพ็กเกตต่างๆอย่างถูกต้องเป็นลำดับ ดังนั้น DCE จึงต้องมีความสามารถในการประมวลผลข้อมูลเพื่อจะอินเตอร์เฟซกับ DCE ได้ถูกต้อง แต่หากอุปกรณ์ของผู้ใช้เป็นเทลมินัลที่ไม่มีความสามารถในการประมวลผลข้อมูลแล้ว เทลมินัลจะใช้เครือข่ายx .25 ได้โดยการติดต่อส่งข้อมูลผ่าน PAD (Packet Assembly/Disassembly) ซึ่งจะได้รับข้อมูลแต่ละตัวอักษรจากเทลร์มินัลทำเป็นแพ็กเกต แล้วส่งแพ็กเกตด้วยโปรโตคอล x .25ไปยังเครือข่ายสาธารณะ ส่วนในการรับข้อมูลPADจะแยกแพ็กเกตและส่งข้อมูล(เช่น ตัว อักษรให้แก่เทลร์มินัลปลายทาง ดังแสดงในรูป ซึ่งจะเห็นได้ว่าในการอินเตอร์เฟซระหว่าง PAD และเทลร์มินัลแบบอะซิงโครนัสนั้น ได้ถูกกำหนดเป็นมาตรฐาน x .25 โดย CCITTนอกจากนั้นหน้าที่ต่างๆของ PAD ในการติดต่อกับเทอร์มินัลได้ถูกกำหนดเป็น มาตรฐาน x .3 ทั้งนี้เพื่อให้เทลร์มินัลชนิดต่างๆสามารถติดต่อใช้งานโฮสต์ได้โดยผ่านเครือข่าย x .25 และการอินเตอร์เฟซระหว่าง PAD กับ
DTE ซึ่งเป็นโฮสต์ที่สามารถใช้x.25 ได้นั้นถูกกำหนดด้วยมาตรฐาน X.29 การใช้ PAD เพื่ออินเตอร์เฟซกับเทอร์มินัลเหล่านี้ยังช่วยทำให้การส่งข้อมูลมีประสิทธิภาพและลดค่าใช้จ่ายด้วยเพราะปกติแล้วเทอร์มินัลแบบอะซิงโครนัสมักจะมีการตรวจสอบข้อมูลผิดพลาดและแก้ไขโดยการทำงานในลักษณะการสะท้อนกลับข้อมูลกล่าวคือเมื่อผู้ใช้เทอร์มินัลกดคีย์บอร์ดตัวอักษรไม่ปรากฏบนจอภาพทันีเลยแต่จะถูกส่งไปยังโฮสต์ซึ่งก็จะสะท้อนกลับมาแสดงบนจอภาพเทอร์มินัลทำให้ผู้ใช้สามารถทราบได้ว่าข้อมูลที่ส่งไปนั้นเกิดข้อผิดพลาดระหว่างทางหรือไม่ ดังนั้นการใช้ PAD จะช่วยให้ไม่ต้องส่งตัวอักษรผ่านเครือข่ายไปถึงโฮสต์แล้วสะท้อนกลับมา ซึ่งจะเป็นการสิ้นเปลืองเวลาและค่าใช้จ่าย โดยการสะท้อนตัวอักษรกระทำที่ PAD ที่เชื่อมโยงกับเทอร์มินัลเพราะการส่งข้อมูลระหว่าง PAD กับโฮสต์ปลายทางนั้นมีการรับประกันความถูกต้องของการส่งข้อมูลโดย PAD
การส่งข้อมูลระหว่างเทอร์มินัล และ PAD นั้นต้องมีการกำหนดพารามิเตอร์หลายอย่าง สำหรับพารามิเตอร์อย่างหนึ่งคือการกำหนดว่าเมื่อใดแพ็กเกตของ PAD จึงจะถูกส่งออกไป ซึ่งปกติแล้วการคิดค่าบริการของเครือข่ายสาธารณะนั้นจะขึ้นอยู่กับจำนวนเซกเมนต์ที่ส่งซึ่งแต่ละ เซกเมนต์จะบรรจุตัวอักษรได้ 64 ตัวอักษร และแพ็กเกตหนึ่งประกอบด้วย 2 เซกเมนต์ (รวมแล้ว 128 ไบต์) หากผู้ใช้บริการต้องการให้มีการส่งข้อมูลอย่างรวดเร็วก็อาจกำหนดให้แต่ละแพ็กเกตดบรรจุอักษรตัวเดียว ซึ่งแน่นอนว่าค่าใช้จ่ายจะแพงมากแต่หากผู้ใช้บริการต้องการประหยัดค่าใช้จ่ายผู้ใช้อาจจะกำหนดให้มีการส่งแพ็กเกตเมื่อเซกเมนต์บรรจุตัวอักษรเต็มแล้วหรือเมื่อผู้ใช้กด Carriage Return เท่านั้น(ในการศึกษาพบว่า โดยเฉลี่ยตัวอักษรระหว่างแต่ละ CarriageReturn จะมีประมาณ 64 ตัวอักษรดังนั้นจึงกำหนดให้ว่าหนึ่งเซกเมนต์จะประกอบด้วยข้อมูล 64 ตัวอักษร หรือหนึ่งบรรทัดนั่นเอง)


                                                                                 แสดงภาพของดิจิตอลบิตไปป์
                                                                ISDN 
ในหัวข้อนี้จะกล่าวถึงสถาปัตยกรรมของระบบ ISDNโดยอธิบายถึงอุปกรณ์ต่างๆในระบบ ISDN ตลอดจนการที่อุปกรณ์ของผู้ใช้อินเตอร์เฟซเข้าสู่ระบบ ISDN ในระบบ ISDN อุปกรณ์ของผู้ใช้จะอินเตอร์เฟซกับอุปกรณ์ของผู้ให้บริการเพื่อเข้าสู่ระบบ ISDN ได้โดยผ่านดิจิตอลบิตไปป์ (digitalbitpipe) ซึ่งข้อมูลที่ถูกส่งระหว่างอุปกรณ์ทั้งสองโดยผ่านดิจิตอลบิตไปป์นี้จะเป็นลักษณะของฟูลดูเพล็กซ์ไม่ข้อมูลจะถูกส่งมาจากโทรศัพท์แบบดิจิตอลจากเทอร์มินัลหรือจากเครื่องแฟกซ์ก็ตามจากรูปแสดงถึงดิจิตอลบิตไปป์ซึ่งประกอบด้วยช่องสัญญาณหลายช่อง และอาศัย หลักการของ TDM ในการส่งข้อมูลของทุกช่องสัญญาณเหล่านี้ไปพร้อมๆกันผ่านดิจิตอล
บิตไปในระบบ ISDN มาตรฐานของช่องสัญญาณมีดังต่อไปนี้
1. ช่องสัญญาณ A- ช่องสัญญาณโทรศัพท์แบบแอนะล็อก สำหรับส่งข้อมูลเสียง 4 กิโลเฮิรตซ์
2. ช่องสัญญาณ B - ช่องสัญญาณดิจิตอล PCM ซึ่งมีอัตราส่งข้อมูล 64 Kbps สำหรับส่งข้อมูลเสียงหรือข้อมูลคอมพิวเตอร์ และเนื่องจากระบบ ISDN ใช้ช่องสัญญาณ B ซึ่งมีอัตราส่ง 64 Kbps เป็นหลักในการส่งข้อมูลดังนั้นจึงมักจะถูกเรียกว่า N- ISDN (NarrowbandISDN)เพื่อแยกความแตกต่างกับ Broadband ISDN
3. ช่องสัญญาณ C - ช่องสัญญาณดิจิตอล ซึ่งมีอัตราส่งข้อมูล 8 หรือ 16 Kbps
4. ช่องสัญญาณ D - ช่องสัญญาณดิจิตอล ซึ่งมีอัตราส่งข้อมูล 16 หรือ64Kbpsใช้สำหรับส่งสัญญาณในการเริ่มติดต่อ การหาเส้นทาง การเลิกติดต่อ การเก็บเงิน เป็นต้น
5. ช่องสัญญาณ E - ช่องสัญญาณดิจิตอล อัตราส่งข้อมูล 64 Kbps สำหรับการส่งสัญญาณที่ใช้ภายในระบบ ISDN เอง(Internal ISDN Signaling)
6. ช่องสัญญาณ H- ช่องสัญญาณดิจิตอลอัตราส่งข้อมูลสูง 384 หรือ 1,536 หรือ 1,920 Kbps นอกจากนั้นยังได้มีการแบ่งมาตรฐานของดิจิตอลบิตไปป์เพื่อการใช้งานออกเป็นแบบ เบสิกเรต (basicrate)ไพรมารีเรต(primary rate) และไฮบริต (hybrid) ซึ่งประกอบด้วยช่องสัญญาณแตกต่างกันไปดังนี้
เบสิกเรต ประกอบด้วย 2B +1D
ไพรมารีเรต ประกอบด้วย 23B+ 1D (ในอเมริการและญี่ปุ่น)หรือ 30B+1D(ในยุโรป)
ไฮบริต ประกอบด้วย 1A+ 1C
ดิจิตอลบิตไปป์แบบเบสิกเรต 
ซึ่งถูกกำหนดขึ้นมาเพื่อใช้แทนการบริการของระบบโทรศัพท์แบบเดิมที่ใช้ตามบ้านและธุรกิจเล็กๆทั่วไปโดยแต่ละช่องสัญญาณ B ซึ่งมีอัตราส่งข้อมูล s จะสามารถส่งข้อมูลเสียงที่ถูกเข้ารหัสด้วยระบบPCM (ใช้ 8 บิต(256ระดับในการเข้ารหัสของแต่ละตัวอย่างและทำการสุ่มตัวอย่าง 8,000 ครั้งต่อวินาที ทำให้อัตราส่งข้อมูลเท่ากับ 8*8,000bps) ระบบ ISDN ทำให้ผู้ใช้สามารถใช้ช่องสัญญาณเพื่อส่งข้อมูลแบบฟูลดูเพล็กซ์ถึง2ช่องสัญญาณซึ่งช่องสัญญาณหนึ่งอาจใช้สำหรับพูดคุยติดกันระหว่างผู้ใช้และในขณะเดียวกันอาจจะมีการส่งเอกสารถึงกันและกันผ่านอีกช่องสัญญาณหนึ่งก็ได้นอกจากนั้นในการส่งข้อมูลจากเทอร์มินัลช่องสัญญาณ B อาจถูกแบบเป็นช่องสัญญาณย่อยๆซึ่งมีอัตราส่งข้อมูล 32 Kbps 16 Kbps หรือต่ำกว่าก็ได้เพื่อสามารถส่งข้อมูลจากหลายๆเทอร์มินัลไปพร้อมๆกันสำหรับช่องสัญญาณ D ซึ่งมีอัตราการส่งข้อมูล 16Kbps ถูกใช้สำหรับส่งสัญญาณควบคุมการติดต่อโดยที่การติอต่อจะถูกส่งผ่านช่องสัญญาณนี้ซึ่งข้อมูลของการขอติดต่อจะระบุว่าต้องการใช้ช่องสัญญาณใดของช่องสัญญาณ B ในการส่งข้อมูล และระบุเบอร์โทรศัพท์ที่ต้องการติดต่อด้วย เป็นต้นสำหรับรูป (แสดงถึงดิจิตอลไปป์ของไพรมารีเรตซึ่งอาจแบ่งเป็น 2 ระบบ ระบบแรกประกอบด้วย 23 ช่องสัญญาณ Bและ 1 ช่องสัญญาณ D (ความเร็ว 64Kbps) ซึ่งใช้ในอเมริกาและญี่ปุ่นส่วนอีกระบบหนึ่งประกอบด้วย 30 ช่องสัญญาณ B และ 1 ช่องสัญญาณ D (ความเร็ว 64 Kbps) ซึ่งใช้ในยุโรป สำหรับระบบ23B +1D รวมเป็น 24 ช่องสัญญาณก็เพื่อให้สอดคล้องกับระบบการส่งข้อมูลด้วยสัญญาณดิจิตอลของ T1 ของ AT&T ที่มีใช้กันในปัจจุบันส่วนระบบ 30B+1D นั้นเพื่อให้สอดคล้องกับระบบการส่งข้อมูลด้วยสัญญาณดิจิตอลของ CCITT ซึ่งมี 32 ช่องสัญญาณและอัตราส่งข้อมูล s ซึ่งในระบบ ISDN นั้นจะถูกใช้สำหรับทำการสร้างเฟรมและการดูแลรักษาระบบภายในเครือข่าย ISDN เองจากข้างต้นจะเห็นว่าผู้ใช้สามารถอินเตอร์เฟซเพื่อส่งข้อมูลเข้าสู่ระบบ ISDN ได้โดยผ่านดิจิตอลบิตไปป์ซึ่งผู้ใช้อาจจะขอเช่าเบสิกเรตหรือไพรมารีเรตได้
ตามความต้องการและสำหรับธุรกิจที่ติ้งดารชิ่งสัญญาณจำนวนมากอาจขอเช่าใช้หล่ายๆบิตไปป์ก็ได้สำหรับรูปแบบการอินเตอร์เฟซของอุปกรณ์ของผู้ใช้ และอุปกรณ์ของผู้ให้บริการโดยผ่านดิจิตอลบิตไปป์ได้แสดงในรูป()และ(ในธุรกิจเล็กๆหรือตามบ้านนั้นผู้ให้บริการจะว่างอุปกรณ์ NT1 (Network Terminating Device) ไว้ในบริเวณของผู้ใช้เพื่อให้อินเตอร์เฟซกับอุปกรณ์ของผู้ใช้และ NT1 ก็จะถูกส่งข้อมูลไปยังชุมสายโดยผ่านคู่สายตีเกลียวของระบบโทรศัพท์ที่มีใช้ในปัจจุบันเบสิกเรตสำหรับการใช้งานตามบ้านนี้สามารถใช้อุปกรณ์ของผู้ใช้เช่นโทรศัพท์ ISDN เทอร์มินัลเครื่องเตือนภัยหรืออุปกรณ์อื่นๆเชื่อมต่อรับส่งข้อมูลกับสายเคเบิลของ NT1 ได้ถึง8อุปกรณ์สำหรับ NT1 นั้นปกติจะทำหน้าที่ควบคุมและจัดการดูแลการทำงานของอุปกรณ์ของผู้ใช้ในการรับส่งข้อมูลเข้าสู่เครือข่าย ISDN ได้อย่างถูกต้องเช่นจะเป็นตัวกำหนดแอดเดรสให้แก่อุปกรณ์ของผู้ใช้โดยมีการเปิดอุปกรณ์ซึ่งอยู่บนบัส (bus) อุปกรณ์นั้นจะขอแอดเดรสจาก NT1ซึ่ง NT1 จะตรวจสอบรายชื่อแอดเดรสที่ถูกใช้ไปแล้วและส่งแอดเดรสที่ว่างให้แก่อุปกรณ์นั้นๆและเนื่องจากอุปกรณ์ของผู้ใช้บนบัสซึ่วมีทั้งหมด 8 ชนิดนั้นต่อเข้ากับสายในลักษณะมัลติดรอปไลน์และช่องสัญญาณให้ส่งข้อมูลได้เพียง 2 ช่องสัญญาณเท่านั้นดังนั้น NT1 จะทำหน้าที่ควบคุมการส่งข้อมูลลงในบัของอุปกรณ์ไม่ให้เกิดการชนกันของข้อมูลอีกด้วย




สำหรับธุรกิจใหญ่ๆซึ่งการใช้อุปกรณ์สื่อสารมากมายนั้นเป็นการยากและไม่มีประสิทธิภาพที่จะใช้บัสแบบมัลติดรอปไลน์เพื่อรับส่งข้อมูลของอุปกรณ์หลายตัวพร้อมๆกันดังนั้นจึงมีการใช้อุปกรณ์ PBX(Private Branch Exchange) ซึ่งเป็น NT2 อีกตัวหนึ่งในการอินเตอร์เฟซเข้ากับอุปกรณ์สื่อสารเหล่านั้นของผู้ใช้สำหรับ PBXเป็นอุปกรณ์สวิตชิง (ตู้ชุมสาย) ขณะเล็กที่ใช้ในองค์กรหนึ่งๆ ทำให้มีการติดต่อกันได้ระหว่างอุปกรณ์ภายในสำนักงาน โดยการหมุนหมายเลข 3-4 ตัวเพื่อทำการติดต่อซึ่งการติดต่อสื่อสารภายในองค์การนี้ไม่ผ่านการบริการของเครือข่าย ISDN แต่เมื่อมี ผู้ใช้รายใดต้องการติดต่อกับผู้ใช้นอกองค์การ ผู้ใช้นั้นจะหมุน"9" หรือ "0" แล้วตามด้วยหมายเลขโทรศัพท์ของฝ่ายรับ ซึ่ง PBX จะตรวจสอบหาช่องสัญญาณที่ว่างของดิจิตอลบิตไปป์ หากมีก็จะใช้ช่องสัญญาณนั้นสำหรับการติดต่อส่งข้อมูลผ่านเครือข่าย ISDN หากไม่มี PBX ก็จะส่ง
สัญญาณสายไม่ว่างแก่ผู้เรียก นอกจาก
 PBX ซึ่งทำงานด้วยระบบ ISDN นั้นจามารถอินเตอร์เฟซได้โดยตรงกับโทรศัพท์และเทอร์มินัลแบบ ISDN แล้วสำหรับอุปกรณ์ที่ไม่ใช่ระบบ ISDN เช่นอุปกรณ์ที่ส่งข้อมูลด้วยRS -232 และโทรศัพท์แอนะล็อก จะสามารถส่งข้อมูลผ่าน PBX ได้โดยอาศัยอุปกรณ์เทอร์มินัลอะแดปเตอร์(Terminal Adapter: TA) ในการอินเตอร์เฟซเข้ากับ PBX ดังนั้นจึงอาจสรุปได้ว่าอุปกรณ์ที่อยู่ในเขตบริเวณของผู้ใช้แบ่งออกได้เป็น 5 ชนิดคือ
NT1: เป็นอุปกรณ์ของผู้ให้บริการในการอินเตอร์เฟซกับอุปกรณ์ของผู้ใช้บริการ
NT2 : เป็นตู้ชุมสาย (PBX) ในองค์กร
TE1: เป็นอุปกรณ์ที่ทำงานด้วยมาตรฐาน ISDN
TE2: เป็นอุปกรณ์ที่ไม่ใช่ระบบ ISDN
TA : เทอร์มินัลอะแดปเตอร์
นอกจากอุปกรณ์ต่างๆในระบบ
 ISDN ดังกล่าวข้างต้นแล้ว CCITT ยังได้กำหนดจุดอ้างอิง(reference points) สำหรับการอินเตอร์เฟซของอุปกรณ์ต่างๆของระบบดังต่อ ไปนี้
จุด
 U: เป็นจุดอ้างอิงของการอินเตอร์เฟซระหว่างชุมสาย ISDN กับ NT1 ปัจจุบันเป็นสายคู่ตีเกลียว 2 สาย แต่อาจจะถูกแทนด้วยเส้นใยนำแสดงในอนาคต
จุด
 T: เป็นจุดอ้างอิงของการอินเตอร์เฟซระหว่าง NT1 และอุปกรณ์ของผู้ใช้
จุด
 S: เป็นจุดอ้างอิงของการอินเตอร์เฟซระหว่าง PBX แบบ ISDN กับอุปกรณ์ ISDN
จุด
 R: เป็นจุดอ้างอิงของการอินเตอร์เฟซระหว่างเทอร์มินัลอะแดปเตอร์กับอุปกรณ์ที่ไม่ใช่ ISDN
แนวโน้มของ ISDN 
   ISDN มีเป้าหมายในการเข้ามาแทนที่ระบบส่งข้อมูลด้วยสัญญาณแอนะล็อกของเครือข่ายโทรศัพ และมีเป้าหมายในการส่งสัญญาณดิจิตอลมีรูปแบบเป็นมาตรฐานเดียวกันทั้งโลกดังนั้น ISDN จึงได้รับความสนใจอย่างกว้างขวางเพราะเมื่อมาตรฐานในการอินเตอร์เฟซของอุปกรณ์ผู้ใช้และระบบ ISDN เป็นแบบเบสิกเรต และ 2 ชนิด สำหรับแบบไพรมารีเรตซึ่งมีการยอมรับกันทั่วไปแล้ว อุปกรณ์ซึ่งทำงานด้วย ISDN จะสามารถติดต่อส่งข้อมูลกันได้ทั่วโลก ทำให้มีการใช้อุปกรณ์ ISDN นี้มาก และการผลิตจะเป็นลักษณะของผลิตภัณฑ์จำนวนมากซึ่งทำให้ผลิตภัณฑ์มีราคาถูกลง แต่อย่างก็ตามมาตรฐานนี้ได้ถูกกำหนดไว้นานเกินไป และในปัจจุบันนี้เทคโนโลยีได้เปลี่ยนแปลงไปมากดังเช่นผู้ใช้ระบบ ISDN จะได้ช่องสัญญาณซึ่งมีอัตราส่ง 64 Kbps ที่เหมาะในการส่งข้อมูลเสียงแบบ PCM แต่ปัจจุบันนี้ด้วยเทคนิคของการเข้ารหัส ข้อมูลเสียงสามารถถูกส่งได้ด้วย
อัตราส่งเพียง
 10-20 Kbps ซึ่งแสดงว่าส่วนใหญ่ของช่องสัญญาณ 64 Kbps เกิดการสูญเปล่า
สำหรับในแง่มุมของผู้ใช้ตามบ้าน โดยทั่วไปแล้วต้องการรับข้อมูลภาพความเคลื่อนไหวของทีวี ซึ่งต้องใช้แบน วิดธ์สูง
 (อัตราการส่งข้อมูลถึง 92 Mbps)แต่เบสิกเรตของ ISDN นั้นมีอัตราส่งแค่ 64 Kbps เท่านั้นยังไม่เพายงพอสำหรับการส่งสัญญาณทีวี ดังนั้นผู้ใช้ตามบ้านยังจะต้องใช้เคเบิลทีวีสำหรับรับสัญญาณทีวีและใช้ระบบ ISDN สำหรับรับส่งข้อมูลของอุปกรณ์อื่นๆซึ่งไม่สะดวกนักเพราะผู้ใช้ส่วนใหญ่มักต้องการให้มีระบบเดียวในการรับส่งข้อมูลของอุปกรณ์ทุกชนิดในบ้านส่วนในงานธุรกิจแล้ว ปัจจุบันนี้มีการใช้เครือข่ายแลน ซึ่งมีอัตราส่งถึง 10 Mbps ในการ ติดต่อระหว่างอุปกรณ์ต่างๆ ในสำนักงานดังนั้นจึงอาจเป็นไปได้ว่าเมื่อ ISDN แพร่หลายเครือข่ายแลนเองจะสามารถส่งข้อมูลได้อัตราถึง 100Mbps โดยใช้เส้นใยนำแสงดังนั้นจึงอาจเป็นไปได้ที่ผู้ใช้ในสำนักงานจะใช้ PBX แบบเดิมสำหรับส่งข้อมูลเสียงและใช้แลนสำหรับส่งข้อมูลทีไม่เป็นสัญญาณแอนะล็อกนอกจากนั้นการติดต่อส่งข้อมูลภายนอกผู้ใช้อาจจะใช้ดาวเทียมซึ่งปัจจุบันมีแบนด์วิดธ์ถึง 50 Mbps ในการส่งข้อมูลระยะไกลแทนที่จะเป็นระบบ ISDN ซึ่งมีช่องสัญญาณที่มีอัตราส่งข้อมูลเพียง 64 Kbps เพราะการส่งเทปแม่เหล็ก6,250 bpi โดยระบบดาวเทียมนั้นใช้เวลาเพียงแค่ 30 วินาทีแต่หากเป็นช่องสัญญาณของ ISDN จะใช้เวลานานถึง 6 ชั่วโมง
ดิจิตอล
 PBX
         PBXเป็นอุปกรณ์สำคัญชนิดหนึ่งสำหรับระบบ ISDN ซึ่งเคยมีผู้กล่าวกันว่าดิจิตอล PBX เป็นยักษ์หลับของระบบคอมพิวเตอร์และการสื่อสาร เพราะนอกจากจะใช้สำหรับการสื่อสารข้อมูลเสียงแล้วยังสามารถใช้บริการอื่นๆ อีกมากมาย เช่น การสลับข้อมูล ระบบเครือข่ายท้องถิ่นระบบจดหมายอิเล็กทรอนิกส์ จดหมายเสียง เป็นต้นPBX เป็นตู้ชุมสายซึ่งมีใช้ทุกบริษัท ทุกองค์กรทำให้มีการติดต่อพูดคุยกันระหว่างบุคคลในบริษัทและโลกภายนอกPBX สมัยใหม่ซึ่งถูกเรียกว่า PABX (Private Automatic Branch eXchange) หรือCBX (Computerized Branche Xchange) ถือได้ว่าเป็น PBX รุ่นที่สามสำหรับ PBX รุ่นแรกนั้นเป็นลักษณะที่ใช้โอเปอเรเตอร์รับสายจากผู้เรียกและถามหมายเลขโทรศัพท์ของรับแล้วจึงเสียบสายของทั้งคู่ที่ PBX เพื่อสร้างวงจรเชื่อมระหว่างผู้พูดทั้งสองส่วน PBX รุ่นที่สองนั้นแทนทีจะใช้โอเปอเรเตอร์จะมีการใช้รีเลย์ชนิดแม่เหล็กไฟฟ้าในการสร้างวงจรเชื่อมระหว่างผู้พูด PBX รุ่นที่สามหรือ PABX นี้มีโครงสร้างโดยทั่วไปดังแสดงในรูป ซึ่งประกอบด้วยเซอร์กิตสวิตวิงที่มีโมดูลการ์ด (madule card) เสียบอยู่ โดยที่แต่ละโมดูลการ์ดจะอินเตอร์เฟซกับอุปกรณ์ชนิดต่างๆโดยรับสัญญาณข้อมูลรูปแบต่างๆไม่ว่าจะเป็นสัญญาณแอนะล็อกของเสียง สัญญาณดิจิตอลของระบบ RS-232 หรือสัญญาณดิจิตอลของอุปกรณ์ ISND แล้วจะให้ผลออกมาเป็นสัญญาณดิจิตอลของระบบ ISND เช่นโมดูลการ์ดสำหรับโทรศัพท์แอนะล็อกนั้น
จะต้องใช้เทคนิคของ
 PCM ในการแปลงสัญญาณแอนะล็อกเป็นสัญญาณดิจิตอลในรูปแบบของ ISND เพื่อทำงานในPBX และอาจจะต้อง