HTTP之路>网络基础

1.网络基础 

1.1 ISO/OSI七层模型

ISO:国际标准化组织

OSI:开放系统互联模型

IOS:苹果操作系统 

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器,交换机。OSI 七层模型是一种框架性的设计方法 ,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能使就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

了解七层模型如图:

分析ISO七层模型:

先了解下图中的名词

MAC:MAC地址负责局域网通信

IP:IP地址负责外网通信 

TPDU:传输协议数据单元

SPDU:会话协议数据单元

PPDU:表示层协议数据单元

APDU:应用层协议数据单元

上三层(7、6、5)表示:为用户提供服务

下四(4、3、2、1)层表示:数据传递服务

 

应用层:用户接口

表示层:数据的表示形式、特定功能的实现 如-加密 、文件、视频、音频等 通过ASCII 其他 最后解析 0和1

会话层:对应用会话的管理、同步

传输层:可靠与不可靠的传输、传输前的错误检测、流控

网络层:提供逻辑地址、选路、IP地址

数据链路层:组帧、用MAC地址访问媒介、错误检测与修正

物理层:设备之间的比特流的传输、物理接口、电气特性等。


 

一.物理层(Physical Layer)

物理层的作用就是通过物理手段把电脑连接起来,它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号,是比特流的透明传送。
通过物理手段将设备连接起来组网,物理手段就是光缆、电缆、网线、插头、无线电波(WiFi)等,为设备之间的信息传输提供可靠环境,可以在通信的两个数据终端的设备之间连接起来形成一条通路。比如中美之间的网络通信是通过海底光缆。

O S I 模型的最低层或第一层,该层包括物理连网媒介,如电缆连线连接器。物理层的协议产生并检测电压以便发送和接收携带数据的信号。在你的桌面P C 上插入网络接口卡,你就建立了计算机连网的基础。换言之,你提供了一个物理层。尽管物理层不提供纠错服务,但它能够设定数据传输速率并监测数据出错率。网络物理问题,如电线断开,将影响物理层。用户要传递信息就要利用一些物理媒体,如双绞线、同轴电缆等,但具体的物理媒体并不在OSI的7层之内,有人把物理媒体当做第0层,物理层的任务就是为它的上一层提供一个物理连接,以及它们的机械、电气、功能和过程特性。如规定使用电缆和接头的类型、传送信号的电压等。在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是bit比特。

分析物理层

物理链接可以是光缆、电缆、双绞线、无线电波。中间传的是电信号,即010101...这些二进制位。

底层传输的010010101001...这些二级制位怎么才能让它有意义呢?

要让这些010010101001...有意思,人为的分组再适合不过了,8位一组,发送及接收都按照8位一组来划分。接收到8位为一组的话,那么就可以按照这8位数来做运算。如果没有分组,对方接收的计算机根本就不知道从哪一位开始来做计算,也解析不了收到的数据。我发了16位你就按照16位来做计算吗?我发100位你就按照100位做计算吗?没什么意义是吧。因此要想让底层的电信号有意义,必须要把底层的电信号做分组。我做好8位一组,那么我收到数据,我就知道这几个8位做一组,这几个8位做一组。那么每个8位就可以得到一个确定的数。分组是谁干的活呢?物理层干不了,这个是数据链路层干的。


 

 

二.数据链路层(Datalink Layer)

OSI模型的第二层,它控制网络层与物理层之间的通信。它的主要功能是如何在不可靠的物理线路上进行数据的可靠传递。为了保证传输,从网络层接收到的数据被分割成特定的可被物理层传输的帧。帧是用来移动数据的结构包,它不仅包括原始数据,还包括发送方和接收方的物理地址以及检错和控制信息。其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达。 如果在传送数据时,接收点检测到所传数据中有差错,就要通知发送方重发这一帧。数据链路层的功能独立于网络和它的节点和所采用的物理层类型,它也不关心是否正在运行 Wo r d 、E x c e l 或使用I n t e r n e t 。有一些连接设备,如交换机,由于它们要对帧解码并使用帧信息将数据发送到正确的接收方,所以它们是工作在数据链路层的。数据链路层(DataLinkLayer):在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。数据链路层协议的代表包括:SDLCHDLCPPPSTP帧中继等。

分析数据链路层:

早期的时候,数据链路层就是来对电信号来做分组的。以前每个公司都有自己的分组方式,非常的乱,后来形成了统一的标准(标准就是协议),即以太网协议Ethernet。

Ethernet规定

一组电信号称之为一个数据包,或者叫做一个“帧(Frame)”

每一帧分成:报头(Head)和数据(Data)。

 

   head                        data               

 

Head包含:(固定18个字节)

  • 发送者(源地址,6个字节)
  • 接收者(目标地址,6个字节)
  • 数据类型(6个字节)

data包含:(最短46字节,最长1500字节)

  • 数据包的具体内容

head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送。

上面我们提到,以太网数据包的“报头”包含了发送者和接受者的信息,那么,发送者和接受者是如何标识的呢?

MAC地址由来:

以太网规定,连入网络的所有设备,都必须具有“网卡”接口。数据包必须是从一块网卡,传送到另一块网卡,网卡的地址,就是数据包的发送地址和接受地址,也叫MAC地址。每块网卡出厂的时候,都有全世界独一无二的MAC地址,长度是48位的二进制,通常用12个十六进制数表示。前6个十六进制是厂商编号,后6个是该厂商的网卡流水号,有了MAC地址,就可以定位网卡和数据包的路径了。

局域网通信方式: 广播

有了mac地址以后,计算机就可以通信了,但只能在局域网内。这里只需要知道,以太网数据包必须知道接收方的MAC地址,然后才能发送。其次,就算有了MAC地址,系统怎样才能把数据包准确送到接收方?回答是以太网采用了一种很”原始”的广播式的方式,它不是把数据包准确送到接收方,而是向本网络(局域网)内所有计算机发送,让每台计算机自己判断,是否为接收方。一台计算机向本局域网内的所有电脑均发送相同的数据包,其他计算机收到这个数据包之后,会读取这个数据包的“报头”,找到其中接收方(目标方)的MAC地址,然后与自身的MAC地址进行比对,如果两者相同,说明就是要发给自己的,然后接受这个包并做出进一步的处理,否则丢弃这个包。这种发送方式就叫“广播”,主要通过分组交换机或者网络交换机进行。那么问题来了?不是局域网该怎么通信:这就要跨网络进行通信,数据链路层就解决不了这个问题了,这就得靠网络层出面了。


 

三.网络层(Network Layer)

O S I 模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A 到另一个网络中节点B 的最佳路径。由于网络层处理,并智能指导数据传送,路由器连接网络各段,所以路由器属于网络层。在网络中,“路由”是基于编址方案、使用模式以及可达性来指引数据的发送。 网络层负责在源机器和目标机器之间建立它们所使用的路由。这一层本身没有任何错误检测和修正机制,因此,网络层必须依赖于端端之间的由D L L提供的可靠传输服务。 网络层用于本地L A N网段之上的计算机系统建立通信,它之所以可以这样做,是因为它有自己的路由地址结构,这种结构与第二层机器地址是分开的、独立的。这种协议称为路由或可路由协议。路由协议包括I P、N o v e l l公司的I P X以及A p p l e Ta l k协议。 网络层是可选的,它只用于当两个计算机系统处于不同的由路由器分割开的网段这种情况,或者当通信应用要求某种网络层或传输层提供的服务、特性或者能力时。例如,当两台主机处于同一个L A N网段的直接相连这种情况,它们之间的通信只使用L A N的通信机制就可以了(即OSI 参考模型的一二层)。

分析网络层:这一层复杂啦!

 数据链路层(MAC)提供直连两个设备之间的通信;

