目录
OSI模型
TCP/IP模型
网络协议
IP协议
IP数据报格式
IP数据报分片
IPv4地址
NAT协议
ARP/RARP协议
ARP
RARP
DHCP协议
ICMP协议
ICMP差错报告报文
ICMP询问报文
ICMP的应用
路由协议
RIP
OSPF
UDP协议
UDP特点:
UDP首部格式:
UDP校验:
TCP/IP协议
TCP协议特点:
TCP报文段首部格式:
三次握手:
四次挥手:
TCP可靠传输:
TCP流量控制:
TCP拥塞控制:
DNS协议
域名:
域名解析过程:
FTP协议
TELNET协议
telnet工作流程:
HTTP协议
HTTP工作流程:
HTTP协议特点:
HTTP报文结构:
网络设备工作原理
交换机
路由器
防火墙
网桥
集线器
网关
VPN服务器
网络接口卡(NIC)
无线接入点(WAP)
调制解调器
光端机
光纤收发器
OSI 模型把网络通信的工作分为 7 层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
目的:支持异构网络系统的互联互通。(每层完成特定的功能)
应用层:所有能和用户产生网络流量的程序(文件传输FTP,电子邮件SMTP,万维网HTTP)
表示层:用于处理在两个通信系统中交换信息的表示方式(语法和语义)。
功能:数据格式变换、数据加密解密、数据压缩和恢复。(JPEG、ASCII)
会话层:向表示层实体/用户进程提供建立连接并在连接上有序地传输数据。这是会话,也是建立同步(SYN)。
功能:建立、管理、终止会话;使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步。
传输层:负责主机中两个进程的通信,即端到端的通信。传输单位是报文段或用户数据报。
功能:可靠传输、不可靠传输;差错控制;流量控制;复用分用。
网络层:主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。
功能:路由选择(最佳路径);流量控制;差错控制;拥塞控制(若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞)。
数据链路层:主要任务是把网络层传下来的数据报组装成帧。数据链路层/链路层的传输单位是帧。
功能:成帧(定义帧的开始和结束);差错控制(帧错+位错);流量控制;访问(接入)控制(控制对信道的访问)。
物理层:主要任务是在物理媒体上实现比特流的透明传输。物理层传输单位是比特。
透明传输:指不管所传数据是什么样的比特组合,都应当能够在链路上传送。
功能:定义接口特性;定义传输模式(单工、半双工、双工);定义传输速率;比特同步、比特编码。
OSI与TCP/IP模型相同点:
1.都分层
2.基于独立的协议栈的概念
3.可以实现异构网络互联(使不同厂家的计算机可以通信)
OSI与TCP/IP模型不同点:
1.OSI定义三点:服务、协议、接口
2.OSI先出现,参考模型先于协议发明,不偏向特定协议
3.TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次
4.面向连接:分为三个阶段,第一是建立连接,在此阶段,发出一个连接的请求。只有在连接 成功建立之后,才能开始数据传输,这是第二阶段。接着,当数据传输完毕,必须释放连接。
面向无连接:没有那么多阶段,它直接进行数据传输
“网络协议”是指为完成特定的任务而制定的一套规则。网络协议通常用来表示数据传输中一组用于实现一个或多个OT模型级别的规则或规范。
在通信时,网络协议定义了在通信时如何进行通信。它的语法、语义和时序是网络协议的核心。
IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。
设计IP的目的是提高网络的可扩展性:
一.解决互联网问题,实现大规模、异构网络的互联互通;
二.是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据
端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输
服务。
不可靠(unreliable)的意思是它不能保证 IP数据报能成功地到达目的地。
无连接(connectionless)的意思是IP并不维护任何关于后续数据报的状态信息。
协议:
标识:同一数据报的分片使用同一标识。
标志:有三位,只有两位有意义x_ _;中间位DF,当DF=1禁止分片,DF=0允许分片;最低位MF,当MF=1后面“还有分片”,MF=0代表最后一片/没分片。
片偏移:指出较长分组分片后,某片在原分组中的相对位置。以8B为单位。除了最后一个分片,每个分片长度一定是8B的整数倍。(帮助还原数据报)
注:总长度单位是1B;片偏移单位是8B;首部长度单位是4B。
最大传输单元MTU全称是maximum transmission unit,是指链路层数据帧可封装数据的上限,以太网的MTU是1500B
IP地址:全世界唯一的32位/4字节标识符,标识路由器主机的接口。
IP地址::{<网络号>,<主机号>}
网络号用来确定主机在哪个区域,主机号确定在这个区域的每一台主机或者是哪一个接口
路由器对目的地址是私有IP地址的数据报一律不进行转发。
网络地址转换NAT:在专用网络连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
ARP协议:完成主机或路由器IP地址到MAC地址的映射。(解决下一跳走哪的问题)
注:由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址
主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存(IP地址与MAC地址的映射),下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
ARP协议4种典型情况:
1.主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;
2.主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址;
3.路由器发给本网络的主机A:用ARP找到主机A的硬件地址;
4.路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
两台主机在同一网段:
两台主机在不同网段:
主机1广播,获取默认网关的MAC地址,主机1接收到后,就添加默认网关的MAC6地址;数据包传送到默认网关,就解封装添加了MCA7、MAC8再封装,传送到下一跳的路由器,再解封装添加MAC9、目的IP的MAC5。
逆地址解析协议,即RARP,功能和ARP协议相对,其将局域网中某个主机的物理地址转换为IP地址。
比如局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。
RARP协议工作流程:
1.给主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;
2.本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;
3.如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;
4.如果不存在,RARP服务器对此不做任何的响应;
DHCP动态主机设置协议(Dynamic Host Configuration Protocol)是一个局域网的网络协议,应用层协议,使用客户/服务器方式,客户端和服务器端通过广播方式进行交互,使用UDP协议工作。
主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。
DHCP工作流程:
1.主机广播DHCP发现报文 (“有没有DHCP服务器?”)找网络中的服务器,想获得一个IP地址。
2.服务器广播DHCP提供报文 (“有!”)服务器拟分配给主机一个IP地址及相关配置,先到先得。
3.主机广播DHCP请求报文 (“我用你给我的IP地址啦?”)主机向服务器请求提供IP地址。
4.DHCP服务器广播DHCP确认报文 (“用吧!”)正式将IP地址分配给主机。
它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
ICMP在传输层和网络层之间,起到一个桥梁作用,为了更有效地转发IP数据报和提高交付成功的机会。
ICMP协议支持主机或路由器:
差错(或异常)报告——>发送特定ICMP报文
网络探询
1.终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。无法交付
2.时间超过:当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。 TTL=0
3.参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。首部字段有问题
4.改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器可通过更好的路由)。值得更好的路由
不应发送ICMP差错报文的情况:
1.对ICMP差错报告报文不再发送ICMP差错报告报文。
2.对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
3.对具有组播地址的数据报都不发送ICMP差错报告报文。
4.对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。
1.回送请求和回答报文:主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。测试目的站是否可达以及了解其相关状态。
2.时间戳请求和回答报文:请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。
1.ping 测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。
2.traceroute 跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。
常见的路由选择协议有:RIP协议、OSPF协议。
RIP协议 :底层是贝尔曼福特算法,是一种分布式的基于距离向量的路由选择,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包。
只适用于小型互联网。
RIP协议最大的优点是简单,它要求网络中的每个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(一组距离)
RIP协议的工作要点:
1.只和相邻路由器交换信息且交换全部信息
2.按照固定的时间间隔交换路由信息
3.路由器在才开始工作时,只知道直连网络的距离(距离为1)
4.以后每一个路由器也只和相邻路由器交换并更新路由信息
5.经过N次更新,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址
距离向量算法:
1.修改收到的报文所有项目
2.如果没有报文中的目的网络则加入路由表
3.如果有则看下一跳,如果相同就更新
4.如果不同则看距离,小于则更新,否则不变
OSPF协议 :Open Shortest Path First开放式最短路径优先,底层是迪杰斯特拉算法,是链路状态路由选择协议,它选择路由的度量标准是带宽,延迟。
适用于大规模互联网,不存在坏消息慢的问题,它的收敛速度很快。
OSPF特点:
1.使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。广播
2.发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价——费用、距离、时延、带宽等)。
3.只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。
最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。
链路状态路由算法:
OSPF的区域:
OSPF分组:
UDP用户数据报协议,是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
TCP/IP协议是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
1.TCP是面向连接(虚连接)的传输层协议。
2.每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
3.TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重
4.TCP提供全双工通信。
发送缓存——>准备发送的数据&已发送但尚未收到确认的数据
接收缓存——>按序到达但尚未被接受应用程序读取的数据&不按序到达的数据
5.TCP面向字节流,TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。
(流:流入到进程或从进程流出的字节序列。)
SYN洪泛攻击:
防护措施:设置SYN cookie
传输层——>使用TCP实现可靠传输
网络层——>提供尽最大努力交付,不可靠传输
可靠:保证接收方进程从缓存区读出的字节流与发送方发出的字节流完全一样
序号:一个字节占一个序号,序号字段指的是一个报文段第一个字节的符号。
重传:确认重传不分家,TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段。超时重传
流量控制:让发送方慢点,要让接收方来得及接收。(TCP利用滑动窗口机制实现流量控制)
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd(接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值。
慢开始和拥塞避免:
网络拥塞后,马上降为初始值,门限值降一半
快重传和快恢复:
网络拥塞后,不会降为初始值,就是快恢复,门限值降一半
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。该系统用于命名组织到域层次结构中的计算机和网络服务,可以简单地理解为将URL转换为IP地址。
1.FTP是一种文件传输协议,负责将我们电脑上的数据与服务器数据进行交换
2.FTP提供交互式的访问,允许客户指明文件类型与格式,并允许文件具有存取权限。
3.FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中计算机之间传送文件。
FTP工作原理:
FTP传输模式:
文本模式:ASCII模式,以文本序列传输数据;
二进制模式:Binary模式,以二进制序列传输数据。
Telnet 协议是 Internet 远程登录服务的标准协议和主要方式,它为用户提供了在本地计算机上远程管理主机的能力。
使用者在自己的电脑上使用 Telnet 程序连接到服务器,然后在 Telnet 程序中输入命令,这些命令将会在服务器上运行,就像直接在服务器的控制台上输入一样。
HTTP协议定义了浏览器(万维网客户进程) 怎样向万维网服务器请求万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
HTTP是基于TCP处于应用层的一种协议,与传输层协议不同,它关注的不是像TCP那样的可靠传输,而是站在应用的角度,对传输的信息来具体的使用。HTTP广泛应用于手机APP和浏览器之中。
HTTP 协议包括哪些请求?
GET:请求读取由URL所标志的信息。
POST:给服务器添加信息(如注释)。
PUT:在给定的URL下存储一个文档。
DELETE:删除给定的URL所标志的资源。
HTTP 中, POST 与 GET 的区别
Get是从服务器上获取数据,Post是向服务器传送数据。
Get是把参数数据队列加到提交表单的Action属性所指向的URL中,值和表单内各个字段一一对应,在URL中可以看到。
Get传送的数据量小,不能大于2KB;Post传送的数据量较大,一般被默认为不受限制。
根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。
交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。
交换机工作原理:
收到一个数据帧之后:
1.首先学习帧中的源MAC地址,来形成MAC地址表;
2.然后检查帧中的目标MAC地址,并匹配MAC地址表:
如果表中有匹配项,则单播转发;
如果表中无匹配项,则除接收端口外 广播转发。
3.MAC地址表的老化时间默认是300秒(可修改)。
路由器(Router)是实现网络互连,在不同网络之间转发数据单元的重要网络设备。路由器主要工作在OSI参考模型的第三层(网络层),路由器的主要任务就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。
路由器工作原理:
当一个数据包被路由器所接收时,路由器检查数据的IP地址,并判断这个数据包是用于它自己的网络还是其它网络。如果路由器判断这个数据包是用于它自己,它就会接收;如果不是用于它自己,这个数据包就会被拒绝。
防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。
防火墙有两种,硬件防火墙和软件防火墙,都能起到保护作用并筛选出网络上的攻击者。
防火墙通常使用的安全控制手段主要有包过滤、状态检测、代理服务,包过滤技术是一种简单、有效的安全控制技术。
它通过在网络间相互连接的设备上加载允许、禁止来自某些特定的源地址、目的地址、TCP端口号等规则,对通过设备的数据包进行检查,限制数据包进出内部网络。
网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。
网络1 和网络2 通过网桥连接后,网桥接收网络1发送的数据包,检查数据包中的地址,如果地址属于网络1 ,它就将其放弃,相反,如果是网络2 的地址,它就继续发送给网络2。这样可利用网桥隔离信息,将同一个网络号划分成多个网段(属于同一个网络号),隔离出安全网段,防止其他网段内的用户非法访问。由于网络的分段,各网段相对独立(属于同一个网络号),一个网段的故障不会影响到另一个网段的运行。
集线器(Hub)是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。集线器是运作在OSI模型中的物理层。它可以视作多端口的中继器,若它侦测到碰撞,它会提交阻塞信号。
由于集线器会把收到的任何数字信号,经过再生或放大,再从集线器的所有端口提交,这会造成信号之间碰撞的机会很大,而且信号也可能被窃听,并且这代表所有连到集线器的设备,都是属于同一个碰撞域名以及广播域名,因此大部份集线器已被交换机取代。
集线器工作于OSI/RM参考模型的物理层和数据链路层的MAC(介质访问控制)子层。
在现实生活中,我们都知道从一个房间走进另外一个房间都必须要经过门口,不经过门口你就无法走进去,同样,一个网络如果想把自己的信息发送给另外一个网络就必须要经过特定的关口才行,这个关口就是我们常说的网关。在计算机网络中,不同的网络有不同的网络协议,此外它们的地址范围也是不一样的,在没有路由器的情况下,两个网络如果要进行TCP/IP之间的通信就会无法实现,为此,网关就能够起到作用了。网关能够将不同网络的信息进行处理,然后在进行转换,并发送给另外的网络。
VPN英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定隧道。使用这条隧道可以对数据进行几倍加密达到安全使用互联网的目的。VPN主要采用隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术。有了VPN技术,用户无论是在外地出差还是在家中办公,只要能上互联网就能利用VPN访问内网资源。
VPN服务器:在大型局域网中,可以通过在网络中心搭建VPN服务器的方法实现VPN。
VPN工作过程:
VPN的基本处理过程如下:
①要保护主机发送明文信息到其他VPN设备。
②VPN设备根据网络管理员设置的规则,确定是对数据进行加密还是直接传输。
③对需要加密的数据,VPN设备将其整个数据包(包括要传输的数据、源IP地址和目的lP地址)进行加密并附上数据签名,加上新的数据报头(包括目的地VPN设备需要的安全信息和一些初始化参数)重新封装。
④将封装后的数据包通过隧道在公共网络上传输。
⑤数据包到达目的VPN设备后,将其解封,核对数字签名无误后,对数据包解密。
NIC(Network Interface Card ,网络接口卡、网卡): 负责计算机与网络介质之间的电气连接,比特数据流的传输和网络地址确认。主要技术参数为带宽速度、总线方式、电气接口方式。
无线接入点(AP 或 WAP)是允许 Wi-Fi 设备连接到有线网络的网络设备。它们形成 无线局域网(WLAN)。
接入点充当无线电信号的中央发射器和接收器。主流无线 AP 支持 Wi-Fi,用于家庭、公共互联网热点和商业网络,以容纳无线移动设备。接入点可以并入有线路由器或独立路由器。
调制解调器,是调制器和解调器的缩写 ,一种计算机硬件 [1] ,它能把计算机的数字信号翻译成可沿普通电话线传送的模拟信号,而这些模拟信号又可被线路另一端的另一个调制解调器接收,并译成计算机可懂的语言。这一简单过程完成了两台计算机间的通信。
光端机就是一种信号传输设备。
光端机包括光发射机和光接收机,光发射机是将接收到的电信号转换成能够在光纤中传输的光信号,而光接收机刚好相反,它是将光纤中的光信号转换成电信号的一种设备。
光纤收发器,是一种将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元,在很多地方也被称之为光电转换器(Fiber Converter)。
光纤收发器的作用是,将我们要发送的电信号转换成光信号,并发送出去,同时,能将接收到的光信号转换成电信号,输入到我们的接收端。