网络通信与我们生活息息相关,特别是今天发达的智能手机、物联网这些都离不开网络通信。今天分享一下关于socket网络通信的内容。
1 关于socket
学习过网络编程,或者网络开发的朋友都应该听说过socket。
socket又叫套接字,是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将i/o插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是ip地址与端口的组合。
socket是网络通讯经常采用的一种方式,它不是一个具体的物件也不是像http类的通讯协议。你可以把它看成是一组基于tcp和udp通信协议的接口,socket其实就是一个门面模式,它把复杂的tcp/ip协议族隐藏在socket接口后面,对用户来说,一组简单的接口就是全部,让socket去组织数据,以符合指定的协议。
2 socket基本概念
在了解socket之前你需要对计算机通讯的分层有个大概的了解,网络七层协议,osi:open system interconnection,也叫开放式系统互联参考模型。
这里不详解osi,放一张很好的图分享给大家:
上面图详细讲了基本整个计算机通信的分层架构,很多我也不了解没我们只看我们关心的tcp/ip,其分层简化图示如下:
3 理解socket了解了基本分层机构后,我们现在来形象的理解一下socket到底是什么。这里有一个很形象的实例可以帮助我们很好的理解socket,以物流为例。
我们要传送的数据就是物流中的货物,ip就是发货人和收货人的联系方式,那么socket是什么?大家想想这送货这这一流程还缺少啥?对呀,物流公司啊,对吧!物流公司就是那个socket,他负责帮你处理送货的琐碎事情,比如你的货物该怎么打包、该怎么防止易碎物品破碎、该用什么方式运输、等等,如果是境外货物还牵涉到报关等等一系列复杂琐碎的事情,这些物流公司(socket)帮你处理好了。示意图如下:
4 tcp与udp的区别以及三次握手和四次挥手
前面讲到socket就相当于是物流公司,那么tcp协议就相当于是:假设你是寄货方,你要寄给你朋友一份礼物,你首先得去物流公司去寄,这样你在物流公司就相当于建立了一个事物(socket实例)。然后物流公司有两种服务方式让你选择(tcp和udp)。
先说tcp,tcp这个协议它比较保守,物流公司说我必须确保你朋友会接收这份礼物,不然它不送。于是物流公司就回去联系你朋友。然后联系内容大致如下:
物流:你好,我这里有个你朋友寄的礼物要给你,你收吗?你朋友:ok,收,什么时候发,多久到?物流:现在就发,大概要12小时到。
然后物流才开始发货,并且会给你们一个物流单号,这个单号就是关于这份货物你和你朋友的发货收货凭证。这就是所谓的三次握手。示意图:
物流发送完后还会联系你朋友,大致对话内容:
物流:你好,货物已发送,请注意查收你朋友:好的。货物送到,你朋友:ok,货物收到,你们可以结案物流:好的,我结案了。
这就是所谓的四次挥手(拜拜);
(注释:三次握手四次挥手这都是socket在你建立的时候根据你选择的协议确定好的)
这样是不是很麻烦,估计也就顺丰有这服务了,其他大部分公司还是没有这么贴心的服务的,他们可能就是udp协议方式了。
udp比较简单,当你用物流(socket)寄货物的时候物流公司并不会管你朋友是否能联系上,是否愿意接收,它只负责将你的货物发出去就完事。这中间是不需要通知你朋友的,你和你朋友也不需要有连接,这就是所谓的无连接。
5 两种协议区别
udp 常用于一次性传输比较少量数据的网络应用中,udp 也常用于多媒体应用(如 ip 电话、实时视频会议、流媒体等),显然,可靠数据传输对于这些应用来说并不是最重要的,但 tcp 的拥塞控制会导致数据出现较大的延迟,这是它们不能容忍的,我们最熟悉的视频通话大部分就是用的udp协议。
tcp面向连接,即发送数据之前需要建立连接,并且tcp是拥有拥塞机制的,当前部分数据还没有被接收完,后部分的数据会被阻塞知道前部分数据传递ok后才会继续传递后半部分,所以通过tcp连接传送的数据,无差错,不丢失,不重复,且按序到达;在数据完整性、安全性要求较高的场景需要使用tcp协议,比如你传送重要办公文件、图片等,这些东西丢包都是会影响数据品质的。
智慧医疗快发展为什么给RFID带来了好处
l6562d引脚功能及应用电路
关于PCB布线的20个问答
谷歌发布Pixelbook Go笔记本,采用ChromeOS系统
Qorvo发布碳化硅场效应晶体管产品
谁来解答一下Socket究竟是什么?
禾多科技入选「2023年度数智化应用优秀案例」
智能船舶视觉感知系统设计方案
研华工业存储多宽温解决方案,面向工业机器人应用与挑战
性价比高,音质好的蓝牙耳机,兼顾功能,平价降噪蓝牙耳机之选
美国指控谷歌利用排他性协议来主导新技术
阶梯波发生器之二
如何消除标准铂电阻温度计温度漂移
盘点10大无线网络连接技术
手机通信电路板的故障及检修方法
多级放大电路的耦合方式及性能指标估算
中兴通讯与辽宁移动和鞍钢集团发布了首个5G+智慧钢铁企业产品方案
物联网项目中哪一些人是关键的
某卫星天线驱动用步进电机性能仿真分析
对于HRM立磨辊芯磨损,哪种修复工艺可延长寿命