计算机网络总结

本文全面介绍了互联网的工作原理,包括ISP结构、电路交换、分组交换等基础知识,详细解析了物理层、数据链路层、网络层、传输层及应用层的功能与协议,还涉及了Java网络编程等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


http://wenku.baidu.com/link?url=YHFTrUeJcoQAMPc_0fjJm7PEsaoPtGcbe44zjPSgBPAffI_KbpWfJkBMmQsfetER_QPvXMJ9uUB8M2b4Lg9kfH9J2BE7_WNpO3WvLQBnI3G
一,概述
1,多层次ISP结构的因特网。ISP是指因特网服务提供者。NAP是网络接入点,用来交换因特网上的流量。
2,因特网的组成
1)边缘部分:所有的末端主机。通信方式:客户端/服务器方式;P2P对等连接方式;
2)核心部分:路由器(存储转发的分组交换);
3,电路交换(电话):通话的全部时间内,通话双方始终占用端到端资源,面向连接。整个报文的比特流连续的从源点到终点。
报文交换:整个报文先传送到相邻节点,全部存储下来后查找转发表,转发到下一个节点。
分组交换:将报文拆分成多个分组,以组为单位进行转发。
当连续传送大量数据,传送时间远大于连接建立,则电路交换更快;但因特网上数据传输往往断断续续,空闲时间远大于传输时间。
4,网络性能指标
速率:单位时间内的bit数,如Mb/s;带宽:带宽:某条链路的最该传送速率,如Mb/s;吞吐量:单位时间通过某个接口的数据量,如Mb/s;时延:从网络一端到另一端的时间;时延带宽积:时延*带宽,单位bit;利用率:分为某条信道利用率和整个网络利用率
5,网络分层结构:五层;各层的协议都存放在主机的协议栈中
计算机网络总结 - Garfield - 张广辉的博客
路由器只有三层的原因是从MAC帧中提取出IP数据报的IP地址就可以实现转发。

二,物理层
1,信道,向某一方向传送信息的媒体,分为单工,半双工,全双工;
2,物理媒体:双绞线,同轴电缆,光纤;
3,带宽接入技术:ADSL,下行速率大于上行速率,可以利用电话网用户线;
三,数据链路层
1,数据链路层使用的信道主要有以下两种类型:  
点对点信道:这种信道使用一对一的点对点通信方式,如用户连接到公网时,则用户与公网通信就需要PPP。
广播信道:这种信道使用一对多的广播通信方式,仅限同一网段。

2,三个基本问题:封装成帧(帧定界符),透明传输(数据中不会出现帧定界符),差错校验(CRC);
3,点对点通信协议PPP:
4,适配器:就是网卡,计算机中的IP数据包通过适配器进行封装和解封,与局域网通信。网卡地址又叫 MAC地址,硬件地址。
5,以太网是一种基带总线局域网,局域网中同一网段使用广播通信方式,常用的拓扑有星形,环形,总线型,树形。广播通信协议 CSMA/CD:多点接入(多点介入总线),载波监听(发送前,检测总线上有没有其他的数据信号),碰撞检测(边发送边监听)。该协议只支持半双工,距离过远,该协议失效。
通过以上的拓扑可以看出,局域网内的主机均为相邻节点,所以局域网内数据的传送用MAC地址就可以找到。
计算机网络总结 - Garfield - 张广辉的博客
 

6,以太网的扩展:因为CSMA/CD会在距离过远时失效,所以需要进行网络的扩展。
以太网在物理层通过集线器宽展,扩展后仍属于同一网段;
数据链路层通过网桥连接成一个更大的以太网,原来的每个以太网成为一个网段,不同网段直接碰撞隔离,使整个网络吞吐量增大,网桥负责转发MAC帧,目前使用最多的网桥是透明网桥。
计算机网络总结 - Garfield - 张广辉的博客
 

  通过网络的扩展可以将一个小的局域网扩展为一个城域网或者广域网,但只要这些网络通过物理层或者数据链路层的扩展,主机属于同一网络,主机间就可以直接通信。

7,多接口网桥,以太网交换机。使每一个相互通信的网络中的主机都能像独占通信媒体那样,进行无碰撞地传输数据。例如N个用户通过交换机接入到一个10Mb/s的局域网,此时局域网的总线是10M,网络内部主机直接通信,则每个用户都可以享受 10Mb/s。其本质原因是通过交换机连接,连接的所有内容仍为同一网络,可以直接通信。

