计算机网络

                                            计算机网络重点

单向通信(单工通信)——只能有一个方向的通信而没有反方向的交互。

双向交替通信(半双工通信)——通信的双方都可以发送信息,但不能双方同时发送(当然也 就不能同时接收)

双向同时通信(全双工通信)——通信的双方可以同时发送和接收信息。 


OSI分层      (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP分层(4层):网络接口层、              网际层、运输层、                            应用层。
五层协议     (5层):物理层、数据链路层、网络层、运输层、                            应用层。

网络互相连接起来要使用一些中间设备

中间设备又称为中间系统或中继(relay)系统。

Ø 物理层中继系统:转发器(repeater)、中继器。

Ø 数据链路层中继系统:网桥桥接器(bridge)

Ø 网络层中继系统:路由器(router)

Ø 网桥和路由器的混合物:桥路器(brouter)

网络层以上的中继系统:网关(gateway)




运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的UDP。  


TCP的特点:

 TCP 是面向连接的运输层协议。

每一条 TCP 连接只能有两个端点(endpoint),每一条TCP连接只能是点对点的(一对一)。

TCP 提供可靠交付的服务。

TCP 提供全双工通信。

 面向字节流

UDP是面向报文的:

发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交 下来的报文,既不合并, 也不拆分,而是保留这些报文的边界。

 应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。

 接收方 UDP IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整 的报文。

应用程序必须选择合适大小的报文。


TCP 的端口

端口用一个 16 位端口号进行标志。
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。

熟知端口,数值一般为 0~1023。
登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。
客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。


流量控制(flow control)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。


运输连接的三个阶段
运输连接就有三个阶段,即:连接建立数据传送连接释放。运输连接的管理就是使运输连接 的建立和释放都能正常地进行。

连接建立过程中要解决以下三个问题:

Ø 要使每一方能够确知对方的存在。

Ø 要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。

Ø 能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。

TCP 连接的建立都是采用客户服务器方式。


用三次握手建立 TCP 连接的各状态


4、连接的释放

数据传输结束后,双方都可释放连接,但一方(设为A)释放连接前需获得另一方(设为B)的允许,如果此时B方仍有数据要传输,则连接不得释放,A仍要接收B的数据,直至B方数据传输完毕后,B方发出释放连接的要求,得到A方的许可确认后,B释放连接,A等待2SML后释放连接,此时通信结束。


URG:Urget pointer is valid (紧急指针字段值有效)

SYN: 表示建立连接

FIN: 表示关闭连接

ACK: 表示响应

PSH: 表示有 DATA数据传输

RST: 表示连接重置。

TCP:状态控制码(Code,Control Flag)
标志位字段(U、A、P、R、S、F):占6比特。各 比特的含义如下:
  • URG:紧急比特(urgent),当URG=1时,表明紧急指针字段有效,代表该封包为紧急封包。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据), 且上图中的 Urgent Pointer 字段也会被启用。
  • ACK:确认比特(Acknowledge)。只有当ACK=1时确认号字段才有效,代表这个封包为确认封包。当ACK=0时,确认号无效。
  • PSH:(Push function)若为1时,代表要求对方立即传送缓冲区内的其他对应封包,而无需等缓冲满了才送。
  • RST:复位比特(Reset) ,当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
  • SYN:同步比特(Synchronous),SYN置为1,就表示这是一个连接请求或连接接受报文,通常带有 SYN 标志的封包表示『主动』要连接到对方的意思。。
  • FIN:终止比特(Final),用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。

TCP 滑动窗口(发送窗口和接收窗口)

TCP的滑动窗口主要有两个作用,一是提供TCP的可靠性,二是提供TCP的流控特性。同时滑动窗口机制还体现了TCP面向字节流的设计思路。

TCP的Window是一个16bit位字段,它代表的是窗口的字节容量,也就是TCP的标准窗口最大为2^16-1=65535个字节。

另外在TCP的选项字段中还包含了一个TCP窗口扩大因子,option-kind为3,option-length为3个字节,option-data取值范围0-14。窗口扩大因子用来扩大TCP窗口,可把原来16bit的窗口,扩大为31bit。


