TCP / IP数据包和数据报

时间:2012-12-25 00:54:04

标签: tcp udp datagram packets

在从传输层(TCP)向网络层(IP)接收到一个段时,结果数据单元将是一个数据包。而当从传输层(UDP)接收用户数据报时,结果数据单元将是数据报?

4 个答案:

答案 0 :(得分:8)

您将陷入详细信息...... 数据包数据报并非完全明确的术语。我也认为你也在向后看事情。在传统网络中:

  1. 链接层(例如,802.3“以太网”或802.11“Wi-Fi”)向网络层提供(例如,IP,ICMP)
  2. 网络层将帧组装成数据包,这些数据包会传递到堆栈中的下一个层 - 传输
  3. 传输层又将字节传递到应用层。应用层API实际上区分了TCP中的数据流和UDP中的数据报
  4. OSI stack实际上并没有真正用于实践。在大多数情况下,它已被Internet Protocol Suite取代。了解网络堆栈如何工作的最简单方法是购买"TCP/IP Illustrated: Volume 1"的副本,下载nice network capture utility,并观看一些互联网流量。您可以看到数据包是如何从物理层向上组装的。

答案 1 :(得分:0)

  

术语数据报通常被视为数据包的同义词,但存在一些细微差别。术语数据报通常保留用于不可靠服务的数据包,如果传递失败则无法通知发件人,而数据包一词适用于任何数据包,可靠与否。 数据报是提供快速且不可靠的服务(如UDP)的IP数据包,所有IP 数据包都是数据报; [4]但是, TCP层,即所谓的TCP段,有时是数据报的必要IP分片,[5]但这些被称为" 数据包&#34 ; [6]

[Emphasys补充]

Wiki source

答案 2 :(得分:-1)

您绝对需要熟悉“7层网络堆栈”。

它并不完全适用于TCP / IP,但它是理解任何“网络”协议(包括TCP / IP)的绝佳基础:

简短回答:

  • “数据包”是通过网络发送的内容。

  • 对于TCP / IP,接收主机将数据包组装成“流”。

  • 另一方面,对于UDP,接收主机将相同的数据包(或实际上是数据包)组装成“数据报”。

“数据包”是第3级(“网络层”)。

“Streams”和“datagrams”是4级(“传输层”)。

在TCP / IP的情况下,第7层直接访问“流”和“数据报”(“应用层”:包括HTTP / Web,SMTP /电子邮件,FTP /文件传输等)等)。

答案 3 :(得分:-1)

  

在从传输层(TCP)接收到网络层(IP)的段时,结果数据单元将是一个数据包。

没有

客户端可以看到TCP中唯一的接收单位是一个字节。 TCP段由一个或多个IP数据包组成,但所有应用程序都可以看到是一个字节流。在应用程序看到任何数据之前,任何和所有段和数据包边界都会丢失。你发送一些字节,你收到一些字节,并且分别发送和接收的数量之间不一定有很强的相关性,除了它们都加起来相同的流。

在UDP中,发送和接收的单位都是数据报。您发送一个数据报,如果它完好无损,您将收到包含相同字节和相同字节数的相同数据报。