计算机网络(学习复习)
OSI开放式互联参考模型(OSI七层协议)
第一层物理层#
解决两台物理机之间的通信需求,即机器A向机器B发送bit流,物理层主要定义了物理设备的标准。传输bit流
第二层数据链路层#
定义了如何格式化数据来进行传输,如何控制对物理介质的访问,错误检测和纠正。传输帧
第三层网络层#
将网络地址翻译成相应的物理地址,并定义如何将数据从发送方路由到接收方。数据包、IP
第四层传输层#
接收上一层的数据,在必要的时候把数据进行分割,并将这些数据交个网络层,且保证这些数据有效到达、TCP、UDP
第五层会话层#
建立和管理应用程序之间的通信、应用程序自动调用TCP、IP收发信息
第六层表示层#
帮我们解决不同系统之间语法不同的问题
第七层应用层#
规定发送方和接收方必须使用一个固定长度的消息头。指在使用户更加方便的使用网络。HTTP
OSI的实现“TCP/IP协议”#
TCP的三次握手
IP#
IP协议是一种无连接的协议,不会占用通信线路,每条线可以满足多个应用使用
IP数据包不能保证是否顺序发送是否全部送到所以是不可靠的
需要由上层协议控制
传输控制机械TCP简介#
面向连接的、可靠的、基于自己留的传输层通信协议
将应用层的数据流分割成报文段并发送给目标节点的TCP层
数据包都有序号,对方收到则放松ack确认,未收到则重传
运用奇偶校验和来验证数据在传输过程中是否有误
说说TCP的三次握手#
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
- 第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
- 第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
- 第三次握手:客户端收到服务器端SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
为什么需要三次握手才能建立起连接#
为了初始化Sequence Number的初始值
首次握手的隐患—SYN超时#
- Server收到Client的SYN,回复SYN-ACK的时候未收到ACK确认
- Server会不断重试直至超时,Linux默认重试5次也就是共等待63秒才断开连接
TCP的四次挥手
“挥手”是为了终止连接连接
- 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态;
- 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态;
- 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态;
- 第四次挥手:Client收到FIN后,Client进入TINE_WAIT状态,接着发送一个ACK给Server,确认序号为接收序号+1,Server进入CLOSE装填,完成四次挥手
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2018-09-03 Spark Core核心----RDD常用算子编程