TCP数据段的首部格式:

源端口号(16)

目的端口号(16)

序列号(32)

确认应答号(32)

数据偏移(4)

保留(6)

代码位(6)

窗口(16)

校验和(16)

紧急指针

选项(长度可变)

填充

数据部份(长度可变)

         

TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项,因此首部的最小长度是20字节。
首部固定部分的个字段的意义如下:
1.源端口和目的端口字段——
各占2字节。端口是运输层与应用层的服务接口。
运输层的复用和分用功能都要通过端口才能实现。

2.序号字段——
占4字节。TCP是面向字节流的,一个TCP连接中传送的字节流中的每一个字节都按顺序编号。
整个要传送的字节流的起始序号必须在连接建立时设置。
首部中的序号值是指本报文段所发送的数据的第一个字节的序号。

3.确认号:
4个字节,期待收到对方下一个报文段的第一个数据字节的序号。
若确认号=N,表明到序号N-1为止的所有数据都已经正确收到!

4.数据偏移(即首部长度)——
占4位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。
因首部中还有长度不确定的选项字段,故数据偏移字段是必要的
而数据偏移的单位是4字节,则此字段是用来表TCP首部的长度的,最大长度是4*15,60字节,即选项长度不超过40字节.

5.保留字段——
占 6 位,保留为今后使用,但目前应置为 0。

6.紧急URG ——
当 URG ==1 时,表明紧急指针字段有效。
它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
而不是按原来的排队顺序传送。
当URG=1,发送进程就告诉TCP有紧急数据需传送,TCP就会将紧急数据插入到本报文段的最前面,这需要和首部中的紧急指针字段配合使用.

7.确认ACK(ACKnowlegment):
当ACK=1,确认号字段才有效,当ACK=0,确认号字段无效。
TCP规定,在连接建立后所有传送的报文段都必须把ACK置1.

8.推送PSH(PuSH):
当两个进程通信时,有时一端的进程希望键入一个命令后,能立即收到对方的响应,这时TCP就可以将PSH=1,
并立即创建一个报文段发送出去,接收方TCP收到PSH=1,就会尽快交付给接收端进程,而不会再等整个缓存填满后再交付。

9.复位 RST (ReSeT) ——
当 RST=1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接
RST置1可以用来拒绝一个非法的报文段或者拒绝打开一个连接。

10.同步SYN:
在建立连接时用来同步序号,当SYN=1&&ACK=0,表示这是一个请求连接的报文段,
若对方同意建立连接,则在响应报文段中使得SYN=1&&ACK=1。
故SYN=1:表示这是一个连接请求和连接接收报文。

11.终止FIN:
用来释放一个连接,当FIN=1,表示此报文段发送方的数据发送完毕,并要求释放连接。

12.窗口:

我告诉你我的窗口值的目的是要你知道我一次性能接收多大的数据量。
2个字节,从0开始,窗口指的是发送本报文段的这一方的接收窗口(而不是自己的发送窗口),
窗口值告诉对方:从本报文段首部的确认号开始算起,
接收方目前允许(窗口值是经常动态变化的)对发送方发送的数据量。
窗口字段明确指出了现在允许对方发送的数据量。

13.检验和 ——
占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。

14.紧急指针:
2个字节,当URG=1,紧急指针才有意义,指出本报文段中的紧急数据的字节数。
注意:当窗口值为0,也可以发送紧急数据。

15.选项:
最长为40字节,当没有选项时,TCP首部长度为20字节。

