TCPIP协议规范及UIP处理流程

合集下载

TCPIP协议

TCPIP协议

TCPIP协议协议名称:TCP/IP协议协议概述:TCP/IP协议是一种网络协议套件,用于在互联网中进行数据传输和通信。

它是由传输控制协议(TCP)和互联网协议(IP)组成的,分别负责数据的可靠传输和数据的路由。

协议目的:TCP/IP协议的目的是在互联网中实现可靠的数据传输和通信。

它提供了一种标准化的方式,使不同类型的计算机和网络设备能够互相通信。

协议范围:TCP/IP协议适用于各种类型的网络,包括局域网(LAN)、广域网(WAN)以及互联网。

它被广泛应用于各种领域,如企业网络、云计算、物联网等。

协议要求:1. 数据可靠性:TCP协议负责确保数据在网络中的可靠传输,通过使用序列号、确认应答和重传机制等方法来实现。

2. 数据路由:IP协议负责将数据包从源主机发送到目标主机,通过使用IP地址和路由表等信息来确定数据包的传输路径。

3. 网络互联:TCP/IP协议使不同类型的计算机和网络设备能够互相通信,无论它们使用的是有线还是无线连接。

协议内容:1. TCP协议:- 连接建立:在进行数据传输之前,TCP协议需要通过三次握手建立连接。

这包括客户端发送连接请求,服务器确认请求并发送连接应答,最后客户端再次确认连接应答。

- 数据传输:TCP协议将数据分割成适当大小的数据包,并为每个数据包分配序列号。

接收方根据序列号对数据包进行排序和重组,以确保数据的正确性和完整性。

- 流控制:TCP协议使用滑动窗口机制来控制发送方和接收方之间的数据流量,以避免数据丢失或拥塞。

- 错误恢复:TCP协议通过确认应答和重传机制来处理丢失的数据包和出现的错误,以确保数据的可靠传输。

- 连接终止:在数据传输完成后,TCP协议需要通过四次挥手来终止连接。

这包括客户端发送连接释放请求,服务器确认请求并发送连接释放应答,最后客户端再次确认连接释放应答。

2. IP协议:- IP地址:IP协议使用32位的IP地址来标识网络中的主机和路由器。

IP地址分为网络部分和主机部分,用于确定数据包的传输路径。

TCPIP协议规范及UIP处理流程模板

TCPIP协议规范及UIP处理流程模板

TCPIP协议规范及UIP处理流程模板目录一、简要历史 (4)二、TCP/IP协议族 (4)2.1. 简介 (4)2.2. 编址 (5)2.2.1 物理地址 (5)2.2.2 逻辑地址 (5)2.2.3 端口地址 (8)2.3. 分层数据包介绍 (8)2.3.1 以太网帧 (8)2.3.2 ARP报文格式 (9)2.3.3 IP数据报格式 (11)23.4 ICMP报文格式 (13)2.3.5 IGMP报文格式 (15)23.6 UDP用户数据报首部格式 (16)2.3.7 TCP报文段格式 (17)2.4. 分层协议讲解 (19)2.4.1 ARP 和RARP (20)2.4.2 IP 协议 (23)2.4.3 ICMP 协议 (25)2.4.4 网际组管理协议(IGMP) (30)2.4.5 用户数据报(UDP) (31)2.4.6 传输控制协议(TCP) (34)三、UIP处理流程 (40)3.1. 简介 (40)3.2. 层次结构 (41)3.2.1 实现设备驱动与UIP对接需要的7个接口程序,定义在uip.h: (42)3.2.2 应用层要调用的函数,包括一些宏定义与函数,定义在uip.h: (48)3.2.3 UIP中所用到的主要结构体 (55)3.2.4 uip的初始化与配置函数 (64)3.2.5 Uip的主程序循环 (67)3.2.6 主要的处理函数uip_process() (71)3.2.7 再來分析UIP_UDP_SEND_CONN,主要处理UDP报文的发送: (79)3.2.8 接下來,分析UIP_POLL_REQUEST (82)3.2.9 对定时器期满的处理流程UIP_TIMER (84)3.2.10 对UIP_UDP_TIMER 的处理流程 (86)3.2.11 原始套接字和原始线程 (87)一、简要历史1973 年,ARPANET 核心组成员Vint Cerf 和Bob Kahn 发表了—篇里程碑论文,阐述了实现分组的端到端交付的协议。

