‘壹’ 计算机网络分为几层
第一层:物理层
解决两个硬件之间怎么通信的问题,常见的物理媒介有光纤、电缆、中继器等。它主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速消手率等。
第二层:数据链路层
数据链路层从网络层接收数据包,数据包
包含发送方和接收方的IP地址。数据链路层执行两个基本功能。它允许上层使用成帧之类的各种技术来访问介质,控制如何放置和接收来自介质的数据。
第三层:网络层
传输层将数据段传递到网络层。网络层用于将接收到的数据段从一漏敬台计算机传输到位于不同网络中的另一台计算机。网络层的数据单元称为数据包,网络层的功能是逻辑寻址、路由和路径确定。
第四层:传输层
OSI下3层的主要任务是数据通信,上3层的任务是数据处理,传输层是第四层,因此该层是通信子网和资源子网的接口和桥梁,起到承上启下的作用。
第五层:会话层
是用户应用程序和网络之间的接口,主要任务是组织和协调两个会话进程之间的通信,并对数据交换进行管理。
第六层:表示层
表示层指从应用层接收数据,这些数据是以字符和数字的形式出现的,表示层将这些数据转换成为机器返桥慎可以理解的二进制格式,也就是封装数据和格式化数据,例如将ASCII码转化为别的编码,这个功能称为“翻译”。
第七层:应用层
是OSI参考模型的最高层,它使计算机用户以及各种应用程序和网络之间的接口,是网络应用程序所使用的,例如HTTPS协议、HTTP协议,应用层是通过协议为网络提供服务,执行用户的活动。
‘贰’ 计算机网络上逻辑上划分几个层次每个层次的功能是什么
七层: 物理层 、数据链路层、网络层、传输层、会话层、表示层、应用层。
1、物理层功能 : O S I 模型的最低层或第一层,该层包括物理连网媒介,如电缆连线连接器。物理层的协议产生并检测电压以便发送和接收携带数据的信号;
2、数据链路层: O S I 模型的第二层,它控制网络层与物理层之间的通信。它的主要功能是如何在不可靠的物理线路上进行数据的可靠传递;
3、网络层: O S I 模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方;
4、传输层: O S I 模型中最重要的一层。传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率;
5、会话层: 负责在网络中的两节点之间建立和维持通信。 会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对 话,决定通信是否被中断以及通信中断时决定从何处重新发送;
6、表示层: 应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同;
7、应用层: 负责对软件提供接口以使程序能使用网络服务。术语“应用层”并不是指运行在网络上的某个特别应用程序 ,应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。
‘叁’ OSI每层的功能及特点是什么
【答案】: a物理层为数据链路层提供物理连接,在其上串行传送比特流,即所传送数据的单位是比特。此外,该层中还具有确定连接设备的电气特性和物理特性等功能。
b数据链路层负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据。为做到这一点,在每一帧中必须同时带有同步、地址、差错控制及流量控制等控制信息。
c网络层为了将数据大竖分组从源(源端系统)送到目的地(目标端系统),网络层的任务就是选择合适的路由滚态大和交换节点,使源的传输层传下来的分组信息能够正确无误地按照地址找到目的地,并交付给相应的传输层,即完成网络的寻址功能。
d传输层传输层是高低层之间衔接的接口层。数据传输的单位是报文,当报文较长时将它分割成若干分组,然后交给网络层进行传输。传输层是计算机网络协议分层中的最关键一层,该层以上各层将不再管理信息传输问题。
e会话层该层对传输的报文提供同步管理服务。在两个不同系统的互相通信的应用进程之间建立、组织和协调交互。例如,确定是双工还是半双工工作。
f表示层该层的主要任务是把所传送的数据的抽象语法变换为传送语法闭键,即把不同计算机内部的不同表示形式转换成网络通信中的标准表示形式。此外,对传送的数据加密(或解密)、正文压缩(或还原)也是表示层的任务。
g应用层该层直接面向用户,是OSI中的最高层。它的主要任务是为用户提供应用的接口,即提供不同计算机间的文件传送、访问与管理,电子邮件的内容处理,不同计算机通过网络交互访问的虚拟终端功能等。
‘肆’ 计算机网络-OSI各层简介
本文参考以下优质文章,感谢各位大神对我学习的帮助:
牛客网-奔跑吧牛客-计算机网络之面试常考
非常推荐以上链接!
OSI协议:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP协议:网络接口层、 网际层、运输层、 应用层。
每一层的协议如下:
物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关)
数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)
传输层:TCP、UDP、SPX
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII
应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
每一层的作用如下:
物理层: 通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层 :将比特组装成帧和点到点的传递(帧Frame)
网络层 :负责数据包从源到宿的传递和网际互连(包PackeT)
传输层 :提供端到端的可靠报文传递和错误恢复(段Segment)
会话层 :建立、管理和终止会话(会话协议数据单元SPDU)
表示层 :对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层 :允许访问OSI环境的手段(应用协议数据单元APDU)
‘伍’ 计算机网络各层次有哪些
1、应用层
与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序就需要实现OSI的第7层。示例:TELNET,HTTP,FTP,NFS,SMTP等。
2、表示层
这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。
3、会话层
它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。
4、传输层
这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。
5、网络层
这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
6、数据链路层
它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。
7、物理层
OSI的物理层规范是有关传输介质的特性,这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。
‘陆’ OSI参考模型分哪几个层次各层次基本功能是什么
1、第7层应用层:OSI中的最高层。它为特定类型的网络应用程序提供对osi环境的访问。应用层决定进程间通信的性质,以满足用户的需求。
基本功能:应用层不仅提供应用过程所需的信息交换和远程操作,还充当应用过程的用户代理,完成信息交换所需的一些功能。
2、第6层表示层:主要用于处理两个通信系统之间交换信息的表示。
基本功能:为上层用户解决用户信息的语法问题。它包括数据格式交换、数据加解密、数据压缩和终端类型转换。
3、第5层会话层:在两个节点之间建立端到端的连接。它提供了终端系统应用程序之间的对话控制机制。该服务包括在全双工或半双工模式下建立连接,尽管可以在第4层中处理双工模式;会话层管理登录和注销过程。
基本功能:它专门管理两个用户和进程之间的对话。如果在某一时间只允许一个用户执行特定操作,则会话层协议管理这些操作,例如防止两个用户同时更新数据库中的同一组数据。
4、第4层传输层:传输层是网络体系结构中高低层之间的接口层。传输层不仅是单一的结构层,也是整个分析体系结构协议的核心。传输层为会话层用户提供端到端可靠、透明、优化的数据传输服务机制。
基本功能:它包括全双工或半双工、流控制和错误恢复服务;传输层将消息分成若干组,并在接收端重新组织它们。可以通过不同的连接将不同的分组发送到主机。这样,可以在不影响会话层的情况下获得更高的带宽。
当建立连接时,传输层可以请求服务质量,服务质量指定可接受的参数,例如误码率、延迟、安全性等。它还可以实现端到端的流量控制功能。
5、第3层网络层:该层通过寻址建立两个节点之间的连接,为源的传输层发送的数据包选择合适的路由和交换节点。并根据地址正确传输到目的地的传输层。
基本功能:它包括通过互连网络路由和中继数据;除了路由,网络层还负责建立和维护连接,控制网络拥塞,并在必要时生成计费信息。
6、第2层数据链路层:在这一层中,数据被框定,流控制被处理。屏蔽物理层,为网络层提供数据链路连接,并对可能出错的物理连接执行几乎无错误的数据传输(错误控制)。
基本功能:此层指定拓扑并提供硬件寻址。常用设备包括电桥和开关。
7、第1层物理层:在OSI参考模型的底部。常用设备包括网卡、集线器、中继器、调制解调器、网线、双绞线、同轴电缆。
基本功能:物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以实现比特流的透明传输。
(6)计算机网络传输层11讲扩展阅读:
OSI参考模型的历史:
在制定计算机网络标准方面,起着重大作用的两大国际组织是:国际电信联盟电信标准化部门,与国际标准化组织(iso)。尽管它们的工作领域不同,但随着科学技术的发展,通信和信息处理之间的界限变得模糊,这也成了国际电信联盟(itu)电信标准化司与ISO共同关注的领域。
1984年,ISO发布了着名的ISO/IEC 7498标准,定义了网络互连的七层框架,即开放系统互连参考模型。
‘柒’ 传输层只包括面向连接的数据报对吗
1. 传输层提供的服务
1.1 传输层的功能
传输层提供应用进程之间的逻辑通信(即端到端的通信)
与网络层的区别是,网络层提供的是主机之间的逻辑通信。
从网络层来说,通信的双方是两台主机,IP 数据报的首部给出了这两台主机的IP地址。
但“两台主机之间的通信”实际上是两台主机中的应用进程之间的通信,应用进程之间的通信又称端到端的逻辑通信。
这里“逻辑通信”的意思是:传输层之间的通信好像是沿水平方向传送数据启誉,但事实上这两个传输层之间并没有一条水平方向的物理连接。
复用和分用
复用是指发送方不同的应用进程都可使用同一个传输层协议传送数据;
分用是指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
注意:
传输层的复用分用功能与网络层的复用分用功能不同。
网络层的复用是指发送方不同协议的数据都可以封装成IP数据报发送出去,
网络层的分用是指接收方的网络层在剥宴贺去首部后把数据交付给相应的协议。
传输层还要对收到的报文进行差错检测(首部和数据部分)
网络层只检查IP数据报的首部,不检验数据部分是否出错。
提供两种不同的传输协议,即面向连接的TCP和无连接的UDP
网络层无法同时实现两种协议(即在网络层要么只提供面向连接的服务,如虚电路;要么只提供无连接服务,如数据报,而不可能在网络层同时存在这两种方式)。
1.2 传输层寻址与端口
端口是传输层服务访问点(TSAP),它在传输层的作用类似于IP地址在网络层的作用或MAC地址在数据链路层的作用,只不过IP地址和MAC地址标识的是主机,而端口标识的是主机中的应用进程。
数据链路层的SAP是MAC地址,网络层的SAP是IP地址,传输层的SAP是端口。
在协议栈层间的抽象的协议端口是软件端口,它与路由器或交换机上的硬件端口是完全不同的概念。
硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与传输实体进行层间交互的一种地址。
知名端口号
套接字
在网络中通过IP地址来标识和区别不同的主机,通过端口号来标识和区分一台主机中的不同应用进程。在网络中采用发送方和接收方的套接字(Socket)组合来识别端点。
1.3 无连接服务与面向连接服务
面向连接的传输控制协议TCP
传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等。
TCP主要适用于可靠性更重要的场合,如文件传输协议(FTP)、超文本传输协议(HTTP)、远程登录(TELNET)等。
无连接的用户数据报协议UDP
传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。
UDP的应用主要包括小文件传送协议(TFTP)、DNS、SNMP和实时传输协议(RTP)。
2. UDP协议
UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。
UDP的主要特点:
UDP是无连接的
UDP不会引入建立连接的时延。试想如果DNS运行在TCP而非UDP上,那么DNS的速度会慢很多。HTTP使用TCP而非UDP,是因为对于基于文本数据的Web网页来说,可靠性是至关重要的。
TCP需要在端系统中维护连接状态。此连接状态包括接收和发送缓存、拥塞控制参数和序号与确认号的参数。而UDP不维护连接状态,也不跟踪这些参数。
UDP使用最大努力交付,即不保证可靠交付。晌旁派
但这并不意味着应用对数据的要求是不可靠的,因此所有维护传输可靠性的工作需要用户在应用层来完成。应用实体可以根据应用的需求来灵活设计自己的可靠性机制。
UDP是面向报文的,适合一次性传输少量数据的网络应用。
既不合并,也不拆分,而是保留这些报文的边界。应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文。
UDP无拥塞控制,适合很多实时应用。
UDP首部开销小
TCP有20B的首部开销,而UDP仅有8B的开销。
2.1 UDP数据报
UDP首部格式
源端口。源端口号。在需要对方回信时选用,不需要时可用全0。
目的端口。目的端口号。这在终点交付报文时必须使用到。
长度。UDP数据报的长度(包括首部和数据),其最小值是8 (仅有首部)。
校验和。检测UDP数据报在传输中是否有错。有错就丢弃。该字段是可选的,当源主机不想计算校验和时,则直接令该字段为全0。
2.2 UDP校验
3. TCP协议
TCP协议特点
3.1 TCP报文段
TCP报文段的首部格式
TCP传送的数据单元称为报文段。一个TCP报文段分为TCP首部和TCP数据两部分,整个TCP报文段作为IP数据报的数据部分封装在IP数据报中
首部的前20B是固定的。TCP报文段的首部最短为20B,后面有4N字节是根据需要而增加的选项,通常长度为4B的整数倍。
TCP报文段既可以用来运载数据,又可以用来建立连接、释放连接和应答。
序号。在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号。
确认号字段。占4B,是期望收到对方的下一个报文段的数据的第一个字节的序号。若确认号为N,则表明到序号N - 1为止的所有数据都已正确收到。
数据偏移(即首部长度)。占4位,这里不是IP数据报分片的那个数据偏移,而是表示首部长度,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位是32位(以4B为计算单位)。因此当此字段的值为15时,达到TCP首部的最大长度60B。
保留字段。占6位,保留为今后使用,但目前应置为0,该字段可以忽略不计。
控制位
紧急位URG。URG = 1时,表明紧急指针字段有效。它告诉系统报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。但URG需要和紧急指针配套使用,即数据从第一个字节到紧急指针所指字节就是紧急数据。
确认位ACK。只有当ACK = 1时确认号字段才有效。当ACK=0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置1。
推送位PSH (Push)。 接收TCP收到PSH = 1的报文段,就尽快地交付给接收应用进程而不再等到整个缓存都填满后再向上交付。
复位位RST (Reset)。RST=1时,表明TCP连接中出现严重差错(如主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
同步位SYN。同步SYN= 1表示这是一个连接请求或连接接收报文。当SYN=1, ACK=0时,表明这是一个连接请求报文,对方若同意建立连接,则在响应报文中使用SYN=1, ACK=1。即SYN= 1表示这是一个连接请求或连接接收报文。
终止位FIN (Finish)。用来释放一个连接。FIN= 1表明此报文段的发送方的数据已发送完毕,并要求释放传输连接。
窗口字段。占2B。它指出现在允许对方发送的数据量,接收方的数据缓存空间是有限的,因此用窗口值作为接收方让发送方设置其发送窗口的依据,单位为字节。
例如,假设确认号是701,窗口字段是1000。这表明,从701号算起,发送此报文段的接收方方还有接收1000B数据(字节序号为701 ~1700)的接收缓存空间。
校验和。占2B。校验和字段检验的范围包括首部和数据两部分。在计算校验和时,和UDP一样,要在TCP报文段的前面加上12B的伪首部(只需将UDP伪首部的第4个字段,即协议字段的17改成6,其他的和UDP一样)。
紧急指针字段。占16 位,指出在本报文段中紧急数据共有多少字节(紧急数据放在本报文段数据的最前面)。
选项字段。长度可变。TCP最初只规定了一种选项,即最大报文段长度(Maximum SegmentSize,MSS)。MSS是TCP报文段中的数据字段的最大长度。窗口扩大、时间戳、选择确认
填充字段。这是为了使整个首部长度是4B的整数倍。填充0.
3.2 TCP连接管理
TCP是面向连接的协议,因此每个TCP连接都有三个阶段:连接建立、数据传送和连接释放。
TCP连接的管理就是使运输连接的建立和释放都能正常进行。
每条TCP连接通过通信两端的两个端点( 即两个套接字)确定。
在TCP连接建立的过程中,要解决以下三个问题:
要使每一方都能够确知对方的存在。
要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项、时间戳选项及服务质量等)。
能够对运输实体资源( 如缓存大小、连接表中的项目等)进行分配。
连接的建立 - - - 三次握手
seq为序号字段,标明本次报文段数据部分的第一个字节的序号
ack是确认号字段,告诉对方我接下来应该接收的数据是从字节序号ack开始的数据
ACK是确认位,0时确认号字段ack无效,1时确认号字段ack有效
SYN是同步位
TCP提供的是全双工通信,因此通信双方的应用进程在任何时候都能发送数据。
服务器端的资源是在完成第二次握手时分配的
而客户端的资源是在完成第三次握手时分配的,这就使得服务器易于受到SYN洪泛攻击。
SYN泛洪攻击
TCP连接释放----四次握手
TCP连接建立和释放的总结
连接建立。分为3步:
①SYN=1,seq=x。
②SYN=1,ACK=1,seq=y,ack=x+ 1。
③ACK=1,seq=x+1,ack=y+ 1。
释放连接。分为4步:
①FIN=1,seq= u
②ACK=1,seq=v,ack=u+ 1。
③FIN=1,ACK=1,seq=w,ack=u+ 1。
④ACK=1,seq=u+1,ack=w+ 1。
3.3 TCP可靠传输
序号
确认
重传
3.4 TCP流量控制
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,这称为接收窗口rwnd, 即调整TCP报文段首部中的“窗口”字段值,来限制发送方向网络注入报文的速率。
同时,发送方根据其对当前网络拥塞程序的估计而确定的窗口值,这称为拥塞窗口cwnd,其大小与网络的带宽和时延密切相关。
发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值。
传输层和数据链路层的流量控制的区别是:
传输层定义端到端用户之间的流量控制,数据链路层定义两个中间的相邻结点的流量控制。
另外,数据链路层的滑动窗口协议的窗口大小不能动态变化,传输层的则可以动态变化。
3.5 TCP拥塞控制
拥塞控制,是指防止过多的数据注入网络,保证网络中的路由器或链路不致过载。
出现拥塞时,端点并不了解到拥塞发生的细节,对通信连接的端点来说,拥塞往往表现为通信时延的增加。当然,拥塞控制和流量控制也有相似的地方,即它们都通过控制发送方发送数据的速率来达到控制效果。
拥塞控制与流量控制的区别
拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
流量控制往往是指点对点的通信量的控制,即接收端控制发送端,它所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收。
拥塞控制的4种算法:慢开始、拥塞避免、快重传、快恢复
慢开始与拥塞避免
慢开始算法
使用慢开始算法后,每经过一个传输轮次(即往返时延RTT),拥塞窗口cwnd就会加倍,即cwnd的大小指数式增长。这样,慢开始一直把拥塞窗口cwnd增大到一个规定的慢开始门限ssthresh(阈值),然后改用拥塞避免算法。
拥塞避免算法
拥塞避免算法的做法如下:发送端的拥塞窗口cwnd每经过一个往返时延RTT就增加一个MSS的大小,而不是加倍,使cwnd按线性规律缓慢增长(即加法增大),而当出现一次超时(网络拥塞)时,令慢开始门限ssthresh等于当前cwnd的一半(即乘法减小)。
根据cwnd的大小执行不同的算法,可归纳如下:
●当cwnd < ssthresh时,使用慢开始算法。
●当 cwnd > ssthresh时,停止使用慢开始算法而改用拥塞避免算法。
●当cwnd = sthresh时,既可使用慢开始算法,又可使用拥塞避免算法(通常做法)。
在慢开始和拥塞避免算法中使用了“乘法减小”和“加法增大”方法。
“乘法减小”是指不论是在慢开始阶段还是在拥塞避免阶段,只要出现一次超时(即很可能出现了网络拥塞),就把慢开始门限值ssthresh设置为当前拥塞窗口值的一半。网络频繁出现拥塞时,ssthresh 值就下降得很快,以大大减少注入网络的分组数。
“加法增大”是指执行拥塞避免算法后,在收到对所有报文段的确认后(即经过一个 RTT),就把拥塞窗口cwnd增加一个MSS大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。
快重传和快恢复
快重传
当发送方连续收到三个重复的ACK报文时,直接重传对方尚未收到的报文段,而不必等待那个报文段设置的重传计时器超时。
快恢复
发送端收到连续三个冗余ACK (即重复确认)时,执行“乘法减小”算法,把慢开始门限ssthresh 设置为出现拥塞时发送方cwnd的一半。
在流量控制中,发送方发送数据的量由接收方决定,而在拥塞控制中,则由发送方自己通过检测网络状况来决定。
注意: 发送方发送窗口的实际大小由流量控制和拥塞控制共同决定。
当发送方检测到超时的时候,就采用慢开始和拥塞避免;
当发送方接收到冗余ACK时,就采用快重传和快恢复。
【参考文章】
https://blog.csdn.net/weixin_43914604/article/details/104722679
计算机网络
本地期货分析软件免费下载,每天9点发布策略,12月19日免费开
正版期货软件
广告
网络层,传输层都提供了面向连接和无连接的服务方式
1.7W阅读·4评论·18点赞
2010年5月23日
滑动窗口:数据链路层与传输层
4011阅读·1评论·6点赞
2020年3月28日
计算机网络技术(三)——网络协议和体系结构
1114阅读·0评论·3点赞
2020年4月30日
传输层与数据链路层滑动窗口协议的异同
5363阅读·1评论·1点赞
2017年3月5日
计算机网络--传输层
282阅读·0评论·0点赞
2020年6月16日
计算机网络知识点总结
4416阅读·0评论·5点赞
2017年8月24日
本地组建600人期货交流群,每天9点发布策略,12月19日免费开户
期货交流平台
广告
数据链路层与传输层协议的区别
148阅读·0评论·0点赞
2021年11月21日
【计算机网络】传输层(四)—— TCP 可靠传输、流量控制、拥塞控制
1150阅读·0评论·2点赞
2022年8月12日
【计算机网络】传输层(一)—— 传输层概述
1247阅读·0评论·1点赞
2022年8月12日
计算机网络(二、数据链路层)
138阅读·0评论·0点赞
2020年3月3日
【计算机网络】传输层主要作用和功能简述
1.2W阅读·0评论·7点赞
2019年3月2日
网络 五 【进程与进程的通信:传输层】
1510阅读·0评论·2点赞
2021年3月12日
【学习笔记】计算机网络(三)传输层
353阅读·0评论·0点赞
2022年2月18日
计算机网络———传输层
935阅读·0评论·0点赞
2022年5月18日
计算机网络——传输层之概述
134阅读·0评论·0点赞
2021年8月10日
计算机网络(二十)传输层的作用
2212阅读·0评论·1点赞
2019年6月13日
传输层作用概述
2.7W阅读·2评论·12点赞
2018年1月16日
计算机网络-——传输层
789阅读·0评论·0点赞
2020年2月26日
计算机网络 - 传输层
2199阅读·0评论·0点赞
2021年10月22日
计算机网络之传输层
173阅读·0评论·0点赞
‘捌’ 计算机网络_运输层
在IP层看来,通信的两端是两个主机,IP数据报的首部明确的标志了这两个主机的IP地址。但是两个主机之间的通信这种说法还不够清楚,这是因为真正进行通信的实体是在主机中的 进程 ,是两个进程之间在交换数据。从而引出了运输层,从运输层的角度看来, 通信的真正端点并不是主机而是主机中的进程 (端到端的通信)。
在一个主机中经常有多个应用进程同时分别和另一个主机的多个应用进程通信。这就表明了运输层有一个很重要的功能, 复用和分用 ,应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。
“运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。
TCP/IP 的运输层有两个不同的协议:
由此可见两个计算机中的进程要相互通信,不仅要知道对方的IP地址,还要知道对方的端口号。
如果接收方UDP发现收到的报文中的目的端口号不正确(即不存在对应于该端口的号的应用进程),就丢弃该报文,并由网际控制报文协议ICMP发送 端口不可达 差错报文给发送方。
在计算检验和时,临时把 “伪首部” 和 UDP 用户数据报连接在一起得到一个临时的数据报,它不向下传递也不向上递交。 伪首部仅仅是为了计算检验和 。
UDP计算检验和的方法和IP数据报首部检验和方法相类似。但不同的是,IP数据报的检验和 只检验IP数据报的首部 ,但UDP的检验和是 把首部和数据部分一起检验
计算UDP检验和的例子:
在发送方,先把全0放入检验和字段,再把伪首部以及UDP用户数据报看成是许多16位的字串接起来。若UDP用户报的数据部分不是偶数个字节,则要填入一个全零字节(先不发送)。然后按照 二进制反码 计算出这些16位字的和。将此和的二进制反码写入 检验和字段 后,就发送这样的UDP数据报。在接收方,把收到的UDP数据报连通伪首部(以及可能填充全零字节)一起,按二进制反码求这些16位字的和。当无差错时其结果应为全1(原本的检验和为0,封装成数据报后再次相加的时候就多个检验和反码相加,所以无差错时结果为1)。
每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定,即:
TCP发送的报文段是交给IP层传输的。但IP层只提供尽最大努力服务,也就是说,TCP下面的网络所提供的是不可靠传输,因此,TCP必须采用适当的措施才能使得两个运输层之间的通信变得可靠。
在这样的理想传输条件下,不需要采取任何措施就能够实现可靠传输。然而实际的网络都不具备以上两个理想的条件。但我们可以使用一些可靠传输协议,当出现差错时让发送方重传出现差错的数据,同时在接收方来不及处理收到的数据时,及时告诉发送方适当的降低发送数据的速度,这样一来,本来是不可靠的传输信道就能够实现可靠传输。
停止等待协议的优点是简单,但缺点是 信道利用率 太低。
假定AB之间有一条直通的信道来传送分组
这里的TD是A发送分组所需要的时间(显然TD = 分组长度 / 数据速率)再假定TA是B发送确认分组所需要的时间(A和B处理分组的时间都忽略不计)那么A在经过TD+RTT+TA时间后才能发送下一个分组,这里的RTT是往返时间,因为只有TD是采用来传输有用的数据(这个数据包括了分组首部,如果可以知道传输更精确的数据的时间,可以计算的更精确),所有信道利用率为
为了提高传输效率,发送方可以不使用低效率的停止等待协议,而是采用 流水线传输 :就是发送方可以 连续的发送多个分组 ,不必每发完一个分组就停下来等待对方的确认。这样可使信道上一直有数据不间断地在传送。显然这种传输方式可以获得很高的信道利用率
当时使用流水线传输时,就要使用下面介绍的 连续ARQ协议 和 滑动窗口协议
滑动窗口协议比较复杂,是TCP协议的精髓所在,在这里先给出ARQ协议最基本的概念,但不涉及到许多细节问题。
位于发送窗口的分组都可以连续的发送出去,而不需要等待对方的确认,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
详细可以见P201
TCP虽然是面向字节流的,但是TCP传送的数据单元却是报文段(可以看上述TCP面向流的概念),而且TCP的 全部功能都体现在它的首部中各个字段 。
详解请见P206,注意图中的后沿,前沿
从下图可以看出来,要描述一个发送窗口的状态需要三个指针:P1,P2,P3
有很多信息见P208,这里不赘述
发送方的应用进程把字节流写入TCP的发送缓存,接收方的应用进程从TCP的接收缓存中读取字节流。下面进一步讨论前面讲的 窗口和缓存 的关系
发送缓存
发送窗口通常只是发送缓存的一部分,已被确认的数据应当从发送缓存中删除,因此 发送缓存和发送窗口的后沿是重合 的。发送应用程序最后写入发送缓存的字节减去最后被确认的字节,就是还保留在发送缓存中被写入的字节。发送应用程序必须控制写入缓存的速率,不能太快 ,否则发送缓存就会没有存放数据的空间。
如果收到的分组被检测出有差错,则要丢弃。如果接收应用程序来不及读取收到的数据,接收缓存最终就会被填满,使接收窗口减少到零。反之,如果接收应用程序能够及时从接收缓存中读取收到的数据,接收窗口就可以增大,但最大不能超过接收缓存的大小。
TCP才用了一种自适应算法,它记录一个报文段发出的时间,以及收到相应的确认的时间。这两个时间之差就是报文段的往返时间RTT。
TCP 保留了 RTT 的一个 加权平均往返时间 RTTs (这又称为平滑(smooth)的往返时间,因为是加权平均,所以是平滑的)。
第一次测量到 RTT 样本时, RTTS 值就取为所测量到的 RTT 样本值 。以后每测量到一个新的 RTT 样本,就按下式重新计算一次 RTTS:
显然,RTO 应略大于上面得出的加权平均往返时间 RTTs
RFC 2988 建议使用下式计算 RTO:
RTTD 是 RTT 的 偏差的 加权平均值,他与RTTs和新的RTT样本之差有关。
RFC 2988 建议这样计算 RTTD。第一次测量时,RTTD 值取为测量到的 RTT 样本值的一半。在以后的测量中,则使用下式计算加权平均的 RTTD:
β是个小于 1 的系数,其推荐值是 1/4,即 0.25。
为了解决上面那个问题,Karn提出了一个算法
在计算平均往返时间 RTT 时,只要**报文段重传了,就不采用其往返时间样本。这样得出的加权平均平均往返时间 RTTS 和超时重传时间 RTO 就较准确。 **
但是,这又有了新的问题、设想出现这样的情况:报文段的时延突然增大了很多。因此在原来得出的重传时间内,不会收到确认报文段。于是就重传报文段。但根据Karn算法,不考虑重传的报文段的往返时间样本。这样,超时重传时间就无法更新。
报文段每重传一次,就把 RTO 增大一些:
系数 γ 的典型值是 2 。
当不再发生报文段的重传时,才根据报文段的往返时延更新平均往返时延 RTT 和超时重传时间 RTO 的数值。
实践证明,这种策略较为合理。
接收方收到了和前面的字节流 不连续 *的两个字节块(只是未按序号,它是无差错的)
如果这些字节的序号都在接收窗口之内,那么接收方就先收下这些数据,但要把这些信息准确地告诉发送方,使发送方不要再重复发送这些已收到的数据。
和前后字节不连续的每一个字节块都有两个边界:左边界和右边界。图中用四个指针标记这些边界。第一个字节块的左边界 L1 = 1501,但右边界 R1 = 3001。左边界指出字节块的第一个字节的序号,但右边界减 1 才是字节块中的最后一个序号。第二个字节块的左边界 L2 = 3501,而右边界 R2 = 4501。
详见P211
一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,
接收方就可能来不及接收,这就会造成数据的丢失。
流量控制(flow control)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞 。
利用 滑动窗口机制 可以很方便地在 TCP 连接上实现流量控制。
A 向 B 发送数据。在连接建立时,�B 告诉 A:“我的接收窗口 rwnd = 400(字节)”。 看下TCP首部窗口字段的用处
接收方的主机B一共进行了3次流量控制(蓝线)
考虑一种情况,B向A发送了零窗口的报文段后不久,B的接收缓存又有了一些存储空间。于是B向A发送了rwnd = 400的报文段,然而这个报文段在传输过程中丢失了。A一直等收到B发送非零窗口的通知,B也一直等A发送数据来,就形成了 死锁 。下面的 持续计时器 就是为了打破死锁僵局的
应用进程把数据传送到TCP发送缓存后,剩下的发送任务就由TCP来控制了。可以用不同的机制来控制 TCP 报文段的发送时机:
至于如何控制发送的 时机 详见P213
在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生 拥塞(congestion)
出现资源拥塞的条件: 对资源需求的 总和 > 可用资源
若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。
解决拥塞的要点是 平衡 ,要让整个系统的性能想匹配(P214)。
横坐标为 提供的负载 ,代表单位时间内输入给网络的分组的数目(也叫作输入负载或网络负载),纵坐标是 吞吐量 ,代表单位时间内从网络输出的分组数目。
由于缺少缓存空间而被丢弃的分组的百分数,平均队列长度,超时重传的分组数,平均分组时延,分组时延的标准差等,这些指标的上升都标志着拥塞的增长。
方便起见,我们用 报文段的个数 作为窗口大小的单位
慢开始门限 ssthresh 的用法如下:
拥塞避免算法的思路是让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律缓慢增长 ,比慢开始算法的拥塞窗口增长速率缓慢很多。
网络出现拥塞时
当 TCP 连接进行初始化时,将拥塞窗口置为 1。图中的窗口单位不使用字节而使用 报文段 。
慢开始门限的初始值设置为 16 个报文段,即 ssthresh = 16。
发送端的发送窗口不能超过拥塞窗口 cwnd 和接收端窗口 rwnd 中的最小值。我们假定接收端窗口足够大,因此现在发送窗口的数值等于拥塞窗口的数值。
下面的执行步骤就是按照折现上的点的顺序
‘玖’ TCP/IP网络模型从上至下哪四层组成各层主要功能是什么
1、组成:应用层、传输层、网络层、链路层
2、各层主要功能:
应用层:负责向用户提供应用程序,比如HTTP、FTP、Telnet、DNS、SMTP等。
传输层:负责对报文进行分组和重组,并以TCP或UDP协议格式封装报文。
网络层:负责路由以及把分组报文发送给目标网络或主机。
链路层:负责封装和解封装IP报文,发送和接受ARP/RARP报文等。
(9)计算机网络传输层11讲扩展阅读
OSI是开放系统互连参考模型 (Open System Interconnect 简称OSI),是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。
它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
而TCP/IP简单来说就是OSI的简化版,把OSI的七层简化为了四层。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。
协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。