计算机网络 | 青训营笔记

66 阅读3分钟

这是我参与「第五届青训营 」笔记创作活动的第15天。

TCP/IP协议有几层

TCP/IP协议是指可以在不同的网络间实现信息数据传输的协议簇,它包含了很多的协议,并不只是局限于TCP/IP协议,它分为了四层。

  1. 应用层:在这一层中,为应用程序进程提供服务,它会根据不同应用程序的需要去选择应用层对应的协议,比如说邮件传输应用使用了SMTP协议、万维网应用使用了HTTP协议。
  2. 传输层/运输层,在这一层中主要起作用的是TCP或者UDP协议,它负责数据包的加工、收发等的操作。
  3. 网络层,在这一层中,进行网络连接的建立和IP的地址的寻址等,主要起作用的是IP协议。
  4. 数据链路层,它是传输数据的物理媒介,也有网络层提供了一条准确无误的通道。

TCP三次握手

TCP是传输层的一个面向连接的安全协议。 三次握手的机制是为了保证建立一个安全可靠的连接,第一次握手是由客户端发起的,它会向服务器端发送一个tcp报文,tcp报文中的SY N标志位为1,表示建立一个新的连接,报文还会有一个seq的序列号(x),它是用来标识该报文段的,服务器端收到报文后就知道客户端要与我建立一个新的连接,于是服务器端就向客户端返回一段tcp报文,tcp报文中的ACK位为1,SYN位也为1,表示确认客户端发起的第一次连接请求,报文还会有一个seq的序列号(y)和ack确认序列号(x+1)。

两次握手后,对于客户端来说已经知道我既能给服务器端发消息,也可以收到服务器端回应的消息,但对于服务器端来说,我只知道我可以接受到客户端发送的信息,但我不知道客户端是否可以接收到我发送的信息,所以有了第三次握手,第三次握手就是在客户端收到服务器端发送的响应报文之后,还要再向服务器端发送一个tcp报文,报文中ACK位置为1,还有seq的序列号为x + 1,ack的确认序列好为y + 1。

通过以上三次握手,不管是服务器端还是客户端都知道了我既能给对方发送消息,也能收到对方发送的消息,这个连接就安全的建立了。

TCP四次挥手

四次挥手的机制: 首先是客户端向服务器端发送一个tcp报文,tcp报文中FIN位为1,当服务器端收到这个报文时,它就知道客户端想要与我断开连接,但此时服务器端可能还没有准备好,可能还有一些数据没有传输完毕,它还要继续发送,所以此时对于服务器来说它只能进行一个消息的确认,它会给客户端返回一个tcp报文,tcp报文里面的ACK位为1,表示服务器端收到客户端请求释放连接的请求,过了一会,当服务器端做好了释放与客户端的连接的准备的时候,它就会再发送一个tcp报文,在这个tcp报文中的ACK位为1,FIN位为1,表示已经准备好释放连接了,当客户端收到这个报文的时候,也会向服务器端再发送一个tcp报文,报文中的ACK为1,表示接收到服务器准备好释放连接的信号。

经过四次挥手,双方都知道了对方已经做好了断开连接的准备,就可以断开连接了。