【计算机网络复习】第三章 传输层 2

UDP: 用户数据报协议

u 简单高效的传输层协议

u 提供“尽力而为(best effort)”服务

Ø UDP数据报可能丢失

Ø 接收的顺序可能与发送顺序不一致

u 无连接协议

Ø 在发送数据之前,发送端和接收端没有握手(handshaking )

Ø 每个UDP数据报都是独立的,和其他的数据报无关

u IP增强了:

Ø 多路复用/多路分解

 

 

UDP的数据报格式

u 报头:固定为8字节

Ø 源端口号:16

Ø 目的端口号:16

Ø 数据报长度:16位,以字节为单位,报头+数据,最大长度65535字节

Ø 校验和:16

校验和计算方法

u 将数据按16位一组来分组

u 各组对应位相加

u 最高位的进位累加到结果的最低位

u 对最终结果取反码

伪报头只用于校验和的计算,不发送

TCP

u 面向连接

Ø 数据发送之前,发送端和接收端要握手(handshaking),建立逻辑连接,协商参数,如起始序号、窗口长度等

u 全双工数据传输(full duplex):

Ø 在一个连接之上,可以同时进行双向数据传输

u 端到端传输

Ø 1-1:单播(unicast)

 

u 采用连续ARQ协议,流水线方式工作

Ø 发送窗口长度由流量控制拥塞控制算法决定

u 流量控制(Flow Control)

Ø 接收端可以限制发送端发送速度(发送窗口长度)

u 拥塞控制(Congestion Control)

Ø 根据网络状况,可以限制发送端的发送速度(发送窗口长度)

u 可靠、按序的字节流传输

Ø 窗口长度以字节为单位

 

 

 

控制字段

连接建立:三次握手

 

Ø 1步:TCP客户端发送SYN报文段连接请求

SYN=1

指定客户端的发送序号,无数据

Ø 2步:TCP服务器端返回SYN/ACK报文段连接响应

SYN=1 ACK=1

指定服务器端的发送序号,无数据

Ø 3步:TCP客户端回应ACK报文段连接确认

ACK=1

报文段内可能包含数据

TCP的连接释放:4步释放

u 两个方向分别释放:半关闭连

u 第1步:主机1发送FIN报文段

u 第2步:主机2返回ACK报文段,主机1-2方向的连接被关闭,资源被释放

u 第3步:主机2发送FIN报文段

u 第4步:主机1返回ACK报文段,主机2-1方向的资源被释放,整个连接关闭

TCP的流量控制

u 流量控制的目的:防止发送方发送过快而导致接收方缓存溢出,造成数据丢失

 

u 基本方法:接收方反馈,限制发送方的发送数据量

Ø 报文段中“接收窗口”字段说明了接收方最多可以 接收的数据字节数

Ø 发送方在收到下一个ACK之前发送的数据总量不能超过接收窗口值

u 发送窗口与接收窗口

TCP的传输效率问题

MSS:最大报文段长度, 一个报文段中的最大数据长度,在建立连接时协商

Ø 通常受底层物理网络的限制,例如在以太网上MSS=1460字节

u 报文段中的数据量接近MSS,则传输效率高

u 某些应用每次发送的数据量较小

Ø 交互类应用,如Telnet,每次只发送1字节数据

Ø 传输效率低!

Clark算法:接收端策略

Ø 只在有较大缓存(至少为1/2 MSS)时,才发送窗口更新通知

提高传输效率

Ø Nagle算法:一次尽量发送较大的数据量

Ø Clark算法:只在有较大缓存时,才发送窗口更新通知

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆水獭_(:_」∠)_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值