三,网络层(IP)
不同网络间的包交换,存储转发IP数据报。
1,网络层向上层只提供简单灵活的,无连接的,尽最大努力交付的数据报服务。IPV4协议:所有联网的主机都分配一个32位IP地址,并在网络层发送携带该IP地址的数据报。
2,网络互连:物理层:集线器;数据链路层:网桥;网络层:路由器;网络层以上:网关;
通过网桥互联之后,仍属于同一网络。路由器可以实现不同网络的互联。
3,IP地址:
计算机网络总结 - Garfield - 张广辉的博客
  计算机网络总结 - Garfield - 张广辉的博客
 
1)网络号+主机号;IP地址和网络号在因特网范围内唯一,主机号在所属网络中唯一。
2)A类,B类,C类地址用于单播,他们的网络号分别为1个,2个,3个字节;分别在开头标识为0,10,110;D类用于多播,标识为1110;
3)特点:a,IP管理机构只分配网络号给某单位,单位内部分配主机号;路由器仅根据网络号转发分组;
b,路由器至少应当连接两个网络,所以至少有两个IP;
c,具有不同网络号的网络必须通过路由器相连,用网桥或者集线器互联的网络网络号相同;
d,所有分配到网络号的局域网或者广域网地位平等;
4)IP地址与MAC地址
计算机网络总结 - Garfield - 张广辉的博客
 
计算机网络总结 - Garfield - 张广辉的博客
 
 路由器和主机的每个网口都会有一个MAC地址和一个IP地址,如图所示数据传送过程,在IP数据报中,源地址和目的地址始终为IP1和IP2,但MAC地址会每一跳都转化为每一跳的源和目的MAC。
5)ARP协议:IP地址-------MAC地址
RARP协议:MAC地址------IP地址
在每个主机或路由器内部都存在一个ARP高速缓存映射表,这个表经常更新。这两个协议都只是用于某个网络内部;如果上图所示情况,主机H1需要先把属于同一网络的路由器接口的MAC地址HA3解析出来进行一跳的转发;
6)路由器的FIB表(目的网络地址,下一条网络地址)
计算机网络总结 - Garfield - 张广辉的博客
 默认路由,是为了减小路由表的空间,一个网络只有很少的对外连接时很有用。
计算机网络总结 - Garfield - 张广辉的博客
 
4,子网与超网
1)子网:IP地址=网络号+子网号+主机号。其他网络发送给本单位某台主机的IP数据报,仍然根据目的网络号找到连接在本单位的路由器。但路由器收到数据报后,先找到目的子网,在交付给目的主机。
计算机网络总结 - Garfield - 张广辉的博客
 2)子网掩码
计算机网络总结 - Garfield - 张广辉的博客
当路由器获得目的IP时,先将目的IP地址与子网掩码进行与运算就可得到网络号。 
计算机网络总结 - Garfield - 张广辉的博客
 
3)超网CIDR
消除了A,B,C类网络的概念  IP地址=网络前缀+主机号,网络前缀就是之前的网络号+子网号;
219.223.195.99/20的形式表示
通过这种方式得到的网络号可能有多个匹配结果,但是要选择最长前缀匹配的结果。

5,控制报文协议ICMP:用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。比如PING命令。

