TCP协议是在不可靠的IP之上形成的可靠的数据传输协议。特点:

  • 面向连接的传输层协议
  • 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
  • TCP提供全双工通信, 允许通信双方的应用进程在任何时候都能发送数据。因此两端都有接收缓存和发送缓存。
  • 面向字节流:所以序号字段的作用是为每一个字节编上一个序号。且序号字段的值是本报文段所发送数据的第一个字节的序号。

记:一段报文序号字段值是301,长度是100,则本报文最后一个字节的序号是400,所以下一段报文的标记是401。若是本段标记开始是300,长度100,则最后一个字节是399。这个得细致才可以。

确认号: 期望收到对方的下一个报文段的数据的第一个字节的编号。若我现在告诉你,确认号是N,表示我要你下一次发给我以N开始的报文段。那么,我这么说就意味着,到N-1为止的字节我都收到了啊,你怎么问这么多!我都要N号报文,你不会推导么!
确认号字段受ACK信号控制。ACK是个开关,为1,确认号才有效果,否则,没用。

比如,我收到你发来的编号为401,长度为200的报文(401~600),我正确签收了,那么我会告诉你,同学:确认号是601
SYN信号:同步位信号,为1时表示这是一个连接请求或者连接接收报文。具体为:
SYN=1, ACK=0 连接请求,开始没啥好确认的,快连我!
SYN=1 ACK=1来啦!响应报文

FIN=1,要求释放一个连接

窗口字段:两字节。表示允许对方发送的数据量。单位为字节。

如,确认号是701,窗口字段1000,表示,从701号(我希望要的下一字节)算起,我还有接收1000字节数据的能力(缓存空间)

TCP连接管理

  • 连接建立
  • 数据传送
  • 连接释放

客户机:主动发起建立连接的应用进程
服务器:被动等待连接建立的应用进程

TCP连接建立和释放:

[1 ] 建立

  • SYN=1 seq=x
  • SYN=1 ACK =1 seq=y ack=x+1
  • ACK = 1 seq=x+1 ack=y+1

[2 ] 释放连接

  • FIN=1 seq=u
  • ACK=1 seq=v ack=u+1
  • FIN = 1, ACK=1 seq=w ack=u+1
  • ACK=1 seq=u+1 ack=w+1

有ack的,一定有ACK=1

TCP握手协议的巧计方法相关推荐

  1. TCP/IP协议损坏解决方法:

    TCP/IP协议损坏解决方法: 参考文章: (1)TCP/IP协议损坏解决方法: (2)https://www.cnblogs.com/xiaolong617/articles/occur_solut ...

  2. TCP握手协议过程及相关细节参数

    时间记录:2019-6-2 问题描述:笔者在进行压力测试的时候遇到了奇怪的问题,压力机的环境是win7的环境,在进行压力测试的时候发现了系统的端口一直被占用,无法释放开来,进行了接口的查找发现了大量的 ...

  3. TCP/IP协议的TCP握手协议

    所以TCP消息的可靠性首先来自于有效的连接建立,所以在数据进行传输前,需要通过三次握手建立一个连接,所谓的三次握手,就是在建立TCP链接时,需要客户端和服务端总共发送3个包来确认连接的建立,在sock ...

  4. tcp报文格式_腾讯面试中的TCP/IP协议简述+经典面试题

    面试题有福利 TCP/IP协议简述+ TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器, ...

  5. linux中tcp/ip协议实现及嵌入式应用 下载,LINU中TCPIP协议实现及嵌入式应用

    好文网为大家准备了关于LINU中TCPIP协议实现及嵌入式应用范文,好文网里面收集了五十多篇关于好LINU中TCPIP协议实现及嵌入式应用好文,希望可以帮助大家.更多关于LINU中TCPIP协议实现及 ...

  6. TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

    接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...

  7. TCP/IP协议,握手,挥手

    TCP协议详解 - 王先生架构 - 博客园 TCP的三次握手与四次挥手理解及面试题(很全面) - 李卓航 - 博客园 为什么需要三次握手和四次挥手_白小狮的博客-CSDN博客_为什么要三次挥手 Wir ...

  8. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义:       这里 ...

  9. 计算机网络基础(三次握手|TCP/IP协议|五层协议栈|网络安全)

    目录 一.三次握手 1.1 三次握手过程 1.2 为什么不两次握手 1.3 四次握手 1.4 常见问题 1.5 TCP的有限状态机 二.TCP与UDP 2.1 TCP/IP协议簇 2.2 TCP与UD ...

最新文章

  1. PCL深度图像(1)
  2. python读取文件第n行-python读取文件第n行
  3. 主程序与子程序不在同一程序模块中_深度解析S7200系列PLC带参数子程序用法
  4. 爬虫之验证码IP攻防心得——小总结
  5. l启动进程 linux,《日子》. linux 查看进程启动路径
  6. 【Elasticsearch】极限网关 INFINI Gateway 初体验
  7. 暗黑系游戏_暗黑系冒险游戏,剧情引人入胜!
  8. iOS中常见的设计模式(MVC/单例/委托/观察者)
  9. JSK-17 X的平方根【二分法】
  10. 《剑指offer》面试题60——把二叉树打印成多行(C++)
  11. socket 实现淘宝秒杀器(抢拍器) 附源码与截图
  12. 如何在Windows系统上实现共享文件夹
  13. 推荐3个干净、资源多的看剧网站给大家
  14. Ubuntu20.04突然丢失网络时恢复的办法
  15. 青蛙跳台阶变态青蛙跳台阶
  16. freemarker实现word模板
  17. 理解伯德图-2/4什么是伯德图
  18. 某校2020专硕编程题-递归逆序输出
  19. 第019讲:函数:我的地盘听我的
  20. Linux dd命令截取文件,linux使用dd命令快速生成大文件

热门文章

  1. nmap扫描ipv6端口_web渗透测试系列 之 扫描(3)
  2. 任天堂 虚拟主机服务器,任天堂 虚拟主机服务器
  3. linux下udf光盘权限问题,linux - 关于mysql udf权限的问题?
  4. linux脚本ipddr.sh 是什么,MTK DDR调试
  5. MySQL-数据类型 整理总结
  6. 条形图设置颜色Java_java – 如何在条形图中显示每个条形的条形值?
  7. Java中的字符串串联
  8. c语言中关键字static_了解C ++中Static关键字的变体
  9. 字符串相加和valueof_Java字符串valueOf()示例
  10. primefaces教程_Primefaces树,TreeNode,TreeTable示例教程