TCP对应的协议:
(1) FTP:定义了文件传输协议,使用21端口。
(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。

--------------------------------------------------------------------------------------------------------------------------------------

UDP数据段格式:

源端口号(16)

目的端口号(16)

长度(16)

校验和(16)

数据(若有的话)

用户数据报UDP有两个字段:<数据>字段和<首部>字段。
首部字段很简单,只有8个字节,由4个字段组成,每个字段的长度都是两个字节。
各字段的意义如下:
1.源端口
源端口号,在需要对方回信的时候选用,不需要的时候可用全0
2.目的端口
目的端口号,这在终点交付报文时必须要使用到。
3.长度
UDP用户数据报的长度(首部字段和数据字段),其最小值是8,也即是只有首部。
4.检验和
检测UDP用户数据报在传输的过程中是不是有错,有错就丢弃。

UDP对应的协议:

(1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
(2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
(3) TFTP(Trival File Tran敏感词er Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。

详解TCP和UDP数据段的首部格式相关推荐

  1. 详解 TCP 和 UDP的概念、特点和区别

    文章目录 前言 TCP TCP 连接和断开 TCP 协议的特点 UDP UDP 协议的特点 UDP 协议的适用场合 TCP和UDP的比较 TCP和UDP的使用场景 参考 前言 TCP 和 UDP都是传 ...

  2. 详解 TCP 和 UDP

    本篇文章转载自公众号:网络技术平台 https://mp.weixin.qq.com/s/8iyxF1tT3JhyHKdyeF1uAg 目录 一.概述 二.初始传输层 2.1 TCP 2.2 UDP ...

  3. TCP/IP详解--TCP传输小数据包效率问题

    摘要:当使用TCP传输小型数据包时,程序的设计是相当重要的.如果在设计方案中不对TCP数据包的 延迟应答,Nagle算法,Winsock缓冲作用引起重视,将会严重影响程序的性能.这篇文章讨论了这些 问 ...

  4. 一文详解 TCP与UDP区别

    计算机与其他网络设备相互通信,通信的双方在发送和接收数据包时必须基于相同的规则(例如:如何找到通信目标.如何发起通信.如何结束通信等规则都需要事先确定),我们将这种规则称为协议(Protocol). ...

  5. 一篇文章带你详解 TCP/IP 协议(下)

    前面的第一二三章已在上篇讲解,还没看过的可以先看看:一篇文章带你详解 TCP/IP 协议(上) 本文继续讲解第四章. 四.网络层中的 IP 协议 IP(IPv4.IPv6)相当于 OSI 参考模型中的 ...

  6. 详解 TCP/IP 协议

    什么是TCP/IP协议 TCP/IP通信协议是目前最完整.最被广泛支持的通信协议,它可以让不同网络架构.不同操作系统的计算机之间通信,是Internet的标准通信协议. TCP的介绍 TCP也叫传输控 ...

  7. 详解TCP/IP网络模型

    目录 第一层:物理层 第二层(数据链路层) 第三层(网络层) 第四层(传输层) 第五层(应用层) 网络模型有好几种,其中最常讨论的有俩种:OSI七层参考模型.TCP/IP四层参考模型.OSI模型是国际 ...

  8. 详解 TCP 连接的“三次握手”与“四次挥手”

    详解 TCP 连接的"三次握手"与"四次挥手" 前言 TCP的三次握手(Three-Way Handshake) 1."三次握手"的详解 2 ...

  9. 【转】TCP、UDP数据包大小的限制

    [转]TCP.UDP数据包大小的限制 来自:https://blog.csdn.net/caoshangpa/article/details/51530685 1.概述 首先要看TCP/IP协议,涉及 ...

最新文章

  1. 关于大型网站技术演进的思考(九)--网站静态化处理--总述(1)
  2. Fragment生命周期详解
  3. WEB入门之十九 UI
  4. C++总结笔记(七)—— 运算符重载
  5. C++11 —— 简易的旋转锁类
  6. Linux学习之七--mysql的安装使用
  7. [Android 5.1] 多用户管理UserManager相关整理
  8. 陈强教授《机器学习及R应用》课程 第七章作业
  9. 智慧经营误区为何很多人还在执迷不悟?
  10. rk3288 安卓7.1显示正确的ICCID值
  11. POJ 3692 Kindergarten(最大团)
  12. CSDN之每日IT冷知识答案大全
  13. opencv-人眼检测,人眼跟踪
  14. 【逻辑与计算理论】从逻辑到计算的转变之路
  15. 【Gym 102893 L】The Firm Knapsack Problem (贪心)
  16. 知识蒸馏系列(一):三类基础蒸馏算法
  17. mybatis-plus代码生成器,程序员偷懒神器
  18. 区块链焦虑症:用卖肉包的理论分析你是不是一定要上区块链的车
  19. ASP.NET大型智能办公OA源码(带完整开发文档)
  20. 抖音用户扫码一键转发视频至抖音php

热门文章

  1. [Fedora 20] 设置Terminal快捷键 + 设置桌面快捷方式 + Terminal透明解决方案
  2. 如何解决“请考虑使用 app.config 将程序集“XXXXXXXX”从版本XXXX重新映射到版本XXXX”的问题
  3. IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题)
  4. 创建 maven maven-archetype-quickstart 项目抱错问题解决方法
  5. mysql5.6.38占用内存过大问题解决
  6. 我什么时候应该使用访客设计模式? [关闭]
  7. 如何使用十六进制颜色值
  8. URDF与xacro
  9. Jquery,ajaxFileUpload插件完成图片上传
  10. 等压线上怎么画风向_圣诞贺卡怎么写?向你爱的人送上最有温度的祝福吧!