帧、报文、分组、包、报文段、数据报这几个概念一直是比较容易混淆的概念,这导致很多IT人把所有的网络数据传输单元都称之为报文。既然大家都这么称呼,我也这么称呼肯定也是没错,工作中交流也就没有什么障碍。在度娘的肚子里搜索了好多信息,在网上有说这么说的,有那么说的,所以根据我自己的理解,总结了一下这几个概念。
帧:是数据链路层传输的数据格式,帧的长度 = 帧头+网络层包头+传输层报文头+数据;这是一个底层的概念,我们在PC上用wireshark抓的包就是帧。
报文:报文是应用层的概念,应用进程通过端口送到传输层的数据单元。
分组:是网络层的概念,分组即包括传输层送下来的完整的不需要分片的数据报,也包括由于报文大于网络接口的MTU而进行的分片。
报文段:是传输层的概念,是用户进程送下来的数据加上TCP或者UDP头后的数据报。
数据报应该是一个统称,各层的数据都可以称作数据报。
包和分组是同一个概念,网络层的数据报,既可以叫包,也可以叫做分组。