วันอังคารที่ 28 ตุลาคม พ.ศ. 2557

บทที่ 3 มาตราฐานการเชื่อมต่อระบบเครืออข่าย

บทที่ 3 

มาตราฐานการเชื่อมต่อระบบเครืออข่าย


                         การที่คอมพิวเตอร์เครื่องหนึ่งจะส่งข้อมูลไปยังคอมพิวเตอร์อีกเครื่องหนึ่งได้นั้น จะต้องอาศัยกลไกหลายๆ
อย่างร่วมกันทำงานต่างหน้าที่กันและเชื่อมต่อเป็นเครือข่ายเข้าด้วยกัน ปัญหาที่เกิดขึ้นคือการเชื่อมต่อมีความแตกต่าง
ระหว่างระบบและอุปกรณ์หรือเป็นผู้ผลิตคนละรายกัน ซึ่งเป็นสิ่งที่ทำให้การสร้างเครือข่ายเป็นเรื่องยากมาก
เนื่องจากขาดมาตฐานกลางที่จำเป็นในการเชื่อมต่อ จึงได้เกิดหน่วยงานกำหนดมาตรฐานสากลขึ้นคือ 
International Standards Organization  ขึ้นและทำการกำหนดโครงสร้างทั้งหมดที่จำเป็นต้องใช้ในการสื่อสารข้อมูล
และเป็นระบบเปิด เพื่อให้ผู้ผลิตต่างๆสามารถแยกผลิตในส่วนที่ตัวเองถนัด แต่สามารถนำไปใช้ร่วมกันได้ 
ระบบเครือข่ายคอมพิวเตอร์สมัยใหม่จะถูกออกแบบให้มีโครงสร้างทีแน่นอน และเพื่อเป็นการลดความซับซ้อน 
 ระบบเครือข่ายส่วนมากจึงแยกการทำงานออกเป็นชั้น (layer) โดยกำหนดหน้าที่ในแต่ละชั้นไว้อย่างชัดเจน 
 แบบจำลองสำหรับอ้างอิงแบบ OSI (Open System Interconnection Reference Model)
  หรือที่นิยมเรียกกันทั่วไปว่า OSI Reference Model ของ ISO เป็นแบบจำลองที่ถูกเสนอและพัฒนาโดยองค์กร 
International Standard Organization (ISO)  โดยจะบรรยายถึงโครงสร้างของสถาปัตยกรรมเครือข่ายในอุดมคติ 
ซึ่งระบบเครือข่ายที่เป็นไปตามสถาปัตยกรรมนี้จะเป็นระบบเครือข่ายแบบเปิด และอุปกรณ์ทางเครือข่ายจะสามารถติดต่อกัน
ได้โดยไม่ขึ้นกับว่าเป็นอุปกรณ์ของผู้ขายรายใด

แบบจำลอง OSI 7 Layer Reference Model
         แบบจำลอง OSI จะแบ่งการทำงานของระบบเครือข่ายออกเป็น 7 ชั้น คือ
        แต่ละชั้นของแบบการสื่อสารข้อมูลเรียกว่า Layer ประกอบด้วย Layer ย่อยๆทั้งหมด7 Layerแต่ละชั้นทำหน้าที่รับส่งข้อมูลกับชั้นที่อยู่ติดกับตัวเองเท่านั้นจะไม่ติดต่อกระโดดข้ามไปยังชั้นอื่นๆเช่น Layer 6จะติดต่อกับ Layer5 และ Layer7 เท่านั้นและการส่งข้อมูลจะทำไล่จาก Layer7 ลงมาจนถึง Layer1 ซึ่งเป็นชั้นที่มีการเชื่อมต่อทางกายภาพ จากนั้นข้อมูลจะถูกส่งไปยังเครื่องผู้รับปลายทางโดยเริ่มจาก Layer1 ข้อมูลก็จะถูกถอดรหัส และส่งขึ้นไปตาม Layer จนถึง Layer7 ก็จะประกอบกลับมาเป็นข้อมูล นำไปส่งให้ application นำไปใช้แสดงผลต่อไป
OSI Model ได้แบ่ง ตามลักษณะของออกเป็น 2 กลุ่มใหญ่ ได้แก่
  Application-oriented Layers เป็น 4 Layer ด้านบนคือ Layer ที่ 7,6,5,4 ทำหน้าที่เชื่อมต่อรับส่งข้อมูลระหว่างผู้ใช้กับโปรแกรมประยุกต์ เพื่อให้รับส่งข้อมูลกับฮาร์ดแวร์ที่อยู่ชั้นล่างได้อย่างถูกต้อง ซึ่งจะเกี่ยวข้องกับซอฟแวร์เป็นหลัก
  Network-dependent Layers เป็น 3 Layers ด้านล่าง ทำหน้าที่เกี่ยวกับการรับส่งข้อมูลผ่านสายส่ง และควบคุมการรับส่งข้อมูล.ตรวจสอบข้อผิดพลาด รวมทั้งเลื่อกเส้นทางที่ใช้ในการรับส่ง ซึ่งจะเกี่ยวข้องกับฮาร์ดแวร์เป็นหลัก ทำให้ใช้ผลิตภัณฑ์ต่างบริษัทกันได้อย่างไม่มีปัญหา

การส่งผ่านข้อมูลระหว่างชั้น

     เมื่อ computer A ต้องการส่งข้อมูลไปยัง computer B จะมีกระบวนการทำงานต่างๆ ตามลำดับดังนี้
ข้อมูลจาก Layer 7,6,5 จะถูกนำมาหั่นเป็นท่อนๆ แล้วใส่ข้อมูลบางอย่างตอ่เพิ่มเข้าไปในส่วนหัว เรียกว่า Header เพื่อใช้ในการบันทึกข้อมูลที่จำเป็นเช่น หมายเลข port ต้นทางและหมายเลข port ปลายทาง กลายมาเป็นก้อนข้อมูล(Segment) ใน Layer4 ซึ่งเรียกว่า TCP Segment
จากนั้นข้อมูล Layer4 จะถูกส่งผ่านลงไปยัง Layer3 และจะถูกใส่ Header อีกซึ่งเป็นการเพิ่ม header เป็นชั้นๆ เรียกว่า การ Encapsulate ซึ่งในส่วนนี้จะเหมือนกับการเอาเอกสารใส่ซองจดหมายแล้วจ่าหน้าซองระบุผู้ส่งและผู้รับ คือเป็นการบันทึกหมายเลข ip address ของโฮสต์ต้นทางและโฮสต์ปลายทางไว้ด้วย เมื่อการ encapsulate เสร็จสิ้นจะได้ก้อนข้อมูลที่เรียกว่า packet
จากนั้น packet ของข้อมูลจะถูกส่งผ่านไปยังระดับล่างอีก คือส่งไปให้ Layer2 ในชั้นนี้ข้อมูลจะถูกใส่ header เพิ่มเข้าไปที่ส่วนหัวเพื่อเก็บ MAC Address ของต้นทางและปลายทาง และยังมีการใส่ข้อมูล่ต่อเพิ่มเข้าไปในส่วนหางด้วย ข้อมูลที่ต่อเพิ่มไปในส่วนหางนี้เรียกว่า Trailer จึงรวมกันกลายเป็นก้อนข้อมูลของ Layer2 ที่เรียกว่า Frame
จากนั้น Frame ข้อมูลจะถูกแปลงให้กลายเป็น bit ของข้อมูลเพื่อส่งไปตามสื่อเข่นสาย UTP,Fiber ต่อไป การส่งสัญญาณทางไฟฟ้าไปตามสื่อต่างๆนี้ เป็นการทำงานในระดับ Layer1 เรียกว่า Physical Layer

    หน้าที่ของแต่ละ Layer

