day27操作系统基础网络篇

  • TCP、UDP协议

  • TCP三次握手和四次挥手过程

  • TCP是一种状态集转换

  • 网络重要协议DNS ARP

1.TCP、UDP协议说明
TCP:传输控制协议(面向连接网络协议)
   特点:安全可靠
   缺点:传输效率不高
UDP:用户报文协议(无连接网络协议)
   特点:传输效率高
   缺点:安全性不高
TCP协议—TCP报文结构

TCP报文结构.jpg

端口号范围为:1-65535(其中1-1024为知名端口号)
控制位:数据传输控制管理作用
  syn:请求建立连接控制字段(0无效 1有效)
  fin:请求断开连接控制字段(0无效 1有效)
  ack:确认控制字段(0无效 1有效)

2.TCP三次握手和四次挥手
TCP协议三次握手过程原理:
  第一次握手: 客户端 --> 服务端 TCP报文 序列号seq=0 syn控制字段=1
  第二次握手: 服务端 --> 客户端 TCP报文 序列号seq=0 确认号ack=1 syn控制字段=1 ack确认字段=1
  第三次握手: 客户端 --> 服务端 TCP报文 序列号seq=1 确认号ack=1 ack确认字段=1

三次握手.png

TCP协议四次挥手过程原理:
  第一次挥手: 客户端 --> 服务端 TCP报文 fin控制字段=1 ack确认字段=1
  第二次挥手: 服务端 --> 客户端 TCP报文 ack确认字段=1
  第三次挥手: 服务端 --> 客户端 TCP报文 fin控制字段=1 ack确认字段=1
  第四次挥手: 客户端 --> 服务端 TCP报文 ack确认字段=1
四次挥手.png

3.TCP十一种状态集转换
1.TCP三次握手状态集转换
 1.服务端:
  ⑴.服务端从closed状态转换为listen状态(在服务端开启相应服务),只有在listen才可以建立连接的请求
  ⑵.从closed转变为listen,实际上就是创建了一个socket信息

netstat -an|grep -i es    ---可以看到socket信息
scoket条目:tcp或udp协议 —— 目标地址, 端口——源地址, 端口——状态

 2.客户端:
  ⑴.客户端发送syn信息给服务端,然后客户端从closed状态变为syn_send状态(三次握手的第一次握手)
 3.服务端:
  ⑴.服务端在listen状态接收到客户端发送的syn请求,会响应syn和ack信息,并且从listen状态转换为syn_rcvd状态(三次握手的第二次握手)
 4.客户端:
  ⑴.客户端在syn_send状态接受到服务端的syn和ack字段信息,然后恢复ack确认信息(三次握手的第三次握手),发送完后,从syn_send转换为established


三次握手状态集.png

2.TCP的四次挥手状态集的转换
 1.客户端:
  ⑴.客户端在established状态发送fin字段信息给服务器(四次挥手的第一次挥手)
  客户端状态转换为fin_wait1(第一次等待:服务端的确认ack信息)状态
 2.服务端:
  ⑴.服务端在established接收到客户端发送的fin字段信息,从established状态转换成close_wait状态
  ⑵.服务端在close_wait状态发送ack确认字段(四次挥手的第二次挥手)
 3.客户端:
  ⑴.客户端在fin_wait状态接受到服务端的ack信息,进入到fin_wait2等待状态(第二次等待:等待服务端的fin信息)
 4.服务端:
  ⑴.服务端在close_wait状态发送fin断开连接字段给客户端(四次挥手的第三次挥手
  ⑵.服务端从close_wait状态变为last_ack状态
 5.客户端:
  ⑴.客户端在fin_wait2状态接受服务端的fin信息,然后响应ack信息给服务端,并将自己的fin_wait2转变为time_wait状态
 6.服务端:
  ⑴.服务端在last_ack状态接受到客户端发送的ack字段信息后,就会进入最终的closed状态
 7.客户端:
  ⑴.在time_wait状态会等待30-120s的时间,才会进入到closed状态


四次挥手状态集.png
问题:
1.为什么会有四次挥手过程,ack 和fin要分开发送?
答:服务端接受到了客服端的FIN时会向应用层汇报,并回应ACK给客户端,然后会等数据传输完毕后,在发送FIN请求断开连接。

2.客户端为什么要有time_wait状态
答:为了确保服务端能收到ack,客户端会在time_wait不断给服务端发送ack。

3.总结closing状态的由来:
答:在第二次挥手的时候,客户端没收到服务端发送的ack,但收到了fin字段信息,按理说收到fin后应该转换为time_wait,所以加了colsing起一个缓存时间(过程很快)

TCP的十一种状态集:


十一种状态集.png

4.网络重要协议原理
1.DNS协议原理:建立IP地址和域名对应关系
 DNS协议作用:将域名信息转换为IP地址
 DNS层次结构:

例:www.baidu.com
.      ---根域名服务器
.com   ---顶级(一级)域名服务器
.baidu ---二级域名服务器
www    ---主机记录

DNS解析过程:
三个查询过程:
⑴.本地查询
⑵.递归查询
⑶.迭代查新

dig www.oldboyedu.com +trace

2.ARP协议原理:建立IP地址和mac地址对应关系
ARP原理作用: 记录IP地址和mac地址关系(局域网主机与主机的通讯)
ARP原理说明:

  1. 发送ARP请求和回复信息, 获取访问主机的mac地址
  2. 构建ARP表 构建IP--mac记录信息
  3. 实现减少广播包的产生
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容