TCP协议的特点

  1. TCP是面向连接(虚连接)的传输层协议
  2. 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
  3. TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。
  4. TCP提供全双工通信
  5. TCP面向字节流:TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。

流:流入到进程或从进程流出的字节序列

TCP报文段首部格式

  1. 报文段:TCP传送的数据单元。
  2. 序号:在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,序号字段的值表示本报文段所发送数据的第一个字节的序号。
  3. 源端口和目的端口字段:各占2B,端口:运输层与应用层的服务接口,运输层的复用和分用功能都要通过端口实现。
  4. 序号字段:占4B,TCP是面向字节流的,所以TCP连接传送的数据流中的每个字节都编上一个序号。
  5. 确认号字段:占4B,是期望收到对方的下一个报文段的数据的第一个字节的序号。若确认号为N,则表明到序号N - 1为止的所有数据都已正确收到。
  6. 数据偏移(首部长度):占4位,表示首部长度,指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。数据偏移的单位是32位,因此当此字段的值为15时,达到TCP首部的最大长度60B
  7. 保留字段:占6位,保留为今后使用
  8. 紧急位URG:URG = 1时,表明紧急指针字段有效,告诉系统报文段中有紧急数据,应尽快传送,但URG需要和紧急指针配套使用,即数据从第一个字节到紧急指针所指字节就是紧急数据。
  9. 确认位ACK:只有当ACK=1时确认号字段才有效,当ACK = 0 时确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置1。
  10. 推送PSH(Push): 接收TCP收到PSH=1的报文段,,就尽快交付给接收应用进程,而不再等到整个缓存都填满后再向上交付。
  11. 复位位RST(Reset):RST = 1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立运输连接。
  12. 同步位SYN:同步SYN=1表示这是一个连接请求或连接接收报文。当SYN=1,ACK=0时,表明这是一个连接请求报文,对方若同意建立连接,则在响应报文中使用SYN=1,ACK=0。即SYN=1表示这是一个连接请求或连接接收报文。
  13. 终止位FIN(Finish):用来释放一个连接,FIN=1表明此报文段的发送方的数据已发送完毕,并要求释放传输连接。
  14. 窗口字段:占2B,指出现在允许对方发送的数据量,接收方的数据缓存空间是有限的,故用窗口值作为接收方让发送方设置其发送窗口的依据,单位为字节。
  15. 校验和:占2B,校验和字段检查的范围包括首部和数据两部分。在计算校验和时,和UDP一样,要在TCP报文段的前面加上12B的伪首部(只需将UDP伪首部的第4个字段,即协议字段的17改成6,其他和UDP一样)
  16. 紧急指针字段:占16位,指出在本报文段中紧急数据共有多少字节(紧急数据放在本报文段数据的最前面)
  17. 选项字段:长度可变,最大报文段长度,MSS是TCP报文段中的数据字段的最大长度。
  18. 填充字段:为了使整个首部长度是4B的整数倍。

