网络基础知识概括

0 基础概念

  • IP地址:ipv4/ipv6
  • ipv4地址分类:A、B、C、D、E类。主要区别为网络号、主机号占有多少位的区别。
  • CIDR(无类型域间选路):将32位IP地址一分为二,前多少位为网络号,剩余的为主机号。表示方法为:10.100.122.2/24。24表示前24位位网络号,后8位位主机号。
  • 广播地址:即向这个地址发送消息,所有主机都能接受到。广播地址位二进制主机号变为1,如上面的位10.100.122.255。
  • 子网掩码:将二进制网络号变为1,其余位变为0。如上述IP子网掩码为255.255.255.0。通过子网掩码域IP地址取and计算可求出网络号。
  • 共有IP:想要与互联网进行连接,让全世界的人可以访问必须要有共有IP。
  • 私有IP:局域网内分配的IP,通常如192.168.1.xxx,局域网IP是可以重复的。不同的局域网可以有相同的IP地址。
  • Mac 地址:网卡的物理标识,全球唯一。相当于人的身份证。IP地址具有定位功能,Mac 地址无法定位,或者说定位功能有限。
  • DHCP(动态主机配置协议):局域网内自动配置IP地址。新来的机器用IP地址0.0.0.0发送广播包,目的IP地址为255.255.255.255。使用的是UDP协议。DHCP服务器会通过新机器的Mac 地址进行IP地址分配,新机器再确认这个IP。最后DHCP会广播告诉大家新机器使用了这个IP。
  • APR协议:已知IP地址,求Mac 地址。在一个局域网内,发送广播消息,谁是这个IP谁来回答。为了避免每次都进行APR请求,会有缓存。
  • 交换机:
  • 网关:一定和源IP地址同网段,通常是第一个或第二个。如192.18.1.0/24这个网段,网关地址往往为192.168.1.1/24或192.68.1.1.2/24。当目标地址和源地址不是同一个网段是,需要先把数据发给网关,发给网关的过程是一样的,要先通过APR协议得到网关的Mac地址。然后的转发就完全靠网关。网关往往是个路由器,是一个三层转发设备。不改变IP地址的为转发网关,改变IP地址的为NAT网关。

1 网络分层

根据osi网络七层协议以及tcp/ip四层分法的综合,有以下五层网络分层。从上到下依次如下所示:

  • 应用层:通过应用进程间的交互完成特定功能。
  • 传输层:负责向两台主机进程之间的通信提供通用的数据传输服务。
  • 网络层:选择合适的网间路由和交换节点,确保数据及时传送。
  • 链路层
  • 物理层

1.1 各层重要概念

  • 应用层:主要为http协议
  • 传输层:主要为tcp、udp协议
  • 网络层:ip
  • 链路层:mac

2 传输层重要协议

2.1 UDP协议

UDP和TCP的区别:

  • TCP是面向连接的,UDP是无连接的。

什么是面向连接的?在互通之前先通过协议建立连接,如TCP协议的三次握手。所谓建立连接,是通过某种数据结构维护客户端和服务端的连接状态。

  • TCP提供可靠的交付。TCP协议传输数据保证无差错、无丢失、无重复、按顺序传达。而UDP不保证。
  • TCP面线字节流。UDP继承来IP包特性,是基于数据包发送的。
  • TCP具有拥塞控制,而UDP则不会。

UDP三大特点:

  • 沟通简单
  • 轻信他人。不会建立连接,谁都可以向它发送数据,它也可以向任何人发送数据,还能同时向多人发送。
  • 不会变通。不管网络环境如何,发送的状态不会改变,改怎么发还是怎么发。

UDP三大使用场景:

  • 需要资源少,网络状况好的内网环境下,对于丢包不敏感的应用。如DHCP。
  • 不需要一对一沟通,建立连接,而是可以广播的应用。
  • 需要处理速度快,时延低,可以容忍少数丢包的场景。

UDP使用例子:

  • 流媒体协议,如果网络直播。
  • 实时游戏。需要建立长连接,如果为TCP协议,服务器压力大,需要为每个连接进行处理。而UDP无需连接。同时游戏需要时延低。
  • 物联网:一方面终端资源有限,通常是嵌入式系统,维护TCP协议代价太大。另一方面由于时延性问题。

2.2 TCP协议(重点)

TCP包头格式复杂:

  • 顺序问题,稳重不乱
  • 丢包问题,承诺靠谱
  • 连接顺序,有始有终
  • 流量控制,把握分寸
  • 拥塞控制,知进知退

TCP三次握手:

TCP四次挥手:

流量控制:

拥塞控制:

TCP如何保证数据可靠传输?

3 Socket编程

服务器如何连接更多Socket:

  • 多进程方式
  • 多线程方式
  • 多路复用,select
  • 多路复用,epoll(epoll是Linux系统独有的)

4 Http协议

  • 属于应用层
  • Http请求报文格式
请求行:请求方法,URL路径,版本号
首部:
实体:
  • Http响应报文格式
响应行:版本号,状态码,短语
首部:
实体:

5 Https协议

  • 对称加密:
  • 非对称加密:
  • Https协议通过非对称加密传输对称加密所需要的密匙保证安全,之后数据传输还是通过对称加密。

6 DNS协议

  • 通过域名获取IP地址
  • 还能进行负载均衡
posted @ 2019-05-31 23:59  heyyw  阅读(472)  评论(0编辑  收藏  举报