就业第五周作业
1、简述osi七层模型和TCP/IP五层模型
应用层:为应用软件提供接口,使应用程序使用网络服务
表示层:数据的解码和编码、加密和解密、压缩和解压缩
会话层:负责建立、管理和终止表示层实体之间的会话连接
传输层:负责将上层应用程序的程序进行分段和重组,并将它们组合为同样的数据流形式,提供端到端的服务
网络层:路由的选择和维护路由表
数据链路层:提供可靠的数据传输服务,把帧从一跳移动到另一跳
物理层:把数据帧转换成比特流在链路上传输
2、总结描述TCP三次握手四次挥手
TCP建立连接 三次握手
建立过程(A: Client B: Server)
首先server端B的服务进程已经监听在某个端口上,监听之后等待客户端请求建立TCP连接。
(1)当ClientA想与ServerB建立连接时,会发送一个SYN位置位、seq随机的请求报文。报文发出后,A从CLOSED状态进入到SYN_SENT状态
(2)B收到后该报文后,发现其中的SYN=1,ACK=0,知道这是一个请求包。如果B同意和A建立连接,会回复一个SYN=1、ACK=1、自己的一个随机序列号seq、期望收到下次对方发送的第一个序列号ack的确认包。B将此包发送后,进入到SYN_RECV状态
(3)A收到B发送的ACK包后,会向A也回复一个ACK包。此时A进入到ESTABLISED状态
(4)当B收到A的ACK包后,B就进入到ESTABLISED状态
A最后发送一个ACK包的原因:
一是对B发送过来的请求包做确认;二是如果A发送的第一个包因为某些原因没有被B收到,于是A会在超时之后重传请求包,这是网络上由两个请求包。假设当B对重传的数据包做了确认,与A建立了连接。当数据传输完成,A与B断开了TCP连接,如果此时当时丢弃的SYN包此时被B接受到了,那么B会以为A又要建立连接就会对此包做回复确认,但A收到B的ACK包后,知道并不是自己想要建立连接,因此并不会发送ACK包,避免了此问题。
TCP断开连接 四次挥手
(1)A发送一个FIN位置位的数据包给B,表示这是一个连接断开请求包,此时A进入到FIN-WAIT1状态
(2)B收到A发送过来的FIN=1的数据包后,向A回复一个确认包。ACK=1,seq=v(假设此时B还有数据需要传送给A),此时B进入到CLOSE-WAIT阶段。这时A向B的一方连接就断开了,A无法在向B传输数据
(3)当A收到B的ACK包后,便会进入到FIN-WAIT2阶段,等待B向A发送断开连接请求
(4)当B已经没有数据需要传送给A时,于是向A发送一个FIN=1的包,同时ACK=1,seq=w(B进入到CLOSE-WAIT后有可能又发送了一些数据)。B传送完这个FIN+ACK包后,进入到LAST-ACK状态
(5)A收到B发送的FIN+ACK包后,会对此包回复一个ACK包,这时A不会进入到CLOSED状态,而是进入到TIME-WAIT阶段
(6)B收到A回复的ACK包后,就会关闭同A端的连接
(7)当A等待了2MSL时长后,将真正关闭连接(2MSL时长保证了B能够收到A发送的最后一个ACK包,从而正常关闭连接)
3、描述TCP和UDP区别
TCP 传输控制协议
- 面向连接
- 可靠传输
- 流控
UDP 用户数据报协议
- 面向无连接
- 不可靠传输
- 尽力传输
4、网卡绑定bond0的实现
(1)添加bonding接口,地址为192.168.119.100,设备名为bond0
[root@centos7 ~]# nmcli connectionn add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 192.168.119.100/24
(2)设置我本机的ens33和ens37两块网卡为从设备,指定主设备是bond0
[root@centos7 ~]# nmcli connection add type bond-slave ifname ens33 master bond0
[root@centos7 ~]# nmcli connection add type bond-slave ifname ens37 master bond0
(3)激活从设备
[root@centos7 ~]# nmcli connection up bond-slave-ens33
[root@centos7 ~]# nmcli connection up bond-slave-ens37
(4)激活主设备
[root@centos7 ~]# nmcli connection up mybond0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」