tcp协议流程

tcp协议流程

tcp协议流程TCP协议是网络通信中常用的传输协议之一,它能够确保数据无差错、可靠传输,并且能够在网络拥塞时进行流量控制,保证网络的稳定性和可靠性。

本文将介绍TCP协议的流程,以帮助读者更好地理解TCP协议。

TCP协议的流程可以分为三个阶段:连接建立、数据传输和连接关闭。

下面将对这三个阶段进行详细介绍。

1. 连接建立阶段在TCP协议中,客户端向服务器端发送连接请求,服务器端收到请求后,向客户端发送确认应答,建立连接。

这个过程被称为“三次握手”。

具体流程如下:第一次握手:客户端向服务器发送连接请求,请求包含一个SYN (同步)标志位,表示客户端要建立连接。

第二次握手:服务器收到请求后,向客户端发送一个确认应答,应答包含SYN和ACK(确认)标志位,表示服务器已收到请求,准备接受数据。

第三次握手:客户端收到服务器的应答后,再向服务器发送一个确认应答,应答包含ACK标志位,表示客户端已收到服务器的应答,连接建立完成。

在建立连接时,若有网络拥塞或其他原因导致连接建立失败,则会重新发送连接请求,直到建立连接成功。

2. 数据传输阶段连接建立完成后,数据传输阶段开始。

在数据传输时,TCP协议会将数据分成若干个数据包进行传输,每个数据包包含一个序列号和数据内容。

具体流程如下:发送方将数据分成若干个数据包,并且为每个数据包分配一个序列号,保证数据的顺序和完整性。

接收方收到数据包后,检查序列号是否正确,若正确,则发送确认应答,否则发送重发请求。

发送方收到确认应答后,继续发送下一个数据包,直到所有数据传输完毕。

在数据传输时,若发生网络拥塞或其他异常情况,则TCP协议会进行流量控制,减少数据传输速度,以保证网络的稳定性和可靠性。

3. 连接关闭阶段数据传输结束后,连接关闭阶段开始。

在TCP协议中,连接关闭分为主动关闭和被动关闭两种方式。

具体流程如下:主动关闭:当发送方数据全部发送完毕后,发送方向接收方发送一个FIN(结束)标志位,表示发送方已经完成数据传输,并且要关闭连接。

TCPIP协议详解

TCPIP协议详解

TCPIP协议详解协议名称:TCP/IP协议详解一、引言TCP/IP协议是互联网中最常用的网络协议之一,它是一种通信协议,用于在网络中传输数据。

本协议详解旨在提供对TCP/IP协议的全面理解,包括协议的结构、功能和工作原理。

二、协议概述TCP/IP协议是一个分层协议,由四个层次组成:网络接口层、网络层、传输层和应用层。

每个层次都有特定的功能和任务,协同工作以实现可靠的数据传输和网络通信。

1. 网络接口层网络接口层负责将数据从主机发送到网络,并从网络接收数据。

它定义了物理连接和数据传输的规范,包括硬件接口、数据格式和数据传输速率。

2. 网络层网络层负责在不同网络之间传输数据。

它使用IP协议将数据包从源主机传输到目标主机,并通过路由选择算法确定最佳路径。

网络层还处理数据包的分片和重组,以适应各种网络环境。

3. 传输层传输层负责提供端到端的数据传输服务。

它使用TCP协议和UDP协议来实现可靠的数据传输。

TCP协议提供面向连接的、可靠的数据传输,而UDP协议提供无连接的、不可靠的数据传输。

4. 应用层应用层提供各种网络应用程序,如电子邮件、文件传输和远程登录。

它使用各种协议,如HTTP、FTP和SMTP,来实现特定的应用功能。