TCP协议特点和TCP报文段相关推荐

  1. 5.3.1 TCP协议特点和TCP报文段格式

    5.3.1 TCP协议特点和TCP报文段格式

  2. 5.3 计算机网络传输层之TCP协议(tcp协议特点、tcp报文段首部格式、tcp连接---三次握手、tcp连接释放---四次握手)

    文章目录 1.TCP协议特点 2.TCP报文段的首部格式 3.TCP连接管理 (1)连接的建立 - - - 三次握手 (2)SYN泛洪攻击 4.TCP连接释放----四次握手 5.TCP连接建立和释放 ...

  3. 一篇文章让你理解TCP协议,搭建TCP flood攻击实验以及了解其防御原理

    目录 1.知识点回顾 2.TCP协议 3.TCP字段含义 4.TCP的三次握手过程 5.释放连接的四次挥手过程 6.握手挥手七次总过程 7.TCP的半关闭状态 8.TCP的半连接状态 9.常见的TCP ...

  4. TCP协议之《ACK报文限速》

    PROC文件tcp_challenge_ack_limit控制每秒钟发送挑战ACK报文的数量.避免遭受Blind In-Window Attacks,包括reset,sync或者数据注入攻击等,详解R ...

  5. TCP协议 STCP与TCP比较

    可靠性是计算机系统的基础应用程序信赖于底层计算机系统数据 的可靠传 输,系统保证数据传送到底层后不会丢失和重复.保证端对端数据传输的可靠 性 ,是通过传输层来实现的. 传输层定义了主机应用程序之间端到 ...

  6. 大白话了解TCP协议:了解TCP?先别急,来看看TCP的前世——“最简单的”可靠传输协议:停止等待协议

    TCP是可靠传输协议的衍生.拓展 先了解可靠传输协议的基本概念就可以非常轻松得了解TCP协议了! 这是个有安全感的协议类型~ 在漫长的线路中,这些数据要经过路由器.网线,甚至还有风风雨雨--数据就很容 ...

  7. 【计算机网络】——TCP协议简介以及TCP编程

    文章目录 1.TCP概述 1.1TCP含义 1.2TCP首部报文格式 1.3理解源IP地址和目的IP地址 1.4认识端口号 2.网络编程基础API 2.1创建socket 2.2命名socket--b ...

  8. 2022.9.07 TCP协议特点,TCP适用场合,TCP连接方式(三次握手,四次挥手)。

    传输层协议: TCP   <传输控制协议>    transport control protocol TCP协议特点: 是一种面向连接的传输层协议,它能够提供高可靠性通信,无数据丢失,无 ...

  9. TCP协议经典数据--TCP/IP高效编程 : 改善网络程序的44个技巧

最新文章

  1. SQL SERVER的锁机制(三)——概述(锁与事务隔离级别)
  2. spring security 自定义认证登录
  3. Spring Boot (四)模板引擎Thymeleaf集成
  4. DL框架之PyTorch:深度学习框架PyTorch的简介、安装、使用方法之详细攻略
  5. 【python】数据结构与算法之选择排序
  6. VTK修炼之道56:图形基本操作进阶_表面重建技术(三维点云曲面重建)
  7. python创建虚拟环境jupyter_机器学习中python的有关使用技巧【创建虚拟环境、jupyter的kernel修改】...
  8. 有关C语言中有符号/无符号数混合运算的小问题
  9. Eclipse 答疑:Eclipse 如何更换夜间及外部主题?如何修改代码样式、背景颜色、字体大小?为何注释文字大小不一?
  10. maven java web项目_Maven创建JavaWeb项目
  11. 直接安装的Qt 5如何调试到源码中
  12. 软件开发工作过程中的一些总结
  13. ironpython调用c dll_在IronPython中加载模块
  14. 织梦CMS插件-支持dedeCMS各大主题
  15. 【论文阅读·2】”Why Should I Trust You?” Explaining the predictions of Any Classifier
  16. JVM 优化经验总结(原文已发表在IBM开发者论坛)
  17. python 获取当前日期和时间_python获取当前日期和时间的方法
  18. Dbg2Excel_Word
  19. 卫健委:2020年基本建立较完善的三级公立医院绩效考核体系
  20. 2022云南省职业院校技能大赛(高职组) Web技术(网站设计与开发)赛项规程

热门文章

  1. mui实现分享功能_继MIUI之后,华为EMUI更新,深度实现万物互联
  2. matlab 轴gui,MatlabüGUI学习笔记(4)——公共对象属性的轴,MatlabGUI,四,常用,之,Axes...
  3. react打包后图片丢失_宜信技术实践|指尖前端重构(React)技术调研分析
  4. 怎么批量抠复杂的图_干货教程 | 不会抠图怎么办?6种超实用方法让你轻松应对抠图!...
  5. 利用Docker搭建Redis集群
  6. 使用Jquery中ajax实现上传文件
  7. 开发基于vue前端框架下的系统的UI自动化,记录总结踩的坑
  8. 用Keras搭建神经网络 简单模版(三)—— CNN 卷积神经网络(手写数字图片识别)...
  9. linux下的mongodb数据库原生操作
  10. ubuntu12.04 qtcreate支持中文输入