tcpip 协议簇的逐层封装+数据包格式

上传人:xzh****18 文档编号:33915675 上传时间:2018-02-19 格式:DOC 页数:6 大小:124KB
返回 下载 相关 举报
tcpip 协议簇的逐层封装+数据包格式_第1页
第1页 / 共6页
tcpip 协议簇的逐层封装+数据包格式_第2页
第2页 / 共6页
tcpip 协议簇的逐层封装+数据包格式_第3页
第3页 / 共6页
tcpip 协议簇的逐层封装+数据包格式_第4页
第4页 / 共6页
tcpip 协议簇的逐层封装+数据包格式_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《tcpip 协议簇的逐层封装+数据包格式》由会员分享,可在线阅读,更多相关《tcpip 协议簇的逐层封装+数据包格式(6页珍藏版)》请在金锄头文库上搜索。

1、TCP/IP 协议簇的逐层封装 收藏 在使用 TCP 协议的网络程序中,用户数据从产生到从网卡发出去一般要经过如下的逐层封装过程:从下往上看:1)链路层通过加固定长度的首部、尾部来封装 IP 数据报(Datagram) 产生以太网帧(Frame),其中首部存在对封装数据的标识:是 IP(0x0800,本例) 、ARP(0x0806) 还是 RARP(0x0835)。2)网络层通过加首部来封装 TCP 段(Segment) 产生 IP 数据报,其中首部存在对封装数据的标识:是 ICMP(0x01)、IGMP(0x02)、TCP(0x06,本例) 还是 UDP(0x11)。3)传输层通过加首部来封

2、装应用数据产生 TCP 段,其中首部存在对封装数据的标识:端口号,来标识是那个应用程序产生的数据。4)按这种处理逻辑,在应用层,对于我们要处理的应用数据理所当然的加上固定长度的首部,首部中同样含有某些标识,标识些什么呢?按经验,一般会标识本次数据的业务意义,在程序中一般处理为业务集合(枚举型)的某个元素;如果是 TCP 应用(本例) 还可能包括应用数据总体长度。Ethernet、Tcp 、Udp 等协议的数据包格式 收藏 TCP/IP协议是一个比较复杂的协议集,有很多专业书籍介绍。在此,我仅介绍其与编程密切相关的部分:以太网上 TCP/IP 协议的分层结构及其报文格式。我们知道 TCP/IP

3、协议采用分层结构,其分层模型及协议如下表: 应用层(Application)HTTP、Telnet 、FTP 、SMTP、SNMP传输层(Transport)TCP、UDP网 间 网层(Internet)IP【ARP、RARP、ICMP】网络接口层(Network)Ethernet、X.25、SLIP、PPP协议采用分层结构,因此,数据报文也采用分层封装的方法。下面以应用最广泛的以太网为例说明其数据报文分层封装,如下图所示:任何通讯协议都有独特的报文格式,TCP/IP 协议也不例外。对于通讯协议编程,我们首先要清楚其报文格式。由于 TCP/IP 协议采用分层模型,各层都有专用的报头,以下就简单

4、介绍以太网下 TCP/IP 各层报文格式。 8 字节的前导用于帧同步,CRC 域用于帧校验。这些用户不必关心其由网卡芯片自动添加。目的地址和源地址是指网卡的物理地址,即 MAC 地址,具有唯一性。帧类型或协议类型是指数据包的高级协议,如 0x0806 表示 ARP 协议,0x0800 表示 IP 协议等。ARP/RARP (地址解析/反向地址解析)报文格式如下图: “硬件类型 ”域指发送者本机网络接口类型(值“1” 代表以太网)。“协议类型”域指发送者所提供/请求的高级协议地址类型(“0x0800” 代表 IP 协议)。“操作”域指出本报文的类型(“1”为 ARP 请求,“2”为 ARP 响应

5、,“3”为 RARP 请求,“4”为 RARP 响应)。IP 数据报头格式如下图: 我们用单片机实现 TCP/IP 协议要作一些简化,不考虑数据分片和优先权。因此,在此我们不讨论服务类型和标志偏移域,只需填“0” 即可。协议“版本”为 4,“头长度”单位为 32Bit,“总长度”以字节为单位,表示整个 IP 数据报长度。“标识”是数据包的 ID 号,用于识别不同的 IP 数据包。“生存时间” TTL 是个数量及的概念,防止无用数据包一直存在网络中。一般每经过路由器时减一,因此通过 TTL 可以算出数据包到达目的地所经过的路由器个数。“协议”域表示创建该数据包的高级协议类型。如 1 表示 ICM

6、P 协议,6 表示TCP 协议, 17 表示 UDP 协议等。 IP 数据包为简化数据转发时间,仅采用头校验的方法,数据正确性由高层协议保证。ICMP (网间网控制报文协议)协议 应用广泛。在此仅给出最常见的回应请求与应答报文格式,用户命令 ping 便是利用此报文来测试信宿机的可到达性。报文格式如下图所示:类型 0 为回应应答报文,8 为回应请求报文。整个数据包均参与检验。注意 ICMP封装在 IP 数据包里传送。UDP 报文格式如下图: TCP 报文格式如下图: TCP 是面向连接的可靠数据传输协议,因此比较复杂,在此仅作简单介绍。“序号”指数据在发送端数据流中的位置。“确认号”指出本机希望下一个接收的字节的序号。与 IP 校验不同的是 TCP,UDP 校验采用伪头标加整个报文一同校验的方法。TCP 协议工作原理另行介绍。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业合同/协议

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号