TCP/IP协议族、HTTP的三次握手和四次挥手

190 阅读3分钟

通常使用的网络是在TCP/IP协议族的基础上运作的,和HTTP属于它内部的一个子集。

TCP/IP协议族:

TCP/IP协议族:

TCP/IP 按照层次从上至下分为四层:应用层,传输层,网络层,数据链路层。

1、应用层

作用: 应用层决定了向用户提供应用服务时通信的活动。eg.DNS、FTP、HTTP。

2、传输层

作用:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。eg.UDP、TCP。

3、 网络层

作用:网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径来到达对方的计算机,并把数据包传给对方。

4、链路层

作用:用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动,NIC及光纤等物理可见部分。

—————————————————————————————————————————

HTTP的操作过程

1、浏览器分析指向页面的URL。

2、浏览器向DNS系统请求解析域名所对应的服务器IP地址。

3、DNS系统解析出服务器的IP,并返回给主机。

4、浏览器与该服务器的进程建立TCP链接(三次握手,端口默认为80)

标志位:
SYN:表示连接请求
ACK:表示确认
FIN:  表示关闭连接
seq: 表示报文序号
ack: 表示确认序号

  • a、第一次握手:Click将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
  • b、第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack(number) = J + 1,随机产生一个值seq = K,并将该数据包发送给Client以确认连接请求,Server进去SYN_RCVD 状态。
  • c、第三次握手:Client收到确认后,检查ack是否为 J + 1,ACK是否为1,如果正确则将标志位ACK置为1,ack = K + 1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

5、浏览器发出HTTP请求,如GET/details/index.html

6、服务器收到请求并作出相应处理,把文件index.html发送给浏览器

7、释放TCP链接(四次挥手)

  • a、第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送。

  • b、第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1.

  • c、第三次挥手:Server发送一个FIN,用来关闭 Server到Client的数据传送。

  • d、第四次挥手:Client收到FIN后,接着发送一个ACK给Server,确认序号为收到序号+1。

8、浏览器解析index.html文件,将web页面显示出来。