常见面试题及解答|计算机网络

七层模型

Q:计算机网络分哪几层

网络传输、会话表示
五层模型:物理层、数据链路层、网络层、传输层、应用层
七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP分层(4层):网络接口层、网际层、传输层、应用层。
物理层:中继器、集线器、网关。
数据链路层:MAC、 网桥、交换机
网络层:IP、ICMP、ARP、路由器
传输层:TCP、UDP
应用层:HTTP、DNS、FTP

Q:计算机网络七层每层的作用

物理层:建立维护物理链路连接,提供比特流服务,规定了网络连接时所需插件的规格尺寸,定义电压、接口、线缆标准等。数据的单位是比特
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:寻址和路由选择(包PackeT)
传输层:建立主机端到端连接(段Segment)
会话层:建立、维护、管理会话
表示层:处理数据格式、数据加密等
应用层:提供应用程序集的通信
封装数据:
应用层数据, +TCP头, +IP头, +LLC头, +MAC头

TCP/IP

Q:三次握手

第一次握手:客户端发送消息同步请求SYN,序列号syn=x, 并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务端收到消息同步请求,回复确认消息ACK,确认号x+1
同时向客户端发送消息请求SYN,序列号y(两个一起所以少一次)
此时服务器进入SYN_RECV状态;
第三次握手:客户端收到,回复请求确认消息ACK,确认号y+1,发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。
同步SYN:连接建立时用于同步序号。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0。
确认ACK:占1位,仅当ACK=1时,确认号字段才有效
终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接
序列号seq:占4个字节,用来标记数据段的顺序。
确认号ack:占4个字节,确认号指的是期望接收到下一个字节的编号;因此序列号+1即为确认号。

三次握手过程

Q:如果已经建立了连接,但是客户端突然出现故障了怎么办?

TCP还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒钟发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。

Q:四次挥手

第一次挥手:主动关闭方,发送一个FIN结束请求,表示我不会再给你发送数据了。(没有收到确认报文的,仍会重发,而且还可以接收)
第二次挥手:被动关闭方收到后,发送结束应答ACK,确认序列号+1
第三次挥手:被动关闭方发送一个FIN结束请求,表示我的也发送完了,不会再给你发送数据了
第四次挥手:主动关闭方收到FIN后,回复一个ACK应答,至此,完成四次挥手

Q:为什么连接是三次挥手,关闭是四次挥手

因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。
等我所有要发的报文都发完了,我才能请求关闭,所以需要四次握手

Q:TCP和UDP的区别

TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。
区别:
1.TCP面向连接(如打电话要先拨号建立连接),UDP是无连接的,发送之前不需要建立连接
2.TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
3.UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5.TCP对系统资源要求较多,UDP对系统资源要求较少。
6.若通信数据完整性需让位与通信实时性,则应该选用 TCP 协议(如文件传输、重要状态的更新等);反之,则使用 UDP 协议(如视频传输、实时通信等)。
7.UDP:DNS SNMP
8.TCP面向字节流,UTP面向数据包;

Q:哪些协议用了TCP,哪些用了UDP

