TCP UDP协议
TCP: 传输控制协议 面向连接的网络协议 同步 (在线传输数据)
优点:传输数据更加可靠安全
缺点:传输效率较低
应用场景:浏览页面 邮件
UDP:用户报文协议 五连接的网络协议 异步 (离线传输数据)
优点:传输效率更快
缺点:数据可靠性较差
应用场景:视频的网站 语音
TCP两个重要网络原理
结论:
1)ACK确认控制字段会贯穿通讯整个过程
2) TCP协议在进行通讯时候,只有处于established状态才能传输数据
三次握手:
1)发送TCP数据包,包含SYN=1控制字段,请求建立连接
2)发送TCP数据包,包含ACK=1 SYN=1控制字段,确认连接建立
3)发送TCP数据包,包含ACK=1控制字段,最后进行确认
4)数据传输的过程
四次挥手:
1) 发送TCP数据包,包含FIN=1 ACK=1控制字段,请求断开连接
2)发送TCP数据包,包含ACK=1控制字段,断开连接请求被确认
3)发送TCP数据包,包含FIN=1 ACK=1控制字段,确认请求断开连接
4)发送TCP数据包,包含ACK=1控制字段,最后进行确认
问题1:为什么是四次挥手
传输层接收到断开请求,需要向会话层进行汇报
确保数据传输完毕后,才能发出断开请求
问题2:可以不可以出现三次挥手
第二次挥手过程的ack没有发出 没有收到
直接收到了第三次挥手的信息
问题3:四次挥手时候,为什么要有time_wait
为了让通讯对端主机,可以由LAST_ACK状态接收到ACK确认信息,变为最后closed
01. TCP协议中11种状态集转换
三次握手的过程中有哪些状态
第一步:服务端 开启网络服务,创建端口信息 closed -- listen
[root@huahua ~]# netstat -lntup|grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2235/sshd --- socket条目信息
[root@huahua ~]# netstat -an|grep tcp
tcp 0 52 10.0.0.200:22 10.0.0.1:2489 LAST_ACK
协议 源地址 源端口 目标地址 目标端口
结论:socket条目信息必须是唯一的
tcp 0 0 10.0.0.200:22 10.0.0.1:3566 LAST_ACK
tcp 0 52 10.0.0.200:22 10.0.0.1:2489 LAST_ACK
tcp 0 0 10.0.0.200:22 10.0.0.1:2419 LAST_ACK
tcp 0 0 10.0.0.200:22 10.0.0.1:3564 LAST_ACK
tcp 0 0 10.0.0.200:22 10.0.0.1:3143 LAST_ACK
65535 LAST_ACK
第二步:客户端 发出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
02. 网络中两个重要协议原理
``` DNS协议 --- 域名解析
已知域名,可以获得IP地址信息
建立 域名 IP地址的对应关系
```ARP协议
建立 IP地址 和 mac地址的对应关系
构建出主机ARP表 交换机也会构建mac表
目标作用:尽可能减少局域网广播产生
ARP分为动态 静态
动态:主机经常发生变化的地方
静态:IDC数据中心
网友评论