滑动窗口基本原理(转)

1)对于TCP会话的发送方,任何时候在其发送缓存内的数据都可以分为4类,“已经发送并得到对端ACK的”,“已经发送但还未收到对端ACK的”,“未发送但对端允许发送的”,“未发送且对端不允许发送”。“已经发送但还未收到对端ACK的”和“未发送但对端允许发送的”这两部分数据称之为发送窗口(中间两部分)。

当收到接收方新的ACK对于发送窗口中后续字节的确认是,窗口滑动,滑动原理如下图。

当收到ACK=36时窗口滑动。

2)对于TCP的接收方,在某一时刻在它的接收缓存内存在3种。“已接收”,“未接收准备接收”,“未接收并未准备接收”(由于ACK直接由TCP协议栈回复,默认无应用延迟,不存在“已接收未回复ACK”)。其中“未接收准备接收”称之为接收窗口。


发送窗口与接收窗口关系

TCP是双工的协议,会话的双方都可以同时接收、发送数据。TCP会话的双方都各自维护一个“发送窗口”和一个“接收窗口”。其中各自的“接收窗口”大小取决于应用、系统、硬件的限制(TCP传输速率不能大于应用的数据处理速率)。各自的“发送窗口”则要求取决于对端通告的“接收窗口”,要求相同。


滑动窗口实现面向流的可靠性

最基本的传输可靠性来源于“确认重传”机制。

TCP的滑动窗口的可靠性也是建立在“确认重传”基础上的。

发送窗口只有收到对端对于本段发送窗口内字节的ACK确认,才会移动发送窗口的左边界。

接收窗口只有在前面所有的段都确认的情况下才会移动左边界。当在前面还有字节未接收但收到后面字节的情况下,窗口不会移动,并不对后续字节确认。以此确保对端会对这些数据重传。


滑动窗口的流控特性

TCP的滑动窗口是动态的,我们可以想象成小学常见的一个数学题,一个水池,体积V,每小时进水量V1,出水量V2。当水池满了就不允许再注入了,如果有个液压系统控制水池大小,那么就可以控制水的注入速率和量。这样的水池就类似TCP的窗口。应用根据自身的处理能力变化,通过本端TCP接收窗口大小控制来对对对端的发送窗口流量限制。

应用程序在需要(如内存不足)时,通过API通知TCP协议栈缩小TCP的接收窗口。然后TCP协议栈在下个段发送时包含新的窗口大小通知给对端,对端按通知的窗口来改变发送窗口,以此达到减缓发送速率的目的。



 域名系统 DNS

域名的解析过程

主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文。

本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。


动态主机配置协议 DHCP(Dynamic Host Configuration Protocol)

动态主机配置协议 DHCP 提供了即插即用连网(plug-and-play networking)的机制。

这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。

DHCP 使用客户服务器方式:

需要 IP 地址的主机在启动时就向DHCP服务器广播发送发现报文DHCPDISCOVER),这时该主机就成为DHCP客户。

本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文。

DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池(address pool)中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文DHCPOFFER)。

DHCP中继代理(relay agency

并不是每个网络上都有 DHCP 服务器,这样会使DHCP服务器的数量太多。现在是每一个网络至少有一个DHCP中继代理,它配置了DHCP服务器的IP地址信息。

DHCP 中继代理收到主机发送的发现报文后,就以单播方式向DHCP服务器转发此报文,并等待其回答。收到DHCP服务器回答的提供报文后,DHCP中继代理再将此提供报文发回给主机。


SNMP 的网络管理 由三个部分组成 

SNMP 本身
管理信息结构 SMI
   (Structure of Management Information)
管理信息库 MIB
   (Management Information Base)。


问题

1)请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCPUDP呢?

答:IPInternet Protocol的简称,是网络层的主要协议,作用是提供不可靠、无连接的数据报传送。TCPTransmit Control Protocol(传输控制协议)的缩写,在运输层,TCP提供一种面向连接的,可靠的字节流服务;UDPUser Datagram Protocol(用户数据报协议)的缩写,在运输层,UDP提供不可靠的传输数据服务。


