消息message与数据包packet的区别和联系

在通信领域,通信设备(例如手机、计算机等)将消息(message)封装(encapsulate)到数据包(packet)中再发送给对方,而不是直接将消息发送给对方。

图1:封装在数据包中的一条消息

类似于我们寄信的时候,将写好的信纸放入信封,而不是将信纸直接放入邮筒。

信封上有寄信人地址和收信人地址,类似地,数据包上有发送方地址和接收方地址。

数据包是在网络上传输的,网络上的地址称作IP address(Internet Protocol address)。

图2:数据包中包含IP地址

source IP address(源IP address)是发送方的地址

destination IP address(目的IP address)是接收方的地址

网络根据source IP address就可以知道是网络上的哪一台通信设备(例如手机、计算机等)发送的消息,根据destination IP address就可以知道消息是发往网络上的哪一台通信设备。

例如,IP address是这样的:202.108.22.6(由4个数和3个点组成)

数据包上除了有发送方和接收方的地址外,还有端口号(port number)。

图3:数据包中包含端口号

作为非专业技术人员,我们只需要大致知道:端口号是一个整数,不同的端口号代表不同的应用程序。

source port number(源端口号)类似于信件的寄信人姓名

destination port number(目的端口号)类似于信件的收信人姓名

一个消息不仅可以是一段文字,还可以是一张照片、一条语音、一个视频等等。

数据包的大小一般是固定的。如果消息比较小,用一个数据包就可以装下。如果消息比较大,则要把消息拆分,放入多个数据包进行发送。因此,数据包上还有序号(sequence number)。

图4:数据包中包含序号

接收方收到多个数据包后,根据数据包中的序号,把这些数据包内的消息片段重新组合成一条完整的消息。

因为数据包的大小一般是固定的,所以,如果消息比较小,则需要对数据包的空余区域进行填充(padding),也就是用没有意义的数据把数据包填满,类似于我们寄快递时,东西比较小的时候,会塞入废纸把快递盒填满。

图5:“#”表示用于进行padding的无意义数据

数据包中,souce IP address、destination IP address、source port number、destination port number 和sequence number都称为数据包中的字段(field)。这些字段共同组成数据包的包头(header)。

*以上内容是为了帮助译员了解基本的概念和术语,因此省略了很多复杂的技术细节,谢谢!

参考:

Behrouz A. Forouzan著. Data Communications and Networking (数据通信与网络,英文版第5版). 北京:机械工业出版社

https://tools.ietf.org/html/rfc4717

https://jvns.ca/blog/2017/02/07/mtu/

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180630G13ER800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券