Layer7, Application Layer
เป็นชั้นที่อยู่บนสุดของขบวนการรับส่งข้อมูล ทำหน้าที่ติดต่อกับผู้ใช้ โดยจะรับคำสั่งต่างๆจากผู้ใช้ส่งให้คอมพิวเตอร์แปลความหมาย และทำงานตามคำสั่งที่ได้รับในระดับโปรแกรมประยุกต์ เช่นแปลความหมายของการกดปุ่มเมาส์ให้เป็นคำสั่งในการก็อปปี้ไฟล์ หรือดึงข้อมุลมาแสดงผลบนหน้าจอเป็นต้น
ตัวอย่างของ protocol ในชั้นนี้คือ Web Browser,HTTP,FTP,Telnet,WWW,SMTP,SNMP,NFS เป็นต้น

Layer6, Presentation Layer
เป็นชั้นที่ทำหน้าที่ตกลงกับคอมพิวเตอร์อีกด้านหนึ่งในชั้นเดียวกันว่า การรับส่งข้อมูลในระดับโปรแกรมประยุกต์จะมีขั้นตอนและข้อบังคับอย่างไร จุดประสงค์หลักของ Layer นี้คือ กำหนดรูปแบบของการสื่อสาร อย่างเช่น ASCII Text,EBCDIC,Binary และ JPEG รวมถึงการเข้ารหัส (Encription)ก็รวมอยู่ใน Layer นี้ด้วย ตัวอย่างเช่น โปรแกรม FTP ต้องการรับส่งโอนย้ายไฟล์กับเครื่อง server ปลายทาง โปรโตคอล FTP จะอนุญาติให้ผู้ใช้ระบุรูปแบบของข้อมูลที่โอนย้ายกันได้ว่าเป็นแบบ ASCII text หรือแบบ binary
ตัวอย่างของ protocol ในชั้นนี้คือ JPEG,ASCII,Binary,EBCDICTIFF,GIF,MPEG,Encription เป็นต้น

Layer5, Session Layer
เป็น Layer ที่ควบคุมการสื่อสารจากต้นทางไปยังปลายทางแบบ End to End และคอยควบคุมช่องทางการสื่อสารในกรณีที่มีหลายๆ โปรเซสต้องการรับส่งข้อมูลพร้อมๆกันบนเครื่องเดียวกัน (ทำงานคล้ายๆเป็นหน้าต่างคอยสลับเปิดให้ข้อมูลเข้าออกตามหมายเลขช่อง(port)ที่กำหนด) และยังให้อินเตอร์เฟซสำหรับ Application Layer ด้านบนในการควบคุมขั้นตอนการทำงานของ protocol ในระดับ transport/network เช่น socket ของ unix หรือ windows socket ใน windows ซึ่งได้ให้ Application Programming Interface (API) แก่ผู้พัฒนาซอฟแวร์ในระดับบนสำหรับการเขียนโปรแกรมเพื่อควบคุมการทำงานของ protocol TCP/IP ในระดับล่าง และทำหน้าที่ควบคุม "จังหวะ" ในการรับส่งข้อมูล ของทั้ง 2ด้านให้มีความสอดคล้องกัน (syncronization) และกำหนดวิธีที่ใช้รับส่งข้อมูล เช่นอาจจะเป็นในลักษณะสลับกันส่ง (Half Duplex) หรือรับส่งไปพร้อมกันทั้ง2ด้าน (Full Duplex) ข้อมูลที่รับส่งกันใน Layer5 นี้จะอยู่ในรูปของ dialog หรือประโยคข้อมูลที่สนทนาโต้ตอบกันระหว่างต้านรับและด้านที่ส่งข้อมูล ไม่ได้มองเป็นคำสั่งอย่างใน Layer6 เช่นเมื่อผู้รับได้รับข้อมูลส่วนแรกจากผู้ส่ง ก็จะตอบกลับไปให้ผู้ส่งรู้ว่าได้รับข้อมูลส่วนแรกเรียบร้อยแล้ว และพร้อมที่จะรับข้อมูลส่วนต่อไป คล้ายกับเป็นการสนทนาตอบโต้กันระหว่างผู้รับกับผู้ส่งนั่นเอง
ตัวอย่างของ protocol ในชั้นนี้คือ RPC,SQL,Netbios,Windows socket,NFS เป็นต้น

Layer4,Transport Layer
เป็น Layer ที่มีหน้าที่หลักในการแบ่งข้อมูลใน Layer บนให้พอเหมาะกับการจัดส่งไปใน Layer ล่าง ซึ่งการแบ่งข้อมูลนี้เรียกว่า Segmentation ,ทำหน้าที่ประกอบรวมข้อมูลต่างๆที่ได้รับมาจาก Layer ล่าง และให้บริการตรวจสอบและแก้ไขปัญหาเมื่อเกิดข้อผิดพลาดขึ้นระหว่างการส่ง(error recovery) ทำหน้าที่ยืนยันว่าข้อมูลได้ถูกส่งไปถึงยังเครื่องปลายทางและได้รับข้อมูลถูกต้องเรียบร้อยแล้ว
หน่วยของข้อมูลที่ถูกแบ่งแล้วนี้เรียกว่า Segment     ตัวอย่างของ protocol ในชั้นนี้คือ TCP,UDP,SPX

Layer3,Network Layer
เป็น Layer ที่มีหน้าที่หลักในการส่ง packet จากเครื่องต้นทางให้ไปถีงปลายทางด้วยความพยายามที่ดีที่สุด (best effort delivery) layer นี้จะกำหนดให้มีการตั้ง logical address ขึ้นมาเพื่อใช้ระบุตัวตน ตัวอย่างของ protocol นี้เช่น IP และ logical address ที่ใช้คือหมายเลข ip นั่นเอง layer นี้ส่วนใหญ่เกี่ยวข้องกับอุปกรณ์ฮาร์ดแวร์ซึ่งที่ทำงานอยูบน Layer นี้คือ router นั่นเอง
protocol ที่ทำงานใน layer นี้จะไม่ทราบว่าpacketจริงๆแล้วไปถึงเครื่องปลายทางหรือไม่ หน้าที่ยืนยันว่าข้อมูลได้ไปถึงปลายทางจริงๆแล้วคือหน้าที่ของ Transport Layer นั่นเอง
หน่วยของ layer นี้คือ packet    ตัวอย่างของ protocol ในชั้นนี้คือ IP,IPX,Appletalk

Layer2, Data Link Layer
รับผิดชอบในการส่งข้อมูลบน network แต่ละประเภทเช่น Ethernet,Token ring,FDDI, หรือบน WAN ต่างๆ ดูแลเรื่องการห่อหุ้มข้อมูลจาก layer บนเช่น packet ip ไว้ภายใน Frame และส่งจากต้นทางไปยังอุปกรณ์ตัวถัดไป layer นี้จะเข้าใจถึงกลไกและอัลกอริทึ่มรวมทั้ง format จอง frame ที่ต้องใช้ใน network ประเภทต่างๆเป็นอย่างดี ในnetworkแบบEthernet layer นี้จะมีการระบุหมายเลข address ของเครื่อง/อุปกรณ์ต้นทางกับเครื่อง/อุปกรณ์ปลาทางด้วย hardware address ที่เรียกว่า MAC Address
MAC Address เป็น address ที่ฝังมากับอุปกรณ์นั้นเลยไม่สามารถเปลี่ยนเองได้ MAC Address เป็นตัวเลขขนาด 6 byte, 3 byte แรกจะได้รับการจัดสรรโดยองค์กรกลาง IEEE ให้กับผู้ผลิตแต่ละราย ส่วนตัวเลข 3 byte หลังทางผู้ผลิตจะเป็นผู้กำหนดเอง
หน่วยของ layer นี้คือ Frame    ตัวอย่างของ protocol ในชั้นนี้คือ Ethernet,Token Ring,IEEE 802.3/202.2,Frame Relay,FDDI,HDLC,ATM เป็นต้น

