计算机网络与通信.ppt_第1页
计算机网络与通信.ppt_第2页
计算机网络与通信.ppt_第3页
计算机网络与通信.ppt_第4页
计算机网络与通信.ppt_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第八章 TCP/IP技术,8.7 传输层协议,2,传输层在OSI模型中的地位,TSAP,NSAP,3,TCP/IP中的传输层,8.7.1 传输层概述 传输层位于TCP/IP网络体系结构的第四层,其上是应用层。传输层直接与应用层进行数据通信,是整个网络体系结构的核心部分。,TSAP,TSAP,4,传输层协议,TCP/IP Transport layer,Transport,Hardware,NetworkInterface,Internet,Application,传输控制协议TCP面向连接的、可靠的传输协议。 用户数据报协议UDP无连接的、不可靠的传输协议。,5,两个对等传输实体在通信时传

2、送的数据单位叫作传输协议数据单元 TPDU (Transport Protocol Data Unit)。 TCP 传送的协议数据单元(PDU)是 TCP 报文段(segment) UDP 传送的协议数据单元(PDU)是 UDP 报文或用户数据报(User Datagram),传输协议数据单元,6,TCP 与 UDP,TCP 提供面向连接的服务。 由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。 这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。 UDP提供无连接的服务。 UDP在传送数据之前不需要先建立连接。对方的传输层在收到 UDP 报文后,不需

3、要给出任何确认。 虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。,7,传输协议与网际协议的区别,IP 数据报要经过互连网中许多路由器的存储转发。 但TCP报文段和UDP用户数据报是在传输层的端到端抽象的逻辑信道中传送的,不涉及通信子网的实现细节。 TCP 的传输信道是可靠的全双工逻辑信道, 而UDP的传输信道则是不可靠的。,8,传输层的通信端点,TSAP,TSAP,9,端口的概念,端口(Port) 是TCP/IP体系中的传输服务访问点TSAP。 熟知端口(well-known-port):是已定义的固定端口,取值范围01023 ,在RFC1700中定义。 由因特

4、网管理机构分配给一些常用的应用服务进程。 0255的端口是最常用的熟知端口。 一般端口:取值范围:102465535 用来分配给请求通信的客户进程。 注意:端口仅具有本地意义。 在互联网中不同计算机的相同端口号是没有联系的。,10,常见的熟知端口,11,众所周知的端口号,12,TCP /UDP端口号,A,Z,Telnet Z,Dest. port = 23. Send packet to my Telnet application.,13,套接字的概念,套接字(插口,Socket) 是TCP/IP体系中传输层的通信端点(endpoint) 套接字包括32位的IP地址和16位的端口号,它唯一地标

5、识了一台主机上的一个应用进程。,14,Socket的不同含义,传输层与应用层之间的应用编程接口API称为Socket API, 简称为Socket。 Socket API中使用的一个函数名也叫作Socket。 调用Socket 函数的端点称为Socket。 调用Socket函数的其返回值称为Socket描述符,可简称为Socket。 在操作系统内核中连网协议的Berkeley实现,称为Socket 实现。,15,传输服务模型,TCP/IP最早是在UNIX环境下实现的,它的服务提供方式与UNIX密切相关: 在OSI模型中,传输实体通过传输服务访问点TSAP与上层的进程进行通信。而TCP和UDP都

6、使用端口号(Port)与上层的应用进程通信。 TCP和UDP的通信端点是套接字(Socket) 。所有传输服务都是通过套接字来完成的。,客户端: 发起连接,服务器端: 等待连接,16,TCP/UDP套接字原语,.协议原语含义 . TCPSOCKET创建新的通信端点Socket BIND为Socket分配一个本地地址(名字) LISTEN声明愿意接收连接,给出等待队列最大长度 ACCEPT阻塞服务进程,直至连接请求到达 CONNET在一个Socket上主动发起连接 SEND在一个Socket连接上发送数据 RECEIV在一个Socket连接上接收数据 .CLOSE释放连接 . UDPSOCKET

