计算机网络复习————概述,应用层,传输层

绪论

概述

什么是网络?
网络是对系统的抽象,像是成千上万的人群,蚁群等等。各个领域中存在不同的网络,经济网络,生物网络,信息网络,人脑神经元网络,交通中地铁,公交网络。
网络帮助研究各个个体之间的关系,方便理解各个系统的复杂性。
因特网:
成千上万的计算设备互联组成的系统,这些计算设备有计算机,服务器,统称为主机。连接链路有多种:有线,无线的,光纤等等。
**协议:**是计算机网络组成的重要部分。

  • 制定数据报的格式
  • 执行什么动作
  • 网络中交换信息的规则的集合。
    三要素:语法,语义,同步。
    拓扑结构:
    星形:单点故障,中心节点负荷大,
    树形:星形的集连
    总线:分布式结构,需要竞争总线使用,两个以上发送容易出现冲突。
    网状网:复杂交错,星形的集合。
    环形:只能向一个方向发数据。
    因特网的组成
    网络边缘(network edge):主机和应用
    网络核心(network core):路由器
    接入网络(access network):连接主机的路由器的部分网络

交换技术

如何分配资源,主要分为两种
电路交换(circuit switching)
最先在固定电话中应用。建立连接,独占资源。

切分资源方法,分为FDM(频分),TDM(时分),电台广播就是使用频分,我们不同的时间上不同的课就类似于时分。

分组交换(packet switching)
电路交换中,固定分配资源会造成利用率不高,资源浪费。分组交换采用按需分配, 但是容易产生冲突。采用方式是存储转发。
资源共享,不需要建立连接,更简单,但是可能会有丢包和延时。

网络性能指标

常用的延时(delay),丢包(paket loss),吞吐量(throughput)
延时:
为什么会有延时?发送的速率比传输的快。
延时 = 节点延时 + 排队延时 + 发送延时(传输延时)+ 传播延时
节点延时一般很小
排队延时是主要组成部分
发送延时(transmission delay) = 包的大小/带宽 就是发一个数据多长时间
传播延时(propagation delay) = 距离/传播速率

** 丢包:**
排队的队伍过长,
丢包率 = 丢掉的除以总的数量
到达率 = 到达的除以总的数量

吞吐量:

网络中设备单位时间内成功地传送数据的数量。

平均吞吐量:总的量除以总的时间。
瓶颈带宽,最小的带宽,能承受的最大的速率。

  • 网络中传送比特的速率是一样的
  • 网络中没有并行这一说,都是串行的
    宽带和窄带的区别,比特之间的间隔不同,间隔短的是宽带,间隔的大的是窄带。

协议栈

模块化,层次化的思路解决复杂系统。

互联网五层协议栈:

在这里插入图片描述

TCP/IP映射到OSI形成五层模型

层数名称作用处理对象
第五层(application) 应用层运行网络应用程序报文
第四层(transport)传输层进程到进程的数据传输报文段
第三层(network)网络层主机到主机数据传输数据包
第二层(link)数据链路层相邻节点数据传输
第一层(physical)物理层传输比特流比特

应用层

应用体系架构

CS架构
客户端与服务段连接,客户端与客户端不能直接连接,服务器必须长期待机,固定的ip地址。
p2p
某一个节点既可以是客户端又可以是服务器,任意节点之间可以相互通信。
典型应用,skype中通信的过程。

一些概念:
进程通信:计网中关注不同主机的不同进程的通信。
套接字:进程发送报文的门
ip 地址 端口号 标识进程。

Web和HTTP

web由多个对象组成,可以是html文件,图片或者音频。
HTTP超文本传输协议,下载url的文件到本地,然后展示出来,基于TCP。

HTTP是无状态的,建立连接有两种方式:

非坚持的(nonpersistent):
建立连接,客户级发送一个请求,获得回复,关闭连接。每一次获得一个对象,大约花费两个RTT时间。

坚持的(persistent):
建立连接,发送请求,获得回复,如果还有对象未获得继续发送请求,比非坚持的花费时间少。

在这里插入图片描述
在这里插入图片描述
cookie:
在这里插入图片描述
缺陷:cookie有隐私问题

web缓存器
在这里插入图片描述
这就类似于机组中的cache,在就直接返回,不在就从原始服务器请求,接收后返回。这里还有一个更新的问题,如果原始服务器的数据更新了,代理需要重新请求。所以代理接收请求时会向原始服务器发送请求看内容是否已经更新。

FTP和SMTP

**FTP:**文件传输协议,基于TCP,不允许丢包。
需要建立两条连接,port21 传送连接信息,port20 用来传数据。一次只能传一个对象。(非坚持连接)
**SMTP:**邮件传输协议,默认端口25。基于TCP,不允许丢包。推的一个过程
mail server握手,传邮件,关闭连接。
POP,IMAP,Web 来收邮件。

DNS

ip地址标识主机,但是不好记。主机名和ip地址的映射,由DNS来完成。既是应用,也是应用层的协议。运行在UDP之上默认53端口。
功能:

  • 主机名到IP地址的转换
  • DNS是为因特网上的用户应用程序以及其他软件提供一种核心功能,即将主机名转换为它们下面的IP地址。
  • DNS(域名系统)由DNS服务器和一个允许主机查询分布式数据库的应用层协议组成。
  • 除了主机名到IP地址的转换外,DNS还提供主机别名、邮件服务器别名、负载分配等服务。

在这里插入图片描述
在这里插入图片描述
无论是哪种请求都是从跟域名,顶级域名,再到权威域名一步步翻译的。

p2p应用

资源共享,节点间直接相连,没有控制中心,网络是动态的。
好处:

  • 可扩展性
  • 可靠性
  • 易于管理
  • 动态性
  • 传输文件快
    问题:
  • 自私性:只下载不上传,上传无用
  • 可信性:判断哪些信息是可信的
    BitTorrent
    p2p模式下的文件下载,一个应用,一个协议。
    top4策略:发给传的比较多的四个,随机给其他节点传数据,避免新节点没有办法获取到数据。
    下载稀缺资源。

传输层

传输层服务

发送端把报文打包成报文段,传到网络层,接收端,去掉首部,获得报文传给应用层。负责进程之间的通信。两个主要协议TCP,UDP。

UDP

UDP 用户数据包协议,不可靠,无连接,可能丢包,乱序。
选择原因:

  • 不存在连接时的延时
  • 不需要保存连接的信息
  • 报文段较小
  • 不调节发送端发送的速率
    DNS,SNMP基于UDP,存在重复操作的往往时允许丢包的。
    首部4个字段,64比特,8个字节,远端口,目的端口,长度2^16-1,校验和。

校验和:通过将段内容处理为16比特整数序列,段内容的加法(反码和),发送方将检查和放入UDP检查和字段

在这里插入图片描述
注意:差错检测不是百分之百准确。

可靠数据传输

解决两个问题

  • 比特差错,0-1错误
  • 丢包
    Rdt1.0: 经可靠信道的可靠传输
    发送端:不断的发,等待要发的数据
    接收端:不断的收,等待接收
    Rdt2.0: 具有比特差错的信道
    发送端:等待调用,不断的发,等待ACK或者NAK
    接收端:不断的接收,返回ACK或者NAK
    如果没有反馈,发送端会一直发,造成冗余数据包
    rdt2.1: 接收方,处理受损的ACK/NAK
    处理冗余:
    发送方对每个分组增加序列号
    如果ACK/NAK受损,发送方重传当前的分组
    接收方丢弃(不再向上交付)冗余分组
    rdt2.2: 发送方, 接收方片段
    与rdt2.1一样的功能,仅使用ACK
    代替NAK,接收方对最后正确接收的分组发送ACK
    接收方必须明确地包括被确认分组的序号
    在发送方冗余的ACK导致如同NAK相同的动作:重传当前分组
    rdt3.0: 具有差错和丢包的信道
    处理丢包: 发送方等待ACK一段“合理的”时间
    如在这段时间没有收到ACK则重传
    如果分组(或ACK)只是延迟(没有丢失):
    重传将是冗余的,但序号的使用已经处理了该情况
    接收方必须定义被确认的分组序号
    需要倒计时定时器

流水线协议

rdt3.0停等协议,性能不太好。1Gbps 链路, 15ms传播时延,8000bit 数据报
利用率 = (8/10^-9 ) / (15*2+8*10^-9) = 0.00027
传输第一个后接连传输一部分数据报,就是说在未获得ACK之前继续传送。

