写在前面:本文章是针对《计算机网络第七版》的学习笔记

运输层1——运输层协议概述

运输层2——用户数据报协议UDP

运输层3——传输控制协议TCP概述

运输层4——TCP可靠运输的工作原理

运输层5——TCP报文段的首部格式

运输层6——TCP可靠传输的实现

运输层7——TCP的流量控制和拥塞控制

运输层8——TCP运输连接管理

TCP虽然是面向字节流的,但是TCP传输的数据单元却是报文段。一个报文段可以分为首部和数据两部分。

TCP报文段的首部的前20个字节是固定的,后面的4n字节是需要增加的选项。因此TCP首部的最小长度是20字节。

首部部分字段的意义如下:

  • 源端口和目的端口:各占2个字节,分别写入源端口号和目的端口号。TCP的分用功能也是通过端口号实现的。

  • 序号:占4字节。在TCP连接中传送的字节流中的每一个字节都按照顺序编号。首部中的序号字段值则代表本报文段所发送的数据的第一个字节的序号。

  • 确认号:占4字节。代表期望收到对方下一个报文段的第一个数据字节的序号。需要注意:

    若确认号=N,则表明:到序号N-1为止的所有数据都已正确收到

  • 数据偏移:占4位。他指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。一般情况下为20字节,但是首部中还有不确定的选项字段。它的单位是4字节,而它的最大值是15,因此数据偏移最大值为60字节,也就是说选项不能超过40字节。

  • 保留:占6位。以防后续使用。

    下面是6个控制位,每个占一位:

  • 紧急URG:当URG=1时,表明紧急字段有效,它告诉系统此报文中有紧急数据,应该尽快传送。

  • 确认ACK:仅当ACK=1时确认号字段才有效。

  • 推送PSH:当两个应用进程进行交互式的通信时,有时一端的应用进程希望在键入一个命令后立即就能收到对方的相应,这时设置PSH=1。

  • 复位RST:当RST=1时,表明TCP连接中出现严重错误,必须释放连接,再重新建立运输连接。RST=1还可以用来拒绝一个非法的报文段或拒绝打开一个连接。

  • 同步SYN:在建立连接时用来同步序号。当SYN=1,ACK=0时代表是连接请求报文段。若对方同意建立连接,则应在相应报文段中使SYN=1,ACK=1。也就是说,SYN=1代表连接请求或者连接接受报文。

  • 终止FIN。用于释放一个连接。当FIN=1时,代表此报文段的发送方的数据已发送完毕,并且请求释放运输连接。

    控制位到这结束。

  • 窗口:占2字节。窗口值告诉对方:从本报文段中的确认号算起,接收方目前允许对方发送的数据量(以字节为单位)。之所以设置这个限制,是因为接收方的数据缓存空间是有限的。总之,窗口值作为接收方让发送方设置其窗口大小的依据。

  • 检验和:占2字节。检验的范围包括首部字段和数据字段。和UDP检验的方法一样,只不过把伪首部第四个字段的17改成6.

  • 紧急指针:占2字节。只有在紧急URG=1时才有效,它指出本报文段中的紧急数据的字节数。

  • 选项:长度可变,最大40字节

    TCP最初只规定了一种选项,即最大报文长度MSS。MSS是每一个TCP报文段中的数据字段的最大长度,而并不是整个TCP报文段的长度。