三、协议功能TCP/IP协议具有以下主要功能:1. 数据分段和重组TCP/IP协议将数据分成适当的大小,并在发送端进行分段。

在接收端,它将接收到的分段重组成原始数据。

2. 可靠的数据传输TCP协议提供可靠的数据传输,通过使用序列号、确认和重传等机制来确保数据的可靠性。

3. 连接管理TCP协议使用三次握手和四次挥手来建立和终止连接。

它还负责管理连接状态和处理连接中断。

4. 路由选择网络层使用路由选择算法来确定数据包的最佳路径。

它考虑网络拓扑、网络负载和其他因素,以确保数据包能够快速、可靠地传输。

5. 地址解析TCP/IP协议使用IP地址和MAC地址来标识主机和网络设备。

地址解析协议(ARP)用于将IP地址转换为MAC地址,以实现数据传输。

tcp ip协议详解

tcp ip协议详解

tcp ip协议详解协议名称:TCP/IP协议详解一、介绍TCP/IP协议是一种网络通信协议,它是互联网的基础协议,用于在网络中传输数据。

本协议旨在详细解释TCP/IP协议的工作原理、数据传输过程和相关概念。

二、TCP/IP协议的组成1. TCP(传输控制协议)- 描述:TCP是一种面向连接的协议,提供可靠的数据传输和错误检测机制。

- 功能:- 分割和重组数据流- 确保数据按顺序传输- 提供可靠的错误检测和纠正- 运行方式:三次握手建立连接,四次挥手断开连接。

2. IP(互联网协议)- 描述:IP是一种无连接的协议,负责将数据包从源主机发送到目标主机。

- 功能:- 将数据分割为数据包并添加源和目标地址- 路由选择:选择最佳路径将数据包传输到目标主机- 版本:IPv4和IPv6三、TCP/IP协议的工作原理1. 数据传输过程- TCP层:- 将数据分割为适当的数据块(称为段)- 添加TCP头部,包含源端口、目标端口和序列号等信息- 发送段到网络层- IP层:- 将TCP段封装为数据包(称为IP数据报)- 添加IP头部,包含源IP地址和目标IP地址等信息- 发送数据包到网络- 网络层:- 通过路由选择算法选择最佳路径- 将数据包传输到目标主机- 目标主机接收到数据包后,按照相反的顺序进行解封装,将数据包逐层传递到应用层。

2. 概念解释- 端口:用于标识应用程序或服务的数字,范围从0到65535。

- IP地址:用于标识网络中的设备,IPv4地址由32位二进制数组成,IPv6地址由128位二进制数组成。

- 数据包:在网络中传输的数据单元,包含数据和控制信息。

- 路由选择:选择传输数据包的最佳路径的过程。

- 三次握手:建立TCP连接的过程,包括客户端发送连接请求、服务器确认请求和客户端确认连接。

- 四次挥手:断开TCP连接的过程,包括客户端发送断开请求、服务器确认请求、服务器发送断开通知和客户端确认断开。

TCPIP协议详解DOC程序设计完整版.doc

TCPIP协议详解DOC程序设计完整版.doc

TCP/IP详解1 概述1.1 引言很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但TCP/IP协议组件允许它们互相进行通信。

这一点很让人感到吃惊,因为它的作用已远远超出了起初的设想。

TCP/IP起源于60年代末美国政府资助的一个分组交换网络研究项目,到现在90年代已发展成为计算机之间最常应用的组网形式。

它是一个真正的开放系统,因为协议组件的定义及其多种实现可以不用花钱或花很少的钱就可以公开地得到。

它成为被称作“全球互联网”或“因特网”(Internet)的基础,该广域网(W AN)已包含超过100万台遍布世界各地的计算机。

本章主要对TCP/IP协议组件进行概述,其目的是为本书其余章节提供充分的背景知识。

如果读者要从历史的角度了解有关TCP/IP的早期发展情况,请参考文献[Lynch 1993]。

1.2 分层网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。

一个协议组件,比如TCP/IP,是一组不同层次上的多个协议的组合。

