socket收发消息底层原理

socket收发消息原理

socket收发消息原理
服务端和客户端想要通信,底层需要internet物理连接,网卡配备有IP地址和MAC地址,网卡收发的消息是字节流。服务端程序和客户端程序工作中应用层,服务端程序要想发包,必须一层一层往下走,走到网卡那一层,将数据转化成二进制才能送到客户端 ,客户端网卡收到包,一层一层往上送,然后客户端程序才能接收到数据。客户端发包服务端接收也是如此。

内存分为用户态和内核态。简单来说,内核态内存是操作系统运行时内核代码占用的内存;用户态是用户程序运行时占用的内存。两者不能混在一起,操作系统的一个目的是操作底层硬件,如果能混在一起,没有用户态和内核态之分,意味着应用程序就能够直接操作底层硬件 ,便没有权限划分一说,那便不需要操作系统。应用软件想要操作硬件必须通过操作系统发起请求

socket程序要想把数据发出去,需通过底层网卡,意味着应用程序要操作底层硬件,必须通过操作系统,因此socket应用程序收发消息都是通过内核态内存

发数据时,数据从用户态内存发送到内核态内存,发送到内核态中的数据由操作系统接收,操作系统再操作网卡把数据转化成二进制,然后发送到对端。发到对端以后,由对端的网卡接收,然后交给对端的操作系统,相当于交给了内核态内存,然后用户态的socket应用程序再从内核态中取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值