网络笔记(一)

网络笔记(一)

在同一个局域网两台主机是可以通讯的

任何一个在局域网的主机,在不欠运营商费用的情况下是可以直接访问公网上的任何一个主机

  • 公网:所有人可以直接访问

协议:就像快递盒子上面的信息一样,包装快递的包裹在网络中就称为封装,当你拆快递的时候就相当于解包,快递员将包裹准确的发到你的手上就相当于分路。

  • 封装,解包,分用
  • 协议本质上就是一种约定
  • 在网络当中我们的网络结构是以层状结构呈现的,分层的目的是为了更好的解耦。层状结构
  • 在网络的分层结构中,同层可以认为自己在和对方进行通讯
    • 就比如:A和B在打电话,A与B之间的通讯就视为为同层的,而A的手机和B的手机间的通讯就是同层的。
  • 网卡(外设)中有一组寄存器用来接收网络中的数据
  • 网卡是一个硬件,一旦网卡有数据时,网卡就会向CPU发送中断信号,当CPU收到信号之后操作系统也会收到信息
    • 举例:外卖送餐,这里的网卡就可以理解成为外卖小哥,而当外卖小哥给你打电话取外卖时就相当于向CPU发送专断请求,而你就相当于CPU或者操作系统。而这时你非常的忙,将外卖取回来之后并没有立刻的去处理,这就叫做中断的上半部,只是将数据从外设拿到内存里。下半部是就是处理数据,在处理数据中就牵扯到网络分层,解包,分用(软件行为)

网络初识

TCP:解决最严重的丢包问题,可靠性问题

IP:解决查找问题

局域网LAN:计算机数量多,通过交换机和路由器连接在一起

  • 交换机:属于局域网上边的一个设备,在最底层将数据帧进行交换的不会跨网络传输

广域网WAN:将远隔千里的计算机连在一起

  • 局域网与广局网,一个将数据传输的距离近,一个将数据传输的距离远

协议:就是约定,约定一个共同的标准,大家都来遵守,这就是网络协议。

网络协议初识


协议分层

打电话栗子

  • 在网络当中我们的网络结构是以层状结构呈现的,分层的目的是为了更好的解耦。层状结构
  • 在网络的分层结构中,同层可以认为自己在和对方进行通讯
    • 就比如:A和B在打电话,A与B之间的通讯就视为为同层的,而A的手机和B的手机间的通讯就是同层的。

分层好处就是在于封装与解耦,封装完毕就可以实现层层解耦。

OSI七层协议


数据链路层也叫作网络接口层

TCP/IP是一组协议代名词,其中包括许多协议,组成了TCP/IP协议簇

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

TCP/IP五层模型(四层)

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
  • 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
    • 负责传输具体操作过程
  • 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
    • 负责传输的路线的规划,为数据包选择路由
  • 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
    • 不需要关心传输的具体过程,只需要关心传输的起始位置一样
  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层

物理层一般考虑的较少,因此也可以称作TCP/IP四层模型

一般而言

  • 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器, 它实现了从网络层到物理层
    • 路由器:连接局域网,对网道网的数据进行转发,工作在网络层
  • 对于一台交换机, 它实现了从数据链路层到物理层
    • 交换机:划分碰撞域,有效解决数据碰撞
  • 对于集线器, 只实现了物理层
    • 集线器:放大信号的作用

网络传输基本流程

网络传输流程图

局域网通信图

局域网通信

TCP/IP通讯过程(局域网)

局域网(以太网)通信:在一个局域网中,所有的计算都会接收到某个计算机所发送的信息,只不过,在链路层就会去识别发送的对象是否与自己匹配,不匹配会直接将信息屏蔽。在局域网中,任何一个时刻只能有一台主机在往网上发送数据。

  • 当局域网中有多个用户往网线发送信息时,就会进行冲突检测,然后执行冲突避免算法解决冲突。
  • 在局域网中通信,每个主机在底层都有一个标识符,这个标识符就叫做MAC地址
    • MAC地址是全球唯一的,可以理解成在网卡中的一个序列号
  • 抓包工具:抓包就是将别人的包文件抓取出来(在局域网中)

数据在自定向下交付的时候就进行分装,而要封装就要添加每一层协议的包头,就比如应用层就要添加应用层的包头,那么应用层里边所搭载的数据就叫做应用层的有效载荷,任何一层的包头可以分为两部分,该层包头和该层的有效载荷,包头是当前层加的,有效载荷是上层给的。所以在网络传输时只要自定向下交付做封装就可以了,将自定向下交付的过程就成为封装。

  • 封装:快递包装

  • 报头:快递上面的包装信息

  • 有效载荷:盒子中的包裹

将数据链路层的数据叫做数据帧,在IP层叫做数据报,在TCP层叫做数据段

除了最顶层协议,任何协议的报头当中必定要包含一个字段,这个字段表明要将自己有效载荷交给上一次的哪一种协议。只要有这个字段,就能准确将报办实现向上交付。将自己有效载荷交付个上层特定协议的过程,称为分用的过程。

▄︻┻┳═一…… ☆(>○<)

广域网通信

广域网通信图

在IP报进行路由时,要先找到目标主机所对应的局域网。

路由器要至少连接两个局域网,所以至少有两个MAC地址,工作在网络层

网络中的地址管理

IP地址:

IP协议分为 IPV4与IPV6,一般情况下默认为IPV4

  • IP地址是在IP协议中用来表示网络中不同主机的地址
  • 对于IPV4来说,IP地址为4字节,32比特位
  • 对于IPV6来说,IP地址为16个字节,128比特位
  • IP地址一般使用“点分十进制”的字符串来表示,例如 192.168.1.1
    • 用点分割的每一数字表示一个字节,范围是0-255;

MAC地址:真正意义上进行数据转发的,一直变化

  • MAC地址是用来识别数据链路层中相连的节点

  • MAC地址是48个比特位,6个字节

    • 一般用16进制数字加上冒号的形式表示,例如:08:00:27:da:28
  • 在网卡出厂时就确定了, 不能修改mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)