写点什么

8.5 网络通信基本原理与性能优化

用户头像
张荣召
关注
发布于: 2020 年 11 月 16 日

1.Web请求的一次网络通信历程

   解析:1.客户端发起Web应用请求----------------HTTP请求(包含域名:域名比较稳定)。

             2.域名解析:域名解析为IP地址------------IP为CDN服务器地址。

             3.如果CDN没有缓存静态内容,请求转发到负载均衡服务器。

             4.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2.OSI七层模型和TCP/IP四层模型



3.网络数据包格式:

  英文式描述地址:从小到大。

 mac(物理地址)<----------IP(逻辑地址)<---------端口(门牌号)<------------做什么<----------应用数据

4.物理层

   物理层负责数据的物理传输,计算机输入输出是01二进制数据,但是在真正的网络线路里有光纤,电缆,无线各种设备。

  光信号,电信号以及无线电磁信号在物理上是完全不同的,如何能让这些不同的设备能够理解,处理相同的二进制数据,这就是物理层要解决的问题。

5.链路层

链路层是将数据封装后交给物理层进行传输,主要是指将数据封装成数据帧,以帧为单位通过物理层进行通信,

有了帧,就可以在数据帧上进行数据校验,以帧为单位进行流量控制。



链路层定义帧的大小,这个大小也被称作最大传输单元。像HTTP要在传输的数据上添加HTTP头一样,数据链路层也会将封装好的帧添加一个帧头,

枕头里记录的一个重要信息就是发送者和接受者的MAC地址。MAC地址就是网卡的设备标识符,是唯一的,数据帧通过这个信息确保数据送达到正确的目标机器。

6.链路层负载均衡

7.网络层

网络层IP协议:使得互联网应用根据IP地址就能访问目标服务器,请求离开App后,到达运营服务商的交换机,交换机会根据这个IP地址进行路由转发,可能中间会经过很多个转发节点,最后到达目标服务器。



网络层的数据需要交给链路层处理,而链路层帧的大小定义了最大的传输单元,网路层的IP数据包必须要小于最大传输单元才能网络传输,这个数据包也有一个IP头,主要包括的就是发送者和接受者的IP地址。

7.1.IP负载均衡



8.传输层(TCP协议)

IP协议不是一个可靠的通信协议,不会建立稳定的通信链路,并不会确保数据一定会送达。要保证通信的稳定可靠,需要传输层协议TCP。

TCP协议是一种面向连接的,可靠的,基于字节流的传输层协议,TCP作为一个比较基础的通讯协议,有很多重要的机制保证了TCP协议的可靠性和强壮行。



使用序号,对收到的TCP报文段进行排序和检测重复数据。

无措传输,使用校验和检测报文段的错误。

使用确认和计时器来检测和纠正丢包后者延时。

流量控制,避免主机分组发送得过快而是接收方来不及完全收下。

拥塞控制,发送方根据网络承载情况控制分组的发送量,以获得高性能同时避免拥塞崩溃

丢失包的重传。



TCP建立连接的三次握手过程:

1.App先发送SYN=1,Seq=X的报文,表示请求建立连接,X是个随机数。

2.服务器收到这个报文后,应答SYN=1,ACK=X+1,Seq=Y的报文,表示同意建立连接。

3.App收到这个报文后,检查ACK的值为自己发送的Seq值+1,确认建立连接,并发送ACK=Y+1的报文给服务器;

   服务器收到这个报文后,检查ACK值为自己发送的Seq值+1,确认建立连接。

   至此,App和服务器建立TCP连接,就可以数据传输啦。





TCP关闭连接的四次挥手过程:

  •  客户端向服务器端发送一个FIN,请求关闭数据传输。

  • 当服务器端收到客户端的FIN时,向客户端发送一个ACK。

  • 然后服务器向客户端发送一个FIN,高速客户端应用程序关闭。

  • 当客户端收到服务器端的FIN时,恢复一个ACK给服务器。



9.应用层HTTP协议

而互联网应用需要在全球范围内为用户提供服务,将全球的应用和全球的用户联系在一起,需要一个统一的应用层协议,而这个协议就是HTTP协议。

:authority:s.taobao.com

:method GET

:path:/search?..

:schema:https

:accept:text/html

:accept-encoding:gzip

:accept-language:en-us

:cookie:a=b...

9.1.HTTP请求的7种方法

Get:只读请求,请求处理过程中不应该产生副作用,即Web应用不应该因为Get请求而发生任何状态改变。

Head:和get方法一样,但是只返回响应头。

Post:提交请求。

Put:上传请求。

Delete:删除URL表示的资源。

Trace:回显服务器收到的请求,用以测试或者诊断。

Options:请求服务器返回支持的所有的HTTP请求方法,测试服务器是否正常。

9.2.HTTP响应的5种状态

 1XX消息-----------------------------------------------请求已被服务器接收,继续处理

 2XX成功-----------------------------------------------请求已被服务器成功接收,理解并接受

 3XX重定向---------------------------------------------需要后续操作才能完成这一请求

 4XX请求错误-------------------------------------------请求含有词法错误或者无法被执行。

 5XX服务器错误-----------------------------------------服务器在处理某个正确请求发生错误。



用户头像

张荣召

关注

还未添加个人签名 2018.05.02 加入

还未添加个人简介

评论

发布
暂无评论
8.5网络通信基本原理与性能优化