TCP/IP复习笔记
传输层
- 传输层的功能
- 提供进程到进程、端到端通信
- 运输层向它上面的应用层提供通信服务
- 端口
- 用来标识通信的终点,而不需要具体知道实现这个功能的进程是哪一个
- 端口用一个16位端口号进行标识
- 端口号只具有本地意义,即端口号只是为了标记本计算机应用层中的各进程
应用程序 | FTP | TELENT | SMTP | DNS | TFTP | HTTP | SNMP |
---|---|---|---|---|---|---|---|
熟知端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 |
TCP与UDP的特点
- 传输控制协议 TCP
- TCP是面向连接的
- 提供可靠的、面向连接的服务
- 面向字节流
- 每一条TCP连接只能有两个端点,不提供广播或多播服务
- 全双工通信
- 用户数据报协议 UDP
- UDP是无连接的
- 尽最大努力交付,检错什么的交给上层应用
- 面向报文的(应用层交下的报文,不合并拆分,仅添加头部之后就向IP层交付)
- 没有拥塞控制
- 提供一对一、一对多、多对一和多对多的交互通信
TCP可靠传输的原理
1.停止等待协议
停止等待:每发完一个分组就停止发送,等待接收方的确认。在收到确认之后再发送下一个分组。
- 无差错情况
- 超时重传
超过一段时间没有收到确认,就重新发送。 - 确认丢失
确认丢失之后,达到了超时重传的时间就重新发送,接收端丢弃重复的分组,重新确认。
- 确认迟到
确认迟到后,达到了超时重传的时间发送端重新发送,接收端丢弃重复则分组并重新确认。接收端收到迟到的确认,什么都不做。
2.滑动窗口协议
TCP以1个段为单位,每发一个段进行一次确认应答的处理,这会导致包的往返时间越长通信性能越低。于是引入窗口的概念。
发送端主机在发送了一个段之后不必一直等待确认应答,而是继续发送。窗口大小就是指无需等待确认应答而可以继续发送数据的最大值。
在①状态下,如果收到一个序列号为2001的确认应答,那么2001之前的数据就没必要进行重发,这部分数据可以过滤掉,滑动窗口成为③的样子。
3.TCP流量控制
- 流量控制的目的:防止接收端无法接收过多的数据
- 具体操作:接收端向发送端通知自己可以接收数据的大小,于是发送端不会发送超过这个大小的数据。该大小限度就是窗口大小。
4.拥塞控制
- 慢开始和拥塞避免
- 快重传和快恢复