------------------------------------------------------------------------------------------------------------------------
分层体系:
OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。
五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。
每一层的作用如下:
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)
IP地址的分类
A类地址:以0开头, 第一个字节范围:0~127(1.0.0.0 - 126.255.255.255);
B类地址:以10开头, 第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);
C类地址:以110开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);
10.0.0.0—10.255.255.255, 172.16.0.0—172.31.255.255, 192.168.0.0—192.168.255.255。(Internet上保留地址用于内部)
---------------------------------------------------------------------------------------------------------------------------
网络设备
假设一集线器存在7个端口,共连接了5台计算机,那么该网络环境中存在冲突域的个数为(1)?
集线器的所有端口是一个冲突域,交换机的每个端口是一个冲突域,注意这两个不一样
交换机工作于OSI参考模型的第二层,被广泛应用于二层网络交换,俗称“二层交换机”。
交换机的种类有:二层交换机、三层交换机、四层交换机、七层交换机分别工作在OSI七层模型中的
第二层、第三层、第四层和第七层,并因此而得名。
工作原理:交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,
当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)
挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,
接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表中。
特点:1.独享宽带. 2.全双工.
路由器工作在OSI模型的第三层——即网络层.它根据IP地址进行寻址,通过路由表路由协议产生。
路由器的两个主要作用
1.连通不同的网络,2.选择信息传送的线路。
网关(Gateway)网络层以上的设备.网关顾名思义就是连接两个网络的设备
网关(gateway)与路由器(router)的定义不同。网关(gateway)能在不同协议间移动数据,
而路由器(router)是在不同网络间移动数据,相当于传统所说的IP网关(IP gateway)。
-------------------------------------------------------------------------------------------------------------------------
socket编程,服务器端和客户端各个函数
服务器端:socket(), bind(), listen(), accept(),….close(),
客户端:socket(), connect(),close()等等
----------------------------------------------------------------------------------------------------------------------
电路交换的三个阶段:
(1)建立连接 (2)通信 (3)释放连接
电路交换具有以下优缺点:
优点:
(1)由于通信线路为通信双方用户专用,数据直达,所以传输数据的时延非常小。
(2)通信双方之间的屋里通路一旦建立,双方可以随时通信,实时性强。
(3)双方通信时按发送顺序传送数据,不存在失序问题。
(4)电路交换既适用于传输模拟信号,也适用于传输数字信号。
(5)电路交换的交换设备及控制均比较简单。
缺点:
(1)电路交换平均连接建立时间对计算机通信来说较长。
(2)电路交换家里连接后,物理通路被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用率低。
(3)电路交换时,数据直达,不同类型,不同规格,不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。 分组交换分组交换是以分组为单位进行传输和交换的,它是一种存储——转发交换方式,即将到达交换机的分组先送到存储器暂时存储和处理,等到相应的输出电路有空闲时再送出。
分组交换具有以下优缺点。
优点:
(1)分组交换不需要为通信双反预先建立一条专用的通信线路,不存在连接建立时延,用户可随时发送分组。
(2)由于采用存储转发方式,加之交换节点具有路径选择,当某条传输线路故障时可选择其他传输线路,提高了传输的可靠性。
(3)通信双反不是固定的战友一条通信线路,而是在不同的时间一段一段地部分占有这条物理通路,因而大大提高了通信线路的利用率。
(4)加速了数据在网络中的传输。因而分组是逐个传输,可以使后一个分组的存储操作与前一个分组的转发操作并行,这种流水线式传输方式减少了传输时间。
(5)分组长度固定,相应的缓冲区的大小也固定,所以简化了交换节点中存储器的管理。
(6)分组较短,出错几率减少,每次重发的数据量也减少,不仅提高了可靠性,也减少了时延。
缺点:
(1)由于数据进入交换节点后要经历存储转发这一过程,从而引起的转发时延(包括接受分组、检验正确性、排队、发送时间等),而且网络的通信量越大,造成的时延就越大,实时性较差。
(2)分组交换只适用于数字信号。
(3)分组交换可能出现失序,丢失或重复分组,分组到达目的节点时,对分组按编号进行排序等工作,增加了麻烦。
综上,若传输的数据量很大,而且传送时间远大于呼叫时间,则采用电路交换较为合适;当端到端的通路有很多段链路组, 则采用分组交换
----------------------------------------------------------------------------------------------
上网的时候发现网页不能访问,QQ使用正常,出现此问题最可能的原因是 DNS
------------------------------------------------------------------------------------------------
网络层
1.常见的路由选择协议,以及它们的区别
OSPF(Open Shortest Path First开放式最短路径优先)使用链路状态协议,
RIP(Routing information Protocol,路由信息协议)使用距离向量协议
(1)当链路变化时,OSPF向本自治系统所有路由器发出信息,即洪泛法。而RIP只向相邻路由器发送
(2)OSPF发送的信息是与本路由器相连的所有链路状态,而RIP只发送到所有网络的距离和下一跳的路由器
(3)只有链路状态变化时,OSPF才发送信息。而RIP会定期与周围路由器交换信息
2.ARP是地址解析协议,简单语言解释一下工作原理。
1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,
如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,
该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址。
3:当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,
如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,
如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。
如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
RARP Reverse Address Resolution Protocol是逆地址解析协议
作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。
工作流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,
就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去,当服务器收到请求包后,
就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。因为需要广播请求报文,
因此RARP只能用于具有广播能力的网络。
3.ICMP是(Internet Control Message Protocol)Internet控制报文协议。
它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、
路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用.
4.DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,
给用户或者内部网络管理员作为对所有计算机作*管理的手段,
5.NAT(Network Address Translation,网络地址转换)
是将IP数据报头中的IP地址转换为另一个IP地址的过程。在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。
这种通过使用少量的公网IP地址代表较多的私网IP地址的方式,将有助于减缓可用IP地址空间的枯竭。
6.IP(网络之间互连的协议 Internet Protocol)
是用于将多个包交换网络连接起来的,它在源地址和目的地址之间传送一种称之为数据包的东西,
它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求。
----------------------------------------------------------------------------------------------------------------------------------------
传输层
1.tcp协议和udp协议的差别
TCP UDP
传输单位 报文段 用户数据报
传输可靠性 可靠 不可靠
应用场合 传输大量数据 少量数据
速度 慢 快
2.TCP的可靠性如何保证:
在TCP的连接中,数据流必须以正确的顺序送达对方。TCP的可靠性是通过顺序编号和确认(ACK)来实现的。
TCP在开始传送一个段时,为准备重传而首先将该段插入到发送队列之中,同时启动时钟。
其后,如果收到了接受端对该段的ACK信息,就将该段从队列中删去。
如果在时钟规定的时间内,ACK未返回,那么就从发送队列中再次送出这个段。
TCP在协议中就对数据可靠传输做了保障,握手与断开都需要通讯双方确认,数据传输也需要双方确认成功,在协议中还规定了:分包、重组、重传等规则;而UDP主要是面向不可靠连接的,不能保证数据正确到达目的地。
3.TCP三次握手和四次挥手的全过程
三次握手:
第一次握手:客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y)
即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,
客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,
TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。
四次挥手
第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:
我已经不会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,
主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。
第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,
我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。
CLOSED:初始状态,表示没有任何连接。
LISTEN:Server端的某个Socket正在监听来自远方的TCP端口的连接请求。
SYN_SENT:发送连接请求后等待确认信息。当客户端Socket进行Connect连接时,会首先发送SYN包,
随即进入SYN_SENT状态,然后等待Server端发送三次握手中的第2个包。
SYN_RECEIVED:收到一个连接请求后回送确认信息和对等的连接请求,然后等待确认信息。通常是建立TCP连接的
三次握手过程中的一个中间状态,表示Server端的Socket接收到来自Client的SYN包,并作出回应。
ESTABLISHED:表示连接已经建立,可以进行数据传输。
FIN_WAIT_1:主动关闭连接的一方等待对方返回ACK包。若Socket在ESTABLISHED状态下主动关闭连接并向对方发送FIN包(表示己方不再有数据需要发送),则进入FIN_WAIT_1状态,等待对方返回ACK包,此后还能读取数据,但不能发送数据。在正常情况下,无论对方处于何种状态,都应该马上返回ACK包,所以FIN_WAIT_1状态一般很难见到。
FIN_WAIT_2:主动关闭连接的一方收到对方返回的ACK包后,等待对方发送FIN包。处于FIN_WAIT_1状态下的Socket收到了对方返回的ACK包后,便进入FIN_WAIT_2状态。由于FIN_WAIT_2状态下的Socket需要等待对方发送的FIN包,所有常常可以看到。若在FIN_WAIT_1状态下收到对方发送的同时带有FIN和ACK的包时,则直接进入TIME_WAIT状态,无须经过FIN_WAIT_2状态。
TIME_WAIT:主动关闭连接的一方收到对方发送的FIN包后返回ACK包(表示对方也不再有数据需要发送,此后不能再读取或发送数据),然后等待足够长的时间(2MSL)以确保对方接收到ACK包(考虑到丢失ACK包的可能和迷路重复数据包的影响),最后回到CLOSED状态,释放网络资源。
CLOSE_WAIT:表示被动关闭连接的一方在等待关闭连接。当收到对方发送的FIN包后(表示对方不再有数据需要发送),相应的返回ACK包,然后进入CLOSE_WAIT状态。在该状态下,若己方还有数据未发送,则可以继续向对方进行发送,但不能再读取数据,直到数据发送完毕。
LAST_ACK:被动关闭连接的一方在CLOSE_WAIT状态下完成数据的发送后便可向对方发送FIN包(表示己方不再有数据需要发送),然后等待对方返回ACK包。收到ACK包后便回到CLOSED状态,释放网络资源。
CLOSING:比较罕见的例外状态。正常情况下,发送FIN包后应该先收到(或同时收到)对方的ACK包,再收到对方的FIN包,而CLOSING状态表示发送FIN包后并没有收到对方的ACK包,却已收到了对方的FIN包。有两种情况可能导致这种状态:其一,如果双方几乎在同时关闭连接,那么就可能出现双方同时发送FIN包的情况;其二,如果ACK包丢失而对方的FIN包很快发出,也会出现FIN先于ACK到达。
4.为什么不能采用两次握手:
采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况,主机A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,导致主机B的资源浪费。
-----------------------------------------------------------------------------------------------------------------------------------------
应用层
UDP对应的协议:
1.TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间
进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。
2.DNS协议:域名系统 (Domain Name System),是因特网的一项核心服务,它作为可以将域名和IP地址
相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
比如百度的一台服务器的IP地址为115.239.210.27,我们在浏览器中输入http://115.239.210.27/就可以访问百度了,
但是如果访问一个网站就要记住它的的IP是很蛋疼的事,人们习惯记住有意义的字符串,比如baidu。
3.SNMP(Simple Network Management Protocol,简单网络管理协议)是用来管理网络设备的。
由于网络设备很多,无连接的服务就体现出其优势。
TCP对应的协议:
1.HTTP(Hyper Text Transfer Protocol超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。
http请求由三部分组成,分别是:请求行、消息报头、请求正文
常用的HTTP方法有哪些?
GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器。
POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。
HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。
OPTIONS:查询相应URI支持的HTTP方法。
2.FTP 是File Transfer Protocol(文件传输协议):用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。
"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。
用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
3. SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
4.POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
--------------------------------------------------------------------------------------------------------------------------------------