传输层协议介绍

目录

  • 一、TCP协议
    • 1.TCP报文格式
    • 2.TCP三次握手
    • 3.TCP四次挥手
    • 4.常见TCP端口号
  • 二、UDP协议
    • 1.UDP格式
    • 2.常见UDP端口号
  • 三、总结

一、TCP协议

TCP(Transmission Control Protocol)传输控制协议
1.TCP是面向连接的、可靠地进程到进程通信协议
2.TCP提供全双工服务,即数据可在同一时间双向传输TCP报文段
●TCP将若干个字节构成一个分组,叫报文段( Segment)
●TCP报文段封装在IP数据报中

1.TCP报文格式

1.源端口号:发送方进程的端口号。

2.目标端口号:接收方端进程的端口号。

3.序号:发送端将每个字节进行编号,便于接收方正确重组。

4.确认号:对发送方的确认消息。

5.首部长度:用来表示TCP数据包头长度,一般20字节,但是首部长度最多可以扩大到60字节。

6.控制位

URG: 紧急位。紧急指针有效位,配合紧急指针使用。
ACK: 确认位。当ACK=1时,确认序列号字段才有效,为0时,无效。
PSH: 急迫位。标志位为1时,要求接收方尽快将数据段送达应用层。
RST:重置位。当RST值为1时,通知重新建立TCP连接。
SYN:同步(连接)位。同步序号位,TCP需要建立连接时将这个值设为1。
FIN: 断开位。当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设为1。

7.窗口大小:说明本地可接受数据段的数目。这个值的大小是可变的,当网络通畅时接收端响应消息会将这个窗口值变大以加快传输速度,当网络不稳定时减小这个值可保证网络数据的可靠传输,TCP中的流量控制就是依靠变化窗口大小来实现的。比如下载速度从一开始的几KB逐渐升到几MB的过程,控制网速用的。

8.校验和:用来做差错控制。字段检验的范围包括首部和数据这两部分。数据段在发送时和到达目的地时会进行校验和计算,若值不一致,会认为该数据被破坏,接收端将丢弃该数据。

9.紧急指针:和URG配合使用,当URG=1时有效。

10.选项:在TCP首部可以有多达40字节的可选信息。例如,最大报文段长度MS(MaximumSegment Size)。MSS告诉对方TCP:我的缓存所能接收的报文段的数据字段最大是MSS个字节。

2.TCP三次握手

过程如下:

1.客户端发送请求连接报文SYN(Seq=x(随机),SYN=1)报文给服务器端,进入SYN-SEND(同步已发送状态)。
2.服务端收到SYN报文,回应一个SYN (Seq=y)ACK(ACK=x+1)SYN=1报文,进入SYN-RECV(同步收到状态)。
3.客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established(已建立连接状态)。

3.TCP四次挥手

过程如下:

客户端(Client)、服务端(Server)
1.第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送的请求,Client进入FIN_WAIT-1(等待终止-1状态)。

2.第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT(关闭等待状态)

这是已成半断开,这时Client已无法继续连接Server,但是Server仍能给Client发送数据。

3.第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。服务器在确认断开之后还需要发送数据,客户端进入FIN_WAIT-2(等待终止-2状态)

4.第四次挥手:Client收到FIN后,Client进入TIME_WAIT时间等待状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态(服务器接收到确认包之后),之后Client也关闭了,完成四次挥手
传输层协议介绍_第1张图片

4.常见TCP端口号

端口号 协议
21 ftp-文件传输协议(FTP)端口
22 ssh-安全 Shell (SSH)服务
23 telnet-Telnet 服务
25 smtp-简单邮件传输协议(SMTP)
53 dns-域名服务
80 http-超文本传输协议
110 pop3-邮件协议版本
443 https-安全超文本传输协议
3306 mysql数据库

二、UDP协议

UDP(User Datagram Protocol)用户数据报协议
●无连接、不可靠的传输协议
●花费的开销小

1.UDP格式

1.源端口号:发送方进程的端口号。

2.目标端口号:接收方端进程的端口号。

3.UDP长度:用来指出UDP的总长度,为首部加上数据

4.校验和:用来完成对UDP数据的差错校验,它是UDP协议提供的唯一可靠机制

2.常见UDP端口号

协议 端口号
NTP网络时间协议 123
DHCP动态主机配置协议 67服务、68客户
SNMP简单网络管理协议 161
TFTP简单文件传输协议 69
RPC远程调用协议 111

三、总结

1.TCP报文格式
2.TCP建立连接三次握手
3.TCP断开连接四次挥手
4.常见应用的TCP和UDP协议及端口
5.UDP是一个不可靠无连接的协议
6.TCP是一个可靠地面向连接的协议

你可能感兴趣的