`
waterlife
  • 浏览: 65799 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Linux协议栈之BSD和INET socket层(二)

阅读更多

BSD socket层几个函数的介绍:

sock_alloc()获取一个inode结构,并初始化返回所需socket结构

sock_release_peer()仅用于UNIX域

sock_release()用于释放关闭一个套接字,调用sock_ops_release,sock_ops是一个proto_ops结构,是一个操作函数的集合;

sock_close()call sock_release() call sock_release_peer();

sock_socket(),其中type的判断如下:

SOCK_STREAM:流式数据交换TCP

SOCK_DGRAM:报文数据交换UDP

SOCK_SEQPACKET:序列报文套接字,内核树立方式

SOCK_RAW:原始套接字,直接传输层发送数据,应用程序自行建立传输首部

SOCK_PACKET:包类型套接字,直接网络层发送,应用程序自行建立网络层首部

 

sock_socketpair()只用于UNIX域,应用于两个进程间交换数据,类似于管道;

 

sock_accept()判断SO_ACCEPTCON标志置1,然后调用sock_alloc()分配一个新的套接字,再用sock->ops->dup拷贝监听套接字设置到新的套接字。

 

INET层:

proto数据结构,定义了传输层操作的一些列函数指针和字段,每个传输层协议都对应一个proto字段。对核对于管理proto数据结构,通过一个sock_array[]数组来实现并通过进程通行的端口作为下标插入到此数组中。sock_array有256个元素,每个元素都是一个链表,而端口号范围可以达到65536,其中1024以下保留给系统使用。具体的计算方法是取余:

n%SOCK_ARRAY_SIZE=N

分享到:
评论

相关推荐

    BSD的TCP/IP协议栈

    BSD的TCP/IP协议栈BSD的TCP/IP协议栈BSD的TCP/IP协议栈BSD的TCP/IP协议栈

    Linux内核网络栈源代码情景分析.pdf

    具体内容包括网络栈总体架构分析、网络协议头文件分析、BSD socket 层实现分析、INET socket 层实现分析、网络层实现分析、链路层实现分析、网络设备驱动程序分析、系统网络栈初始化等内容。 本书适合 Linux 网络...

    BSD协议栈路由模拟器

    BSD协议栈路由模拟器 2.0 <br>操作说明: <br>本软件是利用winpcap的库文件与网卡进行交换,运行前请安装winpcap3.0以上版本。 支持路由查询配置功能,含ospf

    LINUX-1.2.13内核网络栈实现.pdf

    具体内容包括网络栈总体架构分析、网络协议头文件分析、BSD socket层实现分析、INET socket层实现分析、网络层实现分析、链路层实现分析、网络设备驱动程序分析、系统网络栈初始化等内容。 本书适合Linux网络开发...

    linux TCP IP协议栈源码解析

    linux内核TCP/IP协议栈解析,Linux的网络协议栈Linux的协议栈其实是源于BSD的协议栈,它向上以及向下的接口以及协议栈本身的软件分层组织的非常好,适合中、高级开发人员

    Linux协议栈阅读笔记

    一些概念  微内核(Microkernel kernel): 在微内核中,大部分内核都作为独立的进程在特权状态下运行,...BSD风格就是通常说的 socket、bind、connect、listen、send和recv等系统接口的调用风格。 ..... ..... .....

    理解Linux网络栈(1):Linux网络协议栈简单总结

    (1)Socket应用层的各种网络应用程序基本上都是通过LinuxSocket编程接口来和内核空间的网络协议栈通信的。LinuxSocket是从BSDSocket发展而来的,它是Linux操作系统的重要组成部分之一,它是网络应用程序的基础。从...

    Linux内核网络栈源代码情景分析

    具体内容包括网络栈总体架构分析、网络协议头文件分析、BSDsocket层实现分析、INETsocket层实现分析、网络层实现分析、链路层实现分析、网络设备驱动程序分析、系统网络栈初始化等内容。, 《Linux内核网络栈源代码...

    iPhone网络通讯之BSD Socket篇

    iPhone网络通讯之BSD Socket篇 iPhone网络通讯之BSD Socket篇

    VxWorks网络协议栈体系全解

     VxWorks网络协议栈是VxWorks内部的一个BSD4.4兼容的实时TCP/IP协议栈,它从基于BSD4.3的协议栈升级而来,增加了完全 的路由支持以及Internet的一些新特性,使得VxWorks的网络性能更加优越。    

    tcpip协议栈卷三源码

    TCP IP协议栈 第三卷参考代码,C语言编写

    winsocket -BSD socket 入门讲义

    winsocket -BSD socket 入门讲义

    BSD Socket

    cocos2d-x c++ BSD Socket.

    通信与网络中的你知道Linux网络协议栈吗?

     Linux的协议栈其实是源于BSD的协议栈,它向上以及向下的接口以及协议栈本身的软件分层组织的非常好。  Linux的协议栈基于分层的设计思想,总共分为四层,从下往上依次是 :物理层,链路层,网络层,应用层。  ...

    BSD Socket Interface Programmer’s Guide Edition 6

    Unix/Linux BSD 套接字(Socket) 编程必备

    ios bsd socket 客户端发送和接收数据

    ios bsd socket 客户端发送和接收数据

Global site tag (gtag.js) - Google Analytics