TCP/IP协议的三次握手

 以太网的数据是以帧为单位进行传输的,每一帧(MAC封包)数据分为header和data两部分。data部分最大为1500byte,当然这个大小是可以设置的(要遵寻标准,改了后果可能很严重)。

传输数据的时候MAC封包的data部分包裹着IP封包,IP封包也是由header和data组成,IP封包的data部分又包裹者TCP封包,TCP也由header和data组成,TCP封包data部分又包裹着应用层协议封包如HTTP,

接受数据也由对应的层层层解析。IP封包最大65535byte,如果IP封包大于MAC封包最大值,则切分成多个MAC封包进行传输。

 

 TCP封包格式

Source Port(来源端口)

Destination Port:(目的端口)

Sequence Number(封包序号):

由于 TCP 封包必须要带入 IP 封包当中,所以如果 TCP 数据太大时(大于 IP 封包的容许程度), 就得要进行分段。这个 Sequence Number 就是记录每个封包的序号,可以让收受端重新将 TCP 的数据组合起来

Acknowledge Number:

为了确认主机端确实有收到我们 client 端所送出的封包数据,我们 client 端当然希望能够收到主机方面的响应,那就是这个 Acknowledge Number 的用途了。 当 client 端收到这个确认码时,就能够确定之前传递的封包已经被正确的收下了。

Code (Control Flag, 控制标志码)

当我们在进行网络联机的时候,必须要说明这个联机的状态,好让接收端了解这个封包的主要动作。 这可是一个非常重要的句柄喔!这个字段共有 6 个 bits ,分别代表 6 个句柄,若为 1 则为启动。分别说明如下:

URG(Urgent):若为 1 则代表该封包为紧急封包, 接收端应该要紧急处理,且图 2.4-1 当中的 Urgent Pointer 字段也会被启用。

ACK(Acknowledge):若为 1 代表这个封包为响应封包, 则与上面提到的 Acknowledge Number 有关。

PSH(Push function):若为 1 时,代表要求对方立即传送缓冲区内的其他对应封包,而无须等待缓冲区满了才送。

RST(Reset):如果 RST 为 1 的时候,表示联机会被马上结束,而无需等待终止确认手续。这也就是说, 这是个强制结束的联机,且发送端已断线。

SYN(Synchronous):若为 1,表示发送端希望双方建立同步处理, 也就是要求建立联机。通常带有 SYN 标志的封包表示『主动』要连接到对方的意思。

FIN(Finish):若为 1 ,表示传送结束,所以通知对方数据传毕, 是否同意断线,只是发送者还在等待对方的响应而已。

 

 

三次握手过程

 

 

http是建立在TCP上的应用层协议,我以访问http://www.centoscn.com/CentosServer/www/2015/0422/5245.html进行分析

打开wireshark,过滤规则里输入http,找到GET /CentosServer/www/2015/0422/5245.html HTTP/1.1的那条记录,右键然后点击"Follow TCP Stream"

看到在进行HTTP数据传输之前,我的本机和120.76.14.151互相发送了3个TCP数据包,这就是3次握手的包。

第一次握手数据包,TCP的controlFlags SYN为1,sequence num 963326680

第二次握手的数据包,由三次握手的图示我们可以得出 第二次握手数据包ControlFlgas 的SYN位为1,ACK位为1,Acknowledge Number=963326680+1=963326681

第三次握手数据由图得出ControlFlgas 的ACK为1, Acknowledge Number=475266512+1=475266513

 

后面再分析下四次挥手

 

转载于:https://www.cnblogs.com/gaoqin31/p/5723458.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值