计算机网络
1.⭐OSI七层模型和TCP-IP五层模型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
应用层:
作用:为特定的应用程序提供一个传输服务
协议:HTTP、HTTPS、FTP、DNS
传输层:
作用:为两台主机之间的应用程序提供一个通用的端到端数据传输服务
协议:TCP、UDP
协议数据单元:数据段
网络层:
※作用:为分组交换中的不同主机提供通信服务
(1)通过一定的算法 让互联网中的所有路由器生成的一个用来转发分组的转发表<分组>
(2)当前路由器根据分组中的转发表 把分组转发到下一个路由器 让源主机运输层传下来的分组到达目的主机<转发>
协议:IP、ARP
设备:路由器
协议数据单元:数据包
数据链路层:
作用:
它控制网络层与物理层之间的通信 其主要功能是在不可靠的物理介质上提供可靠的传输。
把网络层传下来的数据进行进行封装成帧发送到链路上 以及 把接收到的帧中的数据交给网络层
协议:
设备:交换机、网桥
协议数据单元:帧
物理层:
作用:屏蔽传输媒体和通信手段的差异 让连接的计算机在传输媒体上传输数据比特流
协议:
设备:集线器
协议数据单元:比特
2.⭐TCP-UDP的区别
1
2
3
4
5
6
7
8
9
10
TCP UDP
是否连接 有连接 无连接
数据载体 面向字节流 面向报文
速度
效率
安全性
几对几
应用
丢包 不丢包 丢包
其他 有拥塞控制 无拥塞控制
3.⭐TCP头部报文段的结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
IP数据报的数据 = 头部报文段+数据
TCP头部作用:存放一些决定tcp功能的字段
TCP头部结构:
源端口号和目的端口号
头部长度:头部的最大长度 60个字节
序号(seq): 当前报文段的第一个数据字节的序号
※确认号(ack):期望接收到对方下一个的报文段的第一个数据字节的序号
标志位:
1.ACK:传送的报文是否有效 ACK=1 表示有效
2.SYN:用于连接时候的同步位 一般和ACK一起使用表示 是否能建立连接
3.FIN:用于连接释放的时候使用
※4.RST:表示当前报文段是否要重新建立连接
※5.PSH:提示接收端要尽快取走当前缓冲区的数据 不需要等到缓冲区的数据满了再取 (赶快拿走)
6.URG:紧急指针是否有效 URG=1 紧急指针有效 表示当前报文段的数据是紧急的 要快点传送
紧急指针:表示紧急传送数据的大小 在 URG=1才有效
※窗口大小:TCP流量控制的手段 告诉发送方 当前报文段的缓冲区还能接受多少数据 告诉发送方自己收多少数据
校验和:当前报文段在传输过程中有没有出现错误
选项:可变长度的字段 表示当前tcp的一些拓展字段 如:最大报文段长度、窗口扩大、时间戳、选择确认
填充:使当前TCP首部长度是4的整数倍
4.IP头部结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
源ip地址和目的ip地址
头部长度
可选字段:一些拓展功能
填充:让头部字段长度成为4的整数倍
首部检验和:判断当前ip数据包在运输过程中是否损坏
版本:当前ip协议使用的版本
区分服务:为了获取更好的服务
总长度:首部和数据部分的总长度
标识:唯一标识一个ip数据报
标志:为了分片而存在的字段
如果为DF DF=1 表示不可以分片 如果为0可以分片
如果为MF MF=1 表示后面还有分片 如果为0则当前是最后一个
片偏移:分片相对于原始数据报开始处的偏移
生存时间:最大的跳数
5.⭐TCP三次握手和四次挥手的过程以及原因
1
2
3
4
三次握手: 建立全双工的一对一可靠连接
四次挥手: 释放连接
6.⭐简述TIME_WAIT和CLOSE_WAIT的区别
7.⭐TCP协议-如何保证可靠传输
1
2
3
4
5
6
7
8
9
10
11
12
13
1.序号和ACK
2.头部校验和
3.超时重传
4.流量控制
5.拥塞控制
慢开始
拥塞窗口慢慢变大
拥塞避免
拥塞窗口加法增大
快重传
连续收到三个重复确认就立即重新发送对方未收到的数据 不必等待设置的重传计时器到期
快恢复
从拥塞避免开始
8.DNS域名解析
9.⭐HTTP报文结构
HTTP请求报文结构
1
2
3
4
5
6
7
8
9
10
11
12
请求行:
方法:对请求对象的操作
※GET:查看请求的url资源
※POST:添加请求的url资源
PUT:修改请求的url资源
DELETE:删除请求的url资源
⭐URL:统一资源定位符:从互联网上得到资源和访问这些资源的方法
版本:http的版本
http1.1支持 长连接 流水线
⭐请求头部
首部字段和值
请求数据
HTTP响应报文结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
状态行:
版本:http的版本号
状态码:响应的状态
1xx:表示通知信息
2xx:表示请求成功信息
200:请求成功
3xx:表示完成某些请求之前还要做的事
301:永久重定向
302:临时重定向
4xx:表示客户端错误信息
400:客户端内部语法错误
※401:客户端未经授权
403:服务器拒绝访问
404:目标资源找不到 url错误
5xx:表示服务器错误信息
500:服务器内部发生不可预期的错误
503:服务器收到请求但是不能处理 过一段时间可能恢复正常
短语:
响应头部
首部字段和值
响应数据
⭐10.Get和Post的区别
1
2
3
4
5
6
作用
安全
参数
幂等
缓存
底层
⭐11.Cookie和Session以及它们的区别
1
2
3
4
存储位置
支持存储的数据类型
数据大小
安全性
12.短链接、长连接和流水线
1
2
3
短连接:
长连接:
流水线:
⭐13.Http和Https以及它们之间的区别
1
SSL使https 有了 加密 认证和完整性的功能 证书授权
14.Http和Ftp的区别
1
2
3
4
5
6
7
8
9
同:
都是应用层的协议
都是建立在tcp协议的基础上
异:
http是超文本传输协议 面向网页 ftp是文件传输协议 面向文件
http控制信息 带内传送 ftp是带外传送
http是无状态的 ftp则需要在整个会话期间 保存用户的状态信息
http使用持久连接和非持久连接都可以 ftp是传输文件的时候 使用控制连接(持久连接)和数据连接(非持久连接)
⭐15.输入一个网址背后的原理
1
2
3
4
5
6
7
8
1.输入URL
2.DNS解析
3.建立TCP连接(三次握手)
4.浏览器发送http请求报文
5.服务器做响应 然后发回http响应报文
6.浏览器获取到响应信息 然后解码 进行页面的渲染
7.浏览器发送异步请求 请求数据
8.TCP连接的释放(四次挥手)