
网络
innagine
这个作者很懒,什么都没留下…
展开
-
网络基础:TCP(4):三次握手和四次挥手(简述)
一、tcp三次握手第一次握手(SYN=1, seq=x):client先发起一个带有SYN字段,seq=x的请求。第二次握手(SYN=1, ACK=1, seq=y, ack=x+1):server端收到之后确认client的发送能力与自身的接收能力正常。返回ACK和SYN字段还有seq=y, ack=x+1。第三次握手(ACK=1,ack=y+1):client接收后确认server发送能力正常,返回ACK=1,ack=y+1字段。server拿到后确认client接受能力正常,自此三次握手成功原创 2020-12-11 16:27:45 · 535 阅读 · 0 评论 -
网络基础:TCP(3):TCP沾包
一、TCP沾包的由来及解决方案默认情况之下,TCP连接会启动延迟传送算法(Nagle算法),在数据发送之前缓存它们,如果短时间有多个数据发送,会缓冲到一起作一次发送(缓冲大小见 socket.bufferSize),这样可以减少IO消耗的性能。如果是传输文件的话,那么根本不用处理沾包的问题,来一个包拼一个包就好了。但是如果是多条信息,或者是别的用途的数据那么就要处理沾包。可以参考流传比较广的一个例子,连续调用两次send分别发送两端数据data1和data2,在接收端有以下几种常见的情况:A:先原创 2020-12-09 14:32:38 · 720 阅读 · 0 评论 -
网络基础:TCP(2):TCP与UDP的区别(简述)
协议TCPUDP连接性面向连接 (Connection oriented)无连接 (Connection less)双工性全双工(1:1)n:m可靠性可靠(重传机制)不可靠 (丢包后数据丢失)有序性有序(通过SYN排序)无序有界性无, 有粘包情况有消息边界, 无粘包拥塞控制有无传输速度慢快量级低高头部大小20~60个字节8个字节UDP socket 支持 n 对 m 的连接状态, 在官方文档中有写...原创 2020-12-08 15:23:45 · 199 阅读 · 0 评论 -
网络基础:TCP(1):TCP 的特性
一、TCP 的特性1.TCP提供一种面向连接的、可靠的字节流服务。2.在一个TCP连接服务中,仅有两方进行彼此通信。广播和多播不能用于TCP。3.TCP使用检验和,确认和重传机制来保证可靠传输。4.TCP给数据分节进行排序,并使用累计确认保证数据的顺序不变和非重复。5.TCP使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制。...原创 2020-12-05 15:16:26 · 789 阅读 · 0 评论 -
网络基础:HTTP(6):HTTP的缓存过程
一、HTTP的缓存过程是怎么样的?通常的情况下的步骤是:1.客户端向服务器发出请求,请求资源。2.服务器返回资源,并通过响应头决定缓存策略。3.客户端根据响应头的策略决定是否缓存资源(这里假设是),并将响应头与资源缓存下来。4.在客户端再次请求并命中资源的时候,此时客户端去检查上次缓存的缓存策略,根据策略的不同,是否过期等判断是直接读取本地缓存还是与服务器协商缓存。二、什么时候会触发强缓存或者协商缓存?1.强缓存强缓存离不开两个响应头Expires与Cache-Control①Expir原创 2020-12-01 11:42:46 · 457 阅读 · 0 评论 -
网络基础:HTTP(5):HTTP2相对于HTTP1.X的优势和特点
一、二进制分帧帧:HTTP/2数据通信的最小单位消息:指HTTP/2中逻辑上的HTTP消息。例如请求和响应等,消息由一个或者多个帧组成。流:存在于连接中的一个虚拟通道。流可以承载双向消息,每个流都有唯一的整数ID。HTTP/2采用二进制格式传输数据,而非HTTP1.X的文本格式,二进制协议解析起来更高效。二、头部压缩HTTP/1.x会在请求和响应中重复地携带不常改变的、冗长的头部数据,给网络带来额外的负担。①HTTP/2在客户端和服务器端使用“首部表”来跟踪和存储之前发送的键值对,对于相同的数据原创 2020-11-30 20:51:09 · 577 阅读 · 0 评论 -
网络基础:HTTP(4):HTTPS产生的原因和运行机制
一、为什么有了HTTP还要有HTTPS?https是安全版的http,因为http协议的数据都是明文进行传输的,所以对于一些敏感信息的传输就很不安全,https就是为了解决http的不安全而生的。二、HTTPS是如何保证安全的?首先得理解两个概念:1.对称加密:①即通信的双方都使用同一个密钥进行加密,比如特务接头的暗号,就属于对称加密2.非对称加密:①私钥+公钥=密钥对②即用私钥加密的数据,只有对应的公钥才能解密,用公钥加密的数据,只有对应的私钥才能解密③因为通信双方的手里都有一套自己的密原创 2020-11-30 11:12:25 · 486 阅读 · 0 评论 -
网络基础:HTTP(3):HTTP的keep-alive
一、产生在早期的HTTP/0.1中,每次http请求都要创建一个链接,而创建链接的过程需要消耗资源和时间,为了减少资源消耗,缩短响应时间,就需要重用连接。在后来的HTTP/1.0中以及HTTP/1.1中,引入了重用连接的机制,就是在HTTP请求头中加入了Connection:Keep-alive来告诉对方这个请求响应完成后不要关闭,下一次咋们还可以用这个请求继续交流。协议规定HTTP/1.0,如果想要保持长连接,需要在请求头中加上Connection:Keep-alive。在HTTP1.1中默认开启Con原创 2020-11-30 09:49:54 · 275 阅读 · 0 评论 -
网络基础:HTTP(2):HTTP的首部
一、通用首部字段(General Header Fields):请求报文和响应报文两方都会使用的首部1.Cache-Control 控制缓存2.Connection 连接管理、逐条首部3.Upgrade 升级为其他协议4.via 代理服务器的相关信息5.warning 错误和警告通知6.Transfor-Encoding 报文主体的传输编码格式7.Trailer 报文末端的首部一览8.Pragma 报文指令9.Data 创建报文的日期二、请求首部字段(Request Header Fie原创 2020-11-28 23:56:37 · 209 阅读 · 0 评论 -
网络基础:HTTP(1):请求的组成及状态码
HTTP请求中的内容1.HTTP请求由三部分构成,分别为:——请求行——首部——实体2.请求行由请求方法,URL,协议版本组成3.首部分为请求首部和响应首部,其中部分首部通用HTTP状态码1.状态码区分:—— 1**:服务器接受到请求—— 2**:操作被成功接收—— 3**:重定向—— 4**:客户端错误—— 5**:服务器错误2.具体状态码:—— 100:客户端应当继续发送请求。即服务器那边接受了部分请求,例如一些浏览器会将header跟body分开发送—— 101:通过原创 2020-11-01 22:04:28 · 678 阅读 · 0 评论 -
网络基础:OSI模型分析
OSI模型1.分别分为应用层、表示层、会话层、运输层、网络层、数据链路层、物理层2.层级含义:(1)应用层协议定义的是应用进程间的通信和交互规则,数据单元称为报文,应用层协议有FTP,HTTP,DNS,SMTP等(2)运输层协议负责向两台主机进程之间的通信提供通用的数据传输服务,有分用和复用功能——分用就是将运输层报文段中的数据交付到正确的套接字——复用就是在源主机从不同的套接字中收集数据块(3)网络层把运输层产生的报文段封装层数据包进行传送,还有选择合适的路由(4)物理层利用传输介质为数据原创 2020-11-01 21:19:41 · 175 阅读 · 0 评论 -
网络基础:TCP拥塞控制
TCP拥塞控制1.拥塞控制和流量控制不同,后者是作用于接受方,保证接收方来得及接收数据。而前者是作用于网络,防止过多的数据拥塞网络,避免出现网络负载过大的情况。2.慢开始算法:慢开始算法就是在传输开始时将发送窗口慢慢级数扩大,从而避免一开始就传输大量数据导致网络拥塞。具体步骤:(1)连接初始设置拥塞窗口为1MSS(2)每过一个RTT就窗口大小乘二(3)当窗口大小大于阈值时,就会启动拥塞避免算法3.拥塞避免算法拥塞避免算法是每过一个RTT窗口大小加一,这样能够避免指数级增长导致网络拥塞,慢慢原创 2020-11-01 20:34:48 · 2429 阅读 · 10 评论