网络层(IP)负责没有直连的两个网络之间进行通信传输。

具体的说数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由控制等,将信息从一个网络设备传送到另一个网络设备。我们常见的是路由器、网关等。

在实现网络层功能时,需要解决的主要问题如下:

IP寻址:

在计算机通信中,为了识别通信对端,必须要有一个类似于地址的识别码进行标识。上面介绍过链路层的MAC地址,MAC地址正是用来标识同一个链路中不同计算机的一种识别码。作为网络层的IP,也有这种地址信息。一般叫做IP地址。IP地址用于【连接到网络中的所有主机中识别出进行通信的目标地址】。确定了IP地址,就可以向这个目标地址发送IP数据报。然而,在底层数据链路层,进行实际通信时却有必要了解每个IP地址所对应的MAC地址。

ARP协议:  RARP协议等

APR协议来解决。以目标IP地址为线索,用来定位下一个应该接受数据分包的网络设备对应的MAC地址。如果目标主机不在同一个链路上时,可以通过ARP查找下一跳路由器的MAC地址。

ARP-------之适用于  IPv4

ICMP------IPv6

因此实现网络中通信,IP地址和MAC地址缺一不可

路由控制:将分组数据发送到最终目标地址的功能

路由算法:当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。如下图中的实线路径

这层还有其他设备 路由器 交换机 集线器...这些设备的那些功能,能做什么.....等等

 

四.传输层(Transport Layer)

O S I 模型中最重要的一层。传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割。例如,以太网无法接收大于1 5 0 0 字节的数据包。发送方节点的传输层将数据分割成较小的数据片,同时对每一数据片安排一序列号,以便数据到达接收方节点的传输层时,能以正确的顺序重组。该过程即被称为排序。   工作在传输层的一种服务是 T C P / I P 协议套中的T C P (传输控制协议),另一项传输层服务是I P X / S P X 协议集的S P X (序列包交换)。

五.会话层(Session Layer)

负责在网络中的两节点之间建立、维持和终止通信。 会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。   你可能常常听到有人把会话层称作网络通信的“交通警察”。当通过拨号向你的 ISP (因特网服务提供商)请求连接到因特网时,ISP 服务器上的会话层向你与你的 PC 客户机上的会话层进行协商连接。若你的电话线偶然从墙上插孔脱落时,你终端机上的会话层将检测到连接中断并重新发起连接。会话层通过决定节点通信的优先级和通信时间的长短来设置通信期限

六.表示层(Presentation Layer)

应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。   表示层管理数据的解密与加密,如系统口令的处理。例如:在 Internet上查询你银行账户,使用的即是一种安全连接。你的账户数据在发送前被加密,在网络的另一端,表示层将对接收到的数据解密。除此之外,表示层协议还对图片和文件格式信息进行解码和编码。

七.应用层(Application Layer)

应用层也称为应用实体(AE),它由若干个特定应用服务元素(SASE)和一个或多个公用应用服务元素(CASE)组成。每个SASE提供特定的应用服务,例如文件运输访问和管理(FTAM)、电子文电处理(MHS)、虚拟终端协议(VAP)等。CASE提供一组公用的应用服务,例如联系控制服务元素(ACSE)、可靠运输服务元素(RTSE)和远程操作服务元素(ROSE)等。主要负责对软件提供接口以使程序能使用网络服务。术语“应用层”并不是指运行在网络上的某个特别应用程序 ,应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。

 

简版:   

1.物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这层的数据叫特。   

2.数据链路层:定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。  

3.网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。   

4.传输层:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。   

5.会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)   

6.表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。   

7.应用层: 是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

 

