计网复习第三章part one
写在前面:
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
记录计网学习(复习)
计网学习 第三章 part one
- 3第三章 运输层
- 3.1运输层服务
- 3.1.0概述
- 3.1.1运输层和网络层的关系
- 3.1.2因特网与运输层的关系
- 3.2多路复用与多路分解
- 3.2.1无连接的多路复用和分解
- 3.2.2面向连接的多路复用与多路分解
- 3.3无连接运输:UDP
- 3.3.1 UDP 报文段结构
- 3.3.2 UDP 检验和
- 3.4 可靠数据传输原理
- 3.4.1 构造可靠数据传输协议
- 经完全可靠信道的可靠数据传输: rdt 1.0
- 经具有比特差错信道的可靠数据传输:rdt 2.0
- rdt 2.1
- rdt 2.2
- rdt 3.0
3第三章 运输层
3.1运输层服务
3.1.0概述
运输层协议提供逻辑通信,在端系统中实现(provide logical communication between app processes running on ifferent hosts)
分组:报文段(segment)
服务于运行在不同主机上的进程
中间路由器既不处理也不识别运输层加在应用层的任何信息
运输协议能够提供的服务常常受制于底层网络层协议的服务模型
3.1.1运输层和网络层的关系
TCP(传输控制协议)/reliable
- data delivery and error checking
- flow control
- congestion control
- connection setup
UDP(数据用户报协议)/unreliable
- only provide data delivery and error checking
- no-frills extension of “the best”
底层网络协议是不可靠的,会使分组丢失、篡改和冗余
运输层协议能为应用程序提供可靠的数据传输服务
3.1.2因特网与运输层的关系
TCP和UDP的分组统称为报文段
因特网网络层协议:IP(网际协议)
为主机之间提供逻辑通信
IP的服务模型是尽力而为交付服务( best-effort delivery service)
不做任何确保
- 不确保报文的交付
- 不保证报文的按序交付
- 不保证报文段数据中的完整性
进程到进程间的数据交付与差错检查是两种最低限度的运输层服务
3.2多路复用与多路分解
- 多路分解与多路复用:将主机间交付扩展到进程间的交付
- 一个进程有一个或多个套接字(socket)
- 运输层将数据交付给套接字
- 每一个套接字都有唯一的标识符
- 标识符的格式取决于它是UDP还是TCP套接字
- 多路分解(demultiplexing):将运输层报文中的数据交付到正确的套接字的工作
- 多路复用(multiplexing)在源主机从不同套接字中收集数据块,并为每一个数据块封装首部信息(这在以后用于分解)从而生成报文段,然后将报文段传递到网络层
- 运输层多路复用要求:
- 套接字有唯一标识符
- 每个报文段有特殊字段来指示该报文段所要交付到的套接字
- 0-1023端口:周知端口号
- HTTP:80
- FTP:20,21
- DNS:53
- IMAP:143
- SMTP:25
- POP3:110
- 1023-65535:动态/私有端口
3.2.1无连接的多路复用和分解
- 每个进程有自己的UDP套接字及相应的端口号
- 网络到达TCP报文段时,主机通过检查该报文段中的目的的端口号,将每个报文定向(分解)到相应的套接字
- 一个UDP套接字是由一个二元组来全面标识:
- 目的IP地址
- 目的端口号
- 二者相同就会被套接字定位到相同的目的的进程
- 源端口号:用作“返回地址”的一部分
3.2.2面向连接的多路复用与多路分解
TCP套接字由一个四元组来标识:
- 源IP地址
- 源端口号
- 目的IP地址
- 目的端口号
两个具有不同源IP地址或源端口号的到达TCP报文段将被定向到两个不同的的套接字;除非TCP报文携带了初始创建连接的请求。
到一个TCP报文段到达主机时,所有4个字段被用来将报文段定向到相应的套接字
连接1套接字与进程之间并非总是有着一一对应的关系
3.3无连接运输:UDP
“我们必须做一点点事,而不是什么都不做”
UDP协议只是做了运输协议能够做的最少工作,除了复用/分解以及少量的差错检测外,它几乎没有对IP增加别的东西
UDP被称为是无连接的:发送方和接收方的运输实体之间没有握手
TCP20字节首部开销
UDP8字节首部开销
UDP uesed in:
- streaming multimedia apps (loss tolerant, rate sensitive)
- DNS
- SNMP (Simple Network Management Protocol)
- RIP (Routing Information Protocol)
应用首选UDP原因:
- 关于何时、发送什么数据的应用层控制更为精细
- 无需建立连接
- 无连接状态
- 分组首部开销小
UDP和TCP都用于多媒体应用,如因特网电话、实时视频会议、流式储存音频与视频
使用UDP是可以实现可靠数据传输的
通过在应用程序自身中建立可靠性机制来完成
- 例如通过增加确认与重传机制来实现
3.3.1 UDP 报文段结构
UDP首部仅有四个字段每个字段两个字节,一共32比特
源端口号
目的端口号
- 使目的主机将应用数据交给运行在目的端系统中的相应进程(执行分解功能)
长度
- 指示了在UDP报文段中的字节数(首部加数据)
检验和
- 使用检验和来检验在该报文中是否出现了差错
3.3.2 UDP 检验和
- 检验和提供了差错检验功能
- 发送方的UDP对报文中的所有16比特字的和进行反码运算,求和时遇到的任何溢出都被回卷
- 得到的结果被放在UDP报文段中的检验和字段
- 在接收方,全部的4个16比特字(包括检验和)加在一起,如果分组中没有引入差错,则显然在接收方处该和将是1111111111111111,如果这些比特之一是0,那么该分组已经出现差错
- 端到端原则(end-end principle):在既无法确保逐链路的可靠性,又无法确保内存中的差错检测的情况下,如果端到端数据传输服务要提供差错检测,UDP就必须在端到端基础上在运输层提供差错检测
- UDP提供差错检测,但它对差错恢复无能为力
- UDP的某种实现只是丢弃受损的报文段,其他实现可以是将受损的报文段交给应用程序并给出警告
3.4 可靠数据传输原理
- 可靠数据传输协议(reliable data transfer protocol):RDT
- 不可靠数据传输(udt)
- 单向数据传输(unidirectional data transfer)
- 双向数据传输(bidirectional data transfer)
3.4.1 构造可靠数据传输协议
经完全可靠信道的可靠数据传输: rdt 1.0
- 底层信道完全可靠:rdt:1.0
- 有限状态机(Finite-State Machine,FSM)
- sender sends data into underlying channel
- receiver reads data from underlying channel
经具有比特差错信道的可靠数据传输:rdt 2.0
underlying channel may flip bits in packet
- still assume the packets arrive at receiver in order, no loss
- checksum to detect bit errors
肯定确定(positive acknowledgment)
否定确认(negative acknowledgment)
如何恢复
- (positive) acknowledgements (ACKs): receiver explicitly tells sender that pkt received OK
- negative acknowledgements (NAKs): receiver explicitly tells sender that pkt had errors (need repeat)
- sender retransmits pkt on receipt of NAK
基于重传机制的可靠传输协议称为自动重传请求(Automatic Repeat ,ARQ)协议
- 差错检测( error detection)
- 接收方反馈: feedback(肯定确认:ACK,否定确认:NAK)
- 重传(retransmission)
- rdt2.0的发送端有两个状态
- 发送端正在等待,产生rdt_send(data)事件时,发送方将产生一个包含待发送的数据的分组(sndpkt)带有检验和,如何经udt_send(smdpkt)操作发送该分组
- 发送方协议等待来自接收方的ACK或NAK分组
- 如果收到ACK分组,则发送方知道最近发送的分组已被正确接收,因此协议返回到等待来自上次的数据的状态
- 如果收到NAK分组,该协议重传最后一个分组并等待接收方响应重传分组而送回送的ACK或NAK
- 当发送方处于等待ACK或NAK时,它不能从上层获取更多的数据,仅当接收到ACK并离开该状态时才能获取更多的数据
- rdt2.0的接收端仅有一个状态
- 当分组到达时, 接收方回答ACK或NAK,取决于分组是否受损
- 缺陷:ACK与NAK分组受损
- introducing a new type of sender-to-receiver packet, similar to human say “what did you say?”
- Receiver repeat the ACK/NAK packet
- “What did you say?” is corrupted?
- add checksum bits to allow the sender to detect and recover (effective for corrupt packets but no loss, How to solve the problem of ACK/NAK loss?)
- sender simply to resend the current data packet when receives a garbled ACK or NAK packet!
- introducing a new type of sender-to-receiver packet, similar to human say “what did you say?”
- 要点:正确收到ACK则发下个新数据,正确收到NAK则重发老数据,无法确认ACK或NAK(错误数据)则重发老数据,避免漏发
- 解决上述问题的一个新方法:在数据分组中添加一新字段,让发送方对其数据分组编号,即将发送数据分组的序号(sequence number)放在该字段。
rdt 2.1
- sender, handles garbled ACK/NAKs
- receiver, handles garbled ACK/NAKs
- rdt 2.1使用了从接收方到发送方的肯定确认和否定确认
- 当接收到失序分组时,接受方对所接受的分组发送一个肯定请求
- 如果收到受损的分组,则接收方将发送一个否定确认
- 发送方接收到对同一个分组的两个ACK(冗余ACK duplicate ACK)后,就知道接收方没有正确接收到跟在被确认两次的分组后面的分组
rdt 2.2
- 接收方此时必须包括由一个ACK报文所确认的分组序号
- 发送方此时必须检查接收到的ACK报文中被确认的分组序号
- 当发送方收到接收方反馈的ACK中出现冗余情况(即接收方并未收到预期编号的正确数据包),发送方认为刚才发送的数据存在错误,则重发该数据。
rdt 3.0
- 考虑底层丢包( channels with errors and loss)
- 怎样检测丢包以及发生丢包后该做什么
- 基于时间的重传机制,倒计数定时器(countdown timer)
- 在一个给定的时间量过期后,可中断发送方
- 发送方需要做到
- 每次发送一个分组时,便启动一个定时器
- 响应定时器中断
- 终止定时器
- 比特交替协议(alternating-bit protocol)
继续加油!冲冲冲
end
禁止转载
计网复习第三章part one相关推荐
- 计网复习——第三章 数据链路层
目录 1. 使用点对点信道的数据链路层 1.1 数据链路和帧 1.2 三个基本问题 1.2.1 封装成帧 1.2.2 透明传输 1.2.3 差错检测 2. 点对点协议PPP 2.1 PPP协议的特点 ...
- 计网PPT 第三章 数据链路层
目录 数据链路层使用的信道 数据链路层的简单模型 1.使用点对点信道的数据链路层 Ⅰ.数据链路和帧 数据链路层传送的是帧 数据链路层像个数字管道 Ⅱ.三个基本问题 封装成帧 透明传输 差错检测 2.点 ...
- 【计网】第三章 数据链路层(5)广域网协议PPP、HDLC,数据链路层设备
目录 3.7 广域网及相关协议 一.广域网 二.PPP 协议的特点 三.PPP 协议应满足的要求 四.PPP 协议无需满足的要求 五.PPP 协议的三个组成部分 六.PPP 协议的状态图 七.PPP ...
- 计网复习_复习重点纲要(一)_前三章
计网第七版 计网复习路线如下: 走一轮复习重点(本章) 根据往年试卷了解考什么,考的形式,加强知识 总结题型,后续将按照个人对于这门课看待总结题型,如大题预测题型版等 回顾二轮复习重点(本章) 第一章 ...
- 计网复习——传输层习题
计网复习--传输层习题 1. 主机A向主机B连续发送了两个TCP报文段,其序号分别为70和100.试问: (1)第一个报文段携带了多少个字节的数据? (2)主机B收到第一个报文段后发回的确认中的确认号 ...
- 吉林大学软件学院计网复习知识点
吉林大学软件学院计网复习知识点 目录 前言 单项选择题知识点 填空题知识点 名词解释题知识点 简答题知识点 应用题知识点 课后习题答案 尾声 前言 大家好,我是星辉,以上便是根据我手头的资料整理的,希 ...
- 计网复习day01 2020.8.18
计网复习day01 2020.8.18 一些填空题 计算机网络由通信子网和资源子网组成 报文交换网络分为虚电路交换网络和数据报交换网络 OSPF的名字是开放最短路径优先,使用了分布式的链路状态协议,R ...
- 计网复习笔记【附思维导图】——【2】应用层
计网复习笔记[附思维导图]--[2]应用层 计网 应用层 2.1 应用层协议原理 位置 应用层协议含义 应用层协议类型 网络应用程序架构 进程通信 网络应用需要的运输层服务 Internet提供的运输 ...
- 计网复习——数据链路层习题
计网复习--数据链路层习题 1. 要发送的数据为1101011011.采用CRC的生成多项式是P(X)=X^4+X+1.试求应添加在数据后面的余数. 采用CRC的生成多项式是P(x)=X4+X+1 ...
最新文章
- SQL Server中数据的修改是如何落盘的?
- FormData上传文件同时附带其他参数
- 使用curl操作InfluxDB
- java屏蔽关键字_替换禁用语(指定关键字)的过滤器
- 【图像缩放】双立方(三次)卷积插值
- vbs隐藏cmd命令窗口调用bat程序执行class
- linux signal 符号表6,gdb调试信息__000_linux-gnu_00000000_002_rw-p__169IT.COM
- linux远程无密码登录,linux ssh无密码登录,远程执行脚本文件
- JavaScript-Tool:CKFinder
- ModelSim ALTERA 6.5b 下载安装以及使用
- js导出excel文件
- 电脑蓝牙连接android程序,win7系统下电脑与Android手机蓝牙连接方法
- 阿里云DataV数据展示的一些sql写法
- linux中创建目录树,linux怎样创建目录树
- 大学娱乐化值得高度警惕——胡乐乐
- 想知道CAD怎么转图片格式?跟我学会这几招就足够了
- WPF中的右键菜单ContextMenu
- About Sealed
- macOS下制作U盘启动盘和安装白苹果教程
- 搜索学——什么可以搜,怎么搜