当前位置:首页 » 网络连接 » 深入理解计算机网络笔记
扩展阅读
苹果设置网络切换 2025-09-23 04:28:43

深入理解计算机网络笔记

发布时间: 2022-11-28 03:07:14

‘壹’ 计算机网络的分类

计算机网络根据不同的分类标准有不同的分类,下面我将一一向你介绍:
1. 按网络节点分布
局域网是一种在小范围内实现的计算机网络,一般在一个建筑物内,或一个工厂、一个单位内部。局域网覆盖范围可在十几公里以内,结构简单,布线容易。
广域网范围很广,可以分布在一个省内、一个国家或几个国家。广域网信道传输速率较低,结构比较复杂。
城域网是在一个城市内部组建的计算机信息网络,提供全市的信息服务。目前,我国许多城市正在建设城域网。
2. 按传输介质
有线网:是采用同轴电缆或双绞线连接的计算机网络。同轴电缆网是常见的一种连网方式,它比较经济,安装较为便利,传输率和抗干扰能力一般,传输距离较短。双绞线网是目前最常见的连网方式。它价格便宜,安装方便,但易受干扰,传输率较低,传输距离比同轴电缆要短。
光纤网:也是有线网的一种,但由于其特殊性而单独列出。光纤网采用光导纤维作传输介质。光纤传输距离长,传输率高,可达数千兆bps,抗干扰性强,不会受到电子监听设备的监听,是高安全性网络的理想选择。但其成本较高,且需要高水平的安装技术。
无线网:用电磁波作为载体来传输数据,目前无线网联网费用较高,还不太普及。但由于联网方式灵活方便,是一种很有前途的连网方式。
局域网通常采用单一的传输介质,而城域网和广域网采用多种传输介质。
3. 按交换方式
线路交换最早出现在电话系统中,早期的计算机网络就是采用此方式来传输数据的,数字信号经过变换成为模拟信号后才能联机传输。
报文交换是一种数字化网络。当通信开始时,源机发出的一个报文被存储在交换机里,交换机根据报文的目的地址选择合适的路径发送报文,这种方式称做存储-转发方式。
分组交换也采用报文传输,但它不是以不定长的报文作传输的基本单位,而是将一个长的报文划分为许多定长的报文分组,以分组作为传输的基本单位。这不仅大大简化了对计算机存储器的管理,而且也加速了信息在网络中的传播速度。由于分组交换优于线路交换和报文交换,具有许多优点。因此,它已成为计算机网络中传输数据的主要方式。
4. 按逻辑
通信子网:面向通信控制和通信处理,主要包括:通信控制处理机(CCP)、网络控制中心(NCC)、分组组装/拆卸设备(PAD)、网关等。
资源子网:负责全网的面向应用的数据处理,实现网络资源的共享。它由各种拥有资源的用户主机和软件(网络操作系统和网络数据库等)所组成,主要包括:主机(HOST)、终端设备(T)、网络操作系统、网络数据库。
5. 按通信方式
点对点传输网络:数据以点到点的方式在计算机或通信设备中传输。星型网、环形网采用这种传输方式。
广播式传输网络:数据在公用介质中传输。无线网和总线型网络属于这种类型。
6. 按服务方式
客户机/服务器网络:服务器是指专门提供服务的高性能计算机或专用设备,客户机是指用户计算机。这是由客户机向服务器发出请求并获得服务的一种网络形式,多台客户机可以共享服务器提供的各种资源。这是最常用、最重要的一种网络类型,不仅适合于同类计算机联网,也适合于不同类型的计算机联网,如PC机、Mac机的混合联网。这种网络安全性容易得到保证,计算机的权限、优先级易于控制,监控容易实现,网络管理能够规范化。网络性能在很大程度上取决于服务器的性能和客户机的数量。目前,针对这类网络有很多优化性能的服务器称为专用服务器。银行、证券公司都采用这种类型的网络。
对等网:对等网不要求专用服务器,每台客户机都可以与其他每台客户机对话,共享彼此的信息资源和硬件资源,组网的计算机一般类型相同。这种组网方式灵活方便,但是较难实现集中管理与监控,安全性也低,较适合作为部门内部协同工作的小型网络。
7、按网络的拓扑结构分类
网络的拓扑结构是指网络中通信线路和站点(计算机或设备)的几何排列形式。计算机网络按其拓扑结构分类可以分为星型网、环形网和总线型网三类。
(1) 星型网
网上的站点通过点到点的链路与中心站点相连。特点是增加新站点容易,数据的安全性和优先级易于控制,网络监控易实现,但若中心站点出故障会引起整个网络瘫痪。
(2) 环形网
网上的站点通过通信介质连成一个封闭的环形。特点是易于安装和监控,但容量有限,增加新站点困难。
(3)总线型网
网上所有的站点共享一条数据通道。特点是铺设电缆最短,成本低,安装简单方便;但监控较困难,安全性低,若介质发生故障会导致网络瘫痪,增加新站点也不如星型网容易。

以上答案是我整理的笔记,希望对你有所帮助。

‘贰’ 想要学习计算机知识,应该从哪方面入手

你是想学计科的知识还是想最后跨专业考研考到计科啊。无论你是哪种的,一点基础没有的话,全要从基础学起,大学计算机基础、离散数学、数电模电最好也看了。然后计算机组成原理、数据结构、计算机网络、C语言、操作系统。其他的JAVA、C#,汇编语言什么的全可学了。这些全是一些很基本的。计科方面太大。如果你想做得专一些的话,还可以往深了学看定向性强些的书。你还想报啥辅导班,是一般的学还是考研啊。我再把计科考研的情况给你说一下好了。

