前言:
计算机之间的传输媒介是光信号和电信号,通过“频率”和“强弱”来表示0和1这样的信息,想要传递各种不同的信息,就必须要约定好双方的数据格式。
但是这只是通信的两台主机约定好,这还是远远不够的。
比如计算机生产厂商还有很多,计算机操作系统也有很多等等。如何让所有的厂商之间都能进行相互顺畅的通信?这时候就需要约定一个共同的标准,大家都来遵守,这就是网络协议。
网络协议:
网络协议:计算机网络中进行数据交换而建立的规则、标准或约定的集合。
协议有很多种类,比如HTTP协议,UDP协议,TCP协议,IP协议等。
协议分层:
OSI(Open System Interconnection,开放系统互连)
七层网络模型,是一个参考模型,不仅包括一系列抽象的术语或概念,也包括具体的协议。
应用层:网络服务与用户的一个接口。协议有HTTP,FTP,HTTPS等
表示层:数据的表示,安全,压缩
会话层:建立,管理,终止对话。对应主机进程,指本地主机与远程主机正在进行的对话
传输层:定义传输数据的协议端口号,以及流程和差错校验。协议有TCP,UDP
网络层:地址管理和路由选择,协议有IP(IPV4,IPV6)
数据链路层:互连设备之间传送和识别数据帧
物理层:建立,维护,断开物理连接
TCP/IP协议
TCP/IP协议不只是包括TCP,IP协议,而是有很多种协议所构成的协议簇,TCP和IP是当中最有代表性的。一共有四层。TCP/IP的四层比OSI模型的七层要简单,是因为OSI模型中的一个或多个层构成了TCP/IP中的一个层,下面是OSI与TCP/IP模型之间的联系
数据传输基本流程:
首先在源主机上的应用层编辑数据,编辑好了发给传输层,传输层的任务是数据是否可以有保障的进行传输,在传输层的数据叫做数据段,然后发给网络层,网络层的任务是确定将数据发送到那个目标主机上,在网络层的数据叫做数据报然后在数据链路层才进行真正的数据传输,在数据链路层的数据叫做数据帧,到了目标主机的数据链路层,把数据一层层的向上传输最终到达目标主机上。
封装解封装
当数据从应用层到链路层时,每一层都要给数据添加一个数据头部,叫做封装。
当数据从链路层到应用层时,每一层都要对数据进行数据头部摘取,叫做解封装。
数据头部中包含了首部有多长,荷载(除数据头部之外的数据)有多长,上层协议是什么等信息,数据头部被叫做报头。
下图是封装的过程
注:在数据链路层,不仅会在头部添加以太网首部,还会在尾部添加以太网尾部
IP/MAC地址
IP
IP协议有两个版本, IPv4和IPv6.
IP地址是在IP协议中,用来标识网络中不同主机的地址,用来唯一标识一台主机,是网络中的逻辑地址。
对于IPv4来说, IP地址是一个4字节, 32位的整数;
我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;
MAC
MAC地址用来识别数据链路层中相连的节点;
MAC地址长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示
MAC地址在网卡出厂时就确定了, 不能修改. MAC地址通常是唯一的
IP地址标识公网上的唯一一台主机,MAC地址标识局域网上的唯一一台主机