局域网:把一些设备通过交换机/路由器连接起来
广域网:把更多的局域网也相互连接,当网络规模足够大的
交换机:组网过程中的重要设备!
路由器:组网过程中的重要设备!
IP地址:描述一个主机在互联网上的具体位置
端口号:区分一个主机上的应用程序
协议:(非常核心的概念)
协议就是约定,发送方约定了他发数据是啥样的格式,接收方也得理解这个格式,两边对上号,才能够进行正确的通信!
协议:在传输之前就先约定好发送方和接收方都约定好每组代表的啥意思!!
在网络通信中,需要约定的协议,其实是非常非常复杂的!!
面对复杂的环境,就需要复杂的协议!但是,太复杂了也不好!!
当一个协议太复杂了,就可以拆分成多个协议,当协议拆分出很多的时候,存在有些小的协议作用或者定位是类似的,那么,就可以针对这些小的协议进行“分类”,同时在针对这些不同的类别,进行分层,相当于约定层级和层级之间的调用关系,要求上层协议调用下层协议,下层协议给上层协议提供支持,不能跨层调用!!
公司经常有一定的层级关系:
跨层级进行交互,职场上一般是非常禁忌的!!
协议分成的好处:
- 分成之后,就可以做到层次之间,耦合程度比较低,上层协议不必了解下层的细节,下层也不必了解上层的细节!
- 方便的对某一层的协议进行替换!
真实的网络协议具体是怎么分成的呢??
OSI七层网络模型(仅仅存在于教科书上的!)
TCP/IP五层网络模型(当下最广泛使用的网络模型)
下列内容要求熟练背诵,计算机网络中最基础,最核心的概念!!
应用层,传输层,网络层,数据链路层,物理层
- 应用层,关注传过来的数据要干啥用!!(同一个人,针对同一个东西,拿来的用途也是不一样的)
- 传输层:不考虑中间路径,只关注起点和终点。如:我和淘宝卖家,都不关心,中间是怎么传输的(快递),只关心起点和中点,你乐意咋传输就咋传输,只要规定时间送到即可!!
- 网络层:主要负责两个遥远的节点之间的路线规划
收货地是西安,发货地是上海
上海到西安,中间有很多条路可以走~
在众多的路径中,找一个合适的~
上海《——》西安
上海《——》南京《——》西安
上海《——》苏州《——》徐州《——》西安
- 数据链路层:主要关注相邻节点之间的传输
上海——》南京:火车??
南京——》西安:卡车??
网络上相邻节点,就是通过网线/光纤/无线直接连接的设备!!
- 物理层:网络通信的基础设施!!网线,光纤,网络接口…………
网络上的高速公路!!
那么,经过上述这样的分成之后,就可以让程序员同一时刻只关注一个子问题!!
在上述的五层中,只有应用层才真正的关注数据的用途!!
应用层:对咱们程序员写的应用程序,下面的四层测试操作系统内部一级封装好的!!因此,咱们写代码进行网络编程,主要工作还是围绕应用层展开的!!
目前:程序员改不了系统内核,也改不了硬件,则目前高校的课堂重点围绕应用层和传输层站卡!!
在协议分层的背景下,数据如何通过网络传输的呢??(封装&分用)
发送方发送数据,要把数据从上到下,依次交给对应的层次的协议,进行封装,接收方收到数据,要把数据从上午到下,依次交给对应的层次的协议进行解析,解析的过程就叫分用!!
总的来说:
- 应用层:应用程序,拿到数据怎么用??:应用程序
- 传输层:负责关注传输过程中起点和终点:系统内核封装
- 网络层:负责整个传输过程中的路径规划
- 数据链路层:负责两个相邻节点之间的数据传输:硬件+驱动
- 物理层:硬件设备,基础设施