面试--精选计算机网络基础知识面试核心
目录
网络基础知识
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的连接方式
简介
- 协议也就是规则,对数据的传输格式,传输速率,做了统一的规定,通信双方必须同时遵守才能完成数据交换
- HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)
特点
- 支持客户/服务器模式,浏览器通过URL 向服务端发送请求。
- 简单快速,只需传送请求方法和路径,请求方法常用的有“GET” 和"POST"
- 灵活,HTTP允许传输任意类型的数据对象
- 每个请求连接一次,服务器响应成功后就断开连接。
请求/响应步骤
- 客户连接到Web服务器
- 发送HTTP请求
- 服务器接收请求并返回HTTP响应
- 释放TCP连接
- 客户端浏览器解析HTML内容
请求结构
- 请求方法 + URL + 协议版本 + 请求头部 + 请求行