วันศุกร์ที่ 28 พฤศจิกายน พ.ศ. 2557

TCP (Transmission Control Protocol)



TCP (Transmission Control Protocol)

          เป็นหนึ่งในโปรโตคอลที่สำคัญของชุดโปรโคตอล TCP/IP ซึ่งทำงานอยู่ในชั้น Transpot Layer มีความน่าเชื่อถือในการส่งข้อมูลสูง เพราะตัวโปรโตคอลเองจะมีการ Check ความสมบูรณ์ของข้อมูลและมีการเรียงลำดับของ Packet ที่ถูกส่งมาในเครือข่าย

หน้าที่ของโปรโตคอล TCP ในชั้น Transpot Layer

- ทำการจัดแบ่งข้อมูลที่ได้รับจากชั้น Application Layer ให้พอเหมาะที่จะส่งไปบนเน็ตเวิร์ก ซึ่งถ้าเราไม่มีการแบ่งข้อมูลให้เป็น Packet ย่อยๆแล้ว การส่งข้อมูลที่มีขนาดใหญ่จะทำให้เกิดความล่าช้า โดยเราจะเรียกหน่วยของข้อมูลในระดับนี้เราเรียกว่า "TCP Segment"
- มีการสร้างการเชื่อมต่อกระหว่างต้นทางและปลายทางก่อนจะมีการส่งข้อมูลกันจริงๆ
- มีการจัดลำดับในการส่งข้อมูลก่อนหลังและมีการตรวจสอบว่าปลายทางได้รับข้อมูลที่ส่งไปครบถ้วน
- มีการทำกระบวนการ Error Recovery เมื่อปลายทางไม่ได้รับข้อมูลที่ส่งไป
- คอยควบคุมการรับ - ส่งข้อมูล
- มีการนำข้อมูลที่ได้รับมาประกอบรวมกันเพื่อส่งไปชั้น Application Layer (ในกรณีที่เป็นฝั่งรับข้อมูล)

กระบวนการ Three Way Handshake

          เป็นการสร้าง Connection ระหว่างต้นทางและปลายทาง ก่อนจะมีการส่งข้อมูลกันจริงๆ เหมือนกับเวลาเราโทรสับเราก็ต้อง กดหมายเลขโทรสับและรอจนกว่า อีกฝั่งจะรับสาย ถึงมีการแลกเปลี่ยนข้อมูลกันได้


รูปที่ 1 กระบวนการทำงานของ Three Way Handshake

          จากรูปที่ 1 จะเห็นได้ว่า Client จะทำการส่งpacket ที่มี ฟิลด์ SYN (Synchronize) ไปให้แก้ Server เพื่อให้ Server ส่ง packet ที่มีฟิลด์ SYN และ ACK (Acknowledgement) เพื่อเป็นการยืนยันว่าฝั่ง Server พร้อมที่จะทำการรับข้อมูล และเมื่อ Client ได้รับ packet ที่มีฟิลด์ SYN และ ACK แล้ว ก็จะทำการส่ง packet ที่มีฟิลด์ ACK ซ้ำอีกครั้งเพื่อบอกว่า กำลังจะส่งข้อมูลไปให้ Server นะ ในระหว่างที่ทำการบวนการ Three Way Handshake เครื่อง Client และ เครื่อง Server จำทำการตกลงว่า ขนาดของ Windows Size ที่ส่งมีขนาดเท่าไร

Sliding Windows

          เป็นวิธีในการควบคุมการส่งข้อมูลผ่านเครื่อข่ายโดยหลังจากผ่านกระบวนการ Three Way Handskake แล้ว และมีการส่งข้อมูลจาก Client ไปยัง เครื่อง Server แล้ว เครื่องServer จะทำการส่งข้อมูล ACK กลับ เพื่อเป็นการยืนยันว่าเครื่อง Server ได้รับแพ็คเก็ตเรียบร้อยและถูกต้องแล้ว ส่วน Window Size เป็นค่าที่บอกเครื่องต้นทางว่าสามารถส่งแพ็คเก็ตได้คราวละกี่แพ็คเก็ตโดยที่ไม่ต้องรอรับ ACK ของทุกๆ แพ็คเก็ต ซึ่งการใช้sliding window นั้น เครื่องปลายทางสามารถส่งข้อมูล ACK เพียวครั้งเดียวสำหรับยืนยันการรับแพ็คเก็ตหลายๆ แพ็คเก็ตได้ ส่วนข้อมูล ACK ที่เครื่องปลายทางส่งกลับไปยังต้นทางนั้นจะมีข้อมูลขนาดหน่วยความจำที่ใช้ในการติดต่อกับเครื่องต้นทาง ซึ่งข้อมูลนี้จะบอกเครื่องต้นทางว่าควรเพิ่มหรือลดจำนวนของแพ็คเก็ตที่ส่งไปยังเครื่องรับ




รูปที่ 2 แสดงการทำงานของกระบวนการในการส่งข้อมูล

          จากรูปที่ 2 จะเห็นได้ว่าเมื่อเสร็จสิ้นในการส่งข้อมูลแล้วเครื่องปลายทางจะทำการส่ง FIN,ACK กลับมาเพื่อบอกว่าเสร็จสิ้นการส่งข้อมูลแล้ว แล้วเครื่องต้นทางก็จะส่ง ACK ตอบกลับมาว่ารับทราบ 

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









ไม่มีความคิดเห็น:

แสดงความคิดเห็น