Sự khác biệt giữa phân đoạn TCP và gói TCP là gì?


16

Là một phân đoạn TCP không phải là một phần của gói TCP?

Đây là những gì tôi đã đọc:

Phân đoạn là một phần dữ liệu ứng dụng được cắt thành kích thước có thể di chuyển bằng TCP và được bao bọc bằng tiêu đề TCP

Không phải tiêu đề TCP tự tạo thành các phân đoạn sao?

Câu trả lời:


21

Chúng tôi nói TCP segmentlà đơn vị dữ liệu giao thức bao gồm một tiêu đề TCP và một phần dữ liệu ứng dụng (gói) đến từ Lớp ứng dụng (phía trên). Dữ liệu lớp vận chuyển thường được đặt tên là segmentvà đơn vị dữ liệu của lớp mạng được đặt tên là datagramnhưng khi chúng ta sử dụng UDP làm giao thức lớp vận chuyển, chúng ta không nói UDP segment, thay vào đó, chúng ta nói UDP datagram. Tôi nghĩ điều này là do chúng tôi không phân đoạn đơn vị dữ liệu UDP (phân đoạn được thực hiện trong lớp vận chuyển khi chúng tôi sử dụng TCP).

Đóng gói dữ liệu và ngăn xếp giao thức TCP / IP


tất cả lời giải thích này áp dụng cho mô hình TCP / IP, được duy trì bởi IETF .
đăng xuất

8

TCP RFC ban đầu khá mờ nhạt với cách nó sử dụng thuật ngữ "phân khúc".

Trong một số trường hợp, thuật ngữ "phân đoạn" chỉ phần hiện tại của luồng dữ liệu ứng dụng đang được truyền đi, loại trừ các tiêu đề TCP. Ví dụ: "Kích thước phân đoạn tối đa" (MSS) của TCP là kích thước tối đa của đoạn dữ liệu ứng dụng trong thông báo này, không tính các tiêu đề TCP.

Nhưng trong các trường hợp khác, thuật ngữ "phân đoạn" bao gồm toàn bộ thông điệp TCP, bao gồm các tiêu đề TCP. Trong thực tế, trong ít nhất một trường hợp, thông số kỹ thuật đề cập đến các phân đoạn TCP không có dữ liệu ứng dụng (chẳng hạn như Acks đơn giản).

Một tin nhắn toàn bộ IP là một "datagram".

IP RFC ban đầu gọi các thông điệp lớp liên kết là "gói". IP datagram có thể được chia thành các "mảnh" để phù hợp với giới hạn kích thước gói trên các mạng gói nhỏ.

Lớp liên kết IEEE 802.3 / Ethernet đề cập đến việc truyền lớp vật lý liền kề duy nhất dưới dạng "gói". Phần liên kết dữ liệu MAC của gói được gọi là "khung". Khung bắt đầu bằng địa chỉ MAC đích và kết thúc bằng Trình tự kiểm tra khung. Một phần của khung có thể chứa một datagram IP (hoặc đoạn của chúng) được gọi là "trường dữ liệu máy khách MAC".

Vì vậy, về mặt kỹ thuật, không có thứ gọi là "gói TCP" hay "gói IP". Các gói là các điều khoản từ các lớp bên dưới IP. TCP có "phân đoạn" và IP có "datagram".


2

Tiêu đề TCP, còn được gọi là "tiêu đề phân đoạn" và tải trọng hoặc dữ liệu hoặc "dữ liệu phân đoạn" tạo nên phân đoạn TCP có kích thước khác nhau.


2

Phân đoạn TCP được gọi là Datagram. Thông thường, Phân đoạn hoặc datagram là Gói. Khi datagram hoặc gói được xử lý bởi lớp Mạng, nó sẽ thêm IP Header vào dữ liệu và nó trở thành Gói IP.

Lớp vận chuyển phân đoạn dữ liệu thành các đơn vị nhỏ hơn gọi là Phân đoạn, datagram hay còn gọi là gói. Nhưng chúng tôi thường gọi chúng là Phân khúc.


2

