频道栏目
首页 > 网络 > 网络协议 > 正文

TCP细节探究:TCP连接建立

2013-03-11 13:29:50         来源:cuiweican的专栏  
收藏   我要投稿

TCP细节探究:TCP连接建立
 

目前大多数的C/S架构的系统,各组件之间的通信方式都基本采用TCP协议,主要是因为TCP协议是一种稳定,可靠的传输协议,但对于TCP协议细节却并不一定被大多数人所熟知。

故本文介绍在TCP的一些细节,供大家讨论了解
  www.2cto.com  

一:TCP连接建立

 

TCP协议传输可靠性最大的理由就是对每一个传输的字节进行编码,如果接收方收到的字节序号序列中出现了丢失,发送方就会将丢失的字节序号重发,以此来保证传输的可靠。

为支持以上机制,发送双方在建立TCP连接的时候需要通知初始序列号,具体的通知步聚是:

1:客户端发送一个SYN段至服务器端, 该SYN段包含请求端的初始序号

2:服务器端对客户端的SYN段进行确认,同时,为了减少网络流量,在该ACK确认报文段中,附带服务端的初始序号  www.2cto.com  

3:客户端对服务器的SYN段进行确认。

以上就是常说的三次握手协议。

其中值得注意的是TCP报文格式中序号为32位的无符号整型,一般情况下初始序号为0,当其值增长到2^32-1时,又重置为0

并且一个ack确认报不会消耗一个报文序号。

现在来看一下通过抓取工具观察到的三次握手协议,如下图1所示

图1

上图中No. 9284是客户端发往服务器的SYN报文段,可以看到其初始序号为0, 窗口大小为8912, 报文长度为Len=0, MSS最大报文大小为1460.

No.9288是服务器发往客户端的SYN报文段,可以看到其初始序号为0, 窗口大小为8912, 报文长度为Len=0, MSS最大报文大小为1460.
 

窗口大小报告本端的接收缓存区大小,用于控制本端数据接收大小,另一个是拥塞窗口大小则是表来控制发送方的数据发送速度。

No.9289则为客户端发往服务器端的ack报文。

 

相关TAG标签 细节
上一篇:TCP/IP协议族简介
下一篇:TCP细节探究:TCP数据交互
相关文章
图文推荐
文章
推荐
热门新闻

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站