TCP协议和UDP协议(三次握手/四次挥手)

TCP协议和UDP协议

  • 一、TCP协议
    • 1、TCP报文段
    • 2、TCP的连接
      • (1)连接建立
      • (2)连接终止
      • 半关闭定义
    • 3、常用的TCP端口号及其功能
  • 二、UDP协议

一、TCP协议

TCP 是面向连接的、可靠的进程到进程的通信协议。TCP提供全双工服务,即数据可以在同一时间双向传输,每一个TCP都有发送缓存和接收缓存,用来临时储存数据。

1、TCP报文段

TCP将若干个字节构成一个分组,称为报文段。TCP报文段分装在IP数据报中。
TCP 报文段首部格式:
TCP协议和UDP协议(三次握手/四次挥手)_第1张图片

源端口号:发送方进程对应的端口号。
目标端口号:对应接收端的进程,接收端收到数据段后,根据这个端口号来确定把数据送给那个应运程序的进程。
序号:发送端为每个字节进行编号,便于接收端正确重组。
确认号:用于确认发送端的信息。
首部长度:用来确认首部数据结构的字节长度。
保留:作为今后扩展功能用。
URG:紧急指针位。 1:开启。0:关闭。不用经过缓存直接提交。
PSH:快速接收传递给应运层。1:开启。0:关闭。需要经缓存,等一批报文段到齐,直接发送到应运层。
SYN:建立连接请求标志。
FIN:断开连接请求标记。
ACK:确认位。
RST:重置位。
窗口大小:用于说明本地可接收数据段的数目,窗口大小是可变的。
校验和:用来差错控制。
紧急指针:和URG配合使用,当URG=1时有效。

2、TCP的连接

(1)连接建立

TCP 建立连接的过程称为三次握手。
如图:

TCP协议和UDP协议(三次握手/四次挥手)_第2张图片

第一次握手
PC1使用随机端口向PC2的80端口发送建立连接的请求,此过程的标志是TCP的SYN控制位为1,其他的五个控制位全为0.
第二次握手
这一次的握手实际上分为两部分。
1)PC2收到PC1的请求,向PC1回复一个确认信息。此过程的标志是TCP的ACK控制位为1,其他的五个控制位全为0.而且确认序列号是PC1的初始序列号加1.
2)PC2页向PC1发送建立连接的请求,此过程和第一次握手一样,即TCP的SYN控制位为1,其他全为0.
为了提高效率,一般将这两部分并在一个数据包里。
第三次握手
PC1收到PC2的回复(包含请求和确认),也要向PC2回复一个确认信息。此过程的标志是TCP的ACK控制位为1,其他的五个控制位全为0,而且确认序列号是PC2的初始序列号加1.

(2)连接终止

TCP断开连接的过程称为四次挥手。
如图:

TCP协议和UDP协议(三次握手/四次挥手)_第3张图片

1)服务器向客户端发送FIN和ACK位置为1的TCP报文段。
2)客户端向服务器返回ACK位置为1的TCP的报文段。
3)客户端向服务器发送FIN和ACK位置为1的TCP的报文段
4)服务器向客户端返回FACK位置为1的TCP报文段。
在TCP 断开连接的过程中,有一个半关闭的概念。TCP一方(通常是客户端)可以终止发送数据,但任然可以接受数据,称为半关闭。

半关闭定义

1)客户端发送FIN报文段,半关闭了这个连接,服务器发送ACK报文段接受半关闭。
2)服务器机箱发送数据,而客户端只发送ACK确认,不在发送任何数据。
3)当服务器吧所有数据发送完毕时,就发送FIN报文段,客户再发送ACK报文段,这样就关闭了TCP连接。

3、常用的TCP端口号及其功能

TCP协议和UDP协议(三次握手/四次挥手)_第4张图片

20端口 FTP 数据连接
22端口 SSH 密文格式
143 端口 IAMP 邮件接收协议
443端口 HTTPS
53端口 DNS UDP(解析) TCP(连接)

二、UDP协议

UDP 是一个无连接,不保证可靠性的传输层协议。花费的开销小。
UDP首部的报文格式
TCP协议和UDP协议(三次握手/四次挥手)_第5张图片

源端口号:用来标识数据发送端的进程。
目的端口号:用来标识数据接收端的进程。
UDP长度:用来指出UDP的总长度,为首部加上数据。
校验和:用来完成对UDP数据的差错校验。
常用的UDP端口号及其功能
TCP协议和UDP协议(三次握手/四次挥手)_第6张图片

你可能感兴趣的:(网络部分,网络协议)