phân đoạn tcp chỉ là một khái niệm, nó khác với phân mảnh ip

Khi bạn gửi dữ liệu lớn hơn ip mtu, nó được đặt vào một gói ip, nhưng lớp ip sau đó tìm thấy gói ip quá dài để truyền vì vậy nó sẽ chia gói lớn thành nhiều phần, mỗi gói có cùng một phần Định danh nhưng với độ dài khác nhau và dữ liệu. bên nhận có trách nhiệm thu thập tất cả các phần, sau khi nhận được tất cả các phần, nó sẽ ghép lại tất cả các phần vào một gói ip toàn bộ và đẩy nó lên lớp giao thức phía trên.

nhưng lớp tcp có hành vi khác nhau. Khi bạn gửi dữ liệu đủ lớn, lớp tcp sẽ không đưa dữ liệu vào một gói tcp sau đó chia chúng thành các phần (nhưng ip có), nó sẽ lấy một phần dữ liệu thô thành một gói tcp và sau đó đẩy Gói tcp đến lớp ip, độ dài của gói tcp được xác định bởi mss, sau đó nó sẽ lấy một phần dữ liệu còn lại vào gói tcp khác và lặp lại quy trình cho đến khi tất cả dữ liệu được truyền đi.

nếu tcp không sử dụng mss thì thật kinh khủng. giả sử bạn gửi dữ liệu lớn hơn ms, nó sẽ chỉ được đưa vào một gói tcp (dữ liệu không được chia thành các phần nhỏ do ms không được sử dụng, gói tcp lớn hơn ip mtu, vì vậy ip sẽ phân tách tcp gói thành miếng. gói tcp sẽ truyền lại nếu bất kỳ một trong các phần bị mất, lãng phí thời gian và băng thông

ps: tcp_mss = ip_mtu - tcp_header


1

Một tiêu đề không được tạo thành từ các phân khúc. Một tiêu đề luôn có cùng kích thước và phải được hoàn thành. Nếu không, gói không thể được giải mã.

Những gì bạn gọi là "Phân đoạn" là toàn bộ "gói" mà sau này được kết hợp với các gói khác cho luồng TCP. Xem:

Giao thức điều khiển truyền dẫn chấp nhận dữ liệu từ luồng dữ liệu, 'phân đoạn' thành các khối và thêm tiêu đề TCP tạo phân đoạn TCP.


1

TCP nhận dữ liệu từ lớp ứng dụng và 'cắt' dữ liệu này thành nhiều phân đoạn dữ liệu; các phần của dữ liệu gốc với một tiêu đề TCP được thêm vào. Một phần của tiêu đề này là một số thứ tự được sử dụng bởi giao thức TCP trên đầu nhận để đặt tất cả các phân đoạn nhận được (trừ các tiêu đề) theo đúng thứ tự và lắp ráp lại dữ liệu gốc mà sau đó nó chuyển sang lớp ứng dụng .

Để trả lời câu hỏi của bạn; thuật ngữ 'gói TCP' không thực sự tồn tại. Nó được gọi là "phân đoạn" bao gồm phần tiêu đề và phần dữ liệu. Bản thân tiêu đề bao gồm một số 'trường' chứa, trong số các trường khác, số thứ tự, tổng kiểm tra và số cổng nguồn và đích.


1

Khi bạn gửi dữ liệu nghĩ rằng kết nối TCP, lượng dữ liệu bạn gửi có thể vượt quá kích thước tối đa của byte được cho phép bởi kết nối trong một gói. Số tiền này "Kích thước phân đoạn tối đa" (còn gọi là MSS) được "thương lượng" (1) tại thời điểm kết nối giữa hai điểm cuối TCP (máy khách và máy chủ). Giao thức TCP cấp 4 OSI chịu trách nhiệm phân tán / thu thập. Điều đó có nghĩa là luồng dữ liệu của bạn được chia thành các phần nhỏ hơn (được gọi là các phân đoạn) và được gửi riêng qua mạng. Mặt khác, lớp TCP có trách nhiệm thu thập lại gói theo đúng thứ tự để cải tổ luồng giống như được gửi. Không có gì có thể cho bạn biết rằng các phân khúc sẽ đến đích theo cùng một thứ tự so với lúc khởi hành. Đó cũng là lý do tại sao các gói được đánh số. Hơn, các gói được thừa nhận từng cái một (2) riêng biệt bởi người nhận nhưng đôi khi các gói có thể bị mất. Sau đó, không có ACK sẽ được trả về từ đích của gói tới bộ phát. Sau đó, bộ phát nên gửi lại nó (đó cũng là vai trò của TCP). Đôi khi gói được nhận chính xác nhưng ack không được nhận bởi bộ phát (lại bị mất gói). Trong trường hợp như vậy, bộ phát sẽ gửi lại nó, nhưng người nhận thấy rằng nó đã nhận được nó (đó là gói Dup) và loại bỏ nó nhưng gửi lại ack cho người gửi.

Ngoài ra để cải thiện thông lượng, bộ phát có thể gửi một số gói theo chuỗi và không phải đợi ack trước gửi gói tiếp theo. Nó cũng là một phần của giao thức TCP và nó được gọi là cửa sổ trượt. Số lượng gói gửi đã chờ xử lý cho một ack bị hạn chế.

(1) Trong thực tế, không có sự thương lượng nào cả, mỗi điểm cuối cho biết Kích thước tối đa mà anh ta có thể giải quyết. Giá trị này không bao gồm 20 byte của Tiêu đề IP, cũng không phải là 20 byte của Tiêu đề TCP. (2) một số gói cũng có thể được xác nhận bởi một ACK.

Hãy nhớ rằng Datagram là dữ liệu được đóng gói được gửi trên mạng IP hoặc sử dụng giao thức không có kết nối như UDP. Các gói là dữ liệu được đóng gói cho một giao thức hướng liên kết như TCP. Các phân đoạn là các phần của luồng dữ liệu được gửi trên TCP. Xem W.Richard Stevens "TCP / IP minh họa" để có một lời giải thích tốt hơn nhiều về tất cả những thứ này.


0

Một đoạn TCP là một gói. Một phân đoạn chỉ là một phần của luồng kết nối TCP giữa hai máy tính. Một datagram là một "gói" theo thuật ngữ UDP.


0

Một gói IP được tạo thành từ một tiêu đề IP với dữ liệu được đính kèm. Dữ liệu, là một tiêu đề TCP và một phân đoạn dữ liệu ứng dụng, được gọi là Phân đoạn TCP. Phân đoạn TCP là những gì bạn thường gọi là Gói TCP.


0

Thuật ngữ "chung" cho những thứ như thế này là Đơn vị dữ liệu giao thức hoặc PDU.

LAYER # - OSI NAME     - COMMON PROTOCOL OR USE - PDU NAME
-------   ------------   ----------------------   --------------------------
Layer 1 - Physical     - Transceiver            - bits, or a physical signal
Layer 2 - Datalink     - Ethernet               - frame
Layer 3 - Network      - IP                     - packet
Layer 4 - Transport    - TCP                    - segment
Layer 5 - Session      - SIP                    - data, request, or response
Layer 6 - Presentation - Encryption/compression - data, request, or response
Layer 7 - Application  - HTTP                   - data, request, or response

Mọi thứ trở nên mờ nhạt với các giao thức cụ thể từ lớp 4 trở lên (ví dụ, cho đến ngày nay tôi không biết bất cứ thứ gì thực sự hoàn toàn là giao thức phiên, và thực sự không có thứ gọi là giao thức "trình bày" phổ biến nhưng nó chắc chắn là lớp gần như tách biệt trong rất nhiều ngăn xếp phần mềm / truyền thông).

Ngoài ra, như đã đề cập trước đây, mỗi một trong số các PDU này có một tiêu đề khác với tải trọng hoặc dữ liệu của nó. Tiêu đề có thông tin về dữ liệu và có thể là tổng kiểm tra để xác minh ở đầu bên kia.


TPDU không được sử dụng thay thế cho các lớp trên? xem sách.google.de
books?id=daqV_KzkoSIC&pg=PA147
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.