计算机网络

一、概述

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四次挥手释放连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值