网络初识—网络中的基本概念

一、网络通信基础

1.IP地址

        IP地址描述了一个设备在网络上的位置.主要用于标识网络主机,其他网络设备的网络地址.简单来说IP地址用于定位主机的网络地址.

        IP地址是一个32位的二进制数,为了方便表示往往把IP地址表示成"点分十进制",用三个 . 把4个字节分为4个部分,每个部分一个字节.范围位0 - 255.比如"192.168.2.101"

2.端口号

        描述了一个主机上的哪个应用程序.有了IP我们可以确定发送数据到哪台主机,但是一个主机上有很多程序在使用网络,主机收到数据之后就要区分要交给哪个程序.

        每个程序在进行通信的过程中都需要一个端口号,这个端口号可以是系统自动分配,也可以是用户手动指定.同一个主机上的不同程序之间使用的端口号不能相同.

        端口号是0 - 65535范围的数字,在网络通信中,进程可以绑定端口号来接收和发送网络数据.但是有一些端口号是不能随意指定的,这点需要牢记.

一个端口号是否可以被多个进程绑定?

一个端口号不能被多个进程绑定,因为端口号的作用就是唯一标识一个进程,如果绑定一个已经被绑定的端口号,就会出现绑定失败的问题.

一个进程是否可以绑定多个端口号? 

一个进程可以绑定多个端口号,这与"端口号必须唯一标识一个进程"是不冲突的,只不过现在这多个端口号唯一标识是同一个进程. 

3.协议

        协议指的是网络协议,也就是网络通信的规则.是经过所有网络设备都需要共同遵循的统一约定.计算机有很多,操作系统也有很多,计算机网络硬件设备也有很多.有了协议就算是不同厂家生产出来的设备彼此之间也能进行通信.

        常见的协议有TCP协议和UDP协议

二、协议

1.协议分层

        协议分层的初心就是为了把一个复杂的协议分成几个更简单的协议.

        这样做能更加方便学习和使用,上层协议直接调用下层协议即可,不需要了解下层协议的细节.相当于把下层协议的细节封装好了.而且如果某一层协议进行了替换也对其他层协议没有影响.

2.OSI七层协议

        OSI七层协议是一个逻辑上的定义和规范,它把通信网络划分为七个不同的层级,但实际上这个协议并没有被广泛的采取使用,而主要使用的网络协议是TCP/IP协议.所以这里我们只是简单的提一下OSI协议

OSI七层协议把网络协议分为了: 应用层, 表示层, 会话层, 传输层, 网络层, 数据链路层, 物理层 

3.TCP/IP协议

        TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫下一层提供的网络来完成自己的需求.

各层级的作用:

 应用层:负责应用程序之间的沟通.一般就是应用程序数据之间的处理和发送.如简单的电子邮件传输(SMTP),文件传输协议(FTP),网络远程访问协议(Telnet)等.

传输层: 负责两台主机之间的数据传输.负责关注网络数据包的起点和终点.

网络层: 负责地址管理和路由选择.也就是数据包从起点到终点要走哪条线路.

数据链路层: 主要负责两个相邻节点之间数据的传输.

物理层: 负责光电信号的传递方式,也就是通信过程中的基础设施.

 4.网络设备所在分层

对于一台主机它的操作系统内核实现了从传输层到物理层的内容,也就是TCP/IP五层模型的下四层.

对于路由器,它实现了从网络层到物理层,也就是TCP/IP五层模型的下三层.

对于交换机,它实现了从数据链路层到物理层,也就是TCP/IP五层模型的下两层.

这里我们说的交换机和路由器是传统意义上的交换机和路由器,而现在发展的路由器和交换机实现了更多层次的协议,有更强大的功能.

三、封装和分用

在协议分层的背景下,数据会根据封装, 分用来来进行网络传输.

封装:发送方发送数据会从应用层依次往下,把数据进行封装,交给对应层次的协议,进行封装.

分用:接收方接收数据会从物理层一次向上,把数据进行分用,交给对应层次的协议,进行解析.

不同协议层对数据包有不同的称呼,在传输层叫段(segment),在网络层叫数据报(datagram),在数据链路层叫帧(frame).

封装:应用层数据通过协议栈发到网络上时,每层协议都需要加上一个首部长度(header).首部信息中包含了一些类似于首部多长,载荷(payload)有多长,上层协议是什么等信息. 

分用:数据封装成帧后发到传输介质上,到达目的主机后每层协议在剥掉相应的首部,根据首部中的"上层协议字段"将数据交给对应的上层协议处理. 


下面以QQ发送信息的案例来讲解一下封装和分用(忽略数据在中间路由器和交换机之间的传输)

封装:

 1.应用层:QQ拿到你要发的信息,按照应用层协议包装成应用层数据包,然后交给传输层.

2.传输层:传输层会把应用层传输过来的数据包当作一个整体.在构造一个传输层的数据包.应用层涉及到的最主要的协议就是UDP和TCP协议.假定此处是使用UDP协议来进行通信,就会加上一个UDP数据报头

拼好传输层数据包之后,就要把数据包进一步交给下层,网络继续进行封装. 

3.网络层:这里就这涉及到IP协议,网络层IP协议,把传输层传过来的数据包当成一个整体,在拼上一个IP协议的报头构造成一个IP数据包 

      这里IP协议就是把整个UDP数据包视为一个整体,构造完完整的IP数据包之后,IP协议继续调用数据链路层api,把数据包交给数据链路层这里的协议处理.

4.数据链路层:数据链路层这里涉及到的核心协议就是以太网.这里也是把IP数据包视为一个整体,在这基础上添加帧头和帧尾,形成以太网数据帧.

然后交给物理层 

5.物理层

把上述这样的以太网数据帧,二进制结构(一串0 1结构的数据),转换成光信号/电信号/电磁波然后进行发送. 

分用:

不考虑中间过程,假定数据包已经到达接收方的网卡,B处理的过程就称为分用.

1.接收方收到光信号/电信号/电磁波,就会把这些物理信号转换成数字信号(二进制的0 1)的到一个以太网数据帧,然后进一步把这个数据帧交给数据链路层.

2.数据链路层会按照以太网数据帧的格式来解析,取出其中的载荷,交给上层协议.

3.网络层会按照IP协议的格式进行解析,取出其中的载荷,在交给上层协议.

4.传输层会按照UDP协议格式来进行解析,取出其中的载荷,在交给上层协议.

5.应用层会按照QQ应用程序内部的应用层协议格式来解析数据.

然后QQ拿到这些信息之后就会在窗口弹出提示,把信息显示在聊天窗口.

分用就是封装的逆过程.

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值