TCP两个重要网络原理
结论:
- ACK确认控制字段会贯穿通讯整个过程
- TCP协议在进行通讯时候,只有处于established状态才能传输数据
三次握手:
序列号: 对拆分的数据包进行编号
确认号: 有序传输数据
发送TCP数据包,包含SYN=1控制字段,请求建立连接
发送TCP数据包,包含ACK=1 SYN=1控制字段,确认连接建立
发送TCP数据包,包含ACK=1控制字段,最后进行确认四次挥手:
发送TCP数据包,包含FIN=1 ACK=1控制字段,请求断开连接
发送TCP数据包,包含ACK=1控制字段,断开连接请求被确认
发送TCP数据包,包含FIN=1 ACK=1控制字段,确认请求断开连接
发送TCP数据包,包含ACK=1控制字段,最后进行确认
问题1:为什么是四次挥手
传输层接收到断开请求,需要向会话层进行汇报
确保数据传输完毕后,才能发出断开请求
问题2:可以不可以出现三次挥手
第二次挥手过程的ack没有发出 没有收到,直接收到了第三次挥手的信息
问题3:四次挥手时候,为什么要有time_wait
为了让通讯对端主机,可以由LAST_ACK状态接收到ACK确认信息,变为最后closed
TCP协议中的11种状态集转换
三次握手的过程中有哪些状态
第一步:服务端开启网络服务, 创建端口信息 closed — listen
第二步:客户端 发出syn请求建立连接数据包 closed —- syn_sent
一次握手
第三步:服务端 接收syn请求建立连接数据包
二次握手 发出ack syn数据包信息 listen —- syn_rcvd
第四步:客户端 接收ack syn数据包信息
三次握手 发出ack数据包信息 syn_sent —- established
第五步:服务端 接收ack数据包信息
发送真正数据信息 syn_rcvd —- established
四次挥手过程:
第一步:客户端 发出fin ack请求断开连接数据包 established —- fin_wait1
第二步:服务端 接收fin ack请求断开连接数据包
发出ack确认信息 established —- close_wait
第三步:客户端 接收到ack确认信息 fin_wait1 —- fin_wait2
第四步:服务端 发出fin ack信息 close_wait —- last_ack
第五步:客户端 接收fin ack信息
发出ack确认信息 fin_wait2 —- time_wait
第六步:服务端 接收ack确认信息 last_ack —- closed
第七步:客户端 等待了120秒(TTL 生存周期) time_wait —- closed
左边为四次挥手右边为三次挥手
抓包软件Wireshark
DNS
域名 —-> IP 解析域名
过程
迭代和递归
从本地到localdns是递归
localdns到后面是迭代
如何查看对应记录
dig @223.6.6.6 www.baidu.com +trace
ns Lookup www.baidu.com
host www.baidu.com
ping www.baidu.Com
ARP
mac地址与IP地址的对应关系
目标作用:
ARP分为动态静态
动态:
主机经常发生变化的地方
静态:
IDC数据 中心