计算机专业的专业课现在都是统考代码408,考研科目是计算机学科专业基础综合,包含计算机组成原理、数据结构、操作系统、计算机网络。从每年的试题来看,风格都完全不一样,不深入理解计算机系统是很难考出好成绩的。所以你得尽早复习计算机的专业课。每年的真题都非常的灵活,所以要抓住课本,真正理解知识点,把手中的复习资料充分利用。你可以平时将此四门课学扎实,同时还要好好学C语言程序设计(有助于复试)。编程的能力和算法的思想一定是要有的。指定教材课本有严蔚敏的数据结构、白中英的计算机组成、西安电子科技大的操作系统、谢希仁的网络。 到复习时可以买考研辅导机构出版的计算机综合辅导教材和真题试卷。
比较好的资料有王道论坛的单科书和全书。天勤论坛的高分笔记,这个高分笔记不错,但是关于操作系统的那块差了些。最后的模拟题有王道和天勤的,至于其他的资料难度都太低了。真题每年考得都比较灵活,所以要抓住课本,真正理解知识点,把手中的复习资料充分利用起来。计算机考研论坛中的王道论坛上面有很多参考书目推荐和经验总结,希望你去看一看。

‘叁’ 网络工程师笔记-网络安全技术

1.HTTPS是安全的超文本协议,可以保障通信安全,银行可以通过HTTPS来提供网上服务,用户通过浏览器就可以管理自己的账户信息,是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL,SSL默认端口为443

2.POP邮局协议:用户接收邮件

3.SNMP简单网络管理协议,用于网络管理

4.HTTP超文本传输协议,众多web服务器都使用HTTP,但它是不安全的协议

电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。

1.SMTP协议

SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循SMTP协议的发送邮件服务器。SMTP认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。SMTP已是事实上的E-Mail传输的标准。

2.POP协议

POP邮局协议负责从邮件服务器中检索电子邮件。它要求邮件服务器完成下面几种任务之一:从邮件服务器中检索邮件并从服务器中删除这个邮件;从邮件服务器中检索邮件但不删除它;不检索邮件,只是询问是否有新邮件到达。POP协议支持多用户互联网邮件扩展,后者允许用户在电子邮件上附带二进制文件,如文字处理文件和电子表格文件等,实际上这样就可以传输任何格式的文件了,包括图片和声音文件等。在用户阅读邮件时,POP命令所有的邮件信息立即下载到用户的计算机上,不在服务器上保留。

3.POP3(Post Office Protocol 3)即邮局协议的第3个版本,是因特网电子邮件的第一个离线协议标准。

4.IMAP协议

互联网信息访问协议(IMAP)是一种优于POP的新协议。和POP一样,IMAP也能下载邮件、从服务器中删除邮件或询问是否有新邮件,但IMAP克服了POP的一些缺点。例如,它可以决定客户机请求邮件服务器提交所收到邮件的方式,请求邮件服务器只下载所选中的邮件而不是全部邮件。客户机可先阅读邮件信息的标题和发送者的名字再决定是否下载这个邮件。通过用户的客户机电子邮件程序,IMAP可让用户在服务器上创建并管理邮件文件夹或邮箱、删除邮件、查询某封信的一部分或全部内容,完成所有这些工作时都不需要把邮件从服务器下载到用户的个人计算机上。

支持种IMAP的常用邮件客户端有:ThunderMail,Foxmail,Microsoft Outlook等。

5.PGP安全电子邮件协议:

(1)通过散列算法对邮件内容进行签名,保证信件内容无法修改

(2)使用公钥和私钥技术保证邮件内容保密且不可否认,能确认发送者身份,防止非授权者阅读电子邮件

(3)发信人与收信人的公钥都保存在公开的地方,公钥的权威性则可以由第三方进行签名认证,在PGP系统中,信任是双方的直接关系

1.Needham-Schroeder协议是基于共享秘钥的认证协议

1.VPN:虚拟专用网络,是通过隧道技术利用公共网络建立专用网络的技术。

2.VPN技术主要有:

(1)隧道技术

(2)加解密技术

(3)秘钥管理技术

(4)身份认证技术

3.链路层的VPN协议:

(1)L2TP协议

(2)PPTP协议

4.传输层VPN协议:TLS协议

5.网络层VPN协议是:IPSec协议

1.数字证书能够验证一个实体身份,而这是在保证数字证书本身有消息这一前提下才能够实现的

2.验证数字证书的有效性是通过验证颁发证书的CA的签名实现的,比如:某网站向CA申请了数字证书,用户登录该网站时,通过验证CA的签名,可以确认该数字证书的有效性

3.例子:甲和乙进行通信,甲对发送的消息附加了数字签名,乙收到消息后利用甲的公钥验证该消息的真实性

4.数字签名技术(Digital Signature)是不对称加密算法的典型应用,原理是:数据源发送方使用自己的私钥对数据进行加密处理,完成对数据的合法签名,数据接收方利用发送方的公钥来解读收到的数字签名,并将解读结果用于对数据完整性的检验,以确认签名的合法性

5.证书链服务(交叉认证)是一个CA扩展其信任范围或被认可范围的一种实现机制,不同认证中心发放的证书之间通过证书链可以方便的实现相互信任从而实现互访

1.DES是一种共享秘钥的算法,是一种对称秘钥系统,加解密使用相同的秘钥

2.DES通常选取一个64位(bit)的数据库,使用56位的秘钥,在内部实现多次替换和变位操作来达到加密的目的

3.MD5和SHA属于摘要算法:美国对称密码数据加密标准,是指单向哈希函数将任意长度的输入报文经计算得到固定位输出称为报文摘要,该算法是不可逆的,找出具有同一报文摘要的两个不同报文是很困难的

4.Diffie-Hellman为秘钥交换算法

5.AES高级加密标准:是美国采用的一种区块加密标准,用来替代原先的DES加密算法

