传输协议之-TCP/UDP
对比
TCP 可靠 面向连接-类似打电话/收到扣1 但是效率比较低
UDP 不可靠的 面向无连接-类似群聊 效率高
eg:QQ传文件-TCP(保证文件完整),发消息-UDP
数据包结构
tcp三次握手
甲:你是小王?
乙:是的,我是小王,你是老李吗?
甲:是的我是老李
流程:主机1
发送SYNseq=0,ctl=SYN
(seq标记位,序列号) -->主机2
收到SYN,发送SYN及ACK(确认号:收到的序列号+1)seq=0(序列号),ack=1,ctl=SYN(同步位),ACK
--—>主机1
收到STN及ACK,Establishedseq=1 ack=1 ctl=ACK
抓包实例
拓展:安全方向-SYN Flood(洪水)攻击是ddos的主要方式,通过僵尸网络发送大量的SYN报文,并不回复第二个包。
tcp会话确认
- 所有的包都要确认,只有第一个包是没有确认号的
- 最终的确认号就是数据的大小
主机1
seq=1 ack=1 |Data(9字节)
-->主机2
seq=1 ack=10 |Data(20字节)
“ack=10理解为‘你可以发送序列号为10的数据包了’”-->主机1
seq=10 ack=21 |Data(12字节)
-->主机2
seq=21 ack=22 |Data(n字节)
确认号就是前一个包的序列号+数据