设为首页 加入收藏

TOP

2.1.1 TCP协议基础(2)
2013-10-07 15:54:03 来源: 作者: 【 】 浏览:84
Tags:2.1.1 TCP 协议 基础

2.1.1  TCP协议基础(2)

源端口:16bit源端口指的是发起通信的端口号。

目的端口:16bit目的端口指的是传输目的地的端口号。

序号:该序号是32bit的无符号数,到达232-1后又从0开始,表示在这个报文段中的第一个数据字节的编号。利用序号段可以纠正传输导致的乱序,从而重组分段报文。

确认序号:TCP使用32确认号标识下一个希望收到的报文的第一个字节的编号。因此,确认号应当是上一次成功接收到的数据字节序号加1。

首部长度:4bit,该字段以字为单位计量TCP头长度。

保留:6bit恒为0,将来定义新的用途。

URG:紧急指针有效。

ACK:确认序号有效。

PSH:接收方应该尽快将这个报文交给应用层。

RST:重置连接。

SYN:同步序号,用来发起一个连接。

FIN:发送端完成发送任务。

窗口:该16bit字段表明接收端声明可以接收的TCP数据段大小,最大为65535字节。

校验和:该16bit由发送端计算存储,由接收端进行验证。验证整个TCP,包括首部和数据。

紧急指针:只有当URG置1时才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。通常用于发送紧急数据。

选项:常见可选字段是最长报文大小。

数据:TCP数据部分可选。建立和释放连接时,双方交换的只有TCP首部。

3. TCP通信

(1) 在使用TCP进行通信时,首先需建立连接。建立连接需要经过如下3次握手。

① 请求端(客户)发送一个SYN段,指明客户打算连接的服务器的端口以及SEQ(初始序号)。

② 服务器发回包含服务器的SEQ的SYN报文段作为应答。同时序号(ISN)加1,用以对客户的SYN报文段进行确认。

③ 客户将确认服务器的ISN加1,用以对服务器的SYN报文段进行确认。

具体过程如图2-2所示。

建立连接之后需要停止连接,停止连接需要经过4次握手,这是由TCP的半关闭(Half-close)造成的。停止连接的具体过程如图2-3所示。

为了加深读者对TCP处理过程的理解,接下来通过一个简单例子来说明,此例的运行过程如图2-4所示。

 
图2-2  TCP建立连接
 
图2-3  TCP停止连接
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.1.1 TCP协议基础(1) 下一篇2.1.1 TCP协议基础(3)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)
·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)