计算机网络面经

7层协议

应用层:网络服务与最终用户的一个接口。

协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP

表示层:数据的表示、安全、压缩。

格式有,JPEG、ASCll、EBCDIC、加密格式等

会话层:建立、管理、终止会话。

对应主机进程,指本地主机与远程主机正在进行的会话

传输层:定义传输数据的协议端口号,以及流控和差错校验。

协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层

网络层:进行逻辑地址寻址,实现不同网络之间的路径选择。

协议有:**ICMP IGMP IP **

数据链路层:建立逻辑连接、进行硬件地址寻址、链路访问、透明传输、可靠交付、流量控制、差错检测、差错纠正、半双工和全双工。

将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。

物理层:建立、维护、断开物理连接。

DHCP协议

动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段。

ICMP

是InternetControl Message Protocol,因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。

三次握手以及失败

**客户端–发送带有 SYN 标志的数据包进入了SYN_SEND状态,等待服务器确认 **(SYN 同步序列编号)

如果第一次的SYN传输失败,两端都不会申请资源

服务端–收到SYN数据包,然后发送带有 SYN+ACK 标志的数据包,此时服务器进入SYN_RECV状态;(ACK确认字符)

第二次握手失败,客户端不会申请资源,服务端申请的资源会将该资源释放。

客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,然后客户端和服务器进入established状态,

第三次握手失败,这时候客户端认为自己已经连接好了,就会给服务端发送数据,但是服务端会因为没有收到客户端的ACK数据包,最后还是会释放资源

四次挥手的过程

客户端发送一个 FIN,用来关闭客户端到服务器数据的传输,客户进入FIN_WAIT_1状态。 (FIN 结束标志)

服务器收到这个 FIN,它发回一 个 ACK,将确认序号设置为收到序号加1服务器进入CLOSE_WAIT状态。。

服务器关闭与客户端的连接,发送一个FIN给客户端,服务器进入LAST_ACK

客户端收到FIN后,客户进入TIME_WAIT状态,然后 发回一个ACK ,并将确认序号设置为收到序号加1.服务端进入CLOSED状态,

TCP为什么需要3次握手,4次挥手?

三次握手最主要的目的就是双方确 认自己与对方的发送与接收是正常的。为什么需要三次:防止重复连接,同步初始化序列化

4次挥手的目的是终止数据传输,回收资源,为什么是四次:因为TCP是一个全双工协议,必须单独拆除每一条信道

TCP和UDP有什么区别?

TCP是传输控制协议,提供的是面向连接(先通过三次握手协议建立连接)、可靠的字节流服务(连接成功后才能传输数据)。

UDP是用户数据报协议,是一个简单的面向无连接的协议。不提供可靠的服务。 (不建立连接所以不可靠.)

TCP 协议如何保证可靠传输

  1. 数据被分割成 TCP 认为最适合发送的数据块。
  2. TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
  3. TCP 将保持它首部和数据的检验和。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。
  4. TCP 的接收端会丢弃重复的数据。
  5. 流量控制: TCP 利用滑动窗口实现流量控制。流量控制是为了控制发送方发送速率,保证接收方来得及接收。接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小。将窗口字段设置为 0,则发送方不能发送数据。
  6. 拥塞控制: 当网络拥塞时,减少数据的发送。
  7. ARQ协议: 也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。
  8. 超时重传: 当 TCP 发出一个段后不能及时收到一个确认,将重发这个报文段。

TCP拥塞控制

网络中某一资源供不应求 网络的性能就要变差。这种情况就叫拥塞。

拥塞控制的作用防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。

拥塞控制代价:需要获得网络内部流量分布的信息。这样就产生了额外的开销。

拥塞控制还需要将一些资源分配给各个用户单独使用,网络资源不能更好地实现共享。

几种拥塞控制方法:

  • 慢开始: 当主机开始发送数据时,立即把大量数据字节注入到网络那么可能会引起网络阻塞,因为现在还不知道网络的符合情况。经验表明,较好的方法是先探测一下,即由小到大逐渐增大发送窗口,也就是由小到大逐渐增大拥塞窗口数值。cwnd初始值为1,每经过一个传播轮次,cw nd加倍。
  • 拥塞避免: 拥塞避免算法的思路是让拥塞窗口缓慢增大,即每经过一个往返时间拥塞窗口加1.
  • 快重传与快恢复: 在 TCP/IP 中,快速重传和恢复是一种拥塞控制算法,它能快速恢复丢失的数据包

ARQ协议

自动重传请求 ARQ是OSI模型中数据链路层和传输层的错误纠正协议之一。

它通过使用确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。

如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。ARQ包括停止等待ARQ协议和连续ARQ协议。

1 :停止等待ARQ协议是实现可靠传输

基本原理就是每发完一个分组就停止发送,等待对方确认。如果过了一段时间,还是没有收到 ACK 确认,说明发送不成功,需要重新发送,直到收到确认后再发下一个分组;

发送方发送一个分组,要等待接受方确认,如果发送方没有收到确认就重新发送

在停止等待协议中,若接收方收到重复分组,就丢弃该分组,但同时还要发送确认;

优点: 简单

缺点: 信道利用率低,等待时间长

2 :连续ARQ协议可以提高信道利用率

发送方维持一个发送窗口,发送窗口内的分组可以连续的发送出去,而不需要等待对方确认

优点: 信道利用率高,容易实现,即使确认丢失,也不必重传。

缺点: 不能向发送方反映出接收方已经正确收到的所有分组的信息。

交换机与路由器有什么区别?

交换机工作在OSI第二层数据链路层,路由器工作在OSI第三层网络层

交换机根据MAC地址寻址,路由器根据IP地址寻址

交换机的转发速度比路由器转发速度快。

HTTP长连接,短连接

短连接:客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。

长连接:任务结束就连接不中断。

HTTP是不保存状态的协议,如何保存用户状态?

HTTP是无状态协议。自身不对请求和响应之间的通信状态进行保存

Session 的主要作用就是通过服务端记录用户的状态

Cookie的作用是什么?和Session有什么区别?

Cookie 一般用来保存用户信息 比如①我们在 Cookie 中保存已经登录过得用户信息,

Session 的主要作用就是通过服务端记录用户的状态。 典型的场景是购物车,当你要添加商品到购物车的时候,系统不知道是哪个用户操作的,这个使用就是要用session

Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端。

所以Session 安全性更高。

HTTP 和 HTTPS 的区别?

端口 :HTTP的默认使用端口80,而HTTPS默认使用端口443。

安全性和资源消耗: HTTP协议运行在TCP之上,所有传输的内容都是明文。

HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS 运行在TCP之上。所有传输的内容都经过加密

(SSL安全套接字层TLS传输层安全协议))

HTTP 安全性没有 HTTPS高,但是 HTTPS 比HTTP耗费更多服务器资源。

对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;

非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。在这里插入图片描述

(今天看到一个挺有意思的图片)
在这里插入图片描述

加密者可以解密,密钥身份证号双方持有。显然,这是对称加密

URI和URL的区别是什么?

  • URI是统一资源标志符,可以唯一标识一个资源。
  • URL是统一资源定位符,可以提供该资源的路径。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值