TCP学习(1)--报文段首部格式

1.TCP的主要特点

(1).TCP的面向连接的运输层协议;

(2).每一条TCP连接只能有两个端点(endpoint),是点到点之间的连接,每一个端点称为套接字(socket),套接字socket=(IP地址:端口号)。

(3).TCP提供可靠支付的服务;

(4).TCP提供双工通信;

(5).面向字节流。

2.TCP报文段的首部格式

尽管TCP是面向字节流,但是TCP传送的数据单元却是报文段。一个TCP报文段分为首部和数据两个部分,而TCP的全部功能都体现在它首部中各字段的作用。

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

TCP报文段首部如下图所示

固定部分的介绍如下:

(1).Souce Port:源端口。

(2).Destination Port: 目的端口。

(3).Sequence Number: 序号,表示本报文段所发送的数据的第一个字节的序号。

(4).Acknowledge Number:确认号,期望收到对方下一个报文段的第一个数据字节的序号;若确认号等于n,则表示序号为n-1为止的所有数据都已经正确的收到了。

(5).Data Offset:数据偏移,报文段的数据起始位置距离报文段的起始位置的距离,单位为32位字。

(6).Reserved:保留

(7).URG:紧急位,当该位为1时,表明紧急指针(Urgent Pointer)有效。当URG置1时,发送应用程序进程就告诉发送方的TCP有紧急数据要传送。于是,发送方TCP就把紧急数据插入到本报文段数据的最前面,而在紧急数据后面的数据仍是普通数据。要与紧急指针(Urgent Pointer)配合使用。

(8).ACK:仅当ACK=1时,确认号(Acknowledge Number)才有效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置1。

(9).PSH:即PUSH,推送,发送方把PSH位置1时,TCP立即创建一个报文段发送出去。接收方TCP收到PSH=1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后才向上交付。

(10).RST:复位,当RST=1时,表明释放连接,然后再重新建立连接。RST置1还用来拒绝一个非法报文段或拒绝打开一个连接。

(11).SYN:即Synchronization,同步,在建立连接的时候用来同步序号的当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,则在响应的报文段中使SYN=1和ACK=1。因此,SYN置为1就表示这是一个连接请求或连接接受报文。

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

(13).Window:窗口,指的是发送本报文段的一方的接收窗口(而不是自己的发送窗口)。窗口值告诉对方,从本报文段首部中的确认号(Acknowledge Number)开始,报文接收方目前运行发送的数据量。

(14).Check Sum:校验和,用于检查收到的数据是否有错。

(15).Urgent Point:紧急指针。仅在URG=1时有效,它指出了紧急数据的末尾在报文段中的位置。即使窗口为0时,也可以发送紧急数据。

(16).Options:选项,长度可变,最长可达40个字节。当没有使用选项时,TCP的首部长度是20个字节。

这些报文段各个部分在TCP建立连接、TCP数据传输和TCP断开连接时,会出现不同的状态,特别是六个标志位:URG,ACK,PSH,RST,SYN和FIN。TCP连接的建立和断开将在后面介绍。

参考文献

谢希仁, 计算机网络(第五版): 电子工业出版社, 2007.

版权所有,欢迎转载,转载请注明出处,谢谢

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-30 02:21:02

TCP学习(1)--报文段首部格式的相关文章

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

TCP报文段的首部格式 概述 TCP报文段首部的前20个字节是固定的,因此TCP首部的最小长度是20字节. 源端口和目标端口 各占2个字节,分别写入源端口号和目的端口号. 序列号 占4个字节,表示本报文段所发送数据的第一个字节的编号.在TCP连接中所传送的字节流的每一个字节都会按顺序编号.由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从 0 开始. 确认号 占4个字节,是期望收到对方写一个报文段的第一个数据字节的序号.若确认号=N,则表明:到序号N-1为止的所有数据都已正

TCP之报文首部格式

