好文档 - 专业文书写作范文服务资料分享网站

计算机网络第六章 2讲

天下 分享 时间: 加入收藏 我要投稿 点赞

6.3 Internet传输协议

? 两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport

Protocol Data Unit)。

? TCP/IP的传输层有两个不同的协议:(1) 用户数据报协议 UDP (User Datagram Protocol)

(2) 传输控制协议 TCP (Transmission Control Protocol)

? TCP 传送的数据单位协议是 TCP 报文段(segment) UDP 传送的数据单位协议是 UDP

报文或用户数据报。

? UDP 在传送数据之前不需要先建立连接。对方的传输层在收到 UDP 报文后,不需要给

出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。

? TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、

面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。

? 强调两点: 1. 传输层的 UDP 用户数据报与网络层的IP数据报有很大区别。IP 数据报要

经过互连网中许多路由器的存储转发,但 UDP 用户数据报是在传输层的端到端抽象的逻辑信道中传送的。2. TCP 报文段是在传输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面的传输层是否建立了 TCP 连接

6.3 1 用户数据报协议 UDP

6.3.1.1 UDP (User Datagram Protocol)概述 RFC 768

? UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口(端口用来标志应用层的

进程)的功能和差错检测的功能(可选功能)。

1 16 32 源端口 UDP长度=8B的UDP头部+数据 UDP头

目标端口 UDP校验和(可选,若不计算,则全0) ? UDP是一个简单的传输协议; 提供’best effort’服务, UDP报文可能会丢失和乱序;

? 虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。

? 发送数据之前不需要建立连接(结束时也就无连接释放),因而开销小和发送数据前

的延迟小 收发双方不需要握手, 每个UDP报文的处理都独立于其它报文

? UDP 的主机不需要维持复杂的连接状态表。因为不使用拥塞控制,也不保证可靠

交付.

? UDP 用户数据报只有8个字节的首部开销。比TCP的20个字节的首部短

? 没有拥塞控制, 可以尽快发送, 所以网络出现的拥塞不会使源主机的发送速率降

低。这对某些实时应用是很重要的。很多实时应用(IP电话, 实时视频会议等)要求源主机以恒定的速率发送数据, 并且允许在拥塞时丢失一些数据, 但却不允许数据有太大的时延.

? UDP尤其适用的一个领域是在客户-服务器的情形下.远过程调用 RPC(Remote

1

Procedure Call)和UDP是一对好搭档.(无连接, 无流控,无错控,无重传,短请求短回应), 如RIP路由信息周期发送,DNS避免TCP连接建立延迟,SNMP 当网络拥塞时,UDP比用可靠的,具有拥塞控制的TCP效果好.

? RTP(Real-Time transport Protocol 实传输协议) RFC 1889

RTP在协议栈中位置有点古怪.最终RTP被放在用户空间中,并且运行在UDP之上. 这种设计结果是, 你很难说清RTP位于哪一层上.RTP无流控,无错控,无确认, 无请求重传机制.

用户空间多媒体用用RTP套接字接口UDP操作系统内核IP以太网以太网头IP头UDP头RTP头RTP净荷UDP净荷IP净荷以太网净荷

(a)RTP在协议栈中的位置 (b)分组嵌套情况

使用UDP和TCP协议的各种应用和应用层协议 应用 名字转换 应用层协议 DNS 传输层协议 UDP UDP UDP TCP TCP 应用 网络管理 IP电话 流式多媒体通信 多播 远程终端接入 文件传输 应用层协议 SNMP 专用协议 专用协议 IGMP TELNET FTP 传输层协议 UDP UDP UDP UDP TCP TCP 简单文件传输 TFTP 路由选择协议 RIP IP地址配置 电子邮件 万维网 SMTP HTTP BOOTP,DHCP UDP 6.3.1.2 UDP 用户数据报的首部格式 用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段有 8 个字节,由 4 个子字段(域)组成,每个子字段都是两个字节。

在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和, 伪首部既不向上递交也不向下传送。伪首部5个字段中: 17—IP协议头部中的协议字段,对应UDP; 6—IP协议头部中的协议字段,对应TCP

2

