博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算机组成原理简单复习总结--未完待续
阅读量:2047 次
发布时间:2019-04-28

本文共 2848 字,大约阅读时间需要 9 分钟。

文章目录

一、计算机的网络的体系结构

1、OSI的七层协议结构

在这里插入图片描述

2、TCP/IP的四层协议结构

这里是引用

3、OSI和TCP/IP的折中–五层协议架构

这里是引用

应用层–直接为用户进程提供服务:

1) DNS域名解析协议:

解析域名对应的相关IP地址。维护了一个名字的高速缓存,存放最近解析过的名字的相关记录,可以大大的减少根域名服务器的负荷。为了保证高速缓存中的内容正确,应该设立一个计时器,设定超过合理时间的处理。

2)FTP文件传输协议:

端口21为服务器端口,端口20为客户端的自己的传输端口。

3)HTTP超文本传输协议:

基于请求与响应无状态的,应用层的协议,常基于TCP/IP协议传输数据。是明文传输。常用的端口号是80
常见的状态码:200请求成功,400请求有语法错误,404资源不存在,500服务器错误,401未授权等

4)HTTPS协议:

是HTTP协议增强版;在HTTP协议的的基础上增加了SSL加密传输协议。常用的端口号是443。SSL协议可以分为两层,一层是建立在TCP可靠传输上的SSL记录协议,主要负责加密,压缩等。另一层则是建立在SSL记录协议上的SSL握手协议,主要用于数据传输之前通讯双方的校验,包括身份认证,协商密钥等。

运输层–负责向两个主机中进程之间的通信提供通用数据服务:

由于主机可以同时运行多个进程,因此运输层有复用和分用功能。

复用:多个应用层可以同时使用本层运输层的服务。

分用:把收到的信息分别交给上一层应用层对应的进程。

三次握手:

在这里插入图片描述
在这里插入图片描述
三次握手主要流程:
第一步、客户端请求建立链接,发送SYN包表示请求建立链接,并传递自己的序列号。
第二步、服务器接收到SYN请求进行响应,也回应了SYN表示请求建立链接,同时发送ACK=1表示确认收到了请求表示准备就绪,ack=x+1表示的是已经接收到上一次传递过来的数据。
第三步、客户端接收到响应之后,也进行了回应,表示自己也准备就绪,这样一来链接建立完成,可以开始传输数据了。

四次挥手主要流程:

在这里插入图片描述
第一步、
客户端发送FIN=1表示请求断开链接,同时发送自己的序列号。此时主动关闭TCP链接,停止传送数据。
第二步、
服务端收到断开链接的请求,此时会发送一个ACK=1的讯号表示自己已经接收到了请求断开的请求,并发送自己的序列号v。此时A->B的链接通道已经关闭了,TCP链接处于半关闭状态。这个时候B(服务器)发数据,A还得接收。告诉A我准备关闭了,在这之前我得先处理一些手尾。
第三步、
服务器发送FIN=1表示手尾已经处理完了,已经关闭了链接,此时服务器被动关闭。这个时候服务器进入最后的确认阶段。
第四步、
客户端接收到了服务器已经关闭了的请求后,发送了相关确认信息给服务器,服务器接收到最后一次的确认后,进入了完完全全的关闭状态,不再接收任何来自A的信息了,并且不会发送信息给A了。这个时候A进入了一个2MSL的等待时间,因为传输的过程中可能存在丢失,导致A发送的确认收到服务器端的关闭信息服务器并没能及时接收,如果发生这种情况,服务器会进行超时重传。这一步的目的就是为了保证服务器并没有进行超时重传。当经过了一整子的等待之后,如果没收到服务器的回应,则关闭连接。四次挥手到此结束。

停止等待策略:

即每次发送一个分组,就停止发送,等待对方确认,对方确认之后再继续发送。但是如果在传输的过程中出现了差错,就有可能导致造成互相等待的现象。解决方案是ARQ超时重传

超时重传策略:

每发送一个组,就设定一个超时计时器,规定时间内如果收到相应的确认,就撤销该计时器。如果没收到确认,就重发。因此,在发送完一个分组后,必须暂时保留已发送的分组的副本,以备重发。如图所示:
在这里插入图片描述

流量控制–滑动窗口:

1、定义:
让发送方不要发送的太快,给接收方足够的时间来得及接收,避免不发生网络拥塞。
2、发送窗口与接收窗口:
发送方维持的一个窗口叫发送窗口,允许在没有接收到服务端的确认号下能发送的最大数量的组。告知发送方自己能一次性接收多少组的窗口为接收窗口。具体的流程如下所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、流量控制具体流程:
在这里插入图片描述