Layer1, Physical Layer
Layer นี้เป็นการกล่าวถึงข้อกำหนดมาตรฐานคุณสมบัติทางกายภาพของฮาร์ดแวร์ที่ใช้เชื่อมต่อระหว่างคอมพิวเตอร์ทั้ง2ระบบ  สัญญาณทางไฟฟ้าและการเชื่อมต่อต่างๆของสายเคเบิล,Connectorต่างๆ เช่นสายที่ใช้รับส่งข้อมูลเป็นแบบไหน ข้อต่อหรือปลั๊กที่ใช้มีมาตรฐานอย่างไร ใช้ไฟกี่โวลต์ ความเร็วในการรับส่งเป็นเท่าไร สัญญาณที่ใช้รับส่งข้อมูลมีมาตรฐานอย่างไร Layer1 นี้จะมองเห็นข้อมูลเป็นการรับ-ส่งที่ละ bit เรียงต่อกันไปโดยไม่มีการพิจารณาเรื่องความหมายของข้อมูลเลย การรับส่งจะเป็นในรูป 0 หรือ 1 หากการรับส่งข้อมูลมีปัญหาเนื่องจากฮาร์ดแวร์ เช่นสายขาดก็จะเป็นหน้าที่ของ Layer1 นี้ที่จะตรวจสอบและแจ้งข้อผิดพลาดนั้นให้ชั้นอื่นๆที่อยู่เหนือขึ้นไปทราบ
หน่วยของ layer นี้คือ bits    ตัวอย่างของ protocol ในชั้นนี้คือ CAT5,CAT6,RJ-45,EIA/TIA-232,V.35cable เป็นต้น

2. โปรโตคอลในการสื่อสารข้อมูล


ในการสื่อสารทางเครือข่ายคอมพิวเตอร์ จำต้องมีการสื่อสารข้อมูลระหว่างเครื่องคอมพิวเตอร์ในระบบ ซึ่งเครื่องคอมพิวเตอร์ที่ต่ออยู่ในเครือข่ายเดียวกันนี้ อาจจะมีฮาร์ดแวร์,ซอฟท์แวร์ที่แตกต่างกัน ดังนั้นเมื่อทำการส่งข้อมูลถึงกันและตีความหมายได้ตรงกัน จึงต้องมีการกำหนดระเบียบวิธีการติดต่อให้ตรงกัน โปรโตคอล ( Protocol ) คือระเบียบวิธีที่กำหนดขึ้นสำหรับการสื่อสารข้อมูล โดยสามารถส่งผ่านข้อมูลไปยังปลายทางได้อย่างถูกต้อง ซึ่งตัวโปรโตคอลที่นิยมใช้ในปัจจุบันคือ TCP/IP นอกจากนี้ยังมีการออกแบบโปรโตคอลตัวอื่นๆขึ้นมาใช้งานอีก เช่น โปรโตคอล IPX/SPX,โปรโตคอล NetBEUI และ โปรโตคอล Apple Talk

โปรโตคอล IPX/SPX

ถูกพัฒนาขึ้นโดยบริษัท Novell ซึ่งทำการพัฒนามาจากตัวโปรโตคอล XNS ของบริษัท Xerox Corporation ซึ่งโครงสร้างเมื่อทำการเปรียบเทียบ
กับ OSI Model ดังรูป

ตัวโปรโตคอล IPX/SPXแบ่งออกเป็น 2 โปรโตคอลหลักคือ Internetwork Packet Exchange   ( IPX) และ Sequenced Packet Exchange (SPX) โดยโปรโตคอล IPX ทำหน้าที่ในระดับ network layer ตามาตรฐาน OSI Model มีกลไกการส่งผ่านข้อมูลแบบ connectionless,unrerelibleหมายความว่า เมื่อมีการส่งข้อมูล โดยไม่ต้องทำการสถาปนาการเชื่อมต่อกันระหว่าง host กับเครื่องที่ติดต่อกันอย่างถาวร ( host , เครื่องเซิร์ฟเวอร์ที่ให้บริการใดๆในเครือข่าย ) และไม่ต้องการรอสัญญานยืนยันการรับข้อมูลจากปลายทาง โดยตัวโปรโตคอลจะพยายามส่งข้อมูลนั้นไปยังปลายทางให้ดีที่สุด สำหรับโปรโตคอล SPX ทำหน้าที่ในระดับ transport layer ตามมาตรฐาน OSI Model โดยส่งผ่านข้อมูลตรงข้ามกับโปรโตคอล IPXคือ ต้องมีการทำการสถาปนาการเชื่อมโยงกันก่อนและมีการส่งผ่านข้อมูลที่เชื่อถือได้ ด้วยการตรวจสอบสัญญาณยืนยันการรับส่งข้อมูลจากปลายทาง

โปรโตคอล NetBEUI

โปรโตคอล NetBEUI หรือ NetBIOS Enhanced User Interface นั้น เป็นโปรโตคอลที่ไม่มี ส่วนในการระบุเส้นทางส่งผ่านข้อมูล (Non-routable Protocol)โดยจะใช้วิธีการ Broadcast ข้อมูลอกไปในเครือข่าย และหากใครเป็นผู้รับที่ถูกต้องก็จะนำข้อมูลที่ได้รับไปประมวลผล ข้อจำกัดของโปรโตคอลประเภทนี้ก็คือไม่สามารถทำการ Broadcast ข้อมูลข้ามไปยัง Physical Segment อื่นๆที่ไม่ใช่ Segment เดียวกันได้ เป็นการแบ่งส่วนของเครือข่ายออกจากกันทางกายภาพ หากต้องการเชื่อมต่อเครือข่ายถึงกันจะต้องใช้อุปกรณ์อย่างเช่น Router มาทำหน้าที่เป็นตัวกลางระหว่างเครือข่าย
เนื่องมาจากอุปกรณ์บางอย่างเช่น Router ไม่สามารถจะ Broadcast ข้อมูลต่อไปยังเครือข่ายอื่นๆได้ เพราะถ้าหากยอมให้ทำเช่นนั้นได้ จะทำให้การสื่อสารระหว่างเครือข่ายคับคั่งไปด้วยข้อมูลที่เกิดจากการ Broadcast จนเครือข่ายต่างๆไม่สามารถที่จะสื่อสารกันต่อไปได้ โปรโตคอล NetBEUI จึงเหมาะที่จะใช้งานบนเครือข่ายขนาดเล็กที่มีจำนวนเครื่องคอมพิวเตอร์ไม่เกิน 50 เครื่องเท่านั้น NetBEUI เป็นหนึ่งในสองทางเลือกสำหรับผู้ใช้งาน NetBIOS ( Network Basic Input Output System ) ซึ่งสามารถทำงานได้ทั้งบนโปรโตคอล TCP/IP และ NetBUEI

โปรโตคอล AppleTalk

