计算机网络基础知识总结

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

        对网络进行分层主要有让各层之间相互独立,各层就不用关心其他层是如和实现的;各层可以使用最适合的技术去实现降低了各层之间的耦合度;分层可以使网络中的大问题分解成小问题,让问题更容易解决。

物理层:将电脑通过网线、光缆等连接起来,传输的是比特流

数据链路层:将比特流封装成数据帧,对0、1进行分组,数据通过网卡传输,而在网卡中定义了唯一的MAC地址,再通过网卡向局域网内的所有电脑发送数据,跟据MAC地址的比对可以判断是否为发送给自己的。

网络层:用于区分哪些MAC地址属于同一子网,在网络层定义了Ip和子网掩码通过运算就可以直到是否为同一子网。网络层的协议有IP、ICMP。

传输层:用于确定数据是从哪一个进程发送的,传输层中主要定义端口号。传输层的协议有:TCP/UDP。

会话层:负责建立连接与断开连接。

表示层:将数据转换成文字图片网等能被人理解的格式。

应用层:将数据最终呈现给用户。应用层的协议有:HTTP、FTP、SMTP、HTTPS。


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

在进行数据传输前首先要进行服务器与客户端之间的连接。

第一次握手:由客户端主动向浏览器端发起,SYN=1,表示这是一个连接请求。

第二次握手:服务器确认客户端的应答,SYN=1,ACK=1(表示确认应答)

第三次握手:客户端再次向服务器端发送数据包,SYN=0,ACK=1,表示双方已经建立连接,客户端收到服务器端同意连接的请求。

 那么有一个问题 : TCP协议为什么要3次握手?2次,4次不行吗?

        TCP之所以进行三次握手是因为为了防止重复连接避免重复连接造成的连接混乱。

有这样一个场景:如果TCP只进行两次握手就创建连接成功,那么客户端向服务器端发送数据包,但是由于网络等问题,客户端没有及时收到服务器端发送的确认应答数据包,客户端会再次发送数据包,但是第一次发送的数据包也到达服务器,服务器发出应答,但是第二次发送的数据包和服务器端已经在进行数据传输,客户端就会忽略这次连接请求,服务器就会一直等待客户端的应答,造成资源浪费,第三次握手会得到一个确认的可靠传输序列号seq。

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

客户端与服务器之间数据传输完成之后要断开连接。

第一次挥手:客户端向服务器端发送数据包,FIN=1,请求断开连接

第二次挥手:服务器端向客户端发送数据包ACK=1,确认应答

第三次挥手:服务器端加快传输效率,传输完成向客户端发送FIN=1,ACK=1,确认断开连接 。

第四次挥手;客户端发送数据包ACK=1,确认应答,断开连接。


4.什么是流量控制?

流量控制是为了控制发送方的发送速率,在接收方和发送方都有一个固定大小的缓冲区用于接收对方发送的数据,接收方只允许发送方发送缓冲区能容纳的下的数据,接收方来不及处理发送方发送的数据包时就会提示发送方减慢发送速率,防止流量拥塞。

TCP使用的流量拥塞协议是滑动窗口协议。


5.什么是滑动窗口?

滑动窗口是TCP协议用于实现流量控制的一种机制。

发送方和接收方分别维护了一个固定大小的缓冲区,发送方窗口的大小由接收方TCP头部的窗口字段中决定。

发送方的窗口分为发送窗口和可用窗口,随着不断收到ACK应答,发送窗口和可用窗口将向前移动。每收到一个ACK应答,可用窗口的数量+1;每发送一个数据发送窗口向前移动。


6.什么是拥塞控制?

拥塞控制是指通过控制数据包的发送速率防止网络拥塞。

发送方需要维护一个拥塞窗口去控制同时可以发送多少个数据包,数据包的多少。

拥塞控制算法有:慢启动、拥塞避免、拥塞发生、快恢复。

慢启动:拥塞窗口从1开始,采用加倍的方式,直到窗口值大于门限。

拥塞避免:当拥塞窗口值大于等于门限的时候,拥塞窗口值每次+1,进入拥塞避免,减慢拥塞窗口的增长速度。

拥塞发生:当网络出现拥塞的时候会出现丢包的情况就要进行重传。

  • 如果使用的重传机制是超时重传,那么门限值变为窗口值的一半,窗口值变为1,这种方法容易造成网络卡顿。
  • 如果使用的是快速重传,那么门限值将变为窗口值的一半,窗口值变为原来的一半+3

快恢复

  • 拥塞窗口 cwnd = ssthresh + 3+3 代表有 3 个ACK确认数据包被收到了);
  • 重传丢失的数据包;
  • 如果再收到重复的 ACK,那么 cwnd 增加 1

7.TCP和UDP有什么区别?

面向连接:TCP协议需要连接,支持一对一连接,UDP不需要建立连接,支持一对一,一对多,多对多连接。

可靠传输:TCP协议通过确认应答,连接管理,流量控制,拥塞控制等保证可靠传输,UDP协议不保证可靠性传输。

性能效率:TCP传输效率高,UDP不保证可靠性传输,传输效率低。

首部格式:TCP首部需要20-60个字节,UDP首部需要8个字节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值