美文网首页
Socket编程(1)-网络程序设计接口

Socket编程(1)-网络程序设计接口

作者: Veahow | 来源:发表于2019-01-16 13:30 被阅读0次

1 网络程序设计接口

针对网络边缘上的主机进行应用编程,以五层模型为对象进行讨论。五层模型分为应用层、传输层、网络层、数据链路层、物理层共五层,每一层都有对应的通信协议与开发接口,在此对一些开发接口进行简要介绍。

五层模型 接口编程
应用层(Application) Web/RPC/中间件编程
传输层(Transport) NetBIOS编程(Windows环境)相当于OSI的会话层
网络层(Network) LibPcap/WinPcap、Libnet、Libnids、Libicmp
数据链路层(Data Link) 硬件相关的直接网卡编程(难以掌握)
物理层(Physical)
  • 数据链路层:一般是进行直接网卡编程,这类编程时硬件相关的,难以掌握。按照个人理解,这类属于驱动程序,厂家都帮忙做好了,所以不需要再特殊掌握。在网卡驱动之上,可以基于Packet Driver编程,这类编程接口屏蔽了网卡的实现细节,适用于所有的网卡。针对于Windows操作系统还有基于NDIS的网络编程,在此不做过多了解。
  • 网络层:常用一些函数库如LibPcap/WinPcap、Libnet(网络分组或者数据构造的发送)、Libnids(网络入侵检测)、Libicmp(ICMP协议报文构造与处理)等等。
  • 传输层:NetBIOS编程,目前看来已经过时了。
  • 应用层与传输层之间:套接字socket编程,所需要学习的编程接口,这类接口也是最常用的。
  • 应用层:Web/RPC/中间件编程,常见的就是Web开发。

2 应用编程接口API

  • API(Applicaton Programming Interface):应用进程的控制权和操作系统的控制权进行转换的一个系统调用接口。
主机1 通信协议 主机2
应用层(Application) 应用层协议 应用层(Application)
传输层(Transport) TCP or UDP 传输层(Transport)
网络层(Network) 网络层(Network)
数据链路层(Data Link) 数据链路层(Data Link)
物理层(Physical) Internet 物理层(Physical)

不同主机的应用层,通过应用层协议来进行数据交互,事实上是利用底层的传输层遵循TCP/IP或其他协议进行传输,同样地通过每一层的编程接口将数据交给下一层,逐层交换到最底层的物理层,最后通过实际存在的物理介质(如网线、光缆等)进行传输,成功传到另一台主机上。
应用层是主要由应用进程控制,应用进程传输数据遵循应用层协议,然后交由操作系统控制的传输层来传输数据。应用层和传输层可以通过socket这样一个接口进行数据交接,其实就是应用进程的控制权和操作系统的控制权进行转换。

3 典型接口介绍

  • Berkeley UNIX操作系统定义了一种API称为套接字接口(socket interface),简称套接字(socket)。
  • 微软公司在其操作系统中也采用了套接字接口API,进行的扩展,形成了稍有不同的API,Windows Socket Interface 即WINSOCK。
  • AT&T为其UNIX系统V定义了一种API,简写为TLI(Transport Layer Interface)。

相关文章

  • Socket编程(1)-网络程序设计接口

    1 网络程序设计接口 针对网络边缘上的主机进行应用编程,以五层模型为对象进行讨论。五层模型分为应用层、传输层、网络...

  • Socket编程

    1. 什么是socket? socket可以看成是用户进程与内核网络协议栈的编程接口; socket不仅可以用于本...

  • 二十四:Python之socket

    socket:通过网络完成进程间通信的方式,socket也被称作 ‘套接字’ Socket本质是编程接口(API)...

  • iOS网络操作

    iOS提供的API socket 方式 IOS 提供的socket 方式的网络编程接口为CFSocket。CFSo...

  • Python网络编程

    Python网络编程 1、socket编程, 类:socket 1.server端 # socket第一个参数:地...

  • Socket和TCP的对应关系

    前言   使用TCP/IP网络协议时,一般都是基于Socket的API进行网络编程。应用程序通过Socket接口和...

  • socket

    1.概念 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的...

  • 08.socket

    1.概念 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的...

  • 建立网络通信

    1.概念 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的...

  • Socket 是如何工作的?

    Socket本质是网络通信编程接口(API),平时我们用到的high-level网络编程底层实现其实就是Socke...

网友评论

      本文标题:Socket编程(1)-网络程序设计接口

      本文链接:https://www.haomeiwen.com/subject/ezbudqtx.html