เข้าระบบ
username :  
password :  
เก็บสถานะ :  
 
:: อ่านรายละเอียด ::
หัวเรื่อง : กรณีศึกษาโปรโตคอล (HTTP,TCP/IP)
โดย : 5017660045 ผู้อ่าน : 6129 ครั้ง
เขียนเมื่อวันที่ : 25/09/2007 10:01:32
หมวดหมู่ : Networking
เก็บหน้านี้ไว้ | พิมพ์หน้านี้ | แสดงความคิดเห็น กลับไปหน้าที่แล้ว
HTTP (Hyper Text Transfer Protocal) (RFC2616)
        HTTP เป็น Protocal หลักที่ใช้แลกเปลี่ยนข้อมูลกันระหว่าง Client และ Server ของ World Wide Web โดยถูกออกแบบมาให้มีความกะทัดรัดไม่ซับซ้อนมาก สามารถรองรับข้อมูลได้ทุกทุกแบบ ไม่ว่าจะเป็นข้อมูลทั่วไปที่เข้ารหัสแบบ MIME หรือข้อมูลที่เป็นกราฟิก เช่น ไฟล์ที่เป็น GIF หรือ JPEG เวอร์ชั่นล่าสุดของ HTTP คือ HTTP 1.1 

  

                          รูปที่1 แสดงพฤติกรรมการทำงานของHTTP
        
         ลักษณะการทำงานของProtocal HTTP จะมีการร้องขอ (Request)/การตอบสนองResponse) กันระหว่าง Client และ Server   ในการศึกษาการทำงานของโปรโตคอล ทางกลุ่มเลือกเวบไซด์ www.msit.mut.ac.th ในการศึกษา
 
                   รูปที่ 2 ผลการดักจับเว็บไซด์  www.msit.mut.ac.th  

 

 

            รูปที่ 3 Time Line Diagram แสดงการทำงานของ TCP Connection 
 1.    Time Line ที่ 1 ฝั่ง client (ip=203.209.52.243) ทำการส่ง TCP segmentที่มีค่า flage SYN=1 และ Seq number, ACK number,ข้อมูล Win, MSS มายัง Server เพื่อทำการสร้าง connection
2.    ฝั่ง Server ทำการส่ง TCP Segment ที่มีค่า flag SYN=1,ACK=1 และseq number, ACKnumber,ข้อมูล Win, MSS มายังฝั่ง client เพื่อยืนยันการทำ connection
3.    ฝั่ง Client ทำการส่ง TCP Segment ที่มีค่า flag SYN=0,ACK=1 และ Seq number, ACK number,ข้อมูล Win มายังฝั่ง Server 
 4.    ฝั่ง Client ทำการส่ง TCP Segment ที่มีค่า flag PSH=1 เป็นการบอกให้ทราบว่าข้อมูลที่อยู่ใน Segment จะต้องส่งไปยัง Upper Layer โดยทันที,และทำการส่ง HTTP request โดยใช้คำสั่ง GET HTTP / 1.1 
 5.    ฝั่ง Server ตอบรับ (Response) การร้องขอ Webpage โดยแจ้งกลับมา / 1.1 302 OK (text / html)

                                รูปที่ 4 Structure ของ Frame Time Line ที่ 1 

 
    รูปที่ 4เป็นเฟรมที่ทำหน้าที่สร้างการเชื่อมต่อ (Connection Setup) จากฝั่ง Client (Port 1440) ไปยัง Server (Port 80) เนื่องจาก Flag SYN มีค่าเป็น 1 และมีค่า Header Length เป็น 28 ไบต์ เนื่องจากมรการส่ง Option 8 ไบต์

                จะเห็นได้ว่ามีการส่งค่า Receive Window ไปยังฝั่ง Server เพื่อบอกให้ทราบว่าฝั่งรับมี Buffer เท่าไรในการรับข้อมูล ซึ่งเป็นวิธีการทำ Flow Control

                               รูปที่ 5 TCP Structure ของ Frame Line ที่ 5

 
         รูปที่ 5 เป็นเฟรมที่ทำการ Response จากฝั่ง Server (Port 80) ไปยังฝั่ง Client (Port 1440) และมี Flag PSH มีค่าเป็น  1 มีความหมายให้ Client ทำการส่งข้อมูลที่ได้รับไปยัง Upper Layer ทันที สังเกตว่าค่า Head Length มีค่า
