• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

七. 计算机网络部分

TCP 有哪些状态

image

TCP 和 和 UDP

TCP协议:

在使用TCP协议之前,必须建立TCP连接,形成数据传输通道。

传输前采用“三次握手”方式,点对点通信可靠。

TCP通信的两个应用进程:客户端和服务器端。

在连接中可以传输大量的数据。

传输后需要释放已建立的连接,效率很低。

UDP协议:

将数据、源和目的地封装成数据包,不需要任何连接。

每个数据报的大小限制为64K。

无论发送方是否准备好,接收方都不确认收到,所以不可靠。

可以广播发送。

发送数据结束不需要释放资源,所以成本低,速度快。

三次握手、四次挥手。为啥不是三次不是两次,三次握手的HTTP,HTTPS,TCP/IP,套接字通信,三次握手的四波过程

image

我们假设A和B是交流的双方。我理解握手其实就是交流,发信息就是握手。

第一次握手:A打电话给B说,你能听到我说话吗?

第二次握手:B收到A的信息,然后对A说,我能听到你。你能听到我吗?

三次握手:A收到B的消息,然后说好的,我要给你发消息了!

注意:HTTP是基于TCP协议的,所以每次都是客户端发出请求,服务器回复,但是TCP也可以向其他应用层提供服务,也就是有可能A和B建立链接后,任何人都可以先开始通信。如果两次,那么B不能确定B的消息A是否能收到,所以如果B先说话,后面的A可能收不到,就会出现问题。如果是四次,那就浪费了,因为三次之后,就能保证A能给B发消息,A能收到B发来的消息;B可以向A发送消息,并且B可以从A接收消息。四次挥手

image

A:“哎,我不说了(FIN)。”A-FIN_WAIT1

B:“我知道(ACK)。等等,我还没说完最后一句话。巴拉……”B-CLOSE_WAIT | A-FIN_WAIT2

B:“好了,就这些了,我也不说了(FIN)。”最后确认

A:“我明白了(ACK)。”a-时间等待| B-关闭

等待2MSL以确保B收到消息,或者再次说“我知道”,A-关闭

这样,挥四下,就可以把要说的话说完,甲乙双方都知道自己没什么可说的,对方也没什么可说的,然后挂断(断开链接)。Socket

使用Socket开发网络应用程序早已被广泛采用,以至于已经成为现实。

标准上。

网络上的唯一IP地址和端口号可以组合起来形成唯一标识符。

识别插座。

通讯两端都要有Socket,这是两台机器通讯的终点。

通信实际上是套接字之间的通信。

Socket允许程序将网络连接视为一个流,数据通过IO在两个套接字之间传输。

一般发起通信的应用是客户端,等待通信请求的服务器是服务端。

插座分类:

流套接字:使用TCP提供可靠的字节流服务。

数据报套接字:HTTPS和HTTP的区别,使用UDP来提供“尽力而为”的数据报服务。

1.https协议需要在ca申请证书,一般免费的证书很少,所以需要一定的费用。


2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
HTTP1.0和HTTP1.1的一些区别 HTTPS 2.0
1、缓存处理,在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。
2、带宽优化及网络连接的使用,HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。 错误通知的管理,在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。
3、Host头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。
4、长连接,HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点
浏览器输入一个 URL 按下回车网络传输的流程
1、浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址。
2、解析出ip地址后,根据IP地址和默认端口,和服务器建立TCP连接。
3、浏览器发出读取文件(URL域名后面的部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的4、第三个报文传送给服务器。
5、服务器对浏览器请求作出响应,并把对应的html文本发送给浏览器。
6、释放TCP链接。
7、浏览器将该html文本显示内容。
5、问的深一点的可能涉及到网络架构,每层有什么协议,FTP 相关原理,例:TCP 建立连接后,发包频率是怎么样的?
Link to comment
Share on other sites