目录
一、协议
二、TCP/IP四层模型
三、局域网通信
四、IP地址与MAC地址
五、通信本质
六、数据包封装和分用
一、协议
协议是一种“约定”。计算机之间的传输媒介是光信号和电信号,通过“频率”和“强弱”来表示0和1这样的信息。想要传递各种不同的信息,就需要约定好双方的数据格式。
一台计算机内部本质也是一个小型网络结构:CPU、内存、磁盘、外设……通过总线连接,每一种硬件都有自己的通信协议。
协议的意义:减少通信成本。
协议分层:
- 因特网是一个非常复杂的系统,有大量的应用程序、协议以及各种端系统、链路、分组交换机等。这种复杂性,给我们开发使用互联网的协议提供了一定的困难。针对这个问题,大佬们通过协议分层的概念把因特网这个复杂的系统分成了若干个层次,使其模块化,从而方便大家对因特网的理解。
- 所谓的协议分层,就是根据互联网所需要的服务和功能,在体系结构上分成若干个层次,协议的服务和功能与哪一层的服务和功能相对应,该协议就属于哪一层。每层协议层通过在该层中执行某些动作或使用直接下层的服务来提供服务。协议分层具有概念化和结构化的特点,通过协议分层来研究讨论系统组件,会使系统组件的更新更容易。
- 各个分层的所有协议被称为协议栈。因特网的协议栈由5个层次组成,自顶向下为:应用层、传输层、网络层、链路层、物理层。此外,国际标准化组织(ISO)定义了一种叫开放系统互连模型(OSI)的7层协议栈,自顶向下分别为:应用层、表示层、会话层、运输层、网络层、链路层、物理层。OSI模型除了应用层比5层协议栈多两层外,其余4层与4层协议栈的同名对应层的定义完全相同。
分层意义:
- 分层管理,一层出问题不影响另一层,出现问题方便调整
- 将功能比较集中,耦合度高的模块分为一层(高内聚)
- 每一层都解决特定的问题,每一层都有自己匹配的协议
OSI七层模型:
- OSI:Open System Interconnection,开放系统互联,七层网络模型称为开放式系统互联参考模型
- 把网络从逻辑上分为了七层,每一层都有相关对应的物理设备,如路由器、交换机......
- OSI七层模型是一种框架性的设计方案,其最主要功能就是帮助不同类型主机实现数据传输
- 它的最大优点是将服务、接口和协议这三个概念明确的区分开来,通过七个层次化的结构模型使不同的网络之间实现可靠的通讯
- 但是它既复杂又不实用,所以通常我们将其看为TCP/IP四层模型
二、TCP/IP四层模型
TCP/IP是一组协议的代名词,它还包括很多协议,组成了TCP/IP协议簇
TCP/IP通讯协议采用了四层的层级结构,将OSI的应用层、表示层、会话层压缩成应用层,我们通常不考虑物理层,每一层都呼叫它的下一层所提供的网络来完成自己的需求
- 应用层:负责应用程序间沟通,例如电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telent)等。我们的网络编程学习主要是针对应用层。
- 传输层:负责两台主机之间的数据传输,如传输控制协议(TCP),能够确保数据可靠的从源主机传输到目标主机。
- 网络层:负责地址管理和路由选择,例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由),路由器(Router)工作在网络层。
- 数据链路层:负责设备之间的数据帧的传送和识别,例如网卡设备的驱动、帧同步(就是从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网、无线LAN等标准。交换机工作在数据链路层。
三、局域网通信
两台局域网的主机能够直接通信
每一台主机都有自己的“名字”,每一台主机的网卡都有独立的地址(MAC地址),表明自己在局域网中的唯一性
局域网通信标准:以太网、令牌环网、无线LAN
- 每一层协议的报头中,一定要涵盖上一层的信息
- 报文 = 报头 + 有效载体
- IP层往上,所有的协议都是一样的,有路由器实现屏蔽底层网络的差异
四、IP地址与MAC地址
IP地址:
- IP协议有两个版本,IP4和IP6,目前主流使用的是IP4,但是IP6是未来的发展趋势
- 对应IP4来说,IP地址是一个4字节,32位的整数
- 我们通常用“点分十进制”的字符串表示IP地址,例如:192.168.0.1,用点分割的每一个数字表示一个字节,范围是0-255
MAC地址:
- MAC地址用来识别数据链路层中相连的节点
- 长度为48位,及6个字节,一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)
- 在网卡出厂时就确定了,不能修改,mac地址通常是唯一的(虚拟机中的mac地址不是真实存在的mac地址,可能会冲突,也有些网卡支持用户配置mac地址)
IP地址和MAC地址区别:
物理地址是数据链路层和物理层使用的地址;IP地址是网络层及其以上层使用的地址。
五、通信本质
网络通信的本质:主机上的软件之间的通信,软件的载体是进程,通过 IP + 端口号(ip:port)的形式,标识该服务器上进程的唯一性。网络通信的本质,也就是进程间通信。
一个进程可以绑定多个端口号,一个端口号不能被多个进程绑定。
在网络通信过程中,IP + Port 标识唯一性,client ---> server,除了数据,自身的IP和Port也会发送给对方,serve也可以根据对方的IP和Port进行回应。
UDP协议
- UDP:User Datagram Protocol 用户数据报协议
- 传输层协议、无连接、不可靠传输、面向数据流
TCP协议
- TCP:Transmission Control Protocol 传输控制协议,
- 传输层协议、有连接、可靠传输、面向字节流
网络字节序
- 发送主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出
- 接收主机把从网络上接到的字节依次保存在接收缓冲区中,也是按内存地址从低到高的顺序保存
- 网络数据流规定:先发出的数据是低地址,后发出的数据是高地址
- TCP/IP协议规定,网络数据流应采用大端字节序,即低地址高字节
- 不管主机是大端机还是小端机,都会按照TCP/IP协议规定的网络字节序来发送/接收数据
- 如果当前发送的主机是小端,就需要先将数据转为大端;否则就忽略,直接发送
六、数据包封装和分用
- 不同的协议层对数据包有不同的称谓,传输层叫做段(segment),网络层叫做数据报(datagrame),链路层叫做帧(frame)
- 应用层数据发送到网络上时,每层协议都要加上一个数据首部(header),称为封装(添加报头)
- 首部信息中包含一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息
- 数据封装成帧后发送到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的“上层协议字段”将数据交给对应的上层协议处理,这就是分用(去掉报头)
数据封装过程:
文章来源地址https://www.toymoban.com/news/detail-431582.html
数据分用过程:
文章来源:https://www.toymoban.com/news/detail-431582.html
到了这里,关于【网络】网络基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!