当前位置: 首页 > news >正文

计算机网络的相关知识点总结(一)

1.谈一谈对OSI七层模型和TCP/IP四层模型的理解?

        不管是OSI七层模型亦或是TCP/IP四层模型,它们的提出都有一个共同的目的:通过分层来将复杂问题细化,通过各个层级之间的相互配合来更好的解决计算机中出现的问题。

        说到分层,就有对应的具体不同的分层模型。TCP/IP四层模型其实是对OSI七层模型的简化版。OSI网络七层模型包括以下几个部分:

OSI网络七层模型

层级

(高-->低)

层级名称对应功能
7应用层为计算机用户提供服务
6表示层数据处理(编码解码、加密解密、压缩解压缩)
5会话层管理会话(建立,维护、重连)
4传输层为两个计算机进程之间的通信提供通用的数据传输服务
3网络层路由和寻址(决定数据在网络中的路径)
2数据链路层计算机相邻节点的直接通信
1物理层为数据链路层提供传输介质的,为计算机相邻节点的通信提供以比特流的透明传输

 

        层与层之间交互是基于“接口”的服务调用,当前层级负责接收下一层提供的服务,同时为自己的上一层提供服务。本层级之间只需关注自己内在的功能,层级内之间的交互是基于“协议”的。

        而TCP/IP四层模型则包括应用层(应用层、表示层、会话层)、传输层、网络层、网络接口层(数据链路层、物理层),如下:

        

层级层级名称常见协议
4应用层DNS:域名解析协议
FTP:文件传输协议
SMTP:简单邮件传输协议
3传输层

TCP:传输控制协议

UDP:用户数据报协议
2网络层IPV6:互联网协议
ICMPv6:互联网控制协议
1网络接口层

ARP:地址解析协议(数据链路层)

2.谈谈TCP协议的3次握手过程?

        利用TCP协议建立连接时,会产生三次握手,三次握手是发生在客户端(接受方)与服务器(发送方)之间的。

        第一次握手:由客户端主动打开,并主动发送建立连接请求的数据包(同步SYN=1,确认ACK=0)给服务器端,客户端由主动打开转换为发送状态;

        第二次握手:服务器被动打开接收客户端发送的建立连接请求的数据包,若服务器同意建立连接,则向客户端发送一个ACK确认=1,SYN同步=1的数据包,此时服务器转换为接收状态;

        第三次握手:客户端接收到服务器端发送的同意连接的数据包后,状态变为建立连接成功状态,随后向服务器端发送一个ACK=1的确认数据包,此时服务器端状态也是建立连接成功状态。

        由三次握手,客户端与服务器端成功建立连接。

3.TCP协议为什么要3次握手?2次,4次不行吗?

        握3次手,是恰到好处的。为什么这么说呢?是因为若是2次握手,会造成重复连接的情况,而4次握手或更多次则会带来资源上的浪费。客户端与服务器端建立连接,是由客户端主动发起请求(第一次),服务器端告知客户端同意建立连接(第二次),客户端告知服务器端我知道你同意即确认(第三次),确保了双方之间通信的畅通然后开始数据传输。

        如果没有这第三次的确认,如果客户端由于网络延迟或其他原因导致的未及时发送请求连接的数据包,有可能就会再次重新发送请求连接的数据包,服务器端收到并同意连接,而此时第一个未及时发送的数据包又正常发送了,势必会导致服务器的再一次同意连接,这就导致了重复的连接,造成了不必要的资源浪费。

        如果是4次及更多,我们要思考一个问题,建立连接的目的是?没错,是数据传输。三次握手就已经可以保证收发双方的正常通信了,此时应该要进行数据传输了,更多次的握手只会导致资源的浪费或者多次的请求连接的带来的不可控性。

4.谈谈TCP协议的四次挥手过程?

        TCP协议的四次挥手是为了释放收发双方的连接的。

        第一次挥手:客户端向服务器发出FIN=1的数据包,用来告知服务器断开连接的。

        第二次挥手:服务器接收到终止连接的请求后,同意终止向客户端发出ACK=1的同意断开连接数据包,此时真的断开了吗?答案是否定的,因为是无法保证客户端向服务器发出断开请求时,服务器刚好不发送数据给客户端。

        第三次挥手:服务器已经处理完发生要发送的数据后,正式向客户端发送FIN=1的断开连接的数据包。此时收发双方之间真的不能再发送数据了。

        第四次挥手:客户端向服务器端发送ACK=1的确认数据包。
        至此,收发双方彻底断开连接。

        其实你稍微观察,客户端就像那个“渣男”,服务器端更像是一位“善解人意的女朋友”,哈哈哈,好了,开个玩笑。

 

http://www.lryc.cn/news/173090.html

相关文章:

  • 下载github.com上的依赖资源
  • 编写 GPT 提示词的公式 + 资源分享
  • 用HTML、CSS和JavaScript制作的通用进制转换器
  • ArcGIS 10.3软件安装包下载及安装教程!
  • 【数据增强】
  • Ae 效果:CC Force Motion Blur
  • 2023华为杯研究生数学建模竞赛CDEF题思路+模型代码
  • FP独立站之黑科技:AB站收款、斗篷CLOAK
  • 【Linux网络编程】gdb调试技巧
  • ElementUI之登录与注册
  • 报错处理:Error: Redis server is running but Redis CLI cannot connect
  • RocketMQ 源码分析——Producer
  • ISTQB术语表
  • 小米笔试题——01背包问题变种
  • SkyWalking内置MQE语法
  • Springboot2 Pandas Pyecharts 量子科技专利课程设计大作业
  • RabbitMQ里的几个重要概念
  • 23. 图论 - 图的由来和构成
  • 拼多多API接口解析,实现根据ID取商品详情
  • 【JavaScript】解构
  • 现代卷积网络实战系列2:训练函数、PyTorch构建LeNet网络
  • rust特性
  • TouchGFX之画布控件
  • STM32F103RCT6学习笔记2:串口通信
  • Opencv-图像噪声(均值滤波、高斯滤波、中值滤波)
  • MasterAlign相机参数设置-增益调节
  • 9月22日,每日信息差
  • Java版本企业工程项目管理系统源码+spring cloud 系统管理+java 系统设置+二次开发
  • Android studio中如何下载sdk
  • STM32单片机中国象棋TFT触摸屏小游戏