运输层5——TCP报文段的首部格式的更多相关文章

  1. 计算机网络(8)-----TCP报文段的首部格式

    TCP报文段的首部格式 概述 TCP报文段首部的前20个字节是固定的,因此TCP首部的最小长度是20字节. 源端口和目标端口 各占2个字节,分别写入源端口号和目的端口号. 序列号 占4个字节,表示本报 ...

  2. TCP报文段的首部格式 20字节的固定首部

    <----  IP首部 TCP首部 TCP报文段的数据部分  <---- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

  3. TCP报文段的首部格式

    首部20个字节的的固定部分,40个字节的可选部分 (1)源端口和目的端口 (2)序号(是字节流的编号,0-2^32-1),如果超过了mod2^32 (3)确认号:目的主机希望源主机收到的下一个字节序号 ...

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

    文章转自:https://blog.csdn.net/weixin_43914604/article/details/105516090 学习课程:<2019王道考研计算机网络> 学习目的 ...

  5. 详解TCP和UDP数据段的首部格式

    TCP数据段的首部格式: 源端口号(16) 目的端口号(16) 序列号(32) 确认应答号(32) 数据偏移(4) 保留(6) 代码位(6) 窗口(16) 校验和(16) 紧急指针 选项(长度可变) ...

  6. 一个TCP报文段的数据部分最多为多少个字节,为什么

    IP数据报的最大长度=2^16-1=65535(字节)TCP报文段的数据部分=IP数据报的最大长度-IP数据报的首部-TCP报文段的首部=65535-20-20=65495(字节) 一个tcp报文段的 ...

  7. TCP报文段首部格式详解

    TCP首部格式   格式字段详解   源端口.目标端口: 计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两 ...

  8. TCP报文格式和三次握手——三次握手三个tcp包(header+data),此外,TCP 报文段中的数据部分是可选的,在一个连接建立和一个连接终止时,双方交换的报文段仅有 TCP 首部。

    from:https://blog.csdn.net/mary19920410/article/details/58030147 TCP报文是TCP层传输的数据单元,也叫报文段. 1.端口号:用来标识 ...

  9. TCP报文段首部详解

    TCP虽然是面向字节流的,但是tcp传送的数据单元却是报文段,一个报文段分为首部和数据两部分,几乎TCP所有功能都从首部来体现,下面我们来详细的剖析下它的首部. (1):源端口与目标端口:分别写入源端 ...

随机推荐

  1. centos7下使用yum安装mysql5.7.10

    原文地址:http://www.mamicode.com/info-detail-503994.html CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql ...

  2. Deepin Linux下为Wine创建文件关联

    在Deepin Linux下,默认地,使用apt安装的Wine并没有创建文件关联,这使得在文件管理器中双击exe等Windows可执行文件时,不能直接运行.为此,必须手动在桌面环境中创建文件关联. 文 ...

  3. [转帖]InnoDB与MyISAM等存储引擎对比

    InnoDB与MyISAM等存储引擎对比 https://blog.ouyangsihai.cn/innodb-yu-myisam-deng-cun-chu-yin-qing-dui-bi.html ...

  4. python3+django报错testserver

    manage.py testserver --addrport 127.0.0.1 报错 查看其它项目 manage.py runserver --addrport 127.0.0.1 正常 查找配置 ...

  5. Burp Suite的安装与使用

    ​ Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击.在渗透测试中,我们使用Burp Suite将使得测试工作变 ...

  6. 关于python的一次性能调优过程

    问题 这两天在公司帮老大写一个程序功能,要求抓取从elasticsearch和kibana服务器上返回的数据,统计所有hits的数据字段ret_code为0的hit,并计算其占有率等一些功能. 功能倒 ...

  7. 安装python的pip库setup.py出现报错的解决过程

    错误起因: 第一次安python3.72的时候,直接去官网下了压缩包,解压后也没有exe文件.环境也是手动配置,在之后安装Pycharm的时候,系统找不到解释器,手动加上. 错误经过: 等写程序用到i ...

  8. Windows环境下Python3安装Pyspider

      执行命令: pip3 install pyspider Windows 下可能会出现这样的错误提示:Command "python setup.py egg_info" fai ...

  9. 20191108-从零搭建基于Linux的RobotFramework框架

    第一步:安装Centos7 64位操作系统 直接安装即可,不详述 第二步:yum下载wget yum update yum install wget 第三步:安装Python3 建议安装3.7,我在 ...

  10. 机器学习-HMM隐马尔可夫模型-笔记

    HMM定义 1)隐马尔科夫模型 (HMM, Hidden Markov Model) 可用标注问题,在语音识别. NLP .生物信息.模式识别等领域被实践证明是有效的算法. 2)HMM 是关于时序的概 ...