计算机网络05——传输层

1. 传输层协议UDP和TCP

TCP 与UDP协议的作用范围提供进程间的逻辑通信
而IP协议的作用范围提供主机间的逻辑通信。
TCP/IP协议栈
计算机网络05——传输层

TCP:传输控制协议。一个数据包分段传输,并且每段编号,服务器和客户端之间建立关联会话,并且可以做流量控制,可靠性传输,面向字节流传输
UDP:用户数据包协议。**一个数据包就可以完成数据通信,不需要建立会话,不需要流量控制,不可靠传输,UDP首部开销小,只有8个字节。**比如DNS解析ip地址,多播或者广播

1. 传输层协议和应用层协议关系

常见应用层协议使用的端口:
http = TCP + 80
https = TCP + 443
RDP = TCP + 3389
ftp = TCP + 21
共享文件夹 = TCP +445
SMTP = TCP + 25
telnet = TCP + 23
DNS = UPD + 53

2. 服务和应用层协议的关系

服务器利用TCP或者UDP的端口侦听客户端请求,而客户端使用IP地址定位服务器使用,使用目标端口定位服务。
协议+端口

3. TCP协议

1. 端口

端口号只具有本地意义,端口号只是为了标志计算机应用层中的各个进程,*比如编码中经常出现的端口冲突,就是应用两个进程都占用一个端口。*一般是16位二进制表示。范围为[0,65535]
通信方式是通过:IP地址+端口(套接字)计算机网络05——传输层

4. UPD结构

计算机网络05——传输层

3. TCP实现可靠传输

3.1 停止等待协议

设置一定的时间,一旦特定的时间没有收到,则重试发送。
计算机网络05——传输层
超时重传

计算机网络05——传输层

3.2 确实丢失和确认迟到

确认丢失:发送的数据一旦没有接受到数据时,则会重新发送,将第一个数据丢弃。
计算机网络05——传输层
确认迟到:比如第一次发送的数据在特定的时间没有准确到达,过了很久才到达,则这种数据会丢失,利用已经准时获取的数据。

计算机网络05——传输层

3.3 流水线传输

为了增加信道利用率,则发送方需要连续发送多个分组,不必每发送一组数据停顿下来等待接收方确认。
如何确认每次发送的数据量呢?
利用滑动窗口的方式,每次发送的数据必须在窗口里面。

计算机网络05——传输层

3.3 TCP报文段首部

首部格式分为两部分:固定首部(20个字节)和可变部分

1. 固定首部

  1. 源端口:2个字节(16位)
  2. 目标端口:2个字节
  3. 序号:用于表示每个数据段的序号,因为数据包是分段传输的。该部分4个字节。
  4. 确认好:接收方给发送方的回馈,比如接收到了第5个字节,下一次需要发送第6个字节过来,表示发送方下一次要发送的起始字节,该部分4个字节。
  5. 数据偏移:表示TCP报文段真正有数据的位置。该部分有4位。该位置每个bit表示4个字节。
  6. 保留:6位二进制。
  7. URG:urgent,当 URG =1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
  8. ACK —— Acknowledgment,建立请求的标志。只有当 ACK = 1 时确认号字段才有效。当ACK = 0 时,确认号无效。 发送端向接收端发送连接请求是ACK = 0,接收端同意发送端的请求,ACK = 1
  9. SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文,比如发送端给接收端请求是,SYN = 1,接收端给发送端返回同意请求连接时,SYN = 0

4. TCP流量控制

5. TCP的阻塞控制

6. TCP的传输连接管理