用户数据报协议.即UDP,是一个面向数据报的简单运输层协议:进程的每次输出操作仅仅产生一个UDP数据报,从而发送 一个IP数据报. 进程通过创建一个Internet域内的SOCK_DGRAM类型的插口,来訪问UDP. 该类型插口默认地称为无连接的.每次进程发送 数据时,必须指定目的IP地址和port号. 每次从插口上接收数据报时.进程能够从数据报中收到源IP地址和port号. UDP插口也能够被连接到一个特殊的IP地址和port,这样,全部写到该插口的数据报都被发往该目的地,并且仅仅有来自该IP…
接口层包含在本地网上发送和接收分组的硬件与软件. 我们用设备驱动程序来表示与硬件及网络接口通信的软件,网络接口是指在一个特定网络上硬件与设备驱动器之间的接口. Net/3接口层试图在网络协议和连接到一个系统的网络设备的驱动器间提供一个与硬件无关的编程接口.这个接口层为全部的 设备提供下面支持. 1.一套精心定义的接口函数. 2.一套标准的统计与控制标志. 3.一个与设备无关的存储协议地址的方法. 4.一个标准的输出分组的排队方法. 这个不要求接口层提供可靠地分组传输,仅须要提供最大努力的服务.…
协议层使用协议控制块(PCB)存放各UDP和TCP插口所要求的多个信息片.Internet协议维护Internet协议控制块 (internet protocol control block)和TCP控制块(TCP control block).由于UDP是无连接的.所以一个端结点须要的 全部信息都在Internet PCB中找到,不存在UDP控制块. Internet PCB含有全部UDP和TCP端结点共同拥有的信息:外部和本地IP地址.外部和本地端号.IP首部原型.该端结点使用的 IP选项以…
11.1 引言 UDP 是一个简单的 面向数据报 的运输层协议:进程的每个 输出操作 都正好产生一个 UDP数据报,并且组装成一份待发送的IP数据报. 这与 TCP 不一样,它是 面向流字符 的协议,应用层程序 产生的全体数据 与 真正发送的单个IP数据报 可能没有联系. UDP协议并不提供超时重传,出错重传等功能,也就是说其是 不可靠(unreliable)的协议. UDP 把应用程序传给IP层的数据发送出去,但是并不能保证它们都能到达目的地. 应用程序必须关心 IP数据报 的长度.如果它超过…
D类IP地址(224.0.0.0到239.255.255.255)不识别互联网内的单个接口,但识别接口组,被称为多播组. 单个网络上的组成员利用IGMP协议在系统之间通信. 多播路由器用多播选录协议.如DVMRP(distance vector multicast routing protocol.距离向量多播路由选择协议)传播成员信息. 在Net/3中,假设某个接口支持多播.那么在接口ifnet结构中的if_flags的标识IFF_MULTICAST比特就被打开. RFC 1112描写叙述了多…
内核的各种协议并不直接使用前面提供的函数来訪问选路树,而是调用几个函数:rtalloc和rtallocl是完毕路由表查询的两个 函数:rtrequest函数用于加入和删除路由表项:另外大多数接口在接口连接或断开时都会调用函数rtinit. 选路消息在两个方向上传递信息. 进程(route命令)或守护进程(routed或gated)把选路消息写入选路插口.以使内核加入 路由.删除路由或者改动现有的路由.当有时间发生时,如接口断开.收到重定向等,内核也会发送选路消息.进程通过选路 插口来读取它们感兴…
ICMP在IP系统间传递差错和管理报文,是不论什么IP实现必须和要求的组成部分.能够把ICMP分成两类:差错和查询.查询报文 是用一对请求和回答定义的.差错报文通常包括了引起错误的IP包的第一个分片的IP首部(和选项),加上该分片数据部分 的前8个字节. 下图显示了全部眼下定义的ICMP报文.双线上面的是请求和回答报文,双线以下的是差错报文. PRC_栏显示了Net/3处理的与协议无关的差错码和ICMP报文之间的映射.对请求和回答,这一列是空的.由于在这样的情况 下不会产生差错.假设对一个ICM…
本章介绍IP分组的结构和主要的IP处理过程,包含输入,转发和输出. 下图显示了IP层常见的组织形式. 在之前的文章中.我们看到了网络接口怎样把到达的IP分组放到IP输入队列ipintrq中去,并怎样调用一个软件中断,例如以下图所看到的: 由于硬件中断的优先级比软件中断的要高,所以在发生一次软件中断之前.有的分组可能会被放到队列中.在软件中断中,ipintr 函数不断从ipintrq中移走和处理分组,直到对垒为空.在终于的目的地,IP把分组重装为数据包,并通过函数调用把该数据包直接 传给适当的运输…
IP首部内有三个字段实现分片和重装:标识字段(ip_id).标志字段(ip_off的3个高位比特)和偏移字段(ip_off的13个低位 比特).标志字段由3个1bit标志组成.比特0是保留的必须为0,:比特1是"不分片"(DF)标志:比特2是"很多其它分片"(MF)标志. Net/3中,标志和偏移字段结合起来,由ip_off訪问,例如以下图所看到的: ip_off的其它13bit指出在原始数据报内分片的位置,以8字节为单位计算.因此,除最后一个分片外,其它的分片都希…
Net/3组把协议关联到一个域,而且用一个协议族常量来标识每一个域.Net/3还通过全部的编址方法将协议分组. 在一个域中 的每一个协议使用同类地址.而且每种地址仅仅被一个域使用.作为结果,一个域能通过它的协议族或地址族常量唯一标识. 下图是是我们讨论的协议和常量. 1.domain结构 一个协议有一个下图所看到的的domain结构来表示. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVE9ERDkxMQ==/font/5a6L5L2T/fontsi…