TCP/IP 各层的 数据格式(Segment,Datagram,Packet,ARP 数据包,Frame) |
您所在的位置:网站首页 › 网络层的协议数据单元是 › TCP/IP 各层的 数据格式(Segment,Datagram,Packet,ARP 数据包,Frame) |
文章目录
数据包封装1、TCP 报文段(Segment)格式2、UDP 数据报(Datagram)格式3、IP 分组(Packet)格式4、ARP 数据包 格式5、以太网 帧格式(Frame)
数据包封装
传输层及其以下的机制由 内核提供,应用层由 用户进程提供(后面将介绍如何使用socket API编写应用程序),应用程序 对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示: TCP/IP通信过程: TCP/TP数据包封装: 数据 封装成帧 后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。 1、TCP 报文段(Segment)格式
想一想,前面讲了以太网帧中的最小数据长度为46字节,不足46字节的要用填充字节补上,那么如何界定这46字节里 前多少个字节是IP、ARP或RARP数据报 而后面是填充字节? 4、ARP 数据包 格式在网络通讯时,源主机 的应用程序 知道 目的主机 的IP地址 和端口号,却不知道 目的主机的 硬件地址,而 数据包首先是被 网卡接收 到 再去处理 上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得 目的主机 的 硬件地址。ARP协议就起到这个作用。 源主机发出 ARP请求,询问“IP地址是192.168.0.1 的主机的 硬件地址 是多少”,并将这个请求广播到本地网段(以太网帧首部的 硬件地址 填 FF:FF:FF:FF:FF:FF 表示 广播),目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个 ARP应答数据包 给源主机,将自己的硬件地址填写在 应答包 中。 每台主机都维护一个ARP缓存表,可以用 arp -a 命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发 ARP请求 来获得目的主机的硬件地址。想一想,为什么表项要有过期时间而不是一直有效? ARP数据报 的格式如下所示: 以太网帧中的 数据长度 规定最小46字节,最大1500字节,ARP 和 RARP 数据包的长度不够46字节,要在后面补填充位。 最大值1500 称为以太网的 最大传输单元(MTU),不同的网络类型有不同的 MTU,如果一个数据包从 以太网 路由到 拨号链路上,数据包长度大于拨号链路的 MTU了,则需要对 数据包进行 分片(fragmentation)。 ifconfig 命令的输出中也有“MTU:1500”。注意,MTU这个概念指 数据帧中 有效载荷的最大长度,不包括 帧首部的长度。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |