传输层
传输层¶
传输层提供的服务¶
- 通常而言,如果是有连接的,那一定是可靠的;可靠的不一定是有连接的。
- 面向连接的服务可以保证数据的可靠和顺序交付。

UDP¶
UDP数据报¶
-
UDP的数据传输可靠性由应用层协议负责。
-
复用:是指发送方不同的应用进程都可以使用同一个传输层协议传送数据。
-
分用:是指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
注意:网络层也有复用和分用的功能,但是网络层的复用是指发送方不同协议的数据都可以被封装成IP数据报发送储区,分用是指接收方的网络层在剥去首部后把数据交付给响应的协议。
- UDP没有拥塞控制、流量控制的功能。

UDP校验¶
- IP数据报的首部校验和也是这种算法,但是只有首部会参与运算,数据部分是不参与的;同时是不添加伪首部的。
- UDP检验和不是必需的,若不使用检验和,则将检验和字段设置为0。而若检验和的计算结果恰好为0,则将检验和字段置为全1。




TCP¶
TCP协议的框架梳理¶
- 参与TCP连接的两个进程中的任何一个都能提出释放连接的请求。


TCP报文段¶
- URG:Urgent
- 紧急指针就是紧急数据的序号。
- RSS是复位位,其为1时表示出现严重错误,必须释放连接,然后重新建立连接。




TCP连接管理¶

建立连接¶


下图注意握手三如果不携带数据就不消耗序号



释放连接¶





TCP可靠传输、流量控制¶




- TCP为每个连接设有一个持续计时器,只要发送方收到对方的零窗口通知,就启动持续计时器。若计时器超时,则发送一个零窗口探测报文段,而对方就在确认这个探测报文段时给出现在的窗口值。若窗口仍然为零,则发送方收到确认报文段后就重新设置持续计时器。



注意!!!上图右侧有错误,正确请看下图


TCP拥塞控制¶
- TCP协议规定,ssthresh不能小于2。
- 拥塞窗口时发送端根据网络拥塞情况确认的窗口值。



习题笔记¶
- TCP为每个连接设有一个持续计时器,只要发送方收到对方的零窗口通知,就启动持续计时器。若计时器超时,则发送一个零窗口探测报文段,而对方就在确认这个探测报文段时给出现在的窗口值。若窗口值仍为零,则发送方收到确认报文段后就重新设置持续计时器。
- 常见熟知端口号


- 不经过传输层的协议

- 对于这一类题

应当是当前的发送窗口大小减去已发送但尚未被确认的数据量(字节数)
发送窗口大小 = min(接收窗口大小,拥塞窗口大小)
- 题里没说拥塞窗口会变大, 必须默认。在计算机网络考研/经典习题中,“TCP建立连接后从慢开始阶段启动,初始 cwnd=1,每收到一个ACK增加1” 是隐含的公理条件,不需要题目刻意强调。
- 微观上每收到一个新报文段的确认,拥塞窗口(cwnd)加 1 个 MSS;宏观上一轮完整发送并确认后,拥塞窗口大小翻倍。在 TCP 慢开始的“一轮”中,要想让拥塞窗口完全翻倍(从 2000B 变为 4000B),必须满足的前提是:当前窗口内发出的所有数据,都已经收到了对应的确认。一轮中所有ACK会先后到达,并且间隔很短,因此常被认为是一个RTT翻倍。