传输层协议(TCP、UDP)详解(TCP协议的三次握手,四次挥手及常见协议和端口号)
文章目录
前言
TCP/IP 协议簇的传输层的协议主要是TCP和UDP协议
TCP协议:(Transimission Control Protocol)传输控制协议
UDP协议:(User Datagram Protocol)用户数据报协议
一、TCP协议介绍
1.1TCP是面向连接的、可靠的进程到进程通信的协议
1.2TCP提供全双工服务,即数据可在同一时间双向传输
1.3TCP报文段
TCP 将若干个字节构成一个分组,叫报文段
TCP报文段封装在IP数据报中
二、TCP报文格式
三、TCP三次握手
Seq表示请求序列号,Ack表示确认序列号
需求:主机1要和主机2通信,需要如下三步来建立连接。
3.1第一次握手:主机1发送建立连接请求 ,SYN=1,并且请求序列号为x(Seq=x)。
3.2第二次握手:主机2确认收到连接请求,ACK=1,确认序列号为x+1(Ack=x+1);主机2也向主机1发送建立连接请求,SYN=1,请求序列号为y(Seq=y)
3.3第三次握手:主机1确认收到连接请求,ACK=1,确认序列号为y+1(Ack=y+1),与此同时再发送请求序列号x+1
四、TCP四次挥手
4.1第一次挥手
PC1发送 FIN 和 ACK 控制位为1的TCP报文段给PC2.(PC1给PC2发送断开连接的消息)
FIN:断开连接标识,提出断开连接的一方将这个值设为1.
ACK:ACK=1,表示确认序列号字段有效。
4.2第二次挥手
PC2收到PC1的信息,开始回复。(PC2告诉PC1:我已经收到你的断开连接请求了)
PC2 回复 ACK=1 的 TCP 报文段给 PC1。
4.3第三次挥手
PC2现在主动发送消息给PC1,发送 FIN=1,ACK=1 的报文段给PC1.(PC2也发消息给PC1,我也要和你断开连接)
ACK=1,确认序列号字段有效。
4.4第四次挥手
PC1收到 PC2 的消息,回复ACK=1 的TCP报文段。(PC1确认断连请求)
ACK=1,确认PC2 发给 PC1 的序列号字段有效。
补充:TCP半关闭概念
在TCP断开连接(四次挥手)的过程中,TCP一方(通常是客户端)可以终止发送数据,但仍然可以接收数据,成为半关闭。
五、UDP协议介绍
5.1UDP协议
无连接、不可靠的传输协议;花费的开销小
5.2UDP报文的首部格式
UDP在实际工作中的应用范围很广,例如,聊天工具QQ在发送短消息时就使用了UDP的方式。
六、常见协议及其端口
6.1常见TCP端口号
6.2常见UDP端口号