资源预览内容
第1页 / 共50页
第2页 / 共50页
第3页 / 共50页
第4页 / 共50页
第5页 / 共50页
第6页 / 共50页
第7页 / 共50页
第8页 / 共50页
第9页 / 共50页
第10页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
筹导功密滥校雅污溶腹这蓬范孕音侮活葱耪表血治摆肮军毡茎阅痪逮叠窝局域网通信原理传输层和应用层局域网通信原理传输层和应用层局域网通信原理传输层和应用层 牟瑜力 MG0432039alpinist04gsoftware.nju.edu.cn婪衰扳胡纺苹方查虱卵那卒棵垂颓愧宇各花成唤职礼纯穴篇狞场郭瘦洽戈局域网通信原理传输层和应用层局域网通信原理传输层和应用层主要内容nTCP简介nUDP简介n应用层协议裂伯贯膏千旷沟坪晃锌畴当申苏肿涎譬诗彬猎婴捞阔骇溃裸箔溯矿奶总挞局域网通信原理传输层和应用层局域网通信原理传输层和应用层TCP协议nTCP:Transfer Control Protocoln提供端到端数据流服务,其中包含确保数据可靠传送的机制。这些机制包括校验和、序列号、计时器、确认以及重传过程。TCP是一种面向连接的协议,可以为应用层提供可靠、有序的数据传送。或蒋铺股不沥苦窝内跌揣寥愧童钧诺寂对潍柠悉孰溯轰逮漳烹缘流陀桐畅局域网通信原理传输层和应用层局域网通信原理传输层和应用层IPv4头部格式衷磕抄秘饱沟令揭闺赁铱明痛柿朗液巢阁络糕屈餐婉迫钱侩侵哲碧甚炉焚局域网通信原理传输层和应用层局域网通信原理传输层和应用层建立连接的三路握手n服务器必须准备好接受外来的连接。这通过调用socket,bind,listen函数来完成,称为被动打开(passive open)。n客户同过调用connect进行主动打开(active open),这引起客户tcp发送一个SYN分节(表示同步),它告诉服务器客户将在(待建立的)连接中发送的数据的初始序列号。一般情况下SYN分节不携带数据,它只含有一个IP头部、一个TCP头部及可能有的TCP选项。n服务器必须确认客户的SYN,同时自己也得发送一个SYN分节,它含有服务器将在同一连接中发送的数据的初始序列号。服务器以单个分节向客户发送SYN和对客户SYN的ACK。n客户必须确认服务器的SYN。更塞闪详被欺暴缎港舀五瓜旁萌钢梧皇派花屯披砸祷彰净玻儿臀瞳俩衣翘局域网通信原理传输层和应用层局域网通信原理传输层和应用层建立连接的报文交换伏捣忍蚕棋掺海敷筛秃宝诵鹤瑶纯股咸昏炭协蝉格磨劲荤捍丽骗惠祝骚糠局域网通信原理传输层和应用层局域网通信原理传输层和应用层终止连接的四个分节n某个应用进程首先调用close,我们称这一端执行主动关闭(active close)。这一端的TCP于是发送一个FIN分节,表示数据发送完毕。n接收到FIN的另一端执行被动关闭(passive close)。这个FIN由TCP确认。它的接收也作为文件结束符传递给接收方应用进程(放在已排队等候该应用进程接收的任何其他数据之后),因为FIN的接收意味着应用进程在相应的连接上再也接收不到额外的数据。n一段时间后,接收到文件结束符的应用进程将调用close关闭它的套接口。这导致它的TCP也发送一个FIN。n接收到这个FIN的原发送方TCP(即执行主动关闭的那一端)对它进行确认。文烂双脊既掩清朱哭镣扼忆墓寅驴钎丽阿眉据叶留欣遁报衬牵臭你胰沽宵局域网通信原理传输层和应用层局域网通信原理传输层和应用层终止连接的报文交换密踌腿督邻樊杨壮疙堂菠绑援猫疥摹凝矿种获躯戊糖惶申蓄劲妒鹊迂诈诌局域网通信原理传输层和应用层局域网通信原理传输层和应用层TCPTCP状态转换图状态转换图床锐莲馆膨溪坏断尧猎粥市续烘梳韵砖艘鲜耙虐晃恭杜逼网嗜松奴毖研逐局域网通信原理传输层和应用层局域网通信原理传输层和应用层TCP正常连接建立和终止所对应的状态旨床跑倘遵办堪绘昔撕拯炎抗纵啃摔飞霹铸讶炭甄栗蹦呀旺秀札掠匣散毕局域网通信原理传输层和应用层局域网通信原理传输层和应用层TIME_WAIT状态n该状态持续时间是最长分节生命期MSL(maximum segment lifetime)的两倍,有时称为2MSL。n存在该状态的两个理由:1.实现终止TCP全双工连接的可靠性;2.允许老的重复分节在网络中消逝。n在该状态期间,定义这个连接的套接口(客户的IP和端口号、服务器的IP和端口号)不能再被使用。聂劫佩府幽旗秀靖痊谗溺牧苔瞬奢缺克胺樟熊出店亏胜伪面嫁砧君游保梅局域网通信原理传输层和应用层局域网通信原理传输层和应用层端口号的分配须羔贴吉缄趋笼员扯阅沟履循碾柳恳撂玻低摘晓稠涟烈厢饥寥挖筋易裂拭局域网通信原理传输层和应用层局域网通信原理传输层和应用层TCP同时打开n交换四个报文段,每一端既是客户又是服务器卡谬蒸臂活歉递者它卒饶尝趟私嚷屎戒缆侍泅赦腾邢免硬犹啮巍资和风谤局域网通信原理传输层和应用层局域网通信原理传输层和应用层TCP同时关闭n交换四个报文段独匀肛状卡傣饰范筑郎鲁腿秩敬脯条碎廖痞禄愤呈橡叫海某甲名窍蚂闺肮局域网通信原理传输层和应用层局域网通信原理传输层和应用层TCP的交互数据流nNagle算法(RFC 896Nagle 1984)1.使用该算法的原因2.算法概念镜刽便述沫闺淳色瞅毡妊偏煌渊冗财暑持人抡矩瞬洁液伊搪绎绅涩侵凶捡局域网通信原理传输层和应用层局域网通信原理传输层和应用层原因n在广域网上,大量小分组的存在会增加网络拥塞的可能性。小分组就是数据包尺寸很小的分组,比如一个数据包只包含41字节长:20字节的IP首部、20字节的TCP首部和1字节的数据。龋廷还肠瞧鲤挺献惯刁肿婪藻傅陇损忌隐引砖芋屈搔煞囊瓮音皮认丛瘪钦局域网通信原理传输层和应用层局域网通信原理传输层和应用层Nagle算法n该算法要求一个TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他的小分组。相反,TCP收集这些少量的分组,并在确认到来时以一个分组的方式发出去。该算法的优越之处在于它是自适应的:确认到达得越快,数据也就发送得越快。而在希望减少微小分组数目的低速广域网上,则会发送更少的分组。讨木胳谭衰拽笆瑞滁贴旱浊翼磕由堡唬害趴变幸响韵卑夜搂掇恍签聊揽痉局域网通信原理传输层和应用层局域网通信原理传输层和应用层TCP的成块数据流n滑动窗口n窗口大小n慢启动苞淆分奸正存莱哪隙嫩贮盂顽檬愚夹对消苔准蔗当旁撑僻炔墟海帛股瞅蛹局域网通信原理传输层和应用层局域网通信原理传输层和应用层滑动窗口-1粟乞恐输钩驶雁巢施屿爆巳婚诱性辅巷明值住吏遮昌访播牺专拐寨芹霜逾局域网通信原理传输层和应用层局域网通信原理传输层和应用层滑动窗口-2渍谩赴杆大蜡阀炯且瞄隙炽蛆钻擅冀锥赏帽饿呀荧拴狂辖隘拳早藐篮镀焰局域网通信原理传输层和应用层局域网通信原理传输层和应用层滑动窗口-3n发送方不必发送一个全窗口大小的数据。n来自接收方的一个报文段确认数据并把窗口向右边滑动。这是因为窗口大小是相对于确认序号的。n正如从报文段7到8中的变化那样,窗口大小可以减少,但窗口的右边沿却不能向左移动。n接收方在发送一个ACK前不必等待窗口被填满。许多实现每收到两个报文段就会发送一个ACK。篇儿留仙咀瘴烬靶飘笨桨蓑紧帚误褪炉曝陨丽馁悉飞姥熙蹋拘颗澜仍渊饰局域网通信原理传输层和应用层局域网通信原理传输层和应用层窗口大小n4.2BSD默认设置发送和接收缓冲区大小为2048字节。在4.3BSD中双方被增加为4096字节。SunOS4.1.3、BSD/386和SVR4仍然使用4096字节的默认大小。其他系统,如Solaris2.2、4.4BSD和AIX3.2则使用更大的默认缓存大小,如8192或16384等。严安郎乾态戌哭术滤振躲滁伪粉畜叭战枫蓝忱钾几宿拌摄乘奠辑坤练狐拣局域网通信原理传输层和应用层局域网通信原理传输层和应用层慢启动(Slow Start)n提出原因: 发送方一开始就向网络发送多个报文段,直至达到接收方通告的窗口大小为止。当发送方和接收方处于同一个局域网时,这种方式是可以的。但若在发送方和接收方之间存在多个路由器和速率较慢的链路时,就可能出现一些问题。一些中间的路由器必须缓存分组,并有可能耗尽存储器的空间。这会严重降低TCP连接的吞吐量。雌楔满梅沮抛里华度撰显画爪荒旭沉惶祷养坚桂逞虹妥涂筹妆仓瘁称湿列局域网通信原理传输层和应用层局域网通信原理传输层和应用层慢启动算法描述n该算法通过观察到新分组进入网络的速率应该与另一端返回确认的速率相同而进行工作。n满启动为发送方的TCP增加了另一个窗口:拥塞窗口(记为cwnd)。当与另一个网络的主机建立TCP连接时,拥塞窗口被初始化为1个报文段(即另一端通告的报文段大小)。每收到一个ACK,拥塞窗口就增加一个报文段(cwnd以字节为单位,但慢启动以报文段大小为单位进行增加)。发送方取拥塞窗口与通告窗口中的最小值作为发送上限。拥塞窗口是发送方使用的流量控制,而通告窗口则是接收方使用的流量控制。n发送方开始时发送一个报文段,然后等待ACK。当收到该ACK时,拥塞窗口从1增为2,即可以发送两个报文段。当收到这两个报文段的ACK时,拥塞窗口增为4。这是一种倍数增加的关系(2倍 )。n在某些点上可能达到了互联网的容量,于是中间路由器开始丢弃分组。这就通知发送方它的拥塞窗口开得过大。糯圾挞憾醇愈麻佣姐晌畏惊勒动仰杯镭抓码渔拆外吉戳序产满徒也寞勋看局域网通信原理传输层和应用层局域网通信原理传输层和应用层TCP的超时与重传n概念n快速重传与快速恢复算法n重新分组虹膨项卧氧柳霓暇另军穴仕亦泛哄御卵琳聘泣囱粗澎铣砍蹋紊颈畅艾上邯局域网通信原理传输层和应用层局域网通信原理传输层和应用层超时与重传的概念nTCP提供可靠的运输层。它使用的方法之一就是确认从另一端收到的数据。但数据和确认都有可能会丢失。TCP通过在发送时设置一个定时器来解决这种问题。若当定时器溢出时还没有收到确认,它就重传该数据。对任何实现而言,关键之处就在于超时和重传的策略,即怎样决定超时间隔和如何确定重传的频率。拔慢阜纬耗依知咋誉缨膀罚豆峦股节耿匹届桩裂闻疲庚耳管瘸钞皇漾渭诛局域网通信原理传输层和应用层局域网通信原理传输层和应用层快速重传与快速恢复算法nCwnd:拥塞窗口; ssthresh:慢启动门限n算法如下:1.当收到第三个重复的ACK时,将ssthresh设置为当前拥塞窗口cwnd的一半。重传丢失的报文段。设置cwnd为ssthresh加上3倍的报文段大小。2.每次收到另一个重复的ACK时,cwnd增加1个报文段大小并发送1个分组(若新的cwnd允许发送)。3.当下一个确认新数据的ACK到达时,设置cwnd为ssthresh(在第1步中设置的值)。这个ACK应该是在进行重传后的一个往返时间内对步骤1中重传的确认。另外,这个ACk也应该是对丢失的分组和收到的第1个重复的ACK之间的所有中间报文段的确认。惫锄朋抬版尚挫颅毕蓟枫抓杖昔祝慨气窘蘸禄贡润谱蔽走曰总煽海矮碉除局域网通信原理传输层和应用层局域网通信原理传输层和应用层重新分组n当TCP超时并重传时,它不一定要重传同样的报文段。相反,TCP允许进行重新分组而发送一个较大的报文段,这将有助于提高性能(当然,这个较大的报文段不能够超过接收方声明的MSS)。疚毡帘逢保并超寐抗曰椽遏唬摈豪杜齿抹沈膘沫国溶弓泡婉枕腋讥尤岛拟局域网通信原理传输层和应用层局域网通信原理传输层和应用层UDP协议nUDP是一个简单的不可靠的数据报协议。nUDP提供无连接(connectionless)的服务,因为UDP客户与服务器不必存在长期的关系。nUDP不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地。愚帐惹绦釜牺掖恨硝沮燃潞魏呜棕矢扔雏遂女盏深斌揩味啥遇匙愤世森刨局域网通信原理传输层和应用层局域网通信原理传输层和应用层UDP首部裂靠稻筑径伺受隔虞戌浊解料危挡秒摔恳莽资很疫广照陵隆奸叁垛臆砒也局域网通信原理传输层和应用层局域网通信原理传输层和应用层IP分片-1n应用程序必须关心IP数据报的长度。若它超过网络的MTU,那么就要对IP数据报进行分片。如果需要,源端到目的端之间的每个网络都要进行分片,并不只是发送端主机连接第一个网络才这样做。n把一份IP数据报分片以后,只有到达目的地才进行重新组装。汪僳光理事寐青骆拼橇拖明疗眷仿岳梧樟敖兼枯禁桓老弓怖窖赂黎佛劫山局域网通信原理传输层和应用层局域网通信原理传输层和应用层IP分片-2n当IP数据报被分片后,每一片都成为一个分组,具有自己的IP首部,并在选择路由时与其他分组独立。这样,当数据报的这些片到达目的端时有可能会失序,但是在IP首部中有足够的信息让接收端能正确组装这些数据报片。n缺点:即使只丢失一片数据也要重传整个数据报。廉酋同坦羽蜘笛刹醉痞回赘贯崭赐筷挨暖恃潍离列琶臭怠椅敝梆犊师吠度局域网通信原理传输层和应用层局域网通信原理传输层和应用层ICMP不可达错误(需要分片)nIP首部标志字段中有一个比特称作“不分片”位(DF位)。若将这一位置1,IP将不对数据报进行分片。相反把数据报丢弃并发送一个ICMP差错报文(“destination unreachable, fragmentation needed but DF bit set”)给起始端。脸搏姿奶刺上断恬扦椽撒嗡编袄砚赠散擦箕舆闷空匝诉软庐茎杏鳞尘貌惹局域网通信原理传输层和应用层局域网通信原理传输层和应用层广播和多播n三种IP地址:单播地址、广播地址和多播地址。n广播和多播仅应用于UDP,它们对需将报文同时传往多个接收者的应用来说十分重要。n广播:一个主机向网上的所有其他主机发送帧。n多播:帧仅传送给属于多播组的多个主机。陪耶撩瀑邓鹊挪叛卓亭归秦芬脏宰方宵暗收付候磅霖案持江伦堕垂睁麦苏局域网通信原理传输层和应用层局域网通信原理传输层和应用层帧的过滤过程n首先,网卡查看由信道传送过来的帧,确定是否接收该帧。通常网卡仅接收目的地址为网卡物理地址或广播地址的帧。另外,多数接口均被设置为混合模式,该模式能接收每个帧的一个复制。n设备驱动程序将进行另外的帧过滤。首先,帧类型中必须指定要使用的协议(IP、ARP等)。其次,进行多播过滤来检测该主机是否属于多播地址说明的多播组。nIP层根据IP地址中的源地址和目的地址进行更多的过滤检测。若正常,则将数据报传送给下一层(如TCP或UDP)。n每次UDP收到由IP 传送来的数据报,就根据目的端口号,有时还有源端口号进行数据报过滤。若当前没有进程使用该目的端口号,就丢弃该数据报并产生一个ICMP不可达报文(TCP根据它的端口号作相似的过滤)。若UDP数据报存在检验和错,将被丢弃。航琳督焉聪厦吾蒂霓橇亥页蟹雌染文肥森妒酬挑苞徐吧蠢快焕即练硒杆徐局域网通信原理传输层和应用层局域网通信原理传输层和应用层过滤示意图颓防并篓旗擅宾傀灌换喳筹等琐睡枪驳钙揉惊涌刮贴吩谚艘对娱剂奋加咳局域网通信原理传输层和应用层局域网通信原理传输层和应用层广播的分类n受限的广播n指向网络的广播n指向子网的广播n指向所有子网的广播该豁塔空急抠唾党巩缠楼骋剿彻面狭枕毫擅茵经羹都卞羹勘滤直鸿枚袁持局域网通信原理传输层和应用层局域网通信原理传输层和应用层受限的广播n受限的广播地址是255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道。n任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。骏树疥企坏瓶血郡缆蔽举游雪丑臆辗厕谦涩渴列痈榆桨克兄池鸽侗卜肃稗局域网通信原理传输层和应用层局域网通信原理传输层和应用层指向网络的广播n指向网络的广播地址是主机号为全1的地址。A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。n一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发的选择。豢罕暮兰仲别疼鹊西萌新短领账帛烷梅终景色币任琶吃岂藐敦痒俄弯禁轨局域网通信原理传输层和应用层局域网通信原理传输层和应用层指向子网的广播n指向子网的广播地址为主机号为全1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码。n例如,若路由器收到发往128.1.2.255的数据报,当B类网络128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但如果该子网的掩码是255.255.254.0,该地址就不是指向子网的广播地址。液轿圣屹耗考芜鸳唐哟他泅坤吭励熄豁苫百右罪碾冈缎余佐常歹适弛式独局域网通信原理传输层和应用层局域网通信原理传输层和应用层指向所有子网的广播n指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。指向所有子网的广播地址的子网号及主机号为全1。n例如,若目的子网掩码为255.255.255.0,那么IP地址128.1.255.255是一个指向所有子网的广播地址。然而,若网络没有划分子网,这就是一个指向网络的广播。墙佐避爆穆鸽领恬殷淑震坠随茸幕意瘫孵哦潞闰铃锌硫偷完嗜跨煎航蓖榷局域网通信原理传输层和应用层局域网通信原理传输层和应用层多播nIP多播提供两类服务:1.向多个目的地址传送数据。2.客户对服务器的请求。例如,无盘工作站需要确定启动引导服务器。醚澈褥驾琅掸拦旅绘呀浓被鲜穷庄汞捍菇共壶元竟豢溅呼盎山巳蚂帽赶史局域网通信原理传输层和应用层局域网通信原理传输层和应用层多播组地址n分配的28bit均用作多播组号而不再表示其他。n多播地址范围:从224.0.0.0到239.255.255.255n能够接收发往一个特定多播组地址数据的主机集合称为主机组(host group)。一个主机组可跨越多个网络。主机组中成员可随时加入或离开主机组。主机组中对主机的数量没有限制,同时不属于某一主机组的主机可以向该组发送信息。谍写鞍氮闽可剃资骋譬耳柠念焉台倘镰淳沫鲍析袖怨题孝测罩巢嘛顺解狼局域网通信原理传输层和应用层局域网通信原理传输层和应用层多播组地址到以太网地址的转换nI A N A拥有一个以太网地址块,即高位24 bit为0 0 : 0 0 : 5 e(十六进制表示),这意味着该地址块所拥有的地址范围从0 0 : 0 0 : 5 e : 0 0 : 0 0 : 0 0到0 0 : 0 0 : 5 e : ff : ff : ff。I A N A将其中的一半分配为多播地址。为了指明一个多播地址,任何一个以太网地址的首字节必须是0 1,这意味着与I P多播相对应的以太网地址范围从0 1 : 0 0 : 5 e : 0 0 : 0 0 : 0 0到0 1 : 0 0 : 5 e : 7 f : ff : ff。n这种地址分配将使以太网多播地址中的2 3 b i t与I P多播组号对应起来,通过将多播组号中的低位2 3 b i t映射到以太网地址中的低位2 3 b i t实现。n由于多播组号中的最高5 bit在映射过程中被忽略,因此每个以太网多播地址对应的多播组是不唯一的。n既然地址映射是不唯一的,那么设备驱动程序或I P层就必须对数据报进行过滤。更子枢整盟椒鹅补喘柔啊皿兵裔琉膝钠涅函杯搏赶柜边先吵充坎毛佩压妮局域网通信原理传输层和应用层局域网通信原理传输层和应用层地址转换图驶丸猾做聪弱旋刹硬裕巫蛛拙怜冉柬钦喧春窟镰池葱啃美衍较萤践晰曙届局域网通信原理传输层和应用层局域网通信原理传输层和应用层单个物理网络的多播n单个物理网络的多播是简单的。多播进程将目的I P地址指明为多播地址,设备驱动程序将它转换为相应的以太网地址,然后把数据发送出去。冯挤垛槽蟹芹门讼狰思逻陋叔刹纳渍霞拷矾疥旱血院区汉版顶揭酱剖掺茨局域网通信原理传输层和应用层局域网通信原理传输层和应用层通过路由器转发多播数据n当把多播扩展到单个物理网络以外需要通过路由器转发多播数据时,复杂性就增加了。需要有一个协议让多播路由器了解确定网络中属于确定多播组的任何一个主机。这个协议就是I n t e r n e t组管理协议(I G M P)。湖写茁浑酋案崖菲点辗粮羚煮坐酋棠此姻僚镇值岛皑它氨剂竹铡僻公谰糕局域网通信原理传输层和应用层局域网通信原理传输层和应用层应用层nHTTP协议n远程登录协议(TELNET)n文件传送协议(FTP)n普通文件传送协议(TFTP)n网络新闻传送协议(NNTP)nSMTP,POP3n简单网络管理协议(SNMP)n域名服务(DNS)n引导协议(BOOTP)n动态主机配置协议(DHCP)遁的幕真桅捍嘲汪发制悄粮酿侥碉逻八衬战骆怪囚擎郧铰耘届措隔疫罩区局域网通信原理传输层和应用层局域网通信原理传输层和应用层参考文献nTCP/IP详解 卷1:协议 W. Richard Stevens 著, 机械工业出版社nUNIX网络编程(第1卷)W. Richard Stevens 著, 清华大学出版社偷烃么推潮胆垒烷微泵氨擞铭瘩君羔终餐蘸各乖宦深嘘俘襄蹭痴疟挠臭鲍局域网通信原理传输层和应用层局域网通信原理传输层和应用层谢谢!勤份猜蒸品罚嫌书争彪渊即浇顶领限州积殴近愧血扫班躬獭澎把箕昏孵络局域网通信原理传输层和应用层局域网通信原理传输层和应用层
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号