计算机网络
子知识库
文章
3.1 传输层-基本原理
基本原理概述传输层位于网络层和应用层之间,它的目的是为运行在不同主机上的进程之间的通信提供支持。传输层将网络层提供的不同主机之间的通信服务扩展到了运行在不同主机上的进程之间。 主要功能传输层协议为运行在不同主机上的应用之间提供了逻辑通信功能,而网络层则是提供了主机之间的逻辑通信服务。。传输层运行在主机上即端系统上。其基本通信过程为 发送方:传输层接收到来自应用进程的报文,并将其转换为传输层分组,因特网中称为传输层报文段,然后传输层将分组交给网络层,网络层将其交付到目的主机。 接收方:网络层从数据中提取传输层报文段,并将其提交给传输层。 与网络层的关系传输层建立在网路层之上,因而传输层所能提供的服务要受到网络层提供服务的限制,比如假如网络层不能提供带宽和时延保证,那么传输层也无法提供该服务。但是传输层仍能够提供网络层所不能提供的服务,比如IP层是不可靠地服务,但是传输层仍能提供可靠服务。 三种传输层协议 UDP:用户数据报协议,它为应用程序提供了一种不可靠的无连接的服务 TCP:传输控制协议,它为应用程序提供了可靠地面向连接的服务 SCTP:流控制传输协议,它为应用程序提供了可...
3.2 传输层-UDP
UDP1 概述UDP是一个简单的面向数据报的传输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。因此如果应用程序使用UDP来实现,则应用程序几乎是直接与IP打交道,UDP只在网络层之上提供了非常有限的服务:进程间数据交付和差错检测。 2 UDP的多路复用和多路分解原理传输层通过socket来提供多路分解和多路复用,并且: 每个socket都由唯一的一个标识符 每个报文段由特殊的字段来指示该报文段所要交付的套接字,源端口号和目的端口号就是这种目的的特殊字段 端口号是16比特的数字,其大小在0到65536之间。0到1023之间的端口号是知名端口号,其使用是受限制的(指的是不能随意使用)。 过程 主机上的进程创建一个socket,并为之申请一个端口号,假设主机host1上进程A创建了一个socket并申请到端口号10000,主机host2上的进程B创建了一个socket并申请到端口号20000 主机host1上的进程A想和主机host2上的进程B通信,因而它从其与之关联的socket中发送一个数据报,并将源端口设置为10000,目的端口设置为2...
3.3 传输层-可靠传输
可靠数据传输与拥塞控制1 信道不可靠 出现比特错误 会丢包 2 普通可靠传输-停止等待协议 关键词:校验和、ACK、重传、序号、超时重传 出现比特错误的信道 接收方:需要确认信息是否就是发送方所发送的,并且需要反馈是否有错误给发送方 发送方:需要在发送的信息中添加额外信息以使得接收方可以对接收到的信息是否有错误进行判断,并且需要接收接收方的反馈,如果有错误发生就要进行重传 因而在这种信道上进行传输需要三种功能: 差错检测:发送方提供额外信息供接收方进行校验,接收方进行校验以判断是否有错误发生。网络协议一般采用校验和来完成该任务 接收方反馈:接收方需要将是否有错误发生的信息反馈给发送方,这就是网络协议中最常见的ACK(确认)/NAK(否定的确认)机制 发送方重传:在出现错误时,发送方需要重传出错的分组。重传也是网络协议中极常见的机制。 反馈出现错误 如果收到了受损的反馈,则都认为是出现了错误,就进行重传。但是这时就可能引入冗余的分组,因为被重传的分组可能已经正确的被接收了。 冗余分组可以通过一种简单的机制来解决,这就是分组序列号。被发送的每个分组都有一个序列号,...
3.4 传输层-TCP
TCP 参考文献 TCP协议详解 TCP 1 概述 2 TCP报文 3 TCP的多路复用和解复用 4 TCP的状态迁移 状态迁移图 状态迁移图说明 5 TCP的连接管理 建立连接 终止连接 连接建立的超时 同时打开 同时关闭 复位连接 1 概述TCP提供的是一种面向连接的、可靠的字节流服务。 面向连接:使用TCP的两端在彼此交换数据之前必须先建立一个TCP连接。TCP连接是点对点的,在一个TCP连接中,仅有两方可以彼此通信,TCP不使用广播和多播。TCP的连接和电话网络的连接不同,它对中间的转发设备即路由器、交换机是透明的,连接的信息只存在于连接的两个端系统之上。 可靠:TCP保证数据传输的可靠性。 字节流:两个应用程序通过TCP连接交换8bit字节构成的字节流。字节流服务中,接收方无法了解发方每次发送了多少字节,可以确保的是一端将字节流放到TCP连接上,同样的字节流将出现在TCP连接的另一端。另外,TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCII字符、EBCDIC字符或者其他类型数据。对字节流的解释由TCP连接双...
3.5 传输层-TCP可靠数据传输
TCP数据传输1 概述主要内容tcp数据传输主要包括以下几个方面 可靠数据传输(保证数据传输的正确性) 面向连接 序号机制(保证数据顺序) 校验和(防止数据出错) 确认机制(应对丢包) 超时重传(应对丢包、丢失确认) 累计确认(发送方动作,发送方认为之前全被正确接收) 选择重传(接受方动作,接收方维持滑动串口,只要求重传丢失的分组) 流量控制(提高传输效率的流水线方法,考虑接收端的接受能力,发送方的发送速率不应该超过接收端的接受能力) 滑动窗口(对应缓冲区大小,双向缓冲窗口流水线技术) 拥塞控制(通过流量控制实现,考虑断点之间的网络情况,目的使负载不超过网络的传输能力。) 慢启动 拥塞避免 快重传 快恢复 在接收方实现了流量控制 在发送方实现了拥塞控制 TCP主要任务当TCP连接建立之后,应用程序即可使用该连接进行数据收发。应用程序将数据提交给TCP,TCP将数据放入自己的缓存,并且在其认为合适的时候将数据发送出去。在TCP中,数据会被当做字节流并按照MSS的大小进行分段,然后加上TCP头部并提交给网络层。之后数据就会被网络层提交给目地主机,目地主机的IP...
3.6 传输层-TCP拥塞控制
拥塞控制 参考文献 TCP协议 1 概述当网络拥塞时数据报不能及时被转,在分组转发网络中,数据报就会被排队,甚至出现丢包因此说网络拥塞会带来网络开销: 引入大的排队时延 当数据报被丢失时发送方必须重传,因此引入了重传开销 当数据报被丢失时,丢失路由器的上游路由器做的工作都变成了无用功 因此必须采取技术来尽可能避免拥塞。由于IP层不提供网络是否拥塞的信息,因而TCP必须自己来判断网络是否出现了拥塞。 TCP将丢包(可能是超时也可能是收到了三个冗余的ACK)看做是网络拥塞的线索,将RTT增加看做是网络拥塞程度加重的线索。 TCP让连接双方根据自己所判断的网络拥塞的程度来限制其发往网络的流量。TCP在连接的每一端都增加了一个变量cong_win,它表示拥塞窗口,用于限制一端可以向网络发送的数据。TCP连接的每一端都保证它所已经发送的未被确认的报文段的总大小不会超过拥塞窗口和对方通告的窗口大小中的较小的那一个。 TCP通过ACK到达的情况(即是否到达,到达的速率)来调整拥塞窗口的大小。 主要技术 慢启动 拥塞避免 快重传 快恢复 2 慢启动在建立TCP连接时,拥塞窗口被初始化...
4.1 网络层-基本原理
网络层-基本原理1 基本功能网络层建立在链路层之上,它的最主要的功能是使得网络中的各个主机之间可以互相通信。在因特网中,IP层是TCP/IP协议族中最为核心的协议,也是最复杂的层次之一。网络层的功能是要将分组从一个主机移动到另一个主机从而使得主机之间可以互相通信。为此需要网络层提供两种功能: 存储转发路由器(三层交换机)将进入其某个输入链路的分组转发到其某个输出链路。它是将分组从一个输入链路移动到一个输出链路,是一个路由器的本地动作。 路由选择在分组从一个主机流向另一个主机的过程中,网络层必须决定分组所走过的路径。计算这个路径信息的算法就是路由算法。它是一个网络范围的动作,决定分组从其源到目的应该走的路径 连接建立在有些计算机网络中,连接建立也是网络层的重要功能。比如ATM,它要求从源到目的地沿着所选择的路径彼此握手,以便在源和目的之间建立起状态。 2 服务特点 确保服务:确保能最终到达目的地 时延上界:不仅确保交付,而且确保在时上界内交付 有序分组交付:确保分组按照它们被发送的顺序到达目的地 确保最小带宽:只要发送主机以低于特定比特率的速录传输,分组就不会丢失 确保最...
4.2 网络层-网际协议
网络层-网际协议IP(internet protocol)协议是TCP/IP协议族的核心协议,是因特网的网络层。IP层为因特网提供了选路和转发的功能。在IP层,IP地址用于标识接入网络的接口,进而标识一台主机。 1 IPv4协议IPv4数据报网络层分组被称为数据报。IPv4的数据报格式如下: 版本号:协议版本号,IPv4为4,IPv6则为6(当然IPv6的头部不完全是这样,但是4个比特含义一致) 首部长度:首部长度指的是首部占32 bit字的数目,包括任何选项。因此IPv4首部最长为60个字节 服务类型:服务类型(TOS)字段包括一个3 bit的优先权子字段(现在已被忽略),4 bit的TOS子字段和1 bit未用位但必须置0。4 bit的TO S分别代表:最小时延、最大吞吐量、最高可靠性和最小费用 数据报长度:以字节为单位的整个IP数据报的长度(包括首部)。 标识、标志、片偏移:标识用来唯一确定主机发送的每一个IP数据报。标志和片偏移用来支持IP分片,当然它们必须和标识一起使用。 生存时间:数据报可以经过的路由器数,这使得IP数据报早晚会在网络中消失,即要么被消失,...
4.3 网络层-路由算法
网络层-选路算法1 路由概述网络中的主机通常都直接与一台路由器相连接,该路由器即为该主机的默认路由器,它是该主机的第一跳路由器。 每当主机发送一个分组时,它都首先将分组发送给起默认路由器,在接收端,目的主机的默认路由器把来自于网络上其它主机的分组转发给目的主机,因而网络中从源主机到目的主机的选路就是从源主机的默认路由器(也可以成为源路由器)到目的主机的默认路由器(也可以成为目的路由器)之间的选路问题。 选路算法的目的给定一组路由器以及连接路由器的链路,选路算法要找到一条从源路由器到目的路由器之间的“好”路径。通常好路径指的是最低费用的路径。由于网络中的路由器组成的拓扑是典型的图结构,因而可以用图来研究选路问题。 在网络图中,节点表示路由器,边表示路由器之间的链路。给边赋予一个表示费用的值(费用可以为链路速度,金钱,线路长度等等),然后选路算法的目的就变为在图中找到给定的两点之间的具有最低费用的路径。 选路算法的分类根据选路算法是全局的还是局部的,选路算法可以分为: 全局选路算法:用完整的,全局性的网络信息来计算从源到目的的最低费用路径。这种算法通常称为链路状态算法即LS算法,因...
4.4 网络层-路由协议
网络层-路由协议 在因特网中,AS即自制系统内部使用的两个选路协议是RIP(路由信息协议,Routing information Protocol)和OSPF(Open Shortcut Path First)。 1 因特网自制系统内部的路由选择:RIPRIP协议原理RIP是一种距离向量协议,运行方式和理想化的DV算法相似。在RIP中,DV算法中的费用采用的是跳数,即从源路由器到目的路由器的最短路径上的路由器数。RIP中一条路径的最大跳数被限制为15,因此RIP被限制用在网络直径不超过15的自制系统内。 DV算法需要在路由器之间发送每个路由器的距离向量信息,RIP通过RIP通告(也称为RIP响应报文)来完成这个功能,RIP通告大约30秒相互交换一次。RIP通告包含了选路更新信息。每台路由器都维护有一张路由表,它包含了路由器的距离向量的该路由器的转发表。 运行RIP协议的路由器每隔30秒就会发送RIP通告,如果一台路由器超过180秒还没收到邻居的RIP通告,它就认为邻居不再可达。此时它会更新自己的距离向量,并向相邻路由器通告该信息。 RIP也允许路由器主动发送请求报文请求某个邻居...













