一. 计网基础
1. 计网基本功能:
数据通信;资源共享
2. 性能指标:
参考
速率;带宽;吞吐量;时延;时延带宽积;往返时间RTT; 利用率
3. OSI参考模型:
物理层;数据链路层;网络层;传输层;会话层;表示层;应用层
4. TCP/IP参考模型:
网络接口层;网际层;传输层;应用层
OSI 参考模型 TPC/IP模型相同点和不同点:
相同点:
都分层;
基于独立的协议栈的概念
可以实现异构网络互联
不同点:
- 5层参考模型:
综合了OSI模型和TCP/IP 模型的所有优点。
物理层;数据链路层;网络层;传输层;应用层
应用层:
各种需要联网的软件,根据各种软件功能不同,遵循各种协议,将数据DATA按照协议写成不同的形式在加上头,变为报文。
传输层:
将报文加上头部,并切分,变为报文段。每一个应用程序是一个进程,要将这个进程的数据传给另一端相对应的进程。
网络层:
将报文段加上头部,变为数据报。
数据链路层:
将数据报加上头和为变为帧。
物理层:
将帧变为电信号,传递。
其他不重要的知识点:
计网的组成;分类;
标准化工作;
分层结构的理解;
二. 物理层
- 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
- 怎样在传输媒体上传输数据比特流:规定你传多少bit,多少电平,多少根线传递等等…
- 物理层主要任务:确定与传输媒体接口有关的一些特性:机械;电气;功能;规程特性。
1. 物理层传输介质
传输媒体并不是物理层,物理层属于第1层,可以认为传输介质属于第0层。传输媒体中传输的是信号,单传输媒体并不知道传输的信号代表什么,但物理层规定了电气特性,因此能够识别所传宋的比特流。
2. 物理层设备
中继器:对信号进行再生和还原,保持与原数据相同。
集线器:对信号进行再生放大转发
其他不重要:
数据通信:模型;相关术语;三种常见通信模型;
两种传输方式:串行和并行
码元;速率;波特;带宽
香浓定理;奈奎斯特定理
编码与调制
三. 数据链路层
- 数据链路负责通过一条链路从一个结点想另一个物理链路直接相连的相邻结点传送数据报。
- 数据链路层在物理层提供服务的基础上向网络层提供服务。
- 功能:
虽然数据链路层可以有这么多功能,但是实际上由于线路越来越好,传输层已经能够保证可靠传输和流量控制了,所以一般来说,数据链路层不需要保证可靠传输和流量控制。
数据链路层的主要功能就变为:
组帧;
组帧的时候加上了FCS可进行差错控制;
同时使用ARP协议得到MAC地址,填写到帧中,进行决定下一跳。
1. 组帧 和 透明传输
(1)透明传输:
不管所传数据是什么样的比特位,都应当能够在链路上传送。
(2)为什么组帧:
数据链路层将比特组合成帧作为传输单位,是为了在出错时只重发出错的帧,而不必重发所有数据,为了能使接收方能正确的接收并检查所接收的帧,发送方必须依据一定的规则把网络层递交的分组封装成帧(即组帧)。
(3)组帧的方法:
字符计数法 ;字符填充的首尾定界符法;0比特填充;违规编码法 ;
2. 差错控制
差错:分为:位错 和 帧错
- 对于位错,采用编码方式:分为检错编码和纠错编码
检错编码:奇偶校验码;循环冗余码
检错编码:海明码 - 对于帧错:帧丢失;帧重复;帧失序
可以采用一些帧编号,确认重传机制等等进行差错控制
3. 链路层为网络层提供服务:
对于通信质量好的有线传输:无确认无连接服务
通信质量差的无线传输:有确认无连接服务;有确认有连接服务
4. 流量控制 与 可靠传输机制
数据链路层的可靠传输通常使用确认和超时重传两种机制来完成 。
数据链路层流量控制的手段:接收方收不下就不回复确认
流量控制的方法:停止等待协议;滑动窗口协议;
滑动窗口协议分为:后退N帧协议(GBN); 选择重传协议(SR)
- 停止等待协议:没发送完一个帧就停止发送,等待对方的确认,在收到确认后在发送下一帧。如过接收端通过差错控制发现某帧有错误,就不返回确认信息,发送方超时没有收到确认,会重新发送那一帧。
- 后退N帧协议(GBN)
- 选择重传协议(SR)
5. 传输数据使用两种链路
- 点对点链路:两个相邻点通过一个链路相连,没有第三者。
对应PPP协议,常用于广域网。 - 广播式链路:所有主机共享通信介质。
应用:早期的总线以太网、无线局域网,常用于局域网。
典型拓扑结构:总线型;星型(逻辑总线型)
对应CSMA协议等
6. 介质访问控制
采取一定的措施,使得两对节点之间的通信不会发生相互干扰的情况。
信号冲突:两个站点都发送信息,信息在信道上会发生叠加,导致信息发送错误。
以下的几种协议适用于局域网中。
- ALOHA协议:不听就说
不监听信道,不按时间槽发送,随机重发,想发就发。
当信号冲突的时候,接收端返回NCK,发方重新发送。 - CSMA协议:先听再说
虽然先听再说,但是由于电磁波传递总是有有限速率的,所以还是可能发生冲突。 - CSMA/CD 协议:
遇到冲突后,选择一个重传时机,重新发送,这个重传时机采用阶段二进制规避算法计算重传时机。 - CSMA/CA 协议:
先监听信道,信道空闲,发送RTS和收到CTS(预约信道),告知其他站点自己需要传多久,然后发送帧。 - 令牌传递协议
7. 局域网
-
简称LAN,是值某一区域内由许多计算机互连成的计算机组,使用广播信道。覆盖范围较小,最多几千米。
-
局域网分为:有线局域网 ; 无线局域网
-
局域网中最常用的是以太网。
以太网提供的无连接、不可靠的服务。以太网值实现无差错接收,不实现可靠传输。无差错接收:比如传来的是1010通过奇偶校验等发现传输的是错误的,那么就将这帧扔掉。
但这不是可靠的,因为接收的不全。
可靠表示的是:把传输的都能正确接收,且不落下帧。 -
以太网的mac地址
MAC可以理解为bai网卡的du身份证,每个网卡都有自己的MAC地址。MAC和电脑本身没有关系,不是以电脑为存在的依据。比如笔记本电脑,一般都同时含有有线网卡和无线网卡,就有两个MAC地址。电脑上有几块网卡,就有几个MAC地址。
8. 广域网
广域网:通常跨接很大的屋里范围,所覆盖范围从几十公里到几千公里。
常用协议:PPP协议
9. PPP协议
PPP协议
点对点协议PPP是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。
PPP协议对于链路层的帧,无需纠错;无需序号,无需流量控制;不支持多点线路。
PPP协议面向字节。
10. HDLC 协议
HDLC协议是一个在同步网上传输数据、面向比特的数据链路层协议。
所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重复,传输可靠性高。
11. 链路层设备
- 网桥:
网桥根据MAC帧的目的地址对帧进行转发和过滤。
- 交换机
交换机功能设计上和网桥一样,只不过网桥只有两个口,交换机有多个口。
12. 冲突域和广播域
13. ARP协议
ARP协议解决下一跳走到哪的问题,就是根据ip地址广播得到下一跳的mac地址,然后写入帧中。
- 局域网内传递信息:
- 局域网外传递数据
参考
四. 网络层
- 网络层主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
- 网络层传输的是数据报。
- 网络层功能:
(1)路由选择与分组转发(选择最佳路径)
(2)异构网络互联
(3)拥塞控制
1. 数据交换方式
数据交换方式分为:
电路交换;
报文交换;
分组交换:分为:数据报方式;虚电路方式
- 电路交换:整个报文的比特流连续的从源点直达终点,好像在一个管道中传送。
- 报文交换:整个报文先传输到相邻的结点,全部存储下来后查找转发表,转发到下一个结点。
- 分组交换:单个分组(报文的一部分)传送到相邻结点,传送到相邻结点,存储下来后查找转发表,转发到下一个结点。
- 数据报:
无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
每个分组携带源和目的地址。
路由器根据分组的目的地址转发分组,每个分组独立选择。 - 虚电路
同一个文件的所有的分组按照固定路线转发。
在每一个分组上面加一个虚电路号,路由器根据虚电路号知道该从哪个口转发出去,所有的这个文件的分组虚电路号都一样,所以都从这个口转发出去。
2. ip协议
-
IP协议提供非可靠,无连接的数据报传输服务。
非可靠:这意味着它并不保证所要传输的数据一定会到达目的地。(当路由出错导致某个数据传输失败时,会丢掉此数据并发回一个ICMP信息回去。可靠性需要由更上层的协议提供,如TCP协议)。
无连接:这代表 IP datagram(数据报)在传输中没有连接起来,他们是一块一块各自分开的,分开独立处理。(比如需要向某个地方发送两个数据报A、B,他们两个有可能会经由不同的路径去到达目的地,有可能B要比A先到达)。 -
ip协议功能:
其中包括两个部分:
(1)寻址与路由.
(a)用IP地址来标识Internet的主机:在每个IP数据报中,都会携带源IP地址和目标IP地址来标识该IP数据报的源和目的主机.IP数据报在传输过程中,每个中间节点(IP 网关)还需要为其选择从源主机到目的主机的合适的转发路径(即路由).IP协议可以根据路由选择协议提供的路由信息对IP数据报进行转发,直至抵达目的主机.
(b)IP地址和MAC地址的匹配,ARP协议.数据链路层使用MAC地址来发送数据帧,因此在实际发送IP报文时,还需要进行IP地址和MAC地址的匹配,由TCP/IP协议簇中的ARP(地址解析协议)完成.
(2)分段与重组.
(a) IP数据报通过不同类型的通信网络发送,IP数据报的大小会受到这些网络所规定的最大传输单元(MTU)的限制. -
IP数据报格式
-
分组切片
链路层的数据帧可封装数据是有上限的,以太网的MTU是1500字节。所以如果分组超过了某链路的MTU,网络层可能需要对分组进行切片。
3. ipv4
4. 子网划分与子网掩码
5. DHCP协议
6. ICMP协议
IP协议是一种面向无连接的数据报协议,它是一种不可靠的协议,它不提供任何差错检验。因此网际报文控制协议(Internet Control Message Protocol)ICMP出现了,ICMP协议用于IP主机、路由器之间传递控制消息,这里的控制消息可以包括很多种:数据报错误信息、网络状况信息、主机状况信息等,虽然这些控制消息虽然并不传输用户数据,但对于用户数据报的有效递交起着重要作用,从TCP/IP的分层结构看ICMP属于网络层,它配合着IP数据报的提交,提高IP数据报递交的可靠性。
ICMP是封装在IP数据报中进行发送的,从这点看来,ICMP协议又有点像一个传输层协议,其实不然,因为ICMP报文的目的不是目的主机上的某个应用程序,它不为应用程序提供传输服务,ICMP报文的目的是目的主机上的网络层处理软件。简单的来说,ICMP协议就像奔波于网络中的一名医生,它能及时检测并汇报网络中可能存在的问题,为解决网络错误或拥塞提供了最有效的手段
-
ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。
-
掌握2种查询报文+5种差错报文+报文格式
-
ICMP协议的功能主要有:
通知在发送过程中IP包被丢弃的原因
确认IP包是否成功到达目标地址 -
ICMP协议通过发送特定ICMP报文,来进行:
差错(或异常)报告
网络探寻
- ICMP的应用:
一般我们直接用ip协议传递信息了,但有时会用到ICMP协议:
PING:测试两个主机之间的连通性,使用ICMP回送请求和回答报文
Tranceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。
五. 传输层
- 传输层为应用层提供通信服务,同时使用网络层的服务。
- 从IP层来说,通信的两端是两个主机。IP数据报的首部明确地标志了这两个主机的IP地址。但“两个主机之间的通信”这种说法还不够清楚。这是因为,真正进行通信的实体都是在主机的进程,是这个主机中的一个进程和另一个主机中的一个进程交换数据(即通信)。因此严格地讲,两个主机进行通信就是两个主机中的应用进程相互通信。传输层实现的就是进程与进程之间的通信,即端到端的通信。
- 传输层的功能:
(1)传输层提供进程和进程之间的逻辑通信;
网络层是主机与主机之间的通信。
(2)复用和分用:
应用层的所有应用进程(比如微信,QQ)都可以通过传输层再传送到IP层,这就是复用。
传输层从IP层收到数据后必须交付给指明的应用进程(分别给微信给QQ),这就是分用。
(3)传输层对收到的报文进行差错检测。
(4)传输层的两种协议:UDP和TCP
1. 端口
我们知道,一台拥有IP地址的主机可以提供许多服务,比如HTTP(万维网服务)、FTP(文件传输)、SMTP(电子邮件)等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区分不同的服务的。
需要注意的是,端口并不是一一对应的。比如你的电脑作为客户机访问一台WWW服务器时,WWW服务器使用“80”端口与你的电脑通信,但你的电脑则可能使用“3457”这样的端口。
举例来说,有主机A需要对外提供FTP和WWW两种服务,如果没有端口号存在的话,这两种服务是无法区分的。实际上,当网络上某主机B需要访问A的FTP服务时,就要指定目的端口号为21;当需要访问A的WWW服务时,则需要将目的端口号设为80,这时A根据B访问的端口号,就可以区分B的两种不同请求。这就是端口号区分服务类别的作用。
再举个例子:主机A需要同时下载网络上某FTP服务器B上的两个文件,那么A需要与B同时建立两个会话,而这两个传输会话就是靠源端口号来区分的。在这种情况下如果没有源端口号的概念,那么A就无法区分B传回的数据究竟是属于哪个会话,属于哪个文件。而实际上的通信过程是,A使用本机的1025号端口请求B的21号端口上的文件1,同时又使用1026号端口请求文件2。对于返回的数据,发现是传回给1025号端口的,就认为是属于文件1;传回给1026号端口的,则认为是属于文件2。这就是端口号区分多个会话的作用。
虽然通信的终点是应用进程,但我们只要把要传送的报文交到目的主机的某一个合适的端口,剩下的工作(最后交付给目的进程)就由TCP来完成。
当传输层收到IP层交上来的运输报文时,就能够根据首部中的目的端口号把数据交付给运输层的目的应用程序。
由此可见,两个计算机中进程要相互通信,不仅需要知道对方IP地址(为了找到对方计算机),还要知道对方的端口号(为了找到对方计算机中的应用进程)
2. 两种协议
3. UDP协议
- UDP只在IP的数据报服务上增加很少一点的功能:
复用和分用的功能;
以及差错检测的功能。 - UDP的主要特点:
(1)UDP是无连接的,减少开销和发送数据之间的时延
(2)UDP使用最大的努力交付,即不保证可靠交付
(3)UDP是面向报文的,适合一次性传输少量数据的网络应用。
(4)UDP无拥塞控制,适合很多实时应用
(5)UDP首部开销很小8 B,TCP20B - 报文格式:
UDP首部格式包括:源端口号;目的端口号;UDP长度以及UDP校验和。
UDP校验和用来检测整个UDP数据报是否有错,有就丢弃,并发送方发送ICMP差错报文。
UDP校验和怎么检测数据报是否有错的?是通过在UDP首部前面加上伪首部,然后通过一系列计算来进行差错检验的。
4. TCP协议特点
- TCP报文首部格式
报文字段参数含义参考
几个重要字段:
序号:在一个TCP连接中传送的字节流中的每一个字节都是按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号。
确认号:期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,证明到序号N-1位置的所有数据都已正确收到。
确认位ACK:ACK=1时确认号有效,在连接建立后所有的传送的报文段都应该把ACK置为1。有ACK=1,必然有ack确认号。
同步位SYN:SYN=1时,标明是一个连接请求/连接接受报文。
终止位FIN:FIN=1时,表明此报文段发送方数据已发完,要求释放连接。
窗口:指的是发送本报文段的一方接收窗口,即现在允许对方发送数据量。以字节为单位。
5. TCP连接管理(三次握手;四次挥手)
6. TCP可靠传输
网络层:提供尽最大努力交付,不可靠传输
传输层:使用TCP实现可靠传输
可靠:保证接收方进程从缓存区读出的字节流与发送方的字节流是完全一样的。
TCP实现可靠传输的机制:校验;序号;确认;重传。
- 校验:和UDP一样,增加伪首部。
- 序号:TCP的首部中的序号字段指的是一个报文段第一个字节的序号,根据这个以及确认序号即下一次需要的字节号,就能对数据进行正确的排序了。
- 确认
- 重传:
确认重传不分家,TCP的发送方在规定的时间内没收到确认就要重传已发送的数据报。
TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间) - 冗余---->快速重传:
7. TCP流量控制
8. TCP拥塞控制
- 出现拥塞的条件:
对资源需求的总和 > 可用资源 - 拥塞控制和流量控制:
拥塞控制是全局问题
流量控制是点对点的问题 - 拥塞控制四种算法:
(1)慢开始
(2)拥塞避免
(3)快重传
(4)快恢复
(1)慢开始算法的思路就是,不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小。
这里用报文段的个数作为拥塞窗口的大小举例说明慢开始算法,实际的拥塞窗口大小是以字节为单位的。如下图:
(2)拥塞避免算法让拥塞窗口缓慢增长,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍。这样拥塞窗口按线性规律缓慢增长。
(3)快重传要求接收方在收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方,可提高网络吞吐量约20%)而不要等到自己发送数据时捎带确认。快重传算法规定,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待设置的重传计时器时间到期。如下图:
(4)快恢复:快重传配合使用的还有快恢复算法,需要注意:
当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把ssthresh门限减半(为了预防网络发生拥塞),然后执行拥塞避免算法,使cwnd缓慢增大
六. 应用层
- 应用层的具体内容就是规定应用进程在通信时所遵循的协议。应用层其实根据你的应用软件是实现什么功能,根据功能遵循某种协议,进而规定你发送的数据要以一种规定的形式表示出来。
- 应用层的定义:
应用进程交互的报文类型,请求还是响应。
各种报文类型的语法,如报文中的各个字段及其详细描述。
字段的语义,即包含在字段中的信息的含义。
进程何时,如何发送报文,以及对报文进行相应的规则。 - 应用层软件功能,以及功能所要遵循的协议
应用层功能 | 应用层的重要协议 |
---|---|
文件传输、访问和管理 | FTP |
电子邮件 | SMTP、POP3 |
虚拟终端 | HTTP |
查询服务和远程作业登录 | DNS |
1. 网络应用模型
客户/服务器模型
P2P模型
2. DNS域名解析系统
访问一个网址,是需要目的终端的ip地址的,但是ip地址太长了,所以设计了域名,域名就是替代ip地址。通过域名就能找到这些网站的,输入这些网址就能访问网站。
两个节点相互进行信息交换,归根结底是要知道双方的ip地址,我们不记录ip地址,那是由DNS系统得到域名和ip地址之间的转换的。
查询ip地址的过程:
假设现在一台主机要访问www.cskaoyan.com,主机会首先发给本地域名,试图寻找这个域名地址,但是主机第一次访问这个网站,所以主机不知道所对应的ip地址是多少,所以向根域名服务器来请求帮助,根域名会根据顶级域名给出ip地址,然后同理一直向下查询,直到查询到ip地址。
3. HTTP协议
-
万维网
网上的每一个资源,不论是文件图片还是文档任何一个资源,其实都是有一个具体的链接的,那个链接就是URL。是资源的唯一标识。通过点击这些链接,能将内容显示在屏幕上。 -
超文件协议HTTP工作过程
参考
-
http和https的区别联系:
区别和联系参考
https数据传输过程参考
简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS和HTTP的区别主要如下:
(1)https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
(2)http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
(3)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
(4)http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。 -
Cookie
HTTP协议是无状态的。但是实际工作中,一些万维网站点希望能够识别用户,给出更合理的推荐,所以引入Cookie。
Cookie是存储在用户主机中的文本文件,记录一段时间内某用户(使用识别码识别,例如“123456”)的访问记录。从而可以提供个性化服务。
Cookie 和Session区别:
1,session 在服务器端,cookie 在客户端(浏览器)
2,session 默认被存在在服务器的一个文件里(不是内存)
3,session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
4,session 可以放在 文件、数据库、或内存中都可以。
5,用户验证这种场合一般会用 session
- HTTP的连接方式
HTTP采用TCP作为传输层协议,TCP需要建立连接,但是HTTP协议 本身是无连接的(通信双方在交换HTTP报文之前不需要先建立HTTP连接)
HTTP的连接方式:持久连接(非流水线;流水线);非持久连接
- HTTP报文格式:
4. FTP和TFTP协议
参考
FTP是基于客户/服务器的协议。
用户通过一个客户机程序连接至远程计算机上运行的服务器程序。
依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器。
连接FTP服务器,遵循FTP协议与服务器传输文件的电脑就是FTP客户端。
FTP使用TCP实现可靠传输。
FTP服务器有两大部分组成:一个主进程,负责接受新的请求;还有若干从属进程,负责处理单个请求。
- 主进程工作步骤
打开熟知端口(21),使客户进程能够连接上;
等待客户进程发送连接请求;
启动从属进程处理客户进程发送的连接请求,从属进程处理完请求后结束,从属进程在运行期间可能根据需要可创建其他一些子进程;
回到等待状态,继续接受其他客户进程发起的请求,主进程与从属进程的处理是并发进行的。 - FTP工作原理:
FTP控制连接在整个会话期间都保持打开,只用来发送连接/传送请求。当客户进程向服务器发送连接请求时,寻找连接服务器进程的熟知端口21,同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。接着,服务器进程用自己传送数据的熟知端口20与客户进程所提供的端口号码建立数据传送连接,FTP使用了2个不同的端口号,所以数据连接和控制连接不会混乱。
5. 电子邮件
- SMTP协议:
参考
- POP3协议:
- 基于万维网的电子邮件: