CCNA1 : Chapter 4 OSI Transport Layer

CCNA1 : CCNA Exploration Network Fundamentals – 4.0

Chapter 4 OSI Transport Layer

>Roles of the Transport LayerPurpose of the Transport LayerTCP and UDP- TCP

– TCP is a connection-oriented protocol
– described in RFC 793 TCP
– TCP are the same order delivery, reliable delivery, and flow control
– แ่ต่ละ TCP segment has 20 bytes of overhead in the header encapsulating the Application layer data
– ตัวอย่างการใช้ Web Browsers, E-mail , File Transfers

– UDP

– connectionless protocol
– described in RFC 768
– low overhead data delivery
– แพ็กเกตของ UDP จะเรียกว่า user datagram ซึ่งมีขนาดของ header 8 bytes ซึ่งจะส่งแบบ “best effort” โดย Transport layer protocol.
– ตัวอย่างการใช้ UDP : Domain Name System (DNS), Video Streaming, Voice over IP (VoIP)

Port Addressing

– Well Known Ports (Numbers 0 to 1023)—  เช่น HTTP (web server) POP3/SMTP (e-mail server) และ Telnet.
– Registered Ports (Numbers 1024 to 49151)
– Dynamic or Private Ports (Numbers 49152 to 65535), Ephemeral Ports

>TCP: Communicating with Reliability

Making Conversations Reliable

– ความปลอดภัยของการสื่อสา่รผ่าน TCP เกิดจากการให้บริกา่รแบบ connection-oriented sessions ก่อนที่ host จะใช้ TCP ส่งข้อมูลไปยังอีก host นั้น Transport Layer จะเริ่มกระบวณการสร้างการติดต่อกับปลายทาง การติดต่อกับปลา่ยทางนี้จะทำให้สามารถ tracking (ติดตามรอย) ได้ หรือสื่อสารกันแบบ stream ระหว่าง host
– TCP เป็นโปรโตคอลที่จะรับประกันความปลอดภัยของข้อมูล โดยใช้กลไกของการตอบรับกลับ (Acknowledgement) เมื่อได้รับข้อมูลเรียบร้อยแล้ว

TCP Server Processes

– แต่ละ server จะต้องไม่มี 2 services ใดๆที่ใช้ port ร่วมกันใน Transport layer services

TCP Connection Establishment and Termination

– Connection Establishment : การสร้างการติดต่อ

1. Client จะส่ง segment แรกออกไปเรียกว่า SYN (Synchronize Sequence Number) segment ซึ่งเซกเมนต์นี้จะประกอบไปด้วย หมายเลขพอร์ตของทั้งต้นทางและปลายทาง นอกจากนั้นยังมี หมายเลขลำดับเริ่มต้น ( initialization sequence number : ISN) ซึงจะเป็นหมายเลขที่ client ส่งให้ server
2. server จะส่ง segment SYN และ ACK segment ไปเพื่อ เป็นการตอบรับ segment แรกที่ได้รับ โดยใช้ flag ACK พร้อมทั้งหมายเลขตอบรับ (acknowledgement number) และใช้เป็น segment เริ่มต้นของ serve
3. client จะส่ง ACK segment เพื่อเป็นการตอบรับ segment ที่สอง

TCP Three-Way Handshake

– Three-Way Handshake

1. กา่รสร้างอุปกรณ์ปลายทางให้ถูกแสดงบนเครือข่าย
2. ตรวจสอบว่าอุปกรณ์ปลายทางมีการตอบสนองการบริการ และ ยอมรับคำร้องขอจากหมายเลขพอร์ตปลายทาง ซึ่งติดตั้ง client ที่ตั้งใจจะใช้สำหรับ session
3. รายงานอุปกรณ์ปลายทางที่ Client เริ่มต้นที่ต้องใจจะสร้างการติดต่อ session จาพอร์ตนั้น

– Security can be added to the data network by:

1. ปฏิเสธการจัดตั้งของ TCP sessions
2. อนุญาตให้บาง session ที่สามารถจัดตั้งได้สำหรับ specific services
3. อนุญาตให้บาง traffic เป็นเหมือนส่วนของ session ที่ัจัดตั้งแล้ว

TCP Session Termination

– Connection Termination : การยกเลิกการติดต่อ

1. Client ส่ง FIN segment
2. server ส่ง segment ACK เพื่อเป็นการยืนยันว่าได้รับ FIN segment จาก client แล้ว
3. ในตอนนี้ sever ยังสามารถส่งข้อมูลที่ต้องการให้กับ client ได้ เมื่อ server ไม่มีข้อมูลใดๆ ที่จะส่งแล้ว server จะส่ง FIN segment ให้ client
4. client ส่ง segment ACK เพื่อเป็นการยืนยันว่าได้รับ FIN segment จากserver แล้ว

> Managing TCP sessions

TCP Segment Reassembly

– เป็นการจัดเรียงข้อมูลใหม่ตามลำดับที่ถูกต้อง เนื่องจากการส่งข้อมูลไปแต่ละเส้นทางอาจจะทำให้เมื่อข้อมูลมาถึงปลายทางมีลำดับไม่ถูกต้อง

TCP Acknowledgment with Windowing

– Segment header sequence number และ acknowledgement number ถูกใช้ร่วมกันในการยืนยันการได้รับของข้อมูลที่อยู่ภายใน segment
– Sequence number เป็น relative number ของ bytes ที่มีการส่งใน session นี้บวก 1
– TCP ใช้ acknowledgement number ใน segments เพื่อส่งไปยังต้นทางเพื่อระบุ next byte ใน session นี้ ที่ ผู้รับคาดหวังที่จะได้รับ ซึ่งเรียกว่า expectational acknowledgement

TCP Retransmission

– สำหรับ TCP implementation ทั่วไป เมื่อ host จะส่ง จะมีการ copy segment ไปไว้ใน retransmission queue ถ้าเมื่อส่งไปแล้ว data acknowledgment ถูกได้รับ , the segment จะถูกลบออกจากคิว แต่ถ้าไม่ได้รับภายในกำหนดเวลา segment จะถูก retransmitted.

>UDP: Communicating with Low Overhead

UDP: Low Overhead Versus Reliability

– UDP เป็นโปรโตคอลในทรานสปอร์ตเลเยอร์ที่ให้บริการแบบ connectionless และไม่รับประกันความถูกต้องของข้อมูล
– ยังมีกา่รใช้งาน UDP  อยู่ถึงแม้ว่าจะดูมีประสิทธิภาพน้อย เนื่องจากเป็นโปรโตคอลที่มี overhead น้อย ใช้สำหรับในการส่งข้อมูลที่ไม่ต้องสนใจในเรื่องของความถูกต้องมากนัก
– UDP เหมาะกับโปรแกรมประเภทมัลติมีเดีย และ multcasting
– ตังอย่างการใช้งาน UDP เช่น Domain Name System (DNS), Simple Network Management Protocol (SNMP), Dynamic Host Configuration Protocol (DHCP), Routing Information Protocol (RIP), Trivial File Transfer Protocol (TFTP), Online games, Voice_over_IP (VoIP)

UDP Datagram Reassembly

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

UDP Server Processes and Requests

– UDP-based server applications จะทำการกำหนด หมายเลขพอร์ต (Well Known หรือ Registered) เมื่อ application หรือ proces ทำงาน มันจะรับข้อมูลผ่านพอร์ตที่กำหนดไว้ และเมื่อ UDP ได้รับ datagram ซึ่งถูกกำหนดไว้ล่วงหน้าแล้ว สำหรับพอร์ตนั้นๆ มันจะส่งข้อมูลของ application ไปยัง application ที่เหมาะสมที่ขึ้นกับหมายเลขพอร์ตนั้น

UDP Client Processes

– การสื่อสารระหว่าง client และ server จะเริ่มขึ้นเมื่อ client application ส่งการร้องขอข้อมูลจาก server. UDP client จะทำการสุ่มหมายเลขของพอร์ตขึ้นมา และใช้พอร์ตที่ได้นั้นเป็นพอร์ตต้นทางของการ conversation. พอร์ตปลายทางส่วนใหญ่จะใช้ หมายเลขพอร์ต (Well Known หรือ Registered) ที่กำหนดโดย server
– การสุ่มหมายเลขของพอร์ตต้นทางจะช่วยในเรื่องความปลอดภัย โดยถ้ามีรูปแบบที่สามารถทำนายได้สำหรับ การเลือกพอร์ตปลายทาง ผู้บุกรุกสามารถเข้าถึง client ได้อย่างง่ายดาย โดยการพยายามที่จะติดต่อไปยังหมายเลขพอร์ตที่น่าจะใช้งาน

Leave a comment