6.公钥体系中,甲发给乙的数据要用乙的公钥进行加密,在公钥密码体系中,加密秘钥是公开的,而解密秘钥是需要保密的,公钥密码体系中,密码对产生器产生出接收者乙的一对秘钥:加密秘钥和解密秘钥,发送者甲所用的加密秘钥就是接收者乙的公钥,公钥向公众公开,而乙所用的解密秘钥就是接收者的私钥,对其他人保密

网络攻击是以网络为手段窃取网络上其他计算机的资源或特权,对其安全性或可用性进行破坏的行为,网络攻击分为主动攻击和被动攻击:

1.被动攻击:网络窃听,截取数据包并进行分析,从中窃取重要信息,被动攻击很难被发现,主要是预防为主,目前手段是数据加密传输,在密码学和安全协议加持下目前有5类安全服务:

(1)身份认证

(2)访问控制

(3)数据保密

(4)数据完整性

(5)数据不可否认性

2.主动攻击:窃取、篡改、假冒和破坏,字典式口令猜测,IP地址欺骗和服务拒绝攻击等都属于主动攻击,一个好的身份认证系统(数据加密、数据完整性校验、数字签名和访问控制等安全机制)可以预防主动攻击,但是杜绝很难,目前对付主动攻击方法是及时发现并及时恢复所造成的破坏,目前有很多实用的工具,常见的有下面几种攻击方法:

(1)获取口令

(2)放置特洛伊木马程序

(3)www的欺骗技术

(4)电子邮件攻击

(5)通过一个节点来攻击其他节点

(6)网络监听

(7)寻找系统漏洞

(8)利用账号进行攻击

(9)偷取特权

3.例子:公司面临网络攻击来自多个方面,安装用户认证系统来防范公司内部攻击

1.Kerberos进行认证是一种使用对称秘钥加密算法来实现通过可信第三方秘钥分发中心的身份认证系统

2.Kerberos认证,客户方需要向服务器方递交自己的凭据来证明自己的身份,该凭据是由KDC专门为客户和服务器方在某一阶段内通信而生成的

3.Kerberos认证,凭据中包括客户和服务器方的身份信息和在下一阶段双方使用的临时加密秘钥,还有证明客户方拥有会话秘钥的身份认证者信息

4.身份认证信息的作用是防止攻击者在将来将同样的凭据再次使用,可以在报文中加入时间戳来防止重放攻击

1.计算机病毒是一种程序,它会将自身附着在主机上,目的是进一步繁殖和传播。从个人到大型组织,任何拥有适当技能的人都可以创建计算机病毒,并且可以感染计算机、智能手机、平板电脑,甚至智能 汽车 。“计算机病毒”一词经常被错误的被用成一个总称,泛指所有感染软件、计算机和文件的可疑程序、插件或代码。这一短语的误用可能是因为计算机病毒较常出现在电视节目和电影中。这类程序实际上正确的总称应该是恶意软件,计算机病毒只是其中的一种类型,其他类型的恶意软件还包括间谍软件、蠕虫和特洛伊木马等。

2.计算机病毒是一种安装在设备上并繁殖的恶意软件。有些病毒旨在窃取或破坏数据,而另一些病毒则旨在破坏程序或系统的稳定性,甚至使其无法使用。还有一些可能只是程序员为了好玩而制作的,例如在打开计算机或打开应用程序后显示图像或文本消息。

3.严格意义上来说,如果感染主机的恶意软件不是为了繁殖和传播而设计的,那么从技术上讲,无论它有多危险,它都不会被归类为计算机病毒。

4.通常是根据计算机病毒的目标和功能进行分类,而不是根据创建过程和编码风格,且同一计算机病毒也有可能被归入多个类别。以下是一些常见的计算机病毒示例:

(1)浏览器劫持病毒:这类计算机病毒会感染受害者的Web浏览器,并且通常用于篡改受害者的主页、窃取数据和展示广告。

(2)引导扇区病毒:除了硬盘驱动器的引导扇区之外,这类病毒还会影响用于帮助系统启动的磁盘。

(3)电子邮件病毒:这类病毒旨在通过将自身附加到电子邮件、使用受害者的地址簿生成电子邮件或以窃取数据的意图感染电子邮件应用程序来成倍增加。

(4)宏病毒:宏计算机病毒以宏语言编码,以便它们可以附加到文档中,并在打开它们所附加的文件后立即激活。

(5)多态病毒:一种可以改变自身以逃避安全系统和防病毒程序检测的计算机病毒。

(6)常驻病毒:常驻病毒会在感染操作系统后继续在后台运行,从而对系统和应用程序性能产生负面影响。

(7)非驻留病毒:这类病毒会在执行任务后自行关闭。

5.虽然许多计算机病毒可以很好地隐藏在你的设备上,但有几个明显的行为可以表明你可能已经感染了病毒,例如系统速度明显下降、系统和应用程序设置被神秘地更改、收到不拥有的服务和应用程序的通知,未经你的许可安装浏览器扩展或插件,以及无法上网或打开某些程序等。

6.重要的是要采取多种策略,以确保您的计算机和其他智能设备免受病毒和其他形式的恶意软件的侵害,以下是保护计算机免受病毒侵害的一些方法:

(1)保持操作系统和应用程序处于最新状态:这将使病毒更难感染你的计算机设备。

(2)仅连接到受信任的互联网连接:这也可以保护你免受其他类型的攻击,例如ARP欺骗。

(3)避免可疑附件:切勿打开来自未知发件人的电子邮件附件,因为这些附件可能包含恶意软件和其他病毒。

(4)仅从官方网站和可信来源下载文件:从不熟悉的网站下载文件始终存在风险。无论下载看起来多么合法,如果它不是来自可信来源,请避免下载。

(5)安装防病毒软件:高质量的防病毒软件可以帮助用户清除计算机上的病毒,并可以预防病毒感染。

