UNIX网络编程--TCP/IP(2)

OSI模型

描述网络中各协议层的一般方法是国际标准化组织(ISO)的计算机通信开放系统互连(open systems interconnection,OSI)模型。这是一个七层模型,如图1.14所示,图中同时给出了与网际协议族的近似映射。
在这里插入图片描述
网络层由IPv4和IPv6协议处理。传输层可以选择TCP或UDP。图1.14中的网际协议族,在TCP与UDP之间留有一个间隙,指出应用程序可以绕过传输层而直接使用IPv4或IPv6。这称为原始套接口(raw·socket)。
OSI模型的上面三层合并成一层,称为应用层。这就是Web客户(浏览器)、Telnet客户.Web服务器、FTP服务器或其他应用进程所在的层。对于网际协议,OSI模型的上三层协议没什么区别。
套接口和XTI是上三层(应用层)到传输层的接口。

为什么套接口和XTI都提供OSI模型上三层与传输层的接口?

有两条理由,它们已标在图1.14的右侧。第一条理由是上三层处理应用程序(,FTP,Telnet或HTTP)的细节,不大知道通信细节,下四层则不大知道应用程序,但能处理所有的通信细节;发送数据,等待确认,给无序到达的数据排序,计算与验证校验和等等。第二条理由是上三层通常形成用户进程,而下四层通常作为操作系统内核的一部分提供。Unix与其他现代操作系统都提供分隔用户进程与内核的机制。因此,在第4层和第5层之间的接口很自然成了应用程序编程接口(API)

BSD发展史

在这里插入图片描述

网络拓扑发现

图1.16所用的网络拓扑,大多数Unix系统都有两个命令可用来了解网络细节:

netstat和ifconfig

下面举一些不同于图1.16系统的例子。通过阅读系统上这些命令的手册页面,就可以获悉有关它们的输出信息的详情.你还必须注意,有些厂商把这些命令存放于/sbin或/usr/sbin等管理目录,而不是普通目录/usr/bin,因此这些目录可能不在通常的shell搜索路径(PATH)中。
在这里插入图片描述

  1. netstat -i提供接口信息,也可用标志-n输出数值地址而不是试图找出网络名字。下面例子显示接口和它们的名字。
    在这里插入图片描述
    其中回馈(loopback)接口称为lo,以太网接口称为eth0。下面例子显示支持IPv6的一台主机的信息。
    在这里插入图片描述
    netstat-r输出路由表,这是另一种确定接口的方法。一般使用-n标志输出数值地址。本命令还输出缺省路由器的IP地址。
    在这里插入图片描述
    给定接口名字,执行ifconfig可获得每个接口的详细信息。
    在这里插入图片描述
    这里输出了IP地址、子网掩码和广播地址。MULTICAST标志通常指示主机支持多播。
    在这里插入图片描述
    查找本地网络中多个主机P地址的方法之一是针对广播地址执行ping命令。
    在这里插入图片描述

64位体系结构

90年代中期到未期倾向于64位体系结构和64位软件。理由之一是进程内部可使用更大的编址长度(即64位指针),以允许进行大内存寻址(超过2字节)。已有的32位Unix系统上的一般编程模型称为ILP32模型,表示整数(I、长整数(L)和指针§都占用32位;64位Unix系统上最为流行的编程模型称为LP64模型,它表示长整数(L)和指针§都占用64位。
在这里插入图片描述
ANSIC创造了size_t的数据类型,它用于诸如malloc的参数(分配的字数),read和write的第三个参数(读或写的字节数)等地方。在32位系统中size_t是32位值,但在64位系统中它必须是64位的值,以发挥大寻址模型的优点。这意味着64位系统中也许含有把size_t定义为unsigned long 的typedef 语句。网络API的问题是Posix.1g 的某些草案说明,存放套接口地址结构大小的函数参数具有size_t的数据类型(如.bind和connect的第三个参数)。

同样,某些XTI结构也含有数据类型为long的成员(如,t_info和.t_opthdr结构)。当Unix系统从ILP32改变成LP64模型时,两者都将从32位的值变成64位的值。上述两例实际并不需要使用64位的数据类型:套接口地址结构的长度最多也不过是几百个字节,给XTI结构成员使用long数据类型也是错误的。

我们将见到的是创造新的数据类型来处理这些情况.套接口API使用socklent数据类型作为套接口地址结构的长度。XTI则使用t…scalar…t和t…uscalar…t数据类型。不把这些值由32位改为64位的理由是,这将使那些已在32位系统编译的应用程序的二进制代码兼容于新的64位系统。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值