互联网
网络由节点和链路组成,网络通过路由器互联则形成互联网。
因特网是世界上最大的互联网。
其中,路由器是实现分组交换的关键构件。(五层协议不同层级会有不同的中间设备将网络进行互联,比如转发器在物理层,网桥在数据链路层等等)
注:分组交换出现以前,经历了电路交换和报文交换。
计算机网络分层
五层协议
OSI协议分为七层,TCP/IP协议分为四层。
在学习计算机网络时将以上两种协议折中为五层。
应用层,运输层,网络层,数据链路层,物理层。
物理层:五层协议的最底层,负责在传输媒介上传输比特流。
注:传输媒体有非导体型传输媒体(卫星通信等)和导体型传输媒体(同轴电缆和光纤等)
集线器工作在物理层
转发器在物理层
注:转发器在物理层的,现在使用的频率已经很少了。集线器最大的特点就是采用共享型模式,也工作在物理层。
数据链路层:在物理层的基础上增加了一些硬件(网络适配器)和软件(协议的实现)
Mac地址:固化在适配器的ROM中的地址,48位
该层传送的协议数据单位是帧
交换机工作在数据链路层(交换机是简化的网桥)
网桥在数据链路层
网络层:将运输层数据封装成IP数据报来传送。
路由器工作在网络层
该层使用网际协议(IP):
IP地址与Mac地址
地址解析协议ARP:
网1-----R1------网2------R2------网3
1.若目的主机在网1,则网1上的主机通过本机的APR cache(ARP cache上有本局域网各主机和路由的IP-Mac地址映射)查找目的主机的Mac地址。
2.若目的主机不在网1,目的主机在网2,则再通过该网1上的路由R1发送ARP请求分组,寻找目的主机的Mac地址。
3.若目的主机不在网2,目的主机在网3,再通过该局域网路由器R1发送ARP请分组求,找到另一个局域网的路由器R2的Mac地址,再通过该路由器R2发送ARP请求分组找到目的主机Mac地址
RIP协议(内部网关协议)
基于距离向量的路由选择协议
目的在于使得每一个路由到达目的网络的路由都是最短的
网络由路由器相连,每个路由器上有路由表。
VPN:将两个使用本地地址的本地互联网连接起来,构成虚拟专用网VPN
每个本地互联网至少需要一个路由器具有合法的全球IP地址,
A---R1---------------------------------------R2---B
两个本地互联网A和B,A和B上都有很多主机,若A上的主机X想和B上的主机Y通信,则X发送IP数据报给A上的路由R1,R1再把IP数据报加密后发给B上的路由R2,R2将数据解密后发给Y。其中R1发送加密数据给R2时,是通过因特网发送的,所以R1和R2必须接入网络,即每个本地互联网至少需要一个路由器具有合法的全球IP地址。
运输层
进程之间的通信,利用16位的端口号表示一个端口,端口用于标识各个进程。
运输层有两种协议:用户数据报协议UDP,传输控制协议TCP。
TCP连接建立时三次握手
第一次握手:建立连接时,客户端发送连接请求,等待服务器确认;
第二次握手:服务器端收到连接请求后,如果同意,则向客户端发回连接请求确认。
第三次握手:客户端收到服务器端连接请求的确认后,最后向客户端给出确认。完成三次握手。
为什么三次握手:
防止已失效的连接请求报文段又传到了服务器端
假如客户端的连接请求迟迟没有到达服务器端,此时客户端超时后,会重新发送一次连接,假如重发的这次服务器端收到了,且应答客户端了,连接建立了。但是建立后,第一个连接请求也到达服务端了,这时服务端会认为这是一个新连接,会再给客户端发送一个确认报文段,同意建立连接。客户端不会理睬服务器端的确认,也不会向服务器端发送数据。但是此时服务器端已经为这个连接分配资源了,而且服务器端会一直维持着这个资源,一直等待客户端发来数据,最后造成浪费
TCP四次分手
1.首先客户端发出请求要关闭客户端到服务端方向的连接。
2.服务端接收到后发出确认,此时客户端到服务器端的连接就释放了,连接处于半关闭。此后
服务器端不再接受客户端数据,但服务器端仍可向客户端发送。
3.这时只关闭了一个方向,另一个方向也需要关闭,所以服务端也向客户端发出请求要关闭连接。
4.客户端接收到后发送确认,此时客户端还需等待一个超时时间才能将整个连接释放。
这里的TIME_WAIT是为了确保第四步中客户端发往服务器端的确认报文能到达,若服务器端没收到客户端的确认报文,就会重新发送连接释放请求报文,此时客户端收到后需要再次确认。
发送数据由高层到低层,然后到数据链路层。