7、创建新的通信端点 BIND为Socket分配一个本地地址(名字) SENDTO发送数据 .RECVFROM接收数据 .,17,传输控制协议TCP,8.7.2 TCP的报文段 TCP是面向连接的传输协议,提供可靠的全双工服务。 在发送的时候,应用层的数据报传送到传输层后,加上TCP首部,就构成了TCP的数据传送单位,称为报文段(Segment);在网络层,报文段作为IP数据报的数据,加上IP首部后成为IP数据报。 在接收的时候,网络层将IP数据报的IP首部去掉后上交给传输层,得到TCP报文段,传输层再将TCP首部去掉,然后上交给应用层,得到应用层所需要的报文段 。,18,TCP 报文段的格式,I

8、P,源端口(Source Port)和目的端口(Dest. Port) :各占 16位, 2 字节。分别标识相互通信的的两个应用进程 。,19,TCP 报文段的格式,序号(Seq):占32位,4个字节,是本报文段的第一个数据字节的编号。,20,TCP 报文段的格式,确认号(Seq):占32位,4个字节,是期望收到对方的下一个报文段的序号。,21,TCP 报文段的格式,首部长度(HLEN):也称为数据偏移,占4位,以4字节字长为单位,缺省值为5。,22,TCP 报文段的格式,保留字段(Reserved):共6位,未使用。,23,TCP 报文段的格式,标志字段,共有6个标志,每个占1位 。,24,

9、TCP 报文段的格式,紧急比特URG:置1时表示紧急指针有意义。它告诉系统此报文段中有紧急数据,应尽快交付。,25,TCP 报文段的格式,确认比特ACK:置1时表示确认号有意义。,26,TCP 报文段的格式,推送比特PSH:置1时表示本报文段为需要立即交付的紧急数据。,27,TCP 报文段的格式,复位比特RST:置1时表示 TCP 连接中出现严重差错(如主机崩溃或其他原因),必须释放连接,然后再重新建立传输连接。,28,TCP 报文段的格式,同步比特SYN:置1时表示本报文段是一个连接请求或连接接受的同步段,要使序号同步。,29,TCP 报文段的格式,终止比特FIN:置1时表示本方数据已发送完

10、毕,准备释放传输连接。,30,TCP 报文段的格式,窗口大小(Windows):占 2 字节。表示本方接收窗口的大小,单位为字节。它是本方能够接收的从确认号所指示的字节开始的数据字节数。它用来控制对方发送的数据量。,31,TCP 报文段的格式,检验和(Checksum):占 2 字节。检验的范围不仅包括TCP首部和数据这两部分,而且包括一个12字节的伪首部。,32,TCP报文段的伪首部,在计算检验和时,要先在 TCP 报文段的前面加上 伪首部,再求和。 伪首部仅用于计算检验和,不向下传送。,33,TCP 报文段的格式,紧急指针(Urgent):占 2 字节。与紧急比特配合使用处理紧急情况,指出

11、在本报文段中的紧急数据的最后一个字节的序号 。,34,TCP 报文段的格式,选项(Option)+填充(Pad) :长度为32位的倍数。,35,TCP 报文段的可选项,TCP首部可以有多达40字节的可选信息。此字段为可变部分,分为两类: 单字节选项 选项结束(00000000) 无操作(00000001) 多字节选项 最大报文段的数据字段长度MSS(00000010),占2字节。 窗口扩大因子F (00000011) ,表明窗口大小左移的次数。 时间戳T (00001000) 。,36,TCP 序号和确认号,8.7.3 TCP的数据编号与捎带确认 TCP 协议是面向字节的,将上层的各种数据报文

12、(文本、图形、图象、数据库等)一律视为无结构的字节流来传输。对每一个字节赋予一个序号。 在连接建立时,双方要商定初始序号。TCP 每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。 TCP 的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加 1。,37,TCP 简单确认方式,Window size = 1,Sender,Receiver,38,TCP 序号和确认号,I just sent #10.,I just got #10, now I need #11.,39,滑动窗口的概念,8.7.4 TCP的流量控制与拥塞控制 TC

