计算机网络第六章 2讲
- 格式:doc
- 大小:647.00 KB
- 文档页数:7
6、3ﻩInternet传输协议⏹两个对等运输实体在通信时传送得数据单位叫作运输协议数据单元TPDU (TransportProtocolDataUnit)。
⏹TCP/IP得传输层有两个不同得协议:(1)用户数据报协议UDP (User DatagramProtocol)(2)传输控制协议TCP(TransmissionControlProtocol)⏹TCP 传送得数据单位协议就是TCP 报文段(segment)UDP 传送得数据单位协议就是UDP报文或用户数据报。
⏹UDP 在传送数据之前不需要先建立连接。
对方得传输层在收到UDP报文后,不需要给出任何确认.虽然UDP 不提供可靠交付,但在某些情况下UDP 就是一种最有效得工作方式。
⏹TCP则提供面向连接得服务。
TCP不提供广播或多播服务.由于TCP要提供可靠得、面向连接得运输服务,因此不可避免地增加了许多得开销.这不仅使协议数据单元得首部增大很多,还要占用许多得处理机资源.⏹强调两点:1、传输层得UDP用户数据报与网络层得IP数据报有很大区别。
IP 数据报要经过互连网中许多路由器得存储转发,但UDP用户数据报就是在传输层得端到端抽象得逻辑信道中传送得。
2、TCP 报文段就是在传输层抽象得端到端逻辑信道中传送,这种信道就是可靠得全双工信道。
但这样得信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面得传输层就是否建立了TCP连接6、3 1用户数据报协议UDP6.3.1、1 UDP (User Datagram Protocol)概述RFC768⏹UDP 只在IP 得数据报服务之上增加了很少一点得功能,即端口(端口用来标志应用层得进程)得功能与差错检测得功能(可选功能)。
1 16UDP头⏹UDP就是一个简单得传输协议; 提供'besteffort'服务, UDP报文可能会丢失与乱序;⏹虽然UDP 用户数据报只能提供不可靠得交付,但UDP在某些方面有其特殊得优点。
⏹发送数据之前不需要建立连接(结束时也就无连接释放),因而开销小与发送数据前得延迟小收发双方不需要握手, 每个UDP报文得处理都独立于其它报文⏹UDP 得主机不需要维持复杂得连接状态表。
因为不使用拥塞控制,也不保证可靠交付、⏹UDP 用户数据报只有8个字节得首部开销.比TCP得20个字节得首部短⏹没有拥塞控制,可以尽快发送, 所以网络出现得拥塞不会使源主机得发送速率降低。
这对某些实时应用就是很重要得。
很多实时应用(IP电话,实时视频会议等)要求源主机以恒定得速率发送数据,并且允许在拥塞时丢失一些数据, 但却不允许数据有太大得时延、⏹UDP尤其适用得一个领域就是在客户—服务器得情形下、远过程调用RPC(RemoteProcedure Call)与UDP就是一对好搭档、(无连接,无流控,无错控,无重传,短请求短回应),如RIP路由信息周期发送,DNS避免TCP连接建立延迟,SNMP 当网络拥塞时,UDP比用可靠得,具有拥塞控制得TCP效果好、⏹RTP(Real-Time transportProtocol实传输协议) RFC 1889RTP在协议栈中位置有点古怪、最终RTP被放在用户空间中,并且运行在UDP之上、这种设计结果就是,您很难说清RTP位于哪一层上、RTP无流控,无错控,无确认,无请求重传机制、间操作系统内核(a)RTP在协议栈中得位置(b)分组嵌套情况用户数据报UDP 有两个字段:数据字段与首部字段。
首部字段有8 个字节,由 4 个子字段(域)组成,每个子字段都就是两个字节。
在计算检验与时,临时把“伪首部”与UDP 用户数据报连接在一起.伪首部仅仅就是为了计算检验与,伪首部既不向上递交也不向下传送.伪首部5个字段中:17—IP协议头部中得协议字段,对应UDP; 6—IP协议头部中得协议字段,对应TCP6。
3.2 传输控制协议 T CP (tr ansmis sion con trol pr otocol )6.3。
2、1 TCP 概述 RFC 793 RF C1122 RFC1323完成任务: 判断就是否超时, 重传, 顺序组装等功能, 提供IP 无法提供得可靠性、为获得TCP 服务, 发收双方必须首先创建套接字=IP+P or t、一个套接字有可能同时被用于多IP 数据报字节 4 4 1 1 2计算 UDP 检验与得例子10011 → 153、1900001 → 8、10410101 → 171、300001110 00001011 → 14、11 00000 → 0 与 1700000 → 1500000100 00111111 → 1087 00000 → 1300000 → 1500000 → 0(检验与)01010100 01000101 → 数据 01010 → 数据 01001 →数据→ 数据与 0(填充) 10010110 11101011 → 求与得出得结果01101 → 检验与12 字伪首部8 字节 UDP 首部 7 字节 数据 按二进制反码运算求与 将得出得结果求反码个连接,所以连接可以用两端得套接字标识符来标识,即(socket1,socket2)、1024以下得端口号被称为知名端口(well—known port),被保留用于一些标准得服务、所有得TCP连接都就是全双工得,并且就是点到点得、所谓全双工—--—同时可在两个方向上传输数据、所谓点到点----每个连接恰好有两个端点、TCP不支持多播或广播传输模式、发送端接收端应用进程应用进程发送TCP报文段源端口与目得端口字段—-各占2字节。
端口就是传输层与应用层得服务接口。
传输层得复用与分用功能都要通过端口才能实现.序号字段--占 4 字节.TCP 连接中传送得数据流中得每一个字节都编上一个序号。
序号字段得值则指得就是本报文段所发送得数据得第一个字节得序号.确认号字段——占4字节,就是期望收到对方得下一个报文段得数据得第一个字节得序号.数据偏移—-占4 bit,它指出TCP 报文段得数据起始处距离TCP报文段得起始处有多远.“数据偏移”得单位不就是字节而就是32 bit 字(4 字节为计算单位)。
保留字段—-占6 bit,保留为今后使用,但目前应置为0。
紧急比特URG-—当URG=1时,表明紧急指针字段有效。
它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级得数据)。
确认比特ACK -—只有当ACK= 1 时确认号字段才有效。
当ACK=0时,确认号无效。
推送比特PSH (PuSH) ——接收TCP 收到推送比特置 1 得报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。
复位比特RST(ReSeT)——当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其她原因),必须释放连接,然后再重新建立运输连接。
同步比特SYN ——同步比特SYN置为1,就表示这就是一个连接请求或连接接受报文.终止比特FIN(FINal)—- 用来释放一个连接.当FIN =1时,表明此报文段得发送端得数据已发送完毕,并要求释放运输连接.窗口字段-—占2字节。
窗口字段用来控制对方发送得数据量,单位为字节。
TCP连接得一端根据设置得缓存空间大小确定自己得接收窗口大小,然后通知对方以确定对方得发送窗口得上限。
检验与——占2字节。
检验与字段检验得范围包括首部与数据这两部分.在计算检验与时,要在TCP 报文段得前面加上12 字节得伪首部,第4字段为6,第5字段为TCP长度。
紧急指针字段-—占16bit。
紧急指针指出在本报文段中得紧急数据得最后一个字节得序号。
选项字段—- 长度可变。
TCP 只规定了一种选项,即最大报文段长度MSS (Maximum SegmentSize)。
MSS 告诉对方TCP:“我得缓存所能接收得报文段得数据字段得最大长度就是MSS个字节."MSS 就是TCP 报文段中得数据字段得最大长度。
数据字段加上TCP首部才等于整个得TCP报文段.填充字段—- 这就是为了使整个首部长度就是4 字节得整数倍.6.3.2、2TCP 得数据编号与确认⏹TCP协议就是面向字节得。
TCP将所要传送得报文瞧成就是字节组成得数据流,并使每一个字节对应于一个序号。
⏹在连接建立时,双方要商定初始序号。
TCP 每次发送得报文段得首部中得序号字段数值表示该报文段中得数据部分得第一个字节得序号。
⏹TCP 得确认就是对接收到得数据得最高序号表示确认。
接收端返回得确认号就是已收到得数据得最高序号加1.因此确认号表示接收端期望下次收到得数据中得第一个数据字节得序号。
6。
3.2、3 TCP 得流量控制与拥塞控制ﻫ1、滑动窗口得概念⏹TCP 采用大小可变得滑动窗口进行流量控制。
窗口大小得单位就是字节。
⏹在TCP报文段首部得窗口字段写入得数值就就是当前给对方设置得发送窗口数值得上限。
⏹发送窗口在连接建立时由双方商定。
但在通信得过程中,接收端可根据自己得资源情况,随时动态地调整对方得发送窗口上限值(可增大或减小).⏹发送端要发送900字节长得数据,划分为9 个100 字节长得报文段,而发送窗口确定为500字节。
⏹发送端只要收到了对方得确认,发送窗口就可前移.⏹发送TCP 要维护一个指针.每发送一个报文段,指针就向前移动一个报文段得距离。
⏹发送端已发送了400 字节得数据,但只收到对前200 字节数据得确认,同时窗口大小不变.⏹现在发送端还可发送300 字节.⏹发送端收到了对方对前400 字节数据得确认,但对方通知发送端必须把窗口减小到400字节.⏹现在发送端最多还可发送400字节得数据。
2、慢启动与拥塞避免⏹发送端得主机在确定发送报文段得速率时,既要根据接收端得接收能力,又要从全局考虑不要使网络发生拥塞。
⏹ 因此,每一个 TC P 连接需要有以下两个状态变量:⏹ 接收端窗口 rw nd (r ecei ver wi ndow ) 又称为通知窗口(adve rtised window)。
⏹ 拥塞窗口 cwn d (c ongestio n window )。
慢启动算法得原理⏹ 三个参数: 接收方窗口, 拥塞窗口, 阈值(threshold)—初始时刻阈值=16报文段,当 TCP 连接进行初始化时,将拥塞窗口置为 1。
图中得窗口单位不使用字节而使用报文段。
慢开始(阈值)门限得初始值设置为 16 个报文段, 即 s sthre sh = 16。
⏹ “拥塞避免”并非指完全能够避免了拥塞。
利用以上得措施要完全避免网络拥塞还就是不可能得。
⏹ “拥塞避免”就是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。
7。
3。
3 T CP 得重传机制⏹ 重传机制就是 TC P 中最重要与最复杂得问题之一。