面试--精选计算机网络基础知识面试核心

网络基础知识

OSI是一个定义良好协议的规范机,定义了开放系统的层次结构

OSI7层协议

1. 物理层: 机械,电子,定时接口通信信道上的原始比特流输出。主要定义了物理设备的标准,比如网线的类型,光纤的接口类型,主要传输比特流,也就是01 01二进制数据

2. 数据层: 定义了如何格式化数据,以进行传输,让控制对物理介质的访问,这层还提供错误检测和纠正,以确保数据传输的可靠性

3. 网络层: 将网络地址翻译成对应的物理地址

4. 传输层: 传输协议,同时进行流量的控制,关注的协议就是HTTP(TCP和UDP)

5. 会话层: 建立和管理应用程序之间的通讯

6. 表示层: 解决不同系统之间的通信语法的问题,在表示层按照能理解的方案进行格式化

应用层: 规定发送端后接收端必须使用一个固定长度的消息头,消息头必须使用某种规定的组成,还需记录消息长的等信息,以便接收方更容易解析

Socket简介

Socket是对TCP/IP协议的抽象,是操作系统对外开放的接口

1. TCP的三次握手

TCP简介

TCP是面向连接的通信,基于字节流的传输通信协议,即传输数据之前,需要客户端和服务器端建立逻辑连接,它提供了两台计算机之间可靠无差错的数据传输。客户端和服务器端必须经过3次握手,建立连接才能通信(安全的)。
面试--精选计算机网络基础知识面试核心

第一次握手: 客户端主动(active open)去connect服务器,并且发送SYN 包假设***为J,服务器是被动打开(passive open)

第二次: 服务器在收到SYN包后,它会发送一个SYN以及一个ACK(应答)给客户,
ACK的***是 J+1表示是给SYN J的应答,新发送的SYN K ***是K

第三次: 客户在收到新SYN K, ACK J+1 后,也回应ACK K+1 以表示收到了,然后两边就可以开始数据发送数据了

  • 为什么要三次握手才能建立连接?

以保证应用程序接收到的数据不会因为网络上的传输问题而乱序。

2. TCP的四次挥手

“挥手” 是为了终止TCP连接,在算开一个TCP连接时需要客户端和服务端总共发出4个包以确认连接的断开,执行CLOSE来完成。

3. TCP和UDP的区别

UDP简介 UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不用建立连接。由于是无连接的,所以不能保证数据的完整性,安全性。

  • 区别:
  • TCP和UDP是 OSI模型中的协议,TCP面向连接,UDP无连接。
  • TCP是利用握手提供了可靠机制,UDP有可能会丢失。
  • TCP具备有序性。
  • TCP因为要创建连接,所以在传输速度相对较慢,一般用于网页的流浪,文件下载,UDP适用于音频,视频的传输。
  • TCP属于重量级的(20个字节),UDP属于轻量级的(8个字节)。

HTTP相关

超文本传输协议HTTP,基于TCP的连接方式

简介

  1. 协议也就是规则,对数据的传输格式,传输速率,做了统一的规定,通信双方必须同时遵守才能完成数据交换
  2. HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)

特点

  1. 支持客户/服务器模式,浏览器通过URL 向服务端发送请求。
  2. 简单快速,只需传送请求方法和路径,请求方法常用的有“GET” 和"POST"
  3. 灵活,HTTP允许传输任意类型的数据对象
  4. 每个请求连接一次,服务器响应成功后就断开连接。

请求/响应步骤

  1. 客户连接到Web服务器
  2. 发送HTTP请求
  3. 服务器接收请求并返回HTTP响应
  4. 释放TCP连接
  5. 客户端浏览器解析HTML内容
    面试--精选计算机网络基础知识面试核心

请求结构

  • 请求方法 + URL + 协议版本 + 请求头部 + 请求行

URL请求流程如图:

面试--精选计算机网络基础知识面试核心

HTTP常见状态码如图:

面试--精选计算机网络基础知识面试核心

HTTP和HTTPS的区别

面试--精选计算机网络基础知识面试核心