初识网络原理~

一、网络通信基础

1、局域网&&广域网

局域网:拿两根线把三个主机连起来,这三个主机就构成了一个局域网

局域网组建网络的方式有很多种:
1、基于网线直连
2、基于交换机组建:交换机是把若干个设备组建到 一个局域网
3、基于路由器组建:路由器是连接了 两个局域网
广域网:比较大的局域网
2、IP地址&&端口号
IP地址:描述了网络上的一个主机位置(相当于收货地址)

IP地址本质上是一个32位的整数,但是为了方便人们记忆,一般会把这32位的整数按照每个字节(0-255)分成四个部分,中间用 . 分割,称为“点分十进制”


127.0.0.1是一个特殊的IP地址,叫做环回IP,表示自己这个主机

端口号:描述了一个主机上的某个应用程序(相当于收件人的电话)

端口号本质上是一个2个字节(16位)的无符号整数        0-65535


服务器程序在启动的时候,就需要绑定上一个端口号,以便客户端程序来访问

二、认识协议  【重点】

协议:就是一个约定

协议分层:由于网络通信这个过程很复杂,里面有很多细节,如果只通过一个协议来约定所有的细节,这个协议就会非常庞大,更好的方法就是把一个大的、复杂的协议拆成多个小的,简单的协议,每个协议负责一部分工作

协议分层的好处:

1、每层协议不需要理解其他层协议的细节(更好的做到了封装)

2、把对应层的协议替换成其他协议(更号的解耦合)

互联网中的分层是咋分的?OSI七层网络模型(只存在于教科书中)

实际情况是OSI的简化版本:TCP/IP五层网络模型

物理层、数据链路层、网络层、传输层、应用层

1、物理层:网络中的硬件设备,网线、网卡……针对硬件设备的约定,就是物理层协议所负责的范畴,需要保证所有的主机和网络设备之间都是相互匹配的

2、数据链路层:负责完成相邻的两个设备之间的通信的

3、网络层:负责点到点之间的通信。网络中的任意节点到任意节点之间的通信(不一定相邻),网络层就是负责在这两个点之间规划出一条合适的路线,实际的网络环境结构非常复杂,两个点之间的路线不止一条,就需要规划出最合适的一条

4、传输层:负责端到端之间的通信。这里的端到端指的是起点和终点。只是关注结果(数据到没到)不关注过程(不关注数据是走哪条路转发的)

5、应用层:和应用程序密切相关。传输的数据是干啥用的,不同的应用程序就有不同的用途


例子:比如说在网山买零食

商家站在传输层,考虑这个东西能不能发到我手上

快递公司站在网络层,规划路线

快递员站在数据链路层,骑着电动车把货拉到集散中心

电动车/集装箱卡车/公路站在物理层,提供传输的基础

上面的这些都只是考虑包裹如何传输,不考虑这个包裹里面是啥,更不关心包裹里的东西是干啥用的

但是我作为买零食的人,站在应用层,就是抱着一定的用途来买的

三、网络设备所在分层 

一台主机,对应了物理层到应用层 五层(都实现了)

一台路由器,主要实现了物理层、数据链路层、网络层

一台交换机,主要实现了物理层、数据链路层

四、网络分层中的一组重要的概念:封装和分用【重点】

例子:使用QQ给人发消息,用户A给用户B发送了一个“hello”

应用层(QQ应用程序):会根据用户输入的内容,把数据构造成一个应用层的协议报文(应用层的协议大概率是不相同的)

应用层协议就调用操作系统提供的API(称为socket API),把应用层的数据交给传输层

传输层(操作系统内核):根据刚才传来的数据,基于当前使用的传输层协议,来构造出一个传输层协议报文

传输层最典型的协议,UDP、TCP

接下来就会把这个传输层的数据交给网络层

网络层:根据当前使用的网络层协议(IP)再次进行封装,还是添加一个协议报头

 接下来,网络层协议就会把这个IP数据报,交给数据链路层

数据链路层:在刚才IP数据报基础上,根据当前使用的数据链路层的协议,构造成一个数据链路层的数据报,典型的数据链路层的协议叫做“以太网”,就会构造成一个“以太网数据帧”

接下来,数据链路层就会把数据交给物理层 

物理层(硬件设备):就是根据刚才的以太数据帧(其实就是一组0 1),把这里的0 1变成高低电平,通过网线传输出去,或者把这里的0 1变成高频/低频的电磁波,通过光纤/无线的方式传播出去

上面的这些就是封装:从上往下数据依次被加上了协议报头


数据到达B之后的表现:

物理层(硬件设备、网卡):此时主机B的网卡就感知到了一组高低电平,然后就会把这些高低电平翻译成0 1是一串数据,然后这一串0 1就是一个完整的以太网数据帧

 然后物理层就把这个数据交给了数据链路层

数据链路层(驱动):数据链路层负责对这个数据进行解析,去掉帧头和桢尾,取出里面的IP数据报

 然后数据链路层就把这个数据交给网络层

网络层(操作系统):网络层协议(IP协议)又会对这个数据进行解析,去掉IP协议报头,取出里面的IP数据报

 然后网络层就把这个数据了交给传输层

传输层(操作系统内核):传输层协议(TCP协议)又会对这个数据进行解析,去掉TCP报头,取出里面的TCP数据报

然后传输层再把数据交给应用层

应用层(应用程序QQ):应用层就会调用socket API从内核中读取到这个应用层数据报,再按照应用层协议进行解析,再根据解析结果显示到窗口中

上面的这些就是分用:就是封装的逆过程


封装是从上往下,数据依次被加上了协议报头(相当于包快递)

分用是从下往上,数据依次被去掉了协议报头(相当于拆快递)


让面讨论的是起点和终点的情况,但是A和B之间还有很多路由器和交换机呢~

假如A和B中间还有交换机

 假如A和B中间还有路由器

总之,无论网络多么复杂,整体的传输过程都是类似的,只是在不停的重复封装和分用的过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值