socket和tcpip关系,再解析socket函数

参考书本《图解TCP/IP》


详细阅读概述的tcpip协议,偶尔想到了我们编写程序时使用到的socket.h文件,我们正是使用它来实现tcpip通信的。

那么问题来了,socket到底跟tcpip有什么关系呢?


socket其实是对tcpip的一种封装,在在tcpip的传输层和应用层之间。

仔细观察socket的每一个函数,都充分证明OSI模型特性被包含在其中。


举个例子:建立socket通信通道函数socket(int domain, int type, int protocol);

参数1:装载了套子节创建所需的通信域,也就是4~7层寻址的IP地址,这意味着我们将选择了local、iPv4或iPv6等等的通信域

参数2:代表了使用Supported address families,对应OSI的会话层和传输层,将代表了我们这个通信域是怎么工作的,对字节要求、通信方向等等有了要求。

参数3:选择使用何种传输协议,对应OSI的应用层。


如果上述的理解,是没错的话,那么,“socket其实是对tcpip的一种封装,在在tcpip的传输层和应用层之间”这话,还真的有点道理的。

在《图解TCP/IP》已经明确的一点是:TCP/IP分层模型中的互联网层与传输层的功能常常由操作系统提供。结合linux提供的linux/socket.h和linux/tcp.h两个文件所显示的,已经有足够理解去证实上面的那一句话是有可信性的。

那么,TCP/IP模型中的应用层里面实际上是OSI模型的应用层+表示层+会话层,这就意味着,协议、数据结构、连接与断开等操作在TCP/IP模型里面都将集中出现在应用层中,而恰好,socket就是实现了这种“集中”,现在就基本上可以预判传输层中的TCP、UDP由系统提供,而它自己又为socket提供传输数据能力,接着TCP/IP的应用层调用socket接口,实现了一系列的操作/协议等。


这种解析,我将不断实践验证。有了解的朋友留言指导,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值