2025-11-20 06:48:27
syn字段在TCP里占1位,专门管建连接。比如发送数据前,双方先发syn包,收到后回复syn+ack包,再发ack包确认。这样三次握手才完成。RFC793标准明确说,syn=1代表“我要连你”,syn=0表示“不用建连”。每次发包前都要检查syn状态,要是对方没回syn+ack,就发三次重试。
为什么占1位?因为只要0或1就能表示有无。RFC793说,syn包必须和ack包不同时走,所以第一次发syn,对方回syn+ack。比如我发syn=1,对方回syn=1,ack=1。这样三次才能连上。要是少发一次,就会断开。比如有人只发一次,系统就提示“连接失败”。数据包头里还有其他字段占更多位,但syn专门管建连这点最关键。要是syn没对上,后续数据根本传不出去。比如网页打不开,先检查syn状态有没有问题。
本题链接: