计算机网络就是互连的、自治的计算机集合。
自治:无主从关系
互连:互联互通
Internet是最大的计算机网络!
1.2.1从组成细节的角度:由很多个ISP网络互连的网络之网络。
1> 数以百万计的互连的计算设备集合:主机(端系统通过ISP连接到Internet)、网络应用
2> 通信链路:光纤、无线电、卫星……
3> 分组交换:路由器、交换机
补充ISP:它包括Internet接入服务和Internet内容提供服务,用户通过ISP连入Internet,ISP从因特网管理机构申请IP地址(把一大批IP地址批发给合格的ISP),用户从ISP中有偿申请一个IP,获取使用权,就可以通过该ISP接入互联网(即上网)。
1.2.2从服务角度
1> 为网络应用提供通信服务的通信基础设施:web、电子商务、社交网络……
2> 为网络引用提供应用编程接口(API):提供数据传输服务、支持应用程序连接Internet
1.3.1协议是什么?
硬件(主机、路由器等)是计算机网络的基础,但计算机网络还要有网络协议。网络协议:计算机网络中数据交换必须遵守事先约定好的规则。
1.3.2协议规定了什么?
协议规定了通信实体之间所交换的信息的格式、意义、顺序以及针对收到信息或发生的事件所采取的动作。
1.3.3协议三要素(语法、语义、时序)
语法(数据与控制信息的结构或者格式、信号电平)、语义(需要发出何种控制信息、完成何种动作以及做出何种响应、猜错控制)、时序(事件顺序、速度匹配)。
其实语法就相当于协议是什么,要知道什么是协议,是什么协议,所以规定了协议的格式之类的。语义就相当于协议的功能,所以规定了完成何种动作等等。时序相当于有效期,不能说想什么时候回复就什么时候回复,所以规定了事件顺序等。
网络边缘由主机(或端系统)构成,主机位于网络边缘运行网络应用程序,比如:web、Emile等。这些网络应用通信方式有两种,第一种客户/服务器应用模型(c/s),客户发出请求,并接收服务端响应,如web等。第二种对等模型(p2p)没有专用服务器,通信在对等实体之间直接进行。如QQ等
有这样几种接入网络方式:家庭接入网络、机构接入网络、移动接入网络等(没有什么明确的划分)。用户最关心的是:带宽(单位时间内能传输的数据量)、共享/独占(独占:带宽独享,共享是均摊)
接入网络方式举例:数字用户线路(DSL)、无线局域网(像WiFi)、广域无线接入(4G)等
2.3.1构成
网络核心由互联的路由器网络构成。
2.3.2网络核心的关键功能:路由和转发。
路由:确定分组从源到目的传输路径。
转发:将分组从路由器的输入端口交换至正确的输出端口。
2.3.3网络核心解决的基本问题:如何实现数据从源主机通过网络核心送达目的主机?
通过数据交换技术实现!!!由路由器互联构成路由器网络,主机直接与路由器网络中某一个路由器相连即可。交换技术有三种:电路交换、报文交换、分组交换
1>电路交换分为三个过程:建立连接,通信,释放连接。但还有一个问题:如果主机A与主机B通信,其通信线路上的路由器都会被占据。可以使用多路复用技术共享信道解决。
多路复用可分为:频分多路复用(将一个通信线路划分多个信道,每个信道使用不同的频率),时分多路复用(将时间划分多个片段,给多个信道分配不同的时间片段),波分多路复用(光的频分复用),码分多路复用CDM(各用户使用相同频率的载波,利用各自码片序列编码数据,编码信号=原始数据*码片序列)
2>报文交换与分组交换
报文交换:报文是发送信息的整体。在整个数据传输过程中,整个报文一次性从源主机发送到下一个相邻节点。典型应用:电报。
分组交换:将整个报文拆分为一系列相对比较小的数据包,然后进行传输。最终在接收方再进行重组,目前Internet传输就采用的分组交换。
统计多路复用:报文交换和分组交换都无需提前建立连接,而是直接进行发送,这种技术叫做统计多路复用(statistical multiplexing),按需使用,占用全部链路带宽,有很强的随机性。
分组交换与报文交换都是使用先存储后转发的形式。只不过前者是部分报文,后者是完整报文。但是随着网络链路的增加,路由器数量的增加,报文交换的性能急剧下降,分组交换势在必行。
分组交换与电路交换对比:分组交换允许更多用户同时使用网络。网络资源利用率高。由于没有提前建立链接,没有提前分配资源,分组交换很可能会导致网络拥塞,最终产生分组延迟和丢失
速率:单位时间内传输的数据量,单位为bit/s或bps等。
带宽:单位时间内从一端传送到另一端的最大数据量,即最大速率。
吞吐量是指对网络、设备、端口或其他设施在单位时间内成功地传送数据的数量(以比特、字节等测量单位),也就是说吞吐量是指在没有帧丢失的情况下,设备能够接收并转发的最大数据速率。
计算机网络体系结构是从功能上进行描述的一种分层结构。每层遵循某个/某些网络协议完成本层功能。分层带来的好处是:结构清晰、系统易更新和维护、有利于标准化。但分层越多效率越低。
1> 实体:任何可发送或接收信息的硬件或者软件。
2> 协议是控制两个对等实体进行通信的规则的集合,所以协议是水平的。
3> 任何一层实体需要使用下层服务,遵循本层协议,实现本层功能,向上层提供服务,所以服务是垂直的。
4> 下层协议的实现对上层的服务用户是透明的。(也就是说下层功能怎么实现上层不可见)
5> 同系统的相邻层实体间通过接口进行交互;通过服务访问点SAP交换原语,指定请求的特定服务。(层与层之间有接口)
1> OSI目的是支持异构网络系统的互联互通,虽然理论成功但市场失败
2> OSI有七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
各层功能
应用层(数据):确定进程之间通信的性质以满足用户需要以及提供网络与用户应用(文件传输、电子邮件、文件服务、虚拟终端)
表示层(数据):主要解决用户信息的语法表示问题,如加密解密(数据格式化、代码转化、数据加密)
会话层(数据):提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制,如服务器验证用户登录便是由会话层完成的(解除或建立与其他接点的联系)
传输层(段):实现网络中不同主机上用户进程之间的数据通信,可靠与不可靠的传输,传输层的错误检测,流量控制(提供端对端的接口)
网络层(包):提供逻辑地址(IP)、选路、数据从源端到目的端的传输(为数据包选择路由)
数据链路层(帧):将上层数据封装成帧,用MAC地址访问媒介,错误检测与修正(传输有地址的帧以及错误检测功能)
物理层(比特流):设备之间的比特流的传输,物理接口,电气特性等(以二进制数据形式在物理媒体上传输数据)
各层设备应用
网关:应用层、传输层
(网关在传输层上以四线网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网,也可以用于局域网互连)
路由器:网络层
(路由选择,存储转发)
交换机:数据链路层、网络层
(识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中)
网桥:数据链路层
(将两个LAN连起来,根据MAC地址转发帧)
集线器(Hub):物理层
(纯硬件设备,主要用来连接计算机等网络终端)
中继器::物理层
(在比特级别对网络信号进行再生和重定时,从而使得他们能够在网络上传输更长的距离)
参考:https://www.cnblogs.com/yfacesclub/p/12732197.html
TCP/IP 协议体系采用4层结构,应用层、传输层、网络层、数据链路层。如图:
4.3.1数据链路层:
1> ARP(地址解析协议):它实现IP地址到物理地址(通常是MAC地址,通俗的理解就是网卡地址)的转换。
应用:网络层使用IP地址寻找一台机器,而数据链路层则是使用物理地址寻找一台机器,因此网络层必须先将目标机器的IP地址转化成物理地址,才能使用数据链路层提供的服务。
2> RARP(逆地址解析协议):顾名思义,它和ARP是相反的,它是实现从物理地址到IP地址的转换
应用:RARP协议仅用于网络上的某些无盘工作站,因为缺少储存设备,无盘工作站无法记录自己的IP地址,然而通过RARP就可以看到从物理地址到IP地址的映射。
4.3.2网络层:
1> IP:太重要了,后面会补充!!!
2> ICMP:主要用于检测网络连接
8位类型:将ICMP报文分为两大类:一类是差错报文,比如目标不可达(类型值为3)和重定向(类型值为5);另一类是查询报文,用来查询网络信息。有的ICMP报文还用8位代码字段细分不同的条件。比如代码值0表示网络重定向,代码值1表示主机重定向。16位校验和:对整个报文(包括头部和内容部分)进行循环冗余校验(CRC)。
注意:ICMP协议并非严格意义上的网络层协议,因为它使用了处于同一层的IP协议提供的服务,而一般来说,上层协议使用下层协议提供的服务。
4.3.3传输层:
1> TCP协议(传输控制协议):为应用层提供可靠的、面向连接和流式服务
2> UDP协议(用户数据报协议):为应用层提供不可靠的、无连接的和数据报服务
3> SCTP协议(流控制传输协议):传输电话信号
4.3.4应用层:
1> OSPF(开放最短路径优先)协议:是一种动态路由更新协议,用于路由器之间的通信,以告知对方各自的路由信息。
2> DNS(域名服务)协议:提供机器域名到IP地址的转换。(如将www.baidu.com转化成百度的IP,输入域名就直接可以进入。因为IP地址记的时候太麻烦,就像每个人都是由身份证唯一标识的,但为了好记就起了名字。DNS就是一个将姓名与身份证对应的过程)
3> telnet协议是一种远程登陆协议,使我们能在本地完成远程任务。
4> HTTP协议(超文本传输协议) 是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。
5> FTP协议
6> HTTPS协议