计算机网络复习————概述,应用层,传输层
计算机网络复习————概述,应用层,传输层
- 绪论
- 概述
- 交换技术
- 网络性能指标
- 协议栈
- 应用层
- 应用体系架构
- Web和HTTP
- FTP和SMTP
- DNS
- p2p应用
- 传输层
- 传输层服务
- UDP
- 可靠数据传输
- 流水线协议
- 回退N(go-back-N)
- 选择重传
- TCP报文段格式
- TCP可靠数据传输
- 流量控制
- TCP连接管理
- 拥塞控制
- TCP的拥塞控制机制
绪论
概述
什么是网络?
网络是对系统的抽象,像是成千上万的人群,蚁群等等。各个领域中存在不同的网络,经济网络,生物网络,信息网络,人脑神经元网络,交通中地铁,公交网络。
网络帮助研究各个个体之间的关系,方便理解各个系统的复杂性。
因特网:
成千上万的计算设备互联组成的系统,这些计算设备有计算机,服务器,统称为主机。连接链路有多种:有线,无线的,光纤等等。
**协议:**是计算机网络组成的重要部分。
- 制定数据报的格式
- 执行什么动作
- 网络中交换信息的规则的集合。
三要素:语法,语义,同步。
拓扑结构:
星形:单点故障,中心节点负荷大,
树形:星形的集连
总线:分布式结构,需要竞争总线使用,两个以上发送容易出现冲突。
网状网:复杂交错,星形的集合。
环形:只能向一个方向发数据。
因特网的组成
网络边缘(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设为原来的一半,阈值也变成一半。
计算机网络复习————概述,应用层,传输层相关推荐
- 计算机网络笔记-应用层/传输层/网络层(2w字详细整理)
文章目录 计算机网络 计算机网络概述 互联网的组成 网络边缘部分 C/S方式 P2P对等方式 网络核心部分 电路交换 分组交换 报文交换 传输延时 计算机网络体系概述 OSI七层模型 TCP/IP四层 ...
- [计算机网络]第三章——传输层
文章目录 [计算机网络]第三章--传输层 3.1 概述和传输层服务 传输层概述 3.2 多路复用与多路分解 无连接的多路复用与多路分解 有连接的多路复用与多路分解 3.3 UDP|User Datag ...
- Day5:传输层概述、传输层服务、多路复用和解复用、无连接传输 UDP
加油,偷博仔! 为了给学习增添一丝文艺美感,沉静一下学习的心境. 我买了一本朦胧主义的诗集<顾城的诗> 附几句干净.美好的诗句在开头. 树枝想要去撕裂天空, 却直戳了几个微小的窟窿, 它透 ...
- Day5-2021.1.13 计算机网络原理 第八章 传输层+第九章 应用层 河北师范大学韩老师的视频
2021年1月13日 时间都去哪了? 今日计划:计算机网络的传输层和应用层看完视频.整理计网面经.面经才是重要的,笔记不用很细心,又不是期末考试. 今日工作:计算机网络的传输层和应用层看完视频. 今日 ...
- 计算机网络第七ppt,考研 计算机网络 第七学时 传输层.ppt
文档介绍: 考研_计算机网络_第七学时_传输层计算机网络传输层次藐农力辞坛娘巍涟倒盈竭猿挫僵吨忻排南纽蔷铱獭篱权炕染嚣碉铱棕廷考研_计算机网络_第七学时_传输层考研_计算机网络_第七学时_传输层传输层 ...
- 计算机网络【4】传输层
概述 传输层是只有主机才有的层次 传输层的功能: 传输层提供进程和进程之间的逻辑通信(网络层提供主机与主机之间的逻辑通信) 复用和分用 传输层对收到的报文进行差错检测 传输层有两个协议: 面向连接的传 ...
- 王道考研计算机网络第五章——传输层
5.1 传输层概述 5.1.1 传输层 为应用层提供通信服务,使用网络层服务 1 传输层功能 1.传输层提供进程和进程之间的逻辑通信. 2.复用和分用 例如一家四口都要给好友写信,统一放到邮筒里,邮政 ...
- 计算机网络(五)传输层详解
目录 第五章 传输层 5.1 传输层概述 进程之间的通信 网络层与传输层的区别 传输层的两个主要协议 传输层的端口 TCP/IP传输层端口 5.2 UDP UDP需要实现的功能 UDP提供的服务 UD ...
- 【计算机网络实验Mooc】传输层实验测试题
1. 网络实验入门测试题 2. 数据链路层实验测试题 3. 网络层实验测试题 4. OSPF路由协议测试题 5. 传输层实验测试题 6. 应用层实验测试题 [传输层实验测试题] TCP端口号区分上层应 ...
最新文章
- DEAP:使用生理信号进行情绪分析的数据库(一、背景介绍与刺激选择)
- Frida 基础操作2
- 【重难点】【事务 03】分布式事务
- php时间日期函数转字符串,php自定义时间转换函数示例
- EasyUI datebox 设置为按月选择
- 社交界的 Linux,为何败给了 Facebook、Twitter?
- RPM方式安装MySQL5.5.48 (Aliyun CentOS 7.0 卸载MySQL5.7)
- 海洋工作室——网站建设专家:人生3万天 转载
- Python深度学习:Python数据处理及可视化(读书笔记)
- 开源物联网云平台 Thingsboard入门
- mariadb中文手册_mariadb中文手册
- timestamp显示毫秒_TimeStamp 毫秒和纳秒
- 51单片机驱动LCD12864中文字库显示
- QToolButton图标大小设置
- 计算机知识技能大赛总结,计算机技能大赛总结.doc
- adb shell 模拟器 关闭\打开WIFI
- matlab响应曲面设计,分析响应曲面设计
- PDFBox打印PDF A4格式文档和定制规格条码实例
- 【WLAN】【测试】Linux下aircrack-ng的应用之破解WPA/WPA2、WEP密钥
- p0级重大事故:超卖了100瓶飞天茅台,整个项目组慌得一逼~
热门文章
- 制作唐诗网页代码_唐诗宋词网页制作素材
- [3] Jenkins 系列:如何获取触发Jenkins Job的用户信息?
- 酷乐萌机器人_QQ飞车手游【萌宠攻略】激萌无比,未来机器人穿越而至
- 老式计算机组装教程,旧机械硬盘可以装新电脑上吗?台式电脑加新/旧机械硬盘+分区教程...
- Mel,Bark以及ERB刻度
- uview tabs切换让item始终居中
- 6-27 实验9_7_设计函数int getVowel(char str[],char vowel[]); (100 分)
- 约瑟夫环的两种实现方法
- 【云原生分布式存储】成书心路历程
- 到底什么是JWT技术?