计算机网络5-第五章-运输层进程间的通信问题收发件人双方如何确认
计算机网络5 第五章 运输层——进程间的通信问题(收发件人双方如何确认)
- 运输层是基于网络层的运输。网络层提供底层连接,运输层则是依赖于虚电路/数据报服务实现进程间通信的
- 发送端进程把数据(信件)放进自己的“邮箱”
- 网络层负责把“信件”从发送端的“邮箱”送到接收端的“邮箱”
- 接收端进程从自己的“邮箱”中取出数据
回应这些问题:
UDP/TCP有什么特点?可以用于什么?
TCP是如何连接的?(套接字作为邮箱接口)
TCP的结构如何?尤其是头部要掌握哪几个部分?代表什么意思?
TCP有哪两种传输方式?(停止等待协议、滑动窗口AQR协议)
TCP如何找到最大不拥塞传输量的?(大题)
TCP如何处理连接和释放的?
1 用户数据报协议UDP
udp不考虑精度,开销小,只考虑速度,可以在不可靠介质传播,用于打视频电话、视频会议。
因此是一对多的。
2 传输控制协议TPC ★
我和你写邮件,一对一的,且是可靠的,而且可以同时写信手信。
TCP是基于网络层的虚连接传输的,文档可以切割为字节流,并缓存发送,因此按照字节流传输
UDP是基于网络层的数据报服务传输的,传输视频不能切成字节流,因此要按报文传输
将报文切割为数据块,并编号,用于传输后重组。
2.2 TCP的连接
TCP 连接的端点:套接字(Socket)
1. 什么是套接字?
- 套接字(Socket)是一个通信端点,用于标识网络中的一个进程。
- 它由两部分组成:IP 地址 + 端口号(进程端口)。
2. 套接字的作用
- 在 TCP 连接中,每个端点都有一个唯一的套接字。
- 发送端和接收端通过各自的套接字进行数据交换。
3. 套接字的表示方式
套接字 = (IP地址 : 端口号)
2.3 TCP的首部格式
序号——代表当前数据块的编号
确认后——代表下一个要重组的数据块编号
控制位:
ACK确认位:确认TCP是否建立连接(1)
SYN同步位:确认两设备是否同步(1)
3 TCP可靠传输的实现
3.1 停止等待协议——超时协议看门狗WTD
接受后必须返回一个确认信号ACK,如果超时就会重新发送
3.2 连续ARQ协议
1 滑动窗口型
2 同时发送窗口大小的分组,以接收到最后一个分组的ACK信号为准。
比如一次要传输5个分组,可以将两个分组放入缓存中,发送,当收到接受的ACK信号后,按照确认号,继续发送剩下的3个分组。
题目
4 TCP流量控制与拥塞控制 ★——ARQ协议下如何找到最高效的传输方式
流量控制:传的太快,来不及接受丢包
拥塞控制:堵了的话传输速度不够会丢包
回应30分钟左右的阻塞控制:
Q1:为什么超时后要置为一重新慢开始?而不是把cwmd减一重新发送?
A1:超时意味着“严重拥塞”,不是“轻微丢包”,不是减一能解决的,要重新尝试合理的cwnd。 Q2:那个连续三次的ACK是什么意思?
A2:3个重复的AKC意味着据数包乱序到达,但比超时好,说明至少有一个包丢了,但后续包到了,但还是丢包了,因此也要降低cwmd重新慢开始。
答案核心:超时意味着“严重拥塞”,不是“轻微丢包”
🚨 关键区别:
信号 | 含义 | 网络状态判断 |
---|---|---|
3 个重复 ACK | 数据包乱序到达,说明至少有一个包丢了,但后续包到了 | 网络还在工作,只是轻微拥塞 |
超时(Timeout) | 完全收不到任何 ACK,连重复 ACK 都没有 | 网络可能“瘫痪”或严重拥塞 |
5 TCP的运输连接管理
5.1 TCP的连接方式——三次握手
客户机A自启动,B被动启动。
A向B发送连接请求,包括同步位SYN=1和信号序号seq=x(A不确定前一次信号序号是多少)
B开机后处于监听listen状态,收到A的请求后返回 同步信号SYN=1、确认(连接)号ACK=1、B给A的信号序号(B不确定前一次信号序号是多少)seq=y、以及期望收到的信号序号ack=x+1(A发送信号的下一位)
A收到返回后进入建立连接状态,同时向B发送 确认(连接)号ACK=1、信号序号seq=x+1(B刚刚期待A返回的序号)、以及期望收到的信号序号ack=y+1(B发送信号的下一位)
ack——期望对方下一条信号的序号
seq——当前A给B发送的信号序号
ACK——是否连接,连接过程中都要携带ACK=1
SYN——请求同步信号,只有请求时携带
FIN——终止请求信号
5.2 TCP的断开方式——四次握手
客户机A先向B发送终止请求信息FIN=1,当前信号序号seq=u
然后B收到后回复连接保持信号ACK=1、当前信号序号seq=v(B不知道前一次B向A发送的信号序号)、希望得到的回复信号序号ack=u+1,此时A进入等待终止状态1.
此时仅断开了A->B的发送连接,B进入等待关闭状态,B仍然可以向A发送信息,A处于等待终止状态2;
B发送完后,也向A发送终止请求信息FIN=1,当前信号序号seq=w,希望得到的回复信号序号ack=u+1、以及仍然保持连接的信号ACK=1
A收到信息后发送最后的保持连接信息ACK=1、当前信号序号seq=u+1、期望信号序号ack=w+1、并等待2MSL,如果发送失败还有机会再次发送。
B收到信号后进入关闭状态,A等待2MSL后进入关闭状态。