TCPIP协议规范及UIP处理流程.docx
- 文档编号:3205494
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:48
- 大小:49.95KB
TCPIP协议规范及UIP处理流程.docx
《TCPIP协议规范及UIP处理流程.docx》由会员分享,可在线阅读,更多相关《TCPIP协议规范及UIP处理流程.docx(48页珍藏版)》请在冰豆网上搜索。
TCPIP协议规范及UIP处理流程
简要历史
1973年,ARPANET核心组成员VintCerf和BobKahn发表了一篇里程碑论文,阐述了实现分组的端到端交付的协议。
这篇关于传输控制协议(TCP的论文包括:
封装、数据报,以及网关的功能。
后来,TCP被划分为两个协议:
传输控制协议(TCF)和网际互联协议(IP)。
IP处理数据报的路由选
择,而TCP负责高层的一些功能,如分段、重装和差错检测。
这个用来进行网际互联的协议后来就被称为TCP/IP。
TCP/IP协议族
简介
TCP/IP协议族由5层组成:
物理层、数据链路层、网络层、运输层和应用层。
前四层与OSI模型的前四层
相对应,提供物理标准、网络接口、网际互联、以及运输功能。
而应用层与OSI模型中最高的三层相对应。
TCP/IP协议族中的各层包含了一些相对独立的协议。
在物理层和数据链路层,TCP/IP并没有定义任何协议。
在网络层TCP/IP支持网际互联协议(IP),而IP又由四个支撑协议组成:
ARP、RARPICMP和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地址。
同样,逻辑地址也可以是单播地址、多播地址和广播地址。
Internet被各种路由器和网关设备分隔成很多网段,为了标识不同的网段,需要把32位的IP地址划分
成网络号和主机号两部分,网络号相同的各主机位于同一网段,相互间可以直接通信,网络号不同的主机之间通信则需要通过路由器转发。
把所有IP地址分为五类,如下图1所示:
图2-1
A类到
B类到
C类到
D类到
E类到
目的地址(DA)
源地址(SA)类型
数据
CRC
ARP报文格式
在分类编址的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(ClasslessInterdomainRouting)。
网络号和主机号的划分需要用一个额外的子网掩码(subnetmask)来表示,而不能由IP地址本身的
数值决定,也就是说,网络号和主机号的划分与这个IP地址是A类、B类还是C类无关,因此称为Classless
的。
这样,多个子网就可以汇总(summarize)成一个Internet上的网络。
IP地址与子网掩码做与运算可以得到网络号,主机号从全0到全1就是子网的地址范围。
IP地址和子
网掩码还有一种更简洁的表示方法,例如/24,表示IP地址为,子网掩码的高24位是1,也就是。
目的地址为,表示本网络内部广播,路由器不转发这样的广播数据包。
目的地址的主机号为全1,表示广播至某个网络的所有主机,例如目的地址表示广播至网络(假设子网掩码为)。
端口地址计算机是多进程设备,即可以在同一时间运行多个进程。
因特网通信的最终目的是使一个进程能够和另一个进程通信。
为了能够同时发生这些事情,需要有一种方法对不同的进程打上标号,就是说这些进程需要地址。
在TCP/IP体系结构中,给一个进程指派的标号叫做端口地址。
TCP/IP中的端口地址是16位长,通常
用10进制数表示。
分层数据包介绍
以太网帧
图2-2
DA字段有6字节,是下一站的物理地址(也叫MAC地址)。
SA字段有6字节,是前一站的物理地址。
类型字段有三种值,分别对应IP、ARP、RARP。
携带从上层协议封装起来的数据。
它的最小长度是46字节,最大长度是1500字节。
ARPRARP的数据包长度不够46字节,要在后面补填充位。
最大值1500称
为以太网的最大传输单元(MTU),如果一个数据包从以太网路由到链路上,数据包的长度大于链路的MTU了,则需要对数据包进行分片差错检测信息,4字节。
图2-3
ARP分组的格式如下:
16位字段,用来定义运行ARP的链路层网络的类型。
以太网是类型1。
16位字段,指要转换的地址类型。
0x0800位IP地址。
8位字段,定义以字节为单位的物理地址长度。
对以太网这个值为6。
8位字段,定义以字节为单位的逻辑地址长度。
对IPv4协议这个值是4。
如上图3所示,
硬件类型协议类型硬件长度协议长度操作
发送端硬件地址
发送端协议地址
16位字段,定义分组的类型。
为1表示ARP请求,为2表示ARP应答。
可变长度字段,定义发送端的物理地址。
定义发送端的逻辑地址。
目标硬件地址
目标协议地址
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表示这个数据报是最后的分片。
分片偏移(FragmentOffset)这个13位字段表示该分片在整个数据报中的相对位置,以8字节为
度量单位。
用来控制数据报所通过的最大路由跳数,这个生存时间的单位不是秒,而是
(hop)。
服务类型(DS)总长度
标识(Identification)
标志(Flags)
生存时间(
TTL)
。
要找出上层
协议检验和
源地址
目的地址
这个8位字段定义使用IP层服务的高层协议。
女口:
TCRUDP、ICMP和IGMP等。
IP分组中的检验和只在首部而不在数据部分进行。
因为,所有将数据封装在IP
数据报中的高层协议,都有覆盖整个分组的检验和;其次,,每经过一个路由器,IP数据报的首部就要改变一次,但数据部分不变。
因此检验和只对发生变化的部分进行检验。
这个32位字段定义源点的IP地址。
在IP数据报从源主机发送到目的主机的时间内,这个字段必须保持不变。
这个32位字段定义了终点的IP地址。
在IP数据报从源主机发送到目的主机的时间内,这个字段必须保持不变。
ICMP报文格式类型
代码
检验和(icmpchksum)
8位字段,定义ICMP报文的类型。
ICMP报文的类型有:
终点不可达、源点抑制、超时、参数问题、改变路由、回送请求或回答、时间戳请求或回答、地址掩码请求或回答、路由器询问和通告。
8位字段,指明了发送这个特定报文类型的原因。
16位字段。
在ICMP中,检验和的计算覆盖了整个报文(首部和数据)。
ICMP回送请求或回答报文头格式如下图5所示:
图2-5
图2-6
ICMP超时报文头格式如下图7所示:
IGMP报文格式
图2-7
图2-8
类型
8位字段,定义了查询、成员关系报告、退出报告三种报文类型,类型值分别为0x11、
0x16、0x17。
最大响应时间
8位字段,定义了查询必须在多长时间内回答。
它的值以十分之一秒位单位。
在查询
报文中这个值不是零,但在其他两种报文中则置为零。
检验和
组地址
16位字段,检验和在8字节的报文上计算。
在一般查询报文中这个字段的值为0,在特殊查询报文、成员关系报告报文以及退出
报告报文中定义groupid(组多播地址)。
UDP用户数据报首部格式
图2-9
UDP数据报格式如上图9所示。
用户数据报有8个字节的固定首部。
源端口号16位字段,定义源主机上运行的进程所使用的端口号。
目的端口号16位字段,定义目的主机上运行的进程使用的端口号。
长度16位字段,定义了用户数据报的总长度,首部加上数据。
检验和16位字段,UDP的检验和包括三部分:
伪首部、UDP首部以及从应用层来的数据。
位首部是IP分组的首部的一部分,包括:
源IP地址、目的IP地址、8位协议和16
位UDP总长度。
位首部可以保证在IP首部受到损伤时,用户数据报可以交付到正确的主机。
协议字段的加入,可以确保这个分组是属于UDP而不是属于TCP
TCP报文段格式
表2-1控制字段各标志说明(从高位到低位)
图2-10
如上图10所示,TCP报文段的结构包括:
源端口地址目的端口地址序号
这个16位字段定义发送报文段的应用程序端口号。
这个16位字段定义了接收该报文段的应用程序端口号。
这个32位字段定义了指派给本报文段第一个数据字节的一个号。
为了保证连通性,要发送的每一个字节都要编号。
序号告诉终点,这个序列中的哪一个字节是报文段中的第一个字节。
在连接建立时,每一方使用随机数产生器产生初始序号(ISN)。
确认号
32位字段,定义了报文段接收端期望从对方
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TCPIP 协议 规范 UIP 处理 流程