TCP/IP议定书知识科

      最后更新:2021-11-11 23:03

      简介

      本研究的重点是TCP/IP对等协议(TCP/IP)仓库的基本要点,这些仓库在科普特工作场所广泛使用。

      TCP/IP网络议定书图书馆

      TCP/IP网络议定书图书馆分为四层, 从下至上依次是:

      1. 链路层

        事实上,在链下有一个物理层,这意味着传输电信信号,例如标准的双弦线、光纤、早期共轴电缆、界定电信传输带宽的物理层设计、速度、传输距离、干扰阻力等等。

        链层的主要功能是与物理层进行通信,而通常的任务是网卡设备的驱动器、框架同步(它承认什么是新框架)、冲突探测(如果有冲突,自动重复)和数据错误核查等量的数据错误核查。

        链路层常见的有以太网,令牌环网的标准。

      2. 网络层

        网络一级的IP协议是互联网的基础。 这个级别负责将数据传输到匹配的目标地址, 网络上有许多路由器可以完成这个任务, 路由器倾向于删除网络一级的连接和数据头, 重新包装它。 IP层不负责数据传输的可靠性; 数据可能会在传输过程中丢失, 而这必须由高层协议来保证 。

      3. 传输层

        网络层负责点对点协议,仅负责一个主机,传输层负责端对端协议,负责达成一个进程。

        最常见的协议是TCP/UDP, TCP是一个以连接为导向、稳定和可靠的协议,负责按顺序进行数据测试、拆卸和重新组装,自动重新出现等等。 另一方面,UDP只负责以最低逻辑将数据传送到适当的程序,这意味着需要应用水平本身以确保数据传输的可靠性。

      4. 应用层

        这是我们的标准HTTP、FTP和其他协议。

      与四层协议有关的数据包如下图所示:

      四层数据包

      以下是与四级协议有关的沟通进程:

      四层通信过程

      Ethernet 数据框架、链接层

      以下以系网数据框架格式提供:

      以太网数据帧

      说明如下:

      1. 目的地和源地址指净额卡的硬件地址(即MAC地址),该地址长48个字符,当设备离开制造商时固定。
      2. 类型字段指定了高级别协议的类型,该协议目前有三个值:IP、ARP和RARP。
      3. 数据与上层协议传输的数据相对应,该协议规定数据大小为46-1500字节,最高值为1500字节,或顶层网络中最大的传输单位(MTU),具有多种 MOTU类型,如果数据要通过不同类型的连接传输,则必须重新对调数据。
      4. 《儿童权利公约》是一个确保正确提供数据的数据验证代码。

      ARP协议

      因此,主机程序只知道目的地应用程序的IP地址,并且不知道主机的硬件地址,所以在提供数据之前,它必须找到目标及其硬件地址,这正是ARP协议所履行的。

      当形成隐蔽干扰时,目的地的 IP 地址会在当地网络上广播,其他机器则被要求这样做。 如果机器确定请求中的 IP 地址与它自己的地址相同, 它会返回其硬件地址; 否则, 它会忽略请求 。

      一般而言,每台计算机都有一个ARP缓存,其中有一个最近使用的IP地址和硬件地址的地图。arp -a检查缓存内容的命令

      如果目标机器和这台机器不在同一网络段中,数据将传送到网关,即路由器,而网关是IP线路,将ARP请求发送到目的地网络地址,然后返回启动机器的答案。

      IP协议

      以下是IP协议数据包格式:

      IP协议数据格式

      几个字段解释如下:

      1. TOS共有8种,其中3种用于表示数据包的优先次序,不再使用;其中4种为任择服务类型(最小延迟、最大呕吐、最大可靠性、最低成本),其中之一始终为零。
      2. 信号位置:用于表示每个IP包件的次关系,用于数据包分割和重新组装;
      3. TTL(实时时间)是指在网络上传输的数据包的次数,如果数据包超过这一数量,则该数据包被丢弃。
      4. TCP、UDP、ICCMP和IGMP是8位高层次任择议定书。

      全部IP地址的编号分类如下:

      当因特网最初开始使用时,大多数公司都要求提供B型地址,导致B类地址迅速增加,但A类地址很多,每个路由器都必须拥有网络上的所有信息,随着C型网络的增加,路由器中路由器的数量也随之增加。

      结果发现,大多数内部网络机器并不需要一个独立的IP网络,该网络通过IP网络与外部连接,要求自己网络中每台机器的私人IP地址,在内部建造路由器,并在内部找到IP地址。

      引入私人知识产权是解决知识产权废物问题的绝佳办法,因此我们经常看到类似192种的知识产权。 这些知识产权只是局域网内部的知识产权,它们并不浪费知识产权地址。

      因此,1918年RFC具体规定了建立局域网的私人IP地址代码:

      1. 10:前8个是网络号码,其次是16,77,216个私人知识产权地址。
      2. 172. 16至172. 16. 31有1 048 576个私人持有的知识产权。
      3. 192:共有65536个私人持有的知识产权。

      尽管这些私人IP地址没有互联网IP地址,但它们仍然可以使用NAT等技术与互联网连接。

      除了私人的知识产权以外,还有许多特殊的知识产权地址:

      1. 127. * IP地址用于背对背测试,这些地址的交互数据直接通过协议而不是通过网页卡传送。
      2. 这是一个IP地址,是本地的线路传输
      3. 主机代码由网络的所有零地址而不是主机的地址组成(例如不能用作机器的 IP 地址)
      4. 主机部分是同一个地址 他们都在网络内广播

      TCP协议

      数据包格式

      TCP 协议数据包看起来是这样的:

      TCP协议数据包

      部分字段解释如下:

      1. 来源和目的地港口号:用于确定数据互动业务。
      2. TCP是一种可靠的互动协议,用于在传输期间给数据贴标签,确保发送顺序和再分配数据。
      3. URG/ACK/PSH/RST/SYN/FIN:下文将详细讨论这六个领域,以说明与TCP有关的一揽子请求的阶段。

      交互过程

      TCP数据交互

      在上述图景中,每个连接线上的数字代表了例如这一数据集中的关键信息。

      1. SYN,1000(0),<mss 1460>代表:请求包有SYN标记、32位序列号为100、无数据、可选择的ms和值为1460。
      2. SYN,8000(0),ACK,1001,<mss 1024>代表:请求包装SYN和ACK标签、32位序列号800、无数据、32位确认序列号1001和相同的秒选项。

      让我们看看TCP的互动过程:

      1. 建立连接

        1. 客户发送软件包1, SYN代表请求连接;第一个包含由操作系统维持的100序列号,每次自动递增,自动递增是发送的字节数,并有反映该区段最大尺寸的 ms 选项,以避免对不需要的底层协议进行拆解;
        2. 服务器提供包件2, 包括ACK 1001, 意指序列号小于1001的所有包件, 下一个请求是提供1001多个包件; 服务器在这个包件中也有SYN 800 (0), 就象它与客户进行通信一样, 但服务器头的序列号为800; 服务器头的序列号为800; 服务器提供包件2, 包括ACK 1001, 表示序列号小于1001的所有包件; 服务器的下一个请求是提供1001多个包件; 服务器在这个包件中还有SYN 800 (0) 。
        3. 软件包 3 由客户端返回, 它包含简单的 ACK 8001, 代表服务器连接的软件包 。

        因此,连接形成,数据可以传输,程序需要客户端和服务器提出一个请求和一个答复,服务器的请求和答复包含在由三个传送组成的软件包中,因此该程序被称为三个握手。

      2. 交换数据

        1. 客户发送套件4, 包括ACK 8001和20字节序列号1001至1020。
        2. 服务器返回包 5 包含 ACK 1021 (因为它由 20 字节组成) 和 10 字节的序列号为 8001 至 8010 。
        3. 因为数据已经是交互式的, 客户返回了第6套包, 只有一个ACK 8011包含。

        本段主要涉及理解TCP的交互式序列号管理逻辑,因为它是一个由两人组成的协议,这意味着服务器和客户端可以彼此交流数据,因此要求每个客户端和服务器保留序列号。 如果存在半年期协议,只需要一方有一个序列号。

      3. 关闭连接

        1. 客户发送套件7 与FIN标记,1021。
        2. 服务器只需响应ACK 1022和返回包 8。
        3. 套件 9 由服务器返回, 服务器包含 FIN 标签和 8011 序列 。
        4. 以ACK 8012,客户返回10。

        当连接形成时, 服务器请求和响应将被整合到单个软件包中。 但是, 当连接关闭时, 两个软件包必须分割, 因为当客户端关闭连接时, 数据无法再次传输, 但服务器可以向客户端提供数据, 直到服务器同时发送 FIN 标记 。

      滑动窗口

      如前所述,数据发布速度可能最快,数据发布速度最慢,数据发布速度最慢,而其他数据传播速度最慢,如果不加以规范,可能导致数据处理速度较慢的消失,造成包件丢失。

      TCP协议中采用了滑动窗口协议为了解决这个问题,与前面提到的问题相似。mss,提供一个新的选项win,向对方通报幻灯片窗口的大小,每次传输数据时,你知道彼此是否没有足够的窗口空间,如果没有足够的窗口空间,就不要发送,解决问题。

      连接状态

      如下图:

      TCP连接状态图

      其他事情都很好, 任务中有很多时间和时间之间的联系, 所以让我们只关注时间和时间。

      活跃的关闭方在得到被动关闭方FIN软件包(这是活跃关闭方收到的最后一个软件包)后,就处于时代-WAIT状态,该软件包是主动关闭方收到的最后一个软件包,它无法在收到软件包后立即关闭连接,它需要等待关闭,等待时间是2MSL。

      为什么要再拖下去呢?

      1. 活动关闭方必须在收到最后软件包后发送 ACK 。 如果软件包被丢弃, 另一方必须重发最后一个 FIN 软件包, 如果收到重发的 FIN 软件包时该软件包的链接关闭, 链接将会被不当关闭 。

      2. 但是,毕竟数据已经在相互作用。 但是,如果我们不等待2MSL,那么,如果我们在同一港口建立新的链接,那么最后一个FIN软件包可能由于网络上的原因被推迟,以便此时到达港口,从而产生下一个连接困难。

      因此,必须有一个时间_WAIT状态,等待MSL时间RFC建议两分钟,但对我来说,真正的工作测试通常为30秒。

      然而,如果您的服务是一个高、简短的连接服务,Time_WAIT可能会产生大量接入控点,而您认为这一服务是一种高度可靠的网络服务,或者即使两个连接的互动失败,它也可能被接受或具有一个应用层,而您不希望在Time_WAIT州有如此多的连接,有两种选择:

      1. 当建立连接时, 请使用 SO_ REUSEADR 选项 。

      2. 在/etc/sysctl.conf中加入如下内容:

        net.ipv4.tcp_syncookies = 1
        net.ipv4.tcp_tw_reuse = 1
        net.ipv4.tcp_tw_recycle = 1
        net.ipv4.tcp_fin_timeout = 30

        然后执行/sbin/sysctl -p生效参数。

      UDP协议

      UDP数据格式

      联合民主党协议简单得多,仅提供源址和目的地地址,以及长度、核查和内容。

      互动进程不再象TCP那样是一个连接和关闭连接的艰难进程,每次数据都立即传输,结果产生下列问题:

      1. 发件人仅传输数据。 接收人不知道包件是否在黑暗中丢失 。
      2. 由于传送的许多物品的时间顺序可能与发送时的时间顺序不同,接收端可能有不同的包装顺序。
      3. 如果发件人速度快,接收人速度慢,接收人无法处理情况,丢下袋子。

      因此,如前所述,UDP协议并不能确保数据可靠性,他通常受雇于某些高性能案例,他必须在申请楼层做几个基本信封。

      参考

      1. Linux C编程一站式学习. http://docs.linuxtone.org/ebooks/C&CPP/c/index.html

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类