首页 > 编程知识 正文

udp报文结构(什么是tcp/ip模型)

时间:2023-05-05 12:01:00 阅读:64084 作者:1424

TCP头格式

3358 www.Sina.com/http://www.Sina.com /类似于udp,用于查找发起方和接收方的APP应用程序进程。tcp数据是被封装在IP数据包中的,和udp类似,在IP数据包的数据部分。tcp数据包的格式如下:网络编程中,一个IP地址和一个端口号的组合通常称为套接字(socket )。

序列号(seq )是用于源端口号和目的端口号(寻址)的数据字节流,这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个,在tcp中以用于tcp的序列号按字节进行计数。 该值与发送的数据字节数无关,与发送的帧数无关。 详细情况将在后面叙述。 包括http://www.Sina.com/http://www.Sina.com /。 因此,确认号码为上次标识从TCP发端向TCP收端发送

表示在这个报文段中的第一个数据字节。

与标志位对应的功能如下所示。

URG :“紧急指针”(urgent pointer )有效。

ACK :确保序列号有效。

PSH :接收方应该尽快将这个报文段传递给APP应用层。

RST :重新建立连接。

SYN :同步序列号用于启动连接。

FIN )发送方完成发送任务。确认序号(seq+1)::用于流量控制。 http://www.Sina.com/:整个TCP消息传递段:验证和覆盖TCP报头和TCP数据,与udp相似需要计算伪报头。

)1)每个TCP段包含源端和目的端端口号发送确认的一端所期望收到的下一个序号。 将IP标头的源IP地址和目标IP地址添加到这两个值中,可以唯一确定TCP连接。

)2)序列号用于标识从TCP发送方发送到接收方的数据字节流,表示此消息段的第一个数据字节。 如果将字节流视为两个APP应用程序之间的单向流动,则TCP将每个字节计数为编号数据字节序号加1(不是单纯的序号加1,还包括数据字节数)。

)3)建立新连接后,SYN标志为1。 序列号字段包含主机选定连接的初始序列号ISN,主机发送数据的第一个字节的序列号将此ISN加1,因为SYN标志使用序列号。

)4)由于每传输的字节计数,因此确认序列号包含发送确认的一方想要接收的下一个序列号。 因此,在确认序列号时,必须上次成功接收数据字节号加1后的编号。 仅当ACK标志为1时,验证序列号字段是否有效。首部长度:用于记录tcp数据报首部的长度,一般为20字节,实际值为首部长度除以4。

)5) 32位确认号字段与ACK标志一样,始终是TCP报头的一部分,因此发送ACK不需要成本。 因此,建立连接时,此字段始终设置为,ACK标志也始终设置为1。

)6)窗口大小因此,连接的每个端都必须保存每个方向上传输数据的序列号。

)7) TCP未选择确认或拒绝检验和因此,TCP标头的确认号表示发送方成功接收到字节,但不包括确认号指向的字节。 目前无法确认数据流中选定的部分。

)选项字段的长度是可变的,因此必须设置标头长度。 TCP标头最多可达60个字节。

)9)在六个标志位中,,用于寻找发送端和接收端的应用进程

URG-紧急指针有效

确认 ACK-序列号有效

PSH-接收方应尽快将此消息段传递给APP应用层

RST-重新建立连接

SYN-同步序列号用于启动连接

FIN-发送方完成发送任务

(10 )在TCP的(seq)上提供。 窗口的大小是字节数,从“确认序列号”字段中指定的值开始。 此值是接收方希望接收的字节数。 由于窗口大小为16个字段,因此窗口大小最多为65535字节。

) 11 )(ack) 这是必填字段,必须由发送方计算并保存,接收方验证。 TCP检查和的计算也和UDP报头检查和的计算一样使用虚拟报头。

(12 )TCP为应用层提供全双工的服务

/strong>,序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。

(13)最常见的可选字段是最长报文大小MMS,每个连接方通常都在通信的第一个报文段中指明这个选项。它指明本端所能接收的最大长度的报文段。 


Wireshark抓包分析TCP结构

  利用wireshark抓取一个tcp数据包,查看其具体数据结构和实际的数据:

 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。 

  面向连接: 面向连接意味着使用tcp的应用程序在传输数据前必须先建立连接,就如打电话一样,要先进行拨号,等待对方响应才能开始说话。 
可靠性:tcp协议通过下列方式来提高可靠性: 

·        1.应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段。(定长)

·        2.当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。(定时重发)

·        3.当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒。(确认机制)

·        4.TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。(检验和较检)

·        5.既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。(必要时重新排序)

·        6.既然I P数据报会发生重复,TCP的接收端必须丢弃重复的数据。(去重)

·        7.TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。(流量控制)

字节流:两个应用程序通过TCP连接交换8 bit字节构成的字节流。

  另外,TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCII字符或者其他类型数据。对字节流的解释由TCP连接双方的应用层解释。



版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。