协议类似于合同,是双方交流的标准。传输层的标准有TCP和UDP。
TCP是面向连接的、安全可靠的,效率低,相当于打电话。打电话你必须拨上号对方通了才能说话,所以比较可靠。它里面有三次握手,第一点名,第二答道,第三确认。它的上一层应用层有这些应用:http协议、ftp、以及发邮件的SMTP。
UDP是非面向连接,传输不可靠,效率高,类似于寄包裹。快递员是怎么把这个包裹送到你手上的?是根据包裹上的地址!如果包裹上的地址写错了,或者这个人不存在,那这个包裹就有可能丢失。好比你写明信片,写好了只管往邮筒里面一塞,塞完了之后达没达到对方不知道。这里的不可靠不代表不能用,比如视频时的花点、卡顿没关系。它的上一层的协议应用层有这些:DNS域名解析、SNMP简单网络协议(我们用到的各种监控,视频管理系统都是这种协议)
这些都是传输层的底层协议,传输层和应用层通过socket(套接字)打交道。
socket就好比插座,插上就能用。
传输层往应用层直接使用一个“插座”,这个叫套接字(Socket)。
基于TCP和UDP的Socket编程:
基于TCP的Socket需要建立连接,双方存在主次之分,【先建服务器后建客户端】,比如拨打114查某一个号码,必须先建立好114的服务,然后我们才能做查询,没有这个服务,其他的都操作都无用。
基于UDP的Socket双方不需要建立连接,完全平等,比如QQ聊天,你聊一句对方聊一句,收没收到不用管,这个东西就叫非面向连接的。