6,路由协议与路由算法
路由协议:通过路由信息在相邻 路由器之间传递,确保所有路由器知道整个网络或者局部网络的拓扑信息,然后创建和更新 路由表。因特网的自制系统AS,AS内的路由协议为域内路由协议如RIP和OSPF,每个AS可以有不同的路由协议;AS间的为域间路由协议如BGP(边界路由器间交换信息;
路由算法:某个路由器通过接收到的路由信息来计算出路由表的算法,算法的设计要考虑网络延时和阻塞等情况。如迪杰斯特最短路径算法;
计算机网络总结 - Garfield - 张广辉的博客
 
边界路由器的作用是使一个局域网与公网相连,进行网络协议的转换等功能,我们称之为网关。局域网中的任何数据发到公网,先经过此网关。 隧道技术与NAT都是在网关处对数据包做处理

7,路由器的构成
路由选择:接受和发送路由信息,维护和控制路由表;
分组转发:包括交换结构和输入输出接口,根据转发表转发数据报;此处的转发表是从路由表映射得出的,应包含具体的输出MAC端口号等信息。

8,虚拟专用网VPN与隧道技术
VPN:为了节省IP,在某个机构内部的网络采用虚拟IP地址,该IP不可在公网上使用。当需要与公网进行通信时需要隧道技术,通过边缘路由将有内部IP地址的数据报封装成有公网IP的数据报进行在公网传送。
隧道技术:所谓隧道,实际上是路由器把一种网络层协议封装到另一个协议中以跨过网络传送到另一个路由器的处理过程。发送路由器将被传送的协议包进行加密封装,经过网络传送,接受路由器解开收到的包,取出原始协议;而在传输过程中的中间路由器并不在意封装的内容是什么,即使该内容并不可以在公网中传输。
计算机网络总结 - Garfield - 张广辉的博客
 
9,网络地址转换NAT
采用隧道技术是内部网络节点与相隔较远的内部网络节点进行通信,中间在公网传送时,边缘路由器对数据进行加密和解密处理。
另一种情况是当内部网络节点与公网的节点进行通信时,此时数据不可以进行加密,则需要采用NAT技术。NAT路由器将内部节点发来的带有内部IP地址的数据报转化为公网的IP,这样NAT路由器有多少公网IP就可以使内部网络多少主机同时与外部通信。数据报经过NAT路由器时,源IP和目的IP会发生改变,普通路由器不会;
计算机网络总结 - Garfield - 张广辉的博客
 NAPT是NAT基础上加上端口号,是一个公网IP可以供多台主机使用
计算机网络总结 - Garfield - 张广辉的博客


四,传输层
端点是socket=(IP:PORT)。
端口号用来区分同一台主机的不同应用程序。UDP和TCP各有65536个端口,其中1024以下的端口是系统默认的端口,一般不要用,如HTTP是TCP的80,FTP是TCP的21.

1,UDP:无连接的,尽最大努力交付,面向报文的,没有拥塞控制的,一对一或多对多的,首部开销小的传输;
其中面向报文是指:应用层发下来的报文,不管多长,加头后直接交给网络层。若太长,网络层进行拆分;若太短,网络层加头后影响效率。网络层传上来的报文也是原封不动的交给应用层。当从网络层收到的数据报中目的端口号非法时,直接丢弃该报文,并用ICMP向发送方发送错误信息。
计算机网络总结 - Garfield - 张广辉的博客
 
计算机网络总结 - Garfield - 张广辉的博客

2,TCP(唯一的可靠传输协议):面向连接的,点对点的(一对一),可靠交付的,全双工的,面向自节流的通信方式;
计算机网络总结 - Garfield - 张广辉的博客
 
1)停止等待协议:每发送完一个分组就停止发送,等待对方确认,收到确认后继续发送;长时间收不到确认,重新发送。
2)  滑动窗口协议:停止等待协议效率低下,所以使用流水线传输,可以持续发送多个分组,再决定是否需要重传。窗口大小代表了发送速率,因此通过滑动窗口控制发送速率来进行流量控制和防止拥塞。
滑动窗口与TCP缓存:
计算机网络总结 - Garfield - 张广辉的博客
 与UDP不同,应用层传下来的报文先存到TCP缓存中,发送方根据网络状况选择合适大小的发送窗口,发送窗口中的报文段只是缓存中的部分数据。
发送缓存>用用程序发来的数据>发送窗口=已发送未确认+允许发送的报文段;
接受缓存>顺序接收的+接受窗口中的(期待的+未按顺序的)接收方的确认只确认连续到达的分组。

流量控制:是指发送方的速率别太快,让接收方来得及接收。发送窗口的大小不能超过接收方通过ACK给出的接受窗口大小;
计算机网络总结 - Garfield - 张广辉的博客
 
拥塞控制:慢启动,拥塞避免,快重传,快恢复;


3)TCP连接
连接建立(三次握手机制)客户端发起连接,服务器等待连接
计算机网络总结 - Garfield - 张广辉的博客
图中的seq和ack分别为发送报文段的字节序号和确认序号。比如,发送端发了1,2,3,4,5一共五份数据,接收端收到了1,2,于是回ack= 3,然后收到了4(注意此时3没收到),此时的TCP会怎么办?我们要知道,因为正如前面所说的,SeqNum和Ack是以字节数为单位,所以ack的时候,不能跳着确认,只能确认最大的连续收到的包,不然,发送端就以为之前的都收到了。前两次握手均不能携带数据,但需要消耗掉各自的一个seq序号(下一次的序号加1),第三次握手可以携带数据,不携带数据不消耗序号。之后的报文段都是这样,如果携带数据,则消耗seq序号,不携带就不消耗

为什么需要客户端的第三次握手:当一个客户端发起的连接报文经过很久才到达服务器,此时客户端其实并不需要TCP连接了,所以这个请求报文称为已失效报文。服务器收到此报文后回复确认,如果没有第三次握手,连接已经建立了,但此连接不会有任何数据传送,所以浪费了服务器的资源。如果有第三次握手,则链接就不会建立了
 
连接释放(四次挥手机制)
先有客户端发起请求,然后服务器给与回复表示收到了;但此时服务器并没有同意连接释放,因为服务器还有可能有数据需要传送,于是进入TCP半关闭状态,只能由服务器发送数据;然后服务器发送同意信号,客户端回复确认完成断开。客户端在最后发完ACK后等待了2MSL,是让网络中所有的连接信号全都消失,防止失效的报文段影响之后的连接。
计算机网络总结 - Garfield - 张广辉的博客

