网络基本概念

一、软件开发的架构

两个程序之间通讯的应用大致可以分为两种:
第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用
第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用
这些应用的本质其实都是两个程序之间的通讯

C/S架构

C/S即:Client与Server
sever 服务端
client 客户端
服务端是要一直运行 等待服务别人
客户端是我用的时候我才使用服务
中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。
这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。

B/S架构

B/S即:Browser与Server
只需要有一个浏览器,不需要安装任何APP,输入网址就可以得到想看的东西
中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。
Browser浏览器,其实也是一种Client客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查
优点:统一入口--微信各种小程序和公众号--解耦分治

B/S架构是C/S架构的一种

实现通信基本概念

1. 网卡和网线

    网卡上有全球唯一的mac地址

2. arp协议

    通过ip地址就能找到对应的mac地址

3. ip协议

    规定网络地址的协议,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示
    范围0.0.0.0-255.255.255.255
    一个ip地址通常写成四段十进制数,例:172.16.10.1

4. 交换机

    为了解决多台机器的通信问题

5. 如何通信

    arp协议做的事情:

    计算机发送数据包,找ip地址,让交换机找,交换机找所有人,所有人都收到这个数据包,如果是这个ip就把mac地址发送交换机,交换机把ip地址发送回来,缓存下来

6. 广播风暴

    所有机器都连接同一个交换机上

    路由器

    网关

      局域网中的机器想要访问局域网外的机器,需要通过网关访问

    ip地址 和 子网掩码 按位与 得到网断地址

7. 端口

    通过端口找程序

    在计算机上每一个需要网络通信的程序 都会开一个端口

    在同一时间只会有一个程序占用一个端口

    不可能在同一时间有两个程序占用同一个端口

 端口的范围:0--65535

    一般情况下8000之后的端口

    ip地址确定唯一一台机器

    端口确定唯一的程序

    ip地址+端口找到唯一的一台机器上的唯一的一个程序

TCP协议(打电话)

全双工:双方都可以收发信息
连接过程:

1. 三次握手

1. 客户端向服务器发送连接请求(问是否可以连接)
2. 服务器接收到连接请求进行确认,返回报文
3. 客户端收到回复,进行连接建立

2. 四次挥手

1. 主动方发送报文 告知被动方要断开连接
2. 被动方返回报文,告知收到请求,准备断开
3. 被动方再次发送报文给主动方,告知准备完毕可以断开
4. 主动方发送报文进行断开

3. 为什么是三次握手、四次挥手?

因为只要TCP协议连接一旦建立,他就是一个全双工的,他必然是双方通信,所以A和B能通信,B和A也一定能通信,所以建立的是双向连接 挥手的时候,你不跟我发信息之后断开连接,这是一个单独的过程。

UDP协议(发短信)

不可靠,无连接,快 当应用程序希望通过UDP与一个应用程序通信时,传输数据之前源端和终端不建立连接。
当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。

tcp和udp的对比

TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端

UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快

TCP(Transmission Control Protocol)可靠的、面向连接的协议(eg:打电话)、传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。使用TCP的应用:Web浏览器;电子邮件、文件传输程序。

UDP(User Datagram Protocol)不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文,尽最大努力服务,无拥塞控制。使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)

原文地址:https://www.cnblogs.com/yangyuqing/p/10057162.html