TCPIP协议规范及UIP处理流程模板.docx
《TCPIP协议规范及UIP处理流程模板.docx》由会员分享,可在线阅读,更多相关《TCPIP协议规范及UIP处理流程模板.docx(64页珍藏版)》请在咨信网上搜索。
1、目录一、简要历史3二、TCP/IP协议族32.1.简介32.2.编址32.2.1物理地址32.2.2逻辑地址42.2.3端口地址52.3.分层数据包介绍52.3.1以太网帧52.3.2ARP报文格式62.3.3IP数据报格式62.3.4ICMP报文格式72.3.5IGMP报文格式92.3.6UDP用户数据报首部格式92.3.7TCP报文段格式102.4.分层协议讲解112.4.1ARP和RARP122.4.2IP协议132.4.3ICMP协议132.4.4网际组管理协议(IGMP)162.4.5用户数据报(UDP)172.4.6传输控制协议(TCP)18三、UIP处理流程203.1.简介203
2、.2.层次结构203.2.1实现设备驱动与UIP对接需要的7个接口程序,定义在uip.h:213.2.2应用层要调用的函数,包括一些宏定义与函数,定义在uip.h:243.2.3UIP中所用到的主要结构体273.2.4uip的初始化与配置函数313.2.5Uip的主程序循环323.2.6主要的处理函数uip_process()343.2.7再来分析UIP_UDP_SEND_CONN,主要处理UDP报文的发送:373.2.8接下来,分析UIP_POLL_REQUEST383.2.9对定时器期满的处理流程UIP_TIMER403.2.10对UIP_UDP_TIMER的处理流程413.2.11原始套
3、接字和原始线程41一、 简明历史1973年,ARPANET关键组组员Vint Cerf 和 Bob Kahn 发表了一篇里程碑论文,叙述了实现分组端到端交付协议。这篇相关传输控制协议(TCP)论文包含:封装、数据报,和网关功效。 以后,TCP被划分为两个协议:传输控制协议(TCP)和网际互联协议(IP)。IP处理数据报路由选择,而TCP负责高层部分功效,如分段、重装和差错检测。这个用来进行网际互联协议以后就被称为TCP/IP。二、 TCP/IP协议族2.1. 介绍TCP/IP协议族由5层组成:物理层、数据链路层、网络层、运输层和应用层。前四层和OSI模型前四层相对应,提供物理标准、网络接口、网
4、际互联、和运输功效。而应用层和OSI模型中最高三层相对应。TCP/IP协议族中各层包含了部分相对独立协议。在物理层和数据链路层,TCP/IP并没有定义任何协议。在网络层TCP/IP支持网际互联协议(IP),而IP又由四个支撑协议组成:ARP、RARP、ICMP和IGMP。在传统上,TCP/IP协议族在运输层有两个运输协议:TCP和UDP,然而现在已经设计出一个新运输层协议SCTP以满足新应用需要。IP是主机到主机协议,即把分组从一个物理设备交付到另一个物理设备。UDP和TCP是运输机协议,负责把报文从一个进程(运行着程序)交付到另一个进程。2.2. 编址使用TCP/IP协议互联网使用3个等级地
5、址:物理(链路)地址、逻辑(IP)地址和端口地址。每一个地址属于TCP/IP体系结构中特定层。122.12.22.2.1 物理地址物理地址也叫链路地址,是结点地址,由它所在局域网或广域网定义。物理地址包含在数据链路层使用帧中。以太网地址是6字节(48位)长,通常见十六进制记法,如:07:01:02:01:2C:4B。以太网地址共3种:单播、多播和广播。在单播地址中第一个字节最低位0;在多播地址中第一个字节最低位是1。广播地址是48个1。2.2.2 逻辑地址因特网逻辑地址是32位地址,能够用来标志连接在因特网上每个主机。在因特网上没有两个主机有相同IP地址。一样,逻辑地址也能够是单播地址、多播地
6、址和广播地址。Internet被多种路由器和网关设备分隔成很多网段,为了标识不一样网段,需要把32位IP地址划分成网络号和主机号两部分,网络号相同各主机在同一网段,相互间能够直接通信,网络号不一样主机之间通信则需要经过路由器转发。把全部IP地址分为五类,以下图1所表示:图 2-1A类0.0.0.0到127.255.255.255B类128.0.0.0到191.255.255.255C类192.0.0.0到223.255.255.255D类224.0.0.0到239.255.255.255E类240.0.0.0到247.255.255.255在分类编址A类、B类、C类地址中,IP地址可划分为ne
7、t-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上每个路由器全部必需掌握全
8、部网络信息,伴随大量C类网络出现,路由器需要检索路由表越来越庞大,负担越来越重。于是提出了新划分方案,称为CIDR(Classless Interdomain Routing)。网络号和主机号划分需要用一个额外子网掩码(subnet mask)来表示,而不能由IP地址本身数值决定,也就是说,网络号和主机号划分和这个IP地址是A类、B类还是C类无关,所以称为Classless。这么,多个子网就能够汇总(summarize)成一个Internet上网络。IP地址和子网掩码做和运算能够得到网络号,主机号从全0到全1就是子网地址范围。IP地址和子网掩码还有一个更简练表示方法,比如140.252.20.
9、68/24,表示IP地址为140.252.20.68,子网掩码高24位是1,也就是255.255.255.0。目标地址为255.255.255.255,表示本网络内部广播,路由器不转发这么广播数据包。目标地址主机号为全1,表示广播至某个网络全部主机,比如目标地址192.168.10.255表示广播至192.168.10.0网络(假设子网掩码为255.255.255.0)。2.2.3 端口地址计算机是多进程设备,即能够在同一时间运行多个进程。因特网通信最终目标是使一个进程能够和另一个进程通信。为了能够同时发生这些事情,需要有一个方法对不一样进程打上标号,就是说这些进程需要地址。在TCP/IP体系
10、结构中,给一个进程指派标号叫做端口地址。TCP/IP中端口地址是16位长,通常见10进制数表示。2.3. 分层数据包介绍2.32.3.1 以太网帧图 2-2目标地址(DA) DA字段有6字节,是下一站物理地址(也叫MAC地址)。源地址(SA) SA字段有6字节,是前一站物理地址。类型 类型字段有三种值,分别对应IP、ARP、RARP。数据 携带从上层协议封装起来数据。它最小长度是46字节,最大长度是1500字节。ARP、RARP数据包长度不够46字节,要在后面补填充位。最大值1500称为以太网最大传输单元(MTU),假如一个数据包从以太网路由到链路上,数据包长度大于链路MTU了,则需要对数据包
11、进行分片CRC 差错检测信息,4字节。2.3.2 ARP报文格式图 2-3如上图3所表示,ARP分组格式以下:硬件类型 16位字段,用来定义运行ARP链路层网络类型。以太网是类型1。协议类型 16位字段,指要转换地址类型。0x0800位IP地址。硬件长度 8位字段,定义以字节为单位物理地址长度。对以太网这个值为6。协议长度 8位字段,定义以字节为单位逻辑地址长度。对IPv4协议这个值是4。操作 16位字段,定义分组类型。为1表示ARP请求,为2表示ARP应答。发送端硬件地址 可变长度字段,定义发送端物理地址。发送端协议地址 定义发送端逻辑地址。目标硬件地址 定义目标物理地址。对于ARP请求报文
12、,这个字段是全0,因为发送端不知道目标物理地址。目标协议地址 定义目标逻辑(如,IP)地址。2.3.3 IP数据报格式图 2-4如上图4所表示,IP数据报结构包含:版本(VER) 这个4位字段定义IP协议版本。首部长度(HLEN) 这个4位字段定义IP首部总长度,以4字节为单位计算。当没有选项时,首部长度是20字节,这个字段值是5(5*4=20)。当选项字段位最大值时,这个字段值是15(15*4=60)。服务类型(DS) TOS位是4位子字段,共有5种不一样服务类型。总长度 这个16位字段定义了以字节计数据报总长度(首部加上数据)。要找出上层传来数据长度,能够从总长度减去首部长度。总长度字段是
13、16位,所以IP数据报长度限制是65535(216 - 1)字节。标识(Identification) 这个16位字段和源IP地址一起唯一地定义这个数据报。IP协议使用一个计数器来标志数据报,当IP协议发送数据时,就把这个计数器目前值复制到标识字段中,并加1。当数据报被分片时,标识字段值就复制到全部分片中。换言之,全部分片含有相同标识号,即原始数据报标识号。在终点重装数据报时,终点就知道全部含有相同标识号分片必需组装成一个数据报。标志(Flags) 3位字段。第一位保留。第二位为不分片位,为1表示不对数据报进行分片;为0表示在需要时对数据报进行分片。第三位为分片位,为1表示这个数据报不是最终分
14、片,在其后还有分片;为0表示这个数据报是最终分片。分片偏移(Fragment Offset) 这个13位字段表示该分片在整个数据报中相对位置,以8字节为度量单位。生存时间(TTL) 用来控制数据报所经过最大路由跳数,这个生存时间单位不是秒,而是跳(hop)。协议 这个8位字段定义使用IP层服务高层协议。如:TCP、UDP、ICMP和IGMP等。检验和 IP分组中检验和只在首部而不在数据部分进行。因为,全部将数据封装在IP数据报中高层协议,全部有覆盖整个分组检验和;其次,每经过一个路由器,IP数据报首部就要改变一次,但数据部分不变。所以检验和只对发生改变部分进行检验。源地址 这个32位字段定义源
15、点IP地址。在IP数据报从源主机发送到目标主机时间内,这个字段必需保持不变。目标地址 这个32位字段定义了终点IP地址。在IP数据报从源主机发送到目标主机时间内,这个字段必需保持不变。2.3.4 ICMP报文格式类型 8位字段,定义ICMP报文类型。ICMP报文类型有:终点不可达、源点抑制、超时、参数问题、改变路由、回送请求或回复、时间戳请求或回复、地址掩码请求或回复、路由器问询和通告。代码 8位字段,指明了发送这个特定报文类型原因。检验和(icmpchksum) 16位字段。在ICMP中,检验和计算覆盖了整个报文(首部和数据)。ICMP回送请求或回复报文头格式以下图5所表示:图2-5ICMP
16、终点不可达报文头格式以下图6所表示:图2-6ICMP超时报文头格式以下图7所表示:图2-72.3.5 IGMP报文格式图2-8类型 8位字段,定义了查询、组员关系汇报、退出汇报三种报文类型,类型值分别为0x11、0x16、0x17。最大响应时间 8位字段,定义了查询必需在多长时间内回复。它值以十分之一秒位单位。在查询报文中这个值不是零,但在其它两种报文中则置为零。检验和 16位字段,检验和在8字节报文上计算。组地址 在通常查询报文中这个字段值为0,在特殊查询报文、组员关系汇报报文和退出汇报报文中定义groupid(组多播地址)。2.3.6 UDP用户数据报首部格式图2-9UDP数据报格式如上图
17、9所表示。用户数据报有8个字节固定首部。源端口号 16位字段,定义源主机上运行进程所使用端口号。目标端口号 16位字段,定义目标主机上运行进程使用端口号。长度 16位字段,定义了用户数据报总长度,首部加上数据。检验和 16位字段,UDP检验和包含三部分:伪首部、UDP首部和从应用层来数据。位首部是IP分组首部一部分,包含:源IP地址、目标IP地址、8位协议和16位UDP总长度。位首部能够确保在IP首部受到损伤时,用户数据报能够交付到正确主机。协议字段加入,能够确保这个分组是属于UDP而不是属于TCP。2.3.7 TCP报文段格式图2-10如上图10所表示,TCP报文段结构包含:源端口地址 这个
18、16位字段定义发送报文段应用程序端口号。目标端口地址 这个16位字段定义了接收该报文段应用程序端口号。序号 这个32位字段定义了指派给本报文段第一个数据字节一个号。为了确保连通性,要发送每一个字节全部要编号。序号告诉终点,这个序列中哪一个字节是报文段中第一个字节。在连接建立时,每一方使用随机数产生器产生初始序号(ISN)。确定号 32位字段,定义了报文段接收端期望从对方接收下一个序号。假如报文段接收端成功地发送了对方发来序号x,它就把确定号定义为x+1。首部长度(tcpoffset) 4位字段,指出TCP首部共有多少个4字节字。即TCP数据在IP数据中偏移大小。同IP首部长度,能够在5 至15
19、之间。 保留位 该6位字段留待以后使用。控制/标志位 该字段定义了6种不一样控制位或标志,在同一时间可设置一位或多位标志。表2-1 控制字段各标志说明(从高位到低位)标志说 明URG紧急指针字段值有效ACK确定字段值有效PSH推送数据RST连接必需复位SYN在连接建立时对序号进行同时FIN终止连接窗口值 该字段定义接收方必需维持窗口值(以字节为单位)。注意,该字段是16位长,所以窗口值最大长度为65535字节。这个值由接收端来确定,发送端必需服从接收端决定。检验和 这个16位字段包含检验和,TCP使用检验和是强制性。紧急指针 当紧急标志位置位时,这个16位字段才有效,这时报文段中包含紧急数据。
20、紧急指针定义了一个数,把这个数加到序号上就得出报文段数据部分中最终一个紧急字节。选项 包含无操作(NOP)、最大报文段长度(MSS)、窗口扩大因子、时间戳等。2.4. 分层协议讲解总来说,TCP/IP协议多路选择过程能够表示为下图2-11:图2-112.42.4.1 ARP和RARP2.4.1.1 地址解析协议ARP在任何时候,当主机或路由器有数据报要发送给另一个主机或路由器时,它必需有接收端逻辑(IP)地址。不过IP数据报必需封装成帧才能经过物理网络。这就表示,发送端必需有接收端物理地址,所以需要有从逻辑地址到物理地址映射。地址解析协议(ARP)用来把IP 地址和其物理地址联络起来。任何时候
21、当主机或路由器需要找出这个网络上另一个主机或路由器物理地址时,它就发送ARP查询分组。这个分组包含发送端物理地址和IP地址,和接收端IP地址。因为发送端不知道接收端物理地址,查询就在网络上广播。比如,数据包要发送给IP地址为192.168.0.1主机,过程以下:源主机发出ARP请求,问询“IP地址是192.168.0.1主机硬件地址是多少”,并将这个请求广播到当地网段(以太网帧首部硬件地址填FF:FF:FF:FF:FF:FF表示广播),目标主机接收到广播ARP请求,发觉其中IP地址和本机相符,则发送一个ARP应答数据包给源主机,将自己硬件地址填写在应答包中。ARP报文格式如前所述。ARP软件包
22、由5个构件组成: 高速缓存表: 每台主机全部维护一个ARP高速缓存表,因为高速缓存表空间很有限,所以缓存表中表项有过期时间(通常为20分钟),假如20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来取得目标主机硬件地址。 队列: 队列用来在ARP试图解析硬件地址时保留IP分组。输出模块把未解析分组发送到对应队列,输入模块从一个队列中拿走一个分组,并连同解析出物理地址一同发送给数据链路层来传输。 输出模块: 输出模块从IP软件等候IP分组。输出模块检验高速缓存表,寻求是否有某个项目对应于这个分组目标IP地址。这个IP分组目标IP地址必需和这个项目标协议地址相匹配。 输入模块: 输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TCPIP 协议 规范 UIP 处理 流程 模板
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。