the 105th days:CH11 网络组织和体系结构

来源:百度文库 编辑:偶看新闻 时间:2024/05/05 19:09:45

Network Organization and Architecture


11.4 网络协议 1: ISO/OSI 协议

ISO/OSI (国际标准化组织/开放系统互连) 协议堆栈, 它是许多存储器和数据通信接口和协议的理论模型. 每个协议在实现细节上各有不同, 但是总体思想是一致的: 协议接口的每一层都只与它本身相邻的协议层相连接. 不允许跳过某个协议层. 协议会话发生在运行在两个不同的机器上的相同协议层之间.

OSI RM 包含7个协议层, 从第一层的物理介质互连层, 一直到第7层的应用层. OSI模型只定义了这7个协议层的每层的功能和各层之间的接口.


11.4.2 OSI参考模型

OSI 物理层

物理层会从上层数据链路层接收到的二进制的数据流, 并对这些数据进行编码, 然后根据大家所达成的协议和信号标准把这些数据放到通信介质上进行传输.

OSI物理层运送的是传输数据帧, 有时我们将这些数据帧称为物理协议数据单元(physical protocol data unites), 或者简称为物理PDU. 每个物理协议数据单元都携带一个地址和带有包围PDU的有效负载(payload, 或内存) 的分界符的信号模式.

OSI 数据链路层

数据链路层负责将信息数据字节组织成一些大小适合于沿着物理介质传输的数据帧. 发送端的数据链路层会与接收端的数据链路层协商传输帧的大小和速率.

帧传输的定时称为流控制 (flow control)

OSI 网络层

网络层只是将来自传输层的地址信息添加到协议数据单元 (PDU)上, 然后将PDU传送到数据链路层. 当经过各个中间 (intermediate) 节点传输PDU时,网络层是在执行其最重要和最复杂的任务, 而这些中间节点在网络中的作用就像货运中转站. 网络层不但负责建立路由路径, 而且要确保PDU的大小与所有位于发送端和接收端之间的设备兼容

OSI 传输层

OSI传输层为协议堆栈中它上面的各个层次提供质量保证功能. OSI 传输层也通过它和连接的另一端的传输层之间的握手协议, 分担另一层的端到端确认和错误校正任务. 传输层是能够了解网络和协议的OSI模型的最低层. 一旦传输层将来自会话层PDU的协议信息剥离, 会话层就可以安全地认为在PDU中没有发生网络错误.

OSI 会话层

OSI 的会话层负责仲裁两个通信节点之间的对话, 在需要时开发和关闭对话. 会话层可以控制对话方向和方式. 这种通信方式可以是半双工 (half-duplex, 每次只能沿一个方向进行), 也可以是全双工 (full-duplex, 同时双向进行),

如果通信方式是半双工的, 会话层会决定由哪个节点来控制线路.

OSI 表示层

表示层为它上面的应用层提供高级数据解释服务. 主机服务器需要向一台刚刚发生请求的基于ASCII代码的微型计算机发送一些数据. 在各自系统上的表示层会决定由哪台机器执行EBCDIC和ASCII之间的代码转换. 这两台机器都可以同等效率地进行这种转换工作. 值得注意的是: 主机系统是向它自己的应用层发送EBCDIC代码, 而客户机上的应用层则是从协议堆栈中下面的表示层中接收ASCII代码. 在通信会话期间, 如果我们使用加密码或者进行某种数据压缩,那么表示层的服务同样会起到重要的作用.

OSI 应用层

OSI 的应用层负责为通信的一端用户, 以及使用系统资源 (程序和数据文件) 另一端的接口界面处的用户提供有意义的信息和服务.关于通信方面, 这些应用程序唯一需要做的是向表示层的服务访问点发送消息, 较低的层次会负责这些任务中较困难的部分.


11.5 网络协议2: TCP/IP 网络结构

TCP/IP 有三层结构, 能够映射到OSI模型的7层结构中的第5层上面.


11.5.1 IPV4 网际协议层

TCP/IP 协议堆栈的网际协议(IP) 层, 在本质上与OSI参考模型的网络层和数据链路层的功能相同. 它把TCP数据包分成数据报 (datagram) 协议数据单元(PDU), 然后再加上把数据报传送到目的地需要的路由路径的信息.

每个IPV4 R的数据报至少包含40个字节, 每个字节又包含一个24字节的报头 (又称为标题),

  • 版本 (Version): 指示正在使用的IP协议的版本. 版本号会在路由路径上告诉所有硬件有关数据报长度和报头域中的内容. 对IPv4来说, 这个域的值总是0100
  • 报头长度(Header Length): 用32位字的方式给出报头的长度. IP报头的长度大小是可变的, 取决于IP选项域的值, 但是正确的报头的最小的值是5.
  • 服务类型 (Type of Servece): 控制由中间节点给予数据报的优先级别. 数值的范围从"常规"(routine) 000到"关键"(critical) 101. 网络控制的数据报用110和111来指示
  • 数据报总长 (Total Length of Datagram): 给出整个数据报长度的字节数. 从上面的布局图可以看出, 为这个域保留了2字节. 因此,IP数据报允许的最大长度是2^16-1, 即65535字节.
  • 包标识 (Packet ID): 为网络上的每个数据报分配一个系列号. 这种主机ID和包ID的组合可以唯一识别所有IP数据报.
  • 标志 (Flag): 指定数据报是否可以通过中间节点进行分段 (fragment, 分割成一些更小的数据报). IP网络必须可以处理至少576字节的数据报. 大部分网络可以处理长度大约为8KB的数据包. 例如, 如果标志位的设置为"不分段"(Don't fragment), 那么一个8KB的数据报就不能通过一个只能处理2KB数据包的网络上路由传播
  • 分段偏移量 (Fragment Offset): 指定某个数据报中的分段位置. 也就是说, 分段偏移量可以告诉我们分段属于数据报的哪一部分.
  • 生存时间(Time to Live, TTL): 生存时间最初的目的是用来测量数据报可以保持有效时间的秒钟数. 数据报在一个路由循环过程中应该能够被节点捕捉. 在数据报出现拥塞问题之前, TTL(理论上)将会终止. 实际上, 每次数据报经过一个中间网络节点, TTL都会递减. 因此, TTL字段并不能真正测量数据报可以生成的秒钟数,但是, TTL可以计算数据报到达目的地前的跳跃数(简称跳数, the number of hops)
  • 协议编号 (Protocol Number):指示哪个高级协议正在发送跟在报头后面的数据,这个域中的几个重要的值如下: 0 = 预留 (Reserved) 1 = 因特网控制消息协议(Internet Control Message Protocol, ICMP) 6=传输控制协议 (Transmission Control Protocol, TCP) 17=用户数据报协议 (User Datagram Protocol, UDP)
  • 报头校验和 (Header Checksum): 这个字段的值是通过首先计算报头中的所有16位字的反码和, 然后取求和结果的反码求得的. 校验字段本身最初设置均为0. 反码和是两个字的算术和,并将进位加到求和结果的最低位.
  • 源地址和目的地址 (Source and destination addresses): 表示数据报要到达的目的.
  • IP 选项 (IP Options): 提供某些诊断信息和路由控制.