创作不易,来了的客官点点关注,收藏,订阅一键三连❤😜
前言
运维必备——计算机网络,我是一名即将毕业的大学生,超超。计算机网络是计算机行业的入门基础,超说网络是笔者对于计算机网络知识的梳理总结,和超超一起学习计算机网络,搞定网络知识,秋招拿下理想offer!
系列文章
超说网络NO.2 | 深入了解计算机网络:网络边缘、网络核心、接入网和物理媒体
概述
超说网络NO.3 | 深入了解网络的分层体系结构,这一期将了解网络的服务、协议以及数据的封装和解封装。
目录
服务和服务访问点
层次化方式实现复杂网络功能
*将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务
*本层协议实体相互交互执行本层的协议动作,目的是实现本层功能, 通过接口为上层提供更好的服务
*在实现本层协议的时候,直接利用了下层所提供的服务
*本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+更下层所提供的服务
服务( Service):低层实体向上层实体提供它们之间的通信的能力(垂直关系)。
服务包括:服务用户(service user) 与服务提供者(service provider )
原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语(类似一些函数,具有一些具体服务信息)来进行交互的---形式。
服务访问点 SAP (Services Access Point) :上层使用下层提供的服务通过层间的接口—地点,即服务访问点是服务提供者向服务用户提供服务的接口。例如TCP向应用层提供服务的访问点是socket。
例子:
邮箱
地址(address):下层的一个实体支撑着上层的多个实体, SAP有标志不同上层实体的作用
可以有不同的实现,队列
例子:传输层的SAP: 端口(port)
服务的类型
面向连接的服务
连接(Connection):两个通信实体为进行通信而建立的一种结合
面向连接的服务通信的过程:建立连接,通信,拆除连接
面向连接的服务的例子:TCP向应用层提供的服务
适用范围:对于大的数据块要传输; 不适合小的零星报文
特点:保序
服务类型:
可靠的信息流
传送页面(可靠的获得,通过接收方的确认)
可靠的字节流 远程登录
不可靠的连接 数字化声
面向无连接的服务
无连接服务:两个对等层实体在通信前不需要建 立一个连接,不预留资源;不需要通信双方都是 活跃;(例:寄信)
特点:不可靠、可能重复、可能失序
IP分组,数据包;
适用范围:适合传送零星数据;
例子:UDP向应用层提供的服务
服务类型:
不可靠的数据报 电子方式的函件
有确认的数据报 挂号信
请求回答 信息查询
深入理解协议
协议的定义
协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输和或接收其他事件方面所采取的动作。(对等层的实体,在通信过程中应遵守的规则集合)
协议的作用
协议控制发送、接收消息:如TCP、UDP、IP、HTTP、FTP、PPP
服务和协议
服务与协议的区别
服务(Service):低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直关系
协议(protocol) :对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平 关系
服务与协议的联系
本层协议的实现要靠下层提供的服务来实现;本层实体通过协议为上层提供更高级的服务。
水平的表示协议,垂直的代表服务。
理解层与层之间的机制
物理层:物理层在媒体之上传输和接收电磁波信号和光信号,数据链路层传输来的信号(0101类似信号)转化为电磁波,以比特流形式进行发送接受转换;
数据链路层:作用于通过交换机连接的相邻两个节点之间传输以帧为单位的数据,链路层解决了点到点的问题;
网络层:在链路层提供的相邻两个节点传输的基础上,实现了源主机到目标主机之间的传输;对于距离远的节点之间的传输,通过网络层提供源主机到目标主机的端到端的数据传输来实现;(但端到端可能会丢包等情况)
传输层:加强并细分了网络层提供端到端服务,将主机到主机的传输转换为进程到进程的传输,加强了网络层的不可靠,将不可靠的传输转换为可靠的传输,传输层解决了进程到进程的区分和通信;
应用层:按照应用层协议交换应用报文,实现各种网络应用,例如电子支付、邮件传输、浏览网页等网络应用。应用层以下的的设施等都属于基础设施。
Internet协议栈
各层次的协议数据单元
应用层:报文(message)
传输层:报文段(segment):TCP段,UDP数据报
网络层:分组packet(如果无连接方式:数据报 datagram)
数据链路层:帧(frame) ,以帧为单位的数据
物理层:位(bit)
封装和解封装
封装流程:
步骤如下:
本机:192.168.144.223;执行命令:telnet 192.168.145.77 23
【封装】1、telnet应用封装telnet程序请求信息,作为数据包传送给下一层;
【封装】2、传输层收到telnet数据包,在其前面封装一个TCP头部:本机随机启动一个端口作为源端口,23端口作为目的端口;然后将TCP报文传送给下一层;
【封装】3、网络层在TCP报文前面封装一个IP头:本地IP地址作为源IP地址,192.168.145.77作为目的IP地址;(多网卡存在不同网段IP,会根据本机路由选择;)根据本地路由表项,查找下一跳地址,如果不在同一个网段,一般会使用default gateway作为下一跳;通过ARP协议查找gateway对应的MAC地址,ARP缓存表没有,则广播查找 who is 192.168.144.1
【封装】4、数据链路层将IP报文,封装一层数据链路头:将下一跳MAC作为目的MAC,192.168.144.223网卡的MAC作为源MAC
5、把网络报文以二进制格式,通过网线发送给下一跳(基本上是路由器或者三层交换的入口);中间如果有二层交换机,根据MAC地址表,将数据报文转发到某一接口。
【解封装】6、以太网帧发送到三层交换或者路由器,数据包将被解封装到IP报文,根据目的IP查找路由表,路由转发;
【封装】7、在三层交换或路由器上,路由表项Inface接口MAC被封装成源MAC,对端接口MAC封装为目的MAC,发送到下一跳。
8、重复6、7步进行路由转发,一直发送到目的IP。
【解封装】9、在目的主机上,会进行解封装,然后根据目的Port发送到对应的进程,由该进程处理payload。
10、回包重复1-9步过程。
此步骤来源:https://blog.youkuaiyun.com/avatar_2009/article/details/107665293
创作不易,客官点个赞,评论一下吧!超超和你一起加油❤😜