13、P 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。 在TCP报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。 发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(增大或减小)。,40,滑动窗口机制,发送端要发送 900 字节长的数据,划分为 9 个 100 字节长的报文段,而发送窗口确定为 500 字节。 发送端只要收到了对方的确认,发送窗口就可前移。 发送 TCP 要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。,收到确认即可前移,可发送,不可发送,指针,41,滑动窗口机制,发送

14、端已发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。 现在发送端还可发送 300 字节。,可发送,不可发送,42,滑动窗口机制,发送端收到了对方对前 400 字节数据的确认,但对方通知发送端必须把窗口减小到 400 字节。 现在发送端最多还可发送 400 字节的数据。,可发送,不可发送,43,利用可变窗口机制进行流量控制,双方确定的初始窗口值是 400,主机 A,主机 B,允许 A 再发送 300 字节(序号 201 至 500),A 还能发送 200 字节,A 还能发送 200 字节(序号 301 至 500),A 还能发送 300 字节,A 还能发送 1

15、00 字节(序号 401 至 500),A 超时重发,但不能发送序号 500 以后的数据,允许 A 再发送 200 字节(序号 501 至 700),A 还能发送 100 字节(序号 501 至 700),不允许 A 再发送(到序号 600 的数据都已收到),44,拥塞控制,发送端的主机在确定发送报文段的速率时,既要根据接收端的接收能力,又要从全局考虑不要使网络发生拥塞。 因此,每一个 TCP 连接需要有以下两点: 接收端窗口 rwnd (receiver window) 又称为通知窗口(advertised window)。 拥塞窗口 cwnd (congestion window)。,45

16、,接收端窗口 和拥塞窗口,接收端窗口 rwnd :这是接收端根据其目前的接收缓存大小所许诺的最新的窗口值,是来自接收端的流量控制。接收端将此窗口值放在 TCP 报文的首部中的窗口字段,传送给发送端。 拥塞窗口 cwnd (congestion window) : 是发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制。,46,发送窗口的上限值,发送端的发送窗口的上限值应当取为接收端窗口 rwnd 和拥塞窗口 cwnd 这两个变量中较小的一个,即: 发送窗口的上限值 Min rwnd, cwnd 当 rwnd cwnd 时,是接收端的接收能力限制发送窗口的最大值。 当 cwnd

17、 rwnd 时,则是网络的拥塞限制发送窗口的最大值。,47,慢启动算法的原理,在主机刚刚开始发送报文段时可先将拥塞窗口 cwnd 设置为一个最大报文段 MSS 的数值。 在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个 MSS 的数值。 用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理。,48,乘法减小,“乘法减小”(multiplicative decrease)是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞),就把慢启动门限值 ssthresh 设置为当前的拥塞窗口值乘以 0.5。 当网络频繁出现拥塞时,ssthresh

18、 值就下降得很快,以大大减少注入到网络中的分组数。,49,加法增大,“加法增大” (additive increase)是指执行拥塞避免算法后,当收到对所有报文段的确认就将拥塞窗口 cwnd增加一个 MSS 大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。,50,TCP的差错控制,8.7.5 TCP的差错控制 1差错检测和纠正 TCP中的差错检测是通过三种简单工具来完成的:检验和、确认和超时重传。 每一个报文段都包括检验和字段,用来检查受损的报文段;若报文段受到损伤,就由目的TCP将其丢弃。 TCP使用确认的方法来证实收到了某些报文段。 TCP不使用否认。若一个报文段在超时截止期之前未被确认

