带你搞懂计算机网络知识点

1. TCP三次握手

在这里插入图片描述

你和你女朋友打电话,
(1) 你:喂?(发送SYN连接请求)+ISN序列号,大猫在吗?。?
(2) 你女朋友:嗯,在的(ACK应答,请求ISN序列号+1),狗子,听得见不?(发送SYN建立连接请求)+ISN序列号?
(3) 你:听得见(ACK应答,请求ISN序列号+1)。

2. TCP四次挥手

在这里插入图片描述

(1) 你:大猫我要睡觉了,下次聊好不(发送FIN断开连接请求)+ISN序列号
(2) 你女朋友:好呀,下次聊,嘿嘿(表情包)(ACK 应答,请求ISN+1)
(3) 你女朋友:狗子你是真要睡觉了?(发送FIN断开连接请求)+ISN序列号,不会骗我吧!
(4) 你:真睡了,晚安哦,大猫。(ACK 应答,请求ISN+1)

3. PING的过程

(1) 域名解析
(2) 向目的IP发送ICMP数据包
(3) 局域网内,解析目的IP的硬件地址,发送ARP广播请求,
(4) 目的主机接收到ARP请求后,将本机硬件地址填充,应答请求
(5) 发送数据包给目的主机,发送响应包给源主机
(6) 源主机收到响应包

4. http请求

过程

(1) 域名解析
(2) 发起tcp三次握手,建立连接
(3) 发送http请求
(4) 服务器响应请求,浏览器得到html代码
(5) 浏览器解析html
(6) 浏览器关闭tcp连接

http状态行

(1)200状态码:
  成功2××: 成功处理了请求的状态码。
  200 :服务器已成功处理了请求并提供了请求的网页。
  204: 服务器成功处理了请求,但没有返回任何内容。
(2)300状态码:
  重定向3×× :每次请求中使用重定向不要超过 5 次。
  301: 请求的网页已永久移动到新位置。当URLs发生变化时,使用301代码。搜索引擎索引中保存新的URL。
  302: 请求的网页临时移动到新位置。搜索引擎索引中保存原来的URL。
  304: 如果网页自请求者上次请求后没有更新,则用304代码告诉搜索引擎机器人,可节省带宽和开销。
 (3)400状态码:
  客户端错误4×× :表示请求可能出错,妨碍了服务器的处理。
  400: 服务器不理解请求的语法。
  403: 服务器拒绝请求。
  404: 服务器找不到请求的网页。服务器上不存在的网页经常会返回此代码。
  410 :请求的资源永久删除后,服务器返回此响应。该代码与
(4)500状态码:
  服务器错误5×× :表示服务器在处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。
  500 :服务器遇到错误,无法完成请求。
  503: 服务器目前无法使用(由于超载或停机维护)。
  通常,这只是暂时状态。 希望大家在分析日志的时候可以参照一下,根据具体的状态码解决问题。

http请求类型

OPTIONS:

返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*’的请求来测试服务器的功能性。

HEAD:

向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。

GET:

向特定的资源发出请求。

POST:

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。

PUT:

向指定资源位置上传其最新内容。

DELETE:

请求服务器删除Request-URI所标识的资源。

TRACE:

回显服务器收到的请求,主要用于测试或诊断。

CONNECT:

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

5. 连量控制

(1)用途:让发送方的发送速率不要太快,接收方来得及接收
(2)实现:滑动窗口(ARQ协议)
接收端窗口 rwnd

接收端缓冲区大小。接收端将此窗口值放在 TCP 报文的首部中的窗口字段,传送给发送端。

拥塞窗口 cwnd (congestion window)

发送端缓冲区大小

发送窗口swnd

发送窗口的上限值 = Min [rwnd, cwnd]
当 rwnd < cwnd 时,是接收端的接收能力限制发送窗口的最大值。
当 cwnd < rwnd 时,则是网络的拥塞限制发送窗口的最大值。

(3)用途:避免死锁,为了避免死锁,每当发送者收到一个零窗口的应答后就启动该计时器。时间一到便主动发送报文询问接收者的窗口大小。若接收者仍然返回零窗口,则重置该计时器继续等待;若窗口不为0,则表示应答报文丢失了,此时重置发送窗口后开始发送,这样就避免了死锁的产生。

6.拥塞控制

在这里插入图片描述

(1)用途:拥塞控制是作用于网络的,它是防止过多的数据注入到网络中,避免出现网络负载过大的情况
(2)实现:慢开始,用塞避免、快重传、快恢复
慢开始:

不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小(慢开始算法只是在TCP连接建立时和网络出现超时时才使用)

拥塞避免:

拥塞窗口缓慢增长,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍。这样拥塞窗口按线性规律缓慢增长

快重传:

快重传要求接收方在收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方,可提高网络吞吐量约20%)而不要等到自己发送数据时捎带确认

快恢复:

当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把ssthresh门限减半(为了预防网络发生拥塞)。但是接下去并不执行慢开始算法

6. IP地址相关计算

(1) 网络地址
(2) 主机号
(3) 子网掩码
(4) 网关
例如:192.168.2.1/20主机号、网络地址、子网掩码是多少
Ip 11000000.10101000.00000010.00000001 192.168.2.1
掩码 11111111.11111111.11110000.00000000 255.255.40.0
网络地址 11000000.10101000.00000000.00000000 192.168.0.0
子网范围: 192.168.0.0----192.168.15.255
主机号: 0.0.2.1
网关: 192.168.2.1
广播地址:主机位全置1:192.168.15.255

7.nat映射与打洞机制

私网与私网:nat映射+打洞
私网与公网:nat映射
公网与公网:直接连接
NAT映射表存在在路由器里面,实现的是私有IP与公有IP之间的转换
打洞机制:通过一些公网服务器来实现私网与私网的通信

8.https

在这里插入图片描述

(1) 客户端发起HTTPS请求
在浏览器中输入一个https网址,连接443端口,请求浏览器的加密算法和哈希算法。

(2) 服务端的配置
服务器收到请求,选择浏览器支持的加密算法和哈希算法。

(3) 传送证书
这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

(4) 客户端解析证书
这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随即值。然后用证书对该随机值进行加密。就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

(5) 传送加密信息
这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

(6) 服务段解密信息
服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

(7) 传输加密后的信息
这部分信息是服务段用私钥加密后的信息,可以在客户端被还原

(8)客户端解密信息
客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容。整个过程第三方即使监听到了数据,也束手无策。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页