网络基础

1.冯洛伊曼理论上是网络,不考虑数据丢失。

  • 数据发出
  • 网卡收到
  • 存在内存
  • CPU(运算,解包自低向上)封装在内存,通过网卡丢出去
    但是不可距离过长,因为长距离传输容易造成数据的丢失。
    (Tcp可以解决丢包问题,IP解决查找问题)

2.网络的发展

  • 独立模式:计算机之间相互独立。
  • 网络互联:多台计算机连接在一起,完成数据共享。
  • 局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起。(交换机:对数据帧进行交换)
  • 广域网WAN:将远隔千里的计算机都连在一起。

所谓“局域网”与“广域网”只是一个相对的概念。比如,我们有“天朝特色”的广域网,也可以看做一个比较大的局域网。

3.协议:是一种约定,以及执行准则

举例说明:

  • 计算机之间的传输媒介是光信号与电信号。通过“频率”和“强弱”来表示0与1这样的信息,要想传递各种不同的信息,就需要约定好双方的数据格式。

在网络中,两台主机要通信不仅要约定好协议,还需要大家都遵守的标准,便是“网络协议
通俗来说因为:计算机生产厂商有很多,计算机操作系统,也有很多;计算机网络硬件设备,也有很多,为了让这些不同厂商之间生产的计算机能够相互顺畅的通信?就需要有人站起来,约定一个标准,大家都要遵守,这就是网络协议。

4.OSI七层模型

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型, 是一个逻辑上的定义和规范; 把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机; OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输; 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七 个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯; 但是, 它既复杂又不实用;
网络基础_第1张图片

网络基础_第2张图片

5.TCP/IP五层模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
(1)物理层:负责光/电信号的传递方式(比如现在以太网通用的网线(双绞线)、早期以太网采用的同轴电缆(现在主要用于有线电视、光纤),现在的wifi无线网使用的电磁波等都属于物理层的概念)。物理层的能力决定了最大传输速率、传输距离、抗干扰性等,集线器(Hub)工作在物理层;
(2)数据链路层:负责设备之间的数据帧的传送和识别(例如:网卡设备的驱动、帧同步、冲突检测、数据差错校验等工作)。有以太网、令牌环网、无线LAN等标准。交换机(Switch)工作在数据链路层;
(3)网络层:负责地址管理和路由器选择(例如:在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路)。路由器工作在网络层;
(4)传输层:负责两台主机之间的数据传输(例如:传输控制协议(TCP),能够确保数据可靠的从源主机发送到目标主机);
(5)应用层:负责应用程序间的沟通(例如:简单电子邮件(SMTP)、文件传输协议(FTP)、网络远程访问协议(Tenet)等)。我们的网络编程主要就是针对应用层。
网络基础_第3张图片
一般而言:

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器,它实现了从网络层到物理层; (连接局域网对网道数据进行转发)。
  • 对于一台交换机,它实现了从数据链路层到物理层;(有效的划分碰撞域,有效解决数据碰撞问题)
  • 对于集成器,它只实现了物理层。(信号越来越弱,信号放大)。
    注意:上述并不是绝对的,很多交换机也实现了网络层的转发;很多路由器也实现了部分传输层的内容(比如端口转发)

6.网络传输

1)网络传输流程图
同一个网段内的两台主机进行文件传输
网络层(也叫网际层);链路层(也叫网络接口层),设备驱动程序及接口卡不能跨网络。
CPU处理网络协议的代码
网络基础_第4张图片
2)两台计算机通过TCP/IP协议通讯的过程

  • 局域网主机的通讯原理:所有主机都可以直接通信,所有主机可以收到数据组,不过只有通信对象处理。
  • 所有的驱动都是从上层开始往下驱动的最后到对方的顶层,除了顶层报头外,每一个报头都有一个字段:将自己的有效载荷交给上层的哪一个协议(分用过程
  • 链路层(数据称为数据帧)网络层(数据称为数据报)传输层(数据称为数据段)
  • 内核自低向上根据协议解包
  • 以太网驱动程序根据MAC帧协议对报文解析,报头与有效载荷将有效的交给上层
  • 局域网在通信时,每个主机都有一个标识符叫做MAC地址,内嵌在网卡中的序列号
  • 任一时刻局域网只允许一个对象发数据:可以同时扔数据;冲突检测;冲突避免/执行
  • 数据碰撞------》冲突检测-------》执行冲突避免算法
  • 基于冲突检测的叫做以太网
  • 网卡有混杂模式 抓包
  • 自顶向下的过程叫做封装的过程
  • 每层:报头+有效载荷(数据)
  • 报头:解包CPU对数据加工与处理执行各层协议站的代码
  • 封装是必须的 ,怎么处理数据取决于应用层协议。
  • 用户进程处理应用程序的细节;内核处理通信细节

3)跨网段的主机的文件传输,数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器

  • 以太网驱动程序:解决从A–》B的过程。
  • 路由器:连接局域网对网道数据进行转发,至少两个MAC地址
  • IP网实现虚拟化(骗子),进程虚拟地址空间也是
  • 网卡地址:一般6个字节;MAC地址48个比特位(这两个唯一标识一个主机)(IP给了一个方向)(唐僧)
  • MAC地址是48个比特位,MAC地址一直在变化(从上一站–》下一站)进行真正的数据交换。
  • MAC地址解决了同一局域网A-》B 问题,IP解决了跨网络A–》B的问题。

4)路由器

  • 解包
  • 分析报头(丢到)
  • 将有效载荷给网络层
  • 向下封装MAC地址与报头

5)数据包封装和分用
(1)不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame);

(2)应用层数据通过协议栈发到网络上时,每层协议都要加一个数据首部(header),称为封装(Encapsulation);

(3)首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息;

(4)数据封装成帧后发到传输介质上,到达目的的主机后每层协议再剥掉相应的首部,根据首部中的“上层协议字段”将数据交给对应的上层协议处理。

你可能感兴趣的:(内功心法)