TCP/IP通常被认为是一个四层协议系统,如图1.1所示。

图1.1 TCP/IP协议组件的四个层次每一层负责不同的功能:1. 链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。

它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。

2. 网络层,有时也称作互连网层,处理分组在网络中的活动,例如分组的路由选择。

在TCP/IP协议组件中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互连网控制报文协议),以及IGMP协议(Internet组管理协议)。

3. 运输层主要为两台主机上的应用程序提供端到端的通信。

在TCP/IP协议组件中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。

TCP为两台主机提供高可靠性的数据通信。

它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。

tcp协议4步

tcp协议4步

tcp协议4步TCP协议是一种重要的网络传输协议,它确保了网络上数据的可靠传输。

在使用TCP协议进行数据传输时,通常会按照以下四个步骤进行。

第一步:建立连接(Three-Way Handshake)在TCP协议中,要建立一个可靠的连接,需要进行一个三次握手的过程。

首先,客户端向服务器发送一个请求连接的报文段(SYN),其中包含客户端的初始序列号(随机生成的一个数字)。

服务器接收到报文段后,如果同意建立连接,则回复一个确认连接的报文段(SYN+ACK),其中包含服务器的初始序列号,并确认收到了客户端的序列号。

最后,客户端再次回复一个确认连接的报文段(ACK),其中发送的序列号是服务器的序列号加1。

这样,连接就建立成功了。

第二步:数据传输在连接建立之后,客户端和服务器就可以开始进行数据传输了。

数据在传输前被分割成多个报文段,每个报文段都包含了序列号、确认号和数据等信息。

客户端将报文段发送给服务器,并等待服务器回复的确认报文段;服务器接收到报文段后,先进行验证(使用校验和验证数据的完整性),再向客户端发送确认报文段。

如果确认报文段没有遗失或损坏,客户端接收到确认报文段后,就可以发送下一个报文段;如果确认报文段遗失或损坏,客户端会重新发送之前的报文段。

第三步:连接终止(Four-way Handshake)当数据传输完毕后,需要终止连接。

TCP协议采用四次挥手的方式来实现连接终止。

首先,客户端向服务器发送一个连接终止请求的报文段(FIN),表示客户端没有更多的数据要发送了。

服务器接收到报文段后,向客户端发送确认连接终止的报文段(ACK)作为回应。

然后,服务器通知应用程序已经关闭了连接,等待应用程序处理完剩余的数据。

最后,当服务器没有数据需要发送时,向客户端发送一个连接终止报文段(FIN),表示服务器已经处理完所有的数据。

客户端接收到报文段后,发送一个确认连接终止的报文段(ACK)作为回应,连接终止完成。

TCPIP基础-TCPIP

TCPIP基础-TCPIP

二TCP/IP一、TCP/IP简介●TCP/IP协议TCP协议最早由斯坦福大学的两名研究人员于1973年提出.1983年,TCP/IP被Unix 4.2BSD系统采用.随着Unix的成功,TCP/IP逐步成为Unix机器的标准网络协议.Internet的前身ARPANET最初使用NCP协议,由于TCP/IP协议具有跨平台特性,ARPANET的实验人员在经过对TCP/IP的改进以后,规定连入ARPANET的计算机都必须采用TCP/IP协议.随着ARPANET逐渐发展成...●标准工业协议●被大多数操作系统所支持●WIN 2000把TCP/IP作为标准的通信协议1、通信过程:以写信为例……●将数据转换成对方应用程序所能识别的格式:用对方的语言写信。

●将双方计算机地址及应用程序的端口号添加到数据当中:写上双方的地址及姓名。

●将数据发送到网上:将信投递到邮电局。

2、TCP/IP分层●应用层:提供应用程序与网络之间的接口,所有的应用程序都通过应用层来访问网络。

⏹HTTP:访问WEB网页⏹FTP:用于传输文件●传输层:保证数据无错的传输、标识应用程序⏹TCP:面向连接的协议,保证数据可靠的传输⏹UDP:无连接的协议,可用于传输电子邮件●INTERNET 层:寻址、将数据分组⏹IP:寻址⏹ARP:地址解析协议:利用目标计算机的IP地址查找其MAC地址。

