В чем разница между сегментом TCP и пакетом TCP?

сегмент TCP не является частью пакета TCP?

вот что я прочитал:

сегмент-это фрагмент данных приложения, разделенный TCP на переносимый размер и обернутый заголовком TCP

разве сам заголовок TCP не состоит из сегментов?

23
задан Der Hochstapler
13.03.2023 22:05 Количество просмотров материала 3665
Распечатать страницу

11 ответов

мы говорим:TCP segment блок данных протокола который состоит заголовок TCP и часть (пакет) данным по применения которая приходит от (верхнего) прикладного уровня. Данные транспортного уровня обычно называются segment и единица данных сетевого уровня называется datagram но когда мы используем UDP в качестве протокола транспортного уровня, мы не говорим UDP segment, вместо этого мы говорим UDP datagram. Я думаю, это потому, что мы не сегментируем UDP-блок данных (сегментация производится в транспортном слое при использовании протокол TCP.)

Data Encapsulation and the TCP/IP Protocol Stack

18
отвечен Ricardo Cristian Ramirez 2023-03-15 05:53

оригинальный TCP RFC является своего рода нечетким с тем, как он использует термин "сегмент".

в некоторых случаях термин "сегмент" относится только к текущей части передаваемого потока данных приложения, что исключает заголовки TCP. Например, TCP "максимальный размер сегмента" (MSS) является максимальным размером блока данных приложения в этом сообщении, не считая заголовков TCP.

но в других случаях термин "сегмент" включает в себя все сообщение TCP, включая заголовки TCP. Фактически, по крайней мере в одном случае спецификация упоминает сегменты TCP без данных приложения (например, простые ACK).

единое целое ИС сообщения "дейтаграмма".

исходный IP RFC ссылается на сообщения канального уровня как "пакеты". IP-дейтаграммы могут быть разбиты на "фрагменты", чтобы вписаться в пределы размера пакета в сетях малых пакетов.

уровень соединения IEEE 802.3 / Ethernet ссылается на одиночную непрерывную передачу физического уровня как a "пакет." Часть Mac data-link пакета называется "frame". Кадр начинается с MAC-адреса назначения и заканчивается последовательностью проверки кадра. Часть кадра, которая может содержать дейтаграмму IP (или ее фрагмент), называется "полем данных клиента MAC".

таким образом, технически, нет такого понятия, как "TCP-пакет "или"IP-пакет". Пакеты из слоев ниже ИС. TCP имеет "сегменты", а IP - "дейтаграммы".

7
отвечен Spiff 2023-03-15 08:10

заголовок TCP, также называемый сегмент "заголовок", и полезных данных, или данных, или "сегмента данных" составляют сегмент TCP, разного размера.

2
отвечен Florenz Kley 2023-03-15 10:27

сегмент TCP называется Дейтаграммой. Обычно сегментом или дейтаграммой является пакет. Когда дейтаграмма или пакет обработаны сетевым уровнем, это добавляет IP-заголовок к данным, и это становится IP-пакетом.

транспортный уровень разделяет данные на более мелкие блоки, называемые сегментами, датаграммами или так называемыми пакетами. Но мы обычно называем их сегментами.

2
отвечен Lovej 2023-03-15 12:44

сегмент tcp-это только концепция, она отличается от дефрагментации ip

когда вы отправляете данные, которые больше, чем IP mtu, он помещается в один IP-пакет, но IP-уровень, то найти IP-пакет слишком долго, чтобы передать, так что он будет разделить большой пакет на несколько частей, каждый из них имеет тот же идентификатор, но с различным смещением и длины данных. сторона получения отвечает за сбор всех частей, после того, как получил все части он будет собрать все части в один весь пакет ip и нажмите его к верхнему уровню протокола.

но уровень tcp имеет другое поведение. при отправке данных, что является достаточно большим, TCP слой не положить эти данные в один пакет TCP затем разделить на кусочки(но не ИП), его получения части исходных данных в один пакет TCP и TCP-пакета на уровне IP, длина TCP-пакета определяется по МСС, потом он будет получать другой части данных в другой TCP-пакета, и повторить процесс пока все данные не будут переданы.

Если tcp не использует mss,это ужасно. предположим, вы отправляете данные, что больше, чем в МСС, он будет введен только один TCP-пакет(сведения не разбивается на мелкие кусочки из-за МСС не используется), TCP-пакета больше, чем IP МТУ, поэтому IP будет разделить TCP-пакета на куски. tcp пакет будет повторно передавать, если какой-либо из частей теряется, тратить время и полосу пропускания

зы: tcp_mss = ip_mtu - tcp_header

