Chinaunix首页 | 论坛 | 博客
  • 博客访问: 362709
  • 博文数量: 87
  • 博客积分: 1322
  • 博客等级: 少尉
  • 技术积分: 915
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-25 18:04
文章分类

全部博文(87)

文章存档

2013年(10)

2012年(9)

2011年(68)

分类: LINUX

2012-02-24 16:36:35



BSD Socket 接口
--------------------------------------------
    这是一个通用的接口,它不仅支持各种网络工作形式,而且还是一个交互式通讯机制。一个套接字描述一个通讯连接的一端,两个通讯程序中各自有一个套接字来描述它们自己那一端。套接字可以被看成一个专门的管道,但又不象管道,套接字对它们能容纳的数据量没有限制。Linux支持多种类型的套接字。这是因为每一类型的套接字有它自己的通信寻址方法。Linux支持下列套接字地址族或域: 
    UNIX         Unix域套接字
    INET         Internet地址族支持通过TCP/IP协议的通信
    AX25         Amateur radio X25
    IPX          Novell IPX
    APPLETALK    Appletalk DDP
    X25          X25

    有一些套接字类型支持面向连接的服务类型。并非所有的地址族能支持所有的服务类型。Linux BSD套接字支持下列套接字类型:
    stream
    这些套接字提供可靠的双工顺序数据流,能保证传送过程中数据不丢失,不被弄混和复制。Internet地址中的TCP协议支持流套接字。 
    datagram
    这些套接字提供双工数据传送,但与流套接字不同,这里不保证信息的到达。即使它们到达了,也不能保其到达的顺序,甚至不能保证被复制和弄混。这类套接字由Internet地址族中的UDP协议支持。 
    raw
    允许直接处理下层协议(所以叫“raw”)。例如,有可能打开一个raw套接字到以太网设备,看raw IP数据传输。 
    reliable delivered messages
    与数据报很象,但它能保证数据的到达。 
    sequenced packets
    与流套接字相似,但的数据包大小是固定的。 
    packet
    这不是一个标准的BSD套接字类型,而是一个Linux特定的扩展,它允许在设备级上直接处理包。 


    对BSD socket进行准确操作要依赖于它下面的地址族(协议族)。象虚拟文件系统一样,Linux从BSD socket层抽象出socket接口,应用程序和BSD socket由每个地址族(协议族)的特定软件来支持。内核初始化时,地址族被置入内核中并将自己注册到BSD socket接口。之后,当应用程序建立用使用BDS sockets时,在BSD socket与它支持的地址族之间将产生一个联接。这一联接是由交叉链接数据结构和地址族表特定支持程序产生。例如,每当应用程序建立一个新的socket,就会有一个BSD socket接口用的地址族特定socket建立程序。
    proto_ops(socket->ops)结构由地址族类型和一系列指向与特定地址族对应的socket操作例程的函数指针组成。



INET Socket层
--------------------------------------------
    INET socket层支持包括TCP/IP协议在内的Internet地址族。这些协议是分层的,一个协议使用另一个协议的服务。Linux的TCP/IP代码和数据结构反映了这一分层模型。它与BSD socket层的接口要通过一系列Internet地址族socket操作,这一操作是在网络初始化时就已经注册到BSD socket层的。BSD socket层从已注册的INET proto_ops数据结构中调用INET层socket支持例程来为它执行工作。例如,一个地址族为INET的BSD socket建立请求,将用到下层的INET socket的建立函数。在这些操作中,BSD socket层把用来描述BSD socket的socket 结构传构到INET层。为了不把BSD socket与TCP/IP的特定信息搞混,INET socket层使用它自己的数据结构 --sock,它与BSD socket结构相连。这意味着后来的INET socket调用能够很容易地重新找到sock结构。sock结构的协议操作指针(sock->
sk_prot)也在初始化时建立,它依赖与被请求的协议。如果请求的是TCP,那么sock结构的协议操作指针将指向TCP连接所必需的TCP协议操作集。
阅读(3463) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

最大行业软件2012-11-16 09:27:43

Oasys.Pile.V19.0
Oasys.Pilset.V19.1
Oasys.Safe.V19
Oasys.Slope.V19
Oasys.Xdisp.V19

Plaxis V8.5
Plaxis 3D Foundation V1.6
PLAXIS_3D_TUNNEL_V1.2
Plaxis.2D.V9.02.612
UDEC31 岩土分析软件
Z_soil2D V6.13 岩土分析软件
代尔夫特(DELFT)岩土所计算软件
DIGITAL_CANAL系列软件
LEAP_SOFTWARE_PRESTO_V8.6.1
LEAP_SOFTWARE_RC_PIER_V4.01桥梁工程软件
LEAP_SOFTWARe_LEAP_BRIDGE_V6.0
LEAP_SOFTWARE系列软件
SAM-LEAP5.V5.10D 桥梁设计