TCP/IP协议

一、定义:

TCP/IP 是供已连接因特网的计算机进行通信的通信协议。

TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / Internet Protocol)。

TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。

二、TCP/IP中包含一系列用于处理数据的通信协议:

  • TCP (传输控制协议) - 应用程序之间通信

    • 固定连接的
  • 当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信

    这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。

    UDP 和 TCP 很相似,但是更简单,同时可靠性低于 TCP。

  • UDP (用户数据包协议) - 应用程序之间的简单通信

  • IP (网际协议) - 计算机之间的通信

    • 当一个 IP 包从一台计算机被发送,它会到达一个 IP 路由器。

      IP 路由器负责将这个包路由至它的目的地,直接地或者通过其他的路由器。

      在一个相同的通信中,一个包所经由的路径可能会和其他的包不同。而路由器负责根据通信量、网络中的错误或者其他参数来进行正确地寻址。

  • ICMP (因特网消息控制协议) - 针对错误和状态

  • DHCP (动态主机配置协议) - 针对动态寻址

  • TCP/IP 意味着 TCP 和 IP 在一起协同工作。

    TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信。

    IP 负责计算机之间的通信。

    TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们。

    IP 负责将包发送至接受者。

三、TCP/IP是不同通信协议的大结合

  1. TCP - 传输控制协议

    • TCP 用于从应用程序到网络的数据传输控制。

      TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。

  2. IP - 网际控制协议

    • IP 负责计算机之间的通信。

      IP 负责在因特网上发送和接收数据包。

  3. HTTP - 超文本控制协议

    • HTTP 负责 web 服务器与 web 浏览器之间的通信。

      HTTP 用于从 web 客户端(浏览器)向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容(网页)。

  4. HTTPS - 安全的HTTP

    • HTTPS 负责在 web 服务器和 web 浏览器之间的安全通信。

      作为有代表性的应用,HTTPS 会用于处理信用卡交易和其他的敏感数据。

  5. SSL -安全套接字

    • SSL 协议用于为安全数据传输加密数据。
  6. SMTP - 简单邮件传输协议

    • SMTP 用于电子邮件的传输。
  7. FTP - 文件传输协议

    • FTP 负责计算机之间的文件传输。
  8. ICMP - 因特网消息控制协议

    ICMP 负责网络中的错误处理。

  9. PPTP - 点对点隧道协议

    PPTP 用于私人网络之间的连接(隧道)。

四、三次握手和四次挥手:

Alt ttt

1.三次握手过程

  • 第一次握手:当传输的数据到达尾部时,host1向host2发送SYN标志位,ACK=0的数据包给host2,并随机产生一个sequence1序列,当host2接收到这个数据后,host2由SYN=1可知客户端是想要建立连接。
  • 第二次握手:host2要对客户端的联机进行确认,向host1发送应答号ACK=1、SYN=1、确认号是sequence1+1,同时产生一个随机序列sequence2,这样就告诉host1可以进行连接;
  • 第三次握手:host收到数据检查是否为sequence1+2,以及ACK值是否为1,如果符合host1会发送ACK=1.sequence2+2告诉Host2请求已建立,可以进行连接。

2.四次挥手过程

  • 第一次挥手:数据传输到达尾部,host1向host2发送FIN=1标志位,通知host2要断开连接。
  • 第二次挥手:host2收到host1发来的FIN=1标志后,host2不会立刻向host1发送FIN=1的请求关闭信息,而是先向host1发送一个ACK=1的应答信息,表示:你得请求我已收到,但我的有的数据可能还没有结束传送,你等一下。
  • 第三次挥手:host2数据传输完成,向host1发送FIN=1.
  • 第四次挥手:host1 收到FIN=1后,host1担心网络不稳定,host2不知道他要断开连接,向host2发送ACK=1确认信息,把自己设置为TIME_WAIT状态并启动定时器,如果host2没有收到ACK,host2端的定时器到达后会要Host1重新发送ACK,当host2收到确认信息后,host2断开连接。host11等待2MLS,host没有再请求发送ACK,知道host2已经收到ACK,此时host1关闭自己的连接。