网络基本概念
接下来我们来学习网络部分的知识
网络
- IP地址
- 概念:
- 作用
- 格式
- 端口号
- 概念
- 格式
- 协议
- 概念:
- 作用
- 知名协议的默认端口
- 协议分层
- 为什么需要网络协议的分层?
- TCP/IP五层协议
- 应用层:
- 传输层:
- 网络层:
- 数据链路层:
- 物理层:
- 封装
- 分用
- 客户端,服务器
- 请求,响应
- 数据封装的过程
IP地址
概念:
IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。
作用
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异.
格式
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:01100100.00000100.00000101.00000110。
通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如:100.4.5.6。
IP地址分为两个部分,网络号和主机号
网络号:标识网段,保证相互连接的两个网段具有不同的标识;
主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号;
通过合理设置网络号和主机号,就可以保证在相互连接的网络中,每台主机的IP地址都是唯一的。
端口号
概念
在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程。
格式
端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。
两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。
协议
有了IP地址和端口号,可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制
0/1数据来传输,如何告诉对方发送的数据是什么样的呢?
网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如
发送一个文本字符串“你好!”:如何标识发送的数据是文本类型,及文本的编码格式呢?
基于网络数据传输,需要使用协议来规定双方的数据格式。
概念:
协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。
作用
计算机之间的传输媒介是光信号和电信号。通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式。
知名协议的默认端口
系统端口号范围为 0 ~ 65535,其中:0 ~ 1023 为知名端口号,这些端口预留给服务端程序绑定广泛使用的应用层协议.
以上只是说明 0 ~ 1023 范围的知名端口号用于绑定知名协议,但某个服务器也可以使用其他 1024 ~ 65535 范围内的端口来绑定知名协议。餐厅的VIP包房是给会员使用,但会员也可以不坐包房,坐其他普通座位
协议分层
为什么需要网络协议的分层?
分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类(使用方,使用服务).
就拿打电话来说,电话的制造者不需要知道电话的使用者使用的哪种鸟语,电话的使用者也不需要知道电话的工作原理.哪一天我换一种语言电话还是可以打出去,哪一天电话升级了,对于我来说并没有差别,我还是该怎么使用就怎么使用并没有感知.
TCP/IP五层协议
这是我们主要学习的协议
TCP/IP五层(或四层)模型.TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
我们拿送快递来类比
应用层:
应用层只关心货物本身,货物送到没,货物的作用…
我们主要学习的也就是应用层和传输层,其余的都是操作系统还有硬件实现的,不需要我们亲自动手.
传输层:
传输层只关心快递的起始和终点位置
网络层:
网络层负责快递的路线规划
数据链路层:
数据链路层表示快递途中任意两个站点
物理层:
物理层表示了网络传输中相邻的两个节点
封装
这里的封装和我们之前学习的封装还略有不同,这里的封装指的是从上层给下层传输数据报的时候要根据下层提供的API给数据封装上报头
分用
分用是封装的逆过程,就像快递一样,从商家到快递站,都要进行层层封装,上面贴满了大大小小的标签,标签上就是这个快递的一些信息,快递到了你的手上还是要一层一层拆开吧!
客户端,服务器
服务器给客户端提供服务,就好比你登陆lol界面,那个就是客户端,顺着网线在遥远的那边是一大堆程序猿,他们面前的就是服务器.
请求,响应
请求与响应都是相对的,被主动发起的那个就是请求,答应请求的话语就是响应
数据封装的过程
就以QQ发消息为例,我们给朋友发消息,那么QQ这个应用层程序在最顶层就接接收到了我们的用户数据,传输层给应用层提供了TCP/UDP协议,假设这里就是TCP,那么在原先的应用层数据报的前提下,我们就给它封装上了TCP报头,封装的过程就类比于快递运输过程中加包裹贴标签的过程,标签上面就有着这次运输的部分信息.TCP报头加上原先的应用层数据就构成了下一层IP层的载荷,IP层再给载荷加上IP协议报头.数据链路层的以太网驱动协议给上一层整体加上以太网数据帧头和帧尾.最后再把数据报交给物理层,转化成高低电平.
然后数据接收方就会从高低电平开始,一路逆流而上,根据自己的协议一路把原先封装上去的慢慢再分用.
好了网络的基本知识就到这里了,希望我的这篇博客或多或少给予兄弟们一点启发.
百年大道,你我共勉.