6.目前网络上流行的“熊猫烧香”病毒属于蠕虫类型的病毒,感染exe、com、pif、htm和sap等文件,还能删除gho备份文件,被感染的电脑所有exe可执行文件都变成熊猫举着三根香的模样

7.病毒前缀是指一个病毒的种类,用来区分病毒的种族分类的

(1)木马病毒:前缀为Trojan,木马病毒可以通过网络实现对远程计算机的远程攻击,能远程控制计算机

(2)蠕虫病毒:前缀为Worm

(3)宏病毒:前缀为Macro

8.病毒名是指一个病毒的家族特征,是用来区别和标识病毒家族的,如以前着名的CIH病毒的家族名都是统一的CIH,震荡波蠕虫病毒的家族名是Sasser等

9.病毒后缀是指一个病毒的变种特征,是用来区别具体某个家族病毒的某个变种的,一般采用英文字母表示,如Worm.Sasser.b就是震荡波蠕虫病毒的变种B,称为“震荡波B变种”

1.钓鱼网站是一种网络欺诈行为,指不法分子利用各种手段,仿冒真实网站的URL地址以及页面内容,或者利用真实网站服务器程序上的漏洞在站点的某些网页中插入危险的HTML代码,依次来骗取用户的账号密码等资料

2.钓鱼网站可以通过Email传播网址

1.网络管理中要防止各种安全威胁,安全威胁分为主要和次要安全威胁,主要安全威胁有:

(1)篡改管理信息:通过改变传输中的SNMP报文实施未经授权的管理操作

(2)假冒合法用户:未经授权的用户冒充授权用户

2.次要安全威胁有:

(1)消息泄露:SNMP引擎之间交换的信息被第三者偷听

(2)修改报文流:由于SNMP协议通常是基于无连接的传输服务,重新排序报文流、延迟或重放报文的威胁都可能出现,这种威胁危害在于通过报文的修改可能实施非法的管理操作

3.无法预防的威胁有:

(1)拒绝服务:因为很多情况下拒绝服务和网络失效是无法区别的,所以可以由网络管理协议来处理,安全系统不必采取措施

(2)通信分析:第三者分析管理实体之间的通信规律,从而获取管理信息

1.路由表:用来指定路由规则,指定数据转发路径

2.ARP表:用来实现iP地址和网络设备物理地址MAC的转换

3.NAT:将一个地址映射到另一个地址域的技术,而NAT表记录这些映射记录

4.过滤规则用以制定内外网访问和数据发送的一系列安全策略

1.IPSec VPN包含了认证头AH和封装安全载荷ESP

(1)AH主要用以提供身份认证、数据完整性保护、防重放攻击多项功能

(2)ESP则可以提供数据加密、数据源身份认证、数据完整性保护、防重放攻击多项功能

(3)IPSec VPN可提供传输模式和隧道模式,但没有入侵检测功能

(4)IPSec加密和认证过程中所使用的秘钥有IKE(因特网秘钥交换协议)机制来生成和分发,IKE解决了在不安全的网络环境中安全地建立或更新共享秘钥的问题

‘肆’ 计算机网络自学笔记:TCP

如果你在学习这门课程,仅仅为了理解网络工作原理,那么只要了解TCP是可靠传输,数据传输丢失时会重传就可以了。如果你还要参加研究生考试或者公司面试等,那么下面内容很有可能成为考查的知识点,主要的重点是序号/确认号的编码、超时定时器的设置、可靠传输和连接的管理。

1 TCP连接

TCP面向连接,在一个应用进程开始向另一个应用进程发送数据之前,这两个进程必须先相互“握手”,即它们必须相互发送某些预备报文段,以建立连接。连接的实质是双方都初始化与连接相关的发送/接收缓冲区,以及许多TCP状态变量。

这种“连接”不是一条如电话网络中端到端的电路,因为它们的状态完全保留在两个端系统中。

TCP连接提供的是全双工服务 ,应用层数据就可在从进程B流向进程A的同时,也从进程A流向进程B。

TCP连接也总是点对点的 ,即在单个发送方与单个接收方之间建立连接。

一个客户机进程向服务器进程发送数据时,客户机进程通过套接字传递数据流。

客户机操作系统中运行的 TCP软件模块首先将这些数据放到该连接的发送缓存里 ,然后会不时地从发送缓存里取出一块数据发送。

TCP可从缓存中取出并放入报文段中发送的数据量受限于最大报文段长MSS,通常由最大链路层帧长度来决定(也就是底层的通信链路决定)。 例如一个链路层帧的最大长度1500字节,除去数据报头部长度20字节,TCP报文段的头部长度20字节,MSS为1460字节。

报文段被往下传给网络层,网络层将其封装在网络层IP数据报中。然后这些数据报被发送到网络中。

当TCP在另一端接收到一个报文段后,该报文段的数据就被放人该连接的接收缓存中。应用程序从接收缓存中读取数据流(注意是应用程序来读,不是操作系统推送)。

TCP连接的每一端都有各自的发送缓存和接收缓存。

因此TCP连接的组成包括:主机上的缓存、控制变量和与一个进程连接的套接字变量名,以及另一台主机上的一套缓存、控制变量和与一个进程连接的套接字。

在这两台主机之间的路由器、交换机中,没有为该连接分配任何缓存和控制变量。

2报文段结构

TCP报文段由首部字段和一个数据字段组成。数据字段包含有应用层数据。

由于MSS限制了报文段数据字段的最大长度。当TCP发送一个大文件时,TCP通常是将文件划分成长度为MSS的若干块。

TCP报文段的结构。

首部包括源端口号和目的端口号,它用于多路复用/多路分解来自或送至上层应用的数据。另外,TCP首部也包括校验和字段。报文段首部还包含下列字段:

32比特的序号字段和32比特的确认号字段。这些字段被TCP发送方和接收方用来实现可靠数据传输服务。

