其他
这篇文章是球友寒食君的投稿,如果你有优秀的文章也想投稿,欢迎与我联系。每个人每天都在依赖网络通信,那么这些设备之间究竟是如何通信的?我在这里写下这篇文章,你却能在千山万水之外阅读它。今天简要谈一下通信协议。网络通信协议网络通信协议主要是对信息的传输速率、传输代码、代码结构、传输控制步骤、差错控制等做出的规定并制订的标准。协议主要由以下三个部分组成:语义:需要的控制信息以及执行的动作语法:交换的数据或控制信息的格式与结构时序:双方的应答关系,包括速度的匹配和顺序OSI参考模型OSI不是规范,准确的来说,是一个抽象的参考模型,他没有提供任何具体的实现标准。现有网络大多数可以通过OSI模型来进行分析,了解OSI模型有助于分析和管理网络。OSI是一个分层结构,共有七层:TCP/IP协议簇介绍TCP/IP协议簇先于OSI参考模型开发,因此层次无法完全和OSI模型对应起来。他将不同的通信功能集成到不同的网络层次,形成了一个具有四层的体系结构。有人也将其分为5层,将链路层从网络接口层剥离出来。各层的职责网络接口层:主要负责向网络物理介质发送/接收数据包。因为TCP/IP没有对物理层和链路层进行定义,所以它支持各种底层的网络技术和标准。网络层:负责处理IP数据包的传输、路由选择、流量控制和拥塞控制。ARP/RARP协议用于将IP地址与底层物理地址进行相互转换。IP协议既是网络层的核心协议,也是整个TCP/IP协议簇的核心协议。传输层:为两台主机提供端到端的通信。传输层主要包括传输控制协议TCP(提供可靠的面向连接的传输服务),用户数据报协议UDP(简单高效的无连接的服务)。可以根据上层应用的实际需求来选择应用层:直接为特定的应用程序提供服务,如文件传输协议FTP,简单邮件传输协议SMTP,超文本传输协议HTTP。重要概念面向连接与无连接:想要通过面向连接的协议在两台主机之间通信,需要两台主机之间首先建立连接,才能通信。如何建立/断开连接?这就涉及到三次握手和四次挥手。后续再讲。而无连接的协议在通信前不需要建立连接,就像寄信,只需要知道目的地地址就行了(请注意,这只是一个比喻,发邮件并不是使用的无连接协议,因为无连接的协议通常是不可靠的)可靠与不可靠可靠的协议保证数据能传输到目的地,而且内容不会发生变化。TCP就是一种可靠的协议。不可靠的协议不能保证将数据传送到目的地,但是它会尽力而为,还会检验送到目的地的数据是否完整。UDP就是一种不可靠的协议。那么有人可能会说了?既然有了可靠的协议,还需要不可靠的协议干什么?不是多此一举吗?非也,下面详细说说TCP和UDP的优缺点。字节流与数据报字节流协议表示可以将发送方传输给接收方的数据看作是字节流。先发出的数据将会被先接收到。TCP属于字节流协议。数据报协议是将数据一个个传送,没有顺序。UDP就是一种数据报协议。套接字(Socket)网络层中,IP利用协议号来指定传输协议,传输层中,TCP/UDP使用端口号来区分应用程序。将一个IP地址和一个端口号结合,就形成了一个套接字(也称为插座),套接字用来标明网络中的唯一网络进程。TCP与UDP的优缺点TCP:优点: