IP协议和TCP协议详解

      最后更新:2022-07-24 05:43:44 手机定位技术交流文章

      详细的IP和TCP协议

      • IP协议
        • IP协议的特点
        • IPV4头部信息
        • IP分片
        • 重定向
        • IPV6头部结构
      • TCP协议
        • TCP协议的特点
        • TCP头部结构
        • 建立及关闭TCP连接
          • 异常终止连接
          • 异常终止连接
        • TCP超时重传
        • 拥塞控制

      IP协议

      IP协议的特点

      IP协议是TCP/IP协议家族背后的驱动力,它向最高级别提供无状态、无连接和不可靠的服务。
      无状态:两个IP通信不能同步传输的数据的状态信息,因此IP数据消息的传输、传输和接收是相互独立的,没有上下文关系。
      不连接:两个IP通信不能互相保持任何消息,因此,每当高级协议发送数据时,它需要清楚地指出对方的IP地址。
      不可靠:IP协议不能保证IP数据消息准确地到达接收机。发送者端的IP模块将通知顶层协议一旦检测到IP数据消息发送失败时.只发送ICMP错误信息(IP字节参数错误)。ICMP是一种用于检测网络连接的互联网控制协议,主要由错误消息和 ping查询组成。
      注意 ping 是应用程序, 不是协议.
      无状态的缺点:
      无法处理未编排和重复的IP数据报告.接收器的IP模块在接收完毕的IP数据消息后立即将数据发送到顶层协议中。 TCP等面向连接的协议可以自行处理未有序和重复的消息段,并以确保有序和正确的方式将内容传递到顶层协议中。
      注意,只有16位IP字节标识字段用于处理芯片和重新组织,而不是指定接收命令。

      IPV4头部信息

      IPV4头部结构

      IP分片

      当IP数据消息长于帧的MTU(最大传输单元)时,它由分割芯片传输。
      在传输端可能发生分离,在中间继电器路由器上可能发生分离,在传输过程中可能多次分离,但只有在最终目标机器上,这些芯片将重新组装为内核的IP模块。
      注:
      1.当IP数据消息被分成多个IP芯片时,每个IP芯片都有自己的IP头(20字节),其他芯片则设置,但最后一个没有设置MF(更多芯片)。
      只有第一个IP片段包含了ICMP头部的内容,因为它可以重新组织。 ICMP总部取决于报告的类型。

      重定向

      ICMP调用语句用于更新路由表。
      ICMP的数据部分重新分配到消息中,它向接收者提供两个信息:
      1.重新分配的IP数据消息的源IP地址。
      2.应使用的路由器的IP地址。
      然后接收主机可以根据这两个信息确定该路由器应该用于发送IP数据消息,从而导致转导,并更新路由表(更新路由表缓冲器而不是直接更新)

      IPV6头部结构

      • IPv6解决了IPV4地址不够用的问题,头部由40字节的固定头部和可变长的扩展头部组成
      • 此外,还增加了多播和流媒体功能,以提供网络中的多媒体内容质量的精确控制;
      • 介绍自动配置功能; 增加专门的网络安全功能.

      在这里插入图片描述

      TCP协议

      TCP协议的特点

      连接导向 、 字节流 、 可靠传输的三个特点.

      • TCP协议通信的双方必须先建立连接,然后才能开始数据的读写。且都要分片必要的内核资源。全双工。完成数据传输后,双方断开连接释放资源。
      • 基于流的。当发送端应用程序连续执行多个读取操作时,TCP模块首先将这些数据置入TCP发送缓冲区,当TCP模块真的开始发送数据时,在缓冲器中发送的数据可以被包含在一个或多个TCP消息字段中。因此,TCP模块发出的TCP消息字段与应用程序执行的编写数之间没有固定数量关系。
      • UDP基于数据报则不是。发送端每次执行一个写字操作,UDP模块将它包入UDP数据消息中。接收者必须及时执行读取操作,否则就会丢包。(在慢服务器上发生)。如果用户没有足够的用户缓冲器读取UDP数据,数据将被截断。
      • TCP传输是可靠的。 首先,使用响应机制,每个发送的邮件必须在发送成功之前从接收者接收响应。 第二,使用超时再传输机制,发送者在发送TCP消息后启动计时器,如果响应在指定的时间内未收到,则再发送消息段。

      TCP头部结构

      TCP头条长60字节,包含20字节的固定部分和40字节的任意部分
      在这里插入图片描述

      建立及关闭TCP连接

      三个手建立连接,四个手关闭连接。

      • 使用三波确保双方可以发送自己的初始序列号,而另一方则确认自己的序列号。
      • 使用四波是因为当一个端开始关闭连接时,另一方面,可能还有尚未发送的数据,因此,ACK和FIN需要关闭,以便进行连接分开发。这个端已经关闭了连接,但允许继续接收对方的资料,直到另一方也发送结束消息关闭连接。TCP连接的这种状态被称为半连接状态。
        注意:当read系统调用返回0的时候,说明对方已经关闭连接。(还有其他的检测方法)
        您可以使用netstat命令查看TCP连接状态。
        在这里插入图片描述
      • TIME-WAIT状态是当客户端收到服务端的结束报文(FIN)之后客户端处于的状态,在这个状态里,客户端连接要等待2MSL(2倍的最大报文生存时间),才能完全关闭。原因有两个:
        1.TCP连接的可靠终止(当客户端发送最后的ACK时,如果ACK在中间丢失,再发送的ACK可以顺利到达服务器端)
        2.确保晚期的TCP消息有足够的时间被识别和丢弃。因为当一个TCP连接处于时空状态时,也就是说,不能立即使用连接所占的港口来建立连接。如果存在noIME-WAIT状态,然后新的连接将收到旧连接的晚期消息,就会发生错误。

      异常终止连接

      TCP为异常消息段提供了终止方法:
      为了向另一方发送重复消息,所有等待发送的数据在发送者的末端被丢弃。

      异常终止连接

      当服务器(或客户端)关闭或异常终止连接时,另 一 方 没有 收到 最后 声明,因此仍然保持与以前一样的联系,服务器端甚至在重新启动时也没有任何连接信息,处于这种状态的连接称为半开放的连接。如果客户端将连接写入半开状态,然后,另一方会对重新定位声明作出答复。

      TCP超时重传

      TCP模块为每个TCP消息段保持一个重新传输时间表,该时间表首先在发送TCP消息时开始,如果响应在一段时间内没有被接收,TCP模块将重新发送TCP消息段并重新设置计时器。

      拥塞控制

      它分为四个部分: 慢启动, 避免拥挤, 快速重新传输, 快速恢复.
      拥塞控制是发送器SWND连续写入网络的数据(即发送窗口)的数量,即发送器可以连续发送的TCP消息段数。 TCP消息段的最大长度是SMSS,通常相当于MSS。
      如果SWND太小,就会导致网络延迟,如果太大,就很容易造成网络拥塞。
      接收机可以通过接收通知窗口(RWND)控制接收机的SWND,但显然这还不够,所以引入了拥挤窗口的概念,通常SWND采用RWND和拥挤窗口的最小值。

      • 慢启动: 最初的拥挤窗口设置为1SMSS,然后收到ACK后,索引倍增,
      • 拥塞避免增加到一个阈值时, 转变为线性增长.
      • 快速重传和快速恢复当接收超过三次确认消息时,进入快速重传阶段,阈值被更改为当前拥挤窗口的一半,拥挤窗口为1SMSS。
      • 然后转换到避免拥挤阶段,即拥挤窗口的线性增长。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/30572.html

          热门文章

          文章分类