chapter 11, 12 UDP TCP

传输层功能

1、应用层与网络层操作的中介

2、提供进程间的通信

3、提供差错与流量控制


进程标识:IP头部的IP地址+传输层头部的端口号;


UDP 用户数据报协议

UDP头:

源端口(16)+目的端口(16)

总长度(16)+校验和(16); 

总长度:65535-20(IP头)-8 (UDP头)= 65507


IP的校验和只校验头部,而UDP校验包含UDP整个报文:UDP伪首部+UDP首部+数据

UDP只与计算校验和有关,根据IP首部信息形成,不会与UDP一起发送;


校验和操作:可选,有时为了减少高可靠性网络上的传输开销;


伪首部信息存在的问题

源IP不确定(路由器上有多个输出端口);

计算过程:

1、封装的UDP发送给IP;

2、IP选路,得到源IP,送回给UDP;

3、UDP层计算校验和,再送给IP层;


UDP与IP:

都是无连接、不可靠,面向报文单元;

但IP不是针对进程,要完成进程间通信,就要增加UDP;


TCP

通用、可靠的进程到进程通信;

提供统一的数据流投递服务接口;


UDP

投递单元:报文;

有报文边界;

发送:报文,前后报文不可能合并


TCP投递单元:字节    //字节流

无报文边界;

发送:数据块或逐字节,前后可合并;


可靠传输的特点:

1、应用层使用自己认为的适宜的任意大小的数据片(最小1B)

2、 TCP协议软件:根据网络的情况选择合适的收发缓冲区;(合并或分割)

3、Push:强制滞留数据的发送;如要合并过程可能要等数据累积到一定程度才发送;


TCP为应用层提供的是字节流;对下层提供的是片;


TCP只有一种报文格式,完成:(因此报文比较复杂)

建立、拆除连接;

数据输出;

确认、流控、窗口滑动;


TCP报文段格式

报文与字节流:TCP是面向字节流,是指对上层提供字节流服务,内部处理也是字节;而TCP要将数据与IP层进行收发数据都是以报文段的为单元

TCP头部
16 sPort + 16 tPort
32 Sequence number  // 字节为单位
32 Acknowledgement number

4 HLEN + 6 Reserved(保留位) + (控制字段) URG + ACK + PSH + RST + SYN + FIN + 16 窗口大小

16 校验和(与UDP相同) + 16 紧急指针

填充位


控制字段

URG:紧急指针有效时有用;
RST:连接复位;
ACK:1时确认号有用(对任何报文进行确认)
SYN:连接建立
PSH:推操作
FIN:连接终止;

数据流、报文段、收发缓冲

序号:是报文段的序号,第一个字节的流序号;

如当前报文段流序号:X,长度是L,则下一报文段序号为X+L;

序号有32比特,4GB,序号是不连续的;


紧急指针与带外数据

带外数据(紧急数据):
主要位于TCP报文 数据字段的开始

会在TCP的接收缓冲中排队,而是直接提交给上层

提供快速数据传递功能;

紧急指针:有带外数据时有效,指向带外数据的最后一个字节

TCP不提供独立的带外数据通道,而是直接将数据插入到正常数据流中进行传送,而紧急指针指向了这个带外数据的最后一个字节的后一位;


窗口大小 

窗口大小=首部中定义的窗口大小*2^窗口比例因子

窗口比例因子最大值16比特;

窗口比例因子只能在连接阶段确定,窗口大小在传输阶段改变;


TCP可靠性

按序、无差错、不丢失不重复;

差错检测

检测:校验和、确认、超时

纠正:重传


TCP确认机制

确认机制:带重传肯定的确认

累计确认:

ACK是接收方希望接收的下一个字节;(如发送的是1401序号,返回的ACK是1601,发送方接收到1601,则发送序号为1601的报文段)

ACK号以前的所有字节确认;


超时重传机制

发送方发送数据时启动一个定时器;

定时期间,收到确认后再发送后续数据;

定时期满,发送方重传未确认的数据;


未确认的数据:

受损或丢失的数据;

确认丢失的数据;


重复报文
当重传定时器时间<RTT(Round Trip Time)







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值