网络基础1

网络协议初识

OSI七层模型:
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是⼀个逻辑上的定义和规范 ;
把网络从逻辑上分为了 7层.每⼀层都有相关、相对应的物理设备,⽐如路由器,交换机 ;
OSI七层模型是⼀种框架性的设计⽅法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
它的最⼤优点是将服务、接⼝和协议这三个概念明确地区分开来,概念清楚,理论也⽐较完整 .通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
物理层 : O S I 模型的最低层或第一层,该层包括物理连网媒介,如电缆连线连接器。物理层的协议产生并检测电压以便发送和接收携带数据的信号。
数据链路层: O S I 模型的第二层,它控制网络层与物理层之间的通信。它的主要功能是如何在不可靠的物理线路上进行数据的可靠传递。为了保证传输,从网络层接收到的数据被分割成特定的可被物理层传输的帧。帧是用来移动数据的结构包,它不仅包括原始数据,还包括发送方和接收方的网络地址以及纠错和控制信息。其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达。 如果在传送数据时,接收点检测到所传数据中有差错,就要通知发送方重发这一帧。
网络层: O S I 模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。
传输层: O S I 模型中最重要的一层。传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割。
会话层: 负责在网络中的两节点之间建立和维持通信。 会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对 话,决定通信是否被中断以及通信中断时决定从何处重新发送。
表示层: 应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。
应用层: 负责对软件提供接口以使程序能使用网络服务。术语“应用层”并不是指运行在网络上的某个特别应用程序 ,应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。
但是,OSI七层模型既复杂⼜不实⽤,所以我们按照TCP/IP四层模型来讲解。
TCP/IP五层(或四层)模型
TCP/IP是⼀组协议的代名词,它还包括许多协议,组成了 TCP/IP协议簇。
TCP/IP通讯协议采⽤了5层的层级结构,每⼀层都呼叫它的下⼀层所提供的网络来完成⾃⼰的需求 。
物理层:负责光/电信号的传递⽅式.⽐如现在以太网通⽤的网线 (双绞线)、早期以太⺴采⽤的的同轴电缆(现在主要⽤于有线电视 )、光纤,现在的wifi⽆线⺴使⽤电磁波等都属于物理层的概念。物理层的能⼒决定了最⼤传输速率、传输距离、抗干扰性等 .集线器(Hub)⼯作在物理层。
数据链路层:负责设备之间的数据帧的传送和识别 .例如网卡设备的驱动、帧同步 (就是说从网线上检测到什么信号算作新帧的开始 )、冲突检测(如果检测到冲突就⾃动重发 )、数据差错校验等⼯作 。有以太网、令牌环⺴网,⽆线LAN等标准.交换机(Switch)⼯作在数据链路层。
网络层:负责地址管理和路由选择 ,例如在IP协议中,通过IP地址来标识⼀台主机 ,并通过路由表的⽅式规划出两台主机之间的数据传输的线路 (路由).路由器(Router)⼯作在网路层。
传输层:负责两台主机之间的数据传输 。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
应⽤层:负责应⽤程序间沟通,如简单电⼦邮件传输( SMTP)、⽂件传输协议( FTP)、网络远程访问协议(Telnet)等.我们的网络编程主要就是针对应⽤层。
物理层我们考虑的⽐较少 ,因此很多时候也可以称为 TCP/IP四层模型。
一般来说:
对于⼀台主机, 它的操作系统内核实现了从传输层到物理层的内容;
对于⼀台路由器, 它实现了从⺴⽹网络层到物理层;
对于⼀台交换机, 它实现了从数据链路层到物理层;
但是并不绝对. 很多交换机也实现了⺴⽹网络层的转发; 很多路由器也实现了部分传输层的内容(⽐比如端⼝口转发)。

网络传输基本流程

网络传输流程图
同一个网段内的两台主机进行文件传输。
这里写图片描述
两台计算机通过TCP/IP协议通讯的过程如下图:
这里写图片描述
跨网段的主机的文件传输;数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。
这里写图片描述
数据包封装和分用
  不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram), 在链路层叫做帧(frame);
  应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装 (Encapsulation);
  首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息;
  数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的⾸首部, 根据⾸首部中的 “上层协议字段” 将数据交给对应的上层协议处理。
  
数据封装过程:
这里写图片描述
数据分用过程:
这里写图片描述