对网络连接的理解

系统 1929 0
一、连接有两类,一类是实连接,例如打固定电话,在线路上固定占用了一个通道,这个通道在通话期间是一直存在的;另一类是虚连接,TCP的连接就是这种,客户端连接到服务器端后,连接虽然建立了,但是实际上物理上并不是真正存在这样的通道。他们之间的连接是靠之间的数据包的往来确立的。所以,对于两台机器之间网络断掉,相互是不可能知道的,并没有什么东西能通知双方,而只能是通过事后发送数据包才能出现了问题,具体什么问题还需要进行判断。一般tcp连接都需要使用一些技术手段来维持,有两种方法:一是利用tcp协议本身,设置SO_KEEPALIVE;二是应用层增加链路检测包。
二、要明白应用进程和内核之间的区别,我们写一般的sokect程序,应用程序只是调用系统提供的函数接口,真正的实现都是内核来完成的,由于网络的特殊性,socket函数有着自己的一些特性,其收发函数都只是本机之间的操作,并不真正涉及到网络。例如send发送函数,返回成功只是表示我们把数据给了内核的发送缓冲区,并不是已经从网卡发送出去了,至于是否发送成功,send函数本身是不可能获得的;接收函数类似,只是表示从内核接收缓冲区拷贝到应用进程成功。

对网络连接的理解


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论