2)交换和路由的区别是什么?VLAN有什么特点?

交换是指转发和过滤帧,是交换机的工作,它在OSI参考模型的第二层。而路由是指网络线路当中非直连的链路,它是路由器的工作,在OSI参考模型的第三层。交换和路由的区别很多。首先,交换是不需要IP的,而路由需要,因为IP就是第三层的协议,第二层需要的是MAC地址;再有,第二层的技术和第三层不一样,第二层可以做VLAN、端口捆绑等,第三层可以做NATACLQOS等。

VLAN是虚拟局域网的英文缩写,它是一个纯二层的技术,它的特点有三:控制广播,安全,灵活性和可扩展性。


3)请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的?

答:交换机属于OSI第二层即数据链路层设备。它根据MAC地址寻址,通过站表选择路由,站表的建立和维护由交换机自动进行。路由器属于OSI第三层即网络层设备,它根据IP地址进行寻址,通过路由表路由协议产生。交换机最大的好处是快速,路由器最大的好处是控制能力强。


4)两台笔记本电脑连起来后ping不通,你觉得可能存在哪些问题?

答:(1)首先想到的就是你的网线问题。确认网线是否正确,电脑之间连的线和电脑与HUB之间连的线分正线、反线,是不同的。但是对于使用千兆位网卡的除外,千兆位网卡有自动识别的功能,既可以是正线也可以是反线。(2)局域网设置问题。电脑互连是要设置的。看看是否安装了必要的网络协议,最重要的是,IP地址是否设置正确。互连的时候,最好一台为主,一台为副,主的设为网关。(3)网卡驱动未正确安装。(4)防火墙设置有问题。(5)是否有什么软件阻止ping包。


5)我们在南京,与深圳的网络是通的,但和北京的网络不通,你以怎样的顺序查找问题所在?

答:查找路由器是否可以测试到目的地、所经过的路由器及路由延迟状态。通过这个命令看最后的一个数据包是在哪儿被丢弃或中断的。


6)在网络中有两台主机AB,通过路由器和其他交换机设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么判断故障点?怎么排除故障?

答:测试这两台机器是否连通:从一台机器ping另一台机器。如果ping不同,用traceroute命令可以确定是哪个路由器不能连通,然后再找问题是否在交换设备或HUB或网线等。


7)DNS ( Domain Name System )域名系统,简单描述其工作原理。  
答:当 DNS 客户机需要在程序中使用名称时,它会查询 DNS 服务器来解析该名称。 客户机发送的每条查询信息包括三条信息:包括:指定的 DNS 域名,指定的查询类型, DNS 域名的指定类别。 
基于 UDP 服务,端口 53. 该应用一般不直接为用户使用,而是为其他应用服务,如 HTTP , SMTP 等在其中需要完成主机名到 IP 地址的转换。


8)HTTP 协议?  
答: HTTP 超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统


9)数据链路层互联设备  
答:( 1 )网桥:互连两个采用不同数据链路层协议,不同传输介质与不同传输速率的网络,网桥互连的网络在数据链路层以上采用相同的协议。  
( 2 )交换机在数据链路层上实现互连的存储转发设备。交换机按每个包中的 MAC 地址相对简单地决策信息转发,交换机对应硬件设备,网桥对应软件。


10)TTL 是什么?作用是什么?哪些工具会用到它( ping traceroute ifconfig netstat )?  答: TTL 是指生存时间,简单来说,它表示了数据包在网络中的时间,经过一个路由器后 TTL 就减一,这样 TTL 最终会减为 0 ,当 TTL 为 0 时,则将数据包丢弃,这样也就是因为两个路由器之间可能形成环,如果没有 TTL 的限制,则数据包将会在这个环上一直死转,由于有了 TTL ,最终 TTL 为 0 后,则将数据包丢弃。 ping 发送数据包里面有 TTL ,但是并非是必须的,即是没有 TTL 也是能正常工作的, traceroute 正是因为有了 TTL 才能正常工作, ifconfig 是用来配置网卡信息的,不需要 TTL , netstat 是用来显示路由表的,也是不需要 TTL 的。