OSI七层网络模型 TCP/IP四层概念模型 对应网络协议
应用层 (Application) 应用层 HTTP、TFTP, FTP, NFS, WAIS、SMTP
表示层 (Presentation) Telnet, Rlogin, SNMP, Gopher
会话层 (Session) SMTP, DNS
传输层 (Transport) 传输层 TCP, UDP
网络层 (Network) 网络层 IP, ICMP, ARP, RARP, AKP, UUCP
数据链路层 (Data Link) 数据链路层 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
物理层 (Physical) IEEE 802.1A, IEEE 802.2到IEEE 802.11

 

 

 

 

 

 

 

 

 

 

 

 

1.2 TCP/IP四层模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP协议簇分为四层:
应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 

传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 

互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 

网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。

 

 

1.3 IP地址

  在互联网通信中,用IP地址识别主机和路由器。

  。。。

1.4 端口作用

  • 什么是端口?

    端口: 用来识别同一台计算机进行通信的不同应用程序。(程序地址)

  • 端口号如何确定?

    静态端口号:应用程序制定的端口号。取值范围 0~1023

    注册端口号:取值范围 1024~49151

    动态端口号:服务端监听端口号,然后交个操作系统进行分配互不冲突的端口号。 取值范围 49152~65536

    关于端口号最新消息:http://www.iana.org/assignments/port-numbers

  • 端口号与协议关系?

    端口号由使用的传输层协议决定。因此不同的传输协议可以使用相同的端口号。

    静态端口号与传输层协议无关系,只要端口一致都将分配同一种程序进行处理。

  • 常用端口号:

    

 

1.5 DNS作用

  • DNS是什么?

    域名解析:DNS可以将那些字符串转换为具体的IP地址。DNS(Domain Name System)

  • DNS发展史?

    早期用Hosts文件解析域名,但后来随着网络模式的不断扩大,计算机不断增加,使用Hosts文件解析域名效能下降、维护困难。

    在上述的背景之下,DNS也就出现了。

  • DNS特点?

    层次性 、分布式 :如下图

    

    分析图片:

    ① 域名用 "   " 进行分割便于分级管理。

    ② 根域:  " . " 表示根域名  根域名的服务器大概有13台,也可能会变更。

       ③ 顶级域: 域名分配组织ISO决定 。(组织域  国家或地区域 )

      组织域如下图:

      

      国家地区域如下图:

      

      ④ 二级域名  商业性是一些公司某企业申请获得 

      ⑤主机名  自己规定

      ⑥ 三级域+二级域+顶级域组成完整域名空间,并全球唯一 

  • DNS查询过程

       

 

      DNS客户机要访问 www.imooc.com.cn

    1. 向本地域名服务器查询IP地址
    2. 由于本地域名服务器并不知道 www.imooc.com.cn的IP地址是什么,它向根域名服务器请求查询域名。该服务器查到的cn 并返回给本地域名服务器。
    3. 本地域名服务器向cn域名服务器请求查询域名,然后返回com.cn
    4. 同上
    5. 同上
    6. 将www.imooc.com.cn 查到的IP地址返回给客户机
    7. 客户机终于访问到了WEB服务器 。
    8. 查询类型:

          

 

    解析器和域名服务器将最新了解到的信息暂时保存到缓存里,这样可以减少每次查询时的性能消耗。

 

 

1.6 网关作用

  • 网关是什么?

    网关是OSI参考模型中负责将从传输层到应用层的数据进行转换和转发设备。   

    网关又称 网间连接器、协议转换器,即可以用于广域网互连、也可以用于局域网互连;

       网关是一种充当转换重任的服务器或路由器。

  • 理解网关

  

  网关的作用:

    -- 网关在所有内网计算机访问的不是本网段的数据报时使用。

    -- 网关负责将内网IP转换为公网IP,公网IP转换为内网IP。

 

1.7小总结

  在OSI模型中,每一层都有些专业术语名称、各种协议。这里得花点时间去理解总结,目前在学习HTTP和TCP/IP ,此后,在总结的过程会不断完善文章中不足之处。

 

 

 

posted @ 2019-06-07 23:00  _huijianjian  阅读(267)  评论(0编辑  收藏  举报
levels of contents