网络原理初始

目录

局域网和广域网

进行组建网络中涉及到的重要设备

网络通信基础

协议分层

网络数据传输的基本流程(站在协议分层的背景下来理解)

发送方的工作

接收方的工作

UDP和TCP


局域网和广域网

局域网:1)基于网线直连2)基于集线器直连3)基于交换机直连4)基于交换机和路由器组建

广域网:通过路由器,将多个局域网连接起来

进行组建网络中涉及到的重要设备

集线器:比较古老的东西,现在很少见到,把一根网线分成两叉,但是不能同时使用

交换机:组件局域网,例如把两台电脑用网线直连,如果四台电脑,网线不能直连了,可以使用交换机或者路由器对这些设备进行彼此相连,

路由器:本质上是把两个局域网给连起来,路由器可以跨局域网,交换机不能跨局域网,

网络通信基础

IP地址:标识了网络上设备所在的位置,就好比快递位置,很广泛,没有具体到一个人

端口号:标识了一个具体的应用程序,就好比快递留的手机号,确定了这个快递是你的

认识协议:协议是网络通信中最核心的概念,就类似于一种约定,商量好数据是啥样的格式进行传输的,有了这个约定,才能让对方相互理解对方的含义,所谓的协议,就是通信双方进行的一种约定,发送方越好了我发的数据是啥样的,接收方按照这个固定的格式来进行解析

协议分层

网络通信是一个比较复杂的事情,实现这里的功能也会特别复杂,如果这个协议,太复杂了,学习成本,使用成本,理解成本,维护成本都会非常高,因此,实际采取的做法,是针对这个复杂的大协议,拆分若干个相对简单的协议,每个协议负责负责一部分功能,此时就会发现,某些协议,起到的功能和作用是类似的,就针对这些小的协议,再进行“分类”/分层,这就好比代码拆分出了很多类,有些类,功能差不多,就可以放到同一个包里

协议分层的好处

1.降低了学习和维护成本 2.可以灵活的针对某一层协议进行替换.当前互联网坏境,协议分层有两种风格

 OSI七层网络模型和TCP/IP五层网络模型

TCP/IP是OSI简化的实现方式

网络层在下面,网络分层这里,相当于上层协议要调用下层协议,下层协议给上层协议提供服务,就好比有路了,才能运快递,越往下的,越接近硬件设备,越往上,越接近用户

物理层:约定了网络通信中基础的硬件设备是啥样的,就好比修路,比如像通信使用的网线,网口等这些设备,使用的网口尺寸是多大,网线里边有几根线,对应的都是硬件设备中的东西,因此,咱们使用的网线,网口都是相同规格的,在淘宝上买件衣服,需要填写,收件地址,和收件人姓名,商家就会根据这个地址给我发快递

数据链路层:主要负责,相邻的两个节点之间,怎么进行传输,上海到西安用高铁运,西安到郑州用卡车运

网络层:主要负责路径的规划,走哪条路比较划算

传输层:站在我和商家这个角度,我们不关心具体过程,只关心起点和终点,端到端之间的传输

应用层:应用程序,描述了传输的数据,用户要怎样来使用

这五层协议各司其职,为啥有的把这个叫做“四层”,(不算物理层),物理层属于纯硬件的,和程序员关系不大。

数据链路层和物理层是通过硬件和驱动程序(驱动程序是和硬件设备关联的,每个硬件厂商都会提供对应的驱动软件,操作系统内核会通过驱动程序来控制硬件)实现的,传输层和网络层是通过操作系统内核实现的,应用层是应用程序实现的,程序员自己写的代码,下面四层都是现成的,只需要知道怎么使用就行了

网络数据传输的基本流程(站在协议分层的背景下来理解)

发送方的工作

以qq为例,A给B发送一个请求,发送方,用户在输入框中输入hello这个字符串,qq这个程序,就把这个字符串,给构造成一个应用数据报

1.应用层

一个假设的应用协议格式,所谓的“应用层数据报”本质上就是遵守了约定格式的字符串

发送方qq号,发送时间,接收方qq号,消息内容,程序要调用操作系统的api,把这个应用层数据,交给传输层

2.传输层(进入系统内核了)

在传输层中,就要把上述应用层数据,构造成传输层的数据报,传输层使用到的协议,最知名的就是UDP和TCP,比如此处是使用UDP,就需要构造出UDP数据报(在应用层数据基础上,加了个UDP报头)

 报头就是一个“标签”,通过标签表示出当前,UDP报头就是一个特定的字符串,此处就行是一个字符串拼接,传输层就把这个UDP数据报交给网络层。

3.网络层,最知名的协议IP协议,IP协议要基于上述数据,打包成一个IP数据报

4.数据链路层 最知名的协议,叫做“以太网”,基于上述数据,还有打包成一个“以太网数据帧”,两个相邻节点的传输用什么方式

5.物理层

把上述二进制的数据(一串0101)转化成电信号/光信号,此时就把真正的数据给发送出去了

接收方的工作

1.物理层:网卡接受到的是光信号和电信号,是在物理层,把这个光信号转换为二进制的数据

转换后的这个数据,其实是一个以太网数据帧

2.数据链路层 :把这个数据交给数据链路层解析,数据链路层需要去掉帧头帧尾,取出中间的载荷,交给上层的网络层IP协议,以太网数据帧里会记录,这个载荷是不是一个IP数据报

3.网络层,ip协议针对这里进行解析,解析出IP报头,取出IP协议的载荷,把这里得到的传输层数据报,交给上层传输层,IP报头里会记录,载荷是UDP还是TCP,决定交给UDP还是TCP

4.传输层: UDP再进行解析,再取出报头,取出载荷,再把这个载荷交给对应的应用程序,UDP报头里有一个重要的字段“目的端口”,目的端口是一个具体的应用程序,关联在一起的,因此机可以根据这个端口来把数据交给应用程序了

5.应用层:qq应用程序,qq就会针对应用层协议也进行解析,显示到界面上

通信双方按照同样的方式来理解数据才行,得有固定的标准,整个网络协议,协议分成了很多层,上层协议,为了能够保证协议能够更加方便我们使用,把一个大的协议拆成小协议,而且会出现相同作用的协议,出现协议分层

UDP和TCP

UDP协议:无连接,不可靠,面向数据报 全双工

TCP协议:有链接 可靠传输 面向字节流 全双工

有无链接:需要链接建立了才能通信,链接建立需要对方来“接受”,打电话的时候需要对方接才能通信,打电话就是有链接,发微信不需要对方建立链接,直接发就行,发微信就是无连接

可靠不可靠:网络坏境天然是复杂的,不可能保证传输的数据100%就能到达,发送方知道自己的消息是不是发过去了,还是丢了,知道发过去了就是可靠传输,可靠不可靠和有没有链接没有关系

面向字节流:数据传输和文件读写类似“流式”的;

面向数据报:数据传输则以一个个数据报为基本单位(一个数据报可能式若干个字节,带有一定的格式)

全双工:一个通信通道,可以双向传输(既可以发送,也可以接受),一根水管,是单向传输,半双工,可以从这头进水,那头出水,也可以从那头进水,这头出水,TCP和UDP是全双工,一根网线里面其实有八根线,有的负责上传,有的负责下载

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值