计网知识点

1、OSI七层模型与TCP/IP 五层模型

OSI七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
TCP/IP五层:物理层,数据链路层,网络层,传输层,应用层

2、常见应用层协议和运输层、网络层协议,以及硬件如路由器之类在哪一层

应用层:HTTP、SMTP、DNS、FTP
传输层:TCP、UDP
网络层:ICMP、IP、路由器、防火墙
数据链路层:网卡、网桥、交换机
物理层:中继器、集线器

3、TCP与UDP区别和应用场景,基于TCP的协议有哪些,基于UDP的有哪些

类型 特点 性能 应用过场景 首部字节
TCP 面向连接、可靠、字节流 传输效率慢、所需资源多 文件、邮件传输 20-60
UDP 无连接、不可靠、数据报文段 传输效率快、所需资源少 语音、视频、直播 8个字节

基于TCP的协议:HTTP、FTP、SMTP
基于UDP的协议:RIP、DNS、SNMP

4、TCP可靠传输的保证,拥塞控制目的和过程

TCP通过:应用数据分割、对数据包进行编号、校验和、流量控制、拥塞控制、ARP协议、超时重传等措施保证数据的可靠传输;
拥塞控制目的:为了防止过多的数据注入到网络中,避免网络中的
路由器、链路过载

拥塞控制过程: TCP发送将维护一个拥塞窗口的状态变量,该变量随着网络拥塞程度动态变化,通过慢开始、拥塞避免等算法减少网络拥塞的发生。

5、TCP粘包现象原因和解决方法

TCP粘包: 发送方发送的若干包数据到接受方接受时粘成一包
发送方原因:
TCP默认使用Nagle算法(主要作用:减少网络中报文段的数量),而Nagle主要做两件事:1、只有上一个分组得到确认,才会发送下一个分组 2、收集多个小分组,在一个确认到来时一起发送
Nagle造成了发送方可能出现粘包问题
接收方原因: TCP接受到数据报时,并不会马上交给应用层处理,或者说应用层不会立即处理。TCP将接受到的数据包保存在接受缓存里,然后应用程序主动从缓存读取收到的分组。这样的话,如果TCP接受数据包到缓存的速度大于应用层从缓存中读取数据包的速度,多个包就会被缓存,应用程序就有可能读取到多个首尾相接粘到一起的包。

解决粘包问题:
最本质原因在于接受方无法分辨消息与消息之间的边界在哪,通过某种方案给出边界:

  • 发送定长包。如果每个消息的大小都是一样,那么接受方只要累计接受数据,直到数据等于一个定长的数值就将它作为一个消息。
  • 包尾加上\r\n标记。FTP协议就是这样做的。问题就是如果消息正文也有\r\n,就会误判为消息的边界
  • 包头加上包体长度。包头是定长的4个字节,说明了包体的长度。接受方先接受包体长度,如果根据包体长度接受包体。

6、三次握手,四次挥手

在这里插入图片描述
(1)序号(sequence number):Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。

(2)确认号(acknowledgement number):Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。

(3)标志位(Flags):共6个,即URG、ACK、PSH、RST、SYN、FIN等。具体含义如下:

  • URG:紧急指针(urgent pointer)有效。
  • ACK:确认序号有效。
  • PSH:接收方应该尽快将这个报文交给应用层。
  • RST:重置连接。
  • SYN:发起一个新连接。
  • FIN:释放一个连接。

三次握手
三次握手为TCP连接的建立。这个连接为一方主动打开,另一方被动打开的过程。以下为客户端主动建立连接的过程。
在这里插入图片描述

握手之前主动打开连接的客户端结束CLOSED阶段,被动打开的服务器端也结束CLOSED阶段,并进入LISTEN阶段。随后开始“三次握手”:
(1)客户端向服务器端发送一段报文

  • 标志位为SYN,表示“请求建立新连接”

  • 序号Seq=X(X一般为1)

  • 随后客户端进入SYN-SENT阶段
    (2)服务器端接受到客户端发送的报文后,结束LISTEN阶段,并返回一段报文

  • 标志位为SYN,ACK,表示“服务器端能正常收到客户端发送的数据,并同意创建新连接”

  • 序号Seq=y

  • 确认号Ack=x+1,表示收到客户端发送的Seq,并加1作为Ack值,随后服务器端进入SYN-RCVD阶段
    (3)客户端收到服务器端发送的数据后,明确建立的连接是正常的,并发送最后一段报文,结束SYN-SENT阶段

  • 标志位ACK,表示“确认收到了服务器端发送的数据”

  • 序号Seq=x+1,表示以服务器发送的Ack号作为序号

  • 确认号为Ack=y+1,表示以服务器发送的Seq号为确认号

  • 随后客户端进入ESTABLISHED阶段
    服务器接受到客户端发送的数据后࿰

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值