1.TCP报文格式

源端口号: 占用16位,报文来自哪个端口。

目的端口号: 占用16位,报文要传输到哪个端口。

Seq序列号: 占用32位,一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号。假设主机A和主机B进行TCP通信,A发送给B的第一个TCP报文段中,序号值被系统初始化为某个随机值ISN(Initial Sequence Number,初始序号值)。那么在该传输方向上(从A到B),后续的TCP报文段中序号值将被系统设置成ISN加上该报文段所携带数据的第一个字节在整个字节流中的偏移。例如,某个TCP报文段传送的数据是字节流中的第1025~2048字节,那么该报文段的序号值就是ISN+1025.另外一个传输方向(从B到A)的TCP报文段的序号值也具有相同的含义。

Ack确认序列号: 占用32位,用作对另一方发送来的TCP报文段的响应。其值是收到的TCP报文段的序号值加1。假设主机A和主机B进行TCP通信,那么A发送出的TCP报文段不仅携带自己的序号,而且包含对B发送来的TCP报文段的确认号。反之,B发送出的TCP报文段也同时携带自己的序号和对A发送来的报文段的确认号。

头长度: 占用4位,标识该TCP头部有多少个字节。因为4位最大能标识15,所以TCP头部最长是60字节。

保留位: 占用6位,很少使用,一般为0。

控制位: URG ACK PSH RST SYN FIN,共6个,每一个标志位表示一个控制功能;

标志位(占用1位) 功能
URG 紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。
ACK 确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。
PSH push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。
RST 重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。
SYN 同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。
FIN finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。

窗口: 占用16位,滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制。窗口大小时一个16bit字段,因而窗口大小最大为65535。

校验和: 占用16位,奇偶校验,此校验和是对整个的 TCP 报文段,包括 TCP 头部和 TCP 数据,以 16 位字进行计算所得。由发送端计算和存储,并由接收端进行验证。

紧急指针: 占用16位,只有当 URG 标志置 1 时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。 TCP 的紧急方式是发送端向另一端发送紧急数据的一种方式。

选项和填充: 最常见的可选字段是最长报文大小,又称为MSS(Maximum Segment Size),每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN标志为1的那个段)中指明这个选项,它表示本端所能接受的最大报文段的长度。选项长度不一定是32位的整数倍,所以要加填充位,即在这个字段中加入额外的零,以保证TCP头是32的整数倍。

数据部分: TCP 报文段中的数据部分是可选的。在一个连接建立和一个连接终止时,双方交换的报文段仅有 TCP 首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中,也会发送不带任何数据的报文段。

2.UDP报文格式

源端口号: 占用16位,报文来自哪个端口。

目的端口号: 占用16位,报文要传输到哪个端口。

UDP长度: 占用16位,UDP报文的字节长度(包括首部和数据)。

校验和: 占用16位,检验UDP首部和数据部分的正确性。

网络基础知识(TCP/UDP报文格式)四相关推荐

  1. 网络基础知识 TCP UDP IP

    文章目录 一.简介TCP/IP协议 二.传输层 2.1 UDP 2.2 TCP 三.小结 一.简介TCP/IP协议 1.简介 TCP/IP是一组协议的代名词,它包括了许多承载在IP或者TCP之间或之上 ...

  2. TCP/UDP报文格式及各种通信机制简介

    TCP/UDP报文格式及各种通信机制简介 一.UDP报文 二.TCP报文 三.TCP通信机制 1,确认应答机制 2,超时重传机制 3,滑动窗口及快重传机制 4,流量控制 5,拥塞控制及慢启动机制 6, ...

  3. TCP/UDP报文格式

    TCP/UDP报文格式 TCP 协议为终端设备提供了面向连接的.可靠的网络服务,UDP 协议为终端设备提供了无连接的.不可靠的数据报服务.从上图我们可以看出,TCP 协议为了保证数据传输的可靠性,相对 ...

  4. TCP/IP:TCP/UDP报文格式

    目录 TCP报文格式 UDP报文格式 TCP报文格式 报文格式 图1 TCP首部格式 字段 长度 含义 Source Port 16比特 源端口,标识哪个应用程序发送. Destination Por ...

  5. 网络基础知识-TCP/IP协议各层详解

    TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...

  6. 没有到主机的路由_网络基础知识:UDP协议之路由跟踪

    一次性付费进群,长期免费索取教程,没有付费教程. 进微信群回复公众号:微信群:QQ群:460500587  教程列表 见微信公众号底部菜单 |  本文底部有推荐书籍  微信公众号:计算机与网络安全 I ...

  7. 网络编程培训之一 编程实现IP/TCP/UDP报文

    系列博客参考:http://blog.csdn.net/zy416548283/article/category/1108400 代码以编号对应放在Github上:https://github.com ...

  8. 带你一文看懂--应用层、传输层的协议,HTTP协议及实现,UDP和TCP的报文格式以及为什么3次握手和4次挥手

    网络基础:TCP/IP四层模型中的典型协议--理解网络通信的流程原理 应用层协议:负责应用程序之间的数据沟通 网络版计算器:客户端向服务端传递两个数字以及一个运算符,服务端收到数据进行解析得到数字与运 ...

  9. 网络基础知识 | 协议 | TCP/IP分层模型

    目录 网络基础知识 网络互联 互联网基础知识 网络的构成要素 网卡 中继器 网桥/2层交换机 路由器/3层交换机 4-7层交换机 网关 协议 分组交换协议 谁来规定协议 协议的标准化 协议的分层 分层 ...

最新文章

  1. web签名验证程序【跨服务器、中文字符签名方法】-php为例
  2. java的collection集合
  3. 微信小程序验证车牌号(含新能源车牌)
  4. Java面向对象(3.1)--方法的重载,可变个数的形参,值传递机制,递归
  5. xodo上的笔记不见了_一起来“终极笔记名场面批发市场”进货吗
  6. HDU-2067-小兔的棋盘
  7. 院士大咖齐聚苏州,共话AI未来,30个优秀个人和企业、产品受到表彰
  8. python如何连接sql server数据库_Python连接SQLServer数据库
  9. 数据库之“on”“where”区别
  10. 火车头伪原创接口【基于ai伪原创】
  11. 逻辑分析题目:“给你一个9升的水桶和一个4升的水桶,在河里取6升水”
  12. Android CPU架构之ARM和X86
  13. (后台)Openbravo如何实现业务事件监听处理
  14. 我叫mt4公会攻城战服务器维护中,公会攻城战也要讲战术《我叫MT4》攻城战策略解析...
  15. 【day22】java导出word文档(包含导出图片)
  16. oracle闪回ddl,Oracle闪回详解
  17. flash插件替换方案-把uploadfy替换为uploadfive
  18. 「UbuntuROS」Ubuntu系统下几个必不可少的设置和软件|1-4
  19. vim /etc/hostname1输入命令后进入到以下界面。
  20. 在C4D和Keyshot中保存产品模型到预设库多次重复使用

热门文章

  1. JavaScript系列学习笔记 —— 冒泡型和捕捉型事件
  2. 基于fluxion 6.9 钓鱼wifi
  3. 影响世界的100条管理定律
  4. 计算机设备编号中字母代号对照,工艺流程图中各字母符号表示什么设备
  5. 木瓜移动每日资讯0608:《摩尔庄园》手游版开服8小时下载量突破600万
  6. android NavigationView解析
  7. Android导航组件Navigation实现原理
  8. nodeJS exports
  9. 会员积分营销体系具有哪些基础功能呢?
  10. 通信工程专业学生走进C语言