第4讲传输层之二.ppt
《第4讲传输层之二.ppt》由会员分享,可在线阅读,更多相关《第4讲传输层之二.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、主讲人:西安交通大学 程向前第4讲传输层之二 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望主讲人:西安交通大学 程向前TCP:概述概述 RFCs:793,1122,1323,2018,2581r全双工数据传输全双工数据传输:m在同一连接上双向传输在同一连接上双向传输mMSS:maximum segment size(最大段字(最大段字节数节数-1500,536,512)r面向连接面向连接:m握手过程握手过程(交换控制信息交换控制信息)在交换数据前初始化收发在交换
2、数据前初始化收发双方的状态双方的状态,“三次握手三次握手”r流量控制流量控制:m发送方的发送速度不得超发送方的发送速度不得超过接收方的处理速度过接收方的处理速度r点对点点对点:m一个发送方一个发送方,一个接收方一个接收方 r可靠可靠,按序的字节流按序的字节流:m无无“报文边界报文边界”,无结构,无结构但有顺序但有顺序r流水式控制流水式控制:mTCP的拥塞和流量控制,设的拥塞和流量控制,设置窗口大小置窗口大小r发送发送&接收缓存接收缓存4-2第4讲 传输层之二主讲人:西安交通大学 程向前TCP 段格式段格式(p238)source port#dest port#32 bits应用数据(可变长度)
3、sequence numberacknowledgement numberrcvr window sizeptr urgent datachecksumFSRPAUheadlennotusedOptions(可变长度-MSS)URG:urgent data(一般不用)ACK:ACK#validPSH:push data now(一般不用)RST,SYN,FIN:connection estab(setup,teardowncommands)#bytes 接收方愿意接受的按发送数据的字节计算(不是按段数!)Internetchecksum(as in UDP)4-3第4讲 传输层之二主讲人:西安
4、交通大学 程向前TCP seq.#s 和和 ACKsSeq.#s:m该数据段第一个字节该数据段第一个字节在(整个报文)字节在(整个报文)字节流中流中“编号编号”ACKs:mseq#为预期从对方为预期从对方发来的发来的“下一个下一个”字字节的编号节的编号m积累的积累的 ACKQ:接收方如何接受失序的接收方如何接受失序的数据段数据段mA:TCP 没有定义没有定义,-由程序设计者决定由程序设计者决定Host AHost BSeq=42,ACK=79,data=CSeq=79,ACK=43,data=CSeq=43,ACK=80UsertypesChost ACKsreceipt of echoedC
5、host ACKsreceipt ofC,echoesback Ctime简单的 telnet 场景4-4第4讲 传输层之二主讲人:西安交通大学 程向前TCP:可靠数据传输可靠数据传输简化的发送方,假设waitfor eventwaitfor eventevent:data received from application aboveevent:timer timeout for segment with seq#yevent:ACK received,with ACK#ycreate,send segmentretransmit segmentACK processing单向数据传输无流量
6、,拥塞控制4-5第4讲 传输层之二主讲人:西安交通大学 程向前TCP:可可靠数据传靠数据传输输00 sendbase=initial_sequence number 01 nextseqnum=initial_sequence number 0203 loop(forever)04 switch(event)05 event:data received from application above 06 create TCP segment with sequence number nextseqnum 07 start timer for segment nextseqnum 08 pass
7、 segment to IP 09 nextseqnum=nextseqnum+length(data)10 event:timer timeout for segment with sequence number y 11 retransmit segment with sequence number y 12 compue new timeout interval for segment y 13 restart timer for sequence number y 14 event:ACK received,with ACK field value of y 15 if(y sendb
8、ase)/*cumulative ACK of all data up to y*/16 cancel all timers for segments with sequence numbers 加大安全边际加大安全边际Timeout=EstimatedRTT+4*DeviationDeviation(偏差偏差)=(1-x)*Deviation+x*|SampleRTT-EstimatedRTT|4-11第4讲 传输层之二主讲人:西安交通大学 程向前TCP 连接管理连接管理回顾回顾:TCP 收发双方在数据交收发双方在数据交换开始之前需要建立连接换开始之前需要建立连接r初始化初始化 TCP变量变
9、量:mseq.#sm缓存缓存,流量控制信息流量控制信息(e.g.RcvWindow)r客户端客户端:连接的发起者连接的发起者 Socket clientSocket=new Socket(hostname,port number);-JAVAr服务器服务器:接受客户端的连接接受客户端的连接 Socket connectionSocket=welcomeSocket.accept();(建立连接建立连接)三次握手三次握手:Step 1:客户端的客户端的end system向服务向服务器发送器发送 TCP SYN 控制数据段控制数据段m定义并初始化定义并初始化 seq#Step 2:服务器的服务器
10、的end system接收接收 SYN,用用SYNACK控制数据段回答控制数据段回答mACKs 接收到的接收到的 SYNm分配缓存分配缓存m定义定义 server-receiver 初初始化始化 seq.#Step 3:客户端的客户端的end system向服务向服务器发送器发送ACK mACKs 接收到的连接承诺接收到的连接承诺m分配缓存分配缓存4-12第4讲 传输层之二主讲人:西安交通大学 程向前TCP 连接管理连接管理(续续)关闭连接关闭连接:客户端关闭插口客户端关闭插口:clientSocket.close();Step 1:客户端客户端 end system 发送发送 TCP FIN
11、 控制段给服控制段给服务器务器 Step 2:服务器服务器 收到收到 FIN,用用 ACK应答应答.关闭连接关闭连接,发发送送 FIN.clientFINserverACKACKFINclosecloseclosedtimed wait4-13第4讲 传输层之二主讲人:西安交通大学 程向前TCP 连接管理连接管理(续续)Step 3:客户端客户端 收到收到 FIN,用用 ACK进行应答进行应答.m随着对接收到的随着对接收到的FIN发送发送ACK-同时进入同时进入“timed wait(计时等待)计时等待)”Step 4:服务器服务器,接收接收 ACK.连接关闭连接关闭.注意注意:稍加修改稍加修
12、改,即可管理同即可管理同时发生的多个时发生的多个FINs.clientFINserverACKACKFINclosingclosingclosedtimed waitclosed4-14第4讲 传输层之二主讲人:西安交通大学 程向前TCP 连接管理连接管理(续续)TCP 客户端实例的生命周期TCP 服务进程的生命周期4-15第4讲 传输层之二主讲人:西安交通大学 程向前拥塞控制原理拥塞控制原理拥塞拥塞:r非正式的说法非正式的说法:“过多信源以过快的速率发送了过多的过多信源以过快的速率发送了过多的数据、导致数据、导致网络网络穷于应付穷于应付”r不同于流量控制不同于流量控制!r后果后果:m丢失数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传输
限制150内