协议,即是约定,是计算机网络中进行数据交换而建立的规则、标准或约定的集合。 若是通信双方的数据格式,传输方式,字符集不一样,那么两者之间很难进行通信,因为双方都不认识对方的标准,要想传递不同的信息,双方就得约定好一个协议,按照这个协议的规定,双方统一好数据的格式,这样就可以完成通信。打个比方,你在网上与一个日本网友交流,你讲中文,他讲日语,谁都听不懂对方的语言。但是如果双方约定好一起讲英语,这样两者就可以进行正常的交流。 网络协议由三部分组成,语义,语法,时序。 在网络通信中,因为通信是个极为复杂的过程,它包含了很多步骤,各个步骤之间又存在着许多关联。 常见的层次模型有两种,一种是OSI七层模型,一种是TCP/IP五层模型(四层模型)。 这里可以学习一下这篇文章,写的非常好 OSI七层模型自上而下分别是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 应用层:网络服务与最终用户的一个接口 但是这种模型既复杂又不实用,因为他把功能相近的应用层,表示层和会话层分开实现,所以现在大部分都使用将这三层合为一体的TCP/IP五层模型。 物理层一般考虑较少,有时候也会称为四层模型 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇. 这也是如今常用的分层模型 应用层:负责应用程序之间的数据沟通 ——(常用协议:HTTP、FTP、DNS、DHCP) 数据包利用网络在不同设备之间传输时,为了可靠和准确地发送到目的地,并且高效地利用传输资源(传输设备和传输线路),事先要对数据包进行拆分和打包,在所发送的数据包上附加上目标地址,本地地址,以及一些用于纠错的字节,安全性和可靠性较高时,还要进行加密处理等等。这些操作就叫数据封装。而对数据包进行处理时通信双方所遵循和协商好的规则就是协议。与邮寄物品相比,数据包本身就如同物品,而封装就如同填写各种邮寄信息,协议就是如何填写信息的规定。 这里我就简要的画一个图 1.用户信息转换为数据,以便在网络上传输 同样也是画一个图 在网络通信中,每台通信的主机之间都应该有属于自己的标志,就如同名字一样,只有拥有这种标志,才能够进行交流。就好比你想要在茫茫人海中找到一个人,就得知道他的名字,才能找到这个人。 IP地址: 端口号: MAC地址用来识别数据链路层中相连的节点,通常也可以认为是物理地址。在网卡出厂时就确定了, 不能被修改,mac地址通常是唯一的。 在网络通信时,还需要注意字节序的问题。 这里就简要说一下 在网络通信中,网络字节序采用大端的存储模式,而主机字节序根据主机不同也不一样,我们现在的家用机一般都是小端,但网络上的通信不能确保主机字节序的唯一性,因为受众是整个网络,而一旦通信的双方主机字节序不同,就会造成通信时的数据二义,所以需要确保字节序相同,就需要在通信时将主机字节序转换为通用的网络字节序。
网络协议
网络协议的概念
网络协议的组成
1. 语义
语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。
(即要做什么)
2. 语法
语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。(即要怎么做)
3. 时序
时序是对事件发生顺序的详细说明。(即做的顺序)
协议分层
所以为了将问题简单化,按照服务、协议、接口等将复杂的通信划分成层次结构,通过封装的方式,将底层的实现封装为接口提供给上层,上层也不关心底层的实现,只管去用。把原来的一个大问题,划分为一个一个的小问题,每一层分工明确,形成标准化的结构。这样不仅灵活性高,之间的耦合度也降低了,可维护性和实现的难度也得到了优化。
TCP/IP四层模型和OSI七层模型的概念
OSI七层模型
表示层:数据的表示、安全、压缩
会话层:建立、管理、终止会话
传输层:负责进程之间的数据传输
网络层:负责地址管理和路由选择
数据链路层:负责相邻设备之间的数据传输
物理层:负责物理光电信号的传输
TCP/IP五层模型(四层模型)
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求
在TCP/IP五层模型中,他将功能相近的应用层,表示层和会话层合并为应用层。
传输层:负责进程之间的数据传输 ——(常用协议:TCP、UDP)
网络层:负责地址管理和路由选择 ——(常用协议与设备:IP、ICMP、IGMP、路由器)
数据链路层:负责相邻设备之间的数据传输 ——(常用协议与设备:以太网协议、交换机)
物理层:负责物理光电信号的传输 ——(常用协议与设备:以太网协议、集线器)
数据封装与分用
封装
2.数据转换为数据段,并在发送方和接收方主机之间建立一条可靠的连接
3.数据段转换为数据包或数据报,并在报头中放上逻辑地址,这样每一个数据包都可以通过互联网络进行传输
4.数据包或数据报转换为帧,以便在本地网络中传输。在本地网段上,使用硬件地址唯一标识每一台主机。
5.帧转换为比特流,并采用数字编码和时钟方案
分用
分用很简单,就是按照直接封装的顺序,将封装的首部和尾部去掉,恢复成原来的数据。其实就是封装的反操作,又称为解封装
地址管理
而在网络通信中,也不例外。
IP地址与端口
IP地址就是网络中主机的唯一标识,无论哪个主机与哪个主机之间进行通信,都需要用到IP地址来进行定位。并且在通信时,每条数据中都会包含源端地址和对端地址,他们指定了通信的两个对象。
对于我们常用的IPV4来说,IP地址是一个uint32_t类型的数据,也就是无符号32位的整数。
我们通常也采用点分十进制的字符串来表示IP地址,如192.168.0.1。每一个字节的范围是0-255
端口号则是主机上进程的唯一标识,在编写程序时,需要告知计算机应该处理发往哪个端口的数据。
一个端口只能被一个进程占用,但是一个进程可以同时使用多个端口。 并且在通信时,每条数据也都会包含源端端口和对端端口,来指定从哪个进程发送数据,交给哪个进程进行处理
端口号是uint16_t,也就是无符号16位的整数。
MAC地址
MAC地址由48位组成,一般是16进制数字加上分割符:,如08:00:27:03:fb:19。
网络字节序与主机字节序
字节序就是CPU对数据再内存中以字节为单位的存取顺序,也就是我们通常所说的大端小端问题。
关于大小端的问题我之前有写过一篇博客
大端小端存储解析
大端存储模式:是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中。
小端存储模式:是指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算