这个小结,很难写啊 ~~~网络的东西太多了 ~~主要是细节很多 ~~而且,协议也很多,感觉也没有必要去了解这些细节 ~~似乎找不到重点 ~~~也没好的办法 ~~~copy了一大堆资料,整理了几个问题 ~~~~希望可以勾勒出网络的框架 ~~有的是概要性质的,也有些是细节方面的,选择性的瞄一眼吧 ~~~貌似有的写的挺详细,有的就很简略 ~~~最后一看,有点像大杂烩了,嘿嘿嘿,能看完算你狠
l 电路交换技术、报文交换、分组交换
l OSI的模型 与 TCP/IP(*)
l CSMA/CD
l 网桥
l 交换机
l RIP 与 OSPF(*)
l 集线器与交换器比较
l 虚拟局域网VLAN
l 什么是三层交换
l 二层交换、三层交换、路由的比较
l 交换机与路由器比较(*)
l IP分片控制
l TCP为什么要三次握手?(*)
l TCP拥塞控制
l CS模型与SOCKET编程(*)
其他还有一些很小很小的问题,放到最后了,包括协议三个要素,协议分层优点,NAT,ICMP等等
我觉得网络的重点仍然是对网络的整体性概念,如果不是专门进行协议开发的话,一般不会深入到协议的细节。仍然有重点。协议的重点是TCP和IP,然后概要性需要了解的是UDP,ICMP,ARP,RIP,OSPF等等,其他像NAT、CIDR、DNS、HTTP、FTP、SNMP等有个简单的了解可能更好。
电路交换技术、报文交换、分组交换
分组交换的优点
优 点 |
所采用的手段 |
高效 |
在分组传输的过程中动态分配传输带宽,对通信链路是逐段占用 |
灵活 |
每个结点均有智能,为每一个分组独立地选择转发路由 |
迅速 |
以分组作为传送单位,可以不先建立连接就能向其他主机发送分组;网络使用高速链路 |
可靠 |
完善的网络协议;分布式多路由的分组交换网,使网络有很好的生存性 |
OSI的模型 与 TCP/IP
OSI每层功能及特点
物理层 为数据链路层提供物理连接,在其上串行传送比特流,即所传送数据的单位是比特。此外,该层中还具有确定连接设备的电气特性和物理特性等功能。物理层的作用:尽可能地屏蔽掉各种媒体的差异。
数据链路层 负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据。为做到这一点,在每一帧中必须同时带有同步、地址、差错控制及流量控制等控制信息。
网络层 为了将数据分组从源(源端系统)送到目的地(目标端系统),网络层的任务就是选择合适的路由和交换节点,使源的传输层传下来的分组信息能够正确无误地按照地址找到目的地,并交付给相应的传输层,即完成网络的寻址功能。
传输层 传输层是高低层之间衔接的接口层。数据传输的单位是报文,当报文较长时将它分割成若干分组,然后交给网络层进行传输。传输层是计算机网络协议分层中的最关键一层,该层以上各层将不再管理信息传输问题。
会话层 该层对传输的报文提供同步管理服务。在两个不同系统的互相通信的应用进程之间建立、组织和协调交互。例如,确定是双工还是半双工工作。
表示层 该层的主要任务是把所传送的数据的抽象语法变换为传送语法,即把不同计算机内部的不同表示形式转换成网络通信中的标准表示形式。此外,对传送的数据加密(或解密)、正文压缩(或还原)也是表示层的任务。
应用层 该层直接面向用户,是OSI中的最高层。它的主要任务是为用户提供应用的接口,即提供不同计算机间的文件传送、访问与管理,电子邮件的内容处理,不同计算机通过网络交互访问的虚拟终端功能等。
TCP/IP
网络接口层 这是TCP/IP协议的最低一层,包括有多种逻辑链路控制和媒体访问协议。网络接口层的功能是接收IP数据报并通过特定的网络进行传输,或从网络上接收物理帧,抽取出IP数据报并转交给网际层。
网际网层(IP层) 该层包括以下协议:IP(网际协议)、ICMP(Internet Control Message Protocol,因特网控制报文协议)、ARP(Address Resolution Protocol,地址解析协议)、RARP(Reverse Address Resolution Protocol,反向地址解析协议)。该层负责相同或不同网络中计算机之间的通信,主要处理数据报和路由。在IP层中,ARP协议用于将IP地址转换成物理地址,RARP协议用于将物理地址转换成IP地址,ICMP协议用于报告差错和传送控制信息。IP协议在TCP/IP协议组中处于核心地位。
传输层 该层提供TCP(传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)两个协议,它们都建立在IP协议的基础上,其中TCP提供可靠的面向连接服务,UDP提供简单的无连接服务。传输层提供端到端,即应用程序之间的通信,主要功能是数据格式化、数据确认和丢失重传等。
应用层 TCP/IP协议的应用层相当于OSI模型的会话层、表示层和应用层,它向用户提供一组常用的应用层协议,其中包括:Telnet、SMTP、DNS等。此外,在应用层中还包含有用户应用程序,它们均是建立在TCP/IP协议组之上的专用程序。
CSMA/CD:
载波监听多点接入/碰撞检测CSMA/CD(Carrier Sense Multiple Access with Collision Detection )
主要思想:边发送边监听。若监听到冲突,则冲突双方都立即停止发送。信道很快空闲,从而提高效率。
多点接入:总线型网络
载波监听:检测数据信号
碰撞检测:边发送数据边检测信道上的信号电压大小。发生冲突后进行退避。退避策略有多个。。。
网桥的优点:
1.过滤通信量,隔离冲突域、改善性能
2.扩大了物理范围
3.提高可靠性,网络出现故障,只影响个别网段。
4.可互联不同类型的局域网:不同物理层、速率。
工作原理:
1.网桥工作在混杂(promiscuous)方式,接收所有的帧;
2.网桥接收到一帧后,通过查询地址/端口对应表来确定是丢弃还是转发;
3.网桥刚启动时,地址/端口对应表为空,采用泛洪(flooding)方法转发帧,既收到的帧向除进入端口外的所有端口转发。在转发过程中采用逆向学习(backward learning)算法收集MAC地址。网桥通过分析帧的源MAC地址得到MAC地址与端口的对应关系,并写入地址/端口对应站表;网桥软件对地址/端口对应表进行不断的更新,并定时检查,删除在一段时间内没有更新的地址/端口项;
帧的路由过程
目的LAN与源LAN相同,则丢弃帧;
目的LAN与源LAN不同,则转发帧;
目的LAN未知,则洪泛帧,并逆向学习。
多个网桥(并行网桥)可能产生回路:解决办法:构造生成树(细节请google,我也不晓得)
交换机
交换机与网桥的区别:
1.端口数:网桥少、交换机多
2.连接对象:网桥连接局域网;交换机连接主机。
交换机特点:需要通信时,相关端口连通,进行无碰撞的数据传输。
交换方式:
1.存储转发:等到MAC帧全部收到,并经CRC再传输该帧。
2.直通交换(快速分组):只查MAC帧的前几位(目的地址),并快速分组转发。
RIP 与 OSPF
RIP协议的三个要点:
1.仅和相邻路由器交换信息
2.交换当前本路由器知道的所有信息
3.按固定时间间隔交换信息
路由表更新原则是找出到各个目的网络的最短距离即距离相量算法。
RIP的问题
优点:实现简单,开销较小。
缺点:好消息传得快,而坏消息传得慢。
OSPF是一个链路状态协议
在一个链路状态协议中,路由器并不与其邻站交换距离信息。它采用的是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去。每个路由器接收这些链路状态信息,并建立起完整的路由表。
OSPF还有着一些优于RIP的特点:
1) OSPF可以对每个I P服务类型计算各自的路由集。这意味着对于任何目的,可以有多个路由表表项,每个表项对应着一个IP服务类型。
2) 给每个接口指派一个无维数的费用。可以通过吞吐率、往返时间、可靠性或其他性能来进行指派。可以给每个IP服务类型指派一个单独的费用。
3) 当对同一个目的地址存在着多个相同费用的路由时,OSPF在这些路由上平均分配流量。我们称之为流量平衡。
4) OSPF支持子网:子网掩码与每个通告路由相连。这样就允许将一个任何类型的IP地址分割成多个不同大小的子网(变长度子网)。到一个主机的路由是通过全1子网掩码进行通告的。默认路由是以IP地址为 0.0.0 .0、网络掩码为全0进行通告的。
5) 路由器之间的点对点链路不需要每端都有一个IP地址,我们称之为无编号网络。这样可以节省I P地址—现在非常紧缺的一种资源。
6) 采用了一种简单鉴别机制。可以采用类似于RIP-2机制的方法指定一个明文口令。
7) OSPF采用多播,而不是广播形式,以减少不参与OSPF的系统负载。
集线器与交换器
从OSI体系结构来看,集线器属于OSI的第一层物理层设备,而交换机属于OSI的第二层数据链路层设备。这就意味着集线器只是对数据的传输起到同步、放大和整形的作用,对数据传输中的短帧、碎片等无法有效处理,不能保证数据传输的完整性和正确性;而交换机不但可以对数据的传输做到同步、放大和整形,而且可以过滤短帧、碎片等。
从工作方式来看,集线器是一种广播模式,也就是说集线器的某个端口工作的时候其他所有端口都有名收听到信息,容易产生广播风暴。当网络较大的时候网络性能会受到很大的影响,那么用什么方法避免这种现象的发生呢?交换机就能够起到这种作用,当交换相工作的时候只有发出请求的端口和目的端口之间相互响应而不影响其他端口,那么交换机就能够隔离冲突域和有效地抑制广播风暴的产生。
从隔离的冲突域来看,集线器不管有多少个端口,所有端口都共享一条带宽,在同一时刻只能有两个端口传送数据,其他端口只能等待;同时集线器只能工作在半双工模式下。而对于交换机而言,每个端口都有一条独占的带宽,当两个端口工作时并不影响其他端口的工作,同时交换机不但可以工作在半双工模式下也可以工作在全双工模式下。
虚拟局域网VLAN
由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。虚拟局域网特点:
1.同一桥接网络上的不同主机及网络设备逻辑地分割成不同的组,组与组间不能直接进行数据交互,这样就避免了不同组间相互干扰,也保证同一组内数据的安全。
2.每个VLAN 帧都有一个明确的标识,指明发送这个帧的工作站是属于那一个VLAN。
3.当任意结合的局域网络构成VLAN时,本机信息包含了IEEE 802.10 VLAN 的标识ID,如果此ID不能被设备所接收则被过滤掉,只有本机的信息才能从本交换机发出。这种策略的用途为可以实现与IEEE 802.10不兼容的设备/网络的透明通讯。
为什么要VLAN?
安全管理的需要:VLAN提供了一种把物理LAN中的成员重新进行分组的办法。这样,可以根据管理或安全的需要约束物理LAN成员之间的通信关系,使物理上分布在异地的物理LAN成员由于同一个管理目标走到一起。
节省布线成本:VLAN的实施是通过软件实现的,因此,无需为改动计算机的逻辑关系而更改网络的布线和拓扑结构。
限制LAN中的广播通信量:VLAN技术能保证只有同一VLAN中的成员之间的通信才是直接进行的,而不同VLAN的成员之间的通信必须经过交换机的过滤。而且VLAN限制广播的方法是基于桥接方式的,它比基于路由方式的限制广播的方法效率要高。VLAN技术能够在进行逻辑分组、限制广播和保证效率等要求之间达到较佳的平衡。
VLAN与物理LAN的关系
1.位于不同物理LAN中的主机可以属于同一个VLAN中,而位于同一个物理LAN的主机可以属于不同的VLAN中。
2.同一VLAN中的不同物理LAN上的主机可以直接通信,而位于同一物理LAN的属于不同VLAN的主机不能直接通信。
什么是三层交换
三层交换(也称多层交换技术,或IP交换技术)是相对于传统交换概念而提出的 ,二层交换技术+三层转发技术。第三层交换的实质含义是基于第三层协议地址来建立第二层的数据通路,交换看起来是在第三层进行的。而且第三层协议数据流被映射为第二层数据流。具体过程
假设两个使用IP协议的站点A、B通过第三层交换机进行通信,发送站点A,接收站B。
1.A把自己的IP地址与B站的IP地址比较,判断B站是否与自己在同一子网内。
2.若B与A在同一子网内,则进行二层的转发。
3.若B与A不在同一子网内,A向“缺省网关”发出ARP(地址解析)封包,而“缺省网关”的IP地址其实是三层交换机的三层交换模块。
4.如果三层交换模块在以前的通信过程中已经知道B站的MAC地址,则向发送站A回复B的MAC地址。
5.否则三层交换模块根据路由信息向B广播一个ARP请求。B得到此ARP请求后向三层交换模块回复其MAC地址
6.三层交换模块保存此地址并回复给发送站A,同时将B站的MAC地址发送到二层交换引擎的MAC地址表中。
7.此后,当A向B发送的数据包便全部交给二层交换处理,信息得以高速交换。由于仅仅在路由过程中才需要三层处理,绝大部分数据都通过二层交换转发,因此三层交换机的速度很快,接近二层交换机的速度,同时比相同路由器的价格低很多。“一次选路,多次交换”
二层交换、三层交换、路由的比较
二层交换机
1.主要用在小型局域网中,这样的网络环境下,广播包影响不大,二层交换机的快速交换功能、多个接入端口和低廉价格为小型网络用户提供了很完善的解决方案。
2.在这种小型网络中根本没必要引入路由功能从而增加管理的难度和费用,所以没有必要使用路由器,当然也没有必要使用三层交换机。
三层交换机
1.为IP设计的,接口类型简单,拥有很强二层包处理能力,适用于大型局域网。
2.为了减小广播风暴的危害,把大型局域网划分成一个个的小局域网(小网段),则导致不同网段这间存在大量的互访,二层交换机没办法实现网间的互访;路由器则由于端口数量有限,路由速度较慢,限制了网络的规模和访问速度。
路由器
1.端口类型多,支持的三层协议多,路由能力强,所以适合于在大型网络之间的互连。
2.路由器的主要功能不在于在端口之间进行快速交换,而是要选择最佳路径,负载分担,链路备份和路由信息交换。
3.是否使用三层交换机替换路由器则视具体情况而定(网络流量、响应速度要求和投资预算)。
4.三层交换机的最重要目的是加快大型局域网内部的数据交换,揉合进去的路由功能也是为这目的服务的,所以它的路由功能没有同一档次的专业路由器强。
5.在网络流量很大的情况下,如果三层交换机既做网内的交换,又做网间的路由,必然会大大加重了它的负担,影响响应速度。在网络流量很大,但又要求响应速度很高的情况下由三层交换机做网内的交换,由路由器专门负责网间的路由工作,这样可以充分发挥不同设备的优势,是一个很好的配合。当然,如果受到投资预算的限制,由三层交换机兼做网间互连,也是个不错的选择。
交换机与路由器
交换机的作用可以简单的理解为将一些机器连接起来组成一个局域网。而路由器的作用在于连接不同的网段并且找到网络中数据传输最合适的路径 。
1.工作层次不同
最初的的交换机是工作在OSI/RM开放体系结构的数据链路层,也就是第二层,而路由器一开始就设计工作在OSI模型的网络层。由于交换机工作在OSI的第二层(数据链路层),所以它的工作原理比较简单,而路由器工作在OSI的第三层(网络层),可以得到更多的协议信息,路由器可以做出更加智能的转发决策。
2. 数据转发所依据的对象不同
交换机是利用物理地址或者说MAC地址来确定转发数据的目的地址。而路由器则是利用不同网络的ID号(即IP地址)来确定数据转发的地址。IP地址是在软件中实现的,描述的是设备所在的网络,有时这些第三层的地址也称为协议地址或者网络地址。MAC地址通常是硬件自带的,由网卡生产商来分配的,而且已经固化到了网卡中去,一般来说是不可更改的。而IP地址则通常由网络管理员或系统自动分配。
3. 传统的交换机只能分割冲突域,不能分割广播域;而路由器可以分割广播域
由交换机连接的网段仍属于同一个广播域,广播数据包会在交换机连接的所有网段上传播,在某些情况下会导致通信拥挤和安全漏洞。连接到路由器上的网段会被分配成不同的广播域,广播数据不会穿过路由器。虽然第三层以上交换机具有VLAN功能,也可以分割广播域,但是各子广播域之间是不能通信交流的,它们之间的交流仍然需要路由器。
4 路由器提供了防火墙的服务
路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而可以防止广播风暴。
交换机一般用于LAN-WAN的连接,交换机归于网桥,是数据链路层的设备,有些交换机也可实现第三层的交换。 路由器用于WAN-WAN之间的连接,可以解决异性网络之间转发分组,作用于网络层。他们只是从一条线路上接受输入分组,然后向另一条线路转发。这两条线路可能分属于不同的网络,并采用不同协议。相比较而言,路由器的功能较交换机要强大,但速度相对也慢,价格昂贵,第三层交换机既有交换机线速转发报文能力,又有路由器良好的控制功能,因此得以广泛应用。
IP分片控制
IP(IPV4)为什么要分片?如何控制分片?分片在何处?为什么?分片在何处重组?分片的数据包时越大越好还是越小越好?为什么?
分片原因:物理网络都存在最大的传输单元限制,也就是MTU限制,IP报文较大时,无法将一个IP数据包封装在一个物理帧中。因此需要将IP数据拆分成多个报文,多次发送出去。以太网的MTU一般为1500个字节(去掉物理网络的帧头帧尾,实际传输数据无法达到1500)。IP数据最大可达64k(IP协议中长度字段为16位,因此最大报文可达2^16=64k)
IP分片控制:IP首部中有三个字段参与分片控制。三个字段分别是标识(Identificatoin,16bits),标志(Flags,3bits) 与 片偏移量(Fragment offset,13bits,以字节为单位)。Identificatoin唯一的标识了数据报,Identificatoin在发送方全局唯一。通过这三个字段可以将属于同一报文的不同分片重组成一个完成的报文,详细不解释了。
IP分片一般在路由器处进行:当经过一个大MTU的物理网络到达一个小MTU的物理网络的时候,路由器会将数据报拆分使其能够通过小MTU的物理网络传输。没有在发送端分片的原因是因为发送源无法知道路径上最小的MTU到底是多大。
IP在目的站主机进行重组:因为它允许每个分片能够独立选择路由,不需要中间路由器存储和重组分片。但它也有缺点:丢失一个数据片意味着丢失整个数据报;小的数据报文通过较大MTU的物理网络时效率较低。
IP分片越大越好:分片越大,则分片数量越少,那么选路负担会减轻;分片数量少,那么出错的几率也低;另外,分片数量越少,额外的报文首部数据越少,信道利用率更高。
IPV6对分片有一定改变。IP分片不再在中间路由器进行。分片是端对端的,在发送源分片,目的站重组。负责分段的源站可以选择1280字节的最小MTU,也可以执行路径MTU发现(Path MTU Discovery)技术,获取从源站到目的站最小的MTU。采用端到端分片的目的是为减少路由器的负担,这样路由器能够处理能够的报文。端到端分片也造成一个后果,就是数据报文长度超过物理网络的MTU后会被丢弃(因为路由可能会被改变),然后向源站返回一个ICMP报文。
为什么要三次握手?
我们知道,3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。 现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机A和B之间的通信,假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
tcp拥塞控制
congeston collapse:当网络发生拥塞后,数据报填满路由器缓存,路由器满负荷路由,对机器则表现为网络时延加大,网络时延加大后,那么造成数据报超时的几率增大,数据报超时后,主机通常的反应就是重传,报文重传不会减轻拥塞,只会加重拥塞。
发送源对拥塞响应:TCP标准推荐处理技术:慢启动,加速递减
加速递减策略:一旦发生拥塞(路由器丢弃报文时会发送ICMP源站抑制报文),那么立即将拥塞窗口减半 (拥塞窗口将影响滑动窗口协议的窗口大小);对于保留在发送窗口中的报文段,将重传定时器的时限加倍(这样能够容忍更大的网络时延,使得因报文超时而重传的可能性降低)
慢启动恢复:在启动新连接的传输或者拥塞之后增加通讯量时,仅仅以一个报文段作为拥塞窗口的初始值,而每当收到一个确认后,将拥塞窗口增加1。
慢启动是为了防止通讯量在0和拥塞间剧烈震荡。想象一下,如果窗口直接全部恢复,那么将会瞬时发送大量报文,将很可能马上导致拥塞,拥塞后通讯量马上又会暴减;通讯量减少后马上又恢复,马上又将导致拥塞。
拥塞避免:当拥塞窗口到达拥塞时窗口大小的一半时,TCP将进入拥塞避免状态,降低窗口增大的速度。此时窗口中所有的报文段都被确认之后,窗口大小也只能增加1。拥塞避免是为了避免窗口增加过快以至于导致更多的拥塞。
路由器对拥塞响应:丢弃报文
丢弃策略有尾部丢弃与随机早期丢弃RED。尾部丢弃是当路由器缓存满了以后,后面来的报文直接全部丢弃。
随机早期丢弃则是在路由器缓存快要满时随机性的丢弃报文,使部分发送主机提前进行拥塞控制状态,从而避免全局同步。
RED的详细策略:数据报到达时,若缓存已满,则丢弃报文,若缓存未满,但大小已经超过了上限阈值,则按概率p丢弃该报文。
CS模型与SOCKET编程
画了两个示意图,根据印象画的,图里面读取数据与发送数据的顺序可以任意按照自己的意愿进行设置。如果有问题,欢迎拍砖。另外,实际进行socket开发的时候可能要比这个过程要复杂一些,还需要考虑一些其他问题,比如,字节顺序,阻塞还是非阻塞,如果有多个socket,该如何进行控制?(IO复用,select, poll)
基于UDP的
基于TCP的
其他小topic
UDP:提供和IP报文一样的服务: 无连接、 无流控、 无拥塞控制;Lan中效果很好;在Wan中效果较差
IGMP:组播协议
SNMP:网络管理
ARP,RARP:提供IP地址与MAC地址映射
解决IP地址短缺的办法:子网划分,CIDR,NAT
一个网络协议主要由以下三个要素组成:
1.语法,即数据与控制信息的结构或格式;
2.语义,即需要发出何种控制信息,完成何种动作以及做出何种响应;
3.同步,即事件实现顺序的详细说明。
协议分层
为简化问题、减少协议设计的复杂性,大多数网络都采用类似于外交官的层次结构,按层或级的方式来组织,因此协议也是分层次的。分层可以带来如下好处:
(1)各层之间是独立的。
(2)灵活性好。
(3)结构上可分割开。
(4)易于实现和维护。
(5)能促进标准化工作。
全双工通信
全双工数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。
无线局域网标准:IEEE802.11:2Mbps
IEEE802.11b: 10M 、 11M
IEEE 802.11a : 25M
IEEE 802.11g : 54M
链路层协议:这几个俺是搞不太清楚的。略去。
停止等待协议
连续ARQ
滑动窗口协议
HDLC
PPP
SLIP
同步与异步传输
数字信号传输到接收端时,接收端必须判断所收到的码元是1还是0,判断的方法有同步和异步(asynchronous)两种方式。
同步方式:收发双方有相同的时钟,因此接受方知道在何时接收每个数据位。同步方式中,发送端连续发送一串字符(或数据块),一个字符紧接在另一个字符之后,字符间没有间隙。每一个数据块用一个同步字符SYN开始,用一个SYN 结束。
异步方式:发送端设备可以在任何时刻向信道发送信号,而不管接收方是否知道已开始发送操作。异步方式规定在传送字符的首末分别设置1位起始 和1位或1.5位或2位停止位,它们分别表示字符的开始和结束。
信道复用技术
频分复用:当信道带宽大于各路信号的总带宽时,可以将信道分割成若干个子信道,各个子信道间要留一个宽度(保护带)每个子信道用来传输一路信号,这就是频分多路复用。
时分复用:当信道能达到的数据传输率大于各路信号的数据传输率总和时,可以将使用信道的时间分成一个个的时间片,按一定规则将这些时间片分配给各路信号,每一路信号只能在自己的时间片内独占信道进行传输,这就是时分多路复用。
波分多路复用:FDM应用于光纤信道的一个变例。不同的信源使用不同波长的光波来传输数据,各路光波经过一个棱镜或衍射光栅合成一个光束在光纤干道上传输,在接收端利用相同的设备将各路光波分开。
码分多址(Code Division Multiple Access,CDMA):,在CDMA中,每个比特时间又再分成m个码片,每个站分配一个唯一的m比特码序列,当某个站欲发送“1”时,它在信道中发送它的码序列,当欲发送“0”时,它就发送它的码序列的反码。
IP地址与MAC地址
1.IP地址放在IP数据报的首部;硬件地址则放在MAC帧的首部
2.IP层抽象的互连网上,只看到IP数据报;
3.路由器只根据目的站的IP地址进行选择;
4.在具体的物理网络的链路层,只看到MAC帧;IP数据报被封装在MAC帧里面;
5.路由器都有各自的IP地址和两个硬件地址;
问题:
1.主机或路由器怎样知道应当在MAC帧的首部添入什么样的硬件地址?(ARP)
2.路由器中的路由表是怎样得到的?(动态路由协议,如RIP,OSPF,BGP等)
无分类编址CIDR
CIDR消除了传统的A类、B类和C类地址以及划分子网的概念。使用网络前缀来代替网络号和子网号。使用斜线记法。例如,128.14.46.34/20。
在路由器中的路由表的项目也应作相应的调整。由“网络前缀”和“下一跳地址”组成。解决多个匹配的原则是:应当从匹配结果中选择具有最长网络前缀的路由(最长前缀匹配)。
IP多播( Multicast)
IP多播是指一个IP报文向一个“主机组”的传送,这个包含零个或多个主机的主机组由一个单独的IP地址标识。除了目的地址部分,多播报文与普通报文没有区别,网络尽力传送组播报文但是并不保证一定送达。多播使用D类地址。
IP路由算法框架
从IpPacket中提取目的IP地址D,计算网络前缀N;
If N与路由器直接连接的 网络地址匹配
Then 在该网络上直接投递
Else If RT中包含到D的路由
Then 将IpPacket发送到RT中指定的下一站
Else lf RT中包含到N的路由
Then 将IpPacket发送到RT中指定的下一站
Else If RT中包含默认路由
Then 将IpPacket发送到路由表中指定的默认路由器
Else 路由选择错误;
ICMP
作用:报告差错情况和提供有关异常情况的报告。
引入icmp原因:ip不提供出错信息,网络中存在差错,ip不提供可靠性保证。常见ICMP报文有终点不可达、源站抑制、时间戳请求或回答、路由器询问或通告等
在对 ICMP 差错报文进行响应时,永远不会生成另一份 ICMP 差错报文,why?原因同上,避免死循环:如果没有这个限制规则,可能会遇到一个差错产生另一个差错的情况,而差错再产生差错,这样会无休止地循环下去。另外,在发生拥塞时,差错报文本身会加剧网络的拥塞情况。 PS:ICMP 报文使用 IP 发送数据,但并不把它看成是高层协议,它是 IP 的一个必要部分。用 IP 传递 ICMP报文的原因是可能需要经过几个物理网路才能到达其最终目的地,因此不能仅用物理传送来投递它们
双协议栈
网络互联的中间设备
中继器(Repeater) 物理层
网桥(Bridge),交换机 数据链路层
路由器(Router) 网络层
网关(Geteway) 网络层以上
RIP必须处理的3类问题
1.路由环路问题:不能完全检测出路由环路;假定其他路由器都是可信的
2.路由稳定问题:路由长度必须有上限,RIP采用16作为上限。16表示不可达、3.或者路径无限长。
慢收敛、无限计数问题:更新报文在网络中的传播速率慢,路由达到一致性的收敛速率慢
面向连接与无连接
面向连接服务
1.连接:两个数据实体为进行数据通信而进行的一种结合
2.面向连接服务过程:连接建立、数据传输、连接释放。
3.虚电路服务:
4.面向连接的服务适应:一定时间内向同一个目的地发送许多报文。
无连接服务
1.两实体间通信不需先建立好一个连接。
2.特点:灵活方便和比较迅速。不能防止报文丢失、重复或失序,属不可靠连接。
3.适用:传送少量零星报文
虚电路与数据报服务
对比的方面 |
虚电路服务 |
数据报服务 |
思路 |
可靠通信应当由网络来保证 |
可靠通信应当由用户主机来保证 |
连接的建立 |
必须有 |
不要 |
目的站地址 |
仅在连接建立阶段使用,每个分组使用短的虚电路号 |
每个分组都有目的站的全地址 |
路由选择 |
在虚电路建立时进行,所有分组均按同一路由 |
每个分组独立选择路由 |
当结点出故障时 |
所有通过出故障的结点的虚电路均不能工作 |
出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 |
总是按发送顺序到达目的站 |
到达目的站时不一定按发送顺序 |
端到端的差错处理和流量控制 |
由分组交换网负责 |
由用户主机负责 |
三次握手完成的两个主要功能
1.确保双方都已准备好数据资料传送
2.确定了双方的起始序号,窗口大小等资源信息
TCP用可变滑动窗口解决流量控制
流量控制必要性:由于发送速率可能大于接收速率、接收缓冲区不是足够大不能缓存所有接收到的报文、接收端的应用进程未能及时从接收缓冲区读取数据等原因,TCP接收端的接收缓冲区很快就会充满;从而造成不能接收后续的数据,发送端此时发送数据也是不必要的,因此需要流控。
流控主要解决TCP发送端和接收端间的速率匹配;即如何根据接收端的当前接收能力来调整发送端的发送速率。
我觉得这个也比较重要。但是不想写了。不好写。网络书一般都有。TCPIP详解在第20章。
TCP的特殊服务
1、PUSH机制:为那些需要及时传输请求、及时处理请求并回应的进程通信应用提供保障的一种机制;
2、紧急数据 为在TCP数据流中及时插入和传输紧急数据提供支持的一种服务。紧急数据不是按序处理的一种数据。PUSH机制中,数据是按序处理的。
TTL字段的作用:防止死循环了。比如说,当路由器瘫痪或者两个路由器之间的连接丢失时,路由协议有时会去检测丢失的路由并一直进行下去。在这段时间内,数据报可能在循环回路被终止。TTL字段就是在这些循环传递的数据报上加上一个生存上限。
TCP计时器:四个,重传计时器,keep alive计时器,坚持计时器与时间等待计时器
重传计时器 报文丢失 要设置超时时间,重传报文
keep alive计时器:过一个时间段探测tcp连接是否有效
坚持计时器:流量控制中的0窗口大小通报
时间等待计时器:关闭连接
TCP提供可靠通信的机理
问题
底层协议不可靠、高层协议如何可靠
产生的问题:报文丢失、出错、延迟、失序
解决办法
1)报文出错:差错控制
2)报文丢失、出错:确认、重传
3)报文延迟:报文丢失假象:重传 消除重复报文(报文编号)
4)报文失序:依序接受
5)收发同步、协调:流控机制,滑动窗口
最后再放几个问题,有些是细节问题:
1.怎样理解“Internet的互联是基于网络的互联,而不是基于主机的互联”
2.请谈谈你对IP地址、MAC地址的理解
3.IP报文的分片和重装是有什么设备完成的?原因何在
4.路由器是如何处理IP报文中的TTL字段的?IP报文中TTL的作用是什么?
5.能否让IP报文能够按照某个预先设定的路径到达目的地?若能,请告知怎么做?若不能,请阐述理由。
6.请阐明IP报文的直接交付和间接交付过程。
7.IP报文在传输过程中会出现某种差错,为何ICMP只能向源站报告差错?
8.请阐述距离向量和链路状态路由协议的优劣。
9.UDP数据报协议只是在IP数据报服务的基础上增加了很少的一点功能,且和IP一样是不可靠的,那么UDP是否可由IP替代呢?请说明理由。
10. IP不可靠的,而基于IP的TCP确是可靠的,试说明原因?
11. TCP确认报文丢失,是否会引起重传?请举例说明。
12. 什么是TCP糊涂窗口综合症?它是怎么引起的?
13. TCP采用的拥塞控制策略是什么?
14. 组播与单播的差异体现在哪些方面?
15. 请阐明基于TCP、UDP端口映射的NAT转换原理
16. 为何一台主机从一个网络移到另一个网络需要改变其网络地址?一台正使用TCP进行通信的主机,改变其网络地址对其TCP通信产生何种影响?
17. 多媒体实时通信,通常采用UDP协议,原因何在?
18. 试从TCP的报文格式来说明TCP支持双工通信。
19. BGP协议为使用路径向量,而不是用距离向量和链路状态,原因何在?
参考资料:
TCP详解卷一协议
用TCPIP进行网际互联
谢希仁版网络原理
互联网络协议PPT
网络原理PPT
局域网PPT
TCP连接建立与关闭
http://hi.baidu.com/layer7/blog/item/cb1243166bd6f11c962b430f.html
Internet控制报文协议ICMP
http://hi.baidu.com/layer7/blog/item/b140a79bdef70db1c8eaf422.html
IPv6邻居发现机制
http://sj.media.edu.cn/xiayidai/index2.php?IDx=204
计算机笔试的一些问题
http://hi.baidu.com/xianfir/blog/item/644980353040e01490ef39aa.html
个人blog
TCP/IP协议 之一
http://blog.csdn.net/kofsky/archive/ 2008/05/21 /2467784.aspx
TCP数据流传输遇到的问题
http://blog.csdn.net/kofsky/archive/ 2008/06/05 /2514462.aspx
Select()系统调用及文件描述符集fd_set的应用
http://blog.csdn.net/kofsky/archive/ 2008/02/22 /2112989.aspx
tcp/ip协议 之二
http://blog.csdn.net/kofsky/archive/ 2008/07/01 /2603556.aspx
SNMP
http://blog.csdn.net/kofsky/archive/ 2008/09/17 /2944280.aspx
TCPIP之三:
http://blog.csdn.net/kofsky/archive/ 2008/09/02 /2868982.aspx
其他如果还有些重要的话,我觉得就是子网划分了。就是给一个IP地址,然后有一些需求信息,然后让你划分成几个子网。这个并不难~~我看能不能在网上找个这样的例子~~~
完了