春招秋招+后端开发+面经知识点大全系列2:计算机网络部分

2 篇文章 0 订阅
2 篇文章 1 订阅

前言

经历了几个月的折腾,面了大大小小快20家厂子。把经历的知识点做个汇总。从语言,操作系统, 网络等几个方面分别总结记录一下。如果你正在准备后端方向的秋招春招实习, 可以拿这个系列作为一个参考,了解一些基本知识。
准备知识的时候,一定以理解为主。
水平有限,如果有错漏之处,欢迎留言评论指出,感激不尽!

TCP和UDP的区别

  1. TCP-传输控制协议,提供面向连接的,可靠的字节流服务。先建立连接再传输,提供超时重传,滑动窗口,确认,流量控制,用塞避免,序列号等机制保障可靠传输。
  2. UDP-用户数据报协议,面向数据报的传输协议,提供的是不可靠的传输。不需要建立连接,传输速度快。可以靠应用层协议实现可靠传输如RUDP,RTP等。

ICMP和IP协议

  1. ICMP-Internet控制报文协议,是面向无连接的,用于IP主机与路由器之间控制传递消息,属于网络层,可用于确认IP包是否到达目的地。
  2. IP-网际协议,负责网络上的通信,并规定了数据从一个网络传输到另一个网络的规则,提供不可靠的,无连接的数据包传送

TCP 3次握手/4次挥手

3次握手

  1. client请求同步SYNC
  2. server收到请求,返回ACK+SYN确认
  3. client发送确认

4次挥手

  1. client发送FIN
  2. server收到请求,返回确认
  3. server发送FIN
  4. client收到,返回确认

4次挥手是因为全双工通信,每条通路单独关闭。
client收到FIN后,除了返回确认,还需要经历TIME_WAIT(通常为2MSL)是为了防止丢包最后的ACK以及让网络中的重复分节消失。

网络编程步骤

Server端

  1. 创建socket,绑定端口
  2. TCP需要listen监听端口,并通过accept接收请求,udp不需要(连接在listen时建立,accept返回的是已经建立的连接的套接字)
  3. TCP send/recv,UDP sendto/recvfromclient
  4. close
    Client端
  5. 创建socket
  6. TCP需要connect,udp不需要
  7. TCP send/recv,UDP sendto/recvfromclient
  8. close

网络模型与常见协议

OSI七层模型

  1. 物理层:传输比特流(通过物理介质),与机械电气有关,RJ45
  2. 数据链路层:将比特流组装为帧结构,进行同一网络内的传输,例如MAC,PPP,VLAN,HDLC
  3. 网络层:实现不同网络的互通,IP,ICMP
  4. 传输层:提供端到端的报文传递,TCP,UDP
  5. 会话层:建立,管理和终止会话,NFS
  6. 表示层:对数据进行翻译,加密,压缩等操作,JPEG
  7. 应用层:HTTP,FTP,DNS等

TCP/IP四层模型

  1. 网络接口层:MAC,VLAN
  2. 网络层:IP,ICMP
  3. 传输层:TCP,UDP
  4. 应用层:HTTP,FTP,DNS等

http相关

HyperText Transfer Protocol 超文本传输协议 ,一种位于应用层的数据传输协议,建立在tcp上

http状态码

1xx 属于提升信息,是协议处理中的中间状态,实际应用较少
2xx 服务器成功处理了客户端请求 200 成功 204 成功(无内容) 206 Partial content 应用于分块下载
3xx 重定向 请求的资源发生了变化,会使用Location字段表示下一跳的url 301 永久重定向 302 暂时重定向 304 Not Modified 重定向至浏览器缓存文件
4xx 客户端报文有误,服务器无法处理 400 Bad Request 403 Forbidden 服务器禁止访问资源 404 Not Found 资源不存在
5xx 客户端请求正确,服务器内部处理错误 500 Internal Server Error 笼统的错误码 501 Not Implemented 请求尚不支持 502 Bad Gateway 服务器作为代理访问后端server时异常 503 Service Unavailable 服务器正忙

http头中的常见字段

host 指定服务器域名
content-length 数据长度
content-type 数据格式
content-encoding 数据压缩方法
accept 可接受的格式
accept-encoding 可接受的压缩方法 例如gzip
expires 缓存过期时间
cache-control 同样是控制缓存
last modified / if modified since 与缓存控制相关

http中的安全和幂等

  1. http中的安全是指请求方法不会破坏服务器上的资源,因此GET方法是安全的,DELETE是不安全的
  2. 幂等是指多次执行相同的操作,结果(造成的影响)相同。例如通过POST新增资源,多次调用,资源被创建多次,因此不是幂等的

http的优缺点

  1. 优点:简单灵活,易扩展,跨平台。报文格式header+body,header是key-value的形式,易于理解。且作为应用层协议,下层可以进行变化处理(例如https,http2.0等)
  2. 缺点:无状态协议(好坏参半,在需要知道状态时需要通过session,cookie等方式辅助),明文传输不安全(可通过https实现安全传输)

http的发展历程1.0~3.0

  1. http1.0的每次请求都需要重新新建TCP连接,网络开销大
  2. http1.1使用长连接(keep-alive)的方式,减少TCP连接的重复建立。因此使得管道传输成为可能,客户端可以连续发送请求,不必等回复到达。可能导致队头阻塞,即某个请求迟迟无法回应,因此影响到之后所有请求的回应。
  3. http2.0是基于https,包含以下的几个新特点优点:头部压缩,同时发送多个请求时,若header是相似的,会消除重复部分减少开销,HPack算法。二进制格式,全面采用二进制格式,头信息,数据体都是二进制,变成头信息帧,数据帧,因此收到报文后无需转换直接解析。数据流传输,一个请求或者回应的所有数据包称为一个数据流,每个流都有独一无二的编号,client发出的为奇数,server发出的为偶数。优先级,client可以指定数据流的优先级,优先级高的server优先响应。多路复用,不用排队等待。服务端push,可以在client请求html时,主动将css,js等静态资源发送给client,减少等待。
  4. http3.0是使用基于udp的QUIC协议,实现类似tcp的可靠传输。某个流丢包时,只阻塞这个流,其他流不受影响。把TCP与TLS的六次交互合并成3次,目前大部分网络设备不支持。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值