TCP虽然是面向字节流的,但TCP传输的数据单元却是报文段: 一个TCP报文段分为数据和首部两部分,而TCP的全部功能都体现在它首部中各字段的作用: TCP报文段首部前20个字节是固定的,后面有4n个字节是根据需要而增加的选项(n是整数).因此TCP首部的最小长度是20个字节. TCP首部中各字段的含义如下: 源端口和目的端口:各占2个字节.端口是传输层和应用层的服务接口.传输层的复用和分用功能都有要通过端口才能实现. 序号:占4个字节,序号范围是(0,2^32 - 1),共2^32(即4294

TCP连接之报文首部

在面试时,会经常被问到TCP报文的一些细节,可以说TCP报文是不少企业用来考察面试者对网络的掌握程度的一道题目. TCP连接作为网络传输的一个环节,是不可或缺的一部分.例如,OSI七层模型的应用层HTTP就是基于TCP连接实现的. TCP连接的三次握手和四次挥手机制相信是每个后台开发人员耳熟能详的知识点,那么关于TCP的报文细节以及背后的原理是怎么样的呢?TCP是怎样借助报文来实现三次握手和四次挥手呢?笔者通过阅读书本和加上自己的理解.通过本文,来谈谈TCP报文首部以及报文首部背后的原理. 首先

传输控制协议TCP学习(一)

时间:2014.06.25 地点:基地 --------------------------------------------------------------------------------- 一.TCP服务 TCP位于应用层与网络层之间,提供介于应用程序和网络功能之间的服务.主要包括如下服务: 1.1进程到进程的通信 与UDP一样,TCP也使用端口号提供进程到进程的通信 1.2流交付服务 与UDP不一样,TCP是一种面向流的协议. UDP中,进程将已定义好边界的报文发给UDP以便进行

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

from:https://blog.csdn.net/mary19920410/article/details/58030147 TCP报文是TCP层传输的数据单元,也叫报文段. 1.端口号:用来标识同一台计算机的不同的应用进程. 1)源端口:源端口和IP地址的作用是标识报文的返回地址. 2)目的端口:端口指明接收方计算机上的应用程序接口. TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接. 2.序号和确认号:是TCP可靠传输的关键部分.序号是本报文段发送

TCP三次握手及TCP连接状态 TCP报文首部格式

建立TCP连接时的TCP三次握手和断开TCP连接时的4次挥手整体过程如下图: 开个玩笑 ACK: TCP协议规定,只有ACK=1时有效,连接建立后所有发送的报文ACK必须为1 SYN(SYNchronization同步):在连接建立用来同步序号.当SYN=1而ACK=0时,表明这是一个连接请求报文.对方若同意建立连接,则应在响应报文中使用SYN=1 ACK=1因此,SYN置1表示这是一个连接请求或连接接受报文 FIN(FINIS)即完,终结的意思,用来释放一个连接.当FIN=1时,表明此报文段发

TCP 首部格式

<图解TCP/IP> 6.7  TCP的首部格式 TCP中没有表示包长度和数据长度的字段.可由IP层获知TCP的包长由TCP的包长可知数据的长度. 源端口号:表示发送端端口号,字段长16位. 目标端口号:表示接收端端口号,字段长度16位. 序列号:字段长32位.序列号是指发送数据的位置.每发送一次数据,就累加一次该数据字节数的大小.序列号不会从0或1开始,而是在建立连接时由计算机生成的随机数作为其初始值,通过SYN包传给接收端主机.然后再将每转发过去的字节数累加到初始值上表示数据的位置.此外,

计算机网络(三),TCP报文段详解

目录 1.TCP(Transmission Control Protocol传输控制协议)作用 2.TCP报文段详解 三.TCP报文段详解 1.TCP(Transmission Control Protocol传输控制协议)作用 (1)面向连接的.可靠地.基于字节流的传输层通信协议 (2)将应用层的数据流分割成报文段并发送给目标节点的TCP层 (3)数据包都有序号,对方收到则发送ACK确认,未收到则重传 (4)使用校验和来检验数据在传输过程中是否有误 2.TCP报文段详解 1.源端口(Sourc

帧、报文、报文段、分组、包、数据报的概念区别

分组.包,packet,信息在互联网当中传输的单元,网络层实现分组交付.用抓包工具抓到的一条条记录就是包. 帧,frame,数据链路层的协议数据单元.我们将链路层分组称为帧. 数据报,Datagram,通过网络传输的数据的基本单元,包含一个报头(header)和数据本身,其中报头描述了数据的目的地以及和其它数据之间的关系.可以理解为传输数据的分组.我们将通过网络传输的数据的基本单元称为数据报. 报文段,segment,组成报文的每个分组.我们将运输层分组称为报文段. 报文,message,一般指