จุดเริ่มต้นของโปรโตคอล AppleTalk เกิดขึ้นในปีค.ศ.1983 ซึ่งเป็นช่วงที่บริษัท Apple Computer ต้องการออกแบบชุดโปรโตคอลสื่อสารข้อมูลของตนเองขึ้น เพื่อใช้เชื่อมโยงเครือข่ายของเครื่องแบบแมคอินทอช และสามารแชร์กับอุปกรณ์ต่างๆ นอกจากนี้ยังขยายไปสู่การเชื่อมโยงเป็นเครือข่ายของเซิร์ฟเวอร์,เครื่องพิมพ์, Gateway และ Router ของผู้ผลิตรายอื่นๆด้วยต่อจากนั้นเครื่องแมคอินทอชและอุปกรณ์ต่างๆที่บริษัทผลิตออกมาก็ได้มีการเพิ่มส่วนของฮาร์ดแวร์และซอฟท์แวร์ให้สามารถรองรับโปรโตคอลตัวนี้ได้ รวมถึงระบบปฏิบัติการ MacOS รุ่นใหม่ๆก็ได้มีการผนวกฟังก์ชั่นให้รองรับโปรโตคอลตัวนี้ได้เช่นกัน ทำให้กลุ่มผู้ใช้เครื่องแมคอินทอชสามารถเชื่อมโยงกันเป็นเครือข่ายได้ง่ายโดยไม่ต้องไปหาซื้อ อุปกรณ์เพิ่มเติมอีก
โปรโตคอล Apple Talk ถูกออกแบบมาให้ทำงานเป็นเครือข่ายในแบบ peer-to-peer ซึ่งถือว่าเครื่องทั้งหมดที่เชื่อมต่ออยู่ในเครือข่ายสามารถเป็นเซิร์ฟเวอร์ได้ทุกเครื่องโดยไมต้องจัดให้บางเครื่องทำหน้าที่เป็นเซิร์ฟเวอร์ที่ให้บริการโดยเฉพาะขึ้นมา ต่อมาปีค.ศ. 1989 ได้มีการพัฒนาโปรโตคอล AppleTalk ให้สนับสนุนเครือข่ายที่ใหญ่มากขึ้นได้ สามารถมีเครื่องลูกข่ายและอุปกรณ์ที่เชื่อมต่อในเครือข่ายได้มากกว่าเดิมเรียกว่าเป็นโปรโตคอล Apple Talk Phase 2 นอกจากนี้ยังเพิ่มโปรโตคอลที่ทำให้สามารถเชื่อมต่อกับเครือข่ายแบบ Ethernet และ Token Ring ได้ โดยเรียกว่า EtherTalk และ TokenTalk ตามลำดับ

โปรโตคอลTCP/IP ( RFC1180 )

โปรโตคอล TCP/IP เป็นชื่อเรียกของชุดโปรโตคอลที่สำคัญ มีการใช้งานกันอย่างแพร่หลายตามการขยายตัวของอินเทอร์เนท/อินทราเนท ความจริงแล้วโปรโตคอล TCP/IP เป็นกลุ่มของโปรโตคอล หลายตัวที่ประกอบกันเป็นชุดให้ใช้งานโดยมีคำเต็มว่าTransmission Control Protocol /Internet Protocol ซึ่งจะเห็นได้ว่ามีโปรโตคอลประกอบกันทำงาน 2 ตัว คือ TCP และ IP
ตัวอย่างของกลุ่มโปรโตคอลในชุดของ TCP/IP ที่เราพบและใช้งานบ่อยๆ ( ส่วนใหญ่จะไม่ได้ใช้งานโดยตรง แต่จะใช้งานผ่านแอพพลิเคชั่นต่างๆหรือทำงานโดยอ้อม เช่น Internet Protocol,Address Resolution Protocol(ARP) ,Internet Control Message Protocol (ICMP) ,User Datagram Protocol (UDP) ,Transprot Control Protocol (TCP) และ Simple Mail Transfer Protocol (SMTP)
โปรโตคอลที่มีบทบาทสำคัญในการทำงานในเครือข่ายอินเทอร์เนทคือ Internet Protocol (โปรโตคอล IP) เนื่องจากเมื่อโปรโตคอลอื่นๆต้องการส่งผ่านข้อมูลข้ามเครือข่ายในอินเทอร์เนทนั้น จะต้องอาศัยการผนึกข้อมูล ไปกับโปรโตคอล IP ที่มีกลไกการระบุเส้นทาง ผ่าน Gateway หรือ
Router เพื่อนำข้อมูลไปยังเครือข่ายและเครื่องปลายทางที่ถูกต้อง เนื่องจากกลไกการระบุเส้นทางจะทำงานที่โปรโตคอล IP เท่านั้นและด้วยเหตุนี้เราจึงเรียก ว่าเป็นโปรโตคอลที่มีความสามารถในการระบุเส้นทางการส่งผ่านของข้อมูลได้(Routable)

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

โปรโตคอล tcp/ip

TCP/IP (Transmitsion Control Protocol/Internet Protocol) เป็นชุดของโปรโตคอลที่ถูกใช้ในการสื่อสารผ่านเครือข่ายอินเทอร์เน็ต โดยมีวัตถุประสงค์เพื่อให้สามารถใช้สื่อสารจากต้นทางข้ามเครือข่ายไปยังปลายทางได้ และสามารถหาเส้นทางที่จะส่งข้อมูลไปได้เองโดยอัตโนมัติ ถึงแม้ว่าในระหว่างทางอาจจะผ่านเครือข่ายที่มีปัญหา โปรโตคอลก็ยังคงหาเส้นทางอื่นในการส่งผ่านข้อมูลไปให้ถึงปลายทางได้
ชุดโปรโตคอลนี้ได้รับการพัฒนามาตั้งแต่ปี 1960 ซึ่งถูกใช้เป็นครั้งแรกในเครือข่าย ARPANET ซึ่งต่อมาได้ขยายการเชื่อมต่อไปทั่วโลกเป็นเครือข่ายอินเตอร์เน็ต ทำให้ TCP/IP เป็นที่ยอมรับอย่างกว้างขวางจนถึงปัจจุบัน
TCP/IP Protocol
TCP/IP มีจุดประสงค์ของการสื่อสารตามมาตรฐาน สามประการคือ
1. เพื่อใช้ติดต่อสื่อสารระหว่างระบบที่มีความแตกต่างกัน
2. ความสามารถในการแก้ไขปัญหาที่เกิดขึ้นในระบบเครือข่าย เช่นในกรณีที่ผู้ส่งและผู้รับยังคงมีการติดต่อกันอยู่ แต่โหนดกลางทีใช้เป็นผู้ช่วยรับ-ส่งเกิดเสียหายใช้การไม่ได้ หรือสายสื่อสารบางช่วงถูกตัดขาด กฎการสื่อสารนี้จะต้องสามารถจัดหาทางเลือกอื่นเพื่อทำให้การสื่อสารดำเนินต่อไปได้โดยอัตโนมัติ
3. มีความคล่องตัวต่อการสื่อสารข้อมูลได้หลายชนิดทั้งแบบที่ไม่มีความเร่งด่วน เช่น การจัดส่งแฟ้มข้อมูล และแบบที่ต้องการรับประกันความเร่งด่วนของข้อมูล เช่น การสื่อสารแบบ real-time และทั้งการสื่อสารแบบเสียง (Voice) และข้อมูล (data)
Encapsulation/Demultiplexing
การส่งข้อมูลผ่านในแต่ละเลเยอร์ แต่ละเลเยอร์จะทำการประกอบข้อมูลที่ได้รับมา กับข้อมูลส่วนควบคุมซึ่งถูกนำมาไว้ในส่วนหัวของข้อมูลเรียกว่า Header ภายใน Header จะบรรจุข้อมูลที่สำคัญของโปรโตคอลที่ทำการ Encapsulate เมื่อผู้รับได้รับข้อมูล ก็จะเกิดกระบวนการทำงานย้อนกลับคือ โปรโตคอลเดียวกัน ทางฝั่งผู้รับก็จะได้รับข้อมูลส่วนที่เป็น Header ก่อนและนำไปประมวลและทราบว่าข้อมูลที่ตามมามีลักษณะอย่างไร ซึ่งกระบวนการย้อนกลับนี้เรียกว่า Demultiplexing

รูปที่1 ขั้นตอนการ Encapsulation และ Demultiplexing

ข้อมูลที่ผ่านการ Encapsulate ในแต่ละเลเยอร์มีชื่อเรียกแตกต่างกัน ดังนี้
• ข้อมูลที่มาจาก User หรือก็คือข้อมูลที่ User เป็นผู้ป้อนให้กับ Application เรียกว่า User Data
• เมื่อแอพพลิเคชั่นได้รับข้อมูลจาก user ก็จะนำมาประกอบกับส่วนหัวของแอพพลิเคชั่น เรียกว่า Application Data และส่งต่อไปยังโปรโตคอล TCP
• เมื่อโปรโตคอล TCP ได้รับ Application Data ก็จะนำมารวมกับ Header ของ โปรโตคอล TCP เรียกว่า TCP Segment และส่งต่อไปยังโปรโตคอล IP
• เมื่อโปรโตคอล IP ได้รับ TCP Segment ก็จะนำมารวมกับ Header ของ โปรโตคอล IP เรียกว่า IP Datagram และส่งต่อไปยังเลเยอร์ Host-to-Network Layer
• ในระดับ Host-to-Network จะนำ IP Datagram มาเพิ่มส่วน Error Correction และ flag เรียกว่า Ethernet Frame ก่อนจะแปลงข้อมูลเป็นสัญญาณไฟฟ้า ส่งผ่านสายสัญญาณที่เชื่อมโยงอยู่ต่อไป
ในแต่ละเลเยอร์ของโครงสร้าง TCP/IP สามารถอธิบายได้ดังนี้ 

รูปที่2 โครงสร้าง TCP/IP
1. ชั้นโฮสต์-เครือข่าย (Host-to-Network Layer)
โพรโตคอลสำหรับการควบคุมการสื่อสารในชั้นนี้เป็นสิ่งที่ไม่มีการกำหนดรายละเอียดอย่างเป็นทางการ หน้าที่หลักคือการรับข้อมูลจากชั้นสื่อสาร IP มาแล้วส่งไปยังโหนดที่ระบุไว้ในเส้นทางเดินข้อมูลทางด้านผู้รับก็จะทำงานในทางกลับกัน คือรับข้อมูลจากสายสื่อสารแล้วนำส่งให้กับโปรแกรมในชั้นสื่อสาร
2. ชั้นสื่อสารอินเทอร์เน็ต (The Internet Layer)
ใช้ประเภทของระบบการสื่อสารที่เรียกว่า ระบบเครือข่ายแบบสลับช่องสื่อสารระดับแพ็กเก็ต (packet-switching network) ซึ่งเป็นการติดต่อแบบไม่ต่อเนื่อง (Connectionless) หลักการทำงานคือการปล่อยให้ข้อมูลขนาดเล็กที่เรียกว่า แพ็กเก็ต (Packet) สามารถไหลจากโหนดผู้ส่งไปตามโหนดต่างๆ ในระบบจนถึงจุดหมายปลายทางได้โดยอิสระ หากว่ามีการส่งแพ็กเก็ตออกมาเป็นชุดโดยมีจุดหมายปลายทางเดียวกันในระหว่างการเดินทางในเครือข่าย แพ็กเก็ตแต่ละตัวในชุดนี้ก็จะเป็นอิสระแก่กันและกัน ดังนั้น แพ็กเก็ตที่ส่งไปถึงปลายทางอาจจะไม่เป็นไปตามลำดับก็ได้
2.1   IP (Internet Protocol)
IP เป็นโปรโตคอลในระดับเน็ตเวิร์คเลเยอร์ ทำหน้าที่จัดการเกี่ยวกับแอดเดรสและข้อมูล และควบคุมการส่งข้อมูลบางอย่างที่ใช้ในการหาเส้นทางของแพ็กเก็ต ซึ่งกลไกในการหาเส้นทางของ IP จะมีความสามารถในการหาเส้นทางที่ดีที่สุด และสามารถเปลี่ยนแปลงเส้นทางได้ในระหว่างการส่งข้อมูล และมีระบบการแยกและประกอบดาต้าแกรม (datagram) เพื่อรองรับการส่งข้อมูลระดับ data link ที่มีขนาด MTU (Maximum Transmission Unit) ทีแตกต่างกัน ทำให้สามารถนำ IP ไปใช้บนโปรโตคอลอื่นได้หลากหลาย เช่น Ethernet ,Token Ring หรือ Apple Talk
การเชื่อมต่อของ IP เพื่อทำการส่งข้อมูล จะเป็นแบบ connectionless หรือเกิดเส้นทางการเชื่อมต่อในทุกๆครั้งของการส่งข้อมูล 1 ดาต้าแกรม โดยจะไม่ทราบถึงข้อมูลดาต้าแกรมที่ส่งก่อนหน้าหรือส่งตามมา แต่การส่งข้อมูลใน 1 ดาต้าแกรม อาจจะเกิดการส่งได้หลายครั้งในกรณีที่มีการแบ่งข้อมูลออกเป็นส่วนย่อยๆ (fragmentation) และถูกนำไปรวมเป็นดาต้าแกรมเดิมเมื่อถึงปลายทาง


รูปที่ 3 IP Header

เฮดเดอร์ของ IP โดยปกติจะมีขนาด 20 bytes ยกเว้นในกรณีที่มีการเพิ่ม option บางอย่าง ฟิลด์ของเฮดเดอร์ IP จะมีความหมายดังนี้
• Version : หมายเลขเวอร์ชันของโปรโตคอล ที่ใช้งานในปัจจุบันคือ เวอร์ชัน 4 (IPv4) และเวอร์ชัน 6 (IPv6)
• Header Length : ความยาวของเฮดเดอร์ โดยทั่วไปถ้าไม่มีส่วน option จะมีค่าเป็น 5 (5*32 bit)
• Type of Service (TOS) : ใช้เป็นข้อมูลสำหรับเราเตอร์ในการตัดสินใจเลือกการเราต์ข้อมูลในแต่ละดาต้าแกรม แต่ในปัจจุบันไม่ได้มีการนำไปใช้งานแล้ว
• Length : ความยาวทั้งหมดเป็นจำนวนไบต์ของดาต้าแกรม ซึ่งด้วยขนาด 16 บิตของฟิลด์ จะหมายถึงความยาวสูงสุดของดาต้าแกรม คือ 65535 byte (64k) แต่ในการส่งข้อมูลจริง ข้อมูลจะถูกแยกเป็นส่วนๆตามขนาดของ MTU ที่กำหนดในลิงค์เลเยอร์ และนำมารวมกันอีกครั้งเมื่อส่งถึงปลายทาง แอพพลิเคชั่นส่วนใหญ่จะมีขนาดของดาต้าแกรมไม่เกิน 512 byte
• Identification : เป็นหมายเลขของดาต้าแกรมในกรณีที่มีการแยกดาต้าแกรมเมื่อข้อมูลส่งถึงปลายทางจะนำข้อมูลที่มี identification เดียวกันมารวมกัน
• Flag : ใช้ในกรณีที่มีการแยกดาต้าแกรม
• Fragment Offset : ใช้ในการกำหนดตำแหน่งข้อมูลในดาต้าแกรมที่มีการแยกส่วน เพื่อให้สามารถนำกลับมาเรียงต่อกันได้อย่างถูกต้อง
• Time to Live (TTL) : กำหนดจำนวนครั้งที่มากที่สุดที่ดาต้าแกรมจะถูกส่งระหว่าง hop (การส่งผ่านข้อมูลระหว่างเน็ตเวิร์ค) เพื่อป้องกันไม่ให้เกิดการส่งข้อมูลโดยไม่สิ้นสุด โดยเมื่อข้อมูลถูกส่งไป 1 hop จะทำการลดค่า TTL ลง 1 เมื่อค่าของ TTL เป็น 0 และข้อมูลยังไม่ถึงปลายทาง ข้อมูลนั้นจะถูกยกเลิก และเราเตอร์สุดท้ายจะส่งข้อมูล ICMP แจ้งกลับมายังต้นทางว่าเกิด time out ในระหว่างการส่งข้อมูล
• Protocol : ระบุโปรโตคอลที่ส่งในดาต้าแกรม เช่น TCP ,UDP หรือ ICMP
• Header Checksum : ใช้ในการตรวจสอบความถูกต้องของข้อมูลในเฮดเดอร์
• Source IP Address : หมายเลข IP ของผู้ส่งข้อมูล
• Destination IP Address : หมายเลข IP ของผู้รับข้อมูล
• Data : ข้อมูลจากโปรโตคอลระดับบน
2.2   ICMP (Internet Control Message Protocol)
ICMP เป็นโปรโตคอลที่ใช้ในการตรวจสอบและรายงานสถานภาพของดาต้าแกรม (Datagram) ในกรณีที่เกิดปัญหากับดาต้าแกรม เช่น เราเตอร์ไม่สามารถส่งดาต้าแกรมไปถึงปลายทางได้ ICMP จะถูกส่งออกไปยังโฮสต้นทางเพื่อรายงานข้อผิดพลาด ที่เกิดขึ้น อย่างไรก็ดี ไม่มีอะไรรับประกันได้ว่า ICMP Message ที่ส่งไปจะถึงผู้รับจริงหรือไม่ หากมีการส่งดาต้าแกรมออกไปแล้วไม่มี ICMP Message ฟ้อง Error กลับมา ก็แปลความหมายได้สองกรณีคือ ข้อมูลถูกส่งไปถึงปลายทางอย่างเรียบร้อย หรืออาจจะมีปัญหา ในการสื่อสารทั้งการส่งดาต้าแกรม และ ICMP Message ที่ส่งกลับมาก็มีปัญหาระว่างทางก็ได้ ICMP จึงเป็นโปรโตคอลที่ไม่มีความน่าเชื่อถือ (unreliable) ซึ่งจะเป็นหน้าที่ของ โปรโตคอลในระดับสูงกว่า Network Layer ในการจัดการให้การสื่อสารนั้นๆ มีความน่าเชื่อถือ
ในส่วนของ ICMP Message จะประกอบด้วย Type ขนาด 8 บิต Checksum ขนาด 16 บิต และส่วนของ Content ซึ่งจะมีขนาดแตกต่างกันไปตาม Type และ Code ดังรูป


รูปที่ 4 ICMP Header

3. ชั้นสื่อสารนำส่งข้อมูล (Transport Layer)
แบ่งเป็นโพรโตคอล 2 ชนิดตามลักษณะ ลักษณะแรกเรียกว่า Transmission Control Protocol (TCP) เป็นแบบที่มีการกำหนดช่วงการสื่อสารตลอดระยะเวลาการสื่อสาร (connection-oriented) ซึ่งจะยอมให้มีการส่งข้อมูลเป็นแบบ Byte stream ที่ไว้ใจได้โดยไม่มีข้อผิดพลาด ข้อมูลที่มีปริมาณมากจะถูกแบ่งออกเป็นส่วนเล็กๆ เรียกว่า message ซึ่งจะถูกส่งไปยังผู้รับผ่านทางชั้นสื่อสารของอินเทอร์เน็ต ทางฝ่ายผู้รับจะนำ message มาเรียงต่อกันตามลำดับเป็นข้อมูลตัวเดิม TCP ยังมีความสามารถในการควบคุมการไหลของข้อมูลเพื่อป้องกันไม่ให้ผู้ส่ง ส่งข้อมูลเร็วเกินกว่าที่ผู้รับจะทำงานได้ทันอีกด้วย
โปรโตคอลการนำส่งข้อมูลแบบที่สองเรียกว่า UDP (User Datagram Protocol) เป็นการติดต่อแบบไม่ต่อเนื่อง (connectionless) มีการตรวจสอบความถูกต้องของข้อมูลแต่จะไม่มีการแจ้งกลับไปยังผู้ส่ง จึงถือได้ว่าไม่มีการตรวจสอบความถูกต้องของข้อมูล อย่างไรก็ตาม วิธีการนี้มีข้อดีในด้านความรวดเร็วในการส่งข้อมูล จึงนิยมใช้ในระบบผู้ให้และผู้ใช้บริการ (client/server system) ซึ่งมีการสื่อสารแบบ ถาม/ตอบ (request/reply) นอกจากนั้นยังใช้ในการส่งข้อมูลประเภทภาพเคลื่อนไหวหรือการส่งเสียง (voice) ทางอินเทอร์เน็ต
3.1   UDP : (User Datagram Protocol)
เป็นโปรโตคอลที่อยู่ใน Transport Layer เมื่อเทียบกับโมเดล OSI โดยการส่งข้อมูลของ UDP นั้นจะเป็นการส่งครั้งละ 1 ชุดข้อมูล เรียกว่า UDP datagram ซึ่งจะไม่มีความสัมพันธ์กันระหว่างดาต้าแกรมและจะไม่มีกลไกการตรวจสอบความสำเร็จในการรับส่งข้อมูล
กลไกการตรวจสอบโดย checksum ของ UDP นั้นเพื่อเป็นการป้องกันข้อมูลที่อาจจะถูกแก้ไข หรือมีความผิดพลาดระหว่างการส่ง และหากเกิดเหตุการณ์ดังกล่าว ปลายทางจะได้รู้ว่ามีข้อผิดพลาดเกิดขึ้น แต่มันจะเป็นการตรวจสอบเพียงฝ่ายเดียวเท่านั้น โดยในข้อกำหนดของ UDP หากพบว่า Checksum Error ก็ให้ผู้รับปลายทางทำการทิ้งข้อมูลนั้น แต่จะไม่มีการแจ้งกลับไปยังผู้ส่งแต่อย่างใด การรับส่งข้อมูลแต่ละครั้งหากเกิดข้อผิดพลาดในระดับ IP เช่น ส่งไม่ถึง, หมดเวลา ผู้ส่งจะได้รับ Error Message จากระดับ IP เป็น ICMP Error Message แต่เมื่อข้อมูลส่งถึงปลายทางถูกต้อง แต่เกิดข้อผิดพลาดในส่วนของ UDP เอง จะไม่มีการยืนยัน หรือแจ้งให้ผู้ส่งทราบแต่อย่างใด

รูปที่ 5 UDP Header
มีรายละเอียดดังนี้
• Source Port Number : หมายเลขพอร์ตต้นทางที่ส่งดาต้าแกรมนี้
• Destination Port Number : หมายเลขพอร์ตปลายทางที่จะเป็นผู้รับดาต้าแกรม
• UDP Length : ความยาวของดาต้าแกรม ทั้งส่วน Header และ data นั่นหมายความว่า ค่าที่น้อยที่สุดในฟิลด์นี้คือ 8 ซึ่งเป็นขนาดของ Header
• Checksum : เป็นตัวตรวจสอบความถูกต้องของ UDP datagram และจะนำข้อมูลบางส่วนใน IP Header มาคำนวณด้วย

3.2   TCP : (Transmission Control Protocol)
อยู่ใน Transport Layer เช่นเดียวกับ UDP ทำหน้าที่จัดการและควบคุมการรับส่งข้อมูล ซึ่งมีความสามารถและรายละเอียดมากกว่า UDP โดยดาต้าแกรมของ TCP จะมีความสัมพันธ์ต่อเนื่องกัน และมีกลไกควบคุมการรับส่งข้อมูลให้มีความถูกต้อง (reliable) และมีการสื่อสารอย่างเป็นกระบวนการ (connection-oriented)

รูปที่ 6 TCP Header
มีรายละเอียด ดังนี้
• Source Port Number : หมายเลขพอร์ตต้นทางที่ส่งดาต้าแกรมนี้
• Destination Port Number : หมายเลขพอร์ตปลายทางที่จะเป็นผู้รับดาต้าแกรม
• Sequence Number : ฟิลด์ที่ระบุหมายเลขลำดับอ้างอิงในการสื่อสารข้อมูลแต่ละครั้ง เพื่อใช้ในการแยกแยะว่าเป็นข้อมูลของชุดใด และนำมาจัดลำดับได้ถูกต้อง
• Acknowledgment Number : ทำหน้าที่เช่นเดียวกับ Sequence Number แต่จะใช้ในการตอบรับ
• Header Length : โดยปกติความยาวของเฮดเดอร์ TCP จะมีความยาว 20 ไบต์ แต่อาจจะมากกว่านั้น ถ้ามีข้อมูลในฟิลด์ option แต่ต้องไม่เกิน 60 ไบต์
• Flag : เป็นข้อมูลระดับบิตที่อยู่ในเฮดเดอร์ TCP โดยใช้เป็นตัวบอกคุณสมบัติของแพ็กเก็ต TCP ขณะนั้นๆ และใช้เป็นตัวควบคุมจังหวะการรับส่งข้อมูลด้วย ซึ่ง Flag มีอยู่ทั้งหมด 6 บิต แบ่งได้ดังนี้
TypeDescription
URGใช้บอกความหมายว่าเป็นข้อมูลด่วน และมีข้อมูลพิเศษมาด้วย (อยู่ใน Urgent Pointer)
ACKแสดงว่าข้อมูลในฟิลด์ Acknowledge Number นำมาใช้งานได้
DSHเป็นการแจ้งให้ผู้รับข้อมูลทราบว่าควรจะส่งข้อมูล Segment นี้ไปยัง Application ที่กำลังรออยู่โดยเร็ว
RSTยกเลิกการติดต่อ (Reset) เนื่องจากในกรณีที่เกิดการสับสนขึ้นด้วยเหตุผลต่างๆ เช่นโฮสต์มีปัญหา ให้เริ่มสื่อสารใหม่
SYNใช้ในการเริ่มต้นขอติดต่อกับปลายทาง
FINใช้ส่งเพื่อแจ้งให้ปลายทางทราบว่ายุติการติดต่อ

Flag ในเฮดเดอร์ของ TCP มีความสำคัญในการกำหนดการทำงานของ TCP segment เนื่องจากข้อมูลในเฮดเดอร์ของ TCP จะมีข้อมูลครบถ้วนทั้งการรับและการส่งข้อมูล ซึ่งในการสทำงานแต่ละอย่างจะมีการใช้งานฟิลด์ไม่เหมือนกัน flag จะเป็นตัวกำหนดว่าให้ใช้งานฟิลด์ไหน เช่น ฟิลด์ Acknowledgment number จะไม่ถูกใช้ในขั้นตอนการเริ่มต้นการเชื่อมต่อ แต่จะมีข้อมูลในฟิลด์ ซึ่งเป็นข้อมูลที่ไม่มีความหมายใดๆ ซึ่งถ้าไม่มี flag เป็นตัวกำหนดก้ออาจจะมีการนำข้อมูลมาใช้ และก่อให้เกิดความผิดพลาดได้

3.2.1   การสื่อสารของ TCP

เมื่อเซกเมนต์ CONNECT (SYN = “1” และ ACK = “0”) เดินทางมาถึง Entity TCP ที่โฮสต์ปลายทางจะค้นหาโพรเซสตามหมายเลขพอร์ตที่กำหนดในเขตข้อมูล Destination port ซึ่งถ้าหากไม่พบก็จะตอบปฏิเสธด้วยเซกเมนต์ที่มี RST = “1” กลับไปยังผู้ส่ง เซกเมนต์ CONNECT ของผู้ส่งจะถูกส่งต่อไปยังโพรเซส ตามพอร์ตที่ระบุซึ่งอาจจะตอบรับหรือตอบปฏิเสธก็ได้ ถ้าโพรเซสนั้นต้องการสื่อสารด้วยก็จะส่งเซกเมนต์ตอบรับกลับไป รูปที่ 6-1 แสดงลำดับขั้นตอนการส่ง TCP เซกเมนต์ในการสร้างการเชื่อมต่อในสภาวะปกติระหว่างผู้ส่งและผู้รับ
ในกรณีที่โฮสต์สองแห่งพยายามสร้างการเชื่อมต่อระหว่างซ็อคเก็ตคู่เดียวกันจะเกิดเป็นลำดับขั้นตอนแสดงในรูปที่ 6-2 ผลสุดท้ายจะมีการเชื่อมต่อเกิดขึ้นเพียงหนึ่งช่องทางเท่านั้นเนื่องจากการเชื่อมต่อในแต่ละช่องทางจะถูกกำหนดขึ้นโดยใช้หมายเลขซ็อคเก็ตผู้ส่งและผู้รับ ถ้าการเชื่อมต่อลำดับแรกสำเร็จก็จะถูกบันทึกไว้ในตารางการสื่อสาร เช่น (x, y) ถ้าการเชื่อมต่อลำดับที่สองสำเร็จในเวลาต่อมา ข้อมูลนี้ก็จะถูกบันทึกไว้ที่เดียวกันคือ (x, y)
ขั้นตอนในการสร้างการเชื่อมต่อและการยกเลิกสามารถเขียนอธิบายด้วยไฟไนท์สเตทแมชชีนที่มีการทำงาน 11 สถานะ ดังแสดงในตารางข้างล่าง ในแต่ละสถานะจะมีเหตุการณ์บางอย่างที่เป็นไปได้ซึ่งจะได้รับการตอบสนองด้วยการกระทำที่เหมาะสม ในทางตรงกันข้าม เหตุการณ์ที่เป็นไปไม่ได้จะกลายเป็นข้อผิดพลาดที่จะต้องรายงานให้ทราบ
การเชื่อมต่อเริ่มต้นจากสถานะ CLOSED เมื่อเรียกใช้บริการ LISTEN หรือ CONNECT ก็จะมีการเปลี่ยนสถานะไปจากเดิม และถ้าอีกฝ่ายตองการเชื่อมต่อด้วย การเชื่อมต่อก็จะเกิดขึ้นและย้ายไปอยู่ในสถานะ ESTABLISHED คือการเชื่อต่อสมบูรณ์ และเมื่อยกเลิกการติดต่อก็จะกลับไปสู่สถานะ CLOSED อย่างเดิม

3.2.2   การเริ่มต้นการสื่อสารของ TCP โดยใช้การบันทึกเวลาแบบ Three-way Handshake
Three-way Handshake เป็นวิธีการส่งแพ็กเก็ตที่สามารถช่วยแก้ปัญหาในเรื่องแพ็กเก็ตซ้ำซ้อนได้ดี แต่วิธีนี้จำเป็นจะต้องสร้างช่องสื่อสารให้ได้ก่อนที่จะเริ่มรับ-ส่งข้อมูล อย่างไรก็ตาม แพ็กเก็ตควบคุมที่ใช้ในการต่อรองค่าตัวแปรสำหรับการสื่อสารต่างๆ อาจเกิดการตกค้างอยู่ในระบบได้ ทำให้การกำหนดค่าหมายเลขลำดับมีปัญหาไปด้วย เช่นการสร้างช่องสื่อสารระหว่างโฮสต์1 และ โฮสต์2 เริ่มจาก โฮสต์1 ขอเริ่มการเชื่อต่อด้วยการส่งแพ็กเก็ต CR (Connection Request) ไปยังโฮสต์2 ซึ่งจะมีค่าตัวแปรต่างๆสำหรับการสื่อสารรวมทั้งหมายเลขลำดับและหมายเลขช่องสื่อสารไปด้วย ผู้รับคือโฮสต์2 ก็จะส่ง ACK (Acknowledge) กลับมายังโฮสต์1 แต่ถ้าแพ็กเก็ต จากผู้ส่งเกิดสูญหายระหว่างทางและสำเนาแพ็กเก็ตที่ยังตกค้างอยู่ระบบเกิดเดินทางไปถึงผู้รับในภายหลังก็จะทำให้การสร้างช่องสื่อสารใช้การไม่ได้เนื่องจากมีค่าตัวแปรต่างๆไม่ตรงกัน
การใช้ Three-way handshake เป็นการไม่บังคับให้ผู้ส่งและผู้รับข้อมูลจะต้องกำหนดค่าเริ่มต้นของหมายเลขลำดับเป็นเลขเดียวกัน ทำให้สามารถนำวิธีนี้มาใช้ร่วมกับวิธีการจัดจังหวะการทำงานให้พร้อมกัน (Synchronization) แบบต่างๆได้ แทนที่จะเป็นการใช้วิธีการบันทึกเวลา ดังรูปที่ 7-1 แสดงขั้นตอนการเริ่มต้นการทำงานจากโฮสต์ 1 ไปยังโฮสต์ 2 สมมุติให้โฮสต์ 1 เลือกหมายเลขลำดับเป็น “x” และส่งแพ็กเก็ต CONNECTION REQUEST ไปยังโฮสต์ 2 โฮสต์ 2 ตอบรับด้วยแพ็กเก็ต CONNECTION ACCEPTED ซึ่งจะยอมรับหมายเลขลำดับ “x” พร้อมกับประกาศหมายเลขลำดับ “y” ที่เป็นของตนเอง จากนั้นโฮสต์ 1 ก็จะตอบรับค่าตัวเลือกของโฮสต์ 2 ผ่านทางเขตข้อมูลสำหรับการควบคุมในแพ็กเก็ตข้อมูลแรกที่ส่งมา

สมมติว่าได้เกิดปัญหาการสูญหายของแพ็กเก็ตในขณะที่สำเนาแพ็กเก็ตที่ค้างในระบบเดินทางไปถึงผู้รับแทน รูปที่7-2 แสดงเหตุการณ์ที่แพ็กเก็ตTPDU (ตัวแรกในรูป) เป็นสำเนาแพ็กเก็ตเก่าที่พึ่งจะเดินทางไปถึงโฮสต์ 2 โดยที่โฮสต์ 1 ไม่ทราบ โฮสต์ 2 ก็จะทำงานตามปกติคือจะตอบรับด้วยการส่งแพ็กเก็ต CONNECTION ACCEPTED TPDU กลับมา ที่โฮสต์ 1 ซึ่งโฮสต์1 จะสามารถตรวจสอบได้ว่า หมายเลขลำดับโฮสต์2 ตอบกลับมานั้นเป็นหมายเลขลำดับที่ได้เลิกใช้ไปแล้ว จึงมีการส่งแพ็กเก็ต REJECTกลับมายังโฮสต์ 2 เพื่อบอกยกเลิกการทำงาน จะเห็นว่าวิธีการนี้อาศัยการสื่อสารผ่านแพ็กเก็ต 3 ตัวซึ่งเป็นที่มาของคำว่า “การจับมือร่วมสามขั้นตอน” ผลสุดท้าย ทั้งโฮสต์ 1 และโฮสต์ 2 ก็จะไม่มีการสร้างช่องสื่อสารขึ้นมาจากข้อมูลในสำเนาแพ็กเก็ตเก่าแต่อย่างใด

4. ชั้นสื่อสารการประยุกต์ (Application Layer)
มีโพรโตคอลสำหรับสร้างจอเทอร์มินัลเสมือน เรียกว่า TELNET โพรโตคอลสำหรับการจัดการแฟ้มข้อมูล เรียกว่า FTP และโพรโตคอลสำหรับการให้บริการจดหมายอิเล็กทรอนิกส์ เรียกว่า SMTP โดยโพรโตคอลสำหรับสร้างจอเทอร์มินัลเสมือนช่วยให้ผู้ใช้สามารถติดต่อกับเครื่องโฮสต์ที่อยู่ไกลออกไปโดยผ่านอินเทอร์เน็ต และสามารถทำงานได้เสมือนกับว่ากำลังนั่งทำงานอยู่ที่เครื่องโฮสต์นั้น โพรโตคอลสำหรับการจัดการแฟ้มข้อมูลช่วยในการคัดลอกแฟ้มข้อมูลมาจากเครื่องอื่นที่อยู่ในระบบเครือข่ายหรือส่งสำเนาแฟ้มข้อมูลไปยังเครื่องใดๆก็ได้ โพรโตคอลสำหรับให้บริการจดหมายอิเล็กทรอนิกส์ช่วยในการจัดส่งข้อความไปยังผู้ใช้ในระบบ หรือรับข้อความที่มีผู้ส่งเข้ามา

บทสรุป
TCP/IP นี้มีการออกแบบเป็นเวลานาน และได้ปรับปรุงไปเรื่อยๆ เพื่อให้สามารถใช้งานได้หลากหลาย และมีประสิทธิภาพมากขึ้น แต่อย่างไรก้อตามโปรโตคอลชุดนี้ก้อยังมีจุดบกพร่องอีกมาก http://www.us-cert.gov/cas/techalerts/index.html และจุดบกพร่องเหล่านี้อาจเป็นนำมาเป็นเครื่องมือใช้ในการโจมตีของเหล่าแฮกเกอร์ได้ การเรียนรู้พื้นฐานด้าน TCP/IP นี้เป็นพื้นฐานเพื่อที่จะศึกษาเรื่องข้อบกพร่องของโปรโตคอล ผลกระทบ และวิธีการป้องกันตัวเองจากการโจมตีของแฮกเกอร์ต่อไป