您的位置 首页 传感器

关于tcp的握手与数据传输

搞了n天的tcpip协议,才渐渐的明白,tcp和ip是两个不同层上的协议,而且也不一样,tcp是架在ip上的,当然,ip不仅可以包含tcp,也可以包

搞了n天的tcp/ip协议,才逐渐的理解,tcp和ip是两个不同层上的协议,并且也不一样,tcp是架在ip上的,当然,ip不只能够包括tcp,也能够包括udp,至于他们其间的杂乱关系,我也不知道,只知道,现在的互联网,大多数用tcp协议。所以就搞了一下。

关于tcp而言,2个问题,第一个是握手和挥手,第二个是数据传输。 握手和挥手时,并不传输真实的数据。只需在握手后,挥手前,才可进行有用数据的传输。关于tcp的协议程序,首要要处理握手,由于不进行握手,是无法传输数据的,这当然仅仅协议界说的,假如关于底层而言,就没有这么杂乱了,但关于网络这样杂乱的体系来说,树立一个有用安稳的衔接仍是挺重要的。

那么程序首要,要对数据帧进行拆解,核对去掉以太网帧,核对去掉ip帧,在ip帧中,判别协议是否为tcp协议(即一帧开端的第23位是否为06),当得知ip包内封装的是tcp协议后,咱们就能够开端判别该tcp包是握手挥手包仍是数据包了。关于下位机而言,假如不在程序上做处理,关于任何包,底层都能够接纳。但咱们有必要要依照tcp协议规则的那样来做,首要要判别是否树立衔接,假如没有,则只接纳握手包,而丢掉数据包和挥手包。

判别握手包和挥手包在帧的第47个位,0x01(挥手),0x02(握手),0x10(应对),0x11(挥手应对),0x12(握手应对),0x18(传输数据),只需判别47位数据契合哪个即可做相应处理。
握手进程为:
a:发送0x02给b,b:回复0x12给a,a:发送0x10给b
一起a在发送握手数据时会带一个序列号,当比收到序列号时,加1后会回给a
握手后树立衔接,树立衔接后即可发送数据
发送数据时,判别帧的第47位是否为0x18,若是,则可将数据推入应用层。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/318724.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部