mac|啥都玫说之网络篇-3协议部分,身份认证( 三 )


剩下的就是网关、网络ID、子网掩码 , 这些东西如果一个一个解释下来 , 就是在抄书 , 真没有什么意思 。 还是用一个类比的方式来解释 , IP地址是一个家庭住址 , 网络ID是所在小区 , 网关是小区大门 , 子网掩码是小区大小 , MAC地址是进小区之后具体位置 。
大概就是这么个意思 。 说到这里 , 就不得不说点重点了 , 就是通信五要素 。

  • [x
    源地址
  • [x
    目的地址
  • [x
    源端口
  • [x
    目的端口
  • [x
    协议

  • ①和②的通信是在两台计算机上进行的 。 它们的目标端口相同 , 都是80 。 这里可以根据源端口加以区分 。
  • ③和①的目标端口和源端口完全相同 , 但它们各自的源IP地址不同 。
  • 此外 , 当IP地址和端口全都一样时 , 我们还可以通过协议号来区分 。
3.5 有些东西在这说有些东西很难归类到系统还是协议的问题 , 先些在这里吧 。
第一个要说的就是MTU , 通信术语里最大传输单元 , 英文是Maximum Transmission Unit是指一种通信协议的某一层上面所能通过的最大数据包大小 , 这个大小以字节为单位 。 最大传输单元这个参数通常与通信接口有关 , 在这里我们一般只得也就是网络接口卡 , 俗称网卡 。
因为协议数据单元的包头和包尾的长度是固定的 , MTU越大 , 则一个协议数据单元的承载的有效数据就越长 , 通信效率也越高 。 MTU越大 , 传送相同的用户数据所需的数据包个数也越低 。 MTU也不是越大越好 , 因为MTU越大 ,传送一个数据包的延迟也越大;并且MTU越大 , 数据包中bit位发生错误的概率也越大 。 MTU越大 , 通信效率越高而传输延迟增大 , 所以要权衡通信效率和传输延迟选择合适的MTU 。 以以太网传送IPv4报文为例 。 MTU表示的长度包含IP包头的长度 , 如果IP层以上的协议层发送的数据报文的长度超过了MTU , 则在发送者的IP层将对数据报文进行分片 , 在接收者的IP层对接收到的分片进行重组 。 这里举一个具体的例子说明IP包分片的原理 。 以太网的MTU值是1500字节 , 假设发送者的协议高层向IP层发送了长度为3008字节的数据报文 , 则该报文在添加20字节的IP包头后IP包的总长度是3028 字节 , 因为3028>1500 , 所以该数据报文将被分片 , 注意:分片时仅仅对上层的数据进行分片 , 不需要对原来的IP首部分片 , 所以要分片的数据长度只有3008 , 而不是3028 。 这特别容易出错 。 分片过程如下:
  • 首先计算最大的IP包中IP净荷的长度=MTU-IP包头长度=1500-20=1480字节 。
  • 然后把3008字节按照1480字节的长度分片 , 将要分为3片 , 3008=1480+1480+48 。
  • 最后发送者将为3个分片分别添加IP包头 , 组成3个IP包后再发送 , 3个IP包的长度分别为1500字节、1500字节和68字节 。
从以上分片例子可以看出第一、二个分片包组成的IP包的长度都等于MTU即1500字节 。
在网络通讯中 , 需要尽量避免发生分片和重组 , 因为分片重组对网络性能影响较大 。 数据包发送时选择合适的MTU大小对提高通讯性能很有必要 。 MTU大小的选择有协议协商方式 , 通过全路径的MTU发现机制 , 找到整条路径的最小MTU(也就是路径MTU) , 然后报文发送式小于等于路径MTU , 这就避免了数据传输过程中产生分片 , 从而提高数据转发性能 。 MTU的协议发现机制由于安全等方面的原因 , 并不能总是生效 , 这时候就需要根据网络的特性选择合理的MTU 。 如果在报文传送过程中分片是不可避免的 , 那么要想办法让重组尽量在终端进行 , 避免在转发路径中进行 。
在TCP/IP协议中 , 将要传输的数据分成较小的组进行传输 , 每个组的大小为576字节 。 Windows默认的为1500字节 , 这是以太网的分组标准 。 ADSL使用的PPPoE略小于这个数值 , 一般为1492字节 。 而某些网站采用的MTU大于1492字节 , 所以 , 可能导致某些网页不能访问 。 修改Windows默认的MTU可以解决这个问题 。 不论是PC机上安装的PPPoE软件或者是内置在Modem的 PPPoE软件 , 在使用中都有可能遇到这个问题 。如果使用路由器出现此种情况 将MTU改为手工 设置为1492即可 。