状态机与握手挥手(牢记该图)
计算机网络总结 - Garfield - 张广辉的博客
 
4)重传机制
超时重传和SACK选择重传
选择重传在ACK包中增加了一个SACK选项
计算机网络总结 - Garfield - 张广辉的博客
 

五,应用层
1,域名系统DNS
DNS是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
域名:
计算机网络总结 - Garfield - 张广辉的博客

域名解析过程
计算机网络总结 - Garfield - 张广辉的博客
 2,FTP
FTP 是File Transfer Protocol(文件传输协议)的英文简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。采用客户端服务器方式。
计算机网络总结 - Garfield - 张广辉的博客
 
3,WWW万维网
万维网是一种网络信息存储形式,简称WEB。分为Web客户端和Web服务器程序。 WWW可以让Web客户端(常用浏览器)访问浏览Web服务器上的页面。 服务器上的文档是一个由许多互相链接的超文本(包含超链接的文本)组成的系统,客户端通过互联网访问。在这个系统中,每个有用的事物,称为一样“资源”;并且由一个全局“统一资源定位符”(URL)标识;这些资源通过超文本传输协议(HTTP)传送给用户,而后者通过点击链接来获得资源。

URL,http://<主机>:<端口>/<路径>,端口号可省略
HTTP:参见servlet

4,邮箱和协议
1)传统用户代理邮箱
计算机网络总结 - Garfield - 张广辉的博客
 
2)web邮箱
计算机网络总结 - Garfield - 张广辉的博客
 
由于SMTP只能传送有限的文本,所以需要用MIME对用户发的多媒体文件进行编码和解码。
计算机网络总结 - Garfield - 张广辉的博客


六,java网络编程
1,TCP与UDP的对比和适用场合
TCP:可靠性高,速度慢。
UDP:可靠性低,速度快。
http://blog.sina.com.cn/s/blog_583398590100ufbv.html
2,TCP  Socket
分为client端和server端,传输之前需要先建立连接。

1)服务器端有一个ServerSocket来接收客户端的连接
计算机网络总结 - Garfield - 张广辉的博客
 
计算机网络总结 - Garfield - 张广辉的博客
 
2)NIO的TCP,既可以是阻塞,也可以设置成非阻塞。下面实例是TCP连接过程的非阻塞
Server端
计算机网络总结 - Garfield - 张广辉的博客
 Client端
计算机网络总结 - Garfield - 张广辉的博客
 

3,UDP Socket
不区分客户端服务器,传数据前也不需要建立连接,只区分接收方和发送方,接收方有一个UDP packet,把接收来的byte数组先存在包裹里,再通过其他方式转化为其他数据类型。发送过程都需要先转化为byte数组,在封装到UDP packet中发送出去,并且在每个UDP包裹中都需要注明端口和地址,因为UDP无连接。
1)
接收方
计算机网络总结 - Garfield - 张广辉的博客
 发送方
计算机网络总结 - Garfield - 张广辉的博客
 2)NIO
打开连接,绑定自身主机的9999端口。
计算机网络总结 - Garfield - 张广辉的博客
 发送数据,发送到目的主机的80端口
计算机网络总结 - Garfield - 张广辉的博客
 非阻塞的接收数据
计算机网络总结 - Garfield - 张广辉的博客
 

4,Web Service
http://www.ruanyifeng.com/blog/2009/08/what_is_web_service.html
计算机网络总结 - Garfield - 张广辉的博客
 
计算机网络总结 - Garfield - 张广辉的博客
 SOAP 简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于
XML 协议,它被设计成在WEB上交换结构化的和固化的信息。

缺点:臃肿的注册和发现机制,低效的XML序列化手段,开销较高的http通信,复杂的部署和维护。

5,其他常用类
1)InetAddress:对IP地址等封装,他的构造方法不公开,所以只能通过它的静态方法创建。
InetAddress address=InetAddress.getByName("www.baidu.com");
输出: www.baidu.com/220.181.111.188
2)URL和URLConnection
取得指定URL中的内容
计算机网络总结 - Garfield - 张广辉的博客
 
项目接口部分设计:底层路由器将统计好的信息与WEB容器中的一个servlet页面关联,每次请求该servlet页面时,底层系统会去读取该信息。于是顶层通过URLConnect并配以相应的参数请求该servelt,然后就读取了需要的值。这样降低了模块间耦合性(顶层不需要被动的接受),不采用TCP的阻塞传输,提高了效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值