美文网首页
网络基础概念

网络基础概念

作者: Haozhong | 来源:发表于2017-02-09 20:33 被阅读0次

    计算机网络

    基础概念

    实现多个计算机系统的资源共享和信息传递

    通信子网:介质,设备,协议,对应物理层,数据链路层,网络层

    资源子网:主机,终端,软件对应应用层,表示层,会话层

    带宽:在通信领域表示通信线路允许通过的信号频带范围,单位Hz,在计算机网络中,表示通信线路每秒的传送数据量,单位bit/s

    时延:报文(分组)从网络(链路)一端传送到另外一端需要的时间,有四个部分组成

    发送时延:数据块长度/带宽

    传播时延:信道长度/传播速率

    处理时延:对数据快的进行存储转发处理所需的时间

    排队时延:分组等待路由器确定端口,等到输出队列转发

    吞吐量:单位时间通过某个网络(信道/接口)的数据量

    速率:计算机网络上的主机在数字信道上传送数据的速率,单位b/s

    接口:同一结点内相邻两层交换信息的连接点,即服务访问点

    服务:由下层向上层通过层间接口提供的功能调用

    协议:协议的实现(同一层两个对等实体间的通信)保证了能够向上一层提供服务,协议控制对等实体之间的通信规则,要实现本层协议需要使用下层提供的服务

    网络协议主要包含三个要素:

    语法(数据与控制信息的结构或格式)

    语义(控制信息对应的动作和应答)

    同步(事件的实现顺序)

    局域网和广域网:在网内通讯只需要物理地址,局域网使用的协议主要在数据链路层和物理层,广域网使用的协议主要在网络层,以及数据链路层和物理层

    以太网:以太网是局域网的一种实现形式,以太网逻辑上采用总线型拓扑结构,所有计算机共享同一条总线,信息以广播方式发送,采用了无连接的工作方式,不对发送的数据帧编号,也不要求接收发送确认。以太网尽最大努力交付数据,提供的是不可靠服务,对于差错的纠正由高层协议完成。

    万维网的组成

    (1)统一资源定位符URL,每个资源在万维网范围内具有唯一的标识符

    <协议>://<主机>:<端口>/<路径>

    (2)超文本传输协议HTTP,使用TCP连接进行可靠传输的应用层协议

    (3)超文本标记语言HTML,文档结构的标记语言,使用一些约定的标记对页面上的各种信息、格式进行描述

    互联网泛指多个计算机网络按照一定的通信协议相互连接成一个大型的计算机网络。

    因特网是指在ARPA网基础上发展而来的世界上最大的全球性互联网络,因特网和其他类似的由计算机相互连接而成的大型网络系统,都可以算互联网,因特网只是互联网中最大的一个。

    万维网是无数个网络站点和网页的集合,他们在一起构成了因特网最主要的部分,因特网还包括了电子邮件等。

    网络模型的层次结构

    物理层

    基本数据单元:比特

    基本功能:实现比特流的传输和接收,物理媒体不属于物理层协议,位于物理层协议下方

    基本协议:IEEE802

    数据链路层

    基本数据单元:帧

    基本功能

    加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的的链路,在概念上分为两个子层:LLC和MAC,提供三种服务:无确认的无连接服务,又确认的无连接服务,有确认的有连接服务

    链路管理:链路连接的建立,维持,释放以及对异常情况的处理

    帧定界和帧同步:链路层传输的数据单元是帧,协议不同,帧的长短和定界方法也有差别,但无论如何必须对帧进行定界,即添加必要的首部和尾部

    流量控制:控制发送方数据的发送速率,使接收方能够完全接收,从而防止由于发送方数据发送过快而接收方接受过慢导致数据丢失

    差错控制:对数据传输中的差错进行检测和纠正,提供“无比特差错” 的传输

    实现数据的透明传输并使用MAC地址提供对介质的访问,保证每一帧都能正确到达目的站(为了防止帧在传输过程中丢失,在可靠的数据链路层协议中,发送方缓存发送的每个帧,并为它设定一个计时器,当计时器到期而该帧的确认帧仍然没有到时,发送方将重发该帧)

    将数据和控制信息区分开:通过一定措施区分开帧的数据和控制信息

    逻辑链路控制LLC子层:该层集中了与媒体接入无关的功能。建立和释放数据链路层的逻辑连接;提供与上层的接口(即服务访问点);给LLC帧加上序号;差错控制。

    介质访问控制MAC子层:负责解决与媒体接入有关的问题和在物理层的基础上进行无差错的通信。发送时将上层交下来的数据封装成帧进行发送,接收时对帧进行拆卸,将数据交给上层;实现和维护MAC协议;进行比特差错检查与寻址。

    基本协议:Ethernet协议

    工作设备:网卡(物理层,数据链路层),网桥,交换机(多端口网桥)

    网桥:将两个相似的网络连接起来,并对网络数据的流通进行管理,不但能扩展网络的距离或范围,还能提高网络的性能。(网络1和网络2通过网桥连接,网桥接收到网络1发送的数据包,检查数据包中的地址,如果地址属于网络1 ,他就将其放弃,相反,如果是网络2 的地址,就继续发送给网络2,这样可以利用网桥隔离网段)

    网桥的基本特点

    网桥必须具备寻址和路径的选择能力,已确定帧的传输方向

    从源网络接收帧,以目的网络的介质访问控制协议向目的网络转发该帧

    网桥在不同或者相同类型的LAN之间存储并转发帧,必要时还进行链路层上的协议转换

    网桥对所接收到的帧不做任何修改,或只对帧的封装格式做很小的修改

    网桥可以通过执行帧翻译互连不同类型的局域网,即把原协议的信息段的内容作为另一种协议的信息部分封装在帧中

    网桥应该有足够大的缓存空间,因为短时间内帧的到达速度可能高于转发速度

    网桥的优点:过滤通信量,扩大物理范围,可使用不同的物理层,可互连不同类型的局域网,提高了网络的可靠性

    网桥的缺点:增加时延,MAC子层没有流量控制功能,不同MAC子层的网段桥接在一起需要帧格式的转换,只适合用户数不多通信量不大的局域网,否则可能因传播过多广播信息而产生网络拥塞(广播风暴)

    链路层提供的MAC寻址与ARP,RARP协议寻址的区别:ARP,RARP协议工作在网络层,负责IP地址与MAC地址的转换,而转换后则由链路层仅靠MAC地址寻址。

    网络层

    基本数据单元:分组

    基本功能:异构网路互连,路由选择和分组转发,拥塞控制

    基本协议:网际协议(IP),互联网组管理协议(IGMP)和网际控制报文协议(ICMP)

    工作设备:网关

    地址解析协议ARP(Address Resolution Protocol)

    维护IP地址到MAC主机地址动态表的协议,将IP地址解析为链路层需要的硬件地址。主机A向本局域网的主机B发送IP数据报时,先查看ARP高速缓存中是否有主机B的地址,如果有就将其硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址,如果没有,就先广播ARP请求分组(MAC帧的目的地址为FF-FF-FF-FF-FF-FF),在获得目标主机的ARP相应分组后,将目标主机的硬件地址与IP映射关系写入ARP缓存中,然后按照此硬件地址发送MAC帧。

    网际控制报文协议协议ICMP (Internet Control Message Protocol)

    使主机或者路由器可以报告差错和异常情况嘛,有差错报文和询问报文。ICMP差错报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况,包括

    (1)终点不可到达

    (2)源点抑制

    (3)时间超过

    (4)参数问题

    (5)改变路由,重定向。

    ICMP询问报文包括

    (1)回送请求和回答报文

    (2)时间戳请求和回答报文

    (3)掩码地址请求和回答报文

    (4)路由器询问和通告报文

    PING工作在应用层,直接使用网络层的ICMP协议的回送请求和回答报文,而没有使用传输层的TCP或UDP协议

    路由信息协议RIP(Routing Information Protocol)

    分布式的基于距离-向量的路由选择协议,最大优点实现简单、开销较小,只能适用于小型的互联网络

    RIP规定

    网络中的每台路由器都要维护从它自己到网络中其他每个目标网络的距离纪录

    距离也称为跳数,直接连接的网络的跳数为0,每经过一个路由器,跳数加1

    一个好的路由就是通过的路由器的个数最小

    一条从源主机到目的主机的路由最多只能包括15个路由器,因此跳数最大为16,表示网络不可到达

    默认在任意两台使用RIP协议的路由器之间每隔30s广播一次RIP的路由更新信息,以便自动建立并维护路由表

    RIP的特点

    每个路由器仅和相邻路由器交换信息

    交换的信息是当前路由器的路由表

    按固定的时间间隔交换路由信息

    路由器的组成和功能

    路由器是一种具有多个输入输出接口的专用计算机,其任务是连接不同的网络并完成路由转发,在多个逻辑网络互联时必须使用路由器,路由器也作为最基础的包过滤防火墙使用

    当源路由器要像目的主机发送数据报时,路由器先检查目的主机是否和源主机在同一个网络中。如果目的主机和源主机在同一个网络上,则直接交付而不同通过路由器,但如果目的主机和源主机不在同一个网络上,则路由器按照路由表指出的路由将数据报转发给下一个路由器,称为间接交付。

    路由器在结构上分为路由选择和分组转发两个部分,从模型的角度看,路由器是网络层的设备,实现了网络模型的下三层,即物理层,数据链路层,网络层。

    传输层

    基本数据单元:报文

    基本功能:

    端到端的通信,为运行在不同主机上的进程之间提供了逻辑通信,网络层提供了主机之间的逻辑通信

    复用和分用,发送方的不同应用进程都可以使用同一个传输层协议传送数据:分用指接收方的传输层在剥去报文的首部后能够把这些数据正确的交付给应用进程,与网络层的复用分用不同,网络层的复用是指发送方能够将不同协议的数据封装为IP数据包发送出去,分用是指接收方的网络层在剥去首部后把数据交付给相应的协议

    对收到的报文进行差错检测(网络层只检查IP数据报的首部,不检验数据部分是否出错)

    提供两种不同的传输协议,即面向连接的TCP和无连接的UDP(网络层无法同时实现两种协议)

    传输层的寻址和端口:

    端口号能够让应用层的各种应用进程将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层的相应进程,端口号并不是一一对应的,只有通过IP地址和端口号才能唯一确定一个主机的一个应用,称为套接字(IP地址+端口号)

    基本协议:TCP/UDP协议

    IP数据报和UDP数据报的区别是IP数据报在网络层要经过路由器的存储转发,而UDP数据报是在传输层的端到端的逻辑信道中传输,在封装成IP数据报在网络层传输时,UDP数据报对路由器是不可见的

    用户数据报协议UDP(User Datagram Protocol)

    只提供了两个最基础的功能,复用分用和差错检测

    无需建立连接,也不会引入建立连接的时延(DNS追求速度使用UDP,HTTP追求可靠性使用TCP)

    无连接状态,TCP需要在端系统中维护连接状态,此链接状态包括接收和发送缓存,拥塞控制参数和序号和,确认号的参数,UDP不需要维护连接状态,也不跟踪这些参数,因此某些专用应用服务使用UDP时一般都能支持更多的活动客户机

    分组首部开销小,TCP需要20B,UDP需要8B

    应用层能更好的控制要发送的数据和发送时间,UDP没有拥塞控制,因此网络中拥塞不会影响主机的发送效率,流媒体、视频会议等应用要求稳定的发送速度能容扔一定的数据丢失,但不容许有较大的时延,UDP正好满足要求

    UDP尽最大努力交付,不保证可靠交付,不代表应用对数据的要求是不可靠的,维护传输可靠性的工作需要用户在应用层完成

    UDP是面向报文的,发送方对应用层交下来的报文,在添加首部后就向下传递给IP层,既不合并也不拆分,而是保留这些报文的边界,接收方对IP层传递的报文,在去除首部后就原封不动的上传给应用进程,一次交付一个完整的报文

    传输控制协议TCP(Transmission Control Protocol )

    TCP是在不可靠的IP层上实现可靠的数据传输协议,主要解决传输的可靠、有序、无丢失和不重复的问题

    TCP是面向连接的传输层协议

    每条TCP连接只能有两个端点,每条TCP连接只能是点对点的

    TCP提供可靠的交付服务,保证传输的无差错、不丢失、不重复且有序

    TCP提供全双工通信,允许通信双方的应用进程在任何时候都能发送数据,因此TCP连接的两端都设有发送缓存和接收缓存

    TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序传递下来的数据看作一连串的无结构字节流

    Source Port和Destination Port代表目的和源端口。

    Sequence Number代表报文段的序号来表示顺序。Acknowledgment Number代表发送方作为接收方已接收的报文段,并且期望收到下个报文段的开始序列号。TCP实际上将传送数据看做成数据的字节流,而不是一个个单独的报文段。这点从Sequence Number就可以看出,Sequence Number以传送的字节数作为单位,而不以报文段的数量作为单位。

    Data Offset作为对齐的空位,Reserved作为保留位。下面是重点Flag位。

    Flag包括Urgent、Ack、Push、Reset、Syn、Fin这6位。Urgent作为报文段的紧急数据标识,但具体如何处理交给接收方决定。Reset作为报文段的连接异常结束或端口号错误的标识。而Ack确认、Syn同步、Fin结束在三次握手和四次挥手中作为关键标识位。Push代表TCP不再等待是否还有其他报文段到达,马上交给上层应用层。

    Window位作为流量控制的基础,后面会更具体的聊。

    Check Sum作为校验位,校验报文段是否在传输过程中受损。Urgent Pointer在Urgent位为1时,才会出现,指向紧急数据的最后一个字节。

    Options常见的标识有nop、TS val(time stamp)、ecr(echo reply)、mss。nop标识就和气泡指令一个意思,就是占位的。而TS val和ecr分别代表发送方的时间戳和接收方的时间戳,基于这两个时间戳来计算出RTT往返时间 (round-trip time) ,当然还要加权平均,具体计算就不多说了,RTT会被用来衡量重传计时器的超时时长。mss(Maximum Segment Size)指的是,连接层每次传输的数据有个最大限制MTU(Maximum Transmission Unit),一般是1500比特,超过这个量要分成多个报文段,mss则是这个最大限制减去TCP的header,光是要传输的数据的大小,一般为1460比特。

    TCP连接的建立采用客户/服务器的方式,有三个阶段:连接建立、数据传送和连接释放,TCP传输连接的建立采用“三次握手”的方法

    TCP协议三次握手的描述如下:

    第一次握手:客户端发送带有SYN标志的连接请求报文段,然后进入SYN_SEND状态,等待服务端的确认。

    第二次握手:服务端接收到客户端的SYN报文段后,需要发送ACK信息对这个SYN报文段进行确认。同时,还要发送自己的SYN请求信息。服务端会将上述的信息放到一个报文段(SYN+ACK报文段)中,一并发送给客户端,此时服务端将会进入SYN_RECV状态。

    第三次握手:客户端接收到服务端的SYN+ACK报文段后,会向服务端发送ACK确认报文段,这个报文段发送完毕后,客户端和服务端都进入ESTABLISHED状态,完成TCP三次握手。

    当三次握手完成后,TCP协议会为连接双方维持连接状态。为了保证数据传输成功,接收端在接收到数据包后必须发送ACK报文作为确认。如果在指定的时间内(这个时间称为重新发送超时时间),发送端没有接收到接收端的ACK报文,那么就会重发超时的数据。

    服务器端的资源是在完成第二次握手时分配的,而客户端的资源是在完成第三次握手时分配的,三次握手主要是为了防止2次握手的情况下,已失效的连接请求报文突然又传送到服务端,使服务端认为传输链接已经建立,并一直等待客户端传送数据,造成服务器端的资源浪费

    TCP连接的释放采用“4次握手”方法

    四次挥手,客户端和服务端都可以发起。第一次发送方发送FIN为1、ACK为1,序列号为某序列号,表示发送方想结束连接。第二次接收方发送ACK为1,确认号为接收序列号加1,表示我还没有准备好结束连接。第三次接收方发送FIN为1、ACK为1,序列号为某序列号,表示我已经准备好结束连接了。第四次发送方,发送ACK为1,确认号为所接收序列号加1,表示确认,结束连接。

    半关闭

    在四次挥手的基础上,发送方可以在接收第二次接收方发送ACK后,可以形成发送方不再发送报文段,但仍然接收接收方发送的报文段的这种现象。这就形成了半关闭。

    使用4次握手的方法

    (1)保证了客户端发送的最后一个确认报文能够到达服务器,如果客户端不等待,而确认报文丢失,则服务器不能进入正常的关闭状态,而客户端此时已经关闭,不可能重传确认报文

    (2)防止出现“已经失效的连接请求报文段”,客户端在发送完最后一个确认报文后,经过时间等待,可保证本连接持续的时间内所产生的所有报文段从网络消失

    会话层

    主机间会话的建立,管理以及终止,使用校验点可使通信会话在通信失效时从校验点恢复继续通信,实现数据同步

    表示层

    管理数据的压缩,加密与解密,格式转换

    应用层

    规定应用进程在通信时遵守的协议,有客户/服务器模型和P2P模型

    基本功能:为操作系统或者网络应用程序提供网络服务的接口

    基本协议:虚拟终端协议Telnet,文件传输协议FTP,域名解析服务DNS,简单邮件传送协议SMTP(发送),邮局协议POP(接收),HTTP

    常见的使用UDP的应用层协议有:DNS,TFTP,RIP,BOOTP,DHCP,SNMP,NFS等,使用TCP的应用层协议有:SMTP,TELNET,HTTP,FTP等

    动态主机配置协议DHCP(Dynamic Host Configuration Protocol)

    基于UDP,使用客户端/服务器方式,需要IP地址的主机在启动时向DHCP服务器广播发送发现报文,该主机成为DHCP的客户,本地网络上的所有主机都能收到此广播报文,但只有DHCP服务器才能回答此广播报文。DHCP服务器首先在数据库中查找该计算机的配置信息,若找到直接返回该信息,若找不到则从服务器的IP地址池中取出一个IP地址分配该计算机,DHCP服务器的回答报文称为提供报文。

    文件传输协议FTP(File Transfer Protocol)

    使用两个并行的TCP连接,一个是控制连接(端口21),一个是数据连接(端口20),控制连接用来传输控制信息,在传输文件的同时可以控制连接,在整个会话期间一直保持打开,服务器端的控制进程在接收到FTP客户端发送来的文件传输请求后就创建数据传送进程和数据连接,数据连接用来连接客户端和服务器的数据传输进程,数据传送进程实际完成文件的传送,传输完毕后关闭数据传送连接

    HTTP协议

    HTTP的访问过程

    浏览器分析超链接指向页面的URL http://www.baidu.com

    浏览器向DNS服务器请求解析www.baidu.com的IP地址

    域名系统DNS解析出IP地址发送给浏览器

    浏览器使用IP地址与服务器建立TCP连接

    浏览器发出HTTP请求:GET/chinese/index.htm

    服务器通过HTTP响应把文件index.htm返回给浏览器

    TCP连接释放

    浏览器将文件index.htm进行解释,并将web页面显示给用户

    HTTP协议有两类报文,请求报文和响应报文,HTTP协议是无状态的,服务器不会存储任何客户机的状态信息,实际应用中经常使用Cookies来跟踪用户的活动,Cookies是一个存储在用户主机上的文本文件,,里面含有一串识别码用于识别用户,Web服务器根据Cookies就可以从数据库中查询到该用户的活动记录。

    HTTP既可以使用非持久连接,也可以使用持久连接。

    对于非持久连接,每个网页元素(JFPG图片,FLASH等)的传输都需要单独建立一个TCP连接,而持久连接之需要建立一个TCP连接就可以传送整个网页。

    持久连接分为不带流水线和带流水线的版本,不带流水线的版本,浏览器只能在接收到前一个请求的响应后才会发送新的请求,HTTP/1.1的默认模式使用带流水线的持久连接,这种情况下,HTTP客户端每遇到一个引用对象就立即发出一个请求,因而HTTP客户端可以一个接一个连续发出各个引用对象的请求。如果所有的请求和响应都是连续发送的,那么所有引用到的对象共计经历一个RTT延迟,而不带流水线的持久连接的每个引用都必须有一个RTT延迟。

    HTTP的报文

    请求行/状态行

    请求报文的开始行称为请求行(方法,URL,HTTP的版本)

    GET 请求读取由URL所标志的信息

    POST 给服务器添加信息

    HEAD 请求读取由URL所标志的信息的首部

    CONNECT 用于代理服务器

    响应报文的开始行称为状态行

    首部行

    用来说明浏览器、服务器或者报文主体的一些信息,可以有几行,也可以没有,每个首部行都有首部字段名和它的值,每一行结束的地方都有回车和换行,整个首部结束时,还有一空行将首部和后面的实体主体分开

    实体主体

    请求报文一般为空,响应报文也可以为空

    相关文章

      网友评论

          本文标题:网络基础概念

          本文链接:https://www.haomeiwen.com/subject/dvywittx.html