深刻理解网络协议

本文做者:francisk84算法

1.协议数据库

        在计算机网络的世界中,要说最重要的必然会想到协议,那么问题来了,什么是协议?协议是控制两个或多个对等实体进行通讯的规则的集合.所以在计算机网络分层中协议是水平的.OSI将计算机网络分为7层,自底向上为物理层-链路层-网络层-传输层-会话层-表示层-应用层,TCP/IP体系将网络分为四层,自底向上为物理链路层-网络层-传输层-应用层.之间的对应关系如图1所示,不管是哪一种划分方法,对于协议来讲,网络层的协议只能是双方的网络层使用,而不能是网络层对其余层使用。
        各类各样的协议应用于不一样的场合下,例如IP地址解析就须要ARP协议,反向解析就须要RARP协议.IP协议只向上提供无链接的服务,何为无链接服务?就是尽最大努力交付,所以网络层不提供服务质量的承诺,所以网络层是能够出现分组丢失,失序等。目前主流的IP协议为IPv4,可是IPv6一直在不断发展。IP数据的基础单位称为分组.服务器

2.网络包的传输过程网络

        在TCP/IP体系中,网络涉及到四层:链路层,网络层,传输层,应用层。 以太网(帧)在链路层,IP(分组)在网络层,TCP或者UDP(报文)在传输层,HTTP等应用层协议数据在应用层.数据包在发送端产生,每经过一层均会添加首部,在接收端每经过一层均删除首部。具体的网络流过程如图所示

所以从图中能够看出,报文的首部越长,传输的比率也就越低,这也就解释了为何在云环境下传输文件或者提交代码到GitHub/GitLab中,感受速度变慢了,实际上也确实是变慢了,相对于http协议,https会更加的慢一些,由于https在tcp的三次握手的基础上又增长了9次加密通道的步骤。https的握手过程以下图所示:tcp


简单的说https=http+ssl,http的三次握手不变,增长了9次ssl通道加密过程。所以,一次https的通道构建须要tcp握手包3个+ssl握手包9个,在ssl过程当中加密解密须要消耗CPU的计算资源,所以容易成为瓶颈。分布式

3.路由加密

在网络中,路由是一个很是重要的概念,路由是指从源到目的地时,决定端到端路径的网络范围的进程。路由又有单播,多播,广播等。路由又分为内部网关路由(IGP)和边界网关路由(EGP),IGP须要用到两个很是经典的路由算法RIP和OSPF。EGP则使用BGP协议。计算机网络

3.1RIP-距离矢量算法3d

特色:blog

  • 若是两个路由器之间是直连的,这两个路由器就是相邻的
  • 路由器交换的是整个路由表,即全量数据
  • 按固定的时间间隔发送路由协议,例如1分一次

下图为某一个路由表R1

和R2

R1收到了R2的路由表,便会更新本身的路由表,更新的结果为R1-new

RIP协议的缺点是:

  • 1.规模小
  • 2.收敛速度慢
  • 3.不必定是最有路由(即跳数不必定是低延时的链路)

3.2 OSPF协议(使用了Dijkstra算法)

OSPF的主要特征就是使用分布式的链路状态协议,相对于RIP协议它的特色以下
- 向本自治系统的全部路由器发送路由表(洪泛)
- 发送的信息是全部路由器的链路状态
- 只有当链路状态发生改变的时候才洪泛
- 最终全部的路由器能创建一个链路数据库,即全网的拓扑结构

优势:

  • 收敛速度快
  • 网络规模能够扩大

缺点:

  • 只能经过距离计算,不能经过时延计算

3.3NAT

NAT是一个地址转换协议,在IP地址中有一些IP地址是公网地址,有一些IP地址只有本地才能访问,若是把本地才能访问的IP地址放到公网中就是NAT的任务。NAT是为了解决IP地址不足的问题。NAT主要包括静态NAT,动态NAT和NAPT,在此主要介绍NAPT,NAPT又包括SNAT和DNAT。
NAT的原理如图所示:



图中的

1.本机发出一个数据包,目的网络地址是12.120.76.24:8080

2.NAT服务器对数据包的源地址进行修改122.167.12.89:8000
即SNAT

5.NAT对数据包的目的IP进行修改,DNAT

NAT服务器有两个网卡,一个对内,一个对外,而且维护着一个对照表
经过对照表进行地址映射.

 

原文连接地址:https://developer.baidu.com/topic/show/290289

相关文章
相关标签/搜索