[Question] Thắc mắc về TCP/IP |
16/11/2010 22:22:57 (+0700) | #1 | 225018 |
explorer88
Member
|
0 |
|
|
Joined: 06/11/2010 22:32:47
Messages: 75
Offline
|
|
Chào các bạn.
Mình thắc mắc ở chỗ:
Tại transport layer, với giao thức TCP thì sử dụng connection-oriented, cả hai bên cần xây dựng một kết nối trước khi truyền data. Data, ở đây là các TCP segment sẽ được truyền đi trong kết nối đó.
Nhưng mà TCP segment đó phải được đóng gói vào một IP datagram để chuyển đi, mà kết nối tại network layer thì lại là connectionless nên các ip datagram sẽ được truyền đi theo các hướng khác nhau trước khi đến đích.
Vậy thì khi đó các TCP segment nằm trong IP datagram đâu có được truyền đi theo kết nối đã có ở tầng transport đâu nhỉ ?
Mình nghĩ là mình không nắm vững ở chỗ nào đó nên mới thắc mắc thế này. Rất mong các bạn chỉ cho mình biết: Mình đã sai ở chỗ nào ? |
|
|
|
|
[Question] Thắc mắc về TCP/IP |
17/11/2010 14:16:49 (+0700) | #2 | 225044 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
explorer88 wrote:
Chào các bạn.
Mình thắc mắc ở chỗ:
Tại transport layer, với giao thức TCP thì sử dụng connection-oriented, cả hai bên cần xây dựng một kết nối trước khi truyền data. Data, ở đây là các TCP segment sẽ được truyền đi trong kết nối đó.
Nhưng mà TCP segment đó phải được đóng gói vào một IP datagram để chuyển đi, mà kết nối tại network layer thì lại là connectionless nên các ip datagram sẽ được truyền đi theo các hướng khác nhau trước khi đến đích.
Vậy thì khi đó các TCP segment nằm trong IP datagram đâu có được truyền đi theo kết nối đã có ở tầng transport đâu nhỉ ?
Mình nghĩ là mình không nắm vững ở chỗ nào đó nên mới thắc mắc thế này. Rất mong các bạn chỉ cho mình biết: Mình đã sai ở chỗ nào ?
Bồ nói rõ hơn vởi đoạn màu đỏ ở trên được không? Tại sao "kết nối tại network layer lại là connectionless" là sao? |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Thắc mắc về TCP/IP |
17/11/2010 15:00:17 (+0700) | #3 | 225051 |
|
dreamcatcher
Member
|
0 |
|
|
Joined: 28/03/2009 12:47:35
Messages: 28
Offline
|
|
explorer88 wrote:
Chào các bạn.
Mình thắc mắc ở chỗ:
Tại transport layer, với giao thức TCP thì sử dụng connection-oriented, cả hai bên cần xây dựng một kết nối trước khi truyền data. Data, ở đây là các TCP segment sẽ được truyền đi trong kết nối đó.
Nhưng mà TCP segment đó phải được đóng gói vào một IP datagram để chuyển đi, mà kết nối tại network layer thì lại là connectionless nên các ip datagram sẽ được truyền đi theo các hướng khác nhau trước khi đến đích.
Vậy thì khi đó các TCP segment nằm trong IP datagram đâu có được truyền đi theo kết nối đã có ở tầng transport đâu nhỉ ?
Mình nghĩ là mình không nắm vững ở chỗ nào đó nên mới thắc mắc thế này. Rất mong các bạn chỉ cho mình biết: Mình đã sai ở chỗ nào ?
Các tầng của TCP/IP có chức năng và hoạt động độc lập với nhau. Nên ở layer 3 là connectioness chẳng liên quan gì đến việc layer 4 phải là connectioness hay connection-oriented cả.
TCP dùng cơ chế SYN - ACK để thiết lập 1 comunication session trước khi truyền tin, nó chỉ xử lý ở layer 4, còn layer 3 là gì nó không quan tâm. Khi đóng gói xong nó chuyển xuống layer 3 rồi mặc kệ thôi.
Ví dụ: mình gửi thư cho bạn, trước khi gửi thư mình có gọi điện thông báo cho bạn mình trước là sẽ gửi thư và bạn mình xác nhận (layer 4 - phiên làm việc được thiết lập, mình và bạn mình biết là có gửi thư cho nhau), sau đó mình bỏ thư vào hòm để chuyển đi (layer 3 - connectioness: mình không biết bao giờ thì thư đến chỗ bạn mình, cũng không biết thời điểm thư được lấy đi ...). Bạn mình khi nhận được thư -> xác nhận lại (layer 4). Không nhận được thư -> yêu cầu gửi lại (layer 4). |
|
|
|
|
[Question] Thắc mắc về TCP/IP |
17/11/2010 15:55:50 (+0700) | #4 | 225061 |
explorer88
Member
|
0 |
|
|
Joined: 06/11/2010 22:32:47
Messages: 75
Offline
|
|
dreamcatcher wrote:
explorer88 wrote:
Chào các bạn.
Mình thắc mắc ở chỗ:
Tại transport layer, với giao thức TCP thì sử dụng connection-oriented, cả hai bên cần xây dựng một kết nối trước khi truyền data. Data, ở đây là các TCP segment sẽ được truyền đi trong kết nối đó.
Nhưng mà TCP segment đó phải được đóng gói vào một IP datagram để chuyển đi, mà kết nối tại network layer thì lại là connectionless nên các ip datagram sẽ được truyền đi theo các hướng khác nhau trước khi đến đích.
Vậy thì khi đó các TCP segment nằm trong IP datagram đâu có được truyền đi theo kết nối đã có ở tầng transport đâu nhỉ ?
Mình nghĩ là mình không nắm vững ở chỗ nào đó nên mới thắc mắc thế này. Rất mong các bạn chỉ cho mình biết: Mình đã sai ở chỗ nào ?
Các tầng của TCP/IP có chức năng và hoạt động độc lập với nhau. Nên ở layer 3 là connectioness chẳng liên quan gì đến việc layer 4 phải là connectioness hay connection-oriented cả.
TCP dùng cơ chế SYN - ACK để thiết lập 1 comunication session trước khi truyền tin, nó chỉ xử lý ở layer 4, còn layer 3 là gì nó không quan tâm. Khi đóng gói xong nó chuyển xuống layer 3 rồi mặc kệ thôi.
Ví dụ: mình gửi thư cho bạn, trước khi gửi thư mình có gọi điện thông báo cho bạn mình trước là sẽ gửi thư và bạn mình xác nhận (layer 4 - phiên làm việc được thiết lập, mình và bạn mình biết là có gửi thư cho nhau), sau đó mình bỏ thư vào hòm để chuyển đi (layer 3 - connectioness: mình không biết bao giờ thì thư đến chỗ bạn mình, cũng không biết thời điểm thư được lấy đi ...). Bạn mình khi nhận được thư -> xác nhận lại (layer 4). Không nhận được thư -> yêu cầu gửi lại (layer 4).
Bạn chỉ cho mình thấy cách gói tin được xử lý tại các tầng network và transport và bạn trả lời thắc mắc của mình là do các tầng thiết kế độc lập nên việc các datagram được truyền đi theo kiểu connectionless ở dưới không ảnh hưởng gì đến connection-oriented ở trên. Dù mình vẫn chưa thoả mãn lắm với câu trả lời này nhưng cũng cảm ơn bạn nhé.
Hôm qua, mình có biết thêm là connection tại transport thực chất là logical connection, không hẳn là có một kết nối định sẵn giữa hai endpoint tại transport layer. Tại sao lại phải dùng khái niệm logical connection ở đây nhỉ ?
|
|
|
|
|
[Question] Thắc mắc về TCP/IP |
17/11/2010 15:57:41 (+0700) | #5 | 225062 |
explorer88
Member
|
0 |
|
|
Joined: 06/11/2010 22:32:47
Messages: 75
Offline
|
|
conmale wrote:
explorer88 wrote:
Chào các bạn.
Mình thắc mắc ở chỗ:
Tại transport layer, với giao thức TCP thì sử dụng connection-oriented, cả hai bên cần xây dựng một kết nối trước khi truyền data. Data, ở đây là các TCP segment sẽ được truyền đi trong kết nối đó.
Nhưng mà TCP segment đó phải được đóng gói vào một IP datagram để chuyển đi, mà kết nối tại network layer thì lại là connectionless nên các ip datagram sẽ được truyền đi theo các hướng khác nhau trước khi đến đích.
Vậy thì khi đó các TCP segment nằm trong IP datagram đâu có được truyền đi theo kết nối đã có ở tầng transport đâu nhỉ ?
Mình nghĩ là mình không nắm vững ở chỗ nào đó nên mới thắc mắc thế này. Rất mong các bạn chỉ cho mình biết: Mình đã sai ở chỗ nào ?
Bồ nói rõ hơn vởi đoạn màu đỏ ở trên được không? Tại sao "kết nối tại network layer lại là connectionless" là sao?
Ý của em là: TCP segment được đóng gói lại trong một IP datagram mà IP datagram được truyền đi trên mạng theo truyền thông kiểu connectionless: Không có một con đường định sẵn nào cả, các IP datagram sẽ được các router forward theo các tuyến khác nhau để đến đích.
Em xem trong wikipedia thấy họ cũng nói mô hình kết nối tại network layer là connectionless mà:
http://en.wikipedia.org/wiki/Network_Layer
Em diễn đạt có điểm nào chưa rõ ràng hay sai về mặt thuật ngữ không. Nếu có thì nhờ anh hướng dẫn để em sửa dần. |
|
|
|
|
[Question] Thắc mắc về TCP/IP |
17/11/2010 17:25:48 (+0700) | #6 | 225066 |
rs
Member
|
0 |
|
|
Joined: 15/07/2008 23:07:11
Messages: 220
Location: YANYM
Offline
|
|
explorer88 wrote:
Hôm qua, mình có biết thêm là connection tại transport thực chất là logical connection, không hẳn là có một kết nối định sẵn giữa hai endpoint tại transport layer. Tại sao lại phải dùng khái niệm logical connection ở đây nhỉ ?
Hình như bạn còn chưa phân biệt được rõ ràng vai trò của Layer Internet và Layer Transport.
Thế nào gọi là kết nối định sẵn giữa hai endpoint vậy?
|
|
|
|
|
[Question] Thắc mắc về TCP/IP |
17/11/2010 18:06:08 (+0700) | #7 | 225070 |
explorer88
Member
|
0 |
|
|
Joined: 06/11/2010 22:32:47
Messages: 75
Offline
|
|
rs wrote:
explorer88 wrote:
Hôm qua, mình có biết thêm là connection tại transport thực chất là logical connection, không hẳn là có một kết nối định sẵn giữa hai endpoint tại transport layer. Tại sao lại phải dùng khái niệm logical connection ở đây nhỉ ?
Hình như bạn còn chưa phân biệt được rõ ràng vai trò của Layer Internet và Layer Transport.
Thế nào gọi là kết nối định sẵn giữa hai endpoint vậy?
Ý mình là kết nối tại TCP là logical connection, một kết nối tượng tưởng, mà ở đó các segment đi thẳng qua, chứ không phải đi qua nhiều con đường khác nhau giống như connectionless.
Mình gọi là định sẵn vì kết nối đó phải được hình thành trước khi hai endpoint trao đổi data.
Nó gần giống như khi thực hiện gọi điện thoại, cũng có một kết nối phải được định sẵn trước khi thực hiện trao đổi data nhưng khác ở chỗ là trong một cuộc gọi thì kết nối là thực (physical connection) chứ không phải là ảo (logical connection). Và thắc mắc ở đầu chủ đề dẫn mình đến thắc mắc mới là: Tại sao phải dùng khái niệm logical connection ở đây nhỉ ? |
|
|
|
|
[Question] Thắc mắc về TCP/IP |
17/11/2010 19:28:41 (+0700) | #8 | 225075 |
StarGhost
Elite Member
|
0 |
|
|
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
|
|
explorer88 wrote:
connectionless: Không có một con đường định sẵn nào cả, các IP datagram sẽ được các router forward theo các tuyến khác nhau để đến đích
@explorer88: bạn chắc hiểu sai khái niệm connection-oriented và connectionless. Connectionless tức là một bên có thể gửi một gói thông tin đến bên kia mà không cần báo trước, và cũng không cần biết bên kia có nhận được hay không. Và ngược lại thì là connection-oriented.
Còn về chuyện tại sao ở tầng IP thì là connectionless, rồi ở tầng TCP lại là connection-oriented, thì bạn cần phải xem xét về trade-off giữa efficiency và effectiveness. Cụ thể, mỗi một hoạt động trên Internet (routing, DNS, file transfer, WWW, v.v...) có thể là connectionless hoặc connection-oriented, tuỳ theo mục đích và đòi hỏi của hoạt động đó.
Ở network layer hoạt động chính là IP, nên nó bắt buộc phải là connectionless. Hoạt động nào muốn sử dụng connection-oriented thì thường phải qua TCP, nếu không muốn tự quản lý connection của chính nó.
Khái niệm physical connection và logical connection của bạn thực ra không có nhiều ý nghĩa, bạn cũng không cần phải quan tâm đến chúng. |
|
Mind your thought. |
|
|
|
[Question] Thắc mắc về TCP/IP |
17/11/2010 20:49:41 (+0700) | #9 | 225087 |
explorer88
Member
|
0 |
|
|
Joined: 06/11/2010 22:32:47
Messages: 75
Offline
|
|
Uhm do mình hiểu sai khái niệm connection-oriented và connectionless.
Cảm ơn bạn StarGhost nhé. |
|
|
|