转载自博客地址为http://roclinux.cn。

仍然先把TCP报文段的格式放在这里,然后我们看图说话:

TCP报文段也分为首部和数据两部分,首部默认情况下一般是20字节长度,但在一些需求情况下,会使用“可选字段”,这时,首部长度会有所增加。

下面,我们仍然延续讲解IP协议的思路,针对不同的域,分别进行讲解:

【源端口】- 16bit

来源处的端口号;

【目的端口】- 16bit

目的处的端口号;

【序号】- 32bit

每一个TCP报文段都会有一个序号,序号字段的值其实是本报文段所发送的数据的第一个字节的序号。这是因为TCP是面向连接的可靠服务,其每一个字节都会对应一个序号,通过序号来确保服务的可靠性和有序性。

【确认号】- 32bit

确认号,是期望收到对方的下一个报文段的数据的第一个字节的序号。(这句话有些拗口,但是在后面我们讲解三次握手和四次挥手时,大家会更深刻的理解这句话的含义)

【数据偏移】- 4bit

其实它本质上就是“首部长度”,因为“数据偏移”是指TCP报文段的数据部分的起始处距离TCP报文段的起始处的距离。(仍然很拗口,但相信你能明白)。

数据偏移总共占4bit,因此最大能表示的数值为15。而数据偏移的单位是“4字节”,此处的设计和IP数据报的设计是完全相同的,所以说TCP报文段首部的长度最长为15×4=60字节,且首部长度必须为4字节的整数倍。

【保留字段】- 6bit

这6bit在标准中是保留字段,我猜测,有两个目的,第一个是预留除URG/ACK/PSH/RST/SYN/FIN/之外的冗余功能位;第二个是为了对其字节位。

【紧急字段URG】- 1bit

此字段告诉系统此报文段中有紧急数据,应尽快传送。当URG=1时,

【确认字段ACK】- 1bit

当ACK=1时,表示确认,且确认号有效;当ACK=0时,确认号字段无效。

【推送字段PSH】- 1bit

当PSH=1时,则报文段会被尽快地交付给目的方,不会对这样的报文段使用缓存策略。

【复位字段RST】- 1bit

当RST为1时,表明TCP连接中出现了严重的差错,必须释放连接,然后再重新建立连接。

【同步字段SYN】- 1bit

当SYN=1时,表示发起一个连接请求。

【终止字段FIN】- 1bit

用来释放连接。当FIN=1时,表明此报文段的发送端的数据已发送完成,并要求释放连接。

【窗口字段】- 16bit

此字段用来控制对方发送的数据量,单位为字节。

一般TCP连接的其中一端会根据自身的缓存空间大小来确定自己的接收窗口大小,然后告知另一端以确定另一端的发送窗口大小。

【校验和字段】- 16bit

这个校验和是针对首部和数据两部分的。

【紧急指针字段】- 16bit

紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。

计算机网络协议包头赏析-TCP相关推荐

  1. 计算机网络协议——OSI、TCP数据、IP数据包、Ethernet 数据包

    计算机网络 欢迎关注公众号二月鸟的博客. 1.协议体系介绍 1.1 五层协议 应用层 :为特定应用程序提供数据传输服务,例如 HTTP.DNS 等.数据单位为报文. 传输层 :为进程提供通用数据传输服 ...

  2. 计算机网络协议(三)——UDP、TCP、Socket

    底层网络知识详解:最重要的传输层 概述 一.UDP协议 二.TCP协议(上) 2.1 TCP的三次握手 2.2 TCP的四次挥手 2.3 TCP状态机 三.TCP协议(下) 3.1 可靠传输 3.2 ...

  3. 计算机网络协议赏析-HTTP

    参考资料: HTTP协议详解 计算机网络协议赏析-HTTP 简明HTTP协议 HTTP 状态代码解释 [最熟悉的陌生人] 和TCP/UDP协议比起来,HTTP协议或许更为大家所熟知,因为大家处处都可以 ...

  4. 计算机网络OSI模型、TCP/IP模型与5G协议

    理论--计算机网络参考模型与5G协议 一. OSI参考模型 1.1 七层模型的功能 1.2 七层模型每层的定义与解释 二.5G协议 三种协议族:(TCP.UDP.IP) 三.各层的PDU协议数据单元 ...

  5. 计算机网络协议指的是tcp ip协议吗,计算机除了有网络协议也就是TCP/IP协议以外,还有什么协议呢?...

    用户提问 计算机网络协议: 应用层 ·DHCP(动态主机分配协议) · DNS (域名解析) · FTP(File Transfer Protocol)文件传输协议 · Gopher (英文原义:Th ...

  6. 【Sofice小司笔记】5 计算机网络,包含数据传输原理、网络各层协议详细说明、TCP/IP协议栈各常用协议说明、TCP握手挥手、可靠传输、网络加密技术

    ❓ 在浏览器地址栏输入一个 URL 后回车,背后发生了什么 解析 URL 浏览器封装 HTTP 请求报文 DNS 域名解析获取 IP 地址 建立 TCP 连接(长链接) 浏览器发送请求 负责传输的 I ...

  7. 计算机网络-运输层(UDP/TCP协议)

    文章目录 前言 一.计算机网络 二.运输层 1.复用和分用 2.UDP 3.TCP Ⅰ- TCP的灵魂拷问 - TCP 和 UDP 的区别 Ⅱ - TCP的灵魂拷问 - 三次握手 Ⅲ - TCP的灵魂 ...

  8. 计算机网络协议(IP、TCP、UDP、HTTP)

    1.计算机网络发展 与其说计算机改变了世界,倒不如说是计算机网络改变了世界.彼时彼刻,你我都因网络而有了交集,岂非一种缘分? 计算机与网络发展大致经历如下过程: 2.计算机的模式变化 起初的计算机主要 ...

  9. 计算机网络【UDP与TCP协议(三次握手、四次挥手)】

    计算机网络[UDP与TCP协议(三次握手.四次挥手)]

最新文章

  1. 实施ITIL十个需要知道的事情
  2. mp4v2再学习 -- H264视频编码成MP4文件
  3. osg中三维模型的位置变换
  4. Alpine Linux详解
  5. 1.php查询数据,查询数据 - ThinkPHP 5.1 完全开发手册
  6. 彻底学会Spring事务——概念+具体实现
  7. Unity的IOS接入新浪微博
  8. list -- set方法——替换列表中指定位置的元素
  9. 毕业3年,我换了4份工作:好工作,是这样“熬”出来的
  10. 逻辑结构的四种基本关系
  11. Jmeter测试脚本编写详解(配详图)
  12. lisp princ详解_autolisp princ 变量
  13. Photoshop实用的快捷键大全
  14. 数据分析之--Mataplotlib入门
  15. php mysql 插入图片_mysql中怎样插入图片
  16. Android studio虚拟器突然黑屏解决办法
  17. 买手妈妈如何赚钱?赚钱的模式具体是什么?
  18. 一文教你如何使用Mybatis Plugin 以及Druid Filer 改写SQL
  19. python四级是什么水平_大学英语四级相当于高考什么水平
  20. 【附源码】计算机毕业设计JAVA东理咨询交流论坛

热门文章

  1. 前端学习(1981)vue之电商管理系统电商系统之完成可选项的添加操作
  2. spring学习(46):spring的单例bean
  3. 第二十九期:运维之三大监控对比
  4. 快速入门 Jupyter notebook
  5. python词云_python词云
  6. IO_ADDRESS()的实现【转】
  7. fileinput 加 ftp 加 nginx 加 SpringBoot上传文件
  8. java算法之冒泡排序
  9. python 面向对象 新式类和经典类
  10. 如何使用Python脚本