16比特的接收窗口字段,该字段用于流量控制。该字段用于指示接收方能够接受的字节数量。

4比特的首部长度字段,该字段指示以32比特的字为单位的TCP首部长度。一般TCP首部的长度就是20字节。

可选与变长的选项字段,该字段用于当发送方与接收方协商最大报文段长度,或在高速网络环境下用作窗口调节因子时使用。

标志字段ACK比特用于指示确认字段中的ACK值的有效性,即该报文段包括一个对已被成功接收报文段的确认。 SYN和FIN比特用于连接建立和拆除。 PSH、URG和紧急指针字段通常没有使用。

•序号和确认号

TCP报文段首部两个最重要的字段是序号字段和确认号字段。

TCP把数据看成一个无结构的但是有序的字节流。TCP序号是建立在传送的字节流之上,而不是建立在传送的报文段的序列之上。

一个报文段的序号是该报文段首字节在字节流中的编号。

例如,假设主机A上的一个进程想通过一条TCP连接向主机B上的一个进程发送一个数据流。主机A中的TCP将对数据流中的每一个字节进行编号。假定数据流由一个包含4500字节的文件组成(可以理解为应用程序调用send函数传递过来的数据长度),MSS为1000字节(链路层一次能够传输的字节数),如果主机决定数据流的首字节编号是7。TCP模块将为该数据流构建5个报文段(也就是分5个IP数据报)。第一个报文段的序号被赋为7;第二个报文段的序号被赋为1007,第三个报文段的序号被赋为2007,以此类推。前面4个报文段的长度是1000,最后一个是500。

确认号要比序号难理解一些。前面讲过,TCP是全双工的,因此主机A在向主机B发送数据的同时,也可能接收来自主机B的数据。从主机B到达的每个报文段中的序号字段包含了从B流向A的数据的起始位置。 因此主机B填充进报文段的确认号是主机B期望从主机A收到的下一报文段首字节的序号。

假设主机B已收到了来自主机A编号为7-1006的所有字节,同时假设它要发送一个报文段给主机A。主机B等待主机A的数据流中字节1007及后续所有字节。所以,主机B会在它发往主机A的报文段的确认号字段中填上1007。

再举一个例子,假设主机B已收到一个来自主机A的包含字节7-1006的报文段,以及另一个包含字节2007-3006的报文段。由于某种原因,主机A还没有收到字节1007-2006的报文段。

在这个例子中,主机A为了重组主机B的数据流,仍在等待字节1007。因此,A在收到包含字节2007-3006的报文段时,将会又一次在确认号字段中包含1007。 因为TCP只确认数据流中至第一个丢失报文段之前的字节数据,所以TCP被称为是采用累积确认。

TCP的实现有两个基本的选择:

1接收方立即丢弃失序报文段;

2接收方保留失序的字节,并等待缺少的字节以填补该间隔。

一条TCP连接的双方均可随机地选择初始序号。 这样做可以减少将那些仍在网络中的来自两台主机之间先前连接的报文段,误认为是新建连接所产生的有效报文段的可能性。

•例子telnet

Telnet由是一个用于远程登录的应用层协议。它运行在TCP之上,被设计成可在任意一对主机之间工作。

假设主机A发起一个与主机B的Telnet会话。因为是主机A发起该会话,因此主机A被标记为客户机,主机B被标记为服务器。用户键入的每个字符(在客户机端)都会被发送至远程主机。远程主机收到后会复制一个相同的字符发回客户机,并显示在Telnet用户的屏幕上。这种“回显”用于确保由用户发送的字符已经被远程主机收到并处理。因此,在从用户击键到字符显示在用户屏幕上之间的这段时间内,每个字符在网络中传输了两次。

现在假设用户输入了一个字符“C”,假设客户机和服务器的起始序号分别是42和79。前面讲过,一个报文段的序号就是该报文段数据字段首字节的序号。因此,客户机发送的第一个报文段的序号为42,服务器发送的第一个报文段的序号为79。前面讲过,确认号就是主机期待的数据的下一个字节序号。在TCP连接建立后但没有发送任何数据之前,客户机等待字节79,而服务器等待字节42。

如图所示,共发了3个报文段。第一个报文段是由客户机发往服务器,其数据字段里包含一字节的字符“C”的ASCII码,其序号字段里是42。另外,由于客户机还没有接收到来自服务器的任何数据,因此该报文段中的确认号字段里是79。

第二个报文段是由服务器发往客户机。它有两个目的:第一个目的是为服务器所收到的数据提供确认。服务器通过在确认号字段中填入43,告诉客户机它已经成功地收到字节42及以前的所有字节,现在正等待着字节43的出现。第二个目的是回显字符“C”。因此,在第二个报文段的数据字段里填入的是字符“C”的ASCII码,第二个报文段的序号为79,它是该TCP连接上从服务器到客户机的数据流的起始序号,也是服务器要发送的第一个字节的数据。

这里客户机到服务器的数据的确认被装载在一个服务器到客户机的数据的报文段中,这种确认被称为是捎带确认.

第三个报文段是从客户机发往服务器的。它的唯一目的是确认已从服务器收到的数据。

3往返时延的估计与超时

TCP如同前面所讲的rdt协议一样,采用超时/重传机制来处理报文段的丢失问题。最重要的一个问题就是超时间隔长度的设置。显然,超时间隔必须大于TCP连接的往返时延RTT,即从一个报文段发出到收到其确认时。否则会造成不必要的重传。

•估计往返时延

TCP估计发送方与接收方之间的往返时延是通过采集报文段的样本RTT来实现的,就是从某报文段被发出到对该报文段的确认被收到之间的时间长度。

也就是说TCP为一个已发送的但目前尚未被确认的报文段估计sampleRTT,从而产生一个接近每个RTT的采样值。但是,TCP不会为重传的报文段计算RTT。

