计算机网络05——传输层
文章目录
1. 传输层协议UDP和TCP
TCP 与UDP协议的作用范围提供进程间的逻辑通信
而IP协议的作用范围提供主机间的逻辑通信。
TCP/IP协议栈
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地址+端口(套接字)
4. UPD结构
3. TCP实现可靠传输
3.1 停止等待协议
设置一定的时间,一旦特定的时间没有收到,则重试发送。
超时重传
3.2 确实丢失和确认迟到
确认丢失:发送的数据一旦没有接受到数据时,则会重新发送,将第一个数据丢弃。
确认迟到:比如第一次发送的数据在特定的时间没有准确到达,过了很久才到达,则这种数据会丢失,利用已经准时获取的数据。
3.3 流水线传输
为了增加信道利用率,则发送方需要连续发送多个分组,不必每发送一组数据停顿下来等待接收方确认。
如何确认每次发送的数据量呢?
利用滑动窗口的方式,每次发送的数据必须在窗口里面。
3.3 TCP报文段首部
首部格式分为两部分:固定首部(20个字节)和可变部分
1. 固定首部
- 源端口:2个字节(16位)
- 目标端口:2个字节
- 序号:用于表示每个数据段的序号,因为数据包是分段传输的。该部分4个字节。
- 确认好:接收方给发送方的回馈,比如接收到了第5个字节,下一次需要发送第6个字节过来,表示发送方下一次要发送的起始字节,该部分4个字节。
- 数据偏移:表示TCP报文段真正有数据的位置。该部分有4位。该位置每个bit表示4个字节。
- 保留:6位二进制。
- URG:urgent,当
URG =1
时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。 - ACK ——
Acknowledgment
,建立请求的标志。只有当ACK = 1
时确认号字段才有效。当ACK = 0
时,确认号无效。 发送端向接收端发送连接请求是ACK = 0
,接收端同意发送端的请求,ACK = 1
- SYN —— 同步
SYN = 1
表示这是一个连接请求或连接接受报文,比如发送端给接收端请求是,SYN = 1
,接收端给发送端返回同意请求连接时,SYN = 0