TCP 三次握手和四次挥手详解
2013-05-31 11:18
489 查看
1. TCP 报文格式详解
TCP标志位,有6种标示:SYN(synchronous建立联机) ,ACK(acknowledgement 确认) ,PSH(push传送), FIN(finish结束) ,RST(reset重置), URG(urgent紧急)
Sequence number(顺序号码) ,Acknowledge number(确认号码),在上面我们已经详细说明!
三次握手:
(1). 源端口和目的端口字段——各占 2 字节,标识了发送方和接收方的应用进程,如2210,80端口 (2). 序号字段——占 4 字节,TCP 连接中传送的数据流中的每一个字节都编上一个序号,序号字段的值则指的是本报文段所发送的数据的第一个字节的序号 (3). 确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号 (4). 数据偏移(4位首部长度)——占4bit,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远 (5). 保留字段——占6bit,保留为今后使用,但目前应置为 0 (6). 紧急比特 URG —— 当URG 为1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据) (7). 确认比特 ACK —— 只有当 ACK为 1 时确认号字段才有效,当 ACK为 0 时,确认号无效 (8). 推送比特 PSH (PuSH) —— 接收TCP收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付 (9). 复位比特 RST (ReSeT) —— 当 RST为 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,通知一下对方 (10). 同步比特 SYN —— 同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文 (11). 终止比特 FIN (Final) —— 用来释放一个连接,当FIN 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接 (12). 窗口字段 —— 占 2 字节,窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限 (13). 检验和 —— 占 2 字节,检验和字段检验的范围包括首部和数据和伪段头(不是TCP里的信息,但是计算校验和的时候也计算了的内容:IP地址,TCP数据段长度,协议类型) (14). 紧急指针字段 —— 占 16 bit,紧急指针指出在本报文段中的紧急数据的位置 (15). 选项字段 —— 长度可变,TCP 规定了二种选项,最大报文段长度 MSS (Maximum Segment Size)。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。” 和窗口扩大因子,用于扩大接收方窗口2. 三次握手和四次挥手详解
TCP标志位,有6种标示:SYN(synchronous建立联机) ,ACK(acknowledgement 确认) ,PSH(push传送), FIN(finish结束) ,RST(reset重置), URG(urgent紧急)
Sequence number(顺序号码) ,Acknowledge number(确认号码),在上面我们已经详细说明!
三次握手:
第一次握手:建立连接时,主机A发送SYN包(syn=m)到服务器,并进入SYN_SEND状态,等待主机B确认 第二次握手:主机B收到SYN包,必须确认主机A的SYN(ACK=m+1),同时自己也发送一个SYN包(SYN=n),即SYN+ACK包,此时主机B进入SYN_RECV状态 第三次握手:主机A收到主机B的SYN+ACK包,向主机B发送确认包ACK(ACK=n+1),此包发送完毕,主机A和主机B进入ESTABLISHED状态,完成三次握手四次挥手:
当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求 主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1 由主机B端再提出反方向的关闭请求,将FIN置1 主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束
相关文章推荐
- WireShark抓包图解 TCP三次握手/四次挥手详解
- wireshark抓包图解 TCP三次握手/四次挥手详解
- TCP/IP的三次握手与四次挥手详解
- TCP三次握手/四次挥手详解
- TCP的三次握手和四次挥手详解
- TCP 三次握手和四次挥手详解
- wireshark抓包图解 TCP三次握手/四次挥手详解
- TCP的三次握手和四次挥手详解
- wireshark抓包图解 TCP三次握手/四次挥手详解
- wireshark抓包图解 TCP三次握手/四次挥手详解
- [网络] TCP三次握手/四次挥手详解 2 补(转) [百度空间]
- [转]Linux服务器上11种网络连接状态 和 TCP三次握手/四次挥手详解
- wireshark抓包图解 TCP三次握手/四次挥手详解 【转】
- TCP/IP的三次握手与四次挥手详解
- TCP协议中为什么三次握手,四次挥手(详解)!!!
- TCP三次握手/四次挥手详解
- wireshark抓包图解 TCP三次握手/四次挥手详解
- wireshark抓包图解 TCP三次握手/四次挥手详解
- [网络] TCP三次握手/四次挥手详解 2 补(转) [百度空间]
- wireshark抓包图解 TCP三次握手/四次挥手详解