为了估计一个典型的RTT,采取了某种对RTT取平均值的办法。TCP据下列公式来更新

EstimatedRTT=(1-)*EstimatedRTT+*SampleRTT

即估计RTT的新值是由以前估计的RTT值与sampleRTT新值加权组合而成的。

参考值是a=0.125,因此是一个加权平均值。显然这个加权平均对最新样本赋予的权值

要大于对老样本赋予的权值。因为越新的样本能更好地反映出网络当前的拥塞情况。从统计学观点来讲,这种平均被称为指数加权移动平均

除了估算RTT外,还需要测量RTT的变化,RTT偏差的程度,因为直接使用平均值设置计时器会有问题(太灵敏)。

DevRTT=(1-β)*DevRTT+β*|SampleRTT-EstimatedRTT|

RTT偏差也使用了指数加权移动平均。B取值0.25.

•设置和管理重传超时间隔

假设已经得到了估计RTT值和RTT偏差值,那么TCP超时间隔应该用什么值呢?TCP将超时间隔设置成大于等于估计RTT值和4倍的RTT偏差值,否则将造成不必要的重传。但是超时间隔也不应该比估计RTT值大太多,否则当报文段丢失时,TCP不能很快地重传该报文段,从而将给上层应用带来很大的数据传输时延。因此,要求将超时间隔设为估计RTT值加上一定余量。当估计RTT值波动较大时,这个余最应该大些;当波动比较小时,这个余量应该小些。因此使用4倍的偏差值来设置重传时间。

TimeoutInterval=EstimatedRTT+4*DevRTT

4可信数据传输

因特网的网络层服务是不可靠的。IP不保证数据报的交付,不保证数据报的按序交付,也不保证数据报中数据的完整性。

TCP在IP不可靠的尽力而为服务基础上建立了一种可靠数据传输服务。

TCP提供可靠数据传输的方法涉及前面学过的许多原理。

TCP采用流水线协议、累计确认。

TCP推荐的定时器管理过程使用单一的重传定时器,即使有多个已发送但还未被确认的报文段也一样。重传由超时和多个ACK触发。

在TCP发送方有3种与发送和重传有关的主要事件:从上层应用程序接收数据,定时器超时和收到确认ACK。

从上层应用程序接收数据。一旦这个事件发生,TCP就从应用程序接收数据,将数据封装在一个报文段中,并将该报文段交给IP。注意到每一个报文段都包含一个序号,这个序号就是该报文段第一个数据字节的字节流编号。如果定时器还没有计时,则当报文段被传给IP时,TCP就启动一个该定时器。

第二个事件是超时。TCP通过重传引起超时的报文段来响应超时事件。然后TCP重启定时器。

第三个事件是一个来自接收方的确认报文段(ACK)。当该事件发生时,TCP将ACK的值y与变量SendBase(发送窗口的基地址)进行比较。TCP状态变量SendBase是最早未被确认的字节的序号。就是指接收方已正确按序接收到数据的最后一个字节的序号。TCP采用累积确认,所以y确认了字节编号在y之前的所有字节都已经收到。如果Y>SendBase,则该ACK是在确认一个或多个先前未被确认的报文段。因此发送方更新其SendBase变量,相当于发送窗口向前移动。

另外,如果当前有未被确认的报文段,TCP还要重新启动定时器。

快速重传

超时触发重传存在的另一个问题是超时周期可能相对较长。当一个报文段丢失时,这种长超时周期迫使发送方等待很长时间才重传丢失的分组,因而增加了端到端时延。所以通常发送方可在超时事件发生之前通过观察冗余ACK来检测丢包情况。

冗余ACK就是接收方再次确认某个报文段的ACK,而发送方先前已经收到对该报文段的确认。

当TCP接收方收到一个序号比所期望的序号大的报文段时,它认为检测到了数据流中的一个间隔,即有报文段丢失。这个间隔可能是由于在网络中报文段丢失或重新排序造成的。因为TCP使用累计确认,所以接收方不向发送方发回否定确认,而是对最后一个正确接收报文段进行重复确认(即产生一个冗余ACK)

如果TCP发送方接收到对相同报文段的3个冗余ACK.它就认为跟在这个已被确认过3次的报文段之后的报文段已经丢失。一旦收到3个冗余ACK,TCP就执行快速重传 ,

即在该报文段的定时器过期之前重传丢失的报文段。

5流量控制

前面讲过,一条TCP连接双方的主机都为该连接设置了接收缓存。当该TCP连接收到正确、按序的字节后,它就将数据放入接收缓存。相关联的应用进程会从该缓存中读取数据,但没必要数据刚一到达就立即读取。事实上,接收方应用也许正忙于其他任务,甚至要过很长时间后才去读取该数据。如果应用程序读取数据时相当缓慢,而发送方发送数据太多、太快,会很容易使这个连接的接收缓存溢出。

TCP为应用程序提供了流量控制服务以消除发送方导致接收方缓存溢出的可能性。因此,可以说 流量控制是一个速度匹配服务,即发送方的发送速率与接收方应用程序的读速率相匹配。

前面提到过,TCP发送方也可能因为IP网络的拥塞而被限制,这种形式的发送方的控制被称为拥塞控制(congestioncontrol)。

TCP通过让接收方维护一个称为接收窗口的变量来提供流量控制。接收窗口用于告诉发送方,该接收方还有多少可用的缓存空间。因为TCP是全双工通信,在连接两端的发送方都各自维护一个接收窗口变量。 主机把当前的空闲接收缓存大小值放入它发给对方主机的报文段接收窗口字段中,通知对方它在该连接的缓存中还有多少可用空间。

6 TCP连接管理

客户机中的TCP会用以下方式与服务器建立一条TCP连接:

