计算机网络随心笔记(传输层)
01、应用层协议很多,传输层就两个协议,如何使用传输层两个协议标识应用层协议呢?
02、服务和端口的关系
- 客户端通过IP地址定位服务器,通过协议和端口号定位服务器上的服务
03、客户端端口的作用
- 客户端软件可以同时访问多个服务器,客户端会为每个出去的流量分配一个唯一的源端口
04、端口和网络安全的关系
- 客户端和服务器之间的通信使用应用层协议,应用层协议使用传输层协议 + 端口标识,如果网络设备封掉TCP 或UDP的某个端口,就不能访问其对应的服务,就可以实现网络安全。
因此,我们为保障服务器网络安全,只开放必要的端口。(windows上可以通过设置TCP/IP筛选和windows防火墙来实现)
另外,可以在网络设备上控制端口。
05、UDP协议特点
- 无连接。减少了开销和发送数据之前的时延
- 尽最大努力交付。因此主机不需要维持复杂的链接状态表(其中有很多参数),通信的两端不用保持连接,节省了系统资源
- UDP面向报文。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给网络层。UDP对应用层交下来的报文既不合并也不拆分,而是保留这些报文的边界
- UDP没有拥塞控制。当网络出现拥塞时不会使源主机的发送速率降低
- UDP支持一对一、一对多、多对一和多对多的交互通信
- UDP的首部开销小,只有8字节(TCP首部20字节)
06、UDP的首部格式
07、TCP、UDP为什么要有伪首部?
伪首部只用于计算校验和
08、TCP协议特点
- 面向连接的传输层协议
- 每条TCP连接只能有两个端点(一对一)
- TCP提供可靠交付的服务。即通过TCP连接传送的数据,无差错、不重复、不丢失、不失序
- TCP提供全双工通信。TCP允许通信双方的应用程序在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据。
在发送时,应用程序把数据传送给TCP的缓存后,就可以做自己的事了,而TCP在合适的时候把数据发送出去; 在接收时,TCP把收到的数据放入缓存,上层的应用进程在合适的时候读取缓存中的数据。 - 面向字节流。“流”指的是流入到进程或从进程中流出的字节序列
09、TCP报文首部格式
序号的意义
10、TCP可靠传输的实现:停止等待协议
对比原来的“停止等待协议” 和改进后的“连续ARQ协议和滑动窗口协议”
11、TCP连续ARQ协议和滑动窗口协议
ARQ协议,即自动重传请求(Automatic Repeat-reQuest),是OSI模型中数据链路层和传输层的错误纠正协议之一。它通过使用确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。
ARQ协议分 停止等待ARQ协议 和 连续ARQ协议 ,连续ARQ协议了采用滑动窗口方法,又分为 后退N步协议 和 选择重传协议。
https://blog.csdn.net/guoweimelon/article/details/50879588
12、以字节为单位的滑动窗口技术详细图
TCP 通信时,如果发送序列中间某个数据包丢失, TCP 会通过重传最后确认的分组后续的分组,这样原先已经正确传输的分组也可能重复发送,降低了 TCP 性能。
为改善这种情况,发展出 SACK Selective Acknowledgment ,选择确认)技术,使TCP 只重新发送丢失的包,不用发送后续所有的分组,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据已经提前收到等。
13、拥塞控制
1、慢开始
2、拥塞避免
3、快重传
- 快重传算法首先要求接收方每收到一个失序的分组后就立即发出重复确认,为的是使发送方尽早知道有部分分组没有到达对方,而不是等待自己(接收方)发送数据时才进行捎带确认。
- 快重传算法规定,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必等待到 该报文段 设置的重传计时器到期。
4、快恢复
可靠传输
流量控制
拥塞控制
|