版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络技术顾军,张瑾计算机学院TCPIP工作原理第1页地址解析协议ARP(AddressResolutionProtocol)逆地址解析协议RARP(ReverseAddressResolutionProtocol)Internet控制报文协议ICMP(InternetControlMessageProtocol)网际层各种应用层协议
网络接口层(TELNET,FTP,SMTP等)物理硬件运输层TCP,UDP应用层ICMPIPRARPARP与各种网络接口IGMPInternet组管理协议IGMP(InternetGroupManagementProtocol)第4章TCP/IP工作原理TCPIP工作原理第2页4.7网际控制报文协议ICMPICMP(InternetControlMessageProtocol)允许主机或路由器汇报差错情况和提供相关异常情况汇报,以降低分组丢失。TCPIP工作原理第3页IP和ICMP关系IP层提供尽力而为传递服务,出现并检测到差错时:丢弃差错分组,并发送一个差错汇报报文ICMP。有差错并不发送差错报文,如检验和错误、ICMP分组错误等。ICMP报文被封装在IP分组中进行传递。
TCPIP工作原理第4页ICMP差错汇报报文数据字段内容首部IP数据报ICMP前8字节装入ICMP报文IP数据报IP数据报首部ICMP差错汇报报文8字节收到IP数据报IP数据报首部8字节ICMP差错汇报报文IP数据报数据字段TCPIP工作原理第5页类型代码校验和数据区1 2 3 4CHECKSUM:整个ICMP
报文校验和算法与IP
分组头校验和算法相同CODE:提供报文类型详细信息TYPE:指出ICMP报文类型3:终点不可达 11:分组超时12:分组参数错
4:源点抑制 5:路由重定向8:回应请求 0:回应应答13:时间戳请求 14:时间戳应答17:地址掩码请求 18:地址掩码应答ICMP报文被分成两类:差错汇报报文和问询报文。TCPIP工作原理第6页ICMP差错汇报差错汇报是单方向:路由器信源主机分组参数错TYPE=12分组超时TYPE=11ICMP差错汇报能力是有限ICMP实现网络中诊疗信息交换,并不能提升IP分组传输可靠性,仅仅是汇报了网络问题ICMP提供差错汇报功效,但并没有严格要求对于某种差错应该采取何种差错处理办法路由器并不能发觉全部传输错误TCPIP工作原理第7页类型11代码0~1校验和未用全0犯错分组IP头+前64位数据0:TTL超时
1:分片重组超时 1B 1B 2B 4B类型12代码0~1校验和未用全0犯错分组IP头+前64位数据0:某参数犯错
1:缺乏某参数或选项 指针1B 1B 2B 1B 3B分组参数错TYPE=12分组超时TYPE=11TCPIP工作原理第8页拥塞控制与ICMP源抑制报文源抑制(SourceQuench)经过限制信源主机发送IP分组速率来降低拥塞方法源抑制三个阶段:路由器发觉拥塞,并向源端发送ICMP源抑制报文信源主机逐步降低发往目标主机分组发送速率拥塞解除后,信源主机逐步恢复原有分组发送速率源抑制报文格式类型4代码0校验和未用全0抑制分组IP头+前64位数据1B 1B 2B 4BTCPIP工作原理第9页选路控制与ICMP重定向机制主机取得路由信息方式——ICMP重定向机制在网络中,选路由路由器/主机上路由表决定路由器利用路由协议、经过路由器之间定时路由信息交换来取得网络中路由信息主机则经过ICMP重定向报文来取得路由信息ICMP重定向机制目标:使主机能维持一个动态、小规模、最优路由表机制:在转发分组时路由器同时检验被转发分组,一旦发觉其使用非最优通路,则向信源发送重定向报文,指出去往目标端最正确路径重定向机制用于同一个网络中主机和路由器之间TCPIP工作原理第10页类型5代码0~3校验和路由器IP地址重定向分组IP头+前64位数据1B 1B 2B 4B0:对网络重定向 2:对服务类型和网络重定向1:对主机重定向 3:对服务类型和主机重定向TCPIP工作原理第11页不应发送ICMP差错汇报报文
几个情况对ICMP差错汇报报文不再发送ICMP差错汇报报文。对第一个分片数据报片全部后续数据报片都不发送ICMP差错汇报报文。对含有多播地址数据报都不发送ICMP差错汇报报文。对含有特殊地址(如
或)数据报不发送ICMP差错汇报报文。TCPIP工作原理第12页ICMP请求/应答报文地址掩码请求与应答(TYPE=17/18)回应(Echo)请求/应答[ping](TYPE=8/0)时间戳请求与应答(TYPE=13/14)类型17/18代码0校验和标识符17:Request18:Reply1B 1B 2B 2B 2B 4B序列号地址掩码地址掩码请求与应答TCPIP工作原理第13页类型8/0代码0校验和标识符任选数据8:EchoRequest0:EchoReply1B 1B 2B 2B 2B序列号用于发送者与应答着之间请求与应答匹配回应(Echo)请求/应答[ping]TCPIP工作原理第14页类型13/14代码0校验和标识符13:Request14:Reply1B 1B 2B 2B2B 4B 4B 4B序列号信源主机发出请求时间戳初始时间戳接收时间戳发送时间戳目标主机收到请求时间戳目标主机发送回应时间戳时间戳请求与应答TCPIP工作原理第15页PING(PacketInterNetGroper)PING使用了ICMP回送请求与回送回答测试两个主机之间连通性。PING是应用层直接使用网络层ICMP例子,它没有经过运输层TCP或UDP。
TCPIP工作原理第16页Traceroute应用举例TCPIP工作原理第17页共有90个主机接收视频节目R1R3R4R2视频服务器M………30个30个30个30个30个30个90个不使用多播时需要发送90次单播4.8IP多播TCPIP工作原理第18页多播1个1个多播多播多播可显著地降低
网络中资源消耗多播组组员共有90个R1R3R4R2视频服务器M………1个1个1个1个1个发送1次多播复制TCPIP工作原理第19页IP多播一些特点(1)多播使用组地址——IP使用D类地址支持多播。多播地址只能用于目标地址,而不能用于源地址。(2)永久组地址——由因特网号码指派管理局IANA负责指派。(3)动态组组员(4)使用硬件进行多播TCPIP工作原理第20页在局域网上进行硬件多播因特网号码指派管理局IANA拥有以太网地址块高24位为00-00-5E。所以TCP/IP协议使用以太网多播地址块范围是:从00-00-5E-00-00-00
到00-00-5E-FF-FF-FFD类IP地址可供分配有28位,在这28位中前5位不能用来组成以太网硬件地址。
TCPIP工作原理第21页D类IP地址
与以太网多播地址映射关系0000000000000001010111100111008162431D类IP地址这5
位不使用48位以太网地址01005E表示多播最低23
位来自D类IP地址TCPIP工作原理第22页网际组管理协议IGMP
和多播路由选择协议
为了使路由器知道多播组组员信息,需要利用网际组管理协议IGMP(InternetGroupManagementProtocol)。连接在局域网上多播路由器还必须和因特网上其它多播路由器协同工作,方便把多播数据报用最小代价传送给全部组组员。这就需要使用多播路由选择协议。TCPIP工作原理第23页网际组管理协议IGMP1989年公布RFC1112(IGMPv1)早已成为了因特网标准协议。1997年公布RFC2236(IGMPv2,提议标准)对IGMPv1进行了更新。
年10月公布了RFC3376(IGMPv3,提议标准),宣告RFC2236(IGMPv2)是陈旧。TCPIP工作原理第24页IGMP是整个网际协议IP
一个组成部分和ICMP相同,IGMP使用IP数据报传递其报文(即IGMP报文加上IP首部组成IP数据报),但它也向IP提供服务。所以,我们不把IGMP看成是一个单独协议,而是属于整个网际协议IP一个组成部分。TCPIP工作原理第25页IGMP可分为两个阶段第一阶段:当某个主机加入新多播组时,该主机应向多播组多播地址发送IGMP报文,申明自己要成为该组组员。当地多播路由器收到IGMP报文后,将组组员关系转发给因特网上其它多播路由器。TCPIP工作原理第26页IGMP可分为两个阶段第二阶段:因为组组员关系是动态,所以当地多播路由器要周期性地探询当地局域网上主机,方便知道这些主机是否还继续是组组员。只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃。但一个组在经过几次探询后依然没有一个主机响应,则不再将该组组员关系转发给其它多播路由器。TCPIP工作原理第27页IGMP使多播路由器
知道多播组组员信息4263多播组23IGMPIGMPIGMPIGMPR1R4R3R2TCPIP工作原理第28页IGMP采取一些详细办法在主机和多播路由器之间全部通信都是使用IP多播。多播路由器在探询组组员关系时,只需要对全部组发送一个请求信息问询报文,而不需要对每一个组发送一个问询报文。默认问询速率是每125秒发送一次。当同一个网络上连接有几个多播路由器时,它们能够快速和有效地选择其中一个来探询主机组员关系。TCPIP工作原理第29页IGMP采取一些详细办法(续)在IGMP问询报文中有一个数值N,它指明一个最长响应时间(默认值为10秒)。当收到问询时,主机在0到N之间随机选择发送响应所需经过时延。对应于最小时延响应最先发送。同一个组内每一个主机都要监听响应,只要有本组其它主机先发送了响应,自己就能够不再发送响应了。TCPIP工作原理第30页IGMP当地使用范围IGMP并非在因特网范围内对全部多播组组员进行管理协议。IGMP不知道
IP多播组包含组员数,也不知道这些组员都分布在哪些网络上。IGMP协议是让连接在当地局域网上多播路由器知道本局域网上是否有主机(严格讲,是主机上某个进程)参加或退出了某个多播组。TCPIP工作原理第31页多播路由选择协议
比单播路由选择协议复杂得多多播转发必须动态地适应多播组组员改变(这时网络拓扑并未发生改变)。请注意,单播路由选择通常是在网络拓扑发生改变时才需要更新路由。多播路由器在转发多播数据报时,不能仅仅依据多播数据报中目标地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。多播数据报能够由没有加入多播组主机发出,也能够经过没有组组员接入网络。TCPIP工作原理第32页4.9运输层54321运输层提供给用进程间逻辑通信主机A主机B应用进程应用进程路由器1路由器2AP1LAN2WANAP2AP3AP4IP层LAN1AP1AP2AP4端口端口54321IP协议作用范围运输层协议TCP和UDP作用范围AP3TCPIP工作原理第33页应用进程之间通信两个主机进行通信实际上就是两个主机中应用进程相互通信。应用进程之间通信又称为端到端通信。运输层一个很主要功效就是复用和分用。应用层不一样进程报文经过不一样端口向下交到运输层,再往下就共用网络层提供服务。“运输层提供给用进程间逻辑通信”。“逻辑通信”意思是:运输层之间通信好像是沿水平方向传送数据。但实际上这两个运输层之间并没有一条水平方向物理连接。TCPIP工作原理第34页运输层协议和网络层协议主要区分应用进程…应用进程…IP协议作用范围(提供主机之间逻辑通信)TCP和UDP协议作用范围(提供进程之间逻辑通信)因特网TCPIP工作原理第35页两种不一样运输协议运输层向高层用户屏蔽了下面网络关键细节(如网络拓扑、所采取路由选择协议等),它使应用进程看见就是好像在两个运输层实体之间有一条端到端逻辑通信信道。当运输层采取面向连接TCP协议时,尽管下面网络是不可靠(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工可靠信道。当运输层采取无连接UDP协议时,这种逻辑通信信道是一条不可靠信道。TCPIP工作原理第36页TCP/IP体系中运输层TCPUDPIP应用层与各种网络接口运输层TCPIP工作原理第37页运输层端口运行在计算机中进程是用进程标识符来标志。运行在应用层各种应用进程却不应该让计算机操作系统指派它进程标识符。这是因为在因特网上使用计算机操作系统种类很多,而不一样操作系统又使用不一样格式进程标识符。为了使运行不一样操作系统计算机应用进程能够相互通信,就必须用统一方法对TCP/IP体系应用进程进行标志。TCPIP工作原理第38页端口号(protocolportnumber)
简称为端口(port)处理这个问题方法就是在运输层使用协议端口号(protocolportnumber),或通常简称为端口(port)。即使通信终点是应用进程,但我们能够把端口想象是通信终点,因为我们只要把要传送报文交到目标主机某一个适当目标端口,剩下工作(即最终交付目标进程)就由TCP来完成。TCPIP工作原理第39页
ABCIP=7端口500端口501IP=7端口500IP=25端口23连接端口用一个16位端口号进行标志。端口号只含有当地意义,即端口号只是为了标志本计算机应用层中各进程。在因特网中不一样计算机相同端口号是没有联络。TCPIP工作原理第40页熟知(公认)端口惯用应用服务端口(0-1023)()()()()()()11116169252123UDPTCPTELNETFTPSMTPTFTPSNMPRPC应用层运输层网际层IPTCPIP工作原理第41页4.9.1用户数据报协议UDPUDP只在IP数据报服务之上增加了极少一点功效,即端口功效和差错检测功效。即使UDP用户数据报只能提供不可靠交付,但UDP在一些方面有其特殊优点。实时播放语音数据传输在运输层必须使用UDP。TCPIP工作原理第42页UDP数据报帧IP头部UDP头部UDP头部应用层报文应用层报文应用层报文IP头部UDP头部应用层报文UDP数据报封装TCPIP工作原理第43页UDP首部格式伪首部源端口目端口长度检验和数据首部UDP长度源IP地址目IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报TCPIP工作原理第44页伪首部源端口目端口长度检验和数据首部UDP长度源IP地址目IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报用户数据报UDP有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是两个字节。TCPIP工作原理第45页伪首部源端口目端口长度检验和数据首部UDP长度源IP地址目IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报在计算检验和时,暂时把“伪首部”和UDP用户数据报连接在一起。伪首部仅仅是为了计算检验和。TCPIP工作原理第46页计算UDP检验和例子1001100100010011→153.190000100001101000→8.1041010101100000011→171.30000111000001011→14.110000000000010001→0和170000000000001111→150000010000111111→10870000000000001101→130000000000001111→150000000000000000→0(检验和)0101010001000101→数据0101001101010100→数据0100100101001110→数据0100011100000000→数据和0(填充)1001011011101101→求和得出结果0110100100010010→检验和04112字节伪首部8字节UDP首部7字节数据填充按二进制反码运算求和将得出结果求反码全0171510871315全0数据数据数据数据数据数据数据全0TCPIP工作原理第47页UDP基于端口分用IP层UDP数据报抵达端口2端口3端口1UDP分用TCPIP工作原理第48页4.9.2传输控制协议TCPTCP是面向连接运输层协议。每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点(一对一)。TCP提供可靠交付服务。
TCP提供全双工通信。面向字节流。TCPIP工作原理第49页TCP面向流概念768H发送TCP报文段发送方接收方把字节写入发送缓存从接收缓存读取字节应用进程应用进程1230181716151419202145131211H109H加上TCP首部组成TCP报文段TCPTCP字节流字节流H表示TCP报文段首部x表示序号为x数据字节TCP连接TCPIP工作原理第50页TCP连接TCP使用“连接”(而不但仅是“端口”)作为最基本抽象,同时将TCP连接端点称为插口(socket),或套接字、套接口。插口和端口、IP地址关系是:IP地址3端口号15003,1500插口(socket)TCPIP工作原理第51页套接字(socket)
套接字socket=(IP地址:端口号)每一条TCP连接唯一地被通信两端两个端点(即两个套接字)所确定。即:
TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}TCPIP工作原理第52页帧IP头部TCP头部TCP头部应用数据应用数据应用数据IP头部TCP头部应用数据TCP报文段segmentTCP报文格式TCPIP工作原理第53页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充源端口和目标端口字段——各占2字节。端口是运输层与应用层服务接口。运输层复用和分用功效都要经过端口才能实现。TCPIP工作原理第54页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充序号字段——占4字节。TCP连接中传送数据流中每一个字节都编上一个序号。序号字段值则指是本报文段所发送数据第一个字节序号。TCPIP工作原理第55页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充确认号字段——占4字节,是期望收到对方下一个报文段数据第一个字节序号。TCPIP工作原理第56页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充数据偏移——占4bit,它指出TCP报文段数据起始处距离TCP报文段起始处有多远。“数据偏移”单位不是字节而是32bit字(4字节为计算单位)。TCPIP工作原理第57页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充保留字段——占6bit,保留为今后使用,但当前应置为0。TCPIP工作原理第58页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充紧急比特URG——当URG1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级数据)。TCPIP工作原理第59页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充确认比特ACK——只有当ACK1时确认号字段才有效。当ACK0时,确认号无效。TCPIP工作原理第60页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充推送比特PSH(PuSH)——接收TCP收到推送比特置1报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。TCPIP工作原理第61页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充复位比特RST(ReSeT)——当RST1时,表明TCP连接中出现严重差错(如因为主机瓦解或其它原因),必须释放连接,然后再重新建立运输连接。TCPIP工作原理第62页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充同时比特SYN——同时比特SYN置为1,就表示这是一个连接请求或连接接收报文。TCPIP工作原理第63页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充终止比特FIN(FINal)——用来释放一个连接。当FIN1时,表明此报文段发送端数据已发送完成,并要求释放运输连接。TCPIP工作原理第64页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充窗口字段——占2字节。窗口字段用来控制对方发送数据量,单位为字节。TCP连接一端依据设置缓存空间大小确定自己接收窗口大小,然后通知对方以确定对方发送窗口上限。TCPIP工作原理第65页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充检验和——占2字节。检验和字段检验范围包含首部和数据这两部分。在计算检验和时,要在TCP报文段前面加上12字节伪首部。TCPIP工作原理第66页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充紧急指针字段——占16bit。紧急指针指出在本报文段中紧急数据最终一个字节序号。
TCPIP工作原理第67页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充选项字段——长度可变。TCP最初只要求了一个选项,即最大报文段长度
MSS。MSS告诉对方TCP:“我缓存所能接收报文段数据字段最大长度是MSS个字节。”MSS(MaximumSegmentSize)是TCP报文段中数据字段最大长度。数据字段加上TCP首部才等于整个TCP报文段。TCPIP工作原理第68页其它选项窗口扩大选项——占3字节,其中有一个字节表示移位值S。新窗口值等于TCP首部中窗口位数增大到(16+S),相当于把窗口值向左移动S位后取得实际窗口大小。时间戳选项——占10字节,其中最主要字段时间戳值字段(4字节)和时间戳回送回答字段(4字节)。选择确认选项——只传送缺乏数据而不重传已经正确抵达接收方数据。需要提供接收到到字节块边界信息。TCPIP工作原理第69页TCP首部20字节固定首部目端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充填充字段——这是为了使整个首部长度是4字节整数倍。TCPIP工作原理第70页4.9.3TCP运输连接管理TCPIP工作原理第71页运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接管理就是使运输连接建立和释放都能正常地进行。连接建立过程中要处理以下三个问题:要使每一方能够确知对方存在。要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。能够对运输实体资源(如缓存大小,连接表中项目等)进行分配。
1.运输连接三个阶段TCPIP工作原理第72页SYN=1,seq=xCLOSEDCLOSED主动打开被动打开AB客户服务器A
TCP向B发出连接请求报文段,其首部中同时位SYN=1,并选择序号seq=x,表明传送数据时第一个数据字节序号是x。(1)TCP连接建立TCPIP工作原理第73页SYN=1,seq=xCLOSEDCLOSED主动打开被动打开AB客户服务器SYN=1,ACK=1,seq=y,ack=x1B
TCP收到连接请求报文段后,如同意,则发回确认。
B在确认报文段中应使SYN=1,使ACK=1,其确认号ack=x1,自己选择序号seq=y。TCPIP工作原理第74页SYN=1,seq=xACK=1,seq=x+1,ack=y1CLOSEDCLOSED主动打开被动打开AB客户服务器SYN=1,ACK=1,seq=y,ack=x1A收到此报文段后向B给出确认,其ACK=1,确认号ack=y1。
A
TCP通知上层应用进程,连接已经建立。TCPIP工作原理第75页SYN=1,seq=xACK=1,seq=x+1,ack=y1CLOSEDCLOSED数据传送主动打开被动打开AB客户服务器SYN=1,ACK=1,seq=y,ack=x1B
TCP收到主机A确实认后,也通知其上层应用进程:TCP连接已经建立。TCPIP工作原理第76页(2)TCP数据传送TCPIP工作原理第77页(a)无差错情况A发送M1确认M1B发送M2发送M3确认M2确认M3A发送M1B超时重传M1发送M2确认M1丢弃有差错报文(b)超时重传tttt停顿等候协议TCPIP工作原理第78页注意在发送完一个分组后,必须暂时保留已发送分组副本。分组和确认分组都必须进行编号。超时计时器重传时间应该比数据在分组传输平均往返时间更长一些。TCPIP工作原理第79页确认丢失和确认迟到A发送M1B超时重传M1发送M2丢弃重复M1重传确认M1(a)确认丢失确认M1A发送M1B超时重传M1发送M2丢弃重复M1重传确认M1(b)确认迟到确认M1收下迟到确认但什么也不做ttttTCPIP工作原理第80页可靠通信实现使用上述确实认和重传机制,我们就能够在不可靠传输网络上实现可靠通信。这种可靠传输协议常称为自动重传请求ARQ(AutomaticRepeatreQuest)。ARQ表明重传请求是自动进行。接收方不需要请求发送方重传某个犯错分组。TCPIP工作原理第81页信道利用率停顿等候协议优点是简单,但缺点是信道利用率U太低。TDRTTATD+RTT+TAB分组确认tt分组确认TCPIP工作原理第82页流水线传输发送方可连续发送多个分组,无须每发完一个分组就停顿下来等候对方确实认。因为信道上一直有数据不间断地传送,这种传输方式可取得很高信道利用率。B分组ttAACKTCPIP工作原理第83页连续ARQ协议123456789101112(a)发送方维持发送窗口(发送窗口是5)发送窗口(b)收到一个确认后发送窗口向前滑动向前123456789101112发送窗口TCPIP工作原理第84页累积确认接收方普通采取累积确认方式。即无须对收到分组逐一发送确认,而是对按序抵达最终一个分组发送确认,这么就表示:到这个分组为止全部分组都已正确收到了。累积确认有优点是:轻易实现,即使确认丢失也无须重传。缺点是:不能向发送方反应出接收方已经正确收到全部分组信息。TCPIP工作原理第85页TCP可靠通信详细实现TCP连接每一端都必须设有两个窗口——一个发送窗口和一个接收窗口。
TCP可靠传输机制用字节序号进行控制。TCP全部确实认都是基于序号而不是基于报文段。
TCP两端四个窗口经常处于动态改变之中。TCP连接往返时间RTT也不是固定不变。需要使用特定算法估算较为合理重传时间。TCPIP工作原理第86页发送缓存与接收缓存作用发送缓存用来暂时存放:
发送应用程序传送给发送方TCP准备发送数据;
TCP已发送出但还未收到确认数据。接收缓存用来暂时存放:
按序抵达、但还未被接收应用程序读取数据;不按序抵达数据。
TCPIP工作原理第87页发送缓存和发送窗口最终被确认字节发送应用程序发送缓存最终发送字节发送窗口已发送TCP序号增大TCPIP工作原理第88页接收缓存和接收窗口接收应用程序已收到接收窗口TCP接收缓存下一个读取字节序号增大下一个期望收到字节(确认号)TCPIP工作原理第89页FIN=1,seq=uCLOSED主动关闭数据传送ESTAB-LISHEDESTAB-LISHEDAB客户服务器CLOSED(3)TCP连接释放
数据传输结束后,通信双方都可释放连接。现在A应用进程先向其TCP发出连接释放报文段,并停顿再发送数据,主动关闭TCP
连接。
A把连接释放报文段首部FIN=1,其序号
seq=u,等候B确实认。TCPIP工作原理第90页FIN=1,seq=uACK=1,seq=v,ack=u1主动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器B发出确认,确认号ack=u1,而这个报文段自己序号seq=v。
TCP服务器进程通知高层应用进程。从A到B这个方向连接就释放了,TCP连接处于半关闭状态。B若发送数据,A仍要接收。TCPIP工作原理第91页FIN=1,seq=uACK=1,seq=v,ack=u1FIN=1,ACK=1,seq=w,ack=u1主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器数据传送
若B已经没有要向A发送数据,其应用进程就通知TCP释放连接。TCPIP工作原理第92页FIN=1,seq=uACK=1,seq=v,ack=u1FIN=1,ACK=1,seq=w,ack=u1主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器数据传送A收到连接释放报文段后,必须发出确认。ACK=1,seq=u+1,ack=w1TCPIP工作原理第93页FIN=1,seq=uACK=1,seq=v,ack=u1FIN=1,ACK=1,seq=w,ack=u1主动关闭被动关闭数据传送通知应用进程ESTAB-LISHEDESTAB-LISHEDAB客户服务器数据传送
在确认报文段中ACK=1,确认号ackw1,自己序号seq=u+1。ACK=1,seq=u+1,ack=w1TCPIP工作原理第94页普通说来,我们总是希望数据传输得更加快一些。但假如发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据丢失。流量控制(flowcontrol)就是让发送方发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。利用滑动窗口机制能够很方便地在TCP连接上实现流量控制。4.9.4TCP流量控制TCPIP工作原理第95页seq=1,DATAseq=201,DATAseq=401,DATAseq=301,DATAseq=101,DATAseq=201,DATAseq=501,DATAACK=1,ack=201,rwnd=300ACK=1,ack=601,rwnd=0ACK=1,ack=501,rwnd=100AB允许A发送序号201至500共300
字节A发送序号101至200,还能发送200字节A发送序号301至400,还能再发送100字节新数据A发送序号1至100,还能发送300字节A发送序号401至500,不能再发送新数据(300字节)A超时重传旧数据,但不能发送新数据允许A发送序号501至600共100
字节A发送序号501至600,不能再发送了不允许A再发送(到序号600为止数据都收到了)丢失!A向B发送数据。在连接建立时,
B告诉A:“我接收窗口rwnd=400(字节)”。A发送序号201至300,还能发送100字节TCPIP工作原理第96页在某段时间,若对网络中某资源需求超出了该资源所能提供可用部分,网络性能就要变坏——产生拥塞(congestion)。出现资源拥塞条件:对资源需求总和>可用资源若网络中有许多资源同时产生拥塞,网络性能就要显著变坏,整个网络吞吐量将随输入负荷增大而下降。4.9.5拥塞控制TCPIP工作原理第97页拥塞产生原因:快网络小缓存接收者;慢网络大缓存接收者。造成网络拥塞两个潜在原因是:网络能力和接收能力。发送传输接收TCPIP工作原理第98页传输网络小容量接收器调整传输速率接收能力发送方接收方处理能力不足TC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美术机构合同范本
- 喜德县2024第一季度四川凉山州喜德县人力资源和社会保障局考核招聘紧缺专业技术人笔试历年参考题库典型考点附带答案详解(3卷合一)
- 钢铁行业项目经理招聘面题集与解答参考
- 医药行业药品管理面试题及答案
- 教育顾问课程规划面试题集
- 广药集团财务经理财务知识竞赛题库含答案
- 卓越绩效岗的绩效考核工具与方法介绍
- 2025年谱系分析技术在基因研究中的创新可行性研究报告
- 2025年现代文化娱乐产业发展项目可行性研究报告
- 2025年在线教育培训平台建设项目可行性研究报告
- 捷盟-03-京唐港组织设计与岗位管理方案0528-定稿
- 基于SystemView的数字通信仿真课程设计
- 物业二次装修管理规定
- GB 10133-2014食品安全国家标准水产调味品
- FZ/T 92023-2017棉纺环锭细纱锭子
- 采气工程课件
- 非洲猪瘟实验室诊断电子教案课件
- 工时的记录表
- 金属材料与热处理全套ppt课件完整版教程
- 热拌沥青混合料路面施工机械配置计算(含表格)
- 水利施工CB常用表格
评论
0/150
提交评论