计算机网络
五山口老法师
腾讯后台开发工程师
展开
-
网络:.cookie和session原理及区别
一、Cookie详解(1)简介 因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不知道用户到底买了什么。为了做到这点,就需要使用到Cookie了。服务器可以设置或读取Cookies中包含信息,借此维护用户...原创 2018-09-12 13:53:11 · 198 阅读 · 0 评论 -
网络:http请求之几种常见技术
无状态由于http是一种无状态的协议,因此无论是客户端还是服务器都不记录http的相关信息。这样设计一方面减轻了服务器端的负载,另一方面减小了http请求的开销。但是针对某些特殊的场景,需要时刻记录用户的相关信息,这该如何处理呢?Cookie恰好可以解决这个问题,Cookie的运行机制如下:Cookie是一种由服务器端确定,并保存在客户端浏览器中的内容。这样,就不需要每次都添加...原创 2019-01-22 20:27:48 · 576 阅读 · 0 评论 -
网络:TCP协议
TCP首部格式 tcp数据是被封装在IP数据包中的,和udp类似,在IP数据包的数据部分。tcp数据包的格式如下: 源端口号和目的端口号(寻址)与udp中类似,用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP地址和目的端IP地址称为一个四元组。在网络编程中,一般一个IP地址和一个端口号组合称为一个套接字(socket)。 序号(seq):用来标识从TCP发端向...原创 2019-01-22 20:57:32 · 239 阅读 · 0 评论 -
网络:TCP协议3次握手4次挥手
三次握手流程1. 客户端发个请求“开门呐,我要进来”给服务器(SYN)2. 服务器发个“进来吧,我去给你开门”给客户端 (SYN+ACK)3. 客户端有很客气的发个“谢谢,我要进来了”给服务器 (ACK)四次挥手流程1. 客户端发个“时间不早了,我要走了”给服务器,等服务器起身送他(FIN)2. 服务器听到了,发个“我知道了,那我送你出门吧”给...原创 2019-01-23 09:38:23 · 201 阅读 · 0 评论 -
网络:为什么会出现大量的time_wait状态
TIME_WAIT状态是什么?TIME_WAIT状态是主动关闭TCP连接的一方(即先发起FIN包的一方),在发送完最后一个ACK包后进入的状态。系统需要在TIME_WAIT状态下等待2MSL(maximum segment lifetime )后才能释放连接(端口)。根据RFC 793 MSL是2分钟,一般的TCP实现有30秒、1分钟和2分钟不等。进入TIME_WAIT状态等待2MSL主要...原创 2018-06-02 22:08:40 · 5794 阅读 · 1 评论 -
网络:TIME-WAIT
time_wait状态产生的原因,危害,如何避免0.请说说你对TCP连接中time_wait状态的理解?解答:先上TCP的状态变迁图上面这个图片展示了TCP从连接建立到连接释放的过程中,客户端和服务端的状态变化图。如果只看连接释放阶段,四次握手· 客户端先发送FIN,进入FIN_WAIT1状态· 服务端收到FIN,发送ACK,进入CLOSE_W...原创 2019-01-23 10:14:28 · 656 阅读 · 0 评论 -
网络:TCP停止等待、超时重传、滑动窗口、拥塞控制、快重传和快恢复
TCP超时与重传机制TCP协议是一种面向连接的可靠的传输层协议,它保证了数据的可靠传输,对于一些出错,超时丢包等问题TCP设计的超时与重传机制。其基本原理:在发送一个数据之后,就开启一个定时器,若是在这个时间内没有收到发送数据的ACK确认报文,则对该报文进行重传,在达到一定次数还没有成功时放弃并发送一个复位信号。 这里比较重要的是重传超时时间,怎样设置这个定时器的时间(RTO),...原创 2019-01-23 11:30:18 · 1851 阅读 · 0 评论 -
网络:TCP/UDP
定义:TCP(Transmission ControlProtocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在简化的计算机网络OSI模型中,完成第四层传输层所指定的功能。UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一...原创 2019-01-23 12:01:08 · 219 阅读 · 0 评论 -
网络:长连接、短连接
1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠地传递数据包,使得网络上接收端收到发送端所发出的所有包,并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的。2. 如何理解HTTP协议是无状态的...原创 2019-03-05 11:09:15 · 229 阅读 · 0 评论 -
网络:301和302
301 Moved Permanently 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。302 Found 请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。...原创 2019-03-06 21:37:58 · 534 阅读 · 0 评论 -
网络:TCP粘包问题?如何解决?
看面经时,看到有面试官问TCP的粘包问题。想起来研一做购物车处理数据更新时遇到粘包问题,就总结一下吧。1 什么是粘包现象 TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。2 为什么出现粘包现象 (1)发送方原因 我们知道,TCP默认会使用Nagle算法。而Nagle算法主要做两件事: ...原创 2019-03-06 21:47:05 · 386 阅读 · 1 评论 -
网络:forward和redirect的区别
1.forwardrequest.getRequestDispatcher("new.jsp").forward(request, response);//转发到new.jsp2.redirectresponse.sendRedirect("new.jsp");//重定向到new.jsp很明显一个是用request对象调用,一个是用response对象调用,那么,这两者...原创 2019-03-06 21:54:15 · 455 阅读 · 0 评论 -
网络:DNS
DNS原理及其解析过程为什么需要DNS解析域名为IP地址?网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”之类的IP地址,而不能认识域名。我们无法记住10个以上IP地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名,就能看到所需要的页面,这是因为有一个叫“DNS服务器”的计算机自动把我们...原创 2019-03-10 09:52:55 · 1420 阅读 · 0 评论 -
数据包分片和重组 && MTU与MSS
前言任何一台主机都有必要对IP分片进行相应的处理。分片往往出现在网络上遇到比较大的报文无法一下子发送出去才会进行处理。正文比如说在前一个FDDI链路中的报文大小为4352字节,小于其MTU所以能够安全传送。如果经过一个路由器后,跳到以太网链路,由于以太链路的MTU为1500字节,所以显然报文无法传输。因此,路由器会将其分片成三个报文段进行分别顺序发送。这里分片的任...原创 2018-05-21 23:14:22 · 2457 阅读 · 0 评论 -
网络:窗口控制下的重发机制、流量控制
在没有使用滑动窗口之前,超时重发机制大概是这样子的:根据数据包的RTT和时间偏差计算出粗略的RTO,当一个数据包发送之后,在RTO时间内还没有返回确认ACK时,发送端就认为该数据包已经丢失,并进行重传。这里有两种情况:1)数据包真真切切地没有被接收端接收到。2)数据包已经被接受但是ACK在返回途中丢失。不管哪种情况,此时发送端都会进行重传。按照2的指数时间间隔进行重发,指定重发...原创 2019-03-19 19:04:48 · 355 阅读 · 0 评论 -
网络:XSS和HttpOnly
1.什么是HttpOnly?如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性,即便是这样,也不要将重要信息存入cookie。XSS全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性...原创 2019-03-28 22:56:30 · 1311 阅读 · 0 评论 -
网络:HTTP的请求方法
http请求方式如何发送http有很多种方式,但是最常用的就是POST和GET。其他的有些出于安全性的考虑一般都不建议使用。那么POST与GET有什么区别呢?1 使用目标不同:POST与GET都用于获取信息,但是GET方式仅仅是查询,并不对服务器上的内容产生任何作用结果;每次GET的内容都是相同的。POST则常用于发送一定的内容进行某些修改操作。(例如表单验证)2 大小不同...原创 2019-01-22 20:12:01 · 385 阅读 · 0 评论 -
网络:HTTP状态码
http状态码原创 2019-01-22 18:00:30 · 204 阅读 · 0 评论 -
网络:HTTP报文格式
报文格式首先报文的格式如下:其中空行用于区分报文首部和报文主体内容,是由一个回车符和一个换行符组成。中间使用CR+LF的空行区分(\r\n)CR代表回车LF代表换行无论是请求报文还是响应报文都需要有报文首部,当然报文主体有的请求报文是没有的。HTTP请求报文主要由请求行、请求头部、请求正文3部分组成。1,请求行由3部分组成,分别为:请求方法、URL(见备注1)以...原创 2019-01-22 17:54:26 · 562 阅读 · 0 评论 -
3.浏览器输入www.baidu.com到显示主页的全过程
1、客户端浏览器通过DNS解析到www.baidu.com的IP地址202.108.22.5,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到202.108.22.5,然后通过TCP进行封装数据包,输入到网络层。 2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器...原创 2018-09-12 14:13:49 · 2812 阅读 · 0 评论 -
TCP核心概念-慢启动,ssthresh,拥塞避免,公平性的真实含义
前言本文主要阐述TCP拥塞控制中ssthresh的来历以及为什么拥塞避免探测到丢包的时候,ssthresh会被设置为当前窗口的一半。进入证实内容之前,不得不再次吐槽!目前在网上搜的,任何资料上看的,甚至RFC上,都没有讲明白到底什么是ssthresh,它的值有什么讲究,几乎所有的资料都是在说,如果窗口大于ssthresh,那么就执行线性增窗的拥塞避免阶段,否则执行慢启动...这让几乎所有人记...原创 2018-07-06 17:57:29 · 1160 阅读 · 0 评论 -
4.HTTPS与HTTP的区别
HTTP的弊端1)通过明文(不加密)传输,内容可能会遭到窃听。2)不验证通信方的身份,因此有可能遭到伪装(拒绝服务型攻击(海量请求下的DOS攻击))。3)无法验证报文的完整性,所以有可能已遭篡改。(中间人攻击(请求或者响应在传输途中,遭攻击者拦截并篡改内容))因此:HTTP+加密+认证+完整性保护=HTTPSHTTPS和HTTP的区别主要如下:1)HTTPS 不是一种新的...原创 2018-09-13 15:07:37 · 712 阅读 · 0 评论 -
1.Ping 的实现协议及原理
Ping命令用ICMP实现的,ICMP是Internet控制消息协议,用于IP主机,路由器之间传递消息。控制消息是指网络通不通,主机是否可达,路由器是否可用等网络本身的消息,这些控制消息并不传输用户数据。 Ping的原理是:向指定IP发送一定长度的数据包,按照约定,若指定IP存在的话,会返回同样大小的数据包,若没有在特定时间返回就是超时,就认为指定IP不存在。但是由于防火墙会屏蔽ICMP协...原创 2018-09-11 09:28:47 · 3568 阅读 · 0 评论 -
6.OSI七层网络模型与TCP/IP四层网络模型
下图是TCP/IP与OSI参考模型的对应关系:为了标识通信实体中进行通信的进程,TCP/IP协议提出了协议端口(protocol Port)的概念。端口是一种抽象的网络结构(包括一些数据结构和I/O缓冲区)。应用程序通过系统调用与某端口号建立连接后(binding),传输层传给该端口的数据都被相应的程序接收,相应程序发送给传输层的据都通过该端口输出。1.物理层 规定了如何为网络通...原创 2018-10-11 22:51:17 · 205 阅读 · 0 评论 -
5.TCP和UDP的区别
定义:TCP(Transmission ControlProtocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,完成第四层传输层所指定的功能。UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系...原创 2018-10-15 23:17:02 · 339 阅读 · 0 评论 -
TCP超时重传
基于重传超时需面临的对大问题就是:这个时间阈值是多少?也就是要等待多久,我才能判定发出去的包真的丢失了,我要进行重传操作了。换句话说,这个时间我该设置多大?...原创 2018-10-16 21:48:42 · 264 阅读 · 0 评论 -
远程抓取Linux服务器上的数据包
首先:准备工作,按照安装说明,安装以下工具:SSH工具 V3.2.9 官方版 / SSH工具下载 (Linux服务器抓包工具)Wireshark (抓包工具,在此主要用于分析通过SSH工具发送指令所抓的数据包文件分析) 其次,进入正题,开始抓包:第一步:打开安装好的SSH文件客户端,如图: 第二步:点击电脑图标,设置相关连接服务器的参数,如图: 第三步:...原创 2018-12-11 14:54:04 · 4071 阅读 · 1 评论 -
网络:IP路由流程
TCP/IP协议簇是目前互联网应用最广的协议栈,谈到TCP/IP协议栈就不能不讲一讲IP路由的问题。因为在我们使用的网络通信中几乎每时每刻都在发生着IP路由的事件。当你在网络世界中还是一位新手的时候,你也许认为设备之间实现IP路由所需的仅仅是一台设备的IP地址而已,如果你真的这样认为那就错了。每台设备在进行IP路由的时候除了必需的IP地址外还需要很多其他信息来完成数据的封装!我将通过以下网络...原创 2019-01-24 14:56:40 · 1000 阅读 · 0 评论 -
网络:IP协议与寻址
TCP/IP协议族中最核心的协议,提供不可靠、无连接的数据报传输服务。·不可靠:不能保证IP数据报能成功送达。·无连接:并不维护后续数据报的状态信息,每个数据报的处理都是相互独立。数据报可能不会按照发送顺序接收。同一站点向另一站点发送的多个数据报可能经过不同的路由到达。帧格式IP数据报格式如下。IP包头字段说明版本:4位,指定IP协...原创 2019-01-24 15:30:41 · 622 阅读 · 0 评论 -
网络:TCP/IP各层的协议
教程书上虽然介绍了这些协议,但是就单个协议分别介绍的,很容易忘了这个协议属于那一层,以及属于底层哪个协议。上图TCP/IP各层的协议很多,一张图就可以记住了。应用层协议0. 运行 在TCP\UDP之间NFS,Network FileSystem。顾名思义,网络文件系统,即通过网络,对在不同主机上的文件进行共享。1. 运行在TCP协议之上1、POP3,全名为“Post...原创 2019-01-24 16:33:50 · 714 阅读 · 0 评论 -
网络:浏览器静态资源缓存机制
一、前言为什么需要缓存?缓存可以说是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。对于一个数据请求来说,可以分为发起网络请求、后端处理、浏览器响应三个步骤。浏览器缓存可以帮助我们在第一和第三步骤中优化性能。比如说直接使用缓存而不发起请求(强缓存),或者发起了请求但后端存储的数据和前...原创 2019-01-25 10:18:48 · 1150 阅读 · 0 评论 -
网络:各种网络攻击
在了解分布式拒绝服务攻击的原理之前,先要了解以下两个关键的基础原理1.TCP饿死:UDP这种传输方式不会控制自己在通信通道里的流量,可理解为不讲道理的人。他们来到了一个热闹地区的KFC中,但是他们不买东西只排队将所有食物的价格都问一遍,占满所有的座位和过道。而常规的TCP服务通过自己的弹窗机制来控制流量,好比讲道理的人,座位被占满了,TCP自然会离开KFC导致正常的服务不能进行。最终的结果...原创 2019-01-25 10:42:33 · 3397 阅读 · 0 评论 -
网络:url?uri?
平时会经常接触到URL,他就是我们访问web的一个字符串地址,那么URI是什么呢?他们是什么关系呢?先看看官方的解释:URL:uniform resource location 统一资源定位符URI:uniform resource identifier 统一资源标识符这也就是说,URI是一种资源的标识;而URL也是一种URI,也是一种资源的标识,但它也指明了如何定位Locate到...原创 2019-01-22 17:37:39 · 178 阅读 · 0 评论 -
网络:HTTP1.1和HTTP2区别
今天,HTTP 1.1 已经变成互联网中主要的协议。但是在 HTTP 协议诞生初期却被认为是简单直接的协议。1996 年在 RFC 1945 中定义了 HTTP 1.0 规范,仅 60 页,到 1999 年在 RFC 2616 定义了HTTP 1.1,增长到了 176 页。但是,随着 web 技术的飞速发展。 HTTP 1.1 已经无法满足用户对性能的要求,此后 Google 推出协议 SPDY...原创 2019-08-19 23:20:54 · 1276 阅读 · 0 评论