计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。发展阶段如下:
第一阶段 (以单计算机为中心的联机终端系统)
特点:计算机网络主要是计算机技术和信息技术相结合的产物,它从20世纪50年代起神枣让步至今已经有50多年的发展历程,在20世纪50年代以前,因为计算机主机相当昂贵,而通信线路和通信设备相对便宜,为了共享计算机主机资源和进行信息的综合处理,形成了第一代的以单主机为中心的联机终端系统。
在第一代计算机网络中,因为所有的终端共享主机资源,因此终端到主机都单独占一条线路,所以使得线路利用率低,而且因为主机既要负责通信又要负责数据处理,因此主机的效率低,而且这种网络组织形式是集中控制形式,所以可靠性较低,如果主机出问题,所有终端都被迫停止工作。
面对这样的情况,当时人们提出这样的改进方法,就是在远程终端聚集的地方设置一个终端集中器,把所有的终端聚集到终端集中器,而且终端到集中器之间是低速线路,而终端到主机是高速线路,这样使得主机只要负责数据处理而不要负责通信工作,大大提高了主机的利用率。
计算机网络的应用包括但不限于以下几个方面:
1、互联网:将全球范围内的计算机与设备连接起来,提供各种在线服务,例如电子邮件、即时通讯、社交媒体、在线购物等。
2、局域网(LAN)和广域网(WAN):用于连接组织内部的计算机和设备,使得员工可以共享资源、协同工作。
3、无线网络:包括WiFi、蓝牙、移动通信网络等,使得人们可以在移动设备上访问互联网,并进行各种在线活动。
4、云计算:通过网络连接远程服务器,提供各种计算和存储资源,为用户提供各种在线服务。
5、物联网:通过网络连接各种智能设备,例如传感器、智能家居、智能汽车等,实现设备之间的互相通信和控制。
6、VPN(虚拟私人网络):通过加密技术建立安全的网络连接,实现远程访问或者远程办公等功能。
B. 计算机网络的基本组成部分有哪些
计算机网络的基本组成部分包括以下几个方面:
硬件设备:计算机网络中的硬件设备包括计算机、服务器、路由器、交换机、集线器、网卡等,这些设备可以相互连接形成网络拓扑结构,使得数据能够在网络中进行传输。
软件协议:计算机网络中的软件协议用于规范数据在网络中的传输方式和通信规则。常见的协议包括TCP/IP、HTTP、FTP、SMTP、POP3等。这些协议规定了数据传输的格式、数据包的分组、路由选择、差错检测和纠错等方面的细节,以确保网络中的数据能够安全、高效地传输。
网络服务:计算机网络提供了多种网络服务,如Web服务、电子邮件服务、文件传输服务、远程登录服务、多媒体传输服务等,使得用户能够通过网络进行数据交换、信息传递和资源共享。
网络协议和安全技术:为了保障网络安全,计算机网络需要采用多种网络协议和安全技术,如IPSec、SSL/TLS、防火墙、入侵检测系统等,以保护网络的安全和数旁陪据的隐私。
网络管理和监控:计算机网络需要进行管理和监控,以确保网络的正常运行。网络管理员需要通过网络管理工具来管理网络中的设备、资源、用户、安全和性能等方面运亮蠢,以便及时排除故障,提高网络的可靠性和性能。
综上所述键圆,计算机网络的基本组成部分包括硬件设备、软件协议、网络服务、网络协议和安全技术以及网络管理和监控等方面,它们共同构成了计算机网络的基础架构和功能体系。
-------FunNet超有趣学网络
C. 什么是计算机网络
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
另外,从逻辑功能上看,计算机网络是以传输信息为基础目的,用通信线路将多个计算机连接起来的计算机系统的集合,一个计算机网络组成包括传输介质和通信设备。
从用户角度看,计算机网络是这样定义的:存在着一个能为用户自动管理的网络操作系统。由它调用完成用户所调用的资源,而整个网络像一个大的计算机系统一样,对用户是透明的。
发展历程
中国计算机网络设备制造行业是改革开放后成长起来的,早期与世界先进水平存在巨大差距;但受益于计算机网络设备行业生产技术不断提高以及下游需求市场不断扩大,我国计算机网络设备制造行业发展十分迅速。
近两年,随着我国国民经济的快速发展以及国际金融危机的逐渐消退,计算机网络设备制造行业获得良好发展机遇,中国已成为全球计算机网络设备制造行业重点发展市场。
D. 计算机网络的含义是什么
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
计算机网络的分类与一般的事物分类方法一样,可以按事物所具有的不同性质特点分类。计算机网络通俗地讲就是由多台计算机通过传输介质和软件物理连接在一起组成的。总的来说计算机网络的组成基本上包括:计算机、网络操作系统、传输介质以及相应的应用软件四部分。
(4)第06讲计算机网络扩展阅读:
虽然网络类型的划分标准各种各样,但是从地理范围划分是一种大家都认可的通用网络划分标准。按这种标准可以把各种网络类型划分为局域网、城域网、广域网和互联网四种。局域网一般来说只能是一个较小区域内,城域网是不同地区的网络互联,不过在此要说明的一点就是这里的网络划分并没有严格意义上地理范围的区分,只能是一个定性的概念。
E. 计算机网络的常见的6种拓扑结构
星型拓扑:以一个电脑为中心,向四周分散开。这个结构简单,扩展性大,传输时间少。但是当中心部分出现错误后,全部的网络都会瘫痪。
总线拓扑:所有的电脑网络都连在一条线上。这个结构所需要的电线短,电线少;但是当这个结构出现故障后很难找到故障问题。
环形拓扑:所有的网络形成一个环形结构。这个结构可以节约设备,但是当其中网络出现问题时候不容易找到故障的设备。
树形拓扑:以一个中心开始像下面发展,像一棵树的形状。这样的结构扩展性强,分支多,但是当顶端网络出现错误的时候整个网络都容易瘫痪。
网性拓扑:所有的网络连接构成一个网状。这个结构应用广泛,利用性强,而且当一个网络出现错误的时候其他结构仍然可以使用,但是这个结构复杂,成本高。
混合式拓扑:是以上的拓扑结构混合而成。
F. 计算机网络是什么
什么是计算机网络?
01、什么是计算机网络?
计算机网络是指将有独立功能的多台计算机,通过通信设备线路连接起来,在网络软件的支持下,实现彼此之间资源共享和数据通信的整个系统。
02、计算机网络的基本功能是什么?
计算机网络的基本功能是数据通信和资源共享。
03、资源共享主要是指哪些资源?
资源共享包括硬件、软件和数据资源的共享。
04、计算机网络根据其覆盖范围可分为哪三类?
计算机网络根据其覆盖范围可分为局域网、城域网和广域网。
05、学校的校园网应该属于(4)所说的哪一类?
校园网属于局域网。
06、基于服务器的网络与对等网有何区别?
基于服务器的网络中由服务器来管理网络,并为网络用户提供共享服务,而在对等网中没有专用服务器,网络中的每台计算机即作为一台非专业服务器管理自己的资源和用户,为其他计算机提供软硬件资源的共享服务。同时又可作为客户机共享其他计算机的资源。
07、服务器在网络中的作用是什么?
服务器在网络中的主要作用是管理网络,为网络用户提供共享资源。
08、Internet可以为我们提供哪些服务?
Internet可以为我们提供多种服务如,电子邮件、文件传输、信息查询、网上新闻、各种论坛和电子商务等。
09、什么是因特网上的IP地址?
IP地址是计算机在因特网上的惟一标识。
10、IP供址通常是如何表示的?
IP地址由32位二进制数组成,写成4组十进制数,每组之间有圆点隔开。
计算机网络到底是什么?
计算机网络,是指地理位置不同,具有独立功能的计算机及周边设备,通过在网络操作系统中连接的通信线路,管理和协调网络管理软件和网络通信协议,实现计算机系统的资源共享和信息传输计算机系统。
功能:信息的传输与共享
使用领域:互联网
类 别:网络操作系统
计算机网络的分类与的一般的事物分类方法一样,可以按事物的所具有的不同性质特点即事物的属性分类。计算机网络通俗地讲就是由多台计算机(或其它计算机网络设备)通过传输介质和软件物理(或逻辑)连接在一起组成的。总的来说计算机网络的组成基本上包括:计算机、网络操作系统、传输介质(可以是有形的,也可以是无形的,如无线网络的传输介质就是空间)以及相应的应用软件四部分。
计算机网络是什么?
简单地说,计算机网络就是通过电缆、电话线或无线通讯将两台以上的计算机互连起来的 *** 。
按计算机联网的地理位置划分,网络一般有两大类:广域网和局域网。
Internet网(因特网,许多人也称其为"互联网")是最典型的广域网,它们通常连接着范围非常巨大的区域。我国比较着名的中国科技信息网(NCFC)、中国公用计算机网(CHINANET)、中国教育科研网(CERNET)和中国公用经济信息网(CHINAGBN)都属于广域网。
局域网是目前应用最为广泛的网络,例如:你所在的机关电大计算机网络就是一个局域网,我们通常也把它称之为校园网。局域网通常也提供接口与广域网相连。
1、什么是计算机网络?
1、计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
关于计算机网络的最简单定义是:一些相互连接的、以共享资源为目的的、自治的计算机的 *** [TANE96]。
最简单的计算机网络就是只有两台计算机和连接它们的一条链路,即两个节点和一条链路。因为没有第三台计算机,因此不存在交换的问题。
最庞大的计算机网络就是因特网。它由非常多的计算机网络通过许多路由器互联而成。因此因特网也称为“网络的网络”。
2、网上学习优势要大一些,因为计算机网络就是以共享资源为目的的,在网上学习可以得到比单机上更多的内容。
3、所谓无线网络,既包括允许用户建立远距离无线连接的全球语音和数据网络,绩包括为近距离无线连接进行优化的红外线技术及射频技术,与有线网络的用途十分类似,最大的不同在于传输媒介的不同,利用无线电技术取代网线,可以和有线网络互为备份。
4、计算机网络确实给人们带来了很大的方便,确保有用的资源为你所用即可
计算机网络属于什么通信
常见的网络通信协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。
TCP/IP协议
TCP/IP(Tran *** ission Control Protocol/Internet Protocol,传输控制协议/网际协议) 协议具有很强的灵活性,支持任意规模的网络,几乎可连接所有服务器和工作站。在使用TCP/IP协议时需要进行复杂的设置,每个结点至少需要一个“IP地址”、一个“子网掩码”、一个“默认网关”、一个“主机名”,对于一些初学者来说使用不太方便。[1]
IPX/SPX及其兼容协议
IPX/SPX(Internetwork Packet Exchange/Sequences Packet Exchange,网际包交换/顺序包交换)是Novell公司的通信协议集。IPX/SPX具有强大的路由功能,适合于大型网络使用。当用户端接入NetWare服务器时,IPX/SPX及其兼容协议是最好的选择。但在非Novell网络环境中,IPX/SPX一般不使用。
NetBEUI协议
NetBEUI(NetBios Enhanced User Interface , NetBios增强用户接口)协议是一种短小精悍、通信效率高的广播型协议,安装后不需要进行设置,特别适合于在“网络邻居”传送数
TCP/IP分层协议
TCP/IP参考模型是首先由ARPANET所使用的网络体系结构,共分为四层:网络接口层(又称链路层)、网络层(又称互联层)、传输层和应用层,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
每一层对应的协议有:
网络接口层协议:Ethernet 802.3、Token Ring 802.5、X.25、Frame relay、HDLC、PPP ATM等。
网络层协议:IP(Internet Protocol,英特网协议)、ICMP(Internet Control Message Protocol,控制报文协议)、ARP(Address Resolution Protocol,地址转换协议)、RARP(Reverse ARP,反向地址转换协议)。
传输层协议: TCP(Tran *** ission Control Protocol,传输控制协议)和UDP(User Datagram protocol,用户数据报协议)。
应用层协议:FTP(File Transfer Protocol,文件传输协议)、TELNET(用户远程登录服务协议)、DNS(Domain Name Service,是域名解析服务)、SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)、NFS(Network File System,网络文件系统)、HTTP(Hypertext Transfer Protocol,超文本传输协议)。
计算机网络的协议是什么?
刚才说过网络体系结构的关键要素之一就是网络协议。而所谓协议(Protocol)就是对数据格式和计算机之间交换数据时必须遵守的规则的正式描述,它的作用和普通话的作用如出一辙。依据网络的不同通常使用Ethernet(以太网)、NetBEUI、IPX/SPX以及TCP/IP协议。Ethernet是总线型协议中最常见的网络低层协议,安装容易且造价便宜;而NetBEUI可以说是专为小型局域网设计的网络协议。对那些无需跨经路由器与大型主机通信的小型局域网,安装NetBEUI协议就足够了,但如果需要路由到另外的局域网,就必须安装IPX/SPX或TCP/IP协议。前者几乎成了Novell网的代名词,而后者就被着名的Internet网所采用。
计算机网络应用要学什么?
【热心相助】
您好!您报的计算机网络应用5年,应当是大专吧?专业相同专业方向可以不同。
计算机网络应用专业的教学计划设置如下:
(1)公共课、人文社科基础、理科学科基础可以适当参考其他院校的课程设置,其中重点考虑学分、学时的比例,我们认为应该加强人文社科基础。
作为工程技术人员,因为在以后的职业经历中,写专业报告、科技文章、学术交流等都需要具有较强的文字能力,所以在公共课程阶段应加强语文基本能力和语文工程应用能力的学习。
(2)专业基础课程和实践:C语言与C++、C 语言课程设计、电路分析及实习、模拟电子技术及实习、数字逻辑及实习、计算机组成原理及综合实习、数据结构及课程设计、微机原理与接口技术及课程设计、计算机概论、操作系统及课程设计、数据库原理与应用及课程设计、专业英语等。
其中《c语言与C++》课程作为专业基础中恭基础,分两个学期修完,第一个学期完成基础C的学习,第二个学期进行C++的深入学习,为以后的专业学习打下扎实的基础。通过以上课程的学习和实践,培养学生的计算机软硬件角度的思维方式和基本的动手能力。
(3)专业课程和实践:INTERNET技术及课程设计、计算机网络及课程设计、WEB数据库技术及课程设计、网络应用与开发与课程设计、网络与信息安全、路由与交换技术及课程设计等。
以上课程之间和专业基础课程之间保持了课程内容的连贯性和知识深度的发展,通过相应的实践环节,加强专业能力训练。
专业任选课程:软件工程、多媒体技术、程序设计方法学、电子商务技术、密钥学、编译原理、语言程序设计、分布式计算技术、并行式计算技术等。
计算机网络的概念是什么?
利用通信线路把分散的计算机连接起来的这样一种组织形式称为计算机网络。最简单的网络可以是两台计算机的互联,更多见的则是一个局部区域甚至是全球范围的计算机互联。因此,对计算机网络更为确切的定义是:一个互联的、自主的计算机 *** 。互联是指用一定的通信线路将地理位置不同的、分散的多台计算机连接起来;自主是指网络中的每一台计算机都是平等的、独立的,它们福间没有明显的主次之分
G. 计算机网络主要由哪三部分组成
计算机网络主要由计算机系统、数据通信系统、网络软件及协议三大部分组成。
计算机网络通俗地讲就是由多台计算机(或其它计算机网络设备)通过传输介质和软件物理(或逻辑)连接在一起组成的。总的来说计算机网络的组成基本上包括:计算机、网络操作系统、传输介质(可以是有形的,也可以是无形的,如无线网络的传输介质就是空间)以及相应的应用软件四部分。
(7)第06讲计算机网络扩展阅读:
计算机网络也称计算机通信网。关于计算机网络的最简单定义是:一些相互连接的、以共享资源为目的的、自治的计算机的集合。
另外,从逻辑功能上看,计算机网络是以传输信息为基础目的,用通信线路将多个计算机连接起来的计算机系统的集合,一个计算机网络组成包括传输介质和通信设备。
从用户角度看,计算机网络是这样定义的:存在着一个能为用户自动管理的网络操作系统。由它调用完成用户所调用的资源,而整个网络像一个大的计算机系统一样,对用户是透明的。
一个比较通用的定义是:利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同的形式连接起来,以功能完善的网络软件及协议实现资源共享和信息传递的系统。
从整体上来说计算机网络就是把分布在不同地理区域的计算机与专门的外部设备用通信线路互联成一个规模大、功能强的系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。简单来说,计算机网络就是由通信线路互相连接的许多自主工作的计算机构成的集合体。
H. [计算机网络之六] 传输层
传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最底层。
从传输层的角度,通信的真正端点并不是主机而是主机中的进程。
传输层有 分用 和 复用 的功能。 “复用” 是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据, “分用” 是指接收方的运输层在剥去报文的首部后能够把这些数据正确交付目的应用进程。
网络层和运输层有明显的区别,网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
知名端口号 :0~1023
登记端口号 :1024~49151
客户端短暂端口号 :49152~65535
① 无连接。 发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。
② 尽最大努力交付。 即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
③ 面向报文的。 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界,UDP 一次交付一个完整的报文。
用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段很简单,只有 8 个字节,由四个字段组成,每个字段的长度都是两个字节。各字段意义如下:
① 源端口 在需要对方回信时选用。不需要时可用全0。
② 目的端口 目的端口号。这在终点交付报文时必须使用。
③ 长度 用户数据报的长度,最小值为 8 (仅有首部)。
④ 检验和 检测用户数据报在传输中是否有错。有错就丢弃。
用户数据报首部检验和的计算和校验都要计算出一个伪首部。
① 面向连接。
应用程序在使用 TCP 协议之前,必须先建立 TCP 连接;传送数据完毕后,必须释放已经建立的 TCP 连接。类似于打电话:通话前要先拨号建立连接,通话结束后要挂机释放连接。
② 一对一。
TCP 连接只能是点对点的(一对一)。
③ 可靠交付。
通过 TCP 连接传送的数据,无差错、不丢失、不重复,并且按序到达。
④ 全双工通信。
通信双方的应用进程在任何时候都能发送和接收数据,TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。
⑤ 面向字节流。
TCP 中的 “流” 指的是流入到进程或从进程流出的字节序列。
“面向字节流” 的含义:虽然应用程序和 TCP 的交互式一次一个数据块(大小不等),但 TCP 把应用程序交下来的数据仅仅看成是一连串无结构的字节流。TCP 并不知道所传送的字节流的含义。TCP 不保证接收方应用程序锁收到的数据块和发送方应用程序所发出的数据块具有对应的大小关系。但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样,当然接收方的应用程序必须有能力识别收到的字节流,把它还原成有意义的应用层数据。
TCP 连接是协议软件提供的一种抽象,每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定,即:
TCP 连接 ::= {socket1, socket2} = {(IP1: port1), (IP2: port2)}
IP1 和 IP2 分别是两个端点主机的 IP 地址,port1 和 port2 分别是两端端点主机中的端口号。
网络只能提供最大努力的服务,是不可靠的,因此 TCP 必须采用适当的措施才能使得两个运输层之间的通信变得可靠。当出现差错时让发送方重传出现差错的数据,同时在接收方来不及处理收到的数据时,及时告知发送方适当降低发送数据的速度,这样就可以在不可靠的传输信道实现可靠传输。
ARQ(Auto Repeat-reQuest):自动重传请求。
发送方每发送完一个分组就停止发送,等待接收方确认,在收到确认后再发送下一个分组。
A 是发送方,B 是接收方。
A 每发送一个分组后,等待 B 对该分组的确认后,再接着发送下一个分组。
【发送方】A 发送的分组在传输过程中出错,可能是丢失了,也可能是分组受到干扰出错了
【接收方】这时 B 直接丢弃分组,什么也不做(也不通知 A 受到的分组有差错)。
【解决方案】发送方在每发送完一个分组时设置一个 超时计数器 ,只要超过一段时间仍然没有接收到确认,就认为刚才发送的分组丢失了,因而重传前面发送过的分组,这叫 超时重传 。反之在超时计时器到期之前收到了相应的确认,就撤销该超时计时器。
第一,A 在发送完一个分组后, 必须暂时保留已发送的分组的副本 (在发生超时重传时使用)。只有在收到相应的确认后才能清楚暂时保留的分组副本。
第二,分组和确认分组都必须进行 编号 。这样才能明确是哪一个发送出去的分组受到了确认,而哪一个分组还没有收到确认。
第三,超时计时器设置的 重传时间应当比数据在分组传输的平均往返时间更长一些 。
【发送方】超时重传时间内没有收到确认报文,无法确认是发送出错、丢失,还是接收方的确认丢失,超时计时器到期后就要重传。
【接收方】丢弃收到的重复分组,不向上层交付;向发送方发送确认。
【发送方】收下迟到的确认,并且丢弃
发送方大部分时间都在等待确认,信道的利用率低
使用流水线的 ARQ 可以提高信道利用率
【发送方】维持一个发送窗口,位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。
回退N帧协议 :如果发送方发送了多个分组,但中间的某个分组丢失了,这时接收方只能对丢失分组之前的分组发出确认,而发送方无法知道丢失分组及后面分组的接收情况,只好把丢失分组及后面的分组重传一次,这叫 Go-back-N ,表示需要再退回来重传已发送过的 N 个分组。
前面 20 个字节固定,因此 TCP 首部最小长度是 20 字节。
TCP 的滑动窗口以字节为单位,窗口后沿的部分表示已发送且已收到通知,窗口里的序号表示允许发送的序号,窗口前沿之前的数据暂时不允许发送,需要等待收到接收方的确认后前沿往前移才可发送。
描述一个发送窗口需要三个指针:P1、P2 和 P3,如图所示:
小于 P1 的是已发送并已收到确认的部分,而大于 P3 的是不允许发送的部分。
P3 - P1 = A 的发送窗口
P2 - P1 = 已发送但尚未收到确认的字节数
P3 - P2 = 允许发送但当前尚未发送的字节数(又称为 可用窗口 或 有效窗口 )
接收方 B 接收窗口大小为20,因为未收到 31 的数据,即使已收到后面的序号 32、33 的数据,返回的确认号仍然是 31。
现在接收方收到了 31、32、33,并返回确认号 33,接收窗口往前滑动 3 个序号,发送方接收到确认,发送窗口也向前滑动 3 个序号大小,现在 A 可以发送序号 51~53 的数据了。
当发送方将发送窗口内的数据都发送出去,但是接收方的确认可能由于网络拥塞滞留,这时发送方发送窗口已满,可用窗口为 0,只能等待接收方的确认报文到达。
TCP 为了保证可靠传输,要求必须受到对已发送报文的确认,如果超过一定时间未受到确认报文,则重传已发送的报文。这个时间就叫 超时重传时间 ,很明显超时重传时间的大小设置应该更贴近网络的实际情况,如果网络状况好,就设短一点,否则使网络的空闲时间增大,降低了传输效率;网络差就设长一点,否则会引起很多不必要的重传,使网络负荷增大。
TCP 采用了一种自适应的算法:
RTT(报文段的往返时间)、RTTs(加权平均往返时间),RTTs 的计算公式:
RTTd(RTT 的偏差的加权平均值)、RTO(RetransmissionTime-Out 超时重传时间):
【场景】TCP 的接收方在接收对方发送过来的数据字节流的序号不连续,形成一些不连续的字节块,如果简单按照回退N帧协议处理,意味着要重传第一个未收到的序号数据块及之后的数据,如果能通知发送方已收到了哪些数据(选择确认),就可以让发送方只发送接收方未收到的数据。
流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。
当发送方收到接收方通知,将窗口缩小为 0 时,发送方将暂时不能发送数据了,必须等接收方通知更新接收窗口大小,但是这个通知又有可能丢失,导致发送方没收到通知。
为了避免双方互相等待死锁,TCP 为每个链接设有一个 持续计时器 ,只要 TCP 连接的一方收到对方的零窗口通知,就启动持续计时器。若持续计时器设置的时间到期,就发送一个零窗口 探测报文段 (仅携带 1 字节的数据),而对方就在确认这个探测报文段时给出了现在的窗口值。如果窗口仍然是零,那么受到这个报文段的一方就重新设置持续计时器;如果窗口不是零,那么死锁的僵局就可以打破了。
【优点】提高网络利用率
【缺点】可能会发生某种程度的延迟
【场景】接收数据的主机如果每次都立刻回复确认应答的话,可能会返回一个较小的窗口,因为接收方刚接收完数,缓冲区已满。
【糊涂窗口综合征问题】
TCP 接收方缓存已满,而交互式的应用进程一次只从接收缓存中读取 1 个字节(这样就使接收缓存空间仅腾出 1 个字节),然后向发送方发送确认,并把窗口设置为 1 个字节(但发送的数据报是 40 字节长,TCP 首部 + IP 数据报首部)。接着,发送方又发来 1 个字节的数据(注意发送方发送的 IP 数据报是 41 字节长)。接收方发回确认,仍然将窗口设置为 1 个字节。这样进行下去,使网络的效率很低。
TCP 文件传输中,就采用了两个数据段返回一次确认应答,并且等待一定时间后没有其他数据包到达时也依然发送确认应答。
当对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种情况就叫做 拥塞 。
慢开始(slow-start)、拥塞避免(congestion avoidance)、快重传(fast retransmit)和快恢复(fast recovery)。
【算法思路】
当主机开始发送数据时,由于并不清楚网络的负荷情况,所以如果立即把大量数据字节注入网络,那么就有可能引起网络发生拥塞。较好的方法是先探测一下,即 由小到大逐渐增大发送窗口 ,也就是说, 由小到大逐渐增大拥塞窗口数值 。
【处理过程】
慢开始门限值 ssthresh 决定了拥塞窗口达到多大时要执行什么算法。
① 当 cwnd < ssthresh 时,使用慢开始算法;
② 当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法;
③ 当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。
在拥塞窗口 cwnd 达到门限值之前,发送方每一轮次收到确认应答后,cwnd 就增大为原来的两倍;达到门限值后,执行拥塞避免算法。
PS. 慢开始只是表示初始发送数据少,不代表发送速率增长速度慢,实际上是指数级增长非常快。
【算法思路】
让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是像慢开始阶段那样加倍增长。拥塞避免阶段有 “加法增大” 的特点,按线性规律缓慢增长,使网络比较不容易出现拥塞 。
【处理过程】
在执行拥塞避免算法阶段,当网络出现超时时,发送方判断为网络拥塞,调整门限值为当前拥塞窗口的一半,即 ssthresh = cwnd / 2,同时拥塞窗口重置为 1,即 cwnd = 1,进入慢开始阶段。
【算法原理】
① 快重传
【场景】有时,个别报文段会在网络中丢失,但实际上网络并未发生拥塞。如果发送方迟迟收不到确认,就会产生超时,就会误认为网络发生了拥塞,导致发送方错误地启动慢开始,把拥塞窗口 cwnd 又设置为 1,因而降低了传输效率。
【方案】接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认,即使收到了失序的报文段也要立即发出对已收到的报文段的重复确认,当发送方 一连收到 3 个重复确认 ,就知道接收方确实没有收到某个报文段,因而应当 立即进行重传 。
② 快恢复:
发送方知道只是丢失了个别的报文段,于是不启动慢开始,而是执行快恢复算法,调整发送方门限值 ssthresh = cwnd / 2,同时设置拥塞窗口 cwnd = ssthresh = 8,并开始执行拥塞避免算法。
拥塞控制的流程如下:
拥塞窗口 cwnd,接收方窗口 rwnd, 发送方发送窗口的上限值 = Min[rwnd, cwnd] 。
① 当 rwnd < cwnd,接收方的接收能力限制发送方窗口大小;
② 当 cwnd < rwnd,网络的拥塞程度限制发送方窗口大小。
【问题背景】
路由器采取分组丢弃策略,即按照 先进先出(FIFO) 规则处理分组,当队列已满时,则丢弃后面到达的分组,这叫 尾部丢弃策略 。
丢失的分组会导致发送方出现超时重传,发送方转而执行慢开始算法,不同分组属于不同 TCP 连接,导致很多 TCP 同时进入慢开始状态,这种现象称为 全局同步 。
【解决方案】
主动队列管理 AQM:不等到路由器的队列长度已经达到最大值时才不得不丢弃后面到达的分组,而是在队列长度达到某个警惕值时就主动丢弃到达的分组,这样就提醒了发送方放慢发送的速率,因而有可能使网络拥塞的程度减轻,甚至不出现网络拥塞。
TCP 是面向连接的协议,运输连接有三个阶段: 连接建立、数据传送、连接释放 。
TCP 连接建立过程要解决的几个问题:
① 使每一方能够确知对方的存在;
② 允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等);
③ 能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。
TCP 建立连接的过程叫做握手,握手需要在客户和服务器之间交换三个 TCP 报文段,即 三次握手 。
最初客户端和服务端都处于 CLOSED(关闭) 状态,A(Client)主动打开连接,B(Server)被动打开连接。
一开始,B 的 TCP 服务器进程先创建 传输控制块 TCB ,准备接受客户进程的连接请求。然后服务器进程就处于 LISTEN(收听)状态,等待客户端的连接请求。如有,即作出响应。
第一次握手 :A 的 TCP 客户进程也是首先创建传输控制块 TCB,准备接受客户进程的连接请求。然后在打算建立 TCP 连接时,向 B 发出连接请求报文段,这时首部中的同步位 SYN = 1,同时选择一个初始序号 seq = x。TCP 规定,SYN 报文段(即 SYN = 1 的报文段)不能携带数据,但要 消耗掉一个序号 。这时,TCP 客户进程进入 SYN-SENT(同步已发送) 状态。
第二次握手 :B 收到连接请求报文段后,如同意建立连接,则向 A 发送确认。在确认报文段中应把 SYN 位和 ACK 位都置 1,确认号是 ack = x + 1,同时也为自己选择一个初始序号 seq = y。请注意,这个报文段也不能携带数据,但同样 要消耗掉一个序号 。这时 TCP 服务器进程进入 SYN-RCVD(同步收到) 状态。
第三次握手 :TCP 客户进程收到 B 的确认后,还要向 B 给出确认。确认报文段的 ACK 置 1,确认号 ack = y + 1,而自己的序号 seq = x + 1。TCP 的标准规定,ACK 报文段可以携带数据。但 如果不携带数据则不消耗序号 ,在这种情况下,下一个数据报文段的序号仍是 seq = x + 1。这时,TCP 连接已经建立,A 进入 ESTABLISHED(已建立连接) 状态。当 B 收到 A 的确认后,也进入 ESTABLISHED(已建立连接)状态。
数据传输结束后,通信的方法都可释放连接。现在 A 和 B 都处于 ESTABLISHED 状态。
第一次挥手 :A 的应用进程先向其 TCP 发出连接释放报文段,并停止再发送数据,主动关闭 TCP 连接。A 把连接释放报文段首部的终止控制位 FIN 置 1,其序号 seq = u,它等于前面已传送过的数据的最后一个字节的序号加 1。这时 A 进入 FIN-WAIT-1(终止等待 1)状态,等待 B 的确认。请注意,TCP 规定,FIN 报文段即使不携带数据,它也消耗掉一个序号。
第二次挥手 :B 收到连接释放报文后即发出确认,确认号是 ack = u + 1,而这个报文段自己的序号是 v,等于 B 前面已传送过的最后一个字节的序号加 1。然后 B 就进入 CLOSE-WAIT(关闭等待)状态。TCP 服务器进程这时应通知高层应用程序,因而从 A 到 B 这个方向的连接就释放了,这时的 TCP 连接处于半关闭(half-close)状态,即 A 已经没有数据要发送了,但 B 若发送数,A 仍要接收。也就是说,从 B 到 A 这个方向的连接并未关闭,这个状态可能会持续一段时间。A 收到来自 B 的确认后,就进入 FIN-WAIT-2(终止等待 2)状态,等待 B 发出的连接释放报文段。
第三次挥手 :若 B 已经没有要向 A 发送的数据,其应用进程就通知 TCP 释放连接。这时 B 发出的连接释放报文段必须使 FIN = 1。现假定 B 的序号为 w(在半关闭状态 B 可能又发送了一些数据)。B 还必须重复上次已发送过的确认号 ack = u + 1。这时 B 就进入 LAST-ACK(最后确认)状态,等待 A 的确认。
第四次挥手 :A 在收到 B 的连接释放报文段后,必须对此发出确认。在确认报文段中把 ACK 置 1,确认号 ack = w + 1,而自己的序号是 seq = u + 1(根据 TCP 标准,前面发送过的 FIN 报文段要消耗一个序号)。然后进入 TIME-WAIT(时间等待)状态。请注意,现在 TCP 连接还没有释放掉。必须经过时间等待计时器(TIME-WAIT timer)设置的时间 2MSL 后,A 才进入到 CLOSED 状态,然后撤销传输控制块,结束这次 TCP 连接。当然如果 B 一收到 A 的确认就进入 CLOSED 状态,然后撤销传输控制块。所以在释放连接时,B 结束 TCP 连接的时间要早于 A。
I. 如何讲计算机网络
计算机网络(computer network),简称网络,是利用通信设备和线路将地理位置不同的、功能独立的多个计算机系统连接起来,以功能完善的网络软件实现网络的硬件、软件及资源共享和信息传递的系统,简单的说即连接两台或多台计算机进行通信的系统。最着名的计算机网络是因特网。 计算机网络支持大量应用程序和服务,例如访问万维网、共享文件服务器、打印机、电子邮件和即时通讯等。