一、概述
ISP
互联网服务提供商ISP
主机之间的通信方式
客户-服务器方式(c/s):明确区分客户端和服务端;客户是服务的请求方,服务器是服务的提供方。
对等方式(p2p):不区分客户端和服务端。
电路交换和分组交换
1、电路交换
主要用于电话通信系统,需要一条专门的物理链路。
必须经过建立连接、通话、释放连接三个步骤
传输效率较低,不适合计算机网络中突发性数据的特点
2、分组交换
- 特点:
1、采用的是存储转发的技术
2、不需要建立连接(适合计算机网络中突发性数据的特点)
3、它将整个的数据报文划分成一个一个更小的数据段(为每个数据段加上必要的首部控制信息:比如目的地址、源地址等)构成分组。
4、每个分组独立的选择传输路径。
时延
时延:是指数据从网络的一端传送到另外一端所需要的时间。
1、排队延时
分组在网络中要经过许多的路由器,需要在输入队列中排队等待。
2、处理延时
主机或路由器在收到分组时要花费一定的时间进行处理。
3、传播延时
在信道中传播所需要的时间。
传播时延=信道长度/传播速率
4、发送延时
发送数据帧时所需要的时间。
计算机网络的体系结构
1、五层协议
1.物理层
2.数据链路层
3.网络层
4.运输层
5.应用层
2、OSI
国际标准组织ISO提出的一个七层协议
1.物理层
2.数据链路层
3.网络层
4.运输层
5.会话层
6.表示层
7.应用层
3. TCP/IP
1.网络接口层
2.网际层IP
3.运输层(TCP/UDP)
4.应用层
物理层
传输的数据单位是比特
1、信道通信方式
- 单工通信
单向通信,只能向一个方向通信(广播)- 半双工通信
可以双向通信,但是不能同时发送消息(对讲机)- 全双工通信
双方可以同时发送和接收消息
2.调制
模拟信号是连续的信号,数字信号是离散的信号。带通调制把数字信号转换为模拟信号。
数据链路层
数据链路层传输的基本单位是帧,将网络层的IP数据报加上首部和尾部封装成帧
三个基本的问题
1、封装成帧
把网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
2、透明传输
透明表示有些事物好像存在好像不存在一样。
帧是使用首部和尾部进行界定的。如果在发送的数据链中出现了SOH或者EOT就会出现错误的判断,所以需要在前面加上转义字符ESC,出现多个就加多个ESC。在接收端处理之后就可以还原数据,这个过程中透明传输的是转义字符。
3、差错检验
- 检错:CRC循环冗余校验(它并不是一种可靠的传输)
- 纠错:海明码
信道复用技术
1、频分复用
频分复用的所有主机在相同的时间占用不同的频率带宽资源。
2、时分复用
时分复用的所有主机在不同的时间占用相同的频率带宽资源。
使用频分复用和时分复用进行通信,在通信的过程中主机会一直占用一部分信道资源。但是由于计算机数据的突发性质,通信过程没必要一直占用信道资源而不让出给其它用户使用,因此这两种方式对信道的利用率都不高。
3、统计时分复用
是对时分复用的一种改进,不固定每个用户在时分复用帧中的位置,只要有数据就集中起来组成统计时分复用帧然后发送。
4、波分复用
光的频分复用。由于光的频率很高,因此习惯上用波长而不是频率来表示所使用的光载波。
5、码分复用
为每个用户分配 m bit 的码片,并且所有的码片正交,对于任意两个码片 和 有
为了讨论方便,取 m=8,设码片 为 00011011。在拥有该码片的用户发送比特 1 时就发送该码片,发送比特 0 时就发送该码片的反码 11100100。
在计算时将 00011011 记作 (-1 -1 -1 +1 +1 -1 +1 +1),可以得到
其中 为 的反码。
利用上面的式子我们知道,当接收端使用码片 对接收到的数据进行内积运算时,结果为 0 的是其它用户发送的数据,结果为 1 的是用户发送的比特 1,结果为 -1 的是用户发送的比特 0。
码分复用需要发送的数据量为原先的 m 倍。
MAC地址
MAC地址是一种链路层地址,存放在网卡的ROM中,用于唯一标识网络适配器;6个字节48位,前三个字节厂家地,后三个字节网卡地址。
交换机
交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。
正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。
下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧,主机 B 回应该帧向主机 A 发送数据包时,交换机查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 2 的映射。
集线器与交换机
- 集线器工作在物理层,交换机是数据链路层设备
- 集线器的一个借口收到信号后,其它借口都能收到;交换机的一个借口收到信号后只会向目标借口进行转发。
网络层
IPv4和IPv6
IPv4是32位(4个字节);IPv6是128位(16个字节)
与IP协议配套的三个协议
- 地址解析协议(ARP)
- 网际控制报文协议(ICMP)
- 网际组管理协议(IGMP)
IP地址编址的三个历史阶段
- 分类的IP地址
- 子网划分
- 构造超网
IP地址和硬件地址的区别
- MAC地址和物理地址是数据链层上的地址,而IP地址是网络层及以上的地址,是一种逻辑地址。
- IP地址用来唯一标识Internet中的一台主机;硬件地址放在网卡的ROM上。
地址解析协议ARP
已知IP地址解析出对应的物理地址
地址解析协议ARP解决这个问题的方法是在主机ARP高速缓存中存放一个IP地址到物理地址的映射表。
如果开始时没有对应的映射,那么就会广播发送,对应的主机接收到后发送一个响应信息告诉其 MAC地址,然后发送端将这个地址放入映射表中。
网际控制报文协议(ICMP)
是为了更有效的转发IP数据报以及提高交付成功的机会。它封装在IP数据报中,不属于高层协议。
ICMP分为差错报告报文和询问报文
Ping: 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。
Traceroute: 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。
IPv4向IPv6过渡的策略
- 双协议栈
- 隧道技术
1、双协议栈:
是指在完全过渡到IPv6之前,使一部分主机(或路由器)装有双协议栈(一个IPv4和一个IPv6)。双协议栈的主机记为IPv6/IPv4
2、隧道技术:
IPv6数据报进入IPv4网络时,把IPv6数据报封装成IPv4数据报;使整个IPv6数据报变成了IPv4数据报的数据部分。
运输层
UDP和TCP的特点
- UDP
1、面向无连接的
2、UDP是尽最大努力交付,不保证可靠交付
3、UDP是面向报文的,报文多长它就交付多长
4、UDP支持一对一,一对多和多对多的交互通信
- TCP
1、面向连接的
2、每一个TCP连接只能是两个端点(套接字:IP+端口号),点对点的
3、保证可靠交付
4、提供全双工通信
5、面向字节流
TCP如何实现可靠传输的
1、停止等待协议
2、连续的ARQ(自动重传)协议
TCP的三次握手
说TCP的三次握手之前需要知道的几个TCP首部字段
确认ACK:仅当ACK = 1时确认号字段才有效,ACK = 0时确认号无效,连接建立后,所有的ACK必须置1。
同步SYN:连接建立时用来同步序号,SYN = 1,ACK = 0时表明这是一个连接请求报文。当同一建立连接时,SYN = 1和ACK = 1。
三次握手的过程
假设客服端A,服务端B
- 1、开始A和B都处于closed状态。
- 2、当要连接时,B创建传输控制块,服务器B会一直处于一个listen的监听状态。
- 3、A创建一个传输控制块,将SYN = 1,ACK = 0,序号seq = x发起一个连接请求。然后A就处于了一个SYN-SENT同步发送状态。
- 4、当B确认同一连接后向A传回确认信号,SYN = 1,ACK = 1,seq = y,ack = x + 1,然后这是B就处于了一个SYN-RCVD同步收到的状态。
- 5、A收到B的确认信息后就进入已连接状态,然后再向B发出确认信息ACK = 1,seq = x+1,ack = y+1。
- 6、B收到A的确认后就进入到已连接状态
为什么A最后还要再发送一次确认,两次握手会怎么样?
最后一次的握手是为了防止已经失效的连接请求报文有传到B,因此而产生错误
假设只有两次握手,有一种可能是A的连接请求在网络中阻塞了没能及时到达B,而A又重新发送了一次请求连接上了B,当后面那个连接传输完后,连接已经释放,这时阻塞的那个本该已经失效的连接请求到达B,B依然会认为是合法的连接请求。就会让自己一直处于连接的状态,然而A又不发送数据,这样就导致了B的资源的严重浪费。
TCP的四次挥手
假设客服端A,服务端B
1、开始A和B都处于一个已连接的状态。当要释放连接的时候,A首先断开连接,停止发送数据,A将连接释放报文段中的终止控制位FIN置为1,seq = u,这是A处于FIN-WAIT 1(终止等待 1)的状态,等待B的确认。
2、B收到A的释放报文段后,进行确认,确认号为ack = u + 1自己的序列号为seq = v,然后B就处于一个CLOSE-WAIT(关闭等待)的状态。注意:这时TCP连接进入了半关闭的状态,A没有数据发送,但是B发送的数据A还可以接收。
3、A收到B的确认后,A就进入FIN-WAIT-2(终止等待 2)状态,等待B发出连接释放报文段。若B没有要发送的数据时,将FIN = 1,ack = u + 1此时B就进入LAST-ACK(最后确认)状态
4、A收到B的连接释放报文段后,对此发出确认,在确认中将ACK = 1然后进入TIME-WAIT(时间等待)状态。注意:此时连接并没有释放,必须经过时间等待计时器2MSL后A才进入关闭状态。
为什么A在TIME-WAIT状态必须等待2MSL时间?
1、为了保证A发送的最后一次ACK报文段能够到大B。
2、为了防止像TCP三次连接中的最后一次确认中可能出现的,已经实现失效的连接去请求报文段。当经过2MSL后,就可以使本地连接持续时间内所产生的所有报文段都从网络中消失。
除了时间等待计数器还有一个保活计时器
是为了防止A客服端突然出现故障,不让服务端一直等下去。一般时间设置为两个小时。
应用层
SMTP 协议
简单的邮件传输协议,它是用来控制邮件的中转方式的,用于帮助每台计算机发送和中转的。
POP3协议
规定如何将个人计算机连接到网络上进行邮件的下载,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,主要用来接收电子邮件的。
Http和Https的区别
Https = Http+SSL
http是明文传输,而Https是经过经过SSL加密的,安全性更好。
Https需要申请,https不需要
连接的方式不同,https默认端口是443,http默认端口是80
SSL(安全套接层)为网络通信提供安全及数据完整性的一种安全协议,采用身份验证和数据加密保证网络通信的安全和完整。
http请求和响应的过程
1、根据浏览器中输入的url,根据域名解析出IP地址。
一般会先去浏览器的缓存中查找,然后去操作系统查找,然后去路由器的缓存中找,最后去DNS服务器上找
2、浏览器与服务器通过TCP的三次握手建立TCP连接。
3、浏览器向服务器发送请求。
4、服务器处理请求。
5、服务器发送回一个响应。
6、TCP四次挥手释放连接。