计算机网络
文章平均质量分 91
TCP/IP HTTP
囚蕤
这个作者很懒,什么都没留下…
展开
-
IP基础知识和IP相关协议
网络层的作用是实现点到点的通信,也就是主机与主机之间的通信.网络层(IP)和数据链路层(MAC)之间的关系就相当于行程表和具体的车票之间的关系.IP负责远程定位源IP地址和目标IP地址,而MAC负责两个直连设备之间的传输. 在整个传输过程中,源IP和目的IP是不发生改变的,发生改变的是源MAC和目的MAC.A类地址最大主机数等于主机号上的最大主机数-2,之所以-2是因为要去掉全1和全0的主机号.全1用于指定某个网络下所有主机,适用于广播,全0指定某个网络.B类地址C类地址D类地址E类地址。原创 2022-09-04 22:41:06 · 851 阅读 · 0 评论 -
TCP的优化
当发送方接收到接收方的ACK报文后会进入FIN_WAIT2状态.如果调用的是shutdown函数,因为可能还可以继续发送或接收数据,所以发送方可以一直处于FIN_WAIT2状态.但如果调用的是close函数,那么则会处于孤儿连接,因此在FIN_WAIT2状态不能持续太长时间,这个时间有tcp_fin_timeout参数决定,通常是60s(超过60s会直接关闭连接.),和TIME_WAIT一致.WR:关闭连接的写.即不能再发送数据.如果发送缓冲区中有数据会立即发送,并发送一个FIN报文.原创 2022-09-01 22:28:40 · 767 阅读 · 0 评论 -
TCP确保可靠的机制——重传,滑动窗口,拥塞窗口,流量控制,延迟确认
当服务器资源十分紧张时会缩小接收缓冲区的大小.因此当客户端发送数据包给服务器时,服务器由于资源紧张减少接收缓冲区的大小,并且应用层无法读取数据,进一步减少了接收窗口的可用大小.也就是说此刻发送窗口的大小是大于接收窗口的(因为接收窗口因为资源紧张减少了大小),在接收方返回最新窗口之前,假设发送了一个超过此时接收方窗口大小的数据,则会造成服务器丢包,同时客户端中的发送窗口的大小会变成负值.当RTO较短时,重传的报文可能在接收到ACK报文前就被发送,则会造成不必要的重传报文的发送.原创 2022-09-01 09:30:00 · 1249 阅读 · 0 评论 -
TCP的连接过程——三次握手和四次挥手
假设只有两次握手,此时服务器发送完报文后处于ESTABLISHED状态,也就是说可以发送数据给客户端了,这时因为网络收敛客户端迟迟收不到服务器的ACK报文,然后服务器又发送了数据给客户端,网络恢复,数据报文优先于ACK报文到客户端,尽管客户端可以通过上下文丢弃异常的ACK报文(因为客户端要的ACK报文的ack=71)而发送RST中断连接,但服务器发送的数据已经到达客户端,所以造成了资源的浪费.同时会用客户端发送的SYN包中的序号+1作为确认序号返回给客户端,同时将标志位中的ACK设置为1,之后服务器处于。.原创 2022-08-31 23:05:50 · 556 阅读 · 0 评论 -
HTTP/2和HTTP/3特性介绍
HTTP/2中是基于四元组[源IP,源端口,目的IP,目的端口]来定位接收方的,在数据传输过程中,四元组是不发生改变的,这意味着当通信一方如果网络发生迁移(如从流量到WIFi),建立的连接就会因为IP地址的改变而断开,本次连接中发送的数据就无法到达接收方,需要重新发送.而重新连接有需要经历TCP与TLS握手的延迟.这个弊端是基于TCP建立在有连接的基础上进行通信的,因此要想优化这个弊端,就需要更换传输层协议,HTTP/3就是如此....原创 2022-08-31 07:30:00 · 2232 阅读 · 0 评论 -
HTTPS优化——协议优化,证书优化,会话复用
客户端和服务器首次建立连接时生成的对称加密密钥会被缓存到本地,并用一个唯一映射该密钥的Session ID来标识.这样在之后的连接中,客户端只需要发送自己的Session ID给服务器,就可以直接开始通信.为了安全,缓存中的对称加密密钥会定期失效.玩游戏最快战胜对方的方式就是[充钱].软件都是在硬件上跑的,想要提高软件的效率,最直接的方法就是提高硬件的质量. 因为HTTPS是计算密集型,所以主要提升的硬件应该是CPU.客户端在验证服务器的身份证书时,为了验证证书是否被CA吊销,需要去访问CA,下载。...原创 2022-08-30 21:50:13 · 884 阅读 · 0 评论 -
HTTPS RSA握手和ECDHE握手解析
假设客户端和服务器各自随机生成一对公钥和私钥,分别标记为A,a,B,b.每一方的公钥A/B = G^a/b % P,其中G是底数,P是模数(通常是一个比较大的质数).当我们知道a/b,G,P时是很容易计算出A/B的,但反过来知道A/B,G,P是很难计算出a/b的.A,B是公开的,所以客户端和服务器交换公钥后,客户端通过B。第三次握手时客户端再验证了服务器的身份后,根据椭圆曲线和基点G生成自己的公钥,并结合服务器的公钥计算出会话密钥(x坐标),并将自身生成的公钥发送给服务器,服务器由此生成会话密钥。...原创 2022-08-29 22:08:31 · 813 阅读 · 0 评论 -
HTTP——HTTP特性,缓存技术以及HTTP版本的演变
HTTP/2中的数据包不是顺序发送的,可以乱序发送.同一个连接里连续的数据包可能属于不同的回应.一个请求或响应中的所有数据包称为数据流,为了区分不同的数据包,每一个数据包都会标记一个Stream ID,一个数据流中的数据包的Stream ID是相通的.接收方可以根据Stream ID来组装数据包。为了保证数据的完整性,会用摘要算法(哈希)计算出数据的一个指纹(哈希),服务器会对接收到的数据再次计算出一个指纹并与报文中数据的指纹做对比,如果相同则说明数据是完整的.二者是可以相互加密解密的....原创 2022-08-29 22:03:11 · 276 阅读 · 0 评论 -
计算机网络TCP/IP四层网络模型初介绍
应用层的数据有时候会很大,如果直接传输既不容易控制,又会消耗大的成本(比如因为网络收敛导致发送的数据损坏了而需要重新发送时需要重新发送所有数据),当传输层的数据包大小超过MSS(TCP最大报文段长度),就要将数据包分块,而分块的好处是即使在传输过程中某个分块损坏需要重新发送也只需要发送这一个分块,在TCP协议中,这样一个分块称为一个TCP段。以太网就是电脑上的以太网接口,WI-FI接口,路由器上的千兆,万兆以太网口.以太网就是在局域网内,将附近的设备相连起来可以进行通讯的一种技术....原创 2022-08-03 06:42:31 · 139 阅读 · 0 评论