计算机网络知识点小结

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

计算机网络分层可以将复杂的网络问题分解成小问题,各层之间相互独立,简化各层的操作。

OSI七层从上至下包括:应用层、表示层、会话层、传输层、网络层、链路层、物理层。

应用层:为计算机用户提供服务,应用层常见的协议有域名系统(DNS),HTTP协议,电子邮件协议(SMTP,POP3,IMAP4),文件传输协议(FTP)。

表示层进行数据处理,比如编解码,加密解密,以及压缩解压缩,比如把数据转换为视频,图片

会话层管理应用程序之间的会话,负责建立和断开连接

传输层则是为了两台主机进程之间的通信提供通用的数据传输服务,主要使用TCP和UDP协议

网络层主要包括路由和寻址,决定数据在网络的游走路径,使用的是IP协议

数据链路层管理相邻节点之间的数据通信

物理层利用传输介质(比如网线,光缆)为数据链路层提供支持,实现计算机节点之间比特流的透明传输

TCP/IP四层模型相当于是OSI模型的简化,把应用层,表示层,会话层统称为应用层,把数据链路层和物理层统称为数据链路层

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

TCP的三次握手是为了建立服务器和客户端的连接

第一次握手

客户端先向服务器端发送一个请求,表示要进行连接,报文段首部包含:同步SYN=1,确认ACK=0,序号seq=x

第二次握手

服务器端接收到客户端发送的数据包后,判断出这是要建立连接,然后服务器就会给出一个回应,

同步SYN=1,确认ACK=1(表示同意链接),序号seq=y,确认号ack=x+1(告诉客户端下次要从数据的那个字节开始发送)

第三次握手

客户端收到服务端的确认之后再发送一个数据包,同步SYN=0,确认ACK=1,序号seq=x+1,确认号ack=y+1,表示双方建立连接

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

 两次握手只能表示服务器和客户端之间的网络畅通,第三次握手主要为了避免重复连接,可以得到一个可靠的初始化序列号seq。假设第一客户端发送了请求连接,因为网络的原因,客户端没有及时收到服务端的确认数据包,他就会再次发出一个请求 ,这次网络畅通,服务端很快收到,客户端也接收到了服务端的确认。然后开始传输数据,这时服务端收到了第一次发的请求,以为客户端再次发起请求,并给出确认。此时客户端收到服务端的确认,他会忽略第二次发来的这个数据包,但是服务端会一直等待客户端的回复,服务器就会无效等待,浪费资源。

4次连接也能实现TCP连接的稳定性,但会多浪费一些资源。

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

四次挥手是为了释放连接

第一次挥手:

客户端向服务器发送释放连接的请求数据包,并停止发送数据。FIN=1,ACK = 0

第二次挥手:

服务器收到后,给客户端发送确认数据包,FIN=0,ACK=1。

ACK=1表示同意释放连接,此时TCP处于版关闭状态,客户端不能给服务端发送数据,服务端仍可以发送数据。

第三次挥手:

如果服务器没有要发送的数据了,向客户端发送去人报文。ACK=1,FIN=1。此时客户端可以接受数据。

第四次挥手:

客户端收到服务端的链接释放报文后,向服务器发出释放报文。ACK=1,FIN = 0。

什么是流量控制?

流量控制是为了控制发送方的发送速率,保证接收方来得及接收。接收端只允许发送端发送接收端缓冲区能容纳的数据。如果来不及接收,会提示发送方降低发送的速率,防止包丢失。

什么是滑动窗口?

发送方和接收方分别维护各自的缓冲区,这个缓冲区就是窗口。发送方的窗口大小有接收方决定。

 发送方的滑动窗口分为发送窗口和可用窗口。当接收到ACK确认,发送数据,滑动窗口不断向前滑动。接收方窗口读取窗口内容,向发送方发送确认,窗口向前滑动。接收方通过改变窗口大小控制发送速率,实现流量控制。

什么是拥塞控制?

拥塞控制是为了避免发送方的数据填满网络,控制发送方的数据数量。TCP通过四个算法实现拥塞控制。

慢启动:令拥塞窗口cwnd=1,发送方只能发送一个报文段,收到确认后拥塞窗口加倍,发送数量呈指数增长。

拥塞避免:TCP会设置一个慢启动门限ssthresh,当拥塞窗口数量大于等于慢启动门限时,进入拥塞避免,每个轮次只将 cwnd加 1,降低拥塞窗口的增长速度。

拥塞发生: 拥塞避免只是让数量增长变慢,但还是会一直增长。然后慢慢那会进入拥塞状况,出现丢包现象,然后会触发重传机制,进入拥塞发生。

如果触发超时重传,那么慢启动门限会设为当前窗口的一半,拥塞窗口数量设为1重新进入慢启动

如果触发快速重传,就是接收方会连续三次发送ACK确认数据包,丢失了少部分数据,会把拥塞窗口设为当前的一半,再把慢启动门限设为当前拥塞窗口数。

快速恢复: 快速恢复算法和快速重传一般同时使用,会把拥塞窗口数设为慢启动门限+3,重传丢失的数据包,如果再收到重复的ACK,会把拥塞窗口数+1。

TCP和UDP有什么区别?

TCP仅支持一对一连接,UDP不需要建立连接,支持一对一,一对多,多对一和多对多的交互通信

TCP是可靠的传输,效率相对低一点。

UDP不可靠但是效率高。

TCP协议的首部需要20-60个字节,UDP协议需要8个字节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值