前端面试--网络协议

1. OSI七层模型

有一个口诀,我当时学的是英文的。

Please do not throw sausage and pizza away

对应就是

(1)Physical 物理层

(2)Data LInk 数据链路

  ICMP IGMP IP

(3)Network 网络层

  TCP UDP

(4)Transport 传输层

(5)session 会话层

(6)presentation 表示层

(7)application 应用层

  HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP

2. TCP 与 UDP的区别

tcp和udp有什么区别-常见问题-PHP中文网

(1)UDP

1、面向无连接

TCP需要握手三次,UDP想发就发

2、有单播,多播,广播的功能

就是不止1对1 可以1对多 多对1 多对多

3、UDP是面向报文的

发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。因此,应用程序必须选择合适大小的报文

4、不可靠性

首先不可靠性体现在无连接上,通信都不需要建立连接,想发就发,这样的情况肯定不可靠。

并且收到什么数据就传递什么数据,并且也不会备份数据,发送数据也不会关心对方是否已经正确接收到数据了。

再者网络环境时好时坏,但是 UDP 因为没有拥塞控制,一直会以恒定的速度发送数据。即使网络条件不好,也不会对发送速率进行调整。这样实现的弊端就是在网络条件不好的情况下可能会导致丢包,但是优点也很明显,在某些实时性要求高的场景(比如电话会议)就需要使用 UDP 而不是 TCP。

(2)TCP

1. 面向连接

连接需要三次握手,分开还需要四次挥手。

2.仅支持单播传输

每条TCP传输连接只能有两个端点,只能进行点对点的数据传输,不支持多播和广播传输方式。

3.提供拥塞控制

当网络出现拥塞的时候,TCP能够减小向网络注入数据的速率和数量,缓解拥塞

4.TCP提供全双工通信

TCP允许通信双方的应用程序在任何时候都能发送数据,因为TCP连接的两端都设有缓存,用来临时存放双向通信的数据。当然,TCP可以立即发送一个数据段,也可以缓存一段时间以便一次发送更多的数据段(最大的数据段大小取决于MSS)

5.可靠性

 大概解释一下就是发送端发送数据,长度为100byte,序列为1200,接收者成功接收后就会返回一个ack,并且ack=seq+数据包长度也就是1200.但是如果在规定时间内没有接收到,那么当发送者发现没有返回ack时,就会重发一遍。

3. TCP三次握手和四次挥手

简述TCP的三次握手和四次挥手_麦田里的POLO桔的博客-CSDN博客_tcp的三次握手和四次挥手

首先来一个超级通俗易懂的说法方便后面理解。

(1)握手:(对应的就是建立TCP连接)

HOST1:我想握手

HOST2:(因为可能在忙不搭理,但是如果可以的话)好嘞哥。我正好也想握手。

HOST1:那来吧,开始互相握手交流。

 详细解释:SYN就是为同步标志,seq为发送的字节序号(从哪个字节开始发),ack可以理解为对应的通知。详细流程为

H1:发送连接标志SYN=1, seq=x

H2: 可以连接,双全工我也会给你发消息所以我也得和你建立连接,返回SYN=1对应同步标志。返回ACK=1(1表示成功,0表示无效),返回自己的seq=y,返回ack=x+1(这个意思就是H1的seq下一位,确认序号是等于接收序号+1的)。

H3:兄弟我收到你的同意了。我也可以和你建立。所以我返回ACK=1表示没有问题。seq自然是原来位置的下一位所以是x+1,ack是确定我也可以和你建立连接所以是(ack=y+1)。

(2)挥手

通俗说法

H1:我累了,分开吧。

H2:  等等,东西还没传完呢。

H2:行了。传完了没啥留恋的了

H1:那好,再见。

和上面的原理基本一样就是FIN是表示关闭连接,与SYN相反。前两次没什么特别的,第三次挥手是因为要等待数据传输完毕,才能开始第三次挥手,然后客户端确认,断开TCP连接。

4. TCP/ip包含的层级

这个我也不清楚为啥感觉国内的说法和国外的有区别。其实也差不多。这是英方课本当时学到的对比模型:

 可以看到tcp/ip协议其实是有5层的,只是它缺少了 session和presentation。

但是国内大家的博客都是四层。就是把最后两层合并了,其实也差不多。

5. TCP拥塞处理机制

TCP拥塞控制_心若向阳,何谓悲伤的博客-CSDN博客_tcp拥塞控制

6. DNS域名解析

DNS域名详细解析过程(最全面,看这一篇就够)_bangshao1989的博客-CSDN博客_dns域名解析

感觉一个图就说明问题了。

7. HTTP协议相关

看我这篇文章开头

前端面试八股文个人汇总--普通知识篇(持续补充)_打代码小橙子的博客-CSDN博客_前端八股文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值