⏹ICMP:INTERNET控制消息协议:诊断和报告网络上的数据传输错误。

⏹IGMP:INTERNET组管理协议:负责多路广播●网络接口层⏹负责把数据发送到网络电缆和从电缆接收数据⏹网卡和电缆工作在网络接口层3、识别应用程序(如何识别同一台计算机上多个参与通信的应用程序)●IP地址:32位二进制数●TCP/UDP端口号⏹应用程序的标识⏹0—65535之间⏹1024以下的端口已保留给常用的服务器端应用程序●SOCKET 套接字⏹IP地址+TCP或UDP端口⏹用于唯一识别应用程序(举例:地址+收信人的姓名)二、TCP/IP协议栈(一组共同工作的协议)1、TCP传输控制协议●面向连接的协议●提供可靠的数据传输●TCP的数据传输过程:◆将包分组,并为每个包指定一个序列号◆将包发送到网上并等待对方的确认信息◆若在一定时间内没有受到对方的确认信息,则重发包。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简要历史1973年,ARPANET核心组成员Vint Cerf和Bob Kahn发表了一篇里程碑论文,阐述了实现分组的端到端交付的协议。

这篇关于传输控制协议(TCP的论文包括:封装、数据报,以及网关的功能。

后来,TCP被划分为两个协议:传输控制协议(TCF)和网际互联协议(IP)。

IP处理数据报的路由选择,而TCP负责高层的一些功能,如分段、重装和差错检测。

这个用来进行网际互联的协议后来就被称为TCP/IP。

TCP/IP协议族简介TCP/IP协议族由5层组成:物理层、数据链路层、网络层、运输层和应用层。

前四层与OSI模型的前四层相对应,提供物理标准、网络接口、网际互联、以及运输功能。

而应用层与OSI模型中最高的三层相对应。

TCP/IP协议族中的各层包含了一些相对独立的协议。

在物理层和数据链路层,TCP/IP并没有定义任何协议。

在网络层TCP/IP支持网际互联协议(IP),而IP又由四个支撑协议组成:ARP、RARP ICMP和IGMP。

在传统上,TCP/IP协议族在运输层有两个运输协议:TCP和UDP,然而现在已经设计出一个新的运输层协议SCTP 以满足新的应用的需要。

IP是主机到主机的协议,即把分组从一个物理设备交付到另一个物理设备。

UDP 和TCP是运输机协议,负责把报文从一个进程(运行着的程序)交付到另一个进程。

编址使用TCP/IP协议的互联网使用3个等级的地址:物理(链路)地址、逻辑(IP)地址以及端口地址。

每一种地址属于TCP/IP体系结构中的特定层。

物理地址物理地址也叫链路地址,是结点的地址,由它所在的局域网或广域网定义。

物理地址包含在数据链路层使用的帧中。

以太网的地址是6字节(48位)长,通常用十六进制记法,如:07:01:02:01:2C:4B。

以太网的地址共3 种:单播、多播和广播。

在单播地址中的第一个字节的最低位0;在多播地址中的第一个字节的最低位是1。

广播地址是48 个1。

逻辑地址因特网的逻辑地址是32位地址,可以用来标志连接在因特网上的每个主机。

在因特网上没有两个主机有相同的IP地址。

同样,逻辑地址也可以是单播地址、多播地址和广播地址。

In ternet被各种路由器和网关设备分隔成很多网段,为了标识不同的网段,需要把32位的IP地址划分成网络号和主机号两部分,网络号相同的各主机位于同一网段,相互间可以直接通信,网络号不同的主机之间通信则需要通过路由器转发。

把所有IP地址分为五类,如下图1所示:图2-1A 类到B类到C 类到D 类到E类到在分类编址的 A 类、B 类、C 类地址中,IP 地址可划分为net-id (网络标识)和 host-id (主机标识)。

对于A 类地址,1字节定义net-id 而3字节定义host-id 。

对于B 类地址,2字节定义net-id ,2字节定义host-id 。

对于C 类地址,3字节定义net-id 而1字节定义host-id 。

D 类地址和E 类地址不划分 net-id 和host-id 。

网络地址是一个地址块的第一个地址,向因特网的其余部分定义这个网络。

路由器就是根据网络地址 来选择分组的路由。

若给出网络地址,我们就能够找出这个地址的类别、地址块以及这个地址块的地址范 围。

这种划分方案有很大的局限性,它对网络的划分是 flat 的而不是层级结构 (hierarchical) 的。

Internet 上的每 个路由器都必须掌握所有网络的信息,随着大量 C 类网络的出现,路由器需要检索的路由表越来越庞大,负担越来越重。

于是提出了新的划分方案,称为CIDR (Classless Interdomain Routing )。

网络号和主机号的划分需要用一个额外的子网掩码( sub netmask )来表示,而不能由IP 地址本身的 数值决定,也就是说,网络号和主机号的划分与这个 IP 地址是A 类、B 类还是C 类无关,因此称为Classless的。

这样,多个子网就可以汇总(summarize )成一个In ternet 上的网络。

IP 地址与子网掩码做与运算可以得到网络号,主机号从全0到全1就是子网的地址范围。

IP 地址和子网掩码还有一种更简洁的表示方法,例如/24,表示IP 地址为,子网掩码的 高24位是1,也就是。

目的地址为,表示本网络内部广播,路由器不转发这样的广播数据包。

目的地址的主机号为全 1,表示广播至某个网络的所有主机,例如目的地址表示广播至网络(假设子 网掩码为)。

端口地址 计算机是多进程设备,即可以在同一时间运行多个进程。

因特网通信的最终目的是使一个进程能够和 另一个进程通信。

为了能够同时发生这些事情,需要有一种方法对不同的进程打上标号,就是说这些进程 需要地址。

在TCP/IP 体系结构中,给一个进程指派的标号叫做端口地址。

TCP/IP 中的端口地址是16位长,通常用 10 进制数表示。

分层数据包介绍 以太网帧图 2-2DA 字段有6字节,是下一站的物理地址(也叫 MAC 地址)。

SA 字段有6字节,是前一站的物理地址。

类型字段有三种值,分别对应 IP 、 ARP 、 RARP 。

携带从上层协议封装起来的数据。

它的最小长度是 46字节,最大长度是 1500 字 节。

ARP RARP 的数据包长度不够 46字节,要在后面补填充位。

最大值1500称为以太网的最大传输单元(MTU ),如果一个数据包从以太网路由到链路上,数据 包的长度大于链路的MTU 了,则需要对数据包进行分片 差错检测信息, 4 字节。

图 2-3ARP 分组的格式如下:16位字段,用来定义运行 ARP 的链路层网络的类型。

以太网是类型 1。

16位字段,指要转换的地址类型。

0x0800位IP 地址。

8 位字段,定义以字节为单位的物理地址长度。

对以太网这个值为 6。

8位字段,定义以字节为单位的逻辑地址长度。

对 I Pv4协议这个值是4。

16位字段,定义分组的类型。

为 1表示ARP 请求,为2表示ARP 应答。

可变长度字段,定义发送端的物理地址。

定义发送端的逻辑地址。

目的地址( DA ) 源地址( SA ) 类型 数据CRC ARP 报文格式如上图 3 所示, 硬件类型 协议类型 硬件长度 协议长度 操作发送端硬件地址 发送端协议地址目标硬件地址目标协议地址 IP 数据报格式定义目标的物理地址。

道目标的物理地址。

定义目标的逻辑(如,对于 IP ) ARP 请求报文,这个字段是全0,因为发送端不知地址。

2-4如上图 4 所示, 版本( VER ) 首部长度( HLEN )IP 数据报的结构包括: 这个 4 位字段定义 这个 4位字段定义 长度是 20 字节,这个字段的值是 5 (5*4=20)。

当选项字段位最大值时,这个字IP 协议的版本。

IP 首部总长度,以4字节为单位计算。

当没有选项时,首部段的值是 15(15*4=60)。

TOS 位是4位子字段,共有5种不同的服务类型。

这个 16 位字段定义了以 字节 计的数据报总长度(首部加上数据) 传来的数据长度,可以从总长度减去首部长度。

总长度字段是16 位,因此 IP数据报的长度限制是 65535(216- 1)字节。

这个16位字段与源IP 地址一起唯一地定义这个数据报。

IP 协议使用一个 计数器 来标志数据报,当IP 协议发送数据时,就把这个计数器的当前值复制到标识字段中, 并加 1。

当数据报被 分片时,标识字段的值就 复制 到所有的分片中。

换言 之, 所有的分片具有相同的标识号 ,即原始数据报的标识号。

在终点重装数据 报时,终点就知道所有具有相同标识号的分片必须组装成一个数据报。

3 位字段。

第一位保留。

第二位为不分片位,为 1 表示不对数据报进行分片;为 0 表示在需要时对数据报进行分片。

第三位为分片位, 为 1 表示这个数据报不是 最后的分片,在其后还有分片;为 0 表示这个数据报是最后的分片。

分片偏移 (Fragment Offset )这个 13 位字段表示该分片在整个数据报中的相对位置, 以 8 字节为度量单位。

用来控制数据报所通过的最大路由跳数,这个生存时间的单位不是秒,而是 ( hop )。

服务类型( DS ) 总长度标识 (Identification)标志( Flags )生存时间( TTL ) 。

要找出上层 协议 检验和源地址 目的地址这个8位字段定义使用IP 层服务的高层协议。

女口: TCR UDP 、ICMP 和IGMP 等。

IP 分组中的检验和只在首部而不在数据部分进行。

因为,所有将数据封装在IP数据报中的高层协议, 都有覆盖整个分组的检验和; 其次,,每经过一个路由器, IP 数据报的首部就要改变一次,但数据部分不变。

因此检验和只对发生变化的 部分进行检验。

这个32位字段定义源点的IP 地址。

在IP 数据报从源主机发送到目的主机的时 间内,这个字段必须保持不变。

这个32位字段定义了终点的IP 地址。

在IP 数据报从源主机发送到目的主机的 时间内,这个字段必须保持不变。

ICMP 报文格式 类型代码检验和 (icmpchksum)8位字段,定义ICMP 报文的类型。

ICMP 报文的类型有:终点不可达、源点抑制、超 时、参数问题、改变路由、回送请求或回答、时间戳请求或回答、地址掩码请求或 回答、路由器询问和通告。

8 位字段,指明了发送这个特定报文类型的原因。

16位字段。

在ICMP 中,检验和的计算覆盖了整个报文(首部和数据)。

ICMP 回送请求或回答报文头格式如下图5所示: 图 2-5ICMP 超时报文头格式如下图 7所示:图2-7图2-8类型8位字段,定义了查询、成员关系报告、退出报告三种报文类型, 类型值分别为0x11、0x16、 0x17。

最大响应时间8位字段,定义了查询必须在多长时间内回答。

它的值以十分之一秒位单位。

在查询报文中这个值不是零,但在其他两种报文中则置为零。

检验和 组地址16位字段,检验和在 8字节的报文上计算。

在一般查询报文中这个字段的值为0,在特殊查询报文、成员关系报告报文以及退出报告报文中定义 groupid (组多播地址)。

UDP 用户数据报首部格式图2-9UDP 数据报格式如上图9所示。

用户数据报有8个字节的固定首部。

源端口号 16位字段,定义源主机上运行的进程所使用的端口号。

目的端口号 16位字段,定义目的主机上运行的进程使用的端口号。

长度 16位字段,定义了用户数据报的总长度,首部加上数据。

检验和16位字段,UDP 的检验和包括三部分:伪首部、UDP 首部以及从应用层来的数据。

位首部是IP 分组的首部的一部分,包括:源IP 地址、目的IP 地址、8位协议和16位UDP 总长度。

相关文档
最新文档