2
отвечен albert 2023-03-15 15:01

заголовок не состоит из сегментов. Заголовок всегда имеет одинаковый размер и должен быть полным. В противном случае пакет не может быть декодирован.

то, что вы называете "сегментом", является целым "пакетом", который позже объединяется с другими в поток TCP. посмотреть:

протокол управления передачей принимает данные из потока данных, "сегментирует" его на куски и добавляет заголовок TCP, создавая сегмент TCP.

1
отвечен slhck 2023-03-15 17:18

TCP получает данные от прикладного уровня и "разбивает" эти данные на несколько сегментов данных; части исходных данных с добавленным заголовком TCP. Часть этого заголовка является порядковым номером, который используется протоколом TCP на принимающей стороне, чтобы поместить все Полученные сегменты (минус заголовки) в правильном порядке и повторно собрать исходные данные, которые это тогда передает прикладному уровню.

Итак, чтобы ответить на ваш вопрос; термин "TCP-пакет" на самом деле не существует. Она называется сегментом, который состоит из заголовка и секции данных. Сам заголовок состоит из нескольких "полей", которые содержат, среди прочего, порядковый номер, контрольную сумму и номера портов источника и назначения.

1
отвечен Jasper 2023-03-15 19:35

при отправке данных, считающихся TCP-соединением, объем отправляемых данных может превышать максимальный размер байт, разрешенный соединением в одном пакете. Эта сумма "максимальный размер сегмента" (также называемый MSS)"согласовывается" (1) во время соединения между двумя конечными точками TCP (клиентом и сервером). Протокол TCP уровня 4 OSI ответственен за рассеивание / сбор. Это означает, что поток данных разбивается на более мелкие части (называемые сегментами) и отправляется отдельно сеть. С другой стороны, уровень TCP отвечает за повторный сбор пакета в правильном порядке, чтобы реформировать поток так же, как он был отправлен. Ничто не может сказать вам, что сегменты прибудут в пункт назначения в том же порядке, что и при выезде. Поэтому пакеты и нумеруются. Кроме того, пакеты подтверждаются по одному отдельно(2) получателем, но иногда пакеты могут быть потеряны. Тогда не ACK возвращается из пункта назначения к эмиттеру. Затем эмиттер должен отправить его повторно (это также роль TCP). Иногда пакет получен правильно, но ack не получен эмиттером (потерянный пакет снова). В таком случае отправитель отправит его повторно, но получатель увидит, что он уже получил его (то есть пакет Dup) и устранит его, но повторно отправит ack отправителю.

также для повышения пропускной способности эмиттер может отправлять несколько пакетов подряд и не должен ждать, пока предыдущий ack отправит следующий пакет. это также часть протокола TCP и его называют скользящими окнами. Количество отправленных пакетов, ожидающих подтверждения, ограничено.

(1) на самом деле, нет никаких переговоров вообще, каждая конечная точка говорит максимальный размер он способен иметь дело с. Это значение не включает 20 байт IP-заголовка и 20 байт TCP-заголовка. (2) несколько пакетов также могут быть подтверждены одним ACK.

имейте в виду, что дейтаграммы инкапсулируются данные, передаваемые по IP-сети или с помощью подключения протокол как UDP. Пакеты инкапсулируются данные для связи-ориентированного протокола типа TCP. Сегменты-это части потока данных, переданных по TCP. См.У. Ричард Стивенс "TCP / IP illustrated", чтобы иметь гораздо лучшее объяснение всего этого.

1
отвечен Roger VEBER 2023-03-15 21:52

сегмент TCP пакет. Сегмент является только частью потока TCP-подключения между двумя компьютерами. Дейтаграмма-это" пакет " в терминах UDP.

0
отвечен sinni800 2023-03-16 00:09

IP-пакет состоит из IP-заголовка с прикрепленными данными. Данные-это заголовок TCP и сегмент данных приложения, называемый сегментом TCP. Сегмент TCP - это то, что вы обычно называете пакетом TCP.

0
отвечен cpx 2023-03-16 02:26

"общий" термин для таких вещей, как это блок данных протокола, или 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

вещи размываются с конкретными протоколами уровня 4 и выше (например, по сей день я не знаю ничего, что действительно является чисто сессионным протоколом, и на самом деле нет такой вещи, как общий протокол "презентации", но это определенно почти отдельный слой во многих программных/коммуникационных стеках).

также, как ранее упоминалось, каждый из этих PDU заголовок отличается от грузоподъемностью, или data. Заголовок содержит информацию о данных и, возможно, контрольную сумму для проверки на другом конце.

0
отвечен LawrenceC 2023-03-16 04:43

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх