我是靠谱客的博主 甜美小天鹅,最近开发中收集的这篇文章主要介绍TCP/IP协议族【第7章网际协议版本4(IPv4)】7.1 引言7.2 数据报7.3 分片7.4 选项7.5 校验和7.6 IP在ATM中运行7.7 安全性7.8 IP软件包,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

7.1 引言

网际协议(Internet Protocol,IP)是TCP/IP协议簇在网络层使用的传输机制。

IP是一种不可靠的无连接数据报协议—尽最大努力交付(best-effort delivery)的服务。

7.2 数据报

网络层的分组称为数据报(datagram)。
数据报是一个可变长度的分组,它由两部分组成:首部数据。


VER 版本

HLEN 数据报的首部总长度

服务类型(type of service,TOS)
数据长度=总长度-首部长度;总长度字段定义了包括首部在内的数据报总长度。

标识、标记,分片偏移用于分片。

生存时间:用于标致数据报所经历的最大跳数(路由器)

协议:标识使用IP服务的高层协议。

校验和:

源IP地址,目的IP地址:在ip数据报从源主机到目的主机过程中,这俩ip地址保持不变。

7.3 分片

7.3.1 最大传输单元mtu

IP协议的规定数据报的足底啊长度是65535字节,为了穿过其他物理网络,不得不分割数据报,这个过程称为分片(fragmentation)。
源点通常不会对IP分组进行分片(fragmentation)。因为运输层会把数据划分成IP与源点使用的数据链路层可接纳的大小。
数据报在到达最后终点之间可以经过多次的分片。
数据报可以被源主机或途中的任何路由器分片,但数据报的重装却只能在目的主机上进行,因为每一个分片都变成了独立的数据报。
当数据报被分片时,首部中的一些必要的部分必须被复制到所有分片中
与一个数报的分片与重装有关的字段是:标识标志分片偏移
只有数据报的数据是分片的。

7.3.2 与分片有关的字段

与一个数报的分片与重装有关的字段是: 标识 标志 分片偏移
标识(identitification)
16位。注意:所有分片的标识字段都是一样的。此标识与源IP组合唯一的确定这个数据报。
所有的分片都具有相同的标识号,它也是原始数据报的标识号。这个标识号在终点重装数据报时很有用。终点知道所有具有相同标识号的分片必须被组装成一个数据报
标记(flag)
3位,除最后一个分片外,所有分片的标志字段中的“还有分片”位均被置1.
分片偏移 
13位。标识的这个分片在数据报的相对位置。

7.4 选项

IP数据报的首部由两部分组成:固定部分(20字节)和可变部分(不超过40字节)

7.4.1 格式

选项的格式:一个字节的类型字段,一个字节的长度字段以及可变长度的值字段。这三个字段经常被称为TLV(type-leght-value)。
类型字段(type field)的长度为8位,它包括三个子字段:复制类型编号
复制:1位,控制选项在分片的出现。
类型:2位,00数据报控制,10排错和管理。
编号:5位,定义了6种
·长度字段(length field)定义选项的总长度,包括类型字段和长度字段本身。    
·值字段(value field)包含的是某些特定选项所需的数据。

7.4.2 选项类型

6种选项中:分为单字节,多字节
类型1:无操作选项(no-operation option)是个1字节的选项,用作选项和选项之间的填充符

类型0:选项结束选项(end-of-option option)也是个1字节的选项,用于选项字段结束时的填充。

类型7:记录路由选项(record-route option)是用来记录处理数据报的因特网路由器。

类型137:严格源路由选项(strict-source-route option)被源点用来预先指定数据报在因特网中传送时的路由。

类型131:不严格源路由选项(loose-source-route option)与严格源路由类似,但是不指定的路由器可以经过。

类型68:时间戳选项(timestamp option)用来记录路由器处理数据报的时间。

7.5 校验和

绝大多数TCP/IP协议采用的差错检测方法称为检验和(checksum)。检验和能够防止分组在传输期间出现的损坏。检验和是附加在分组上的冗余信息。

发送端计算校验和,

接收端计算校验和

7.5.3 IP分组中校验和

IP中的检验和只覆盖首部,不包括数据

7.6 IP在ATM中运行

7.6.1 ATM广域网

AAL5有时候被称作简单有效的适配层(simple and efficient adaptation layer,SEAL)

ATM信元具有53字节的固定长度,其中前5个字节是信元头,其余48个字节是有效载荷。

AAL5(效率更高),这里需要对比其他协议。

7.6.2 信元的路由选择

ATM网络在进入点路由器和离去点路由器之间建立一条路由。

IP地址每个连接到ATM网络上的路由器都有一个IP地址。IP地址在IP层制定了特定路由器,但在ATM层没有作用)

物理地址在一个网络中每个地址都是唯一的,且用网络管理员来指定。作用于局域网中MAC类似,建立连接时用)

虚电路标识符(ATM网路内部交换机使用虚电路标识符来(VPI,VPC)为信元选路,在数据传输的时候使用)

地址绑定


7.7 安全性

7.7.1 安全问题

有三个安全问题是特别应用于IP协议的:分组窃取(packet sniffing)、分组篡改(packet modification)和IP伪装(IP spoofing)。

7.7.2 IPSec

IPSec能够提供以下四种服务:定义算法和密钥分组加密数据完整性起源鉴别

7.8 IP软件包



可以认为IP软件包包含八个构件:首部添加模块处理模块转发模块分片模块重装模块路由表MTU表重装表。此外,在软件包中还包括一些输入和输出队列。
·这个软件包接受来自数据链路层高层协议的应用。

7.8.1 首部添加模块

首部添加模块(headr-adding module)接受来自高层协议的数据及其目的IP地址。它通过添加IP首部,把数据封装在一个IP数据报中

7.8.2 处理模块

处理模块(processing module)是IP软件包的核心。接收来自一个接口或者首部添加模块的数据报。数据被转发和处理。

//从一个输入队列获取数据
 //判断数据是否到达终点,是被重装
if(目的地址与本地地址一个相匹配)
{
  把数据报发给重装模块
  return;
}
if(本机是路由器)
{
  TTL -1;
}
if(TTL <=0)
{
   丢弃报文。
  发送ICMP差错报文
  返回
  }
  把数据包发送到转发模块
}

7.8.3 队列

我们的软件包使用了两种类型的队列:输入队列输出队列。输入队列(input quenes)存放的是来自数据链路层或高层协议的数据报。输出队列(output squenes)存放的是将要发送到数据链路层或高层协议的数据。
·处理模块从输入队列中取出数据报。分片重装模块则向输出队列中添加数据报。

7.8.4 路由表

转发模块利用路由表确定分组的下一跳地址。

7.8.5 转发模块

转发模块(forwarding module)接收来自处理模块的IP分组。

7.8.6 MTU表

分片模块使用MTU表找出特定接口的最大传送单元(maximum transfer unit,MTU)。mtu表只包含两列:接口和mtu.

7.8.7 分片模块

//提取数据报长度
if(长度>MTU)
{
  if(D位置被置1)
  {
     数据报被丢弃
发送ICMP报错报文
   返回
  }
  else{
  计算最大长度
  把数据报分片
  给分片添加首部
  给分片添加需要的选项
}else{
 直接发送

7.8.8 重装表

重装表(ressembly table)是重装模块使用的。有5个字段:状态,源IP地址,数据报标识符,超时,分片、

数据报标识符是一个数字,它唯一地定义了一个数据报以及属于该数据报的所有分片。

7.8.9 重装模块

重装模块(ressenbly module)接收来自处理模块的,且已到达最终目的地的数据报分片。

就是找出一个分片是属于哪个数据报的,把属于同一个数据报的所有分片进行排序,所有的分片到达后组成一个数据报。预定超期到了分片数据还不齐,重装模块就把这些分片丢弃。


最后

以上就是甜美小天鹅为你收集整理的TCP/IP协议族【第7章网际协议版本4(IPv4)】7.1 引言7.2 数据报7.3 分片7.4 选项7.5 校验和7.6 IP在ATM中运行7.7 安全性7.8 IP软件包的全部内容,希望文章能够帮你解决TCP/IP协议族【第7章网际协议版本4(IPv4)】7.1 引言7.2 数据报7.3 分片7.4 选项7.5 校验和7.6 IP在ATM中运行7.7 安全性7.8 IP软件包所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部