TCPIP五层模型——传输层(TCP协议——协议段格式、特
点)
1. TCP协议端格式
其中:
(1)16位源端⼝号:标识报⽂从哪个进程来
(2)16位⽬的端⼝号:标识报⽂要发给哪个进程
(3)32位序号/32位确认序号:可以保证请求和应答;按序到达;重传机制;批量的⾼效率发送。因为TCP进⾏的全双⼯通信,即双发都可以发送和接收数据,因此需要⼀个序号和确认序号对(在后⾯⽂章中的确认应答及超时重传机制中详细介绍)
tcpip协议pdf
(4)4位⾸部长度:表⽰该TCP报⽂的头部有多少个4字节(32位bit位),所以TCP⾸部长度最⼤值为15*4=60字节
(5)保留位(6位):可能会在之后⽤到
(6)6位标志位:各占⼀个bit位,具体含义如下:
1)URG:紧急标志位。标识紧急指针是否有效,0为⽆效
2)ACK:确认标志位。标识确认号是否有效,在双⽅通信时,⼀般⼀直有效,即⼀直为1
3)PSH:⽤以提⽰接收端的应⽤程序⽴刻从TCP的缓冲区把数据读⾛
4)RST:复位标志位。当对⽅要求重新建⽴连接时,会把携带有该标志位(该标志位设置为1)的数据段称为复位报⽂段发送过来
5)SYN:同步标志位。当对⽅请求连接时,会将带该标志位(该标志位设置为1)的段称为同步报⽂段发送过来,连接建⽴好之后该标志位设置为0
6)FIN:结束标志位。当对⽅要断开连接时,会将携带该标志位的段称为结束报⽂段发送过来
(7)16位窗⼝⼤⼩:⽤来描述⾃⾝还能接受能⼒。⽐如发送端发送报⽂时,会将⾃⼰接受缓冲区还能接受的最⼤内存填充到该位,接收端在接收到该报⽂后,根据该位置位段数据来确定应该发送多少数据。TCP为全双⼯,所以双⽅都可作为发送端或是接收端(在后⾯⽂章的滑动窗⼝会详细介绍)
(8)16位校验和:由发送端填充,CRC校验,接收端校验不通过,则认为数据有问题。此处的校验和不光包含TCP⾸部,也包括TCP的数据部分
(9)16位紧急指针:标识哪部分数据是紧急数据,可以优先处理,要配合URG标志位使⽤
(10)40字节头部选项:当20字节的⾸部⼤⼩不够⽤时,在该处进⾏内存申请
2. TCP的特点
(1)TCP是⾯向连接的。即在进⾏数据通信之前,发送进程要与接收进程建⽴连接,连接建⽴好之后,才可以进程数据传输,传输结束之后,还要断开连接;
(2)TCP具有可靠性。它可以保证数据安全且准确的到达接收端,因为它具有确认应答机制、超时重传机制等;
(3)TCP⾯向字节流。它不像UDP必须要整发整收,它可以将100个字节的数据⼀次性发过去,然后分多次接收,每次想接收多少个字节就接收多少个字节。
(4)每⼀个TCP连接只能有两个端点。也就是说,只能⼀对⼀,要想实现⼀对多,就需要建⽴多条连接。因为TCP的端点是套接字
(IP+端⼝号)。同⼀个IP地址可以被多个不同的TCP连接,同⼀端⼝号也可以出现不同的TCP连接中。但是每⼀个TCP连接唯⼀的被通信两端的套接字所确定。
(5)TCP是全双⼯通信。TCP通信的两端都有接收缓冲区和发送缓冲区,可以实现同时从接收缓冲区拿数据、向发送缓冲区⾥放数据。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。