没有合适的资源?快使用搜索试试~ 我知道了~
TCP协议详解及实战解析.pdf

温馨提示


试读
15页
TCP协议是在TCP/IP协议模型中的运输层中很重要的一个协议、负责处理主机端口和端口直接的数据传输。主要有以下特点: 1.TCP是面向链接的协议,在数据传输之前需要通过三次握手建立TCP链接,当数据传递完成之后,需要通过四次挥手进行连接释放。 2.每一条TCP通信都是两太主机和主机之间的,是点对点传输的协议。 3.TCP提供可靠的、无差错、不丢失、不重复,按序到达的服务。 4.TCP的通信双方在连接建立的任何时候都可以发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。(通过发送和接收窗口)
资源推荐
资源详情
资源评论








TCP协议详解及实战解析
TCP协议简介
TCP协议是在TCP/IP协议模型中的运输层中很重要的⼀个协议、负责处理主机端⼝
和端⼝直接的数据传输。主要有以下特点:
1.TCP 是⾯向链接的协议,在数据传输之前需要通过三次握⼿建⽴ TCP 链接,当数
据传递完成之后,需要通过四次挥⼿进⾏连接释放。
2.每⼀条 TCP通信都是两太主机和主机之间的,是点对点传输的协议。
3.TCP 提供可靠的、⽆差错、不丢失、不重复,按序到达的服务。
4.TCP 的通信双⽅在连接建⽴的任何时候都可以发送数据。TCP 连接的两端都设有
发送缓存和接收缓存,⽤来临时存放双向通信的数据。(通过发送和接收窗⼝)
5.⾯向字节流。在数据传输的过程中如果报⽂⽐较⻓的话TCP 会进⾏数据分段传
输,每⼀条分段的 TCP 传输信息都带有分段的序号,每⼀段都包含⼀部分字节流。
接收⽅根据每段携带的的序号信息进⾏数据拼接,最终拼接出来初始的传输数据。
但是在整个传输的过程中每⼀段 TCP 携带的都是被切割的字节流数据。所以说 TCP
是⾯向字节流的。
a.TCP和 UDP在发送报⽂时所采⽤的⽅式完全不同。TCP 并不关⼼应⽤程序⼀次把
多⻓的报⽂发送到 TCP 缓存中,⽽是根据对⽅给出的窗⼝值和当前⽹络拥塞的程度
来决定⼀个报⽂段应包含多少个字节(UDP发送的报⽂⻓度是应⽤程序给出的)。
b.如果应⽤程序传送到 TCP缓存的数据块太⼤,TCP 就可以把它划分短⼀些再传。
TCP也可以等待积累有⾜够多的字节后再构建成报⽂段发送出去。
TCP包头格式

各字段含义:
源端⼝:发送端的端⼝号
⽬的端⼝:接收端的端⼝号
序号:TCP将发送报⽂分段传输的时候会给每⼀段加上序号,接收端也可以根据这
个序号来判断数据拼接的顺序,主要⽤来解决⽹络报乱序的问题
确认号:确认号为接收端收到数据之后进⾏排序确认以及发送下⼀次期待接收到的
序号,数值 = 接收到的发送号 + 1
数据偏移:占 4⽐特,表示数据开始的地⽅离 TCP 段的起始处有多远。实际上就是
TCP段⾸部的⻓度。由于⾸部⻓度不固定,因此数据偏移字段是必要的。数据偏移
以 32位为⻓度单位,因此TCP ⾸部的最⼤⻓度是 60(15*4)个字节。
控制位:
URG:此标志表示TCP 包的紧急指针域有效,⽤来保证TCP 连接不被中断,并且督
促 中间层设备要尽快处理这些数据;
ACK:此标志表示应答域有效,就是说前⾯所说的TCP 应答号将会包含在TCP 数据
包中;有两个取值:0和 1, 为 1的时候表示应答域有效,反之为 0;
PSH:这个标志位表示 Push操作。所谓 Push操作就是指在数据包到达接收端以
后,⽴即传送给应⽤程序, ⽽不是在缓冲区中排队;
RST:这个标志表示连接复位请求。⽤来复位那些产⽣错误的连接,也被⽤来拒绝
错误和⾮法的数据包;
SYN:表示同步序号,⽤来建⽴连接。SYN标志位和ACK 标志位搭配使⽤,当连接
请求的时候,SYN=1, ACK=0;连接被响应的时候,SYN=1,ACK=1;这个标志的数
据包经常被⽤来进⾏端⼝扫描。扫描者发送 ⼀个只有 SYN的数据包,如果对⽅主机
响应了⼀个数据包回来 ,就表明这台主机存在这个端⼝;但是由于这 种扫描⽅式只
是进⾏ TCP 三次握⼿的第⼀次握⼿,因此这种扫描的成功表示被扫描的机器不很安
全,⼀台安全 的主机将会强制要求⼀个连接严格的进⾏ TCP 的三次握⼿;
FIN: 表示发送端已经达到数据末尾,也就是说双⽅的数据传送完成,没有数据可
以传送了,发送 FIN标志 位的 TCP 数据包后,连接将被断开。这个标志的数据包也
经常被⽤于进⾏端⼝扫描。

窗⼝:TCP⾥很重要的⼀个机制,占 2字节,表示报⽂段发送⽅期望接收的字节
数,可接收的序号范围是从接收⽅的确认号开始到确认号加上窗⼝⼤⼩之间的数
据。后⾯会有实例讲解。
校验和:校验和包含了伪⾸部、TCP⾸部和数据,校验和是 TCP强制要求的,由发
送⽅计算,接收⽅验证
紧急指针:URG标志为 1时,紧急指针有效,表示数据需要优先处理。紧急指针指
出在 TCP 段中的紧急数据的最后⼀个字节的序号,使接收⽅可以知道紧急数据共有
多⻓。
选项:最常⽤的选项是最⼤段⼤⼩(Maximum Segment Size,MSS),向对⽅通
知本机可以接收的最⼤ TCP 段⻓度。MSS选项只在建⽴连接的请求中发送。
放在以太⽹帧⾥看 TCP 的位置
TCP 数据包在 IP 数据包的负载⾥⾯。它的头信息最少也需要 20字节,因此 TCP 数
据包的最⼤负载是 1480 - 20 = 1460 字节。由于 IP 和 TCP 协议往往有额外的头信
息,所以 TCP 负载实际为 1400字节左右。
因此,⼀条 1500字节的信息需要两个 TCP 数据包。HTTP/2 协议的⼀⼤改进, 就
是压缩 HTTP 协议的头信息,使得⼀个 HTTP 请求可以放在⼀个 TCP 数据包⾥⾯,
⽽不是分成多个,这样就提⾼了速度。
以太⽹数据包的负载是 1500字节,TCP 数据包的负载在 1400字节左右
剩余14页未读,继续阅读
资源评论

- laokd2023-05-2615页的讲解 有一个例子 还不错 谢谢

奔跑的蚂蚁01
- 粉丝: 23
- 资源: 14
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
