一.TCP/IP两个主要协议
1. TCP和UDP
① TCP 传输控制协议
② UDP 用户数据包协议
tcp 是面向连接的, 可靠的进程到进程通信的协议
提供双向服务,数据可以在统一时间双向传输
每个tcp 都有发送缓存和接收缓存 用来临时存储数据
tcp 将若干个字节构成一个分组 成为报文段 segment
tcp 报文段封装在ip 数据报中
2.TCP数据段
源端口 :16位 发送方进程对口 电脑随机
目标端口号 : 16位 对应接收端的进程
序号 :对接受到数据字节的编号 编号不一定从零开始 每个方向上编号互相独立
确认号 : 对发送端确认信息,发送端编号+1
首部长度 : 确定首部数据结构的字节长度
保留 未使用
3.控制位
URG 紧急指针有效位
ACK 接受确认位, 当ACK=1 确认序号字段才有效
PSH 推送标志位 为 1 时 接受方需尽快将数据送达应用层
RST 重置位 为 1 时 表示 重新建立TCP 连接
SYN 请求同步位 为 1 时 表示请求和目标建立tcp 连接
FIN 完成位 为 1时 表示提出和目标方断开TCP连接
窗口大小 说明可接受数据段的数目
校验和 校验整个tcp 数据段,包括 tcp 头部 数据和 其他填充字节
紧急指针位 当URG=1 时 有效
二.TCP 连接
1.TCP
tcp 面向连接的协议,源和目标端 建立 一条虚连接
tcp 通双方需先建立连接,数据发送结束后 双方再断开连接
建立连接需要三次握手 断开连接 分四步 需四次握手
2. 建立连接的三次握手
第一次握手 源端发送方 tcp 数据段中 控制位 只有 SYN=1 其他全部为 0
第二次握手 目标端收到后,确收收到 确认号 是源端发来序号+1 控制位中 ACK=1
其他 全部为 0
另发送目标端向源端的数据连接请求 控制位 其中 SYN=1
为了节省时间上面两步 和为一步完成
第三次握手 源端收到后,确认目标端的syn 请求 发送tcp 字段
确认号 是目标端序号+1 控 制位中 ACK=1
3. 结束连接的四次握手
服务器向客户端发送 FIN 和 ACK 位置 1 的 TCP报文段
客户端向服务端返回 ACK 位置 1 的 TCP报文段
客户端向服务端发送 FIN 和 ACK 位置 1 的 TCP报文段
服务器向客户端返回 ACK 位置 1 的 TCP报文段
4. TCP 断开连接过程中的 半关闭概念
一方可以终止发送数据, 另一个任然可以接受数据 称为半关闭
客户都安发送 FIN 报文 半关闭 了这个连接, 服务器发送ACK 报文端接受半关闭
服务器继续发送数据 而客户端只发送ack 确认 不再发送任何数据
当服务器 已经把所有数据发送完毕后,就发送FIN 报文 客户端再 ACK 报文确认
5.常见的TCP端口
常见的 TCP 端口 : ftp 21 telnet 23 smtp 25 http 80
创作不易,求各位大佬关注,点赞收藏,谢谢~~