(1)FTP:定义了文件传输协议,使用21端口。
(2)Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
(3)SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
(4)POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。
UDP对应的协议:
(1)DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
(2)SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
(3)TFTP(Trival File Tran敏感词er Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。

Q:UDP比TCP的优势

1.网速的提升给UDP的稳定性提供可靠网络保障,丢包率很低,如果使用应用层重传,能够确保传输的可靠性。
2.TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程,由于TCP内置的系统协议栈中,极难对其进行改进。
3.采用TCP,一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送,延时会越来越大,基于UDP对实时性要求较为严格的情况下,采用自定义重传机制,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成的影响

Q:TCP可靠性的保证

1.序号
TCP首部的序号字段用来保证数据能有序提交给应用层,TCP把数据看成无结构的有序的字节流。本报文段所发送的数据的第一个字节序号
2.确认
TCP首部的确认号是期望收到对方的下一个报文段的数据的第一个字节的序号
3.重传
超时重传
冗余ACK重传
4.流量控制
TCP采用大小可变的滑动窗口进行流量控制,窗口大小的单位是字节。
发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。
窗口
接受窗口rwnd,接收端缓冲区大小。接收端将此窗口值放在 TCP 报文的首部中的窗口字段,传送给发送端。
拥塞窗口cwnd,发送缓冲区大小。
发送窗口swnd, 发送窗口的上限值 = Min [rwnd, cwnd]
5.拥塞控制
防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提,就是网络能承受现有的网络负荷
6.流量控制
控制发送端发送数据的速率,以便使接收端来得及接受

Q:IP协议,IPV6

为了实现各主机间的通信,每台主机都必须有一个唯一的网络地址。这个地址就叫做IP地址。
IP协议功能
(1)根据对方的IP地址,寻找最佳路径传输信息;
(2)传递服务:
① 不可靠(IP协议只是尽自己最大努力去传输数据包),可靠性由上层协议提供(TCP协议);
② 无连接(事先不建立会话),不维护任何关于后续数据报的信息;
(3)数据包的分片和重组。
IP地址空间危机
IPV4地址共有32位、总计40多亿个。
但导致IP地址耗尽的主要原因不在于IP地址的长度、而在于IP地址的结构、也就是分为网路号和主机号(一个C类地址有256个地址、但可能只连了几台主机)
在起初的IP分配上、也出现了很大程度的浪费、很多A类地址被分配给了一些机构和公司
17.0.0.0/8:苹果
18.0.0.0/8:MIT
19.0.0.0/8:福特汽车
而一个A类地址、就可以占有一千六百多万个实体IP。
IPv6的地址结构中除了把32位地址空间扩展到128位、一共将会有2^128≈340万亿个地址
取消了广播地址
简化的包头
IPv4则包含12个字段、长度在无选项时为20字节、最高可达60个字节。
IPv6包含8个字段。
使用固定格式的包头减少了需要检查和处理的字段数量、提高了路由效率。
包头长度统一、不需要包头长度这个字段
去掉了校验和、将其交由上层协议负责。
加入了IP身份验证头和数据加密

拥塞控制

Q:什么是慢启动

发送放有一个拥塞窗口cwnd,大小取决于网络的拥塞程度,并且动态变化。慢开始算法的思路是,不要一开始就发送大量的数据,先探测一下网络的拥塞成都,由小到大逐渐加大拥塞窗口
一次传输后,拥塞窗口就加倍,就是乘法增加,
后面拥塞避免算法是每经过一个往返,拥塞窗口+1,加法增加
还需要设置一个慢开始门限ssthresh
拥塞窗口<门限,用慢开始
拥塞窗口=门限,慢开始、拥塞避免任意
拥塞窗口>门限,拥塞避免
无论是慢开始阶段还是拥塞避免阶段,只有发送方判断网络出现拥塞(根据就是没有收到确认,就当做拥塞来处理),把慢开始门限设置为出现拥塞时发送窗口大小的一半,然后把拥塞窗口设置为1,执行慢开始算法。重新开始

在这里插入图片描述

Q:什么是快重传和快恢复

快重传是接收方收到一个失序的报文后就立即发出重复确认(使发送方及早知道有报文没有到达)。发送方一连收到三个重复确认就应当立即重传对方未收到的报文段,而不必继续等待重传计时器时间
发送发收到三个重复确认时,把门阀减半,把拥塞窗口设置为门阀的一半,然后执行拥塞避免算法。

Q:流量控制

如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。TCP的流量控制是利用滑动窗口机制实现的,接收方在返回的ACK中会包含自己的接收窗口的大小,以控制发送方的数据发送。

Q:DNS是基于TCP还是UDP的

DNS在辅助域名服务器向主域名服务器查询的时候(一般3小时查一次数据是否变动),进行区域传输,区域传送使用TCP,因为数据量大,超过512字节(UDP报文的最大长度是512字节),而且TCP可靠性高。
而客户端向DNS服务器请求查询域名的时候,一般范湖内容不超过512字节,用UDP传世即可,不用经过TCP三次握手,这样DNS服务器负载更低,响应更快

socket编程

Q:socket编程

socket是TCP/IP编程的接口封装(API),是一组接口,共程序员做网络开发所用的接口。有socket()函数、bind()、listen()、connect()、accept()、read()、write()、close()函数。
Socket不是协议
TCP过程:
客户端:
1 创建socket
2 绑定ip、端口号到socket字
3 连接服务器,connect()
4 收发数据,send()、recv()
5 关闭连接
服务器端:
1 创建socket字
2 设置socket属性
3 绑定ip与端口号
4 开启监听,listen()
5 接受发送端的连接accept()
6 收发数据send()、recv()
7 关闭网络连接
8 关闭监听
对应关系:
客户端的connect()指向服务器端的accept()
客户端、服务器端的send()/recv()是双向箭头的关系。
UDP过程:


在这里插入图片描述

Q:socket与Http区别

socket是TCP/IP编程的接口封装(API),是一组接口,共程序员做网络开发所用的接口。有socket()函数、bind()、listen()、connect()、accept()、read()、write()、close()函数。
Socket不是协议
HTTP 协议:超文本传输协议,对应于应用层,用于如何封装数据,规定数据传输的格式

Q:在socket传输文件中链接断开了,怎么继续传输文件。引申到了如何断点续传

Q:socket长连接断开了怎么办

HTTP/HTTPS

Q:Https

http协议的缺点
1.通信使用明文,内容可能被窃听(重要密码泄露)
2.不验证通信方身份,有可能遭遇伪装(跨站点请求伪造)
3.无法证明报文的完整性,有可能已遭篡改(运营商劫持)
https是在http协议基础上加入加密处理和认证机制以及完整性保护,
即http+加密+认证+完整性保护=https
https并非应用层的一种新协议,只是http通信接口部分用ssl/tls协议代替而已。通常http直接和tcp通信,当使用ssl时则演变成先和ssl通信,再由ssl和tcp通信。
所谓https,其实就是身披ssl协议这层外壳的http
SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”, 位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持
[图片上传失败...(image-7bb0dd-1600357393587)]

Q:https请求过程

客户端发起https请求
服务端要安装证书,把这个证书发给客户端
客户端验证公钥是否有效,从操作系统内置的证书做比较,通过,就把里面的证书取出来。
客户端生成一个随机数,然后用公钥加密后传给服务端
服务端收到使用公钥加密的内容,在服务端用私钥解密后获得随机数,
服务端和客户端在根据一定算法算出一个对称秘钥,之后数据用这个加密
1、客户端发起HTTPS请求
用户在浏览器里输入一个https网址,然后连接到server的443端口。
2、服务端的配置
采用HTTPS协议的服务器必须要有一套数字证书(服务器需要安装这个证书,阿里云,腾讯云可以买),可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。
3、传送证书,服务端把证书发给客户端
这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。
4、客户端解析证书
这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。
(1)首先浏览器读取证书中的证书所有者、有效期等信息进行一一校验
(2)浏览器开始查找操作系统中已内置的受信任的证书发布机构CA,与服务器发来的证书中的颁发者CA比对,用于校验证书是否为合法机构颁发
(3)如果找不到,浏览器就会报错,说明服务器发来的证书是不可信任的。
(4)如果找到,那么浏览器就会从操作系统中取出颁发者CA 的公钥(多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥),然后对服务器发来的证书里面的签名进行解密
(5)浏览器使用相同的hash算法计算出服务器发来的证书的hash值,将这个计算的hash值与证书中签名做对比
(6)对比结果一致,则证明服务器发来的证书合法,没有被冒充
(7)此时浏览器就可以读取证书中的公钥,用于后续加密了
5、传送加密信息
这部分传送的是用证书加密后的随机值(私钥),目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。
6、服务端解密信息
服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密
7、传输加密后的信息
这部分信息是服务端用私钥加密后的信息,可以在客户端被还原。
8、客户端解密信息
客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

Q:HTTP与HTTPs的区别

1.https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2.http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4.http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

Q:HTTPs能抓包吗

Q:http1.0,1.1,2.0区别

1.HTTP1.0需要使用keep-alive参数来告知服务器要建立一个长连接,而HTTP1.1默认支持长连接
2.HTTP1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,返回100,否则返回401
3.HTTP1.0没有host域,HTTP1.1才支持这个参数
4.HTTP2.0使用了多路复用技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大好几个数量级
5.HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输会更快
6.HTTP2.0,服务器会顺便把一些客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务端获取。

Q:HTTP1.1版本新特性

a、默认持久连接节省通信量,只要客户端服务端任意一端没有明确提出断开TCP连接,就一直保持连接,可以发送多次HTTP请求
b、管线化,客户端可以同时发出多个HTTP请求,而不用一个个等待响应
c、断点续传
实际上就是利用HTTP消息头使用分块传输编码,将实体主体分块传输。
HTTP2.0与HTTP 1.1相比,主要区别包括:
1.HTTP/2采用二进制格式而非文本格式,01健壮
2.HTTP/2是完全多路复用的,而非有序并阻塞的——只需一个连接即可实现并行
3.使用报头压缩,HTTP/2降低了开销
4.HTTP/2让服务器可以将响应主动“推送”到客户端缓存中

Q:HTTP请求头有什么内容,分别代表什么意思

请求报文包含三部分:
a、请求行:包含请求方法(GET、POST)、URI(/index.htm)、HTTP版本信息(HTTP/1.1)
b、请求头部,关键字:值 组成
空行,通知服务器以下不再有请求头
c、请求数据body(GET方法没有)
响应报文包含三部分:
a、状态行:包含HTTP版本、状态码(200,404)、状态码的原因短语
b、响应头部
空行
c、响应数据body
请求头内容
a、通用首部字段(请求报文与响应报文都会使用的首部字段)
Date:创建报文时间
Connection:连接的管理 keep-alive
Cache-Control:缓存的工作机制
Transfer-Encoding:报文主体的传输编码方式,chunked报文分块传输
b、请求首部字段(请求报文会使用的首部字段)
Host:请求资源所在服务器
Accept:可处理的媒体类型,text/html
Accept-Charset:可接收的字符集
Accept-Encoding:可接受的内容编码
Accept-Language:可接受的自然语言,zh-CN
c、响应首部字段(响应报文会使用的首部字段)
Accept-Ranges:可接受的字节范围
Location:令客户端重新定向到的URI
Server:HTTP服务器的安装信息
d、实体首部字段(请求报文与响应报文的的实体部分使用的首部字段)
Allow:资源可支持的HTTP方法
Content-Type:实体主类的类型 txt/html,charset= utf-8
Content-Encoding:实体主体适用的编码方式 gzip
Content-Language:实体主体的自然语言
Content-Length:实体主体的的字节数
Content-Range:实体主体的位置范围,一般用于发出部分请求时使用


在这里插入图片描述

Q:GET、POST区别

1.GET提交,请求的数据会附在URL之后,POST提交:把提交的数据放置在是HTTP包的包体
2.GET:特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。
POST:由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置。
3.POST的安全性要比GET的安全性高

Q:HTTP常见状态代码

200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
403 Forbidden:服务器收到请求,但是拒绝提供服务。
404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
500 Internal Server Error:服务器发生不可预期的错误。
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

Q:输入url发生了什么

1.域名解析
浏览器获得URL地址,先从浏览器缓存查询,没有找到读本地host文件,美找到在本地DNS服务器查找,再没找到请求根DNS服务器,一级一级往下找
2.TCP三次握手
3.建立TCP连接后发起HTTP请求
HTTP请求又四部分组成:请求行、请求头、空行、消息体,服务端接收到请求后,解析HTTP请求,返回衣蛾HTTP响应
4.服务器响应HTTP请求
状态行、响应头、空行、消息体
5.浏览器解析HTML代码,浏览器渲染并呈现给用户
6.TCP四次握手

1.域名解析:浏览器获得URL地址,向操作系统请求该URL对应的IP地址,操作系统查询DNS(首先查询本地HOST文件,没有查询网络)获得对应的IP地址。
端口号就相当于银行的窗口,不同的窗口负责不同的服务。
2.确认好IP和端口号,就可以向IP地址对应的服务器的端口号发起TCP连接请求
3.服务器接收到TCP连接请求后,回复可以连接请求
4.浏览器收到后,再向服务器发送数据包,表示三次握手结束
5.三次握手成功后,开始通讯,根据HTTP协议的要求,组织一个请求的数据包,里面包含请求的资源路径、你的身份信息等,例如,www.abc.com/images/1/表示的资源路径是images/1/,发送后,服务器响应请求,将数据返回给浏览器,数据可以是根据HTML协议组织的网页,里面包含页面的布局、文字等等,也可以是图片或者脚本程序等,如果资源路径指定的资源不存在,服务器就会返回404错误,如果返回的是一个页面,则根据页面里的一些外链URL地址,重复上述步骤,再次获取
6.浏览器显示

加密算法

Q:加密算法

对称加密:加密和解密过程使用同一个秘钥
非对称加密:使用公钥和私钥两个不同的秘钥
可以用公钥加密,私钥解密
也可以私钥加密,公钥解密
非对称加密安全性更好,但是对称加密优势是简单,加密时间短
对称算法
密钥管理:比较难,不适合互联网,一般用于内部系统
安全性:中
加密速度:快好 几个数量级 (软件加解密速度至少快 100 倍,每秒可以加解密数 M 比特 数据),适合大数据量的加解密处理
非对称算法
密钥管理:密钥容易管理
安全性:高
加密速度:比较慢,适合 小数据量 加解密或数据签名

Q:知道哪些加密算法

对称加密:DES,3DES,AES
非对称加密:RSA,DSA
散列算法:SHA-1,MD5

Q:MD5

是对一段信息产生信息摘要,防止被篡改
无论多长的输入,MD5都会输出长度为128bits的一个串

Q:SHA1

也是一种消息摘要算法,比MD5安全性更强,
MD5和SHA1不可逆,用于检查文件完整性及数字签名

Q:AES/DES/3DES算法

AES、DES、3DES 都是 对称 的 块加密算法,加解密 的过程是 可逆的。

Q:RSA

RSA 加密算法是目前最有影响力的 公钥加密算法,并且被普遍认为是目前 最优秀的公钥方案 之一。RSA 是第一个能同时用于 加密 和 数字签名 的算法,它能够 抵抗 到目前为止已知的 所有密码攻击

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342