一.传输层
- 在OSI七层结构的第四层,建立主机端到端连接
- 第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。
- 传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。
- 网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。
二.TCP协议
1.TCP协议/IP协议族的传输层协议
TCP(Transmission Control Protocol: 传输控制协议),是计算机网络中非常复杂的一个协议
2.TCP协议的特点
- TCP是面向连接的协议
- TCP是面向字节流的协议
- TCP的一个连接有两端,即点对点通信
- TCP提供可靠的传输服务
- TCP协议提供全双工通信(每条TCP连接只能一对一)
3.TCP协议的功能
-
对应用层报文进行分段和重组
-
面向应用层实现复用与分解
- 实现端到端的流量控制
- 拥塞控制
- 传输层寻址
- 对收到的报文进行差错检测(首部和数据部分都检错)
- 实现进程间的端到端可靠数据传输控制
4.TCP报文段
- TCP将若干金字节构成一个分组,叫报文段(Segment)
- TCP报文段封装在IP数据报中
5.TCP头部
组成:
- *源端口号
- *目的端口号
- 序号
- 确认号
- 头部长度(可根据选项变长,20~60字节)
- *控制位(URG ACK PSH RST SYN FIN)
- 滑动窗口(控制流量大小)
- 校验和
- 紧急指针
- 选项
6.TCP标记
7.TCP链接
TCP连接的三次握手
- 第一次握手:客户发送请求,此时服务器知道客户能发;
- 第二次握手:服务器发送确认,此时客户知道服务器能发能收;
- 第三次握手:客户发送确认,此时服务器知道客户能收。
第一次:客户向服务器发送连接请求段,建立连接请求控制段(SYN=1)
第二次:服务器发回确认报文段,同意建立新连接的确认段(SYN=1),确认序号字段有效(ACK=1)
第三次:客户对服务器的同一连接进行确认.确认序号字段有效(ACK=1),当客户发送ack时,客户端进入ESTABLISHED 状态;当服务收到客户发送的ack后,也进入ESTABLISHED状态;第三次握手可携带数据
8.TCP断开链接的四次挥手
第一次:客户向服务器发送释放连接报文段,发送端数据发送完毕,请求释放连接(FIN=1)).客户端状态由ESTABLISHED进入FIN_WAIT_1(终止等待1状态);
第二次:服务器向客户发送确认段,确认字号段有效(ACK=1),服务器状态由ESTABLISHED进入CLOSE_WAIT(关闭等待);客户端收到ACK段后,由FIN_WAIT_1进入FIN_WAIT_2;
第三次:服务器向客户发送释放连接报文段,请求释放连接(FIN=1),确认字号段有效(ACK=1),服务器状态由CLOSE_WAIT 进入 LAST_ACK (最后确认状态);
第四次:客户向服务器发送确认段,确认字号段有效(ACK=1),服务器在收到最后一次ACK后,进入TIME_WAIT ,2MSL时间后进入CLOSE
三.UDP协议
UDP(User Datagram Protocol: 用户数据报协议),是一个非常简单的协议
1.UDP协议的特点
- UDP是无连接协议
- UDP不能保证可靠的交付数据
- UDP是面向报文传输的
- UDP没有拥塞控制
- UDP首部开销很小
2.UDP数据报结构
首部:8B,四字段/2B【源端口 | 目的端口 | UDP长度 | 校验和】 数据字段:应用数据
四.TCP协议和UDP协议的区别
- TCP:面向连接的网络协议;是可靠传输,支持流量控制和拥塞控制;首部最小20字节,最大60字节;只能一对一通信;面向字节流的
- UDP:面向无连接的网络协议;是不可靠传输,但是传输效率更高;首部仅8字节;支持一对一,一对多,多对一和多对多交互通信;面向报文的