TCP-传输控制协议

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010853261/article/details/82085630

TCP涉及的主要话题:

1) ARQ(Auto Repeat Request)和重传
2)分组窗口和滑动窗口
3)变量窗口:流量控制和拥塞控制

TCP的服务模型

TCP提供的是一种:
1)面向连接的
2)可靠的字节流服务

这里的字节流是指:TCP不会关注发送方输入的字节流的大小和次数,同样的字节流只会出现在两端,但是每个端点(发送方和接受方)独立选择自己每次读写的大小。

TCP的可靠性

1)TCP将字节流截取为合理长度的分组发送
2)TCP维持了一个强制的校验和,该校验和涉及它的头部、任何相关应用程序数据和IP头部的所有字段
3)TCP发送一组报文时候,会设置一个超时计数器,等待对方的确认接收,否则会重发分组数据。
4)TCP的接收到连接的另一端的数据时,会发送一个确认ACK
5)TCP提供了一份全双工服务
6)TCP使用序列号,一个TCP接收端可丢弃重复的报文段和记录以杂乱次序到达的报文段。

TCP报文协议标准

这里写图片描述

TCP固定报文头:20字节
TCP报文可选区:最多40字节。

TCP协议里面有几个需要注意的地方:

1)TCP的协议包是没有IP地址的,那是IP层上的事。但是有源端口和目标端口。

2)一个TCP连接需要四个元组来表示是同一个连接(src_ip, src_port, dst_ip, dst_port)准确说是五元组,还有一个是协议。但因为这里只是说TCP协议,所以,这里我只说四元组。

3)注意上图中的四个非常重要的东西:
Sequence Number是包的序号,用来解决网络包乱序(reordering)问题。
Acknowledgement Number就是ACK——用于确认收到,用来解决不丢包的问题。
Window又叫Advertised-Window,也就是著名的滑动窗口(Sliding Window),用于解决流控的。
TCP Flag ,也就是包的类型,主要是用于操控TCP的状态机的。

猜你喜欢

转载自blog.csdn.net/u010853261/article/details/82085630
今日推荐