19、,则被认为是已受损伤或丢失。,51,TCP 的可靠传输,TCP的可靠数据流传输服务的基础是 带重传的肯定确认技术 技术要点: 1、收方收到报文段后向发方回送确认信息Ack; 2、发方在送出一个报文段后启动重传定时器RTO(retransmission timer),当超过某个时限而没有收到确认信息Ack时,重发原报文段; 3、收方删除重复的报文段; 4、发方发出的报文段得到确认Ack后,发送窗口可以向前滑动;窗口未满时才能继续发送。,52,受损伤的报文段,2报文段受损或丢失的纠正 采用超时重发机制。,Window size = 600,Receiver,Sender,Sender,受损,53,

20、TCP的差错控制,3重复的报文段 当含有同样序号的分组作为另一个收到的报文段到达时,目的TCP丢弃这个分组。 4失序的报文段 对失序的报文段不确认,直到收到所有它以前的报文段为止。,54,丢失的确认信息,5丢失的确认 丢失的确认可能不会被源站点发现。,Window size = 600,Receiver,Sender,Sender,丢失,55,TCP 的重传机制,重传机制是 TCP 中最重要和最复杂的问题之一。 TCP 每发送一个报文段,就对这个报文段设置一个计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。 在传输层中,TCP确认到达的时间概率分布不是很集中,所以确定超

21、时重发的时间就很困难。,56,往返时延的自适应算法,记录每一个报文段发出的时间,以及收到相应的确认报文段的时间。这两个时间之差就是报文段的往返时延。 将各个报文段的往返时延样本加权平均,就得出报文段的平均往返时延 RT。 每测量到一个新的往返时延样本,就按下式重新计算一次平均往返时延 RT: 平均往返时延RT (旧的RT) (1 ) (新的往返时延样本) 在上式中,0 1。,57,参数 的选择,若 很接近于 1,表示新算出的平均往返时延 RT 和原来的值相比变化不大,而新的往返时延样本的影响不大(RT 值更新较慢)。 若选择 接近于零,则表示加权计算的平均往返时延 RT 受新的往返时延样本的影

22、响较大(RT 值更新较快)。 典型的 值为 7/8。,58,超时重传时间 RTO,计时器的 RTO (RetransmissionTime-Out)应略大于上面得出的 RT,即: RTO RT 这里 是个大于 1 的系数。 若取 很接近于1 ,发送端可及时地重传丢失的报文段,因此效率得到提高。 但若报文段并未丢失而仅仅是增加了一点时延,那么过早地重传反而会加重网络的负担。 因此 TCP 原先的标准推荐将 值取为 2。,59,运输连接的三个阶段,8.7.6 TCP传输连接的管理 传输连接分为三个阶段,即:连接建立、数据传送和连接释放。传输连接的管理就是使传输连接的建立和释放都能正常地进行。 连接

23、建立过程中要解决以下三个问题: 要使每一方能够确知对方的存在。 要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。 能够对传输实体资源(如缓存大小,连接表中的项目等)进行分配。,60,客户服务器方式,TCP 的连接和建立都是采用客户服务器方式。 主动发起连接建立的应用进程叫做客户(client)。 被动等待连接建立的应用进程叫做服务器(server)。,61,TCP 三次握手机制/建立连接,Host A,Host B,62,TCP 三次握手机制/建立连接,主机A向主机B发送1个同步TCP段请求建立连接。例如,TCP段中序号=X,控制码:SYN=1(建立同步连接的标志) 、A

24、CK=0 主机B将确认主机A的请求,并同时向主机A发出同步请求。TCP段中序号= Y, 控制码:SYN=1、ACK=1 (确认号字段有效标志) ,确认号=X+1 主机A将确认主机B的请求,即向主机B发送确认TCP段。TCP段中序号= X+1,控制码: SYN=0, ACK=1,确认号=Y+1 主机A在已建立的连接上开始传输TCP数据段: TCP段中序号= X+1,控制码: SYN=0, ACK=1,确认号=Y+1,DATA,63,TCP传输连接的释放,Host A,Host B,通知应用进程,64,TCP传输连接的释放,TCP使用修改的三次握手机制关闭连接: 主机A端发送完数据,向主机B端发F

