TCP头部格局详解,附Wireshark对TCP头部抓包剖析

  本文章转载自:http://www.ctowhy.com/125.html

  TCP之所以能为数据通信供给牢靠的传输,主要在于TCP数据包头部功用十分多。

  那么,我们先来看看TCP头部格局(RFC 793、1323定义了TCP头部):

  tcp头部格局

  (依据上图,按从上往下,从左往右的依次)

  大年夜家也能够对比着下面这张Wireshark对TCP抓包剖析图,看看一个真正基于TCP数据包中,TCP头部格局是如何的。

  下图为一个telnet数据包的格局,telnet用的传输层协定就是TCP,下图中被红线框中的就是TCP头部:

  Wireshark对TCP头部抓包剖析,

  三次握手Three-way Handshake

  一个虚拟连接的建立是经过三次握手来完成的

  1. (Client) –> [SYN]

  –> (Server)

  假设Client和Server通信. 当Client要和Server通信时,Client起首向Server发一个SYN (Synchronize) 标记的包,通知Server恳求建立连接.

  留心: 一个 SYN包就是仅SYN标记设为1的TCP包(拜会TCP包头Resources). 看法到这点很主要,只要当Server收到Client发来的SYN包,才可建立连接,除此以外别无他法。因此,假设你的防火墙抛弃一切的发往外网接口的SYN包,那么你将不 能让外部任何主机主动建立连接。

  2. (Client) <– [SYN/ACK]

  <–(Server)

  接着,Server收到来自Client发来的SYN包后,会发一个对SYN包确实认包(SYN/ACK)给Client,表现对第一个SYN包确实认,并继续握手操作.

  留心: SYN/ACK包是仅SYN 和 ACK 标记为1的包.

  3. (Client) –> [ACK]

  –> (Server)

  Client收到来自Server的SYN/ACK 包,Client会再向Server发一个确认包(ACK),通知Server连接已建立。至此,三次握手完成,一个TCP连接完成。

  Note: ACK包就是仅ACK 标记设为1的TCP包. 需求留心的是当三此握手完成、连接建立以后,TCP连接的每个包都邑设置ACK位。

  这就是为何连接跟踪很主要的启事了. 没有连接跟踪,防火墙将没法辨别收到的ACK包可否属于一个曾经建立的连接.通俗的包过滤(Ipchains)收到ACK包时,会让它经过(这相对不是个 好主意). 而当形状型防火墙收到此种包时,它会先在连接表中查找可否属于哪个已建连接,否则抛弃该包。

  四次握手Four-way Handshake

  四次握手用来封闭已建立的TCP连接

  1. (Client) –> ACK/FIN –> (Server)

  2. (Client) <– ACK <– (Server)

  3. (Client) <– ACK/FIN

本文地址//a/hgtyappxz/20200331-63.html,转载请注明出处!

上一篇:ipad2卡顿怎么解决?版本9.3.5 下一篇:没有了