计算机网络教案Word下载.docx
《计算机网络教案Word下载.docx》由会员分享,可在线阅读,更多相关《计算机网络教案Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
课程教学
总学时数
102
学分数
3
学时分配
课堂讲授68学时;
实践课34学时
教材名称
计算机网络第5版
作者
谢希仁
出版社及
出版时间
电子工业出版社
指定参考书
《计算机网络》(第2版)
《计算机网络》用自顶向下方法描述因特网特色(第2版)
吴功宜
JimKuroseA著,陈鸣等译
清华大学出版社2008年1月
人民邮电出版社
授课教师
覃少华
职称
副教授
单位
计信学院
授课时间
2007-2008年第2学期
注:
表中()选项请打“√”
周次
第8周,第1次课2008年4月7日
备注
章节
名称
第5章运输层§
5.5§
5.6§
5.7
授课
方式
理论课(√);
实践课( );
实习( )
教 学
时 数
教
学
目
的
及
要
求
1.了解TCP报文格式的组成及其意义,从而掌握TCP工作原理;
2.掌握TCP可靠传输的实现方法;
3.掌握利用滑动窗口实现TCP流量控制。
教 学主要 内 容
时 间
分 配
一、课前复习
1.为何需要引入运输层?
2.运输层提供哪两种传输服务?
二、新课引入
1.由于UDP传输协议提供的是面向报文的不可靠的数据传输能力,因此它的报头格式非常简洁,只有固定的8个字节。
(伪首部的长度是12个字节)
2.TCP提供的是可靠的面向字节的数据传输服务,它是建立在IP层尽最大努力服务的基础之上,因此,可以想象TCP将会比UDP更为复杂。
那么,TCP究竟应该怎样设计其首部格式,才能做到可靠的数据传输呢?
下面我们就来学习TCP报文段的首部格式,看看它是如何设计的?
三、新课内容
第 1 页
重
点
与
难
§
5.5TCP报文段的首部格式
一、TCP报文首部由固定部分和可选部分组成
1.固定部分(20字节)
2.可选部分(最大40字节,须满足4N为边界)
(如教材第194图5-14所示)
二、TCP首部各字段的作用
1.源端口号(0~65535)
占2字节,需要对方回应时需要。
不需要时填0(保留)
2.目的端口号(0~65535)
占2字节,接收端向应用进程交付报文时使用
3.序号(0~232-1)
占4字节,对报文中的每一个字节编号,循环使用
4.确认号
占4字节,表示接收方期望收到的下一个报文段的第一个数据字节的序号
如B接收到A的报文的序号是201,数据长度为200字节(201~400),则确认序号应为401。
5.数据偏移
占4比特,它指出报文中TCP首部的长度。
单位为4字节,因此,首部长度最大值是60字节。
6.保留
占6比特,保留,目前全为0。
7.紧急URG(URGent)
URG=1,表明紧急指针字段有效。
此时发送进程紧急数据插入到正常数据段的最前面,提前发送。
8.确认ACK(ACKnowlegment)
ACK=1,表明确认号字段有效。
反之,确认号字段中的值被视为无效。
9.推送PSH
PSH=1,接收端立即将收到的报文段交付给应用进程,而不等缓冲区填满再交付。
10.复位RST
RST=1,表明TCP连接出严重差错,必须释放后重新建立连接。
还可用来拒绝一个非法的报文段或拒绝打开一个连接。
(5.9节将进一步讨论如何建立连接)
11.同步SYN(SYNchronization)
SYN=1,表示该报文是一个连接请求或连接接受报文。
SYN=1,ACK=0,表示连接请求;
SYN=1,ACK=1,表示连接接受。
12.终止FIN
FIN=1,表明报文传送结束,并要求释放连接。
13.窗口(0~216-1)
占2字节,发送方向接收方通告自己的接收窗口。
例如:
确认号=700,窗口=1000。
发送方还可接收1000字节,从700~1699。
14.检验和
占2字节,包括整个TCP报文和TCP伪首部(12字节),与UDP类似,其中协议号字段由17变为6,UDP长度变为TCP长度。
15.紧急指针
占2字节,仅当URG=1时有意义,它指出了紧急数据的未尾在报文中的位置(紧急数据之后就是普通数据),即使窗口为零也可发送。
16.可选项
长度可变,最大可达40字节。
(1)最大报文段长度MSS,它指明TCP报文中数据部分的最大长度。
缺省为536字节,再加上首部共556字节。
(2)其中选项如:
窗口扩大、时间戳、选择确认等选项。
启发提问
1.UDP也需要伪首部,TCP伪首部与UDP伪首部有何不同?
2.接收方如何构造伪首部进行报文校验?
3.为什么需要MSS?
4.高速网络中的序号翻转问题?
1Gb/s发送速率,不到4.3秒序号就会发生翻转。
手
段
参
考
资
料
5.6TCP可靠传输的实现
一、TCP中的滑动窗口
1.发送窗口
(1)以字节为单位,窗口的大小表示当前允许发送的最大字节数。
(2)发送窗口的移动。
总结发送窗口前后沿移动条件。
2.接收窗口
只能对顺序到达的最高序号给出确认,然后移动。
3.小结
(1)发送窗口总是经常发生变化的,接收窗口主要取决于接收缓存的大小;
(2)对不按序到达的数据如何处理,TCP没有明确规定;
(3)要求接收方具有累积确认功能。
二、超时重传的时间选择
1.往返时间RTT
对RTT进行加权平均得到RTTs,即:
RTTs=(1-α)×
(旧的RTTs)+α×
(新的RTT样本)
其中0≤α<1,α=0.125。
2.超时重传时间RTO
RTO=RTTs+4×
RTTD
新的RTTD=(1-β)×
(旧的RTTD)+β×
∣RTTs-新的RTT样本∣,其中β=0.25,初始时,RTTD等于RTT样本的一半。
3.RTT测量难题
(1)测不准
(2)Karn算法
计算RTTs时,不采用发生了重传的RTT。
这样做虽然能够得到较准确的RTTs和RTO,但是带来了新的问题:
一旦报文段的时延突然增多,超时重传的时间将无法更新,就会不断发生超时重传现象。
解决办法:
发生重传后,把RTO增大为原来的2倍,不发生重传时,采用前述公式计算。
三、选择确认SACK
1.若收到的报文段本身无差错,只是未按序号,采用选择确认是一种较好的方法。
2.需要在TCP首部的可选项中选用SACK功能,占用一个字节,还需要一个字节指明该选项占用多少个字节。
剩余38字节,最多只能指明4个不连续数据块的边界信息。
1.滑动窗口的移动及变化规律或条件?
2.超时重传时间的确定思想及方法?
5.7TCP流量控制
一、TCP采用可变的滑动窗口实现流量控制
1.什么是流量控制
(1)控制发送方的数据发送速率不要太快,使接收端能够来得及接收。
2.举例说明流量控制过程
教材203页图5-22。
图中接收窗口rwnd=400,300,100,0
3.接收窗口为0后,再次变为非0,可能出现什么潜在的问题?
(1)可能发生死锁;
(2)解决办法:
收到rwnd=0的一方,启动持续计时器,计时到发送探测报文。
4.TCP对于接收窗口为零的规定。
教材204页最下面一行。
二、TCP传输的效率问题
1.报文段发送时机选择
(1)若缓存中的数据达到MSS,应立即发送。
(2)发送方应用进程指明要求立即发送,PUSH操作。
(3)发送方的计时器到时,把当前缓冲区中的数据发出。
2.TCP中广泛使用的Nagle算法
(1)开始选发一个字节,试探;
(2)收到确认后,将缓存中数据封装成报文段发出;
(3)继续
(2)。
上述算法当数据到达较快,而网络速度较慢时,可以明显减少所用的网络带宽。
注:
Nagle还规定,当到达的数据达到发送窗口大小的一半或MSS时,立即发送一个报文段。
3.湖涂窗口综合症问题
接收方缓存满后,应用进程每次只读走一个字节,就向发送方返回确认,并发rwnd=1,就会引发该问题。
让接收方延时确认,等接收缓冲区有更多的空闭时再发确认。
1.TCP流量控制的目的是什么?
2.如何解决接收窗口为零可能导致的死锁问题?
TCP报文首部格式
发送缓存
接收缓存