25、IN报文段,请求释放连接。即通知对方:我方不再发送数据,准备释放连接,但你若有数据,我仍接收。FIN=1,=x; 主机B收到后,立即发出确认段:ACK=1,=y;同时通知上层相应的应用进程,对方要求关闭连接,此后不再接收主机A的数据;但若B端的数据未发完,可继续发送。 主机B的应用进程若同意关闭连接,则向主机A发送FIN报文段:FIN=1,=y,=x+1; 主机A收到后回送一个确认报文段: ACK=1 ,=y+1,主机B收到后即可关闭连接。,65,TCP传输服务的特征,面向连接的传输三次握手建立虚电路连接; 全双工的通信一个TCP连接支持两个通信的高层协议之间的双向数据传递; 定时机制当系统的

26、条件不能按用户定义的超时参数及时传递数据时,TCP通知高层协议服务失败; 连续保序的传输TCP按照发方高层的数据顺序连续保序地传输; 无结构的流传输TCP将上层的各种数据报文(文本、图形、图象、数据库等)一律是为视为无结构的字节流来传输。用户数据的边界由收发双方约定并在用户进程中实现。 流量控制TCP使用滑动窗口技术调整流量,控制拥塞; 差错控制在校验和的范围内保证数据的无差错传递。,66,8.7.7 用户数据报协议UDP,8.7.7 用户数据报协议UDP UDP采取无连接的方式提供高层协议间的事务处理服务,允许它们互相发送数据报。即,UDP是在计算机上规定用户以数据报方式进行通信的协议,可供

27、应用进程直接使用。 UDP协议是基于IP协议的,只在IP数据报的服务之上增加了一点点功能,即端口的功能。因此UDP可以识别应用进程。 UDP保留上层应用程序产生的报文的边界,即它不会对报文合并或分段处理,这样使得接收方收到的报文与发送时的报文大小完全一致。,67,UDP提供的服务,虽然UDP提供的是无连接、不可靠的,但尽最大努力去交付的服务,但许多应用协议是基于UDP的。 如:DNS、RIP、TFTP、SNMP、NFS等使用UDP; 但:TELNET、 SMTP、 HTTP、FTP等使用TCP。,68,UDP 数据报的格式,注意: UDP伪首部的格式与TCP的伪首部的格式相同,只是协议字段的值

28、为17。,69,数据包实例,8.7.8一个TCP/IP数据包实例 在分析实例的时候,注意以下几个方面: (1)网络上传输的数据包是逐层封装的 (2)数据包是从最底层开始分析的 (3)数据的下面,是分层对协议报头各字段的分析。,70,数据包实例: 00 03 0f ff ba f1 02 e0 3b e8 6c 13 08 00 45 00 05 a8 19 1b 40 00 77 06 ad f1 d3 61 a8 af d2 1f e9 12 00 50 0c cc 20 d9 04 4c d6 20 e3 fe 50 10 fe f2 39 89 00 00 协议分析: Frame 1 (

29、1462 on wire, 1462 captured) Arrival Time: Apr 27, 2004 15:37:08.310024000 Frame Number: 1 Packet Length: 1462 bytes Capture Length: 1462 bytes,数据包实例,71,Ethernet II的帧首部: 00 03 0f ff ba f1;Destination: 00:03:0f:ff:ba:f1 02 e0 3b e8 6c 13;Source: 02:e0:3b:e8:6c:13 08 00;Type: IP (0 x0800) Internet Pro

30、tocol,Src-Addr;(75), Dst-Addr: lao-ji (8) 45;Version: 4 (0100B) ;Header length: 20 bytes (0101B) 00;Differentiated Services Field: Default; ECN:0 x00)服务类型0000 00. = Differentiated Services Codepoint: Default (0 x00) . .0. = ECN-Capable Transport (ECT): 0 . .0 = ECN-CE: 0,数据包实例,72,05 a8;Total Length: 1448 19 1b;Identification: 0 x191b 4;Flags: 0 x04 .1. = Dont fragment: Set .0. = More fragments: Not set 0 00;Fragment offset: 0 77;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论