• day28 网络编程


    一,客户端/服务端架构

    C/S        B/S

    1,硬件c/s架构(打印机)

    2,软件c/s架构:

    互联网中处处是c/s架构

    (B/S架构也是C/S架构的一种) 如你的浏览器是客户端,博客园网站是服务端。

    比如,腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看到它的视频。

    client《-------基于网络通信----------》server

    browser<--------基于网络通信---------->server

    3.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个,一个一个的建立连接,出来一个再进去一个。

    注意:

    半连接池限制的是同一时间的请求数,而非连接数。

  • 相关阅读:
    hyper-v使用wifi链接网络
    windows下批量换程序——运维常用
    redis多端口,多实例。
    vs2017 本地IP地址调试 局域网调试
    自动备份
    ipv6无网络访问权限怎么办
    缓存
    学习php
    DateTimeOffset DateTime
    C# 集合
  • 原文地址:https://www.cnblogs.com/fxc-520520/p/9269618.html
Copyright © 2020-2023  润新知