TCP/IP协议(全的一b)应用层,数据链层,传输层,网络层,以及面试题 ...

打印 上一主题 下一主题

主题 1028|帖子 1028|积分 3084

目录
TCP/IP协议介绍 
协议是什么,有什么作用?
 网络协议为什么要分层
 TCP/IP五层网络协议每层的作用
应⽤层
DNS的作用及原理
DNS工作流程
数据链路层
以太⽹帧格式
MAC地址的作用
ARP协议的作⽤
ARP协议的工作流程
MTU以及MTU对 IP / UD / TCP 协议的影响
传输层(TCP协议)
介绍TCP协议段格式
明白端⼝号的概念
 能够基于UDP实现可靠传输.
⽹络层(IP协议)
IP协议的头格式
IP地址的作用:
局域网(子网/LAN)
局域网地址
广域网(公网/WAN)
广域网地址
MAC地址的作用:
对⽐明白MAC地址和IP地址
 NAT技术 
如何解决IPv4的IP地址数⽬不⾜的标题
明白IP数据分包组包
为什么分包
分包组包过程中和哪些IP报头字段有关联
组包时如何保证数据的次序和完备性
MSS
⽹络层的IP地址路由过程


TCP/IP协议介绍 

   协议是什么,有什么作用?

                 协议,⽹络协议的简称,⽹络协议是⽹络通信(即⽹络数据传输)经过的所有⽹络设备都必须共同遵从的⼀组约定、规则。如怎么样建⽴连接、怎么样互相识别等。只有服从这个约定,计算机之间才气 相互通信交换。           协议(protocol)最终体现为在⽹络上传输的数据包的格式。                  网络协议对于    实现网络通信的互操作性、标准化、数据封装、路由和寻址、错误检测和规复、流量控制以及安全性    等方面都起着至关紧张的作用          网络协议为什么要分层

          一整个协议太庞大,不利于学习和维护,拆分出来的协议又太多了,就引入协议分层,只有相邻层次之间才可以沟通,不能跨层沟通,好处就是
          1)  上层协议直接用下层协议即可,不必要了解下层协议的细节(相当于两个人打电话,直接用对应的电话就好,电话内部的怎么接收信号,转换信号怎么传播怎么解码,上层人不必要知道,使用接口就行)
          2)  某一层协议替换之后,对其他层没有影响(换个电话用用)
     TCP/IP五层网络协议每层的作用

  

  

  • 1. 应用层 (Application Layer)
  功能:界说了应用程序之间通信的协媾和方式。例如,HTTP用于网页浏览,SMTP用于电子邮件发送,FTP用于文件传输等。
关注传输的数据在应用程序中如何使用,如数据的表现、加密、压缩等。
  

  • 2. 传输层 (Transport Layer)
  功能:提供端到端的通敬佩务,确保数据包的可靠传输或提供无连接的不可靠服务。
  关注通信的出发点和终点。紧张协议包罗TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供可靠的数据传输服务,UDP提供不可靠的数据传输服务。
  

  • 3. 网络层 (Network Layer)
  功能:负责数据包的路由和转发,将数据从源地址传输到目的地址。
关注通信中的蹊径规划。紧张协议是IP(互联网协议),它界说了数据包的格式、地址和路由规则。此外,还包罗ICMP(Internet控制消息协议)、IGMP(Internet组管理协议)等辅助协议。
  

  • 4. 数据链路层 (Data Link Layer)
  功能:在相邻节点之间无差错的传输数据帧,并负责帧的封装和解封装、差错检测等。
关注相邻节点之间的通信细节。该层界说了如何访问传输介质(如局域网、广域网等),以及如何将数据封装成帧举行传输。紧张协议包罗以太网、令牌环、PPP(点对点协议)等。
  

  • 5. 物理层 (Physical Layer)(硬件层面不重点介绍)
  功能:负责传输比特流,是网络通信的基础设施。
关注网络通信的物理连接,包罗电缆规格、电压级别、接口类型等。该层界说了数据传输的电气、机械和定时接口等特性,确保比特流在物理介质上的精确传输。
    应⽤层

   • 应⽤层的作⽤: 满⾜我们⽇常需求的⽹络程序, 都是在应⽤层      DNS的作用及原理

             DNS是互联网上的域名剖析体系,它建立了一个分布式数据库,将人们易于影象的域名映射到计算机易于识别的IP地址。这样用户就可以通过输入域名来访问互联网资源,而无需记着复杂的IP地址。
           在浏览器中键入www.microsoft.com这个域名, DNS体系会将www.microsoft.com这个域名剖析为相应的IP地址207.46.230.229
   
   DNS工作流程

   

  • 用户哀求:当用户在浏览器中输入一个域名时,计算机会向当地域名服务器(Local DNS Server)发送一个域名剖析哀求。
  • 当地查询:当地域名服务器首先在其缓存中查找该域名的剖析记录。如果找到,则直接返回IP地址给用户;否则,继续下一步。
  • 逐级查询:当地域名服务器会向根域名服务器(Root DNS Server)查询,根域名服务器会返回顶级域名服务器(TLD Server)的地址。接着,当地域名服务器向顶级域名服务器查询,顶级域名服务器会返回权威域名服务器(Authoritative DNS Server)的地址。最后,权威域名服务器会返回相应的IP地址。
  • 结果返回:当地域名服务器将剖析到的IP地址返回给用户,并将该结果保存在缓存中,以便后续使用。
   
数据链路层

   数据链路层的作⽤:   两个设备(同⼀种数据链路节点)之间进⾏传递数据     以太网:以太⽹是⼀种技术标准,既包罗了数据链路层的内容, 也包罗了⼀些物理层的内容. 例如: 规定了⽹络拓扑结构, 访问控制⽅式, 传输速率等;      以太⽹帧格式

     
   

  •  源地址和⽬的地址是指⽹卡的硬件地址(也叫MAC地址), ⻓度是48位,是在⽹卡出⼚时固化的;
  • 帧协议类型字段有三种值,分别对应IP、ARP、RARP;

    • IP:当Type字段的值为0x0800时,代表帧包罗的是IP协议的数据。
    • ARP:当Type字段的值为0x0806时,代表帧包罗的是ARP(地址剖析协议)的数据。ARP用于将网络层(IP层)地址剖析为链路层(MAC层)地址。
    • RARP:当Type字段的值为0x8035时,代表帧包罗的是RARP(逆地址剖析协议)的数据。RARP与ARP相反,它用于将MAC地址剖析为IP地址,但RARP在现实应用中已经较少使用。

  • 帧末端是CRC校验码,紧张功能是检验数据是否在传输过程中被粉碎,大概是由于物理干扰等缘故因由
    MAC地址的作用

  

  • MAC地址(Media Access Control Address)是物理地址或硬件地址,用于在数据链路层举行数据帧的目标设备识别和传输控制。
  • 它由6个字节(48位)构成,通常用十六进制数表现,例如00:1A:2B:3C:4D:5E。
  • MAC地址被永久地嵌入到设备的网络接口卡(NIC)中,由设备制造商在设备制造过程中分配,而且无法更改。 
    ARP协议的作⽤

             ARP协议建⽴了主机 IP地址和MAC地址的映射关系.                当主机必要发送数据给另一台主机时,必要知道目标主机的MAC地址,如果接收到的数据包的MAC地址和本机的MAC地址不一样会被直接丢弃。ARP协议可以通过查询网络中其他主机的IP和MAC地址映射表,将目标主机的IP地址转换为对应的MAC地址。         
   

  • IP地址到MAC地址的映射:当主机必要发送数据给另一台主机时,必要知道目标主机的MAC地址。ARP协议可以通过查询网络中其他主机的IP和MAC地址映射表,将目标主机的IP地址转换为对应的MAC地址。
  • ARP缓存:ARP协议会将查询到的IP和MAC地址映射保存在当地缓存中,以便下次快速查询。这样可以减少网络中的广播流量,提高通信效率。
  • 支持局域网通信:在局域网中,设备之间通过MAC地址举行通信。通过ARP协议,当田主机可以向局域网中的所有设备广播ARP哀求,以获取目标设备的MAC地址,从而实现设备之间的通信。
  • 实现无连接协议的功能:在以太网上,数据包的传输是无连接的。ARP协议通过动态地将IP地址和MAC地址举行绑定,使得源主机无需事先知道目标主机的MAC地址,就可以直接向目标主机发送数据包。
  • 网络层和数据链路层的转换:ARP协议位于网络层和数据链路层之间,起着一个转换器的作用。网络层使用IP地址来标识设备,而数据链路层使用MAC地址来标识设备。ARP协议可以根据IP地址找到对应的MAC地址,并将数据包从网络层转发到数据链路层。
   

   ARP协议的工作流程

   以两台主机A和B为例,如果主机A必要向主机B发送数据,ARP协议的工作流程如下:
   

  • 当地ARP缓存查询:主机A首先会在自己的ARP缓存中查找主机B的MAC地址。如果找到了,则直接使用该地址举行通信;否则进入下一步。
  • ARP哀求广播:主机A会向整个局域网发送一个ARP哀求广播包,该广播包中包罗主机A的IP地址、MAC地址以及主机B的IP地址。局域网内的所有设备都会收到这个广播包。
  • ARP响应:当主机B收到这个ARP哀求广播包后,会查抄哀求中的目标IP地址是否与自己匹配。如果匹配,则主机B会向主机A发送一个ARP响应包,此中包罗自己的MAC地址。
  • ARP缓存更新:主机A收到主机B的ARP响应包后,会将主机B的IP地址和MAC地址映射关系保存在自己的ARP缓存中,并使用该地址发送数据包给主机B。
  • ARP缓存超时:如果主机A在一段时间内没有再次向主机B发送数据,则主机A的ARP缓存中的干系条目大概会因为超时而被主动删除,以避免ARP缓存污染攻击。
   
   MTU以及MTU对 IP / UD / TCP 协议的影响

     MTU(Maximum Transmission Unit,最大传输单位)是网络层协议的一部分,它界说了数据链路层帧中能够承载的最大数据长度。这个长度包罗了网络层数据报(如IP数据报)的头部和数据部分。(发快递对包裹尺寸的限定)
   
   对IP协议的影响:
   

  • 数据包分片:当IP数据报的巨细超过MTU时,发送方会将其分割成多个较小的数据包(分片),每个分片都有自己的IP头部,但共享相同的16位标识符。
  • 重组:接收方会根据每个分片中的标识符、标志位和片偏移信息,将多个分片重新组合成一个完备的IP数据报。
  • 丢包风险:如果分片中的一个或多个丢失,接收方大概无法成功重组原始数据报,导致数据丢失。
   对UDP协议的影响:
   

  • 分包:与IP协议类似,当UDP数据报的巨细超过MTU时,也会被分割成多个IP数据包举行传输。
  • 无重传机制:UDP协议本身不提供重传机制,所以如果分片中的一个或多个丢失,UDP数据将完全丢失,且不会被重新传输。
   对TCP协议的影响:
   

  • MTU探测与调解:TCP协议会通过MTU探测机制来确定当前路径的MTU巨细,并据此动态调解其发送的数据包巨细。
  • 避免分片:通过MTU探测和调解,TCP协议可以只管避免数据包的分片,从而提高传输效率和可靠性。
  • 重传机制:TCP协议具有强大的重传机制,如果数据包丢失,它会重新发送丢失的数据包,直到成功接收为止。
      传输层(TCP协议)

   传输层的作⽤: 负责数据能够从发送端传输接收端.     介绍TCP协议段格式

     
   

  • 源端口号(16位):用于标识发送方应用程序的端口号,表现数据是从哪个进程来。
  • 目的端口号(16位):用于标识接收方应用程序的端口号,表现数据到哪个进程去。
  • 序号(32位):用于标识发送方发送的数据字节所占的序列号,表现本报文段所发送数据的第一个字节的编号。
  • 确认序号(32位):用于确认接收方已经收到的数据字节的序列号,即接收方盼望收到发送方下一个报文段的第一个字节数据的编号。
  • 首部长度(4位):用来指明TCP报文段首部的长度,以4字节为单位。最大为60字节,最小为20字节。通过这个字段可以确定TCP报头中是否包罗选项字段。
  • 保留(6位):保留的6位用于未来的功能扩展,目前必须全部为0。
  • 控制位(6位):用于控制TCP报文段的传输状态和控制信息,包罗:
              URG(紧急指针有效位):告知接收方此报文段中有紧急数据必要处理惩罚。
              ACK(确认序号有效位):表现确认序号字段中的数据有效。
              PSH(推送位):告知接收方应立刻将数据交给应用程序,而不是等待缓冲区填满。
              RST(复位位):用于重置连接。
              SYN(同步位):用于建立连接。
              FIN(结束位):用于停止连接。
  

  • 窗口巨细(16位):指明发送方的接收窗口巨细,用于流量控制。
  • 校验和(16位):用于检验TCP报文段是否在传输过程中发生错误。发送端基于数据内容校验天生一个数值,接收端根据接收的数据校验天生一个值,如果两个值不匹配,则以为数据有标题。
  • 紧急指针(16位):仅当URG标志位被设置时有效,表现紧急数据的末端位置。
  • 选项(可变长度):用于提供更多的可选功能,如MSS、时间戳等。这些可选字段可以用于实现拥塞控制、数据加密、性能优化等功能。
  
   明白端⼝号的概念

  端口号标识了主机上通信的差别应用程序
     

  • 0 - 1023: 知名端⼝号, HTTP, FTP, SSH等这些⼴为使⽤的应⽤层协议, 他们的端⼝号都是固定的.
  • 1024 - 65535: 操作体系动态分配的端⼝号. 客⼾端程序的端⼝号, 就是由操作体系从这个范围分配 的.
   熟悉知名端⼝号
   

  • ssh服务器, 使⽤22端⼝
  • ftp服务器, 使⽤21端⼝
  • telnet服务器, 使⽤23端⼝
  • http服务器, 使⽤80端⼝
  • https服务器, 使⽤443
       我们⾃⼰写⼀个程序使⽤端⼝号时, 要避开这些知名端⼝号         

  • 熟悉UDP协议, 了解UDP协议的特点.
  • 熟悉TCP协议, 明白TCP协议的可靠性. 明白TCP协议的状态转化.
  • 掌握TCP的连接管理, 确认应答, 超时重传, 滑动窗⼝, 流量控制, 拥塞控制, 延迟应答, 捎带应答特性.
  • 明白TCP⾯向字节省, 明白粘包标题和解决⽅案.
       上面关于TCP和UDP的一些标题可以参考小编之前发过的文章      TCP协议的干系特性,UDP的简单介绍
https://blog.csdn.net/s13057696399/article/details/140560456?spm=1001.2014.3001.5501      能够基于UDP实现可靠传输.

         现实就是参考TCP的可靠性机制, 在应⽤层实现类似的逻辑;
  

  • 1. 序列号
  每个数据包都被分配一个唯一的序列号,以便接收端能按精确的次序重新组装数据。
  

  • 2. 确认应答 (ACK)
  接收端在成功接收数据包后,会发送一个ACK包给发送端,此中包罗了已接收数据包的序列号。如果发送端未收到ACK,则会在肯定时间后重传数据包。
  

  • 3. 超时重传
  发送端为每个数据包设置一个定时器。如果定时器超时且未收到对应的ACK,则重传该数据包。超时时间可以根据网络条件动态调解。
  

  • 4. 连接管理 (模拟)
  三次握手 (模拟):
          发送端发送一个带有SYN标志的数据包哀求建立连接。
          接收端回复一个带有SYN和ACK标志的数据包表现同意连接哀求。
          发送端再发送一个带有ACK标志的数据包以确认连接建立。
  四次挥手 (模拟):
          一方发送一个FIN包哀求关闭连接。
          另一方回复一个ACK包表现收到关闭哀求。
          当另一方也预备好关闭连接时,它发送一个FIN包。
          最后,接收方回复一个ACK包以确认连接关闭。
  注意:由于UDP是无连接的协议,这些握手和挥手过程现实上是通过发送特定的数据包来模拟的。
  

  • 5. TCP状态转换
          在UDP的可靠传输实现中,虽然不必要完备的TCP状态机,但大概必要跟踪一些关键状态,如等待ACK、重传等。
  

  • 6. 滑动窗口,解决滑动窗口产生的丢包标题
          发送端和接收端可以协商一个滑动窗口巨细,答应发送端在接收到ACK之前连续发送多个数据包。接收端通过ACK告知发送端哪些数据包已接收,发送端据此调解滑动窗口。
          如果在滑动窗口内的数据包丢失,发送端会在收到ACK时检测到丢包,并重新发送这些数据包。
  

  • 7. 流量控制和拥塞控制
          流量控制:通过接收端的ACK包来控制发送端的发送速率,避免接收端缓冲区溢出。
          拥塞控制:通过调解发送速率、重传策略等方式来避免网络拥塞。
  

  • 8. 延时应答和捎带应答
          延时应答:接收端可以延迟发送ACK以合并多个ACK,减少网络开销。
          捎带应答:如果接收端必要发送数据给发送端,可以将ACK捎带在数据包中一起发送。
  

  • 9. 面向字节省 
         在应用层上,将数据封装为字节省举行传输,并在接收端重新组装成原始数据。
  

  • 10. 非常情况
          处理惩罚丢包、乱序、超时、重传等非常情况,确保数据的完备性和可靠性。
  
⽹络层(IP协议)

   • ⽹络层的作⽤: 在复杂的⽹络环境中确定⼀个合适的路径.      IP协议的头格式

     
   

  • 版本号:占4位,用来指定IP协议的版本。对于IPv4来说,版本号字段的值为4。
  • 首部长度:占4位,用来表现IP协议头部的长度,以4字节为单位。最大值为15,即IP协议头部最大长度为60字节。
  • 服务类型(Type of Service, TOS):占8位,包罗三个已经弃用的优先权比特位,一个保留字段(必须置为0),以及四个有效的TOS字段。这四个字段分别表现最小延时、最大吞吐量、最高可靠性和最小本钱,且这四者相互冲突,只能选择一个为偏重点。
  • 总长度:占16位,用来标识IP数据包的团体长度,包罗头部和有效载荷的长度。:
  • 标识:占16位,表现当前IP数据包分片是属于哪一个完备的IP报文,同一个IP数据包当中的所有分片具有相同的标识。
  • 标志:占3位,表现包被分片的干系信息,如是否答应拆包、是否是最后一个包等。
  • 片偏移:占13位,用来标识分片在原来数据之中的位置,用于接收方举行组装。
  • 生存时间(Time To Live, TTL):占8位,描述数据包在网络上还能存活多久,即答应经过的路由器的个数。每经过一个路由器,TTL值减1,当TTL为0时,数据包将被丢弃。
  • 协议:占8位,标识传输层使用的协议,如UDP或TCP,以便在数据分用时决定将数据交给哪个传输层协议。
  • 首部校验和:某些版本的IP协议头中包罗此字段,用于校验IP头部的完备性,但不包罗数据部分。
  • 源IP地址和目的IP地址:分别占32位,表现数据包的发送方和接收方的IP地址。
         IP地址的作用:

   

  • IP地址(Internet Protocol Address)是一个逻辑地址,用于在超过差别网络的情况下举行通信时对设备举行寻址。
  • 它由32位二进制数构成(IPv4),通常以4个十进制数(0-255)表现,并用点号分隔开,例如192.168.0.1。
  • IP地址分为公共IP地址和私有IP地址。公共IP地址用于互联网上的通信,而私有IP地址则在局域网内部使用。
  • IP地址用于网络层的路由和寻址,它告诉路由器数据包应该向哪个方向发送,以便最终到达目标设备。
      局域网(子网/LAN)

  局域网是指在相对较小的地理范围内(如办公室、学校、企业内部等)建立起来的计算机网络。局域网通常用于连接位于同一物理位置的设备,使这些设备能够举行数据互换和共享资源。局域网一样平常覆盖范围小,设备自己购买和维护,而且带宽是固定的。局域网的设备不能直接被外部访问
  局域网地址

  也称为内网IP地址或私有IP地址,是在局域网内部使用的IP地址。这些地址不会被用于公共互联网,而是在局域网内部用于计算机之间的通信。私有IP地址包罗A类地址(如10.X.X.X)、B类地址(如172.16.0.0--172.31.255.255)和C类地址(如192.168.X.X)。
  广域网(公网/WAN)

  广域网是指覆盖范围更广、超过较大地理区域的计算机网络。与局域网相比,广域网连接的地理范围更大,可以超过都会、国家甚至全球范围。广域网就是我们通常所说的Internet,它是一个遍及全天下的网络。
  广域网地址

  也称为公网IP地址或外网IP地址,是广域网中每一台电脑(或其他网络设备)所具有的唯一标识符。广域网IP地址一样平常要到ISP(Internet服务提供商)处交费之后才气申请到,而且不能重复。广域网上的设备可以通过公网IP地址与其他设备举行通信,实现全球范围内的数据互换和信息共享。
  
   
 
  

  • ⼀个路由器可以配置两个IP地址, ⼀个是WAN⼝IP, ⼀个是LAN⼝IP(⼦⽹IP).
  • 路由器LAN⼝连接的主机/手机, 都从属于当前这个路由器的⼦⽹中.
  • 差别的路由器, ⼦⽹IP其实都是⼀样的(通常都是192.168.1.1). ⼦⽹内的主机IP地址不能重复. 但是⼦⽹之间的IP地址就可以重复了
  • 每⼀个家⽤路由器, 其实⼜作为运营商路由器的⼦⽹中的⼀个节点. 这样的运营商路由器大概会有很多级, 最外层的运营商路由器, WAN⼝IP就是⼀个公⽹IP了.
  • ⼦⽹内的主机必要和外⽹进⾏通信时, 路由器将IP⾸部中的IP地址进⾏替换(替换成WAN⼝IP), 这样 逐级替换, 最终数据包中的IP地址成为⼀个公⽹IP. 这种技术称为NAT(Network Address Translation,⽹络地址转换).
  
   MAC地址的作用:

  

  • MAC地址(Media Access Control Address)是物理地址或硬件地址,用于在数据链路层举行数据帧的目标设备识别和传输控制。
  • 它由6个字节(48位)构成,通常用十六进制数表现,例如00:1A:2B:3C:4D:5E。
  • MAC地址被永久地嵌入到设备的网络接口卡(NIC)中,由设备制造商在设备制造过程中分配,而且无法更改。
  对⽐明白MAC地址和IP地址

  

  •  IP地址描述的是路途总体的出发点和终点;
  •  MAC地址描述的是路途上的每⼀个区间的出发点和终点;
     NAT技术 

     NAT技术当前解决IP地址不敷⽤的紧张⼿段, 是路由器的⼀个紧张功能;     

  • NAT能够将私有IP对外通信时转为全局IP. 也就是就是⼀种将私有IP和全局IP相互转化的技术⽅法:
  • 很多学校, 家庭, 公司内部采⽤每个终端设置私有IP, ⽽在路由器或必要的服务器上设置全局IP;
  • 全局IP要求唯⼀, 但是私有IP不必要; 在差别的局域⽹中出现相同的私有IP是完全不影响的;
     
   
    如何解决IPv4的IP地址数⽬不⾜的标题

     注: IPv4有2^32个地址约莫42亿个IP地址   

  • 使用NAT技术(网络地址替换),NAT技术答应私有网络中的设备使用私有IP地址,并通过NAT路由器或网关与外部网络举行通信。多个私有网络中的设备可以共享一个或少数几个公网IP地址与外部网络通信,从而节省了公网IP地址的使用。只能缓解标题
  • IPV6:可以表现2^128个地址,地址数量可以给地球上每一粒沙子一个独一无二的IP地址,IPv6是更根本和久远的解决方案
        明白IP数据分包组包

  为什么分包

          在TCP/IP模子中,网络层的下一层是数据链路层,网络层中的IP协议并不是把数据直接发送到了网络中,而是交给了数据链路层,数据链路层才是真正将数据发送到网络中。
          数据链路层中使用的是MAC帧协议,该协议规定自己的有效载荷不能超过1500个字节。虽然可以修改,但是这里我们不思量,就按默认情况来说。所以这里必要网络层举行分片后再交给链路层
  
  

     分包组包过程中和哪些IP报头字段有关联

   

  • 标识字段(Identification):用于唯一标识一个IP数据报,确保在拆包组包过程中能够精确地识别原始数据包。每个片断都应该具有相同的标识符,以便在接收端重新组装成原始数据包。
  • 片偏移字段(Fragment Offset):指示当前片断在整个原始数据包中的位置。在分包过程中,每个片断都必要设置精确的偏移量,以便在组装时能够重新构建完备的数据包。
  • 标志位字段(Flags):

    • 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到).
    • 第二位置为1表现禁止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文.
    • 第三位表现"更多分片",当前是1,表现后面还有被分片的报文在路上,当前是0表现它是最后一个分片

   组包时如何保证数据的次序和完备性

   

  • 利用片偏移字段:通过片偏移字段来确定每个片断在原始数据包中的位置,从而确保数据在重新组装时能够按照精确的次序排列。
  • 利用标识符字段:唯一性,若报文被片分,同一报文中被片分的标识位相同
  • 计算校验和:在组包过程中重新计算校验和字段的值,以确保数据包在传输过程中没有被窜改或破坏。如果校验和不匹配,则不能使用该数据包片断举行组包。
      MSS

  

  • 优化数据传输效率:MSS用于在TCP连接建立时,由收发双方协商确定每一个报文段所能承载的最大数据长度(不包罗文段头)。通过选择合适的MSS值,TCP可以优化数据传输的效率,避免过大或过小的数据段导致的性能标题。
  • 避免或减少IP分片:IP层在传输数据包时有一个最大传输单位(MTU)的限定。如果TCP数据段的巨细超过MTU,IP层就会对其举行分片。分片会增长数据丢失的风险,并大概低落传输效率。因此,通过协商确定一个合适的MSS值,可以确保TCP数据段的巨细不会超过MTU,从而避免或减少IP分片的发生。
  • 确保数据传输的可靠性:MSS简直定和使用,是基于TCP协议的可靠性和流量控制机制。TCP协议通过确认、重传、拥塞控制等机制,确保数据的可靠传输。MSS作为TCP协议的一个选项,与这些机制共同工作,为数据传输提供可靠保障。
     ⽹络层的IP地址路由过程

  一个数据包如何超过网段到达最终目的地
  

  • 封装数据包:在源主机上,数据包会被封装成IP报文,并添加源IP地址和目标IP地址。
  • 转发到默认网关:如果目标IP地址与源主机不在同一网段,数据包会被发送到默认网关(通常是路由器)。
  • 路由决策与转发:在路由器上,根据路由表举行路由决策,并将数据包转发到下一跳路由器或最终目的地。
  • MAC地址替换:在每个路由器上,数据包的MAC地址会被替换为下一跳路由器的MAC地址,以确保数据包能够精确地传输到下一跳。
  • 逐层解封装:当数据包到达最终目的地时,目标主机会逐层解封装数据包,从数据链路层开始,然后是网络层、传输层和应用层,直到数据到达最终的应用程序。
  • 无匹配的处理惩罚:如果在路由表中没有找到匹配的条目,路由器通常会丢弃该数据包。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表