一,客户端/服务端架构浏览器
C/S B/S网络
1,硬件c/s架构(打印机)架构
2,软件c/s架构:tcp
互联网中到处是c/s架构网站
(B/S架构也是C/S架构的一种) 如你的浏览器是客户端,博客园网站是服务端。url
好比,腾讯做为服务端为你提供视频,你得下个腾讯视频客户端才能看到它的视频。操作系统
client《-------基于网络通讯----------》server3d
browser<--------基于网络通讯---------->server视频
3.server端必须知足的条件:server
1.稳定运行(网络,硬件,操做系统,服务端应用软件),对外一直提供服务。
2.服务端必须绑定一个固定的地址。
二,什么是互联网?
互联网的核心就是由一堆协议组成,协议就是标准,好比全世界人通讯的标准是英语。
若是把计算机比做人,互联网协议就是计算机界的英语。全部的计算机都学会了互联网协议,那全部的计算机都
就能够按照统一的标准去收发信息从而完成通讯了。
互联网两大要素:
1.底层的物理链接介质,是为通讯铺好道路的。
2.一套统一的通讯标准------》互联网通讯协议
三,网络通讯原理
3.1 互联网的本质就是一系列的网络协议
一台硬设有了操做系统,而后装上软件就能够正常使用了,然而你也只能本身使用。像这样,每一个人都拥有一台本身 的机器,然而彼此孤立。
结论:
英语称为世界上全部人通讯的统一标准,若是把计算机当作分布于世界各地的人,那么链接两台计算机之间的internet实际上就是一系列统一的标准,这些标准称为互联网协议。互联网的本质就是一系列的协议。
3.2 自定义协议:
任何一种协议都包含两部分:
1,报头:必须是固定长度。
2,数据
3.3 osi七层协议
互联网协议按照功能不一样分为tcp/ip五层:
首先,用户感知到的只是最上面的一层应用层,自上而下每层都依赖于下一层。
每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件。
1.物理层:
孤立的计算机想要一块儿玩,必须接入internet,言外之意是计算机必须完成组网。
物理层功能:
主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0.
2.数据链路层
数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思。
数据链路层的功能:定义了电信号的分组方式。
以太网协议:
早期的时候各个公司都有本身的分组方式,后来造成了统一的标准,即以太网协议ethernet
ethernet规定:
一组电信号组成一个数据报,叫作‘帧’
每个数据报分红:报头和数据两部分。
把数据报比做咱们平时寄信的话,报头至关于信封,能够看到是给谁的,数据至关于里面的信件。
总结:
任何一种通讯协议都必须包含两部分:
一部分:报头(必须是固定的长度)
二部分:数据
mac地址:
报头中包含的源地址和目标地址由来:以太网规定接入inernet的设备都必须具有网卡,发送端和接收端的地址即是指网卡的地址,即mac地址。
广播:
有了mac地址,同一网络内的两台主机就能够通讯了(一台主机经过arp协议获取另一台主机的mac地址)
ethernet采用最原始的方式,广播的方式进行通讯,即计算机通讯基本靠吼
3.网络层
网络层由来:有了ethernet、mac地址、广播的发送方式,世界上的计算机就能够彼此通讯了,问题是世界范围的互联网是由
一个个彼此隔离的小的局域网组成的,那么若是全部的通讯都采用以太网的广播方式,那么一台机器发送的包全世界都会收到,
这就不只仅是效率低的问题了,这会是一种灾难
上图结论:必须找出一种方法来区分哪些计算机属于同一广播域,哪些不是,若是是就采用广播的方式发送,若是不是,
就采用路由的方式(向不一样广播域/子网分发数据包),mac地址是没法区分的,它只跟厂商有关
网络层功能:引入一套新的地址用来区分不一样的广播域/子网,这套地址即网络地址
ip地址:
规定的网络地址的协议叫作ip协议,它定义的地址称之为ip地址;普遍采用的ipv4.
子网掩码:
所谓”子网掩码”,就是表示子网络特征的一个参数。再形式上等同于ip地址。
算出子网地址:
知道”子网掩码”,咱们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,不然为0),而后比较结果是否相同,若是是的话,就代表它们在同一个子网络中,不然就不是。
总结:标识地址的方式:
ip+mac地址就能标识全世界范围内独一无二的一台计算机。
ip+mac+port就能标识全世界范围内独一无二的一个基于网络通讯的应用软件。
url地址:标识全世界范围内独一无二的一个资源。
注意:
url地址=应用层协议部分(http://)+域名部分和端口部分(即对应对方的网站)+路径。
ARP协议:
ARP协议由来:
计算机通讯基本靠吼,即广播的方式,全部上层的包到最后都要封装上以太网头,而后经过以太网协议发送,在谈及以太网协议时候,我门了解到
通讯是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就须要经过arp协议
ARP协议功能:广播的方式发送数据包,获取目标主机的mac地址。
1.若是处在同一子网中时:
上图中:pc1做为源mac,向同一子网里的主机以广播的方式发送数据包,在广播的时候有几个主机就复制几份进行发送。而后各个主机接收后拆开包,若是发现里面的ip是本身的,就返回本身的mac地址,上图中pc2发现是本身的,就返回了本身的mac.
2.若是处于不一样的子网中时:
源mac--网管的mac---目标网管的mac----目标ip(解析出目标mac)
4.传输层:
传输层的由来:网络层的ip帮咱们区分子网,以太网层的mac帮咱们找到主机,而后你们使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,
那么咱们经过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。
传输层的功能:
创建端口到端口的通讯。
重点:
tcp协议。(三次握手,四次挥手)
三次握手创建链接:
以上是三次握手链接:syn是创建链接的意思。
第一步:客户端发送 请求包(syn=1)和序列号(seq=x)到服务端。
第二步:服务端经过序列号和请求包 确认请求(ack=1+x),同时向客户端发出请求包(syn=1)和序列号(seq=y)
第三步:客户端确认请求包(ack=1+y)
以上 syn_sent是发完,listen是等待。syn_rcvd是接受,established已经创建一个单项链接,established已经创建一个单项链接
四次挥手(断开链接):
为何有四次挥手,是由于中间关系到数据传输的问题,当数据没有传完的时候,须要等待一下,确认对方收到数据后,才能释放掉链接
断开链接的时候,通常是服务端发起的。由于服务端要接其余的客户端。
第一步:服务端先发起断开请求(fin)和序列号(seq)
第二步:客户端确认请求(ack)
第三步:客户端发起断开请求(fin)
第四部:服务端确认断开请求(ack)
udp协议:
又称为‘不可靠传输’
udp协议不用建链接
优势:效率高,不用等待
缺点:是不等待就直接释放掉数据内存,若是对方数据还没接收完,容易丢失数据
五,半链接池:
半链接池占的是内存空间,里面存的是创建链接请求数。先进先出。
假如半链接池最大为5,若是有6个主机同一时间进行访问请求,那么里面先一块儿放5个,一个一个的创建链接,出来一个再进去一个。
注意:
半链接池限制的是同一时间的请求数,而非链接数。