*TCP报文
0.TCP 和 UDP 比较
TCP | UDP | |
---|---|---|
是否连接 | 面向连接 | 面向非连接 |
传输可靠性 | 可靠 | 不可靠 |
应用场合 | 传输大量数据 | 少量数据 |
速度 | 慢 | 快 |
UDP
UDP的分组称用户数据报:它有8字节的固定首部
(1)总长度:16位字段,定义了用户数据报的总长度为0~65535字节。但实际长度肯定比65535小,因为用户数据报要放在总长度为65535的IP数据报中,封装在IP数据报中。因此UDP长度=IP长度-IP首部长度。
(2)检验和:增加一个伪首部,对于UDP协议来说协议字段的值为17。若在传输过程中这个值发生改变,接收端计算检验和就能检测出来。UDP使用检验和是可选的,如果不计算就将这16位全部填0.
TCP的特点
- TCP是面向连接的传输层协议。
- TCP连接是点对点的(套接字–IP:Port到套接字)。
- TCP提供可靠交付的服务。
- TCP提供全双工通信。
- 面向字节流。
2.、TCP报文段(segment)
报文段包括了20~60字节的首部,其中20字节是没有选项的,后面40字节可选。
具体而言:
(1)源地址端口:16位字段,发送该报文段的主机中应用程序的端口号
(2)目的端口地址:16位长。标识出远端和本地的端口号。
(3)序号:32位字段。指派给本报文段第一个数据字节的编号,TCP传输保证连接性,发送的每个字节都要编上号。序号就是告诉终点,报文段中的第一个字节是序列中的哪个。建立连接时,发收双发使用各自的随机数产生器产生一个初始序号(ISN),通常,两个方向的ISN是不同的。
(4)确认号:32位字段定义了接收方期望从对方接受的字节编号。如果报文段的接收方成功的接受了对方发过来的编号x的字节,那么返回x+1作为确认号,确认号可以和数据捎带一起发送。
(5)HLEN(首部长度):4位,指出TCP首部一共有多少个4字节,所以范围是5~15
保留:
(6)控制:定义了6中不同的控制位或者标志位。如图
URG:紧急数据标志位
ACK:确认标志位
PSH:请求推送位,接收端应尽快把数据传送给应用层
RST:连接复位,通常,如果TCP收到的一个分段明显不属于该主机的任何一个连接,则向远程发送一个复位包
SYN:建立连接,让连接双方同步序列号
FIN:释放连接
(7)窗口大小:定义TCP的窗口大小,以字节为单位。窗口的最大长度是65535字节(16位)。窗口大小的值被称为接受窗口,由接收方决定,发送方符合该数据。
(8)检验和:TCP的使用检验和是强制性的,UDP使用检验和是可选的。在计算检验和是报文段要附加相同的伪首部,对于TCP来说伪首部的协议字段的值是6.
(9)紧急指针:只有当紧急标志置位时URG,该16位的字段才有效。紧急指针定义了一个数值,把这个数值加到序号上就得到版文段数据部分中最后一个紧急字节的编号。
(10)选项:40字节可选信息。
*TCP报文
0.TCP 和 UDP 比较
TCP | UDP | |
---|---|---|
是否连接 | 面向连接 | 面向非连接 |
传输可靠性 | 可靠 | 不可靠 |
应用场合 | 传输大量数据 | 少量数据 |
速度 | 慢 | 快 |
UDP
UDP的分组称用户数据报:它有8字节的固定首部
(1)总长度:16位字段,定义了用户数据报的总长度为0~65535字节。但实际长度肯定比65535小,因为用户数据报要放在总长度为65535的IP数据报中,封装在IP数据报中。因此UDP长度=IP长度-IP首部长度。
(2)检验和:增加一个伪首部,对于UDP协议来说协议字段的值为17。若在传输过程中这个值发生改变,接收端计算检验和就能检测出来。UDP使用检验和是可选的,如果不计算就将这16位全部填0.
TCP的特点
- TCP是面向连接的传输层协议。
- TCP连接是点对点的(套接字–IP:Port到套接字)。
- TCP提供可靠交付的服务。
- TCP提供全双工通信。
- 面向字节流。
2.、TCP报文段(segment)
报文段包括了20~60字节的首部,其中20字节是没有选项的,后面40字节可选。
具体而言:
(1)源地址端口:16位字段,发送该报文段的主机中应用程序的端口号
(2)目的端口地址:16位长。标识出远端和本地的端口号。
(3)序号:32位字段。指派给本报文段第一个数据字节的编号,TCP传输保证连接性,发送的每个字节都要编上号。序号就是告诉终点,报文段中的第一个字节是序列中的哪个。建立连接时,发收双发使用各自的随机数产生器产生一个初始序号(ISN),通常,两个方向的ISN是不同的。
(4)确认号:32位字段定义了接收方期望从对方接受的字节编号。如果报文段的接收方成功的接受了对方发过来的编号x的字节,那么返回x+1作为确认号,确认号可以和数据捎带一起发送。
(5)HLEN(首部长度):4位,指出TCP首部一共有多少个4字节,所以范围是5~15
保留:
(6)控制:定义了6中不同的控制位或者标志位。如图
URG:紧急数据标志位
ACK:确认标志位
PSH:请求推送位,接收端应尽快把数据传送给应用层
RST:连接复位,通常,如果TCP收到的一个分段明显不属于该主机的任何一个连接,则向远程发送一个复位包
SYN:建立连接,让连接双方同步序列号
FIN:释放连接
(7)窗口大小:定义TCP的窗口大小,以字节为单位。窗口的最大长度是65535字节(16位)。窗口大小的值被称为接受窗口,由接收方决定,发送方符合该数据。
(8)检验和:TCP的使用检验和是强制性的,UDP使用检验和是可选的。在计算检验和是报文段要附加相同的伪首部,对于TCP来说伪首部的协议字段的值是6.
(9)紧急指针:只有当紧急标志置位时URG,该16位的字段才有效。紧急指针定义了一个数值,把这个数值加到序号上就得到版文段数据部分中最后一个紧急字节的编号。
(10)选项:40字节可选信息。