เท่ากับ20 ไบต์ เนื่องจากไม่มีการส่ง Option
 
 การปิด Connection
 

 
รูปที่ 7 การปิดConnection 
 
             
            รูปที่ 8 Time Line Diagram แสดงการทำงานของการปิด Connection
 
 การปิดConnection มีขั้นตอนการทำดังนี้
 1.    Server ทำการส่ง TCP Segment ที่มีค่า Flag FIN ถูก Set ให้เป็น 1 ไปยัง Client เพื่อบอกให้ทราบว่า Server จะทำการ Teardown Connection โดยนอกจาก Flag FIN ก็ยังมีการส่ง Flag ACK = 1, Sequence Number, Acknowledgement Number, Window size
 2.    เมื่อ Client ได้รับ Flag FIN =1 และ ACK=1 จะทำการส่ง Flag ACK = 1 กลับไปยัง Server เพื่อรับทราบการ Teardown Connection
3.    Client ทำการส่ง TCP Segment ที่มีค่า Flag FIN ถูก Set ให้เป็น 1 ไปยัง Server เพื่อบอกให้ทราบว่า Client จะทำการ Teardown Connection โดยนอกจาก Flag FIN ก็ยังมีการส่ง Flag ACK = 1, Sequence Number, Acknowledgement Number, Window size
 4.    เมื่อ Server ได้รับ Flag FIN = 1 และ ACK = 1 กลับไปยัง Server เพื่อรับทราบการ Teardown Connection
         เมื่อจบขั้นตอนที่ 4 การ Teardown Connection ระหว่าง Client และ Server จะสิ้นสุดอย่างสมบูรณ์โดยที่ Resource ที่ได้ทำการจองไว้เพื่อทำการ Connection จะถูกยกเลิกทั้งหมด ส่วนการที่มีถึง 4 ขั้นตอนเนื่องจากต้องมีการ Teardown Connection ที่ถูกต้องและสมบูรณ์ จึงต้องมีการแจ้ง Teardown Connection ทั้งฝั่ง Client และ Server รวมถึงการตรวสอบจากหมายเลข Sequence Number, Acknowledgement Number ของทั้งสองฝั่งด้วย
 
สรุปการทำงานของโปรโตคอลTCP (HTTP)
 โปรโตคอล HTP เป็นโปรโตคอลที่ทำงานอยู่ในชั้นของ Application Layer ทำงานโดยใช้โปรโตคอล TCP ซึ่งเป็นโปรโตคอลที่ทำงานอยู่ในชั้นของ Transport Layer เนื่องจาก HTTP ต้องการความถูกต้อฃของข้อมูลที่ทำการส่งและรับ 
         เมื่อ HTP ต้องติดต่อกันระหว่าง Client และ Host โปรโตคอล TCP จะทำการเชื่อมต่อ (Connection Setup) โดยการทำ Three way Handshake และจะมีการทำ Flow Control โดยส่งค่า Windows Size และ MSS ซึ่งเป็นการทำ Reliable Data Transfer นั้นจะอาศัยการทำงานของ Sequence Number และ Acknowledge Number 
          ในส่วนการทำงานของ HTTP ก็จะมีการสื่อสารโดยการ Request จากการสังเกตจาก Packet ส่วนใหญ่จะเป็นคำสั่ง Get และ Response เป็นการแจ้งสถานะของการส่งและเมื่อทำการส่งข้อมูลสมบูรณ์แล้ว โปรโตคอล TCP จะทำการปิด Connection

 

 

 

กลับไปหน้าที่แล้ว
เรียงลำดับคำตอบ :


  ส่วนแสดงความคิดเห็น
ยังไม่มีผู้ตอบ