网络原理——基础知识

网络原理Day-1



前言

网络研究的本质问题就是进程间通信问题,但与我们之前研究的进程间通信又有区别,网路主要探讨的是进程和进程之间跨主机的通信

先考虑两台直接连接的主机之间的数据传输过程:
直连主机
在主机甲和主机乙进行通信时,发送数据方将数据填充到网卡中,再通过网卡将数据传输到网络中,数据来了之后接受方通过中断告诉操作系统,操作系统再负责调度相应的进程来接收数据。先不考虑细节问题,大致上就是这么个流程。那么我们还需要考虑的是,数据是原封不动的发送的吗?

如果将这个流程抽象比喻成发快递的过程,寄件的人到楼下快递站将包裹寄往收件方,收件方到楼下快递站取包裹。那么快递站的作用就相当于网络传输中的网卡。众所周知,在包裹传输过程中,物品是被打包过的,并不是将物品“裸着”传递的,所以又回到网络传输中,数据的传输过程也是会对数据进行“打包”的,有不同的层次实现网络,打包的过程也是根据每一层的要求来进行“数据封装”,所以需要搞清楚网络的层次


一、网络层次

理论上网络层次可以分为七层,但实际中五层体系结构是我们着重讨论的,所以主要研究五层体系结构。
网络层次

在学习网络层次之前,要弄清楚两个概念:

  • 局域网(Local Area Network),简称LAN,是指在某一区域内由多台计算机互联成的计算机组。
  • 广域网(Wide Area Network),简称WAN,是一种跨越大的、地域性的计算机网络的集合。通常跨越省、市,甚至一个国家。广域网包括大大小小不同的子网,子网可以是局域网,也可以是小型的广域网。

区域划分不同,处理的政策就不一样。如果把局域网比作我们中国,将广域网比作整个世界,在局域网内部可以直接通信(从北京到上海买张机票高铁票就能到),在广域网中进行通信时就会麻烦很多(从北京到英国不只有买票这么简单的流程了,还得提前办签证,过海关)。

所以在局域网组网这里就出现了两个设备:

  • 集线器(HUB):功能类似于插座,插在插座上的设备都能通电。以此类推,一个集线器上的所有主机都能接收到数据。它不知道数据信息,工作在物理层。在这里插入图片描述
    主机A向主机D 发送数据,那么就意味着主机B、C、D都能收到数据,但是数据中肯定带有目的主机的信息,所以只有主机D会接收数据,其他主机直接将数据丢弃,因此就要在数据链路层解决一个局域网内部的数据通信问题。

  • 交换机(Switch):就是因为集线器属于广播发送数据,所以就产生了比集线器高级、智能的交换机,交换机是可以知道数据发送给哪个主机的,所以就会负责把数据只发送给目标主机。因为它直到数据信息,所以它是工作在数据链路层的。

1、物理层

负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层

2、数据链路层

数据链路层是知道数据内容的,所以它负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层

3、网络层

负责地址管理和路由选择,解决阔局域网的主机之间的通信问题。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层

经过网络层,不管是局域网还是广域网,只要在一个网络内,主机和主机在可连接的情况下,数据已经可以从一个主机到达另一个主机了,但主机上还有不同的进程,发送过来的数据应该交给哪个进程呢?所以就需要传输层解决这个问题。

4、传输层

负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。简单来说就是负责进程和进程间的通信问题

5、应用层

负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。

6、简单概述

简单总结网络五层结构各个层次的主要职责:(从上到下)

网络层次职责常见协议
应用层根据业务逻辑进行自行设计DNS、HTTP、HTTPS
传输层进程到进程间的通信TCP、UDP
网络层跨局域网(WLAN)的主机到主机之间的通信——路由器IP、ICMP(比如ping命令)
数据链路层局域网(LAN)内部主机到主机之间的通信 ——交换机ARP(属于网络层和数据链路层之间)
物理层传输介质通信——集线器

二、网络通信基础

网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用IP地址来标识。下面介绍三个用于网络通信的重要概念。

1、MAC地址

物理地址,绑定在网卡上的一个地址(硬件地址),给数据链路层使用

2、IP地址

主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址。就像我们发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。

3、端口

用来标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程(传输层)。类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货人(端口号)。

(端口号是0~65535范围的数字)

两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号,也就意味着,一个端口在某一时刻只能属于一个进程。

4、协议

协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。通常由三要素组成:
(1)语法
即数据与控制信息的结构或格式;类似打电话时,双方要使用同样的语言:普通话;
(2)语义
即需要发出何种控制信息,完成何种动作以及做出何种响应;语义主要用来说明通信双方应当怎么做。用于协调与差错处理的控制信息。类似打电话时,说话的内容。一方道:你瞅啥?另一方就得有对应的响应:瞅你咋的!
(3) 时序
即事件实现顺序的详细说明。时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是异步传输。

5、五元组

在TCP/IP协议中,用五元组来标识一个网络通信:

  1. 源IP:标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的IP:标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双方约定的数据格式
    (这是应用层讨论的问题)

6、数据封装

数据封装(Data Encapsulation)是指将协议数据单元(PDU)封装在一组协议头和尾中的过程。

  • 应用层:将数据交给传输层
  • 传输层:添加上TCP的控制信息(称为TCP头部),这个数据单元称为(Segment);或添加上UDP的控制信息,这个数据单元称为报文(Datagram);加入控制信息的过程称为封装。然后,将段交给网络层。
  • 网络层:接收到段或报文,再添加上IP头部,这个数据单元称为(Packet)。然后,将包交给数据链路层。
  • 数据链路层:接收到包,再添加上MAC头部和尾部,这个数据单元称为(Frame)。然后,将帧交给物理层。
  • 物理层:将接收到的数据转化为比特流,然后在网线中传送。

总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值