(一)概要
1.在一个完整的计算机网络中,除了基于IP的网络层,传输层和应用层技术外,还包括大量不在IP协议定义范围内的数据链路层和物理层技术;现代通信网络的发展有IP化的趋势,未来通信网络的在网络层上可能会由IP协议一统天下;而网络接口层的典型协议主要是IEEE定义的802系列协议族以及ATM等;
2.网络协议有2大体系标准:
(1)国际标准化组织(ISO)提出的开放系统互连(OSI)的7层网络协议模型:物理层,数据链路层,网络层,运输层,会话层,表示层,应用层;
(2)美国国防部提出的TCP/IP协议:网络接口层,互连网层,传输层,应用层(实际上TCP/IP协议族只定义了后3层);
3.TCP/IP是常见的网络协议体系结构,分为四层:
网络接口层:物理底层的连接;
网络层:负责相邻计算机之间的通信;
传输层:提供应用程序之间的通信;
应用层:向用户提供一组常用的程序;
4. TCP/IP在每个网络分层都定义了若干协议,其中一般认为IP(internet protocol,网络层)、TCP(Transmission Control Protocol,面向连接的,传输层)、UDP(User Datagram Protocol,面向无连接的,传输层)是最根本的三种协议,是其他协议的基础;
(二)基本概念
1.MAC地址:网卡物理地址,存在于网卡的ROM中,48位;
2.IPv4地址:存在于内存中,32位(IPv6:128位);
3.端口号:进程地址,16位;
4.套接字:IP地址:端口号;
5.域名:主机的便于记忆的名称;
6.URL:对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址,格式:〈协议〉://〈主机域名〉:〈端口号〉/〈路径〉
7.网关:如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机;
8.IP地址分类(NestID+HostID):
(1)A类:0开头,NestID为1个字节,HostID为3个字节,单播地址;
(2)B类:10开头,NestID为2个字节,HostID为2个字节,单播地址;
(3)C类:110开头,NestID为3个字节,HostID为1个字节,单播地址;
(4)D类:1110开头,组播地址,不会分配给一个特定的主机;(因为组播成员可以任意加入,所以D类地址不是目的地址,而是组播组的编号)
(5)E类:1111开头,预留地址;
(6)专用地址:10.0.0.0 --10.255.255.255 172.16.0.0 -- 172.16.255.255 192.168.0.0 -- 192.168.255.255
PS:1)在ABC类地址中,HostID全0表示网络本身,全1表示广播地址,都不会分配给特定的主机;
2)专用地址没有唯一性,可被重复使用,路由器遇到目的地址是专用地址的报文一概不转发;
3)localhost(意为“本地主机”,指“这台计算机”)是给回路网络接口的一个标准主机名,相对应的IP地址为127.0.0.1;
9.子网与超网
(1)子网:通过对ABC类网络进行划分得到规模较小的网络,称其为子网;子网的划分是为了合理利用地址空间;为表示一个子网的ID,需要掩码来表示;
(2)掩码:一个32位的代码,其中含1的位对应子网的标识,剩下的含0的位对应主机的标识;
(3)超网:几个网络组合构成更大的一个网络;(同样需要超网掩码)(一般是将C类网络进行合并);
10.网络地址转换技术(NAT):专用地址是一种内部的地址,当某个主机需要访问外部的互联网时,可分配一个合法的IP地址给该主机;采用网络地址转换技术可以很大程度上解决IP资源不够的问题,但是无法保证每个主机拥有一个独立的合法IP地址;
11.内网与外网:专用地址只能在内部进行通信,而不能与其他网络互连;如果要与外部通信,那么必须通过网关与外部通信,这里使用了NAT, NAT技术就是用来保证通信的代理机制;另外,一些宽带运营商尽管也使用了非私有地址分配给用户使用,但是由于路由设置的原因,Internet上的其他用户并不能访问到这些ip;上面2部分IP都可称为内网IP;NAT要求整个服务的连接是从内网向外网主动发起的,而外网的用户无法直接(主动)向内网的服务发起连接请求;
12.交换机与路由:交换机主要是实现大家通过一根网线上网,但是大家上网是分别拨号的,各自使用自己的宽带,大家各自上网没有影响,哪怕其他人在下载,对自己上网也没有影响,并且所有使用同一条交换机的电脑都是在同一个局域网内;路由器比交换机多了一个虚拟拨号功能,通过同一台路由器上网的电脑是共用一个宽带账号,大家之间上网是相互影响的,比如一台电脑在下载,那么同一个路由器上的其他电脑会很明显的感觉到网速很慢;
13.DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率;DHCP有三种机制分配IP地址:
(1) 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址;
(2)动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用;
(3)手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机;
PS:三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址;
14.DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串;通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析);
(三)常见知识点
1.TCP与UDP区别:
(1)TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输;
(2)TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报;
(3)TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般;
2.TCP协议中的三次握手与四次挥手:
.(1)三次握手:
1)第一次握手:客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;
2)第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
3)第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手;
PS:握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据;理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去;
PS:需要第三次握手的原因:由于网络传输延迟问题,客户端有可能重复发送连接请求,若服务端收到一个客户端发送的重复连接请求后发出确认信号,若没有第三次握手的机制,客户端则不理会,服务端会一直浪费资源在等待;若有第三次握手的机制,服务端没有收到第三次握手的确认信号,则不会再等待;
(2)四次挥手:
1)第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的新数据传送,此时主动关闭方还可以接受数据;
2)第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方;
3)第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的新数据传送;
4)第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方;
PS:需要四次挥手的原因:被动关闭方接收到FIN时意味将没有数据再发来,但是还是可以继续发送数据;
3.ARP协议与RARP协议(网络层):
(1)ARP协议(Address Resolution Protocol,地址解析协议):
1)根据IP地址获取物理地址;
2)每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系;
3)当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址;
4)当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址;
5)源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败;
6)广播发送ARP请求,单播发送ARP响应;
(2)RARP协议(Reverse Address Resolution Protocol,反向地址解析协议):
1)根据物理地址获取IP地址;
2)主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存;
3)在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者;因为需要广播请求报文,因此RARP只能用于具有广播能力的网络;
4.浏览器输入网址,发生的一系列响应描述:
(1)客户端浏览器通过DNS解析将域名转换为目标IP地址;
(2)客户端浏览器发起一个http会话到目标地址,然后通过传输层的TCP协议进行封装数据包,输入到网络层;在传输层会把http会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口;
(3)客户端的网络层不用关心应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,无非就是通过查找路由表决定通过那个路径到达服务器;
(4)客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址;