第一步: 客户机端首先向服务器发送一个SNY比特被置为1报文段。该报文段中不包含应用层数据,这个特殊报文段被称为SYN报文段。另外,客户机会选择一个起始序号,并将其放置到报文段的序号字段中。为了避免某些安全性攻击,这里一般随机选择序号。

第二步: 一旦包含TCP报文段的用户数据报到达服务器主机,服务器会从该数据报中提取出TCPSYN报文段,为该TCP连接分配TCP缓存和控制变量,并向客户机TCP发送允许连接的报文段。这个允许连接的报文段还是不包含应用层数据。但是,在报文段的首部却包含3个重要的信息。

首先,SYN比特被置为1。其次,该 TCP报文段首部的确认号字段被置为客户端序号+1最后,服务器选择自己的初始序号,并将其放置到TCP报文段首部的序号字段中。 这个允许连接的报文段实际上表明了:“我收到了你要求建立连接的、带有初始序号的分组。我同意建立该连接,我自己的初始序号是XX”。这个同意连接的报文段通常被称为SYN+ACK报文段。

第三步: 在收到SYN+ACK报文段后,客户机也要给该连接分配缓存和控制变量。客户机主机还会向服务器发送另外一个报文段,这个报文段对服务器允许连接的报文段进行了确认。因为连接已经建立了,所以该ACK比特被置为1,称为ACK报文段,可以携带数据。

一旦以上3步完成,客户机和服务器就可以相互发送含有数据的报文段了。

为了建立连接,在两台主机之间发送了3个分组,这种连接建立过程通常被称为 三次握手(SNY、SYN+ACK、ACK,ACK报文段可以携带数据) 。这个过程发生在客户机connect()服务器,服务器accept()客户连接的阶段。

假设客户机应用程序决定要关闭该连接。(注意,服务器也能选择关闭该连接)客户机发送一个FIN比特被置为1的TCP报文段,并进人FINWAIT1状态。

当处在FINWAIT1状态时,客户机TCP等待一个来自服务器的带有ACK确认信息的TCP报文段。当它收到该报文段时,客户机TCP进入FINWAIT2状态。

当处在FINWAIT2状态时,客户机等待来自服务器的FIN比特被置为1的另一个报文段,

收到该报文段后,客户机TCP对服务器的报文段进行ACK确认,并进入TIME_WAIT状态。TIME_WAIT状态使得TCP客户机重传最终确认报文,以防该ACK丢失。在TIME_WAIT状态中所消耗的时间是与具体实现有关的,一般是30秒或更多时间。

经过等待后,连接正式关闭,客户机端所有与连接有关的资源将被释放。 因此TCP连接的关闭需要客户端和服务器端互相交换连接关闭的FIN、ACK置位报文段。

‘伍’ 计算机网络该怎么

好的教学方式一定是讲的让别人能听懂,对于初学者,我认为好的方法应该是这样的:
1、从实际案例出发(比如我们在浏览器输入一个网址到展示出内容中间发生了什么事情)
2、计算机网络出现的背景是什么?遇到了什么问题?是为了解决什么问题?
不能一下子就陷入细节,一开始应该快速入门,了解其概貌。
3、入门后,然后再进阶学习,建议从自顶向下的方式来学习。
4、一定要多实战,通过抓包工具查看实际的数据包长啥样,通过动手实现一个聊天工具等。

‘陆’ 408计算机学科专业基础综合怎样复习

公共课的学习方法我就不提了。直接说说考研的专业课大综合如何学习。给你说下我当年的学习思路。

计算机专业的专业课现在都是统考代码408,考研科目是计算机学科专业基础综合,包含计算机组成原理、数据结构、操作系统、计算机网络。从每年的试题来看,风格都完全不一样,不深入理解计算机系统是很难考出好成绩的。所以你得尽早复习计算机的专业课。每年的真题都非常的灵活,所以要抓住课本,真正理解知识点,把手中的复习资料充分利用。你可以平时将此四门课学扎实,同时还要好好学C语言程序设计(有助于复试)。编程的能力和算法的思想一定是要有的。指定教材课本有严蔚敏的数据结构、白中英的计算机组成、西安电子科技大的操作系统、谢希仁的网络。 到复习时可以买考研辅导机构出版的计算机综合辅导教材和真题试卷。

比较好的资料有王道论坛的单科书和全书。天勤论坛的高分笔记,这个高分笔记不错,但是关于操作系统的那块差了些。最后的模拟题有王道和天勤的,至于其他的资料难度都太低了。真题每年考得都比较灵活,所以要抓住课本,真正理解知识点,把手中的复习资料充分利用起来。计算机考研论坛中的王道论坛上面有很多参考书目推荐和经验总结,希望你去看一看。望采纳。

‘柒’ 求各位推荐计算机考研资料书

数据结构方面的教材:《数据结构》严蔚敏 清华大学出版社

计算机组成原理的教材:《计算机组成原理》唐朔飞 高等教育出版社

《计算机组成原理》白中英 科学出版社

操作系统方面的教材:《计算机操作系统(修订版)》汤子瀛 西安电子科技大学出版社

计算机网络的教材:《计算机网络(第五版)》谢希仁 电子工业出版社

分享下免费的在线考研资源:网络网盘链接:https://pan..com/s/1O17H08bhA9u8MKYt0NuBDA

?pwd=b3et提取码:b3et

推荐一个比较不错的网站,学习口袋网。里面关于考研类的资料很全,更新速度也非常快,基本上大家想知道的考研资料信息网站里面都有。在这里真的建议大家多看一些报考学校的资料与专业课视频,这对大家考研是非常有帮助的。

‘捌’ 小马哥网络课笔记3----计算机之间的连接方式

一台电脑发送请求给另一台电脑,需要知道对方的ip地址和网卡地址,最终是根据MAC地址(网卡地址),输送数据到网卡,被网卡接收。

