• If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

3-way hand shake của TCP

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 3-way hand shake của TCP

    Bạn nào có thể giải thích giùm mình tại sao trong TCP lại phải sử dụng 3-way hand shake? thanks.

  • #2
    Originally posted by easonyeung View Post
    Bạn nào có thể giải thích giùm mình tại sao trong TCP lại phải sử dụng 3-way hand shake? thanks.
    Chào !!!
    Vì nó giúp duy trì kết nối theo kiểu đáng tin cậy!!! (oriented-connection)

    Chúc bạn vui !!!
    Trần Mỹ Phúc
    tranmyphuc@hotmail.com
    Hãy add nick để có thông tin đề thi mới nhất :tranmyphuc (Hỗ trợ tối đa cho các bạn tự học)

    Cisco Certs : CCNP (Passed TSHOOT 1000/1000)

    Juniper Certs :
    JNCIP-ENT & JNCIP-SEC
    INSTRUCTORS (No Fee) : CISCO (Professional) , JUNIPER (Professional) , Microsoft ...

    [version 4.0] Ôn tập CCNA


    Comment


    • #3
      Originally posted by easonyeung View Post
      Bạn nào có thể giải thích giùm mình tại sao trong TCP lại phải sử dụng 3-way hand shake? thanks.
      Giao thức TCP là giao thức hướng kết nối, nghĩa là kết nối giữa hai đầu cuối phải được thiết lập trước khi quá trình truyền tin diễn ra, và TCP dùng three-way handshake để thiết lập kết nối.

      Comment


      • #4
        ý mình hỏi là tại sao ko dùng bắt tay 2 bước như trong mạng điện thoại, hoặc ko là 4 bước mà phải là 3 bước.

        Comment


        • #5
          Vì người ta thấy 3 bước là quá đủ cho 1 phiên thiết lập đáng tin cậy. Vì khi đó cả 2 đều biết mình vẫn có thể nói chuyện được với nhau !!!

          Chúc bạn vui !!!
          Trần Mỹ Phúc
          tranmyphuc@hotmail.com
          Hãy add nick để có thông tin đề thi mới nhất :tranmyphuc (Hỗ trợ tối đa cho các bạn tự học)

          Cisco Certs : CCNP (Passed TSHOOT 1000/1000)

          Juniper Certs :
          JNCIP-ENT & JNCIP-SEC
          INSTRUCTORS (No Fee) : CISCO (Professional) , JUNIPER (Professional) , Microsoft ...

          [version 4.0] Ôn tập CCNA


          Comment


          • #6
            Theo mình thì:
            TCP sử dụng bắt tay 3 bước bởi vì:
            Nếu dùng cách bắt tay 2 bước thì :
            -Máy nhận không thể đảm bảo máy gửi đã đồng ý thiết lập kết nối.
            -Nếu như thông điệp SYN,ACK từ máy nhận vì một lí do nào đó không đến được máy gửi thì máy nhận sẽ chờ rất lâu, máy nhận không thể biết được thong điệp của nó có bị lỗi hay không.
            - nếu dùng bắt tay 3 bước thì nếu xảy ra lỗi thì truyền lại ( sau 1 khoảng thời gian không thấy trả lời).

            Comment


            • #7
              Originally posted by nmtuan View Post
              Theo mình thì:
              -Máy nhận không thể đảm bảo máy gửi đã đồng ý thiết lập kết nối.
              Không đúng, nếu máy gửi nó không đồng ý thiết lập kết nối thì nó gửi yêu cầu kết nối để làm gì ?
              -Nếu như thông điệp SYN,ACK từ máy nhận vì một lí do nào đó không đến được máy gửi thì máy nhận sẽ chờ rất lâu, máy nhận không thể biết được thong điệp của nó có bị lỗi hay không.
              Không đúng luôn, nếu SYN-ACK mà không đến được thì chắc cái SYN đầu tiên cũng không đến được, và những cái data gửi sau đó cũng không đi được luôn. Vậy cơ chế 3-way bảo vệ cái gói SYN-ACK đó làm gì ?
              - nếu dùng bắt tay 3 bước thì nếu xảy ra lỗi thì truyền lại ( sau 1 khoảng thời gian không thấy trả lời).
              Nếu dùng 2 bước hay 4 bước thì lỗi nó cũng truyền lại vậy ?!

              Comment


              • #8
                Không đúng luôn, nếu SYN-ACK mà không đến được thì chắc cái SYN đầu tiên cũng không đến được
                Nhỡ gặp undirectional link thì sao hả bạn

                Comment


                • #9
                  Originally posted by easonyeung View Post
                  Bạn nào có thể giải thích giùm mình tại sao trong TCP lại phải sử dụng 3-way hand shake? thanks.
                  hi,

                  nếu gói tin chỉ truyền một lần, thì chỉ cần 2 bước truyền và báo nhận là đã đủ,

                  nhưng vì gói dữ liệu có thể được chia làm nhiều gói nhỏ trong quá trình truyền đi, do vậy mới cần thêm bước thứ ba, bước ba dùng để truyền gói tiếp theo sau khi đã được báo nhận ở bước hai, bước 2 bảo đảm rằng gói dữ liệu trước đó đã đến đích, hoặc sau một thời gian mà không báo nhận thì sẽ phải truyền lại dữ liệu đó. Sau bước ba thì quá trình lặp đi lập lại cho đến khi truyền hết toàn bộ dữ liệu :D
                  no car...no house...no money, but have only a sharing and friendly heart. What's the most important thing in this life "Heart or Money ?". Anything else can stead money ?

                  :32::53::X:106:

                  Nothing last forever...

                  Comment


                  • #10
                    + 3-way handshake không phải để đảm bảo truyền lại gói thứ 3 nếu gói thứ 2 mất. Nếu bị lỗi thì quá trình 3-way bắt đầu lại từ đầu.
                    + 3-way cũng không phải là gói thứ 3 xác nhận gòi thứ 2, nếu vậy nó thành n-way luôn rồi.

                    Quá trình bắt tay 3-way có những ý nghĩa sâu xa của nó. Tui nghĩ là hầu hết ai học xong 3-way rồi đều chưa hiểu tại sao lại là 3-way mà không phải 2-way hay 4-way !

                    Mọi người tiếp tục thảo luận thêm nhé !

                    Comment


                    • #11
                      Chủ đề này lâu rồi mà :D Thử liên hệ với câu chuyện sau nha:
                      -----------------------------------------
                      Trong một trận chiến có 2 đội quân A và B.
                      Đội quân B hiện đang bị bao vây phía dưới thung lũng, và có khoảng 10 nghìn quân
                      Đội quân A ở phía trên, chia thành 2 nhóm là A1 và A2 đóng ở 2 đầu thung lũng, mỗi nhóm nhỏ có khoảng 7 nghìn quân
                      Rõ ràng là nếu đội quân A tiến công từng nhóm lẻ tẻ thì sẽ không thể thắng được, muốn thắng thì đòi hỏi cả 2 nhóm quân A1 và A2 cùng tiến đánh một lúc. Thời ngày xưa thì không có các phương tiện truyền thông hiện đại như bây giờ, mỗi khi muốn trao đổi thông tin thì cần cử người đem thông điệp sang tận nơi. Vậy làm thế nào để đảm bảo cả 2 đội quân đều ồ ạt tấn công 1 lúc?
                      Như vậy trong trường hợp này, quân A muốn đánh thắng thì trước hết 2 nhóm A1 và A2 phải "đồng bộ" thời gian tấn công như sau:
                      Bước 1: A1 gửi thư sang cho A2, yêu cầu đúng giờ X thì tấn công
                      Bước 2: A2 gửi trả lời: "đồng ý, giờ X nhé!"
                      Tuy nhiên nếu chỉ 2 bước thế này thì vẫn chưa chặt chẽ. Trong trường hợp anh lính liên lạc bị giết chết trong quá trình mang thư trả lời của A2, A1 không nhận được trả lời thì không dám tấn công một mình, còn A2 thì cứ đinh ninh rằng giờ đó tấn công là được --> đến giờ đó A2 tấn công 1 mình --> hy sinh :D
                      Như vậy cần thêm 1 bước nữa để đảm bảo rằng A1 đã nhận được trả lời của A2:
                      Bước 3: A1 gửi trả lời: "đã nhận thông điệp thành công!"
                      Đến lúc này, qua 3 bước thì quân A có thể đảm bảo sự thống nhất giữa 2 nhóm quân, chỉ việc chờ đến giờ X cùng tấn công đồng loạt là giành phần thắng :D

                      Đó là ý nghĩa vì sao là 3 ways chứ ko phải 2 ways, 4 ways hay n ways...

                      Comment


                      • #12
                        Originally posted by Oriole View Post
                        Chủ đề này lâu rồi mà :D Thử liên hệ với câu chuyện sau nha:
                        -----------------------------------------
                        Trong một trận chiến có 2 đội quân A và B.
                        Đội quân B hiện đang bị bao vây phía dưới thung lũng, và có khoảng 10 nghìn quân
                        Đội quân A ở phía trên, chia thành 2 nhóm là A1 và A2 đóng ở 2 đầu thung lũng, mỗi nhóm nhỏ có khoảng 7 nghìn quân
                        Rõ ràng là nếu đội quân A tiến công từng nhóm lẻ tẻ thì sẽ không thể thắng được, muốn thắng thì đòi hỏi cả 2 nhóm quân A1 và A2 cùng tiến đánh một lúc. Thời ngày xưa thì không có các phương tiện truyền thông hiện đại như bây giờ, mỗi khi muốn trao đổi thông tin thì cần cử người đem thông điệp sang tận nơi. Vậy làm thế nào để đảm bảo cả 2 đội quân đều ồ ạt tấn công 1 lúc?
                        Như vậy trong trường hợp này, quân A muốn đánh thắng thì trước hết 2 nhóm A1 và A2 phải "đồng bộ" thời gian tấn công như sau:
                        Bước 1: A1 gửi thư sang cho A2, yêu cầu đúng giờ X thì tấn công
                        Bước 2: A2 gửi trả lời: "đồng ý, giờ X nhé!"
                        Tuy nhiên nếu chỉ 2 bước thế này thì vẫn chưa chặt chẽ. Trong trường hợp anh lính liên lạc bị giết chết trong quá trình mang thư trả lời của A2, A1 không nhận được trả lời thì không dám tấn công một mình, còn A2 thì cứ đinh ninh rằng giờ đó tấn công là được --> đến giờ đó A2 tấn công 1 mình --> hy sinh :D
                        Như vậy cần thêm 1 bước nữa để đảm bảo rằng A1 đã nhận được trả lời của A2:
                        Bước 3: A1 gửi trả lời: "đã nhận thông điệp thành công!"
                        Đến lúc này, qua 3 bước thì quân A có thể đảm bảo sự thống nhất giữa 2 nhóm quân, chỉ việc chờ đến giờ X cùng tấn công đồng loạt là giành phần thắng :D

                        Đó là ý nghĩa vì sao là 3 ways chứ ko phải 2 ways, 4 ways hay n ways...
                        Ví dụ rất sinh động & chuẩn ;)).

                        Comment


                        • #13
                          Originally posted by Im_Sam View Post
                          Ví dụ rất sinh động & chuẩn ;)).
                          Ví dụ này không chuẩn. Về mặt toán học, các yếu tố của vd và của 3-way không có đối ngẫu tương xứng của nhau.

                          Muốn lấy ví dụ của một quá trình để so sánh với một quá trình khác, thì nếu ở ví dụ ta có các khái niệm, tình huống, điều kiện nào thì ở quá trình thực cũng phải có các khái niệm, quá trình, tình huống tương đương.

                          Ở ví dụ có các cụm ngữ nghĩa và tình huống "tấn công", "giờ X", "tấn công cùng lúc" nhưng bên 3-way không có ngữ nghĩa nào tương đương. Do đó ví dụ trên và tình huống 3-way là không tương ứng nên không thể làm minh họa được.
                          Last edited by invalid-password; 18-10-2008, 08:41 PM.

                          Comment


                          • #14
                            Giờ x <=> Syn
                            Đồng ý, giờ x <=> Syn, ACK
                            Bị giết <=> undirectional link
                            Mình thấy ví dụ này rất sát. 3-ways là cách ngắn nhất để thiết lập 1 connection reliable.

                            Comment


                            • #15
                              Originally posted by Im_Sam View Post
                              Giờ x <=> Syn
                              Đồng ý, giờ x <=> Syn, ACK
                              Bị giết <=> undirectional link
                              Mình thấy chẳng hiểu gì cả ???

                              Comment

                              Working...
                              X