回退N(go-back-N)

流水线协议,窗口大小,允许未接收ack发送的数据包个数。
发送端:获得一个数据包,如果在窗口里面就可以发出去,否则等待。
接收端:累计确认,ACKn表示n以及以前的数据包都已经正确收到。希望收到N+1的数据包
只有一个计时器,如果超时,窗口大小个数的数据包都重传
在这里插入图片描述

选择重传

每一个数据包有一个单独的定时器,只重传未收到的数据包,ACKn表示数据包n已经收到。
在这里插入图片描述
在这里插入图片描述
可靠性传输中名词用途总结
在这里插入图片描述

TCP报文段格式

TCP点对点的,UCD支持一对多。
TCP,流水线型,把数据包进行字节传输,面向连接。
在这里插入图片描述
首部开销至少20个字节,首部长度4位,单位是4个字节,表示协议的首部长度范围是0~(2^4-1)* 4个字节
ACK在确认接收时置1,SYN,FIN关闭时置0

序列号seq:每一个字节给一个编号,数据包中字节最小的序列号,初始值,随机确定的。
确认号ack:期望收到的序列号,或者已经收到了n-1和之前的所有数据包。
在这里插入图片描述

TCP可靠数据传输

流水线型协议,累计确认,类似回退N。重传:冗余ACK,超时。但是重传只重传编号最小的数据包。
发送端:收到一个数据包,对每一个字节标号,判断编号是否在窗口里,然后发出去,开启定时器,重传只重传编号最小的数据包,收到一个ACK,窗口右移。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
快速重传
收到了3个冗余的ACK立即重传。(在计时器超时之前重传)

流量控制

通过调节发送端发包速率,避免接收端缓存溢出。其实通过发送端窗口的大小。
接收方在报文段接收窗口字段中通告其接收缓冲区的剩余空间,发送方要限制未确认的数据不超过RcvWindow

TCP连接管理

TCP是面向连接的,建立连接时三次握手的过程。
三次握手:

  • 步骤 1: 客户机向服务器发送 TCP SYN报文段
    指定客户端初始序号
    没有数据但占用一个序列号
  • 步骤 2: 服务器收到SYN报文段, 用SYNACK报文段回复
    服务器为该连接分配缓冲区和变量
    指定服务器初始序号
  • 步骤 3: 客户机接收到 SYNACK, 用ACK报文段回复,可能包含数据,前面两个没有数据,不占用序列号

在这里插入图片描述
关闭连接(双向关闭):

  • 步骤 1: 客户机向服务器发送TCP FIN控制报文段,占用一个序列号
  • 步骤 2: 服务器收到FIN,用ACK回答。关闭连接,发送FIN
  • 步骤 3: 客户机收到FIN, 用ACK回答 ,进入 “超时等待” – 将对接收到的FIN进行确认
  • 步骤 4: 服务器接收ACK,连接关闭
    在这里插入图片描述

拥塞控制

拥塞主要原因:太多的数据源发送到网络。
通过调节发送端发包速率,防止路由器的缓存溢出。
问题:造成延时,资源浪费,丢包。
解决方案:网络服务,端到端的。

TCP的拥塞控制机制

端到端的拥塞控制,调节拥塞窗口大小。去流量控制和拥塞控制窗口的最小值。
MSS(最大报文段大小):指的是报文段里允许最大data的大小
指数增加,到达阈值线性,丢包冗余ack减半。

  • 当连接开始的时候,速率呈指数式上升,直到第1次报文丢失事件发生为止,
  • 当CongWin < Threshold时,发送者处于慢启动阶段, CongWin指数增长
  • 当CongWin > Threshold时,发送者处于拥塞避免阶段, CongWin线性增长
  • 当出现3个冗余确认时, 阈值Threshold设置为CongWin/2,且CongWin设置为Threshold
  • 当超时发生时,阈值Threshold设置为CongWin/2,并且CongWin设置为1 MSS.
    在这里插入图片描述
    4时刻蓝色曲线到达阈值,线性增长,8时刻超时,CongWin设为1MSS,阈值变为原来的一半,开始指数增长,如果8时刻发生冗余ack,则CongWin设为原来的一半,阈值也变成一半。
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值