七层通讯

1563609616903.png

  • 从下图我们可以看到HTML属于应用层,TCP,UDP在第四层传输层,IP在第三层网络层。

1563609642321.png

UDP

  • IP 通过 IP 地址信息把数据包发送给指定的电脑,而 UDP通过端口号把数据包分发给正确的程序。
  • UDP不能保证数据可靠性,但是传输速度比较快。
  • 但是会存在数据包丢失,不知道如何把数据包组装成完整的文件的问题。

    TCP/IP

  • TCP/IP 一般泛指这些协议:TCP,IP,ICMP,UDP,TELNET.FTP,HTTP

  • TCP传输.png

一个完整的TCP建立过程:

一个完成的TCP过程.png
从上图我们看到

  • 建立连接阶段:通过三次握手建立服务器和客户端的连接
  • 传输数据阶段:通过重发机制,保证每个小的数据包都接受成功。
  • 断开连接阶段:通过四次握手完全断开服务器和客户端的连接。

    三次握手

    image.png
    过程:

  • 首先服务器B处在监听状态,等待客户端A的连接请求

  • A向B发送连接请求
  • B收到连接请求,如果同意,B向A发送同意连接
  • A收到B的同意连接,A向B发送确认连接
  • B收到A的确认连接,连接建立。

解释:

  • 很多人疑惑为什么要有第三次连接?第三次连接的作用是防止失效的连接请求发送到服务器,让服务器错误的打开连接。

    四次握手

    image.png
    过程:

  • A发送释放连接请求

  • B收到之后发出确认,这个时候TCP处于半关闭状态,服务器B能向客户端A发送请求,A不能向B发送请求。
  • 当B不需要连接时,发送释放请求。
  • A收到发出确认,进入 TIME-WAIT 状态,等待 2 MSL(最大报文存活时间)后释放连接。
  • B收到A的确认后释放连接

解释:

  • 客户端发送了连接释放请求之后,服务器收到了这个请求,就进入了 CLOSE-WAIT 状态。这个状态是为了让服务器端发送还未传送完毕的数据,传送完毕之后,服务器会发送连接释放报文

    总结

  • 计算机的地址就称为 IP 地址,访问任何网站实际上只是你的计算机向另一台计算机发送请求。

  • IP 负责把数据包送达目的主机
  • TCP 相比于 UDP,是一种可靠的、基于连接的协议
  • TCP 引入了数据包排序机制,用来保证把乱序的数据包组合成一个完整的文件。