11)每个路由器在寻找路由时需要知道哪 5 部分信息?  答:目的地址:报文发送的目的地址  
邻站的确定:指明谁直接连接到路由器的接口上  路由的发现:发现邻站知道哪些网络  
选择路由:通过从邻站学习到的信息,提供最优的到达目的地的路径  保持路由信息:路由器保存一张路由表,它存储所知道的所有路由信息。


12)某学校获取到一个B类地址段,要给大家分开子网使用,鉴于现在上网设备急剧增多,管理员给每个网段进行划分的子网掩码设置为255.255.254.0,考虑每个网段需要有网关设备占用一个地址的情况下,每个网段还有多少可用的主机地址()

 因为子网掩码为255.255.254.0,第三段最后一位置能用,第四段8个位置都能用,所以可用地址为2^9=512,除去全1和全0,然后

还要减去网关设备占用一个地址,所以为509


13)QoS(Quality of Service)服务质量,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。 在正常情况下,如果网络只用于特定的无时间限制的应用系统,并不需要QoS,比如Web应用,或E-mail设置等。但是对关键应用和多媒体应用就十分必要。当网络过载或拥塞时,QoS 能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。


14)试将192.168.1.0/24网络划分为四个子网,写出分析过程及结果(每个子网的起止IP地址和子网掩码)。
首先192开头的是C类IP地址,默认的掩码是24位。而给定的也是24位的掩码,也就是说如果要划出4个子网的话,只能是占用主机位的位数,这个位数是多少呢?就是2的X次方=4 所以这个X是2  如果是划分出8个子网,就是2的三次方。
知道借两位后,子网掩码就变为/26
用两数表示二过制一共有4种可能
00 01 10 11
第一个子网就是192.168.1.0/26   起止IP地址:192.168.1.1——192.168.1.62   
第二个子网192.168.1.64/26   起止IP地址:192.168.1.65——192.168.1.126  
第三个子网192.168.1.128/26   起止IP地址:192.168.1.129——192.168.1.190
第四个子网192.168.1.192/26   起止IP地址:192.168.1.193——192.168.1.254
止的IP怎么算?网络位不就,主机位全1为广播地址,广播地址的前一个地址就是止的地址,以第一个子网举例:192.168.1.00  11 1111 
00表示网络位不变 后边全是1  。00 111111=63  这个是广播地址,止的地址就是192.168.1.62


15)Cookie,有时也用其复数形式  Cookies ,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。 简单来说,Cookies就是服务器暂时存放在你的电脑里的资料(.txt格式的文本文件),好让服务器用来辨认你的计算机。


16)
Ping是Windows下的一个命令,在Unix和Linux下也有这个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:Ping空格IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。
Ping实际上利用的就是ICMP ECHO和ICMP ECHO REPLY包来探测主机是否存在,所以Ping程序的流程十分简单:发送ICMP    ECHO包---- > 接收ICMP ECHO REPLY包
发送ICMP ECHO包时填充Identifier为进程ID, Sequence Number为从0递增计数,data填充为发送时间
接收ICMP ECHO REPLY包时检查Identifier, Sequence Number是否正确,通过IP报头的源地址字段获得回送报文的主机地址是否正确
ping命令采用了
ICMP的7和0协议端口
ping 的去包采用的是7
回来的包采用的是0 返回的包叫做echo-reply

17)

为什么TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态?

虽然双方都同意关闭连接了,而且握手的4个报文也都协调和发送完毕,按理可以直接回到CLOSED状态(就好比从SYN_SEND状态到ESTABLISH状态那样);但是因为我们必须要假想网络是不可靠的,你无法保证你最后发送的ACK报文会一定被对方收到,因此对方处于LAST_ACK状态下的SOCKET可能会因为超时未收到ACK报文,而重发FIN报文,所以这个TIME_WAIT状态的作用就是用来重发可能丢失的ACK报文,并保证于此

18)Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了

如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值