发送一个请求,这个请求中包含源ip地址、目标ip地址、源MAC地址、目标MAC地址

电脑的网卡接收到这个请求数据的时候, 如果发现目标MAC地址就是自己的地址,那么就会将该数据传递给上一层处理,否则丢弃。

使用ping命令,可以让一台电脑与另一台电脑通信,使用的是ICMP协议,比如:地址为192.168.1.10的电脑ping 地址为192.168.1.11的电脑,
首先ping的时候只知道另一台电脑的ip地址,并不知道MAC地址,所以会先发送广播,即ARP协议,向网段内的所有所有电脑发送信息,目标MAC地址为FFFF.FFFF.FFFF,192.168.1.11的电脑收到这个广播后,会将自己的MAC地址发送给它,下次就可以直接通信了。

同轴电缆中,一台电脑想将一个数据发送给其中一台电脑时,信号在发送出去后,向所有线路发送。并且另外一台电脑在发送信号前会检测线路中是否已经有其他的数据正在发送,如果有会等待一定的时间再次尝试发送。同轴电缆一个很大的缺点是不安全,万一其中一条线路断开,所有的线路都会瘫痪。

半双工通信是指两个设备之间连接线同时只能有一个方向的信号通过,全双工通信是指可以多方向通过。
不安全是指一台电脑发送数据给另一台的时候,数据包会发送给所有的电脑,数据容易泄露。

集线器和同轴电缆很像,但是有一个好处是,万一其中一条线路断开,不会影响其他线路。
集线器有多个口,每个口都可以连接一台电脑,通信原理和同轴电缆一样,也是半双工通信。
通信机制同样是,有信号发送时它会将信号发送给所有线路,所以说即使发送数据给目标ip设备,集线器仍然会将数据发送给所有设备。但是只有目标ip设备接收到数据后会处理,其他设备接收到数据后舍弃。

如果一个集线器口子不够用,可以集线器连集线器

因为集线器每次通信都会将数据发送给所有线路,当连接的电脑数量大时,就会有问题,等待时间过长,所以诞生了网桥。

网桥能够通过自学习得知每个接口那侧的MAC地址,并记录下来。从而起到隔绝冲突域的作用。

如下图所示,两个集线器都连接了多台电脑,网桥连接了这连个集线器。当某台电脑发送数据通过网桥时,网桥接收数据的那侧端口会记录下这台电脑的MAC地址,经过很多次数据通信后,网桥会记录下很多台计算机的MAC地址,并且知道它是在哪侧端口。那么当源计算机发送数据给目标计算机时,网桥会判断目标计算机是在哪一侧,如果它没有记录过就传递给下一侧,如果记录过并且和源计算机在同一侧端口,网桥就不会将这次数据通信发送给另一侧,从而阻止了大量不必要的通信。

虽然网桥能够隔绝冲突域,但仍然无法真正解决集线器连接的设备间通信的缺点。交换机的出现刚好能解决这些问题。

交换机相当于集线器和网桥的集合体,它有很多个端口,可以连接很多台电脑,并且可以自学习每个端口通信的MAC地址并记录下来。关键是它是全双工通信,数据可以双向传递。

下图所示,一台交换机连接了多台计算机,在源计算机发送数据给目标计算机时,先广播给交换机连接的所有计算机,目标计算机收到后回复源计算机,这样交换机就记录下了这两台计算机的MAC地址。源计算机得到目标计算机MAC地址后,再发送数据时,交换机就可以直接将数据发送给目标计算机,从而保护了数据安全,并且阻止了无用通信。

一台交换机的端口如果不够用,可以交换机连接另一台交换机。

直连、同轴电缆、集线器、交换机这几种连接方式要求计算机都在同一个网段下才行 。例如:192.168.1.10和192.168.1.11就是在同一个网段,而192.168.1.10和192.168.2.10就不是同一网段。
所以这几种连接方式都存在一个问题,连接的计算机数量有限。后来的路由器就是为了解决这个问题而诞生。

广播是在同一个网段下才会发送的,也可以称为同一个广播域,直连、同轴电缆、集线器、交换机这几种方式连接的计算机就是在同一个广播域。路由器可以隔绝广播域,也可以在不同网段间转发数据。

路由器有多个端口,每个端口有MAC地址,而且每个使用的端口都需要设置ip地址,它的ip地址就是网关(gateway)。

路由器连接的必须是不同网段的设备,如果是同一网段,会访问不通

下图所示,有2台电脑连接一个交换机,处在192.168.1网段下。
另外2台电脑连接另一个交换机,处在192.168.2网段下。
路由器的2个端口分别连接这2台交换机,并且路由器端口ip地址和交换机连接电脑要在同一网段下。
计算机的网关也要设置和路由器的端口ip地址一致。

1、计算机0向计算机1发送数据

它的过程是:首先计算机0发现计算机1的ip地址和自己处于同一网段下,为了获得计算机1的MAC地址需要向广播域内发送ARP广播,计算机1和路由器端口都收到了广播,计算机1会回传自己的MAC地址给计算机0。然后计算机0知道了计算机1的MAC地址后,它就会直接发送ICMP数据给计算机1。

2、计算机0向计算机3发送数据

它的过程是:首先计算机0发现计算机1和自己处于不同网段下,必须要通过路由器做跨广播域传递数据。想通过路由器发数据,肯定要先拿到路由器端口的MAC地址,为了获得路由器端口MAC地址,先向广播域内发送ARP广播,路由器端口收到广播后,将自己的MAC地址回传给计算机0。然后计算机0向计算机1发送ICMP数据,路由器网关收到数据后,再通过与计算机1所在广播域连接的端口发送广播,获得计算机1的MAC地址。有了MAC地址,之后计算机0就可以用ICMP通过路由器向计算机1发送数据了。