字节 4 源 IP 地址 4 目的 IP 地址 2 源端口 2 目的端口 1 1 2

0 17 UDP长度 2 长 度 2 检验和 字节 12 伪首部 UDP 用户数据报 发送在前 首 部 首 部 数 据 数 据 IP 数据报

计算 UDP 检验和的例子

10011001 00010011 → 153.19

153.19.8.104 00001000 01101000 → 8.104 12 字

171.3.14.11 10101011 00000011 → 171.3 伪首部

全 0 17 15 00001110 00001011 → 14.11 1087 13 8 字节 00000000 00010001 → 0 和 17

UDP 首部 15 全 0 00000000 00001111 → 15 7 字节 数据 数据 数据 数据 00000100 00111111 → 1087 数据 数据 数据 数据 全 0 00000000 00001101 → 13

00000000 00001111 → 15

填充 00000000 00000000 → 0(检验和) 01010100 01000101 → 数据 01010011 01010100 → 数据 01001001 01001110 → 数据

(填充) 按二进制反码运算求和 01000111 00000000 → 数据和 0

将得出的结果求反码 10010110 11101011 → 求和得出的结果

01101001 00010100 → 检验和

6.3.2 传输控制协议 TCP(transmission control protocol)

6.3.2.1 TCP 概述 RFC 793 RFC1122 RFC1323

完成任务: 判断是否超时, 重传, 顺序组装等功能, 提供IP无法提供的可靠性.

为获得TCP服务, 发收双方必须首先创建套接字=IP+Port. 一个套接字有可能同时被用于多个连接, 所以连接可以用两端的套接字标识符来标识, 即(socket1, socket2). 1024以下的端口号被称为

3

知名端口(well-known port), 被保留用于一些标准的服务.

所有的TCP连接都是全双工的,并且是点到点的. 所谓全双工----同时可在两个方向上传输数据. 所谓点到点----每个连接恰好有两个端点. TCP不支持多播或广播传输模式.

发送端 接收端

应用进程

? 端口 … 应用进程

? … 向发送缓存 写入数据块从接收缓存 读取数据块端口 TCP 发送缓存 报文段 报文段

TCP 接收缓存 … 报文段

24 31目的端口序号20 字节的固定首部窗口紧急指针(长度可变)填充发送TCP 报文段

32 bit比特0 8 16 源端口TCP首部确数据偏移保留检验和选项认号UAPRSFRCSSYIGKHTNNTCP 报文段发送在前TCP 首部TCP 数据部分 源端口和目的端口字段——各占 2 字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现。

序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。

确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。

4

IP 首部IP 数据部分数据偏移——占 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长度。

紧急指针字段 —— 占 16 bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。 选项字段 —— 长度可变。TCP 只规定了一种选项,即最大报文段长度 MSS (Maximum Segment Size)。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”

MSS 是 TCP 报文段中的数据字段的最大长度。

数据字段加上 TCP 首部才等于整个的 TCP 报文段。

填充字段 —— 这是为了使整个首部长度是 4 字节的整数倍。 6.3.2.2 TCP 的数据编号与确认

? TCP 协议是面向字节的。TCP 将所要传送的报文看成是字节组成的数据流,并使每一个

字节对应于一个序号。

? 在连接建立时,双方要商定初始序号。TCP 每次发送的报文段的首部中的序号字段数值

表示该报文段中的数据部分的第一个字节的序号。

? TCP 的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数

据的最高序号加 1。因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。

6.3.2.3 TCP 的流量控制与拥塞控制 1. 滑动窗口的概念

? TCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。

? 在 TCP 报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。 ? 发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,

随时动态地调整对方的发送窗口上限值(可增大或减小)。

5

计算机网络第六章 2讲

6.3Internet传输协议?两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元TPDU(TransportProtocolDataUnit)。?TCP/IP的传输层有两个不同的协议:(1)用户数据报协议UDP(UserDatagramProtocol)(2)传输控制协议TCP(Tra
推荐度:
点击下载文档文档为doc格式
17mo42do3z9x6b742rz56u75f0b3w101dcm
领取福利

微信扫码领取福利

微信扫码分享