拥塞控制(重点)–基于拥塞窗口(cwnd)的控制方法

1、出现拥塞的原因:
请求的资源数大于可以提供的资源数。塞车就是一个很好的例子,道路资源就这么多,路上的车的数量很多,每一个都想尽快的使用车道去做自己的事情,就很有可能发生交通事故或者阻塞的现象,计算机网络也是如此。
2、与流量控制的区别:
流量控制更倾向于点对点的控制,主要针对的是用户进程之间。而拥塞控制更倾向于全局的控制,防止过多的数据注入到网络中,使网络中的路由器或链路不致过载。
3、拥塞控制采用的方法:
拥塞窗口并不是一个固定的窗口大小,它是动态的随时随刻变化的。属于的是基于反馈的闭环控制方法,而不是一开始就事先面面俱到的开环控制方法。
4、拥塞控制算法:
慢开始算法
在不超过慢开始门限(ssth默认初始值为16)的基础上,每经过一个传输轮次,就翻倍增长发送窗口。如图所示:
在这里插入图片描述
关于慢开始门限ssth,有:
当 cwnd < ssthresh 时,使用慢开始算法。
当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。
拥塞避免算法
加法线性增大,每经过一个传输轮次,发送窗口就增加1;值得注意的是,无论是在慢开始阶段还是拥塞避免阶段,只要发送方判断出现了网络阻塞(重传计时器超时),迅速的将ssth慢开始门限设置为Max(cwnd/2,2),同时将拥塞窗口重新设置为1。如下图所示:
在这里插入图片描述
快重传:
当出现发送方连续收到了3个对同一报文段的重复确认。发送方改为快重传和快恢复算法。
快重传的目的是在于更早的重传丢失的报文,而不是等到超时计时器。这样就不会让发送方以为发生了网络阻塞的现象。提高了系统的吞吐率。
在这里插入图片描述
快恢复:
由于此时进行了快重传,发送方认为网络此时此刻只是个别报文丢失而已,没有发生阻塞,这个时候就没必要执行慢开始算法,而是执行快恢复算法。
此时。慢开始门限 ssth = 当前拥塞窗口 cwnd / 2 ;新拥塞窗口 cwnd = 慢开始门限 ssthresh;然后执行拥塞避免算法。
在这里插入图片描述

TCP传输控制协议(重点):

1、一种有链接协议。传输之前需要建立通信。是可靠的传输服务。
2、套接字socket:IP+端口号;
3、可靠的原理:三次握手、四次挥手、停止等待、ARQ超时重传、拥塞控制。

UDP用户数据报协议:

一种无连接协议,传输数据之前不需要建立链接。尽最大努力交付。

网络层–把运输层的报文段或数据封装成IP数据报:

分组交换网上的不同主机提供通信服务。

数据链路层:

两个相邻结点传输数据时,将网络层交下来的数据报封装成帧

物理层:

所传数据单位是比特:透明传输比特流

4、三者具体对应关系

这里是引用

5、数据在各层的传递

这里是引用

转载地址:http://kcqof.baihongyu.com/

你可能感兴趣的文章
【Python】Python 打印和输出更多用法。
查看>>
【Loadrunner】使用LR录制HTTPS协议的三种方法
查看>>
【Python+Selenium】猪猪练习成功版:csv文件的输入和输出(运行环境:python3.5版本)...
查看>>
【python】BeautifulSoup的应用
查看>>
【Python】接口自动化测试-Fidder的使用(未完待续……)
查看>>
【Python】自动化测试框架-共通方法汇总
查看>>
【Python】if相关知识点
查看>>
【Python】xpath中为什么粘贴进去代码后老报错?如何在定位元素的时候准确找到定位切入点?...
查看>>
Loadrunner解决启动浏览器后页面显示空白
查看>>
【Python】唯品会购买商品
查看>>
【JMeter】如何录制创建及得到曲线图
查看>>
【Loadrunner】Error -26601: Decompression function 错误解决、27728报错解决方案
查看>>
【其他】csv文件打开是乱码,怎么办?
查看>>
【Python】web.py初识学习
查看>>
【Python】【Web.py】python调用html【问题:echart图标调用html上未显示】
查看>>
【雅思】金山词霸-单词学习(1-40)
查看>>
【F12】谷歌浏览器F12前端调试工具 Console
查看>>
【服务器】如何在服务器发布网站?Sasa讲解
查看>>
【F12】九个Console命令,让js调试更简单
查看>>
【数据库】